目前可以開發(fā)機器視覺的相關計算機語言有C++,C#,JAVA,PYTHON等,甚至簡單的PHP和JAVASCRIPT也可以開發(fā)相關的功能。
機器視覺需要用到圖像處理庫,有很多免費且開源的第三方圖像庫可以用,如十分著名的OpenCV,有C++,JAVA,PYTHON的版本,它包含了很多現(xiàn)成的函數(shù),可以處理圖像的形狀,顏色,大小,圖像文件保存,找相似圖像,物體邊緣(Cannyedge)算法。
機器視覺的另一個方向是神經(jīng)網(wǎng)絡深度學習算法。這里面有代表性的是谷歌的TensorFlow,具有很強大的機器視覺能力。
文字識別方面的代表有谷歌的Tesseract,這也是開源項目。
機器視覺用什么硬件
一個典型的機器視覺系統(tǒng)包括以下五大塊:
1.照明照明是影響機器視覺系統(tǒng)輸入的重要因素,它直接影響輸入數(shù)據(jù)的質量和應用效果。由于沒有通用的機器視覺光源照明設備,所以針對每個特定的應用實例,要選擇相應的照明裝置,以達到最佳效果。光源可分為可見光和不可見光。常用的幾種可見光源是白幟燈、日光燈、水銀燈和鈉光燈??梢姽獾娜秉c是光能不能保持穩(wěn)定。如何使光能在一定的程度上保持穩(wěn)定,是實用化過程中急需要解決的問題。另一方面,環(huán)境光有可能影響圖像的質量,所以可采用加防護屏的方法來減少環(huán)境光的影響。照明系統(tǒng)按其照射方法可分為:背向照明、前向照明、結構光和頻閃光照明等。其中,背向照明是被測物放在光源和攝像機之間,它的優(yōu)點是能獲得高對比度的圖像。前向照明是光源和攝像機位于被測物的同側,這種方式便于安裝。結構光照明是將光柵或線光源等投射到被測物上,根據(jù)它們產(chǎn)生的畸變,解調(diào)出被測物的三維信息。頻閃光照明是將高頻率的光脈沖照射到物體上,攝像機拍攝要求與光源同步。
2.工業(yè)鏡頭FOV(FieldOfVision)=所需分辨率*亞象素*相機尺寸/PRTM(零件測量公差比)鏡頭選擇應注意:①焦距②目標高度③影像高度④放大倍數(shù)⑤影像至目標的距離⑥中心點/節(jié)點⑦畸變
3.相機按照不同標準可分為:標準分辨率數(shù)字相機和模擬相機等。要根據(jù)不同的實際應用場合選不同的相機和高分辨率相機:線掃描CCD和面陣CCD;單色相機和彩色相機。
4.圖像采集卡圖像采集卡只是完整的機器視覺系統(tǒng)的一個部件,但是它扮演一個非常重要的角色。圖像采集卡直接決定了攝像頭的接口:黑白、彩色、模擬、數(shù)字等等。
比較典型的是PCI或AGP兼容的捕獲卡,可以將圖像迅速地傳送到計算機存儲器進行處理。有些采集卡有內(nèi)置的多路開關。例如,可以連接8個不同的攝像機,然后告訴采集卡采用那一個相機抓拍到的信息。有些采集卡有內(nèi)置的數(shù)字輸入以觸發(fā)采集卡進行捕捉,當采集卡抓拍圖像時數(shù)字輸出口就觸發(fā)閘門。
目前,千兆網(wǎng)口工業(yè)相機逐步成為主流,圖像采集卡一般采用視覺專用的千兆網(wǎng)卡。
5.視覺處理器視覺處理器集采集卡與處理器于一體。以往計算機速度較慢時,采用視覺處理器加快視覺處理任務。現(xiàn)在由于采集卡可以快速傳輸圖像到存儲器,而且計算機也快多了,所以現(xiàn)在視覺處理器用的較少了。
更多精彩閱讀: 機器視覺是什么意思_機器視覺應用案例 機器視覺的任務_機器視覺的基本工作過程是怎樣的 機器視覺自學需要學什么_學機器視覺好找工作嗎