摘要
稀疏光流法是计算机视觉中的一项基本任务。然而,它依赖于恒定的假设限制了其在高动态范围(HDR)场景中的适用性。在本研究中,我们提出了一种新的方法,旨在通过学习一个对光照变化具有鲁棒性的特征映射来超越图像的颜色信息。该特征图随后被构造成一个特征金字塔,并集成到稀疏的Lucas-Kanade(LK)光流中。通过采用这种混合光流方法,我们克服了亮度常数假设的限制。具体来说,我们利用一个轻量级的网络从图像中提取特征图和关键点。考虑到为浅层网络获得可靠的关键点的挑战,我们采用了一个额外的深度网络来支持训练过程。这两种网络都使用无监督的方法进行训练。所提出的轻量级网络在板载CPU上达到了190fps的显著速度。为了验证我们的方法,我们在动态照明条件下与传统光流方法的重复性和匹配性能进行了比较。此外,我们通过将其集成到VINS-Mono中,证明了我们的方法的有效性,从而在公共HDR数据集上显著降低了93%的翻译误差。
环境准备
OpenCV (https://docs.opencv.org/3.4/d7/d9f/tutorial_linux_install.html)
ncnn (https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux)
CMakeLists.txt
set(ncnn_DIR "<your_path>/install/lib/cmake/ncnn" CACHE PATH "Directory that contains ncnnConfig.cmake")
编译
mkdir build && cd build
cmake .. && make -j4
代码运行
./build/demo <path_param> <path_bin> <path_video>
或者
./build/demo <path_param> <path_bin> <path_img_1> <path_img_2>
例如
./build/demo ./model/model.param ./model/model.bin ./assets/nyu_snippet.mp4