<p>Streamflow measurement is of great importance in hydrological research, water management and water infrastructure design. Traditional measurement methods typically employ intrusive techniques, and under certain conditions, obtaining accurate streamflow data with these techniques can be challenging because of safety concerns, especially in some critical circumstances, such as during flood flows. The advent of new instrumentation and technologies, and in particular advances in digital imagery, has led to the emergence of non-intrusive novel image-based technologies that can be used to estimate surface velocity, which in turn can be used to estimate streamflow. Image based technologies, most of which are based on correlation between consecutive images, have the potential for remote and on demand measurements and can provide data when the application of other traditional methods are not possible, reliable or safe. In this study, we present a novel machine learning based optical flow algorithm for streamflow surface velocimetry estimation. The developed algorithm is tested in different flow conditions and using drone and fixed photogrammetry. This method appears to outperform all the other available image-based surface velocimetry approaches (i.e. correlation based and classical optical flow methods). Moreover, this method requires the least user involvement for velocity estimation and thus reduces the impact or arbitrary choices linked to user expertise.</p>