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