計算機(jī)視覺系統(tǒng)中圖像究竟經(jīng)歷了哪些“折磨”
點擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
如今,計算機(jī)視覺(CV)已成為人工智能的主要應(yīng)用之一(例如,圖像識別,對象跟蹤,多標(biāo)簽分類)。在本文中,我們將了解構(gòu)成計算機(jī)視覺系統(tǒng)的一些主要步驟。
一般的計算機(jī)視覺系統(tǒng)工作流程具有如下步驟:
1.圖像采集并輸入到系統(tǒng)中。
2.圖像預(yù)處理和提取特征。
3.利用提取的特征,通過機(jī)器學(xué)習(xí)系統(tǒng)來訓(xùn)練模型和做出預(yù)測。
接下來我們將簡要介紹圖像在這三個不同步驟中的一些主要過程。
在實現(xiàn)CV系統(tǒng)時,我們需要考慮兩個主要組件:圖像采集硬件和圖像處理軟件。部署CV系統(tǒng)要滿足的主要要求之一是測試其魯棒性。實際上,我們的系統(tǒng)應(yīng)該能夠適應(yīng)環(huán)境變化(例如照明,方向,縮放比例的變化),并能夠重復(fù)執(zhí)行其設(shè)計任務(wù)。為了滿足這些要求,可能有必要將某種形式的約束應(yīng)用于我們系統(tǒng)的硬件或軟件(例如,遠(yuǎn)程控制照明環(huán)境)
從硬件設(shè)備獲取圖像后,可以使用多種方法在軟件系統(tǒng)中以數(shù)字方式表示顏色(色彩空間)。兩種最著名的色彩空間是RGB(紅色,綠色,藍(lán)色)和HSV(色調(diào),飽和度,值)。使用HSV色彩空間的主要優(yōu)點是在僅考慮HS分量時可以使系統(tǒng)照明保持不變。這兩種顏色空間如下圖所示。

RGB與HSV顏色空間
一旦圖像進(jìn)入系統(tǒng)并使用色彩空間表示,我們便可以對圖像進(jìn)行不同的操作:
點運(yùn)算符:點算子的一些例子是:強(qiáng)度歸一化,直方圖均衡化和閾值處理。通常使用點運(yùn)算符來幫助更好地可視化人類視覺圖像,但不一定為計算機(jī)視覺系統(tǒng)提供任何優(yōu)勢。
區(qū)域操作:在這種情況下,我們從原始圖像中獲取一組點,以便在圖像的操作時重新得到一個像素點。這種類型的操作通常通過使用卷積來完成。為了獲得操作后的結(jié)果,可以使用不同類型的內(nèi)核與圖像進(jìn)行卷積。例如:直接平均,高斯平均和中值濾波器。對圖像進(jìn)行卷積運(yùn)算可以減少圖像中的噪波量并改善平滑度(盡管這也會導(dǎo)致圖像稍微模糊)。由于我們使用一組點來在新圖像中創(chuàng)建單個新點,因此新圖像的尺寸將必然小于原始圖像的尺寸。解決此問題的一種方法是應(yīng)用零填充(將像素值設(shè)置為零)或通過在圖像的邊界使用較小的模板。使用卷積的主要限制之一是在處理尺寸較大的模板時其執(zhí)行速度較慢,對此問題的一種的解決方案是改為使用傅立葉變換。卷積過程如下面的動圖所示。

對圖像進(jìn)行了預(yù)處理后,我們便可以進(jìn)行更多的操作,以嘗試通過使用諸如一階邊緣檢測(例如Prewitt算子,Sobel算子,Canny邊緣檢測器)等方法來提取圖像中的邊緣和形狀,或者通過霍夫變換檢測直線或者圓形。
對圖像進(jìn)行預(yù)處理后,可以使用特征提取器從圖像中提取四種主要類型的特征形態(tài):
全局特征:將整個圖像作為一個整體進(jìn)行分析,然后從特征提取器中提取單個特征向量。全局特征的一個簡單例子是合并像素值的直方圖。
基于網(wǎng)格或基于塊的特征:將圖像分為不同的塊,并從每個不同的塊中提取特征。這種類型的特征通常用于訓(xùn)練機(jī)器學(xué)習(xí)模型。
基于區(qū)域的特征:將圖像分割為不同的區(qū)域(例如,使用閾值或K-Means聚類等技術(shù),然后分解成不同的連通域),然后從每個區(qū)域中提取特征。可以通過使用區(qū)域和邊界描述方法(例如“矩”和“鏈碼”)來提取特征。
局部特征:在圖像中檢測到多個單個興趣點,并通過分析鄰近興趣點的像素來提取特征。可以從圖像中提取的感興趣的像素點主要有兩種主要類型:角點和斑點。可以使用諸如Harris、Stephens Detector和Gaussians的Laplacian之類的方法來提取它們。最后,可以使用諸如SIFT(尺度不變特征變換)之類的技術(shù)從檢測到的興趣點中提取特征。通常使用局部特征來匹配圖像以構(gòu)建全景圖或者進(jìn)行3D重建、以及從數(shù)據(jù)庫中檢索圖像。
一旦提取了一組判別特征,我們就可以使用它們來訓(xùn)練機(jī)器學(xué)習(xí)模型并進(jìn)行預(yù)測。
在計算機(jī)視覺中用于對圖像進(jìn)行分類的常用工具之一是視覺單詞袋(BoVW)。為了構(gòu)造視覺單詞袋,我們首先需要通過從一組圖像中提取所有特征(例如,使用基于網(wǎng)格的特征或局部特征)來創(chuàng)建詞匯表。之后,我們可以計算提取的特征在圖像中出現(xiàn)的次數(shù),并根據(jù)結(jié)果構(gòu)建頻率直方圖。使用頻率直方圖作為基本模板,可以通過比較圖像的直方圖來對圖像是否屬于同一類進(jìn)行分類,具體如下圖所示。

這個過程可以概括為以下幾個步驟:
我們首先通過使用特征提取算法(例如SIFT和Dense SIFT)從圖像數(shù)據(jù)集中提取不同的特征來構(gòu)建詞匯表。
其次,我們使用K-Means或DBSCAN等算法對詞匯表中的所有特征進(jìn)行聚類,并使用聚類質(zhì)心來總結(jié)數(shù)據(jù)分布。
之后,我們可以通過計算詞匯中不同特征出現(xiàn)在圖像中的次數(shù)來從每個圖像構(gòu)建頻率直方圖。
然后,通過對要分類的每個圖像重復(fù)相同的過程,然后使用任何分類算法,找出詞匯表中哪個圖像與我們的測試圖像最相似,可以對新圖像進(jìn)行分類。
此外,由于人工神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)較為成熟,例如卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)人工神經(jīng)網(wǎng)絡(luò)(RCNN),這些網(wǎng)絡(luò)結(jié)構(gòu)可以為計算機(jī)視覺提出一個替代的工作流程,取代上面的過程,直接由輸入圖像經(jīng)過神經(jīng)網(wǎng)絡(luò)直接得到輸入結(jié)果。具體形式如下圖所示。

在這種情況下,深度學(xué)習(xí)算法結(jié)合了計算機(jī)視覺工作流程的特征提取和分類步驟。使用卷積神經(jīng)網(wǎng)絡(luò)時,神經(jīng)網(wǎng)絡(luò)的每一層在描述時都應(yīng)用了不同的特征提取技術(shù)(例如,第1層檢測邊緣,第2層在圖像中找到形狀,第3層對圖像進(jìn)行分割等)。
機(jī)器學(xué)習(xí)在計算機(jī)視覺中的進(jìn)一步應(yīng)用包括多標(biāo)簽分類和對象識別等領(lǐng)域。在多標(biāo)簽分類中,我們旨在構(gòu)建一個模型,該模型能夠正確識別圖像中有多少個對象以及它們屬于哪個類。相反,在對象識別中,我們旨在通過識別圖像中不同對象的位置,將這一概念進(jìn)一步發(fā)展。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

