今天跟大家分享關(guān)于機(jī)器視覺應(yīng)用方向項目流程及學(xué)習(xí)思路總結(jié)
1. 視覺項目介紹
機(jī)器視覺在工業(yè)上的需求主要有二維和三維方面的。
二維方面的有:
識別定位:①Blob分析(主要包括二值化、形態(tài)學(xué)處理、特征選擇。ps:受光照影響較大)②模板匹配(常用的是Shape匹配和Ncc匹配,有時還會用到可變形模板);OCR光學(xué)字符識別;一維碼、二維碼識別及二者的結(jié)合;測量類(單目相機(jī)的標(biāo)定、相機(jī)自標(biāo)定)缺陷檢測系列;運(yùn)動控制,手眼抓?。ㄉ婕笆盅蹣?biāo)定抓取等方面)
三維方面的有:
攝像機(jī)雙目及多目標(biāo)定、三維點(diǎn)云數(shù)據(jù)重構(gòu)
2. 總體項目流程
做機(jī)器視覺的項目,拿到項目時一般遵循如下流程:
(1)需求分析
(2)方案設(shè)計:根據(jù)客戶應(yīng)用的場合不同,選擇相應(yīng)的鏡頭、相機(jī)、支架、光源及如何打光(感興趣的可看看《工程光學(xué)》一書)等。
(3)概要設(shè)計:包含軟件架構(gòu)體系,視覺開發(fā)環(huán)境(vc++聯(lián)合halcon還是c#聯(lián)合halcon等),還有算法流程(怎么通訊、怎么識別等)。
(4)詳細(xì)設(shè)計:每一個功能模塊怎么做,包括圖像采集模塊、處理模塊、包括算法模塊,如何通訊等。通常將每個模塊形成一個動態(tài)庫,調(diào)用相應(yīng)的接口函數(shù)即可,項目圖像采集調(diào)用SDK也是調(diào)用動態(tài)庫的過程。
(5)測試、調(diào)試和修改。
(6)客戶交付、確認(rèn)。
(7)調(diào)試:根據(jù)客戶反饋結(jié)果來不斷的修改程序Bug。
(8)達(dá)到客戶需求,最后交付客戶及軟硬件操作文檔。
(9)后期維護(hù)。
3. 視覺算法流程
圖像采集
圖像預(yù)處理:包含幾何變換、灰度處理、圖像增強(qiáng)、圖像濾波、二值化、圖像細(xì)化等
注:圖像預(yù)處理在視覺算法中一般是可選項,圖像效果很好的時候可跳過該步
定位(blob分析、模板匹配)
特征提取:包含幾何特征(面積、周長、矩形度)、紋理特征(與灰度相關(guān),如熵、能量值)、概率特征、角點(diǎn)、特征描述算子特征等,直接影響定位、識別的效果對特征區(qū)域進(jìn)行處理(根據(jù)不同工業(yè)需求選擇對應(yīng)的檢測識別算法)結(jié)果顯示
4. 機(jī)器視覺工程師需要具備的能力
4.1 圖像處理相關(guān)知識
涉及以下幾大領(lǐng)域:
圖像處理的基本理論知識(圖像理論的基礎(chǔ)知識)
圖像增強(qiáng)(對比度拉伸、灰度變換等)
圖像的幾何變換(仿射變換,旋轉(zhuǎn)矩陣等)
圖像的頻域處理(傅里葉變換、DFT、小波變換、高低通濾波器設(shè)計)
形態(tài)學(xué)(膨脹、腐蝕、開運(yùn)算和閉運(yùn)算以及凸殼等)
圖像分割(HALCON里的Blob分析)
圖像復(fù)原
運(yùn)動圖像
圖像配準(zhǔn)(模板匹配等)
模式識別(分類器訓(xùn)練,神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)等)
學(xué)習(xí)參考資料:
經(jīng)典教材:岡薩雷斯的《數(shù)字圖像處理》及對應(yīng)的MATLAB版
楊丹等編著《MATLAB圖像處理實例詳解》
張錚等編著《數(shù)字圖像處理與機(jī)器視覺——Visual C++與MATLAB實現(xiàn)》
左飛編著的《數(shù)字圖像處理:原理與實踐(MATLAB版)》
左飛編著的《數(shù)字圖像處理技術(shù)詳解與Visual C++實踐》
謝鳳英編著的《Visual C++數(shù)字圖像處理》
《精通系列·精通Visual C++數(shù)字圖像處理典型算法及實現(xiàn)(第2版)》
4.2 軟件編程功底
軟件功底的作用是軟件的架構(gòu)設(shè)計分析,架構(gòu)包括UI層設(shè)計、業(yè)務(wù)邏輯層開發(fā)、數(shù)據(jù)層開發(fā)。以下三個方面,每個方面至少會一種,具體選擇視所在公司應(yīng)用而定:
編程語言:C#,C,C++(自己用哪個就學(xué)哪個)
界面框架:C#界面,Qt界面,MFC界面(比較老了,以前的項目用的較多)
圖像算法處理軟件:HALCON,VisionPro,OpenCV等
1.C# 可以看書籍《C#從入門到精通》、《Head First C#》、《C#入門經(jīng)典》、《C#圖解教程》、《C#高級編程》、《.Net Frameword 高級編程》、《CLR via C#》
2.C 語言的學(xué)習(xí)主要看譚浩強(qiáng)寫的C語言相關(guān)知識
3.C++主要看《C++ primer plus》書籍
4.Qt 學(xué)習(xí)可以看《Qt Creator快速入門》(入門)、《C++ GUI Qt4》(進(jìn)階)
5.MFC 的學(xué)習(xí)主要看孫鑫編寫的《VC++深入詳解》這本書及相應(yīng)的視頻教程,并在VC++6.0軟件或VS2010等軟件上編寫程序和實踐
4.3 視覺硬件知識
主要在你設(shè)計方案時相機(jī)、鏡頭、光源等選型時起到關(guān)鍵作用。
學(xué)習(xí)資料參考:
主要閱讀書籍《工程光學(xué)》、重點(diǎn)放在幾何光學(xué)方面,了解成像原理及相應(yīng)的光路分析,知道光源的特性、鏡頭分辨率、相機(jī)分辨率等方面的知識。
5. 學(xué)習(xí)機(jī)器視覺的一些建議
1.學(xué)習(xí)機(jī)器視覺一定要結(jié)合項目實戰(zhàn),在實踐中學(xué)習(xí)總結(jié)經(jīng)驗教訓(xùn),系統(tǒng)化學(xué)習(xí)所需知識。
2.補(bǔ)充一定的C++和c#知識,進(jìn)行VS聯(lián)合開發(fā),客戶現(xiàn)場的學(xué)習(xí)和現(xiàn)場調(diào)試,不斷學(xué)習(xí)示例分析,掌握方法套路流程。
3.根據(jù)實際問題,學(xué)習(xí)模塊調(diào)用,按照方法套路學(xué)習(xí)。
4.最好是先用Halcon等視覺處理軟件實現(xiàn)圖像處理部分,然后在VS開發(fā)軟件中利用MFC或Qt等圖形界面實現(xiàn)出來,實踐學(xué)習(xí)是最好的方法。
機(jī)器視覺學(xué)習(xí)的發(fā)展趨勢是結(jié)合神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)進(jìn)行相應(yīng)的人工智能機(jī)器視覺開發(fā)。
審核編輯 :李倩
-
圖像采集
+關(guān)注
關(guān)注
2文章
307瀏覽量
41644 -
機(jī)器視覺
+關(guān)注
關(guān)注
163文章
4596瀏覽量
122888 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4381瀏覽量
64857
原文標(biāo)題:機(jī)器視覺應(yīng)用方向項目流程及學(xué)習(xí)思路總結(jié)
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【「# ROS 2智能機(jī)器人開發(fā)實踐」閱讀體驗】視覺實現(xiàn)的基礎(chǔ)算法的應(yīng)用
紅外熱成像技術(shù)推動機(jī)器視覺向智能化、精準(zhǔn)化發(fā)展

《AI Agent 應(yīng)用與項目實戰(zhàn)》閱讀心得2——客服機(jī)器人、AutoGen框架 、生成式代理
DLP160CP DMD是否可以應(yīng)用于機(jī)器視覺應(yīng)用?
《具身智能機(jī)器人系統(tǒng)》第7-9章閱讀心得之具身智能機(jī)器人與大模型
構(gòu)建云原生機(jī)器學(xué)習(xí)平臺流程
適用于機(jī)器視覺應(yīng)用的智能機(jī)器視覺控制平臺

NPU與機(jī)器學(xué)習(xí)算法的關(guān)系
AI干貨補(bǔ)給站 | 深度學(xué)習(xí)與機(jī)器視覺的融合探索

利用機(jī)器視覺檢測技術(shù)實現(xiàn)精確計數(shù),優(yōu)化現(xiàn)代工業(yè)生產(chǎn)流程
視覺檢測是什么意思?機(jī)器視覺檢測的適用行業(yè)及場景有哪些?
深視智能參編《2024智能檢測裝備產(chǎn)業(yè)發(fā)展研究報告:機(jī)器視覺篇》

評論