Machine Vision 淺談
從剛畢業開始到現在,一直在學習視覺相關的知識,不知不覺,已經五個月過去了,以前總覺得娛樂、休息的時間過得很快,沒想到工作的時候,時間好像也過得蠻快的!來回想一下,這五個月,都學到了啥。
畢業后來到公司,開始了視覺的學習。說實話剛開始確實有點懵,對視覺也是沒啥概念,Tony跟我說讓我學習視覺方面的知識,剛開始覺得視覺挺高大上的,也沒想那么多,就像公司同事們說的那句話一樣,先猛chacha地干了再說!最開始,從概念上了解視覺開始,需要先知道,視覺,它是什么?我想,現在我應該能大概回答一下這個問題了。視覺,簡單來說,就是給機器裝上眼睛,讓機器代替我們人眼去看。這是在網上看到的一個對機器視覺很通俗的解釋,我覺得視覺不僅僅是要代替我們去看,在某種程度上來說,它還要代替我們去思考(雖然它的“思想”都是我們給的),是我們的思想的載體!從本質上來說,機器視覺最核心的還是圖像處理,雖然光源、鏡頭、相機這些硬件設備也很重要,但是對圖像的最終處理才代表了視覺的水平!不過我現在的工作,倒用不着去研究那些高深的圖像處理算法(這個活兒目前中國人基本沒有做得好的),我要做的是,在視覺算法庫的基礎上做二次開發,比如halcon、visionPro、OpenCV、SCI,能用好這些庫,做好公司的視覺軟件,就OK了!
好了,下一個問題,視覺能干什么?視覺能干的事情就太多了,各行各業,都能看到視覺的身影,汽車、激光、人臉識別、印刷、AOI、追蹤定位......總的說來,視覺的應用有四大類:定位、檢測、測量、識別。具體到我們激光行業的話,四大類應用都有涉及,目前的話,我們主要是定位、測量、檢測。
接下來,就是視覺系統的組成。分為硬件和軟件兩部分。硬件:光源、鏡頭、相機、圖像采集卡;軟件:視覺處理軟件。常用光源的種類有:條形光源、環形光源、同軸光源、點光源、線形光源、背光源,當然還可以針對具體的項目定制非標光源;鏡頭的種類主要是根據焦距來分的,有廣角鏡頭(焦距<50mm),遠距鏡頭(焦距>50mm),遠心鏡頭(景深打、視野小);相機的分類就比較復雜一點,根據芯片的類型分,有數字相機和模擬相機;根據成像的顏色分可分為黑白相機和彩色相機;根據產品運動狀態,選擇線陣相機或者面陣相機;根據芯片材料的不同,分為CCD和CMOS;最近還聽到一種分類方式,是根據相機的快門的曝光方式分的,分為全局相機和卷簾相機。最后就是軟件了,最終的成型的視覺軟件就不說了,肯定每個公司或者領域都有自己獨特的視覺軟件,但是所依賴的算法庫也就只有幾種:halcon、visionPro、OpenCV、MATLAB;
再就是設備的選型,要說這個的話還得好好整理下,在這里就不細說了,大概就是:
1.光源的打光方式,這是設備選型和項目評估中最重要也最復雜的一個環節,雖然去了OPT幾天,但是也就看到了個皮毛;
2.鏡頭的選型相對來說比較簡單,只需要考慮焦距,工作距離,芯片的尺寸、畸變、景深、分辨率的大小以及和相機的接口;
3.相機的選型需要考慮的參數就會多一點,分辨率、幀率、視野大小、物體運動狀態、芯片尺寸、與鏡頭的接口、相機輸出的接口、采集圖像的顏色等;
4.軟件的選擇會比較靈活一點,根據不同的項目、不同的精度要求、可以選擇不同的軟件,達到最高的性價比。
最后就來說說視覺設備的主要供應商,其實這部分我接觸的供應商雖然有一些,但是可能功課做得不夠,對各個供應商的優勢及劣勢,還不能很好地把握,這也是以后工作中需要注意的一個地方。
1.光源的供應商:OPT,銳視、CCS、KKIMAC;其中,CCS是日本的一個企業,他們是最早做光源的;KKIMAC也是日本的公司,他們的優勢主要是點光源和一些小光源做得比較好;OPT是國內最大的光源公司,光源的質量上有保障;銳視也是在東莞的一家做光源的公司,它們的產品性價比比較高;
2.鏡頭的供應商:據我所知,主要有映美精和凌雲,還有一些做相機的企業大部分都會有自己的鏡頭,映美精和凌雲的產品接觸得不多,也不是很了解,后續再補充;
3.相機的供應商:康耐視、基恩士、Basler、大華、灰點、MV、CIS......康耐視是美國的的公司,他們的相機很貴,但是是品牌,穩定性等各方面都比較好,在高精度的項目中可以使用;基恩士主要是智能相機,就是將他們的處理軟件集成到相機中去了,用戶使用起來會很方便,但確實也很貴,用戶能做的工作相對來說就不是很多了,不太適合我們;其他的相機沒怎么接觸過,以后再說吧;
4.軟件的選型:主要還是根據項目來,一般的項目,精度要求不高的項目,就用國內一些視覺公司自己開發的開發包就能處理了;但是如果是高精度的、復雜的項目還是要用國外的算法庫,像halcon和visionPro。
總結下來,發現對以前的知識還是有些遺忘,也發現了之前的學習盲點,比如:視覺設備的供應商以及他們各自的強項,這可能是由於之前在學習選型的時候重點放在了用參數來選型,忽略了不同的供應商提供的不同的產品這一塊;接下來的工作首先是用SCI算法庫基於QT開發視覺界面;在應用階段還要繼續設備選型、打光的深入學習;然后基於halcon以及visionPro的算法庫的視覺界面的開發;再后面可能就是基於OpenCV來開發自己的算法庫,集成封裝成界面!