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