知乎上關(guān)于“如何入門(mén)/轉(zhuǎn)行機(jī)器視覺(jué)?”的話(huà)題,普遍有幾萬(wàn)到十幾萬(wàn)的閱讀,而且也常常有學(xué)員在公眾號(hào)后臺(tái)向我們拋出類(lèi)似的問(wèn)題。可見(jiàn),很多0-1歲的視覺(jué)新人對(duì)此是有困擾和疑惑的。
機(jī)器視覺(jué)工程師主要分機(jī)器視覺(jué)應(yīng)用工程師和機(jī)器視覺(jué)算法工程師,從市場(chǎng)需求來(lái)說(shuō)機(jī)器視覺(jué)應(yīng)用工程師需求量更大,那么想成為一名機(jī)器視覺(jué)應(yīng)用工程師需要掌握什么知識(shí)呢?下面小編就把學(xué)習(xí)的知識(shí)點(diǎn)
和方向分享給想入行機(jī)器視覺(jué)的朋友們。
1、halcon軟件提供的是快速的圖像處理算法解決方案,不能提供相應(yīng)的界面編程需求,需要和VC++結(jié)合起來(lái)構(gòu)造MFC界面,才能構(gòu)成一套完成的可用軟件。
2、機(jī)器視覺(jué)在工業(yè)上的需求主要有二維和三維方面的
二維需求方面有:⑴識(shí)別定位;(2)OCR光學(xué)字符識(shí)別;(3)一維碼、二維碼識(shí)別及二者的結(jié)合;(4)測(cè)量類(lèi)(單目相機(jī)的標(biāo)定);(5)缺陷檢測(cè)系列;(6)運(yùn)動(dòng)控制,手眼抓?。ㄉ婕笆盅蹣?biāo)定抓取等方面)
三維需求方面:(1)攝像機(jī)雙目及多目標(biāo)定(2)三維點(diǎn)云數(shù)據(jù)重構(gòu)
3、要成為一名合格的機(jī)器視覺(jué)工程師必須具備以下三個(gè)方面的知識(shí)
(1)圖像處理涉及以下幾大領(lǐng)域:
A、圖像處理的基本理論知識(shí)(圖像理論的基礎(chǔ)知識(shí))
B、圖像增強(qiáng)(對(duì)比度拉伸、灰度變換等)
C、圖像的幾何變換(仿射變換,旋轉(zhuǎn)矩陣等)
D、圖像的頻域處理(傅里葉變換、DFT、小波變換、高低通濾波器設(shè)計(jì))
E、形態(tài)學(xué)(膨脹、腐蝕、開(kāi)運(yùn)算和閉運(yùn)算以及凸殼等)
F、圖像分割(HALCON里的Blob分析)
G、圖像復(fù)原
H、運(yùn)動(dòng)圖像
I、圖像配準(zhǔn)(模板匹配等)
J、模式識(shí)別(分類(lèi)器訓(xùn)練,神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)等)
比較好的參考書(shū)籍有
經(jīng)典教材:岡薩雷斯的《數(shù)字圖像處理》及對(duì)應(yīng)的MATLAB版
楊丹等編著《MATLAB圖像處理實(shí)例詳解》
張錚等編著《數(shù)字圖像處理與機(jī)器視覺(jué)——Visual C++與MATLAB實(shí)現(xiàn)》
左飛編著的《數(shù)字圖像處理:原理與實(shí)踐(MATLAB版)》
左飛編著的《數(shù)字圖像處理技術(shù)詳解與Visual C++實(shí)踐》
謝鳳英編著的《Visual C++數(shù)字圖像處理》
《精通系列·精通Visual C++數(shù)字圖像處理典型算法及實(shí)現(xiàn)(第2版)》
(2)軟件編程功底
具備C,C++,C#及MFC界面開(kāi)發(fā)的功底
A、C語(yǔ)言的學(xué)習(xí)主要看譚浩強(qiáng)寫(xiě)的C語(yǔ)言相關(guān)知識(shí)
B、C++主要看C++ primer plus書(shū)籍
C、MFC的學(xué)習(xí)主要看孫鑫編寫(xiě)的《VC++深入詳解》這本書(shū)及相應(yīng)的視頻教程,并在VC++6.0軟件或VS2010等軟件上編寫(xiě)程序和實(shí)踐。
D、C#可以看書(shū)籍《C#從入門(mén)到精通》、《Head First C#》、《C#入門(mén)經(jīng)典》、
《C#圖解教程》、《C#高級(jí)編程》、《.Net Frameword 高級(jí)編程》、《CLR via C#》
(3)光學(xué)知識(shí):
主要閱讀書(shū)籍《工程光學(xué)》、重點(diǎn)放在幾何光學(xué)方面,了解成像原理及相應(yīng)的光路分析,知道光源的特性、鏡頭分辨率、相機(jī)分辨率等方面的知識(shí)。
光學(xué)知識(shí)主要在你設(shè)計(jì)方案時(shí)相機(jī)、光源、鏡頭等選型時(shí)起到關(guān)鍵作用。
軟件功底的作用是軟件的架構(gòu)設(shè)計(jì)分析,架構(gòu)包括UI層設(shè)計(jì)、業(yè)務(wù)邏輯層開(kāi)發(fā)、數(shù)據(jù)層開(kāi)發(fā)。
HACLON主要完成圖像處理算法的實(shí)現(xiàn)。
目前市場(chǎng)上工業(yè)領(lǐng)域中主流的圖像算法處理軟件有HALCON, NIvisionpro, opencv
學(xué)習(xí)HALCON最重要的是學(xué)習(xí)其中的方法、流程和套路
4、HALCON主要完成圖像算法的流程套路如下:
特征提取總結(jié):
1、幾何特征(面積、周長(zhǎng)、矩形度)2、紋理特征(與灰度相關(guān),如熵、能量值)
3、顏色特征4、概率特征5、算子描述特征 6、Hough特征(梯度直方圖特征)
做機(jī)器視覺(jué)的項(xiàng)目,拿到項(xiàng)目時(shí)一般遵循如下流程:
第一步:需求分析,建立相應(yīng)的方案
第二步:算法流程規(guī)劃及業(yè)務(wù)邏輯設(shè)計(jì)
第三步:模塊化編程及集成化實(shí)現(xiàn)
第四步:調(diào)試,根據(jù)反饋結(jié)果來(lái)不斷的修改程序Bug,達(dá)到客戶(hù)需求,最后交付客戶(hù)及軟硬件操作文檔。
學(xué)習(xí)機(jī)器視覺(jué)的好方法:
1、學(xué)習(xí)機(jī)器視覺(jué)一定要結(jié)合項(xiàng)目實(shí)戰(zhàn),在實(shí)踐中學(xué)習(xí)總結(jié)經(jīng)驗(yàn)教訓(xùn),系統(tǒng)化學(xué)習(xí)所需知識(shí)。
2、補(bǔ)充一定的C++和c#知識(shí),進(jìn)行VS聯(lián)合開(kāi)發(fā),客戶(hù)現(xiàn)場(chǎng)的學(xué)習(xí)和現(xiàn)場(chǎng)調(diào)試,不斷學(xué)習(xí)示例分析,掌握方法套路流程。
3、根據(jù)實(shí)際問(wèn)題,學(xué)習(xí)模塊調(diào)用,按照方法套路學(xué)習(xí)。
4、最好是先用HALCON實(shí)現(xiàn)圖像處理部分,然后在VS2010開(kāi)發(fā)軟件中利用MFC圖形界面實(shí)現(xiàn)出來(lái),實(shí)踐學(xué)習(xí)是最好的方法。
機(jī)器視覺(jué)學(xué)習(xí)的發(fā)展趨勢(shì)是結(jié)合神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)進(jìn)行相應(yīng)的人工智能機(jī)器視覺(jué)開(kāi)發(fā)。
文章來(lái)源:網(wǎng)絡(luò)收集,犀靈機(jī)器人機(jī)器視覺(jué)培訓(xùn)http://整理發(fā)布