我正在研究机器人视觉系统,其主要目的是检测物体,我想选择其中一个库(CImg,OpenCV)并且我对它们都有所了解。
我使用的机器人有 Linux,1GHz CPU 和 1G ram,我使用 C++,图像大小为 320p。
我想在每秒 25 帧中接近 20 帧进行实时图像处理。在您看来,哪个库更强大 l 尽管我已经测试了两者并且它们具有相同的处理时间,但 open cv 稍微好一些,我认为这是因为我使用带有开放 cv 代码的指针。
请分享你的想法和理由。
谢谢。
我正在研究机器人视觉系统,其主要目的是检测物体,我想选择其中一个库(CImg,OpenCV)并且我对它们都有所了解。
我使用的机器人有 Linux,1GHz CPU 和 1G ram,我使用 C++,图像大小为 320p。
我想在每秒 25 帧中接近 20 帧进行实时图像处理。在您看来,哪个库更强大 l 尽管我已经测试了两者并且它们具有相同的处理时间,但 open cv 稍微好一些,我认为这是因为我使用带有开放 cv 代码的指针。
请分享你的想法和理由。
谢谢。
我认为当您将 OpenCV 与 IPP 集成时,您可能会获得最佳性能。
这是另一个参考http://experienceopencv.blogspot.com/2011/07/speed-up-with-intel-integrated.html
此外,如果您冻结了完美运行的算法,通常您可以隔离您的算法并按照自己的方式进行可能尚未准备好使用的严重优化(例如内存优化、移植到程序集等)。
这实际上取决于您想要做什么(您想要检测什么样的对象、准确性、您正在使用什么算法等)以及您有多少时间。如果是用于通用计算机视觉/图像处理,我会坚持使用 OpenCV。正如Dipan所说,请考虑进一步优化。根据我对计算机视觉优化的经验,瓶颈通常在于内存互连带宽(或内存本身),因此您可能必须以周期(计算)为代价来节省通信。一定要很好地理解算法以进一步优化算法(与编译器相比,它有时可以带来巨大的改进)。