關於機器視覺學習路線的問題?

schnoka發表於2020-12-21

很多人認為機器視覺和計算機視覺是一個概念,其實還是不一樣的。一般來說,機器視覺就是用機器代替人眼進行測量和判斷,側重於工程實用性,實時性,高精度等。計算機視覺是一個通過技術幫助計算機“看到”並理解數字影像內容的研究領域,例如理解照片和視訊的內容。側重於理論和演算法

這麼說好像有點不好理解,那我從其他方面講一下。

機器視覺要考慮的很多問題,其實還不是演算法問題,演算法是很重要,但對於很多機器視覺任務來說,其實最重要的是整個系統如何組織和執行。比如在什麼平臺上?在什麼環境下?需要達到什麼精度和速度?類似於光源、鏡頭、相機、相機-計算機介面這種問題,在計算機視覺裡,都是基本上不怎麼考慮的問題。但實際上,這種問題恰恰是機器視覺系統中很重要的問題。

至於題主說到的OpenCV,其實機器視覺領域用得最多的軟體應該不是OpenCV,而是Halcon。雖然知道OpenCV的人比知道Halcon的人多多了,但實際上,Halcon才是最適合做機器視覺的軟體,這是由它的定位決定的。

在機器視覺行業,從易用性來說,Halcon比OpenCV好用多了。當然OpenCV有很多自己的優勢,比如開源,比如豐富的演算法,但體現在機器視覺領域會比較少一些。

所以如果你真的想學習機器視覺,我覺得從Halcon開始是比較合適的。當然最好是以專案驅動的方式來學習,這樣一個流程走完後,應該就會對機器視覺有所瞭解了。

如果是想快速解決某個問題,用Halcon做好演算法以後,可以生成各種所需語言的程式碼,比如C,C++,C#,然後也很方便地整合到目標系統中。

至於選擇整合到用什麼語言的軟體,如果是Windows平臺的話,C#可能是最容易學的,而且不容易出錯,對新手非常友好。C++的話,建議選Qt而不是VC++。

機器視覺的書籍,只推薦一本,這本書對於機器視覺來說,非常經典。雖然比較古老,但並不過時。即使你只想學習OpenCV,那這本書其實也很有啟發性。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章