機器視覺和計算機視覺有什么不同?
很多人認為機器視覺和計算機視覺是一個概念,其實還是不一樣的。
一般來說,機器視覺就是用機器代替人眼進行測量和判斷,側重于工程實用性,實時性,高精度等。計算機視覺是一個通過技術幫助計算機“看到”并理解數字圖像內容的研究領域,例如理解照片和視頻的內容。側重于理論和算法。
這么說好像有點不好理解,那我從其他方面講一下。
機器視覺要考慮的很多問題,其實還不是算法問題,算法是很重要,但對于很多機器視覺任務來說,其實最重要的是整個系統如何組織和運行。比如在什么平臺上?在什么環(huán)境下?需要達到什么精度和速度?類似于光源、鏡頭、相機、相機-計算機接口這種問題,在計算機視覺里,都是基本上不怎么考慮的問題。但實際上,這種問題恰恰是機器視覺系統中很重要的問題。
至于題主說到的OpenCV,其實機器視覺領域用得最多的軟件應該不是OpenCV,而是Halcon。雖然知道OpenCV的人比知道Halcon的人多多了,但實際上,Halcon才是最適合做機器視覺的軟件,這是由它的定位決定的。
在機器視覺行業(yè),從易用性來說,Halcon比OpenCV好用多了。當然OpenCV有很多自己的優(yōu)勢,比如開源,比如豐富的算法,但體現在機器視覺領域會比較少一些。
所以如果你真的想學習機器視覺,我覺得從Halcon開始是比較合適的。當然最好是以項目驅動的方式來學習,這樣一個流程走完后,應該就會對機器視覺有所了解了。
如果是想快速解決某個問題,用Halcon做好算法以后,可以生成各種所需語言的代碼,比如C,C++,C#,然后也很方便地集成到目標系統中。
至于選擇集成到用什么語言的軟件,如果是Windows平臺的話,C#可能是最容易學的,而且不容易出錯,對新手非常友好。C++的話,建議選Qt而不是VC++。
1. 機器視覺相關的基礎知識
1.1 機器視覺的概念機器視覺并不是簡單的使用卷積神經網絡對圖片分類,雖然剛學習深度學習的適合我就是那么認為,哈哈。機器視覺,顧名思義,就是通過程序讓機器具有像人類視覺一樣的功能。??
硬件構成簡單來講,主要有 儲存器 處理器 攝像頭 電源 等。儲存器 用來儲存算法與保存的圖片,處理器用來運行算法,攝像頭 用于圖像信息的采集。機器視覺的應用場景。機器視覺應用的場景廣泛,主要有工業(yè)、醫(yī)療、交通、農業(yè)、機器人、智能家居、軍事、遙感等。
1.2 圖像基礎知識
機器視覺主要內容包括圖像處理、圖像分析、圖像理解等。第一期內容主要是在圖像處理與圖像分析這塊。預計過年后,第二期 對深度學習在圖像理解方面進行講解。
在計算機內部,所有的信息都表示為一連串的0/1碼,8個2進制位可以組合出256種可能(28)。標準的數字圖像數據采用的就是一個字節(jié)256個狀態(tài)來進行表示(先不考慮通道,其中一個像素值的大?。?/span>
計算機等電子設備采用的圖像都是數字圖像,所以在拍攝圖片時,將連續(xù)的模擬信號經過采樣和量化兩個步驟,轉化為數字信號。
(1)采樣??
采樣( sampling)是把空間上的連續(xù)的圖像分割成離散像素的集合。采樣越細,像素越小,越能精細地表現圖像(例如深度學習中 池化層 就是一個下采樣的過程 比較粗略的表示圖像)。采樣的精度有許多不同的設定,例如,采用水平256像素X垂直256像素、水平512像素×垂直512像素、水平640像素×垂直480像素的圖像等,目前智能手機相機1200萬像素(水平4001像素×垂直3000像素)已經很普遍。
?(2) 量化量化( quantization)是把像素的亮度(灰度)變換成離散的整數值的操作。最簡單是用黑(0)和白(1)的2個數值即1比特(bit)(2級)來量化稱為二值圖像( binary image)。量化比特數越大與圖像質量越高,灰度級數表現越豐富,對于6比特(64級)以上的圖像,人眼幾乎看不出有什么區(qū)別。計算機中的圖像亮度值一般采用8比特(28=256級),也就是一個字節(jié),這表明著像素的亮度是0~255之間的數值0表示最黑,255表示最白。
彩色圖像,所有顏色都是由三原色調配而成的RGB,根據上文所講,通過RGB的組合,電腦可以表示256*256*256=16777216種顏色。如果圖像不經過壓縮,一個像素點對應3個字節(jié),則一張普通圖片640*480*3=921600 字節(jié)(約0.88MB)。彩色圖像可以根據國際電訊聯盟提供的公式轉換為灰色圖像:
Y = 0.299R+0.587G+0.114B
對于一些問題,不需要使用彩色圖像,通過轉換為灰色圖像,可以減小圖片儲存空間,提高后續(xù)算法速度。其實這就是一種相當簡單的圖像處理方式了,后面介紹的各種圖像變換都是為了,提高算法實時性,準確率等性能。
圖像處理算法主要包括: 圖像增強,去噪聲處理、圖像分割、邊緣檢測、幾何變換、Hough變換、傅里葉變換、小波變換等。后面講解這些算法時,都會給出 代碼與數據 文件,避免“留圖不留種”的現象。
1.3 學習環(huán)境搭建
目前我是用的環(huán)境時 win10,下載安裝anconda,然后安裝 opencv-python。