ethan-li-coding / AD-Census

AD-Census立体匹配算法,中国学者Xing Mei等人研究成果(Respect!),算法效率高、效果出色,适合硬件加速,Intel RealSense D400 Stereo模块算法。完整实现,代码规范,注释清晰,欢迎star!
https://github.com/ethan-li-coding/AD-Census
MIT License
372 stars 72 forks source link

请问算法是否可以用gpu加速,gpu计算能不能实现实时计算 #1

Open laidongd opened 4 years ago

laidongd commented 4 years ago

1.请问算法是否可以用gpu加速,gpu计算能不能实现实时计算 2.我跑了一下算法,匹配的效果比SemiGlobalMatching看起来要好很多,生成的地面很平,但有障碍物时旁边的地面会整体发生偏移.不知道精度对比SemiGlobalMatching是否有优势,还是过度平滑的结果.

ethan-li-coding commented 4 years ago
  1. 可以GPU加速,原文就是以GPU算法来介绍的。能否实时计算要看你的计算性能、图像大小以及视差范围,建议在原文中查看它的实验设备和处理速度,然后按比例计算你的数据大概能够达到的水平,时间复杂度大约为O(WHD)。
  2. 虽然效果有区分,但理论上视差精度不会有优劣之分,他们都是用同样的子像素方法,可能局部会由于处理算法的不适应性导致结果偏移,实际工程应用时建议去掉所有视差填充步骤,只保留一致性检查(AD-Census里叫OutDetection)。在本算法里将参数do_lr_check设置为true,do_filling设置为false。
laidongd commented 4 years ago

谢谢您的耐心解答.对立体匹配的研究现状不够了解,看论文匹配的效果好像都还不错,但实际跑自己的图片效果却一般,作为门外汉,能否再请教您两个问题: 1.如果要在类似TX2平台实时跑双目匹配,现有的开源算法里面哪个效果会好些,能否推荐一个. 2.在sgm或者AD-Census的结果上继续进行滤波处理,是否会有更好的结果,有没有较好的滤波算法的papper推荐,opensource的就更好了. 谢谢您.

ethan-li-coding commented 4 years ago
  1. 限于TX2的性能,还是SGM比较适合,这个算法速度可以加速到非常快,AD-Census相比SGM效果好一些,但是同样在TX2上实现效率可能会有两倍以上的差别。
ethan-li-coding commented 4 years ago
  1. 建议先去掉视差填充,把去除噪声相关的后处理都打开,这样可以尽可能保证视差结果都是可靠的。然后滤波可以采用双边滤波(实现也比较简单)、加权中值滤波(这里有更快的实现带源码:http://www.cse.cuhk.edu.hk/~leojia/projects/fastwmedian/)。
laidongd commented 4 years ago

之前用过加权中值滤波算法,在opencv的DISOpticalFlow和NVIDIA提供的开源库visionworks中的SGBM方法的结果上进行滤波,效果很一般.是不是想要在tx2上实时跑,现有算法基本上效果就这样了,比较难提升了

ethan-li-coding commented 4 years ago

嗯, 如果不加速的版本都达不到预期效果,那加速的也是达不到效果的,我看你这个,是不是没有做噪声剔除呢?

laidongd notifications@github.com 于2020年9月1日周二 上午10:28写道:

之前用过加权中值滤波算法,在opencv的DISOpticalFlow和NVIDIA提供的开源库visionworks中的SGBM方法的结果上进行滤波,效果很一般.是不是想要在tx2上实时跑,现有算法基本上效果就这样了,比较难提升了 [image: image] https://user-images.githubusercontent.com/38065519/91787980-a5f9e780-ec3d-11ea-8393-dafadc17067c.png

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ethan-li-coding/AD-Census/issues/1#issuecomment-684154464, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO55OWHC4WNR4N7HAKL3MSDSDRL3LANCNFSM4QQKTCTQ .

laidongd commented 4 years ago

这是visionwork的结果,没做噪声剔除,如果做噪声剔除同时会把点云变得很稀疏,剔的效果也不好,是不是我用的滤波算法有问题,试过加权中值滤波效果并不好

ethan-li-coding commented 4 years ago

噪声剔除力度一般即可,如果是剔除后产生的视差图小洞,可以用中值滤波来填补,效果没达到,可以调整下滤波的窗口大小。

laidongd notifications@github.com 于2020年9月1日周二 下午12:09写道:

这是visionwork的结果,没做噪声剔除,如果做噪声剔除同时会把点云变得很稀疏,剔的效果也不好,是不是我用的滤波算法有问题,试过加权中值滤波效果并不好

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ethan-li-coding/AD-Census/issues/1#issuecomment-684186454, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO55OWF5727U4WKBO32ZXLDSDRXYRANCNFSM4QQKTCTQ .

Mickeyyyang commented 2 weeks ago
  1. 可以GPU加速,原文就是以GPU算法来介绍的。能否实时计算要看你的计算性能、图像大小以及视差范围,建议在原文中查看它的实验设备和处理速度,然后按比例计算你的数据大概能够达到的水平,时间复杂度大约为O(WHD)。
  2. 虽然效果有区分,但理论上视差精度不会有优劣之分,他们都是用同样的子像素方法,可能局部会由于处理算法的不适应性导致结果偏移,实际工程应用时建议去掉所有视差填充步骤,只保留一致性检查(AD-Census里叫OutDetection)。在本算法里将参数do_lr_check设置为true,do_filling设置为false。

您好,看您repo的介绍,这个算法是在RealSense D400 Stereo产品直接应用了吗,我看realsense的深度效果特别好,鲁棒性也很不错,不知道内部算法使用了什么黑科技

Mickeyyyang commented 2 weeks ago
  1. 建议先去掉视差填充,把去除噪声相关的后处理都打开,这样可以尽可能保证视差结果都是可靠的。然后滤波可以采用双边滤波(实现也比较简单)、加权中值滤波(这里有更快的实现带源码:http://www.cse.cuhk.edu.hk/~leojia/projects/fastwmedian/)。

经过测试发现,这个算法最耗时的部分是在代价聚合中,有时能耗时8s左右,非常恐怖,后面的空洞填充相对来说倒不是很多