Re: [問題] 如何加速影像處理演算法速度?

看板C_Sharp (C#)作者 (◆愛發呆◇)時間3年前 (2021/05/01 11:41), 3年前編輯推噓1(105)
留言6則, 4人參與, 3年前最新討論串3/3 (看更多)
偶爾爬文時有些解法來自於此板, 回饋一下我所知道的內容, 若有講錯的地方還請各位大 大補充, 感恩! 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速度? : : 不知是否有先進有相關經驗能告知方向或方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.185.93 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1619840468.A.244.html ※ 編輯: buletris (42.73.185.93 臺灣), 05/01/2021 11:44:07 ※ 編輯: buletris (42.73.46.87 臺灣), 05/01/2021 12:02:08

05/01 15:29, 3年前 , 1F
OpenCVSharp跟EmguCV是不同的喔
05/01 15:29, 1F

05/01 15:30, 3年前 , 2F
不過都是OpenCV的 .net wrapper沒錯
05/01 15:30, 2F

05/01 20:32, 3年前 , 3F
原來如此,又學習哩!
05/01 20:32, 3F

05/03 17:20, 3年前 , 4F
想要用c#來畫畫
05/03 17:20, 4F

06/04 11:04, 3年前 , 5F
心有戚戚焉 工作有一半時間都不是在做AOI的事
06/04 11:04, 5F

06/04 11:05, 3年前 , 6F
架光源 調鏡頭 寫PLC MODBUS...等
06/04 11:05, 6F
文章代碼(AID): #1WZCtK94 (C_Sharp)
文章代碼(AID): #1WZCtK94 (C_Sharp)