上??萍拣^的“機(jī)器人世界”展區(qū),有一個(gè)引人注目的展項(xiàng):機(jī)場服務(wù)機(jī)器人。一個(gè)機(jī)器手臂被安裝在行李傳送帶中央,不同顏色的行李散布在傳送帶上。當(dāng)游客選擇了某一種顏色的行李后,機(jī)器手臂抬起前臂,左右擺動(dòng)進(jìn)行觀察。通過安裝在前臂上的兩個(gè)攝像頭的幫助,機(jī)器人識別并選定目標(biāo),同時(shí)驅(qū)動(dòng)機(jī)器手臂將目標(biāo)提起。
自從機(jī)場服務(wù)機(jī)器人投入展覽后,一直是該展區(qū)的熱門展項(xiàng),駐足圍觀的游客絡(luò)繹不絕。對機(jī)器人的表現(xiàn),游客也是褒貶不一。有些游客對機(jī)器人的精彩表演連連稱贊;有些人認(rèn)為機(jī)器人反應(yīng)遲緩、顯得笨重,相比人類的表現(xiàn),令人失望。
識別這些行李對于機(jī)器人來說是不是很困難?機(jī)器人在視覺方面能否做得更好,能否識別更復(fù)雜的對象?它們的目力能否超過人類?它們究竟能看到什么?
這些問題將我們引向了一個(gè)新興的熱門領(lǐng)域:計(jì)算機(jī)視覺。計(jì)算機(jī)視覺是人工智能的子學(xué)科,而人工智能則是仿生學(xué)的一種。人工智能旨在模仿人(有時(shí)也包括其他動(dòng)物)的行為和思維,而計(jì)算機(jī)視覺將模仿的對象集中在了人眼上,即模仿人“看”的行為。換言之,計(jì)算機(jī)視覺是一門利用攝影機(jī)和計(jì)算機(jī)代替人眼進(jìn)行圖像獲取、目標(biāo)識別、跟蹤、測量、理解和處理的學(xué)科。作為一門交叉學(xué)科,計(jì)算機(jī)視覺與許多學(xué)科有重要聯(lián)系:機(jī)器學(xué)習(xí)、神經(jīng)生物學(xué)、認(rèn)知科學(xué)、信號處理(圖像處理)等。在后面的介紹中,這些學(xué)科間的聯(lián)系將變得更加清晰。
眼睛是人體獲取外界信息最重要的傳感器。它高速、準(zhǔn)確、信息量大,為人的決策和行為提供了豐富的信息。同樣,計(jì)算機(jī)視覺系統(tǒng)作為人工智能體的一個(gè)感知器,也常常為決策提供了最重要的信息。那么,一個(gè)理想的計(jì)算機(jī)視覺系統(tǒng)究竟完成了什么任務(wù),又給智能體提供了怎樣的信息呢?
讓我們來舉一個(gè)簡單的例子。你走進(jìn)一家咖啡店,發(fā)現(xiàn)你的好友彼得坐在角落里,雙手托著下巴,一臉的不愉快。于是,你決定走過去安慰一下。假如完成該任務(wù)的不是人類而是機(jī)器人,則要由其計(jì)算機(jī)視覺系統(tǒng)獲取圖像,然后對該圖像進(jìn)行處理,并得到以下信息:1.這是好友彼得;2.他看上去很沮喪。這兩條信息被傳遞給決策器,后者隨即做出了走過去安慰的計(jì)劃,計(jì)劃則最終被四肢等效應(yīng)器執(zhí)行。
對人來說,這個(gè)過程再簡單、自然不過,但對于計(jì)算機(jī)視覺系統(tǒng)來說,卻是個(gè)相當(dāng)復(fù)雜的過程。對該圖像進(jìn)行處理的過程中,計(jì)算機(jī)分別完成了三個(gè)層次的任務(wù):初級視覺、中級視覺和高級視覺。這樣的分類方式不僅和視覺任務(wù)的復(fù)雜程度有關(guān),也和人類在完成這些任務(wù)時(shí)所涉及到的視神經(jīng)和腦神經(jīng)部位有關(guān)。在以下的篇幅中我們將介紹一些分別屬于這三個(gè)層次的典型的計(jì)算機(jī)視覺任務(wù)。
初級視覺
現(xiàn)代數(shù)字成像技術(shù)使計(jì)算機(jī)視覺成為可能。利用CCD或CMOS等感光元件,可獲得數(shù)字化的圖像。一般來說,對像素進(jìn)行處理的任務(wù)即屬于初級視覺。在挖掘出圖像中包含的信息時(shí),首先需要對圖像進(jìn)行一些處理,以便能夠執(zhí)行更高級的任務(wù)。圖像的主體和背景之間、同一表面上不同的材質(zhì)和顏色之間等都會形成邊界,從圖像中提取出邊、角、點(diǎn)等特征能幫助計(jì)算機(jī)理解圖像,并利用濾波的方式進(jìn)行邊界特征提取。像濾波這樣的信號處理方法在初級視覺中被廣泛應(yīng)用,除了特征提取外,還有降噪、平滑等。
圖像上各種顏色的像素并不是隨機(jī)分布的,它們一般都在圖像上形成一定含義的組合。比如,草地是由綠色的像素拼合成的,而天空是由大量的藍(lán)色像素組成的。找到這樣的具有相同屬性的像素形成的像素塊稱為分割。當(dāng)然,提取邊界可以幫助分割圖像,但是簡單地把所有的邊界分割出的區(qū)域都作為具有相同屬性的像素塊是否正確呢?這正是圖像分割最具有挑戰(zhàn)性的。比如一副斑馬圖片,計(jì)算機(jī)如何知道斑馬的嘴不是背景的一部分呢?這就涉及到了圖像的語義。在給圖像進(jìn)行初級分割后,更精確的分割任務(wù)就要交給中級或高級視覺了。
人類有兩只眼睛,同樣,機(jī)器人也可以通過安裝兩個(gè)經(jīng)過標(biāo)定的攝像頭來實(shí)現(xiàn)雙目視覺,從而實(shí)現(xiàn)測距,即分辨物體在三維空間中的位置。上文的例子中,雙目視覺可以依據(jù)透視原則和遮擋的關(guān)系來幫助視覺系統(tǒng)確定彼得所坐的位置,比如在第二張桌子和第三張桌子之間。
中級視覺
中級視覺是建立在初級視覺的計(jì)算結(jié)果上的。在執(zhí)行中級視覺任務(wù)時(shí),不僅使用了實(shí)時(shí)的初級視覺計(jì)算結(jié)果,還結(jié)合了一定的視覺經(jīng)驗(yàn)。舉個(gè)簡單的例子,平時(shí)生活中我們所看到的,被桌上的杯子遮擋的部分也是桌子的一部分;上文斑馬深色的口鼻部并非背景的一部分,而是斑馬的一部分。事實(shí)上,這些結(jié)合經(jīng)驗(yàn)的視覺任務(wù)可以首先被應(yīng)用到分割任務(wù)中。中級視覺中的分割不再是僅僅依靠顏色將圖像分為若干個(gè)像素塊,而是產(chǎn)生更有意義、更精確的分割,這樣的分割不是僅靠邊界提取就能夠?qū)崿F(xiàn)的。分割算法不計(jì)其數(shù),常用的有類聚的方法、基于特征向量的方法、基于圖論的方法、期望最大化、概率的方法(貝葉斯方法)等。
在經(jīng)驗(yàn)的幫助下,視覺系統(tǒng)可以通過擬合的方式來解釋甚至糾正圖像中的變形或缺失。比如,根據(jù)經(jīng)驗(yàn)桌子的邊一般是直的,則視覺系統(tǒng)在提取到桌子的部分邊緣或拐點(diǎn)后,就可以用直線來擬合被遮擋而缺失的部分,或因攝像頭的棱鏡引起的失真。這樣,機(jī)器人在走向彼得時(shí)就能避免撞到桌子。
經(jīng)驗(yàn)也并非是絕對正確的,此刻看到的也許是經(jīng)驗(yàn)中所缺失的。通過一個(gè)加權(quán)的概率模型,視覺系統(tǒng)可以將目前觀察到的圖像和經(jīng)驗(yàn)中的數(shù)據(jù)結(jié)合起來,從而對未來的狀態(tài)做一個(gè)預(yù)測。這樣的方法常常被用于跟蹤,也就是在一幀幀連續(xù)播放的畫面中,根據(jù)目標(biāo)在以前和目前圖像中的位置來預(yù)測目標(biāo)在未來圖像中的位置。比如高速公路上的車輛跟蹤系統(tǒng),系統(tǒng)用從對象上提取出的特征點(diǎn)(紅色)來定位目標(biāo)。視覺跟蹤常用的算法有卡爾曼濾波器、非線性動(dòng)態(tài)模型等。
目前的中級計(jì)算機(jī)視覺研究受到了心理學(xué)和認(rèn)知科學(xué)的影響。比如格式塔心理學(xué)對基于經(jīng)驗(yàn)和認(rèn)知整體的中級視覺有較大貢獻(xiàn)。
高級視覺
也許高級視覺才是計(jì)算機(jī)視覺中最有趣的一部分,因?yàn)樗侨祟愐曈X中至今還無法被完全解密的部分(也許連部分解密都談不上)。當(dāng)你站在雜亂、昏暗的酒桌前,從看到的圖像中識別出沮喪的彼得時(shí),整個(gè)過程只需要0.3秒。事實(shí)上,現(xiàn)代處理器的運(yùn)算速度遠(yuǎn)遠(yuǎn)高于人類視神經(jīng)和大腦中神經(jīng)突觸的信息傳遞速度。但人類視覺的功能是如此的強(qiáng)大,以至于計(jì)算機(jī)視覺系統(tǒng)遠(yuǎn)遠(yuǎn)不能達(dá)到人類的水平。較新的研究表明,人類發(fā)達(dá)的視覺系統(tǒng)得益于一套大規(guī)模并行計(jì)算系統(tǒng)──不計(jì)其數(shù)的神經(jīng)元形成的視覺通路,它就像一張有無數(shù)節(jié)點(diǎn)的計(jì)算網(wǎng)絡(luò),信息在其中往返傳遞。
高級視覺任務(wù)幾乎都圍繞著兩個(gè)字展開:識別。識別是給對象貼上標(biāo)簽的過程,即給對象附上含有語義的名稱或描述。這是一種高級的視覺活動(dòng),需要學(xué)習(xí)、聯(lián)想等更高級的大腦活動(dòng)的參與。拿圖像的分割任務(wù)來說,圖像不僅被分割成獨(dú)立的像素塊,視覺系統(tǒng)還為每個(gè)像素塊貼上“標(biāo)簽”,比如“窗子”、“桌子”、“酒瓶”、“彼得的臉”等。通過模板比對,視覺系統(tǒng)將彼得的臉和經(jīng)驗(yàn)中的圖像聯(lián)系了起來,從而引起了系統(tǒng)的興趣。從彼得的臉上提取的特征中,視覺系統(tǒng)還解讀出了彼得的沮喪。于是在隨后的圖像中,視覺系統(tǒng)都將注意力放在了彼得的臉上,試圖跟蹤該對象。視覺系統(tǒng)在繼續(xù)跟蹤的同時(shí),將從圖像中得到的信息發(fā)送給決策器。
即使是當(dāng)代最成功的算法和視覺系統(tǒng)都無法像人類一般高效地識別物體。對我們來說,識別 “一個(gè)瓷杯”處于不同狀態(tài)似乎并不怎么困難,但對計(jì)算機(jī)視覺系統(tǒng)來說卻不容易。杯子可以有不同的擺放姿勢、不同的光照強(qiáng)度和顏色、出現(xiàn)在畫面中的不同位置、可能有的部分被遮擋,如果按不同狀態(tài)就是不同的杯子這一點(diǎn)來判斷,那就可能誤判為存在不計(jì)其數(shù)的各式各樣的杯子(即外觀的區(qū)別)。在絕大多數(shù)計(jì)算機(jī)視覺系統(tǒng)中,目標(biāo)都被要求符合一些限制條件,否則,計(jì)算機(jī)視覺將成為不可能的任務(wù)。由此可見,在雜亂、昏暗的酒桌一角發(fā)現(xiàn)彼得對計(jì)算機(jī)視覺系統(tǒng)來說是多不容易的一件事情。
對人類來說,識別并非與生俱來的本領(lǐng)。嬰兒睜大眼睛看著陌生的世界,他們的視覺實(shí)踐是從測距、分割開始的。幼兒幾乎每時(shí)每刻都在努力學(xué)習(xí)如何給圖片貼標(biāo)簽。他們學(xué)習(xí)得很快,低齡兒童不僅可以成功地識別物品,還可以在一定程度上察言觀色,感受到由表情傳達(dá)的情緒。通過獎(jiǎng)勵(lì)和帶教,可以加速兒童的學(xué)習(xí)過程。
通過這樣的啟發(fā),高級視覺還將依賴機(jī)器學(xué)習(xí)這門學(xué)科。機(jī)器學(xué)習(xí)是研究如何通過算法讓計(jì)算機(jī)實(shí)現(xiàn)人類的學(xué)習(xí)過程,從而讓計(jì)算機(jī)不僅能夠?qū)崿F(xiàn)簡單枯燥的任務(wù),還能夠向智能邁進(jìn)一步。作為人工智能領(lǐng)域的核心學(xué)科,機(jī)器學(xué)習(xí)如百家爭鳴,不斷取得著新的成績。當(dāng)今重要的機(jī)器學(xué)習(xí)算法有人工神經(jīng)網(wǎng)絡(luò)、遺傳算法、支持向量機(jī)、貝葉斯網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)等。
至今,計(jì)算機(jī)視覺系統(tǒng)最為成功的案例,莫過于手寫數(shù)字識別。MNIST是使用最廣泛的手寫數(shù)字庫,為各類識別算法提供了一比高下的平臺。MNIST中含有七萬幅邊長為28個(gè)像素的圖像。目前最出色的識別算法一般都可以達(dá)到1%以內(nèi)的錯(cuò)誤率。然而,MNIST只是對目標(biāo)的外觀做了有限多的變化,并沒有涉及到有如杯子在不同狀態(tài)下的各種變化。而且,28×28=784個(gè)像素的圖片實(shí)在很小,如果處理普通大小的照片,視覺系統(tǒng)的運(yùn)算量就會呈指數(shù)級增長,甚至讓超級計(jì)算機(jī)都無能為力。
因此,對于哪怕是當(dāng)今世上最聰明的機(jī)器人來說,像人類一樣看到酒吧里沮喪的彼得并上前安慰,也是天方夜譚。但計(jì)算機(jī)視覺是一門新興的學(xué)科,隨著處理器硬件和人工智能算法的發(fā)展,也許有朝一日機(jī)器人也可以達(dá)到人類的視覺功能。