DeepFlow公司
菲利普·魏恩扎普费尔 杰罗姆·雷沃 扎伊德·哈查伊 科迪利亚·施密德
代码
请注意,提到了我们的代码仅供科学或个人使用.
如果您有任何问题,请联系:
- Jerome Revaud询问关于DeepMatching部分的问题(Jerome.Revaud(at)inria.fr),
- Philippe Weinzaepfel询问关于DeepFlow部分的问题(Philippe.weinzaepfe(at)inria.fr)。
深度匹配代码
请参阅专用网页.
DeepFlow2的源代码
下载DeepMatching代码后,您可以在此处为下载DeepFlow2代码Linux操作系统或窗户(Visual C++,学分为米切尔·贝诺维用于移植)(新款).
这需要将DeepMatching返回的匹配项作为输入匹配项。
DeepFlow2是对DeepFlow的改进,它利用SSE指令加快计算速度。此外,该代码现在包含了平滑项的非局部权重和匹配项权重的计算。
代码在通用公共许可证.
汇编
简单地键入制作
并且代码必须编译。
该程序仅在64位Linux发行版下进行了测试。
在编译失败的情况下,还提供了静态版本。
我们不支持其他操作系统或编译问题。
用法
使用DeepFlow2的一般命令是:
./depflow2<im1><im2><filename.flo>[选项]
要查看可用选项的列表,可以键入:./深水2-h
选项-match允许从输入文件或stdin提供输入匹配。特别是,论文的结果使用了DeepMatching的结果。
使用DeepMatching的示例
要计算包含DeepMatching的DeepFlow2,您需要在专用网页.DeepMatching输出的匹配项可以直接通过管道传输到DeepFlow2,如以下示例所示:
<深度匹配路径>/深度匹配sintel1.png sintel2.png|/deepflow2 sintel1.png sintel2.png sindel.flo-匹配-sintel
它以标准格式创建一个.flo文件。例如,可以使用米德尔伯里数据集。对于小尺寸图像,可以在提取DeepMatching时添加选项“-downscale 0”以获得更好的准确性。
警告:未匹配
如果不使用任何输入匹配(即不指定任何匹配参数),该方法将被限制为标准变分方法,而没有匹配积分,因此将失去准确性,特别是对于大位移。这就是opencv实现中的情况。历史
- 2013年12月(v1.0.0)
- 2014年3月(v1.0.1):小补丁+对png图像的支持
- 2014年3月(FastDeepFlow_v1.0.1):使用SSE指令的更快(约2倍)版本。由于浮点近似,结果略有不同。
- 2015年9月(v2.0):在FastDeepFlow的基础上加入了局部平滑权重和比赛权重的计算。matlab/python包装器。
Matlab包装器
要编译包装器,首先使用制作
,然后打开matlab并编译mex文件:
mex deepflow2_matalab.cpp image.o io.o opticalflow.o opticalflow_aux.o solver.o-ljpeg-lpng-lm-output deepflow 2
包装器已经在Linux-64位的Matlab14b上进行了测试。我们不支持编译问题。
与DeepMatching一起使用(假设DeepMatcheng已添加到编译了matlab包装器的路径中;请注意,必须打开matlab并预装atlas以进行DeepMatch计算:LD_PRELOAD=/usr/lib64/alas/libtatlas.so.3 matlab
):
>>im1=单个(imread('intel1.png'));>>im2=单个(imread('intel2.png'));>>matches=深度匹配(im1,im2);>>flow=深度流2(im1,im2,匹配,'-sintel');
调用deepflow2()将显示可用选项的列表。
Python包装器
python包装器需要numpy和(如果修改代码并重新编译,则需要swig)。要编译它,请键入制作蟒蛇
.包装器仅在Linux-64位下进行了测试。我们不为编译问题提供任何支持。
与DeepMatching一起使用(假设DeepMatcheng已被添加到python路径中并编译了python包装器):
>>从deepmatching导入deepmatcing>>从deepflow2导入deepflows2>>导入numpy>>从PIL导入图像>>im1=numpy.array(Image.open('sintel1.png'))>>im2=numpy.array(Image.open('sintel2.png'))>>matches=深度匹配(im1,im2)>>flow=deepflow2(im1,im2,matches,'-sintel')
调用deepflow2()将显示可用选项的列表。
引用
如果您使用我们的代码,请引用我们的论文:
@进行中{weinzaepfel:hal-00873592,作者={Weinzaepfel,Philippe and Revaud,Jerome and Harchaoui,Zaid and Schmid,Cordelia},TITLE={{DeepFlow:具有深度匹配的大位移光流}},BOOKTITLE={IEEE国际计算机视觉会议(ICCV)}},年份={2013年},月=12月,地址={澳大利亚悉尼},URL={http://hal.iria.fr/hal-00873592}}
文章
2013年ICCV
菲利普·温扎普费尔(Philippe Weinzaepfel)、杰罗姆·雷沃(Jerome Revaud)、扎伊德·哈查维(Zaid Harchaoui)和科迪莉亚·施密德(Cordelia Schmid),
程序。2013年12月,ICCV’13。 幻灯片:幻灯片演示文件
IJCV 2016
Jerome Revaud、Philippe Weinzaepfel、Zaid Harchaoui和Cordelia Schmid,
IJCV 2016。