邊緣計(jì)算機(jī)視覺(jué)可以實(shí)現(xiàn) AI
文章來(lái)源:EDC
作者:Reese Grimsley德州儀器系統(tǒng)應(yīng)用工程師
使用邊緣AI處理解碼條形碼的條形碼掃描儀示例
計(jì)算機(jī)視覺(jué)是指將人類(lèi)視覺(jué)(一種信息豐富且直觀的傳感器)引入計(jì)算機(jī)的技術(shù)目標(biāo),使裝配線檢查、安全系統(tǒng)、駕駛員輔助和機(jī)器人等應(yīng)用成為可能。
不幸的是,計(jì)算機(jī)缺乏像人類(lèi)那樣直覺(jué)視覺(jué)和圖像的能力。相反,我們必須為計(jì)算機(jī)提供算法來(lái)解決特定領(lǐng)域的任務(wù)。
我們經(jīng)常認(rèn)為我們的愿景是理所當(dāng)然的,以及這種生物能力如何解釋我們的周?chē)h(huán)境,從看冰箱檢查食物保質(zhì)期到專(zhuān)心觀察紅綠燈變綠。
計(jì)算機(jī)視覺(jué)可以追溯到 1960 年代,最初用于從頁(yè)面讀取文本(光學(xué)字符識(shí)別)和識(shí)別圓形或矩形等簡(jiǎn)單形狀等任務(wù)。此后,計(jì)算機(jī)視覺(jué)已成為人工智能(AI)的核心領(lǐng)域之一,它涵蓋了任何試圖從數(shù)據(jù)中感知,合成或推斷更深層次含義的計(jì)算機(jī)系統(tǒng)。有三種類(lèi)型的計(jì)算機(jī)視覺(jué):傳統(tǒng)或“基于規(guī)則”、經(jīng)典機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。
在本文中,我將從讓計(jì)算機(jī)使用視覺(jué)來(lái)更像人類(lèi)一樣感知世界的角度來(lái)考慮人工智能。我還將描述每種類(lèi)型的計(jì)算機(jī)視覺(jué)的權(quán)衡,特別是在本地收集、處理和處理數(shù)據(jù)的嵌入式系統(tǒng)中,而不是依賴基于云的資源。
傳統(tǒng)計(jì)算機(jī)視覺(jué)
傳統(tǒng)的計(jì)算機(jī)視覺(jué)是指解決運(yùn)動(dòng)估計(jì)、全景圖像拼接或線條檢測(cè)等任務(wù)的編程算法。
傳統(tǒng)的計(jì)算機(jī)視覺(jué)使用標(biāo)準(zhǔn)的信號(hào)處理和邏輯來(lái)解決任務(wù)。Canny邊緣檢測(cè)或光流等算法可以分別找到運(yùn)動(dòng)的輪廓或矢量,這對(duì)于隔離圖像中的對(duì)象或后續(xù)圖像之間的運(yùn)動(dòng)跟蹤非常有用。這些類(lèi)型的算法依賴于過(guò)濾器、轉(zhuǎn)換、啟發(fā)式和閾值,從圖像或視頻中提取有意義的信息。這些算法通常是特定于應(yīng)用程序的算法的前身,例如解碼一維條形碼中的信息,其中一系列規(guī)則在檢測(cè)到單個(gè)條形時(shí)對(duì)條形碼進(jìn)行解碼。
傳統(tǒng)的計(jì)算機(jī)視覺(jué)在其簡(jiǎn)單性和可解釋性方面是有益的,這意味著開(kāi)發(fā)人員可以在每一步分析算法并解釋算法為什么會(huì)如此。這在軟件審核或安全關(guān)鍵型應(yīng)用程序中非常有用。然而,傳統(tǒng)的計(jì)算機(jī)視覺(jué)往往需要更多的專(zhuān)業(yè)知識(shí)才能正確實(shí)現(xiàn)。
算法通常具有一小組參數(shù),需要調(diào)整這些參數(shù)才能在不同環(huán)境中實(shí)現(xiàn)最佳性能。實(shí)施可能很困難,特別是對(duì)于優(yōu)化的高通量應(yīng)用程序。某些規(guī)則、算法決策或參數(shù)值可能會(huì)對(duì)不符合原始期望的圖像產(chǎn)生意想不到的影響,從而有可能欺騙算法。如果不暴露新的邊緣情況或增加算法的復(fù)雜性,此類(lèi)漏洞和邊緣情況可能很難修復(fù)。
用于計(jì)算機(jī)視覺(jué)的經(jīng)典機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)是一類(lèi)算法,它使用數(shù)據(jù)在算法中設(shè)置參數(shù),而不是直接編程或校準(zhǔn)。這些算法,如支持向量機(jī)、多層感知器(人工神經(jīng)網(wǎng)絡(luò)的前身)和k-最近鄰,被用于傳統(tǒng)計(jì)算機(jī)視覺(jué)難以解決的應(yīng)用。例如,在傳統(tǒng)的計(jì)算機(jī)視覺(jué)算法上編程“識(shí)別狗”是一項(xiàng)艱巨的任務(wù),尤其是在存在復(fù)雜場(chǎng)景和物體的情況下。訓(xùn)練機(jī)器學(xué)習(xí)算法以從 100 秒或 1000 秒的樣本圖像中學(xué)習(xí)參數(shù)更容易處理。通過(guò)使用包含這些邊緣情況示例的數(shù)據(jù)集來(lái)解決邊緣情況。
訓(xùn)練是計(jì)算密集型的,但在新數(shù)據(jù)上運(yùn)行算法需要的計(jì)算資源要少得多,因此可以實(shí)時(shí)運(yùn)行。這些經(jīng)過(guò)訓(xùn)練的模型通常具有較低的可解釋性,但對(duì)數(shù)據(jù)中的小計(jì)劃外變化(例如對(duì)象的方向或背景噪音)更具彈性??梢酝ㄟ^(guò)使用更多數(shù)據(jù)重新訓(xùn)練來(lái)修復(fù)無(wú)法很好地處理的變體。具有更多參數(shù)的較大模型通常具有更高的精度,但具有更長(zhǎng)的訓(xùn)練時(shí)間以及運(yùn)行時(shí)所需的更多計(jì)算,這在歷史上阻止了非常大的模型在嵌入式處理器上的實(shí)時(shí)應(yīng)用程序中使用。
基于機(jī)器學(xué)習(xí)的經(jīng)典計(jì)算機(jī)視覺(jué)方法仍然需要專(zhuān)家來(lái)“制作”訓(xùn)練機(jī)器學(xué)習(xí)模型的特征集。其中許多功能在傳統(tǒng)的計(jì)算機(jī)視覺(jué)應(yīng)用程序中是通用的。并非所有功能都有用,因此需要分析以修剪無(wú)信息功能。有效實(shí)現(xiàn)這些算法需要圖像處理和機(jī)器學(xué)習(xí)方面的專(zhuān)業(yè)知識(shí)。
深度學(xué)習(xí)
深度學(xué)習(xí)是指在大部分未處理或“原始”數(shù)據(jù)上運(yùn)行的非常大的神經(jīng)網(wǎng)絡(luò)模型。深度學(xué)習(xí)通過(guò)將特征提取操作拉入模型本身,對(duì)計(jì)算機(jī)視覺(jué)產(chǎn)生了巨大影響,從而使算法根據(jù)需要學(xué)習(xí)信息量最大的特征。圖1顯示了每種計(jì)算機(jī)視覺(jué)方法中的數(shù)據(jù)流。
圖1. 每種計(jì)算機(jī)視覺(jué)方法中的數(shù)據(jù)流
深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)類(lèi)型中具有最普遍性;神經(jīng)網(wǎng)絡(luò)是通用函數(shù)逼近器,這意味著它們能夠?qū)W習(xí)輸入和輸出之間的任何關(guān)系(只要存在這種關(guān)系)。深度學(xué)習(xí)擅長(zhǎng)在數(shù)據(jù)中發(fā)現(xiàn)微妙和明顯的模式,并且對(duì)輸入變化最寬容。物體識(shí)別、人體姿勢(shì)估計(jì)和像素級(jí)場(chǎng)景分割等應(yīng)用是常見(jiàn)的用例。
深度學(xué)習(xí)需要最少的直接調(diào)諧和圖像處理專(zhuān)業(yè)知識(shí)。這些算法依賴于大型和高質(zhì)量的數(shù)據(jù)集,通過(guò)逐步找到在訓(xùn)練期間優(yōu)化損失或錯(cuò)誤指標(biāo)的參數(shù)來(lái)幫助通用算法學(xué)習(xí)模式。新手開(kāi)發(fā)人員可以有效地利用深度學(xué)習(xí),因?yàn)橹攸c(diǎn)從算法的實(shí)現(xiàn)轉(zhuǎn)移到數(shù)據(jù)集管理。此外,許多深度學(xué)習(xí)模型是公開(kāi)可用的,因此可以針對(duì)特定用例對(duì)其進(jìn)行重新訓(xùn)練。使用這些公開(kāi)可用的模型很簡(jiǎn)單;但是,開(kāi)發(fā)完全自定義的體系結(jié)構(gòu)確實(shí)需要更多的專(zhuān)業(yè)知識(shí)。
與傳統(tǒng)的計(jì)算機(jī)視覺(jué)和經(jīng)典機(jī)器學(xué)習(xí)相比,深度學(xué)習(xí)具有更高的準(zhǔn)確性,并且由于在研究(以及不斷增長(zhǎng)的商業(yè))社區(qū)中的巨大普及而迅速提高。然而,深度學(xué)習(xí)通常具有較差的可解釋性,因?yàn)樗惴ǚ浅4笄覐?fù)雜;與訓(xùn)練數(shù)據(jù)集完全不同的圖像可能會(huì)導(dǎo)致意外、不可預(yù)測(cè)的行為。由于它們的大小,深度學(xué)習(xí)模型的計(jì)算量非常大,因此需要特殊的硬件來(lái)加速它們的實(shí)時(shí)操作。在大型數(shù)據(jù)集上訓(xùn)練大型模型的成本可能很高,并且管理大型數(shù)據(jù)集通常既耗時(shí)又乏味。
然而,處理能力、速度、加速器(如神經(jīng)處理單元和圖形處理單元)的改進(jìn),以及對(duì)矩陣和矢量運(yùn)算的軟件支持的改進(jìn),使得計(jì)算需求的增加變得不那么重要,即使在嵌入式系統(tǒng)上也是如此。AM6xA 產(chǎn)品組合等嵌入式微處理器利用硬件加速器以高幀速率運(yùn)行深度學(xué)習(xí)算法。
比較不同類(lèi)型的計(jì)算機(jī)視覺(jué)
那么哪種類(lèi)型的計(jì)算機(jī)視覺(jué)最好呢?
這最終取決于其應(yīng)用,如圖 2 所示。
圖2. 計(jì)算機(jī)視覺(jué)類(lèi)型及其應(yīng)用
簡(jiǎn)而言之,對(duì)于大多數(shù)屬性,具有經(jīng)典機(jī)器學(xué)習(xí)的計(jì)算機(jī)視覺(jué)介于其他兩種方法之間;與其他兩種方法相比,受益的應(yīng)用程序集很小。傳統(tǒng)的計(jì)算機(jī)視覺(jué)在簡(jiǎn)單、高通量或安全關(guān)鍵型應(yīng)用中可以足夠準(zhǔn)確和高效。深度學(xué)習(xí)是最通用的,最容易開(kāi)發(fā)的,并且在復(fù)雜的應(yīng)用和環(huán)境中具有最高的精度,例如在高密度設(shè)計(jì)的PCB組裝驗(yàn)證期間識(shí)別微小的缺失組件。
一些應(yīng)用程序受益于串聯(lián)使用多種類(lèi)型的計(jì)算機(jī)視覺(jué)算法,以便它們覆蓋彼此的弱點(diǎn)。這種方法在處理高度可變環(huán)境的安全關(guān)鍵應(yīng)用中很常見(jiàn),例如駕駛員輔助系統(tǒng)。例如,您可以使用傳統(tǒng)的計(jì)算機(jī)視覺(jué)方法和深度學(xué)習(xí)模型來(lái)跟蹤附近的車(chē)輛,并使用算法融合結(jié)果以確定這兩種方法是否相互一致。如果他們不這樣做,系統(tǒng)可以警告駕駛員或開(kāi)始優(yōu)雅的安全操作。或者,可以按順序使用多種類(lèi)型的計(jì)算機(jī)視覺(jué)。條形碼閱讀器可以使用深度學(xué)習(xí)來(lái)定位感興趣的區(qū)域,裁剪這些區(qū)域,然后使用傳統(tǒng)的CV計(jì)算機(jī)視覺(jué)算法進(jìn)行解碼。
計(jì)算機(jī)視覺(jué)實(shí)踐
計(jì)算機(jī)視覺(jué)的進(jìn)入門(mén)檻正在逐步降低。OpenCV 等開(kāi)源庫(kù)提供了邊緣檢測(cè)和顏色轉(zhuǎn)換等常見(jiàn)功能的高效實(shí)現(xiàn)。像tensorflow-lite和ONNX運(yùn)行時(shí)這樣的深度學(xué)習(xí)運(yùn)行時(shí)使深度學(xué)習(xí)模型能夠在嵌入式處理器上高效運(yùn)行。這些運(yùn)行時(shí)還提供了自定義硬件加速器可以實(shí)現(xiàn)的接口,以簡(jiǎn)化開(kāi)發(fā)人員在準(zhǔn)備將算法從 PC 或云上的訓(xùn)練環(huán)境移動(dòng)到嵌入式處理器上進(jìn)行推理時(shí)的體驗(yàn)。許多深度學(xué)習(xí)架構(gòu)也是公開(kāi)發(fā)布的,因此它們可以重用于各種任務(wù)。
德州儀器 (TI) AM6xA 產(chǎn)品組合中的處理器(如 AM62A7)包含深度學(xué)習(xí)加速硬件以及針對(duì)各種傳統(tǒng)和深度學(xué)習(xí)計(jì)算機(jī)視覺(jué)任務(wù)的軟件支持。C66x 等數(shù)字信號(hào)處理器內(nèi)核和用于光流和立體深度估計(jì)的硬件加速器也支持高性能的傳統(tǒng)計(jì)算機(jī)視覺(jué)任務(wù)。
借助能夠同時(shí)進(jìn)行傳統(tǒng)和深度學(xué)習(xí)計(jì)算機(jī)視覺(jué)的處理器,可以構(gòu)建可與科幻夢(mèng)想相媲美的工具。自動(dòng)購(gòu)物車(chē)將簡(jiǎn)化購(gòu)物;手術(shù)和醫(yī)療機(jī)器人將引導(dǎo)醫(yī)生發(fā)現(xiàn)疾病的早期跡象;移動(dòng)機(jī)器人將修剪草坪并運(yùn)送包裹。如果您可以設(shè)想它,那么您將要構(gòu)建的應(yīng)用程序也可以。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。