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