Re: [问题] 如何加速影像处理算法速度?

楼主: buletris (◆爱发呆◇)   2021-05-01 11:41:01
偶尔爬文时有些解法来自于此板, 回馈一下我所知道的内容, 若有讲错的地方还请各位大
大补充, 感恩!
OpenCVSharp 应该指的是 EmguCV 吗? 如果是的话建议你先去了解使用的语法是不是有额
外作了其他事情在 EmguCV 之中, 可能会发现大量的运算时间耗费在将 C++ Vector 转成
C# Object.
https://imgur.com/dlt2YaF
直接使用 DetectMultiScale 跟CvInvoke.cveCascadeClassifierDetectMultiScale 结果
一样, 速度是完全不一样的, 这需要你花时间去做实验.
OpenCV C++ 有些语法在 EmguCV 上是没有的, 为什么没有, 因为没有写.
https://www.emgu.com/wiki/index.php/Download_And_Installation
根据 EmguCV Wiki 的 1.3 Building from Git, 此节在说明如何自行build EmguCV, 代
表若你有想使用的语法或 output 只有在 OpenCV, 但在 EmguCV 上有缺失, 那你需要自
己去改写 EmguCV 的 source code. 或者建个 ticket 给 EmguCV team, 但就不知道哪
个版本他们会帮你做.
若你想要尝试自己写的话, 就跟 C++ 的写法类似, 在 C# 写 Pointer, 详细可参考下列
网址, 第一个自写的 offline 瑕疵辨识程式关于加速的问题都是参考此篇.
http://yy-programer.blogspot.com/2012/08/c.html
另外很多影像相关的学习都可参考YY大.
Halcon 跟 OpenCV 比起来就像是 Oracle 跟 MySQL, 如果 OpneCV 用的好还是可以接近
Halcon. 彼此都有优劣, 像 Deep learning 相关, OpenCV 就比较多资源可使用.
Halcon 速度会快跟其他大大讲的一样, 毕竟是商用软件, 若可 CPU 相关加速如 SSE, De
fault 设定都是自动开启, GPU 加速则是要额外用其他语法开启.
做影像处理如 AOI 是一条不归路.
学了算法要开始做实验时, 要先学怎么架相机.
开始取影像时, 要学怎么架光源,
调完光源时, 要隔绝环境变量,
再来, 轴控, 电控, 机构, 光学, CCTV, 显微镜头, GPU Cuda, Deep learning, ... 等
等.
对 AOI 产生倦怠时, 想换工作时大家都要你做相关的事, 还是默默继续做下去.
一个不务正业 & 末路出家的 软件技术员留
※ 引述《MasterChang (Han-Yuan)》之铭言:
: 我认为这个思考上有盲点。为什么用opencv做?为什么不用halcon?
: 说白了就是成本跟弹性的问题。
: 另外,所谓的差很多是差在哪边?执行效能?我自己用基于opencv做
: 案子,目前没有遇到你说性能不佳的问题,有比较过相同AOI专案,
: 用opencv跟halcon的效能使用者感觉不出来。
: 因为除了AOI工作,还要连接很多客户现有的设备,工作量也不少。
: 纠结在这一块其实没有什么必要。
: 如果觉得效能不好,可以用 C++先做相关工作,UI部分用C#做。因为
: opencv只是基本工具,很多分析模组还是得自己开发,我们自己做五
: 六年了,其实累积很多代码/模组/dll。 而且顾客需求又很多种,有
: 些要WinForm,有些要WPF,有些要web展示,做成各类dll呼叫是比较
: 有弹性的。
: halcon那么老牌的公司,如果随随便便你用opencv做就超越情何以堪
: ※ 引述《popen (快乐的工作)》之铭言:
: : 你好,
: : 我的公司软件都是用C# + OpenCVsharp来开发影像处理相关专案,
: : 但发觉怎么开发, 都还是比商用软件halcon差很多,
: : 而且一样都是用电脑开发,
: : 想请教一下如果一些基本的影像处理算法不用opencv,改成自己写,
: : 例如: open, close, dilation, erosion, smooth, threshold等算法,
: : 我该怎么做才能像halcon这么快呢?
: : 还是说halcon都是用C++写的, 或是用gpu加速, 单纯用C#达不到halcon速度?
: : 不知是否有先进有相关经验能告知方向或方法?
作者: kobe8112 (小B)   2021-05-01 15:29:00
OpenCVSharp跟EmguCV是不同的喔不过都是OpenCV的 .net wrapper没错
楼主: buletris (◆爱发呆◇)   2021-05-01 20:32:00
原来如此,又学习哩!
作者: neo5277 (I am an agent of chaos)   2021-05-03 17:20:00
想要用c#来画画
作者: tp6vul3co (天气好)   2021-06-04 11:04:00
心有戚戚焉 工作有一半时间都不是在做AOI的事架光源 调镜头 写PLC MODBUS...等

Links booklink

Contact Us: admin [ a t ] ucptt.com