視覺傳感器正在日益成為數據採集的重要邊緣設備。最初用於攝影應用的簡單圖像傳感器,今天也將服務於人工智慧和機器學習系統的高質量輸入。這些系統利用新的和創新的處理器架構已經成為複雜的決策實體。
邊緣數據採集
雖然邊緣數據採集設備在本質上主要是模擬的,圖像傳感器的獨特住處在於:
輸出通過連續的動態光輸入進行時間多路復用;
需要有能力維持轉換光輸入的完整性,同時處理,以交付圖像輸出;
輸出的圖像質量最佳,可進行有意義的處理;
這些需求和隨後的結果可能會對視覺系統所做決策的準確性產生重大影響,而視覺系統的決策結果決定了整個自動化系統的安全性、可靠性和盈利能力;
基於機器學習的視覺系統
機器學習的出現推動了圖像傳感器的創新,並提高了性能水平,這是為了支持各種應用程式。你所看到輸入到系統中的數據是通過視覺輸入的高保真度數據。如今,人工智慧算法能夠檢測、識別和分類這些輸入,並生成準確的決策輸出。這些輸出的可靠性取決於輸入的質量,也取決於它們的算法的準確性,以及用於處理這些算法的神經網絡。
基於機器學習和深度學習的視覺系統主要使用卷積神經網絡(CNN)算法來創建一個強大的自動識別的專用系統。增加CNN的深度層可以提高推理精度, 但更多的層也會對這些網絡在訓練階段的學習時間以及系統中完成推斷的延遲產生不利影響。同樣,高質量的圖像輸出使視覺系統能夠攜帶最小的CNN層集,同時產生高度準確的推斷。這在獲得一個快速部署的智能系統方面帶來了顯著的好處,同時提供高性能和低功耗。
CNN如何看懂圖像
圖像分類是對輸入圖像的操作,最終輸出一組最好地描述了圖像內容的分類(如貓、狗等)或分類的概率。對人類來說,識別是打出生便開始學習的技能之一,對成人來說更是信手拈來,毫不費力。我們只需一眼便能快速識別我們所處的環境以及環繞在我們身邊的物體。當我們看到一張圖片或是環看四周的時候,無需刻意觀察,多數時候也能立即描述出場景特徵並標記出每一個對象。快速識別不同模式、根據早前知識進行歸納、以及適應不同的圖像環境一直都是人類的專屬技能,機器尚未享有。
當計算機看到一張圖像(輸入一張圖像)時,它看的是一大堆像素值。根據圖片的解析度和尺寸,它將看到一個 32 x 32 x 3 的數組(3 指代的是 RGB 值)。為了講清楚這一點,假設我們有一張 JPG 格式的 480 x 480 大小的彩色圖片,那麼它對應的數組就有 480 x 480 x 3 個元素。其中每個數字的值從 0 到 255 不等,其描述了對應那一點的像素灰度。當我們人類對圖像進行分類時,這些數字毫無用處,可它們卻是計算機可獲得的唯一輸入。其中的思想是:當你提供給計算機這一數組後,它將輸出描述該圖像屬於某一特定分類的概率的數字(比如:80% 是貓、15% 是狗、5% 是鳥)。
我們想要計算機做什麼
現在我們知道了問題所在以及輸入與輸出,就該考慮如何處理了。我們想要計算機能夠區分開所有提供給它的圖片,以及搞清楚貓貓狗狗各自的特徵。這也是我們人類的大腦中不自覺進行著的過程。當我們看到一幅狗的圖片時,如果有諸如爪子或四條腿之類的明顯特徵,我們便能將它歸類為狗。同樣地,計算機也可以通過尋找諸如邊緣和曲線之類的低級特點來分類圖片,繼而通過一系列卷積層級建構出更為抽象的概念。這是 CNN(卷積神經網絡)工作方式的大體概述。
典型的卷積神經網絡
像CNN這種深度學習算法是極其耗費資源的。現在有各種各樣的處理引擎,有CPU、GPU、FPGA、專用加速器和最近的微控制器。設計一個基於CNN的視覺系統還需要強大的優化庫的支持。這可以從專有的(如MVTec的HALCON & MERLIC, MATLAB的深度學習工具箱或Cognex ViDi)到標準工具(OpenCV)和軟硬體的集成能力。這些選擇直接關係到產品的上市時間。
源密集型處理器通常需要更大的形式因素、散熱附加組件(如散熱器),或者只是大的空體積空間來通過對流散熱。提供高質量輸出的圖像傳感器可以消除對昂貴處理器、第三方庫或創建新庫的需求,以及優化軟硬體資源所需的昂貴工具。換句話說,這些傳感器極大地降低了總擁有成本(TCO),並增加了廣泛應用程式和市場的採用。
圖像傳感器輸入到機器學習系統
對於發送到CNN層級的圖像傳感器輸出有相當多的要求,包括:
一個全局快門,能夠捕捉場景,並保持最小化運動偽影
較高全局快門效率,確保每個像素中保留的場景不會被該像素光路以外的光輸入損壞
足夠的像素大小,以支持良好的圖像質量,即使在挑戰性的光照條件
低總噪聲的圖像輸出,確保高完整性的輸入
在運行和待機期間低功率,以滿足對流換熱是標準的相機系統的典型挑戰。
這些特性依賴於像素結構和相關電子路徑的設計。CMOS圖像傳感器(如AR0234CS)的結構和設計滿足了這些需求,使其成為基於CNN的視覺系統的理想選擇。
高速接口可實現快速系統
一個像素可能具有優秀的質量和完美的設計來生成高質量的圖像,但是由於帶寬限制,整個視覺系統可能仍然會受到性能差的影響。今天的傳感器都配備了SerDes接口[1],但是這些接口流量數據的速度決定了整個系統的質量。
高幀速率要求這些接口以快速的速度傳輸圖像數據。此外,傳感器必須為每幀輸出消耗低功率(fps/mW)。這些特性允許系統定時和電力預算轉移到他們最需要的地方——處理引擎,並允許最先進的神經網絡和複雜的算法進行合併。這使圖像處理器能夠提取圖像數據中的細微差別,這些細微差別對於應用程式來說可能很重要。因此,視覺系統開發商可以區分他們的系統解決方案明顯的競爭。
AR0234CS 2.3 Mp CMOS圖像傳感器
AR0234CS 230萬像素CMOS圖像傳感器專為各種應用而設計,包括機器視覺攝像機、增強實境(AR)/虛擬實境(VR)/混合實境(MR)頭顯、自主移動機器人(AMR)和條碼讀取器。
AR0234CS捕獲1080p視頻和單幀圖像,最高可以每秒120幀(fps)的速度運行。該230萬像素傳感器憑藉其領先行業的快門效率,最小化高速場景中的幀與幀之間的失真,並減少其他圖像傳感器所遇到的運動偽像,從而生成清晰的圖像。
[1] SERDES是英文SERializer(串行器)/DESerializer(解串器)的簡稱。它是一種主流的時分多路復用(TDM)、點對點(P2P)的串行通信技術。即在發送端多路低速並行信號被轉換成高速串行信號,經過傳輸媒體(光纜或銅線),最後在接收端高速串行信號重新轉換成低速並行信號。這種點對點的串行通信技術充分利用傳輸媒體的信道容量,減少所需的傳輸信道和器件引腳數目,提升信號的傳輸速度,從而大大降低通信成本。