計(jì)算機(jī)視覺(jué)是指為計(jì)算機(jī)賦予人類(lèi)視覺(jué)這一技術(shù)目標(biāo),從而賦能裝配線(xiàn)檢查到駕駛輔助和機(jī)器人等應(yīng)用。計(jì)算機(jī)缺乏像人類(lèi)一樣憑直覺(jué)產(chǎn)生視覺(jué)和畫(huà)面的能力。我們必須給予計(jì)算機(jī)一些算法,以便處理領(lǐng)域特異性任務(wù)。
本文著眼于使計(jì)算機(jī)能夠像人類(lèi)一樣通過(guò)“看”來(lái)感知世界,從這一視角對(duì)人工智能 (AI) 進(jìn)行了探討。我將簡(jiǎn)要比較每一類(lèi)計(jì)算機(jī)視覺(jué),尤其關(guān)注在本地而不是依賴(lài)基于云的資源收集和處理數(shù)據(jù),并根據(jù)數(shù)據(jù)采取行動(dòng)的嵌入式系統(tǒng)。
什么是計(jì)算機(jī)視覺(jué)?
20 世紀(jì) 60 年代,計(jì)算機(jī)視覺(jué)已經(jīng)能夠執(zhí)行從頁(yè)面上讀取文本(光學(xué)字符識(shí)別)和識(shí)別圓形或矩形等形狀這類(lèi)任務(wù)。從那時(shí)起,計(jì)算機(jī)視覺(jué)便成為 AI 的核心領(lǐng)域之一,它包括了任何從數(shù)據(jù)中感知、綜合或推斷含義的計(jì)算機(jī)系統(tǒng)。
計(jì)算機(jī)視覺(jué)有三種方法:
- 傳統(tǒng)計(jì)算機(jī)視覺(jué)是指用來(lái)處理諸如運(yùn)動(dòng)估計(jì)、全景圖像拼接或直線(xiàn)檢測(cè)等任務(wù)的編程算法。傳統(tǒng)計(jì)算機(jī)視覺(jué)使用標(biāo)準(zhǔn)信號(hào)處理和邏輯來(lái)處理任務(wù)。工程師需要手動(dòng)選擇用于從圖像中提取含義的函數(shù),然后在處理任務(wù)的算法中使用所生成的特征。Canny 邊緣檢測(cè)算法可以找出運(yùn)動(dòng)的輪廓,光流算法可以找出運(yùn)動(dòng)的矢量,這有助于在圖像或運(yùn)動(dòng)跟蹤后續(xù)圖像中分離出物體。對(duì)于需要根據(jù)此任務(wù)或環(huán)境進(jìn)行校準(zhǔn)的參數(shù),需要手動(dòng)或通過(guò)輔助算法做出調(diào)整。
- 經(jīng)典機(jī)器學(xué)習(xí)計(jì)算機(jī)視覺(jué)需要由專(zhuān)家來(lái)“打造”特征集,供機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練。其中許多特征是與傳統(tǒng)計(jì)算機(jī)視覺(jué)應(yīng)用所共有的。并非所有特征都有用,因此需要進(jìn)行分析以去除無(wú)信息特征;機(jī)器學(xué)習(xí)算法將使用這些特征進(jìn)行訓(xùn)練,以便找出可能難以手動(dòng)分離的模式。若要有效地實(shí)現(xiàn)這些算法,需要具備圖像處理和機(jī)器學(xué)習(xí)方面的專(zhuān)業(yè)知識(shí)。
- 深度學(xué)習(xí)計(jì)算機(jī)視覺(jué)屬于機(jī)器學(xué)習(xí),但使用的是非常龐大的神經(jīng)網(wǎng)絡(luò)模型,對(duì)大量未經(jīng)處理的“原始”數(shù)據(jù)進(jìn)行運(yùn)算。深度學(xué)習(xí)對(duì)計(jì)算機(jī)視覺(jué)產(chǎn)生了重大影響,它將特征提取操作拉入模型之中,使得算法可以學(xué)習(xí)信息最豐富的特征,而無(wú)需專(zhuān)業(yè)知識(shí)來(lái)手動(dòng)打造特征集。深度學(xué)習(xí)甚至能夠更好地分離出微妙的模式,但對(duì)計(jì)算和內(nèi)存的要求更高。
那么,哪一類(lèi)計(jì)算機(jī)視覺(jué)最好呢?
這最終取決于表 1 中概述的幾個(gè)因素。此表只是籠統(tǒng)地進(jìn)行概括,其中的準(zhǔn)確性和任務(wù)復(fù)雜性等指標(biāo)依賴(lài)于具體用例。
表 1:計(jì)算機(jī)視覺(jué)技術(shù)比較
經(jīng)典機(jī)器學(xué)習(xí)計(jì)算機(jī)視覺(jué)介于傳統(tǒng)方法和深度學(xué)習(xí)方法之間;與其他兩種方法相比,能夠從中受益的應(yīng)用集合規(guī)模較小。在簡(jiǎn)單直接、高通量或安全攸關(guān)的應(yīng)用中,傳統(tǒng)計(jì)算機(jī)視覺(jué)可能準(zhǔn)確而高效。深度學(xué)習(xí)通用性超強(qiáng)、開(kāi)發(fā)難度超低,并且在復(fù)雜應(yīng)用中的準(zhǔn)確性超高,如在高密度設(shè)計(jì)的印刷電路板 (PCB) 裝配驗(yàn)證期間用于發(fā)現(xiàn)微小的缺失元件。
一些應(yīng)用可以通過(guò)同時(shí)采用多種類(lèi)型的計(jì)算機(jī)視覺(jué)算法而受益,相互取長(zhǎng)補(bǔ)短。這種方法常用于環(huán)境非常多變的安全攸關(guān)型應(yīng)用中,如駕駛輔助系統(tǒng)。例如,您可以并行采用基于傳統(tǒng)計(jì)算機(jī)視覺(jué)方法的光流和深度學(xué)習(xí)模型來(lái)跟蹤附近的車(chē)輛,并且使用一種算法對(duì)結(jié)果進(jìn)行融合,從而確定兩種方法是否一致。如果不一致,系統(tǒng)可能會(huì)警告駕駛員或啟動(dòng)安全操控。
替代方法是依次使用多種類(lèi)型的計(jì)算機(jī)視覺(jué)。條形碼讀取器可以使用深度學(xué)習(xí)來(lái)定位感興趣區(qū)域,對(duì)這些區(qū)域進(jìn)行裁剪,然后使用傳統(tǒng)計(jì)算機(jī)視覺(jué)算法進(jìn)行解碼。
深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)應(yīng)用中的益處
與傳統(tǒng)計(jì)算機(jī)視覺(jué)和經(jīng)典機(jī)器學(xué)習(xí)相比,深度學(xué)習(xí)由于在研究、開(kāi)源和商業(yè)社區(qū)中非常受歡迎,因此始終具有較高的準(zhǔn)確性,并且在迅速改進(jìn)。圖 1 從開(kāi)發(fā)者的角度總結(jié)了這三種技術(shù)在數(shù)據(jù)流方面的差異。
圖 1:各種計(jì)算機(jī)視覺(jué)方法的數(shù)據(jù)流
深度學(xué)習(xí)是一種計(jì)算密集型方法。然而,由于處理能力、速度、加速器(如神經(jīng)處理單元和圖形處理單元)的改進(jìn),以及對(duì)矩陣和向量運(yùn)算的軟件支持的提升,計(jì)算要求增加的問(wèn)題得以緩解,即使在嵌入式系統(tǒng)上也是如此。諸如 AM62A7 等微處理器可以利用硬件加速器,以很高的幀率運(yùn)行深度學(xué)習(xí)算法。
計(jì)算機(jī)視覺(jué)實(shí)踐
TI AM6xA 產(chǎn)品組合(如 AM62A7)中的處理器包含深度學(xué)習(xí)加速硬件和輔助軟件,有利于傳統(tǒng)及深度學(xué)習(xí)計(jì)算機(jī)視覺(jué)任務(wù)。在 TDA4VM 和 AM68PA 等處理器上,數(shù)字信號(hào)處理器內(nèi)核(如 C66x)以及用于光流和立體聲深度估計(jì)的硬件加速器還能為高性能傳統(tǒng)計(jì)算機(jī)視覺(jué)任務(wù)賦能。
借助能夠同時(shí)支持傳統(tǒng)計(jì)算機(jī)視覺(jué)和深度學(xué)習(xí)計(jì)算機(jī)視覺(jué)的處理器,將有可能打造出與科幻夢(mèng)想相媲美的工具。自動(dòng)購(gòu)物車(chē)將會(huì)簡(jiǎn)化購(gòu)物過(guò)程;手術(shù)和醫(yī)療機(jī)器人將指導(dǎo)醫(yī)生發(fā)現(xiàn)早期疾病征兆;移動(dòng)機(jī)器人將會(huì)修剪草坪和遞送包裹。請(qǐng)參閱 TI 的邊緣 AI 視覺(jué)頁(yè)面,探究嵌入式計(jì)算機(jī)視覺(jué)如何改變世界。