計算機視覺
賦予機器人“看”的功能正是“機器視覺”這個學科所研究的問題之一。這一領域十分廣闊,不僅包括通用技術,而且也包括為數衆多的專用技術——如NLP、指紋識别、相片解釋和機器人控制等等。這裡僅介紹一些計算機視覺的概念。
引言
計算機視覺首先是在一組感光性原件上,生成一個場景的圖像。這個圖像是錄影機通過鏡頭對在視野中的場景進行一個透視投影,然後後光電元件将其轉化為一個二維的、随時間變化的亮度矩陣圖像I(x,y,t),其中x,y為光電元件在數組中的位置,t為時間(對于有色視覺則需要三個這樣的矩陣來代表三原色)。一個由視覺引導的響應agent必須通過處理這個矩陣來産生這個場景的圖示模型或者一組特征,進而使他能直接計算一個動作。
希望擷取資訊的種類取決于agent的目的和任務。若要讓一個agent平安地通過一個混亂的環境,這個agent必須了解其中物體的位置、邊界、通路以及它所經路徑表面的特性。agent也許還應具備根據每隔一段時間所有以上資訊的變化來預測将來了能的變化。從一個或多個圖像中擷取此類資訊将及其困難,是以,隻能給出這類技術的一個概況。
操縱一輛汽車
在S-R agent的一些應用中,神經網絡可用來把圖像亮度矩陣直接轉化為動作。其中一個突出的例子就是用來駕駛一輛汽車的ALVINN系統。
網絡第一層有5個隐藏單元,第二層有30個輸出單元,以上所有單元均為sigmoid單元。輸出單元通過線性排列來控制汽車高度。若此輸出單元隊列頂端附近的一個輸出單元比其他大多數輸出單元高,則車向左行駛;若此輸出單元隊列底端附近的一個輸出單元比其他大多數輸出單元高,則車向右行駛。
此系統由改進過的“在空中(on-the-fly)”訓練方式來傳播,真人駕駛員開車,實際的駕駛角度被作為相應輸入的正确标志。網絡以反向傳播的方式遞增訓練,進而使他能用駕駛員所指定的駕駛角度來響應實際駕駛車輛時出現的每一個視覺模式。
機器視覺的兩個階段
- 圖像處理階段把原始圖像轉換成更适合于景物分析的圖像。
- 圖像處理包括降噪、增強邊緣和尋找圖像區域等不同的濾波操作。
- 景物分析主要試圖從已處理的圖像中産生一個對原始場景的圖示描述或基于特征的描述,并提供agent所處環境中與特定任務有關的資訊。
圖像處理
1. 平均法
假設初始圖像可表達為一個m*n的數組I(x,y),我們稱之為“圖像亮度數組”。他把圖像平面分成許多被稱為“像素(pixel)”的單元。這些數字表示這幅圖相中某點的光亮度,圖像中一些不規則之處可通過求平均數的方法得以平滑。這種滑動并求和的操作稱為“卷積”。如果我們的得到的數組十二進制(1或0),那麼就必須把這些權重總和和一個門檻值比較。平均法不僅将壓縮孤立的噪音點,而且将減小圖像的卷曲度(crispness),放棄那些微不足道的圖像元素。
有時,我們把權重函數W(x,y)的值在x和y構成的長方形内看做1,長方形之外看做0.長方形大小決定平滑度,長方形越大平滑度越高。下圖展示了一個求平均數操作是如何讓對一個二進制圖像先用一個長方形平滑函數平滑,然後将其與門檻值比較來進行操作的。
我們發現這個平滑操作加粗了寬線,去除了窄線和微小細節。
2. 邊緣增強
如前所述,計算機視覺常常設計圖像邊緣的提取,然後用這些邊緣來把圖像轉換成某種線條圖形。擷取輪廓的方法之一是先增強圖像中的邊界和邊緣,邊緣可以是圖像個部分之間的任意邊界。
我們可以通過在以為圖像上卷積一個位于垂直線上的、一半為負一半為正的視窗來增強這些圖像的邊緣強度。
3. 邊緣增強和平均法的結合
還有其他的變化比拉普拉斯變換更好,其中突出的有:Canny變換、Sobel變化、Hueckel變換等。
4. 區域查找
首先,我們必須定義什麼是圖像的一個區域。一個區域就是滿足一下特性的互相連接配接的像素:
下圖運用了亮度差别不超過1個單元這個同質的特性。當無需再進行分割時,可以合并那些滿足此同質特性的相鄰的候選區域。
場景分析
在用以上技術對圖像進行處理後,我們力圖從中擷取所需有關場景的資訊。計算機視覺的這個階段被稱為“場景分析”。
1. 解釋圖像中的線條和曲線
對已知的包含直線物體的場景進行分析時,其中關鍵的一步就是圖像中線條的假定。可以通過采用把直線段與邊緣或區域的邊界拟合的技術來生成直線。下圖就是對一個房間的解釋。