在視頻監(jiān)控方面,設計師及其客戶長期以來一直被迫選擇依賴“啞”大量圖像捕獲和存檔的極其低效的系統(tǒng),絕大部分記錄的內(nèi)容都沒有興趣,以及感興趣的內(nèi)容本身太難以在檔案中找到,假設它已被存檔。然而,現(xiàn)在,功能強大,高能效且經(jīng)濟高效的處理器,圖像傳感器和存儲設備與日益復雜的軟件相結合,為系統(tǒng)開發(fā)人員提供了將寶貴的計算機視覺處理功能整合到從消費者監(jiān)控系統(tǒng)到可穿戴的“生命博客”攝像機。
智能的,事件驅動的視頻監(jiān)控僅在人或其他感興趣的物體進入框架時記錄圖像,并且僅在物體保留的情況下記錄圖像。框架。這種自主智能可能歷史上只能用于政府,軍隊和其他高端客戶使用的昂貴,笨重,耗電的設備,現(xiàn)在它可以以消費者友好的價格提供,電池壽命長,并且形式因素小而輕,足以美觀地坐在架子上。
您如何利用當今的視覺處理硬件和軟件所帶來的潛力?以下是基于消費者監(jiān)控系統(tǒng)案例研究的一些想法:
基本設計可能會在幀中感知到運動并且持續(xù)一段固定時間時開始記錄。稍微更精細的方法是可變長度記錄,直到看到物體運動停止和/或物體從框架中消失為止。
然而,這種方法可能產(chǎn)生大量“誤報” “由吹葉子,經(jīng)過的車輛等引起的。因此,如果溫血動物是唯一感興趣的物體,您可能需要使用紅外探測器或其他熱傳感器來補充可見光攝像機。更一般地說,可用的算法可以讓你微調你的對象“觸發(fā)器”的大小,顏色,距離,移動速率和其他閾值參數(shù)。
如果你所關心的人都知道怎么辦?面部檢測功能可以在這方面提供幫助。你可能甚至有興趣在一個人進入框架時觸發(fā)相機...除非那個人是你自己,你的配偶,你的孩子,郵遞員等等。為此,你需要更強大的面部識別設施。
OpenCV計算機視覺庫
該項目通常以其軟件定義和開發(fā)計劃(并從根本上受其約束)開始。在過去的幾十年中,計算機視覺主要是一個學術研究領域;因此,在這個特定領域還沒有一個龐大,成熟的行業(yè)專業(yè)知識庫。另外,學術實驗往往不能廣泛地應用于現(xiàn)實世界的實施,例如,環(huán)境照明和天氣條件可以在不同的使用情況之間變化,并且偏離研究實驗室中發(fā)現(xiàn)的更受控制的條件。
幸運的是,像往常一樣,開源社區(qū)需要資源幫助。 OpenCV(開源計算機視覺)庫起源于英特爾的研究部門;該公司在2000年CVPR(IEEE計算機視覺和模式識別,一個著名的計算機視覺會議)上正式將其交給公眾。在上半年的測試版中,OpenCV在2006年獲得了v1.0“黃金”地位,其次是三年后的v2.0和2015年中期的v3.0(v3.1是最新版本,截至去年12月) )。
OpenCV,根據(jù)BSD許可證發(fā)布,可免費用于學術和商業(yè)用途。它采用優(yōu)化的C/C ++編寫,具有C ++,C,Python和Java接口,支持Windows,Linux,Mac OS,iOS和Android操作系統(tǒng)。特別是對于這個特殊的監(jiān)控攝像機項目,該庫包含超過2,500種算法,包括可用于識別物體以及跟蹤物體,以及檢測和識別人臉以及對人類行為進行分類的算法。
Microchip Technology的PIC32MZ EF系列MCU
然而,值得一提的是使用OpenCV的一個潛在缺點。該庫的以Intel和PC為中心的起源反映在其中包含的大部分基礎代碼都是基于浮點的事實中,這對于某些僅定點的嵌入式系統(tǒng)設計而言可能是有問題的。說實話,大多數(shù)計算機視覺功能甚至不需要浮點精度。因此,一些處理器供應商已經(jīng)開發(fā)了部分或全部OpenCV庫的體系結構定制版本,解決了代碼的浮點到定點轉換以及提供其他優(yōu)化。但是,如果您自己堅持進行轉換,那么這種努力可能會成本和時間過高。
Microchip的新型PIC32MZ EF MCU為OpenCV浮點問題提供了直接的替代解決方案(圖1) )。其核心是高性能32位MIPS microAptive處理器,運行頻率高達200 MHz,能夠處理各種計算機視覺功能。此外,反映了48個成員產(chǎn)品系列中的“EF”后綴,Microchip還在整數(shù)CPU旁嵌了一個32位和64位IEEE 754兼容的七級FPU,能夠運行浮點OpenCV代碼不變
圖1:高性能CPU與32位和64位FPU協(xié)處理器的組合使Microchip的PIC32MZ EF MCU成為可能使用開源代碼時引人注目的候選人。 (圖片由Microchip Technology提供)
PIC32MZ EF的其他有用方面包括其集成的10/100 Mbit以太網(wǎng)MAC和一系列系統(tǒng)接口(各種類型和數(shù)量在某種程度上取決于封裝和引腳排列...... MCU系列有多種選擇) 。 MAC與外部PHY相結合,可直接支持監(jiān)控攝像機的網(wǎng)絡連接需求(如果有線以太網(wǎng)是您選擇的網(wǎng)絡技術),或通過外部有線到無線以太網(wǎng)橋間接支持?;蛘?,您可以通過連接到PIC32MZ EF USB 2.0或其他接口端口的外部收發(fā)器實現(xiàn)無線蜂窩和/或以太網(wǎng)連接。
圖像傳感器替代方案
前面提到的MCU接口分集不僅有利于提供網(wǎng)絡連接的多樣性,而且有利于圖像傳感器的靈活性。將攝像機連接到PIC32MZ EF的一種簡單方法是在設計中集成OmniVision Technologies OVM7690 VGA分辨率攝像機模塊,通過8位I/O端口連接到MCU(圖2)。這種方法有利于幾個關鍵原因;例如,OVM7690已經(jīng)包含64°視場(對角線),F(xiàn)/3.0鏡頭形式的晶圓級光學元件,因此您無需在設計中添加單獨的光學子系統(tǒng)。此外,OVM7690嵌入了專用的圖像處理器,從而減輕了PIC32MZ EF的圖像預處理任務,例如去馬賽克,重新縮放,格式轉換和曝光控制。
圖2:集成的相機模塊簡化設計(頂部),但它提供的圖像雖然賞心悅目,但可能不太適合計算機視覺處理比傳統(tǒng)圖像傳感器的未處理輸出(底部)。 (圖片分別由OmniVision Technologies和安森美半導體提供)
然而,存在可能的情況,可能迫使您使用傳統(tǒng)的圖像傳感器,例如安森美半導體的VGA分辨率NOIL1SM0300A,結合您自己設計的鏡頭,并通過其SPI端口連接到PIC32MZ EF。首先,相反,人眼賞心悅目的圖像可能被視為對計算機視覺處理算法有害。例如,由圖像預處理器自動完成的邊緣增強可能會導致使對象與其背景區(qū)分開來的任務變得復雜。自動曝光控制,白平衡和黑平衡,色彩校正以及通常由相機模塊中內(nèi)置的圖像協(xié)處理器默認執(zhí)行的類似任務也是如此。
例如,您可能還需要不同于傳感器模塊制造商提供的鏡頭焦距和/或光圈。然而,無論您使用集成攝像頭模塊還是獨立圖像傳感器,您都可能會發(fā)現(xiàn)具有成本效益的VGA分辨率產(chǎn)品選項就足夠了;有時,甚至更便宜的QVGA或CIF分辨率產(chǎn)品甚至都是你需要的。您可能需要在分辨率上超過3 M像素的唯一情況是,如果您試圖辨別遠處的物體,或者在特別差的環(huán)境觀察條件下,這兩種情況都會受益于更大的源圖像細節(jié)。如果您的目標客戶堅持觀看“HD”視頻,您也可以選擇更高分辨率的圖像傳感器或相機,無論計算機視覺軟件是否需要它。
本地大容量存儲
回想一下,該項目的基本目標是僅在相機“看到”感興趣的事件時記錄視頻,并且僅在該事件持續(xù)的時間內(nèi)記錄視頻。在這樣做時,該實現(xiàn)最小化了設計所需的閃存或其他存儲技術所需的容量(更不用說在該過程中節(jié)省寶貴的電池壽命)。盡管如此,512 KB到2 MB的閃存,以及集成在各種PIC32MZ EF MCU系列成員中的128 KB到512 KB的RAM,可能足以滿足非易失性代碼存儲和瞬態(tài)數(shù)據(jù)存儲的需要,更高容量的外部存儲用于視頻剪輯本身仍然是必要的。
您可以隨時使用獨立的NAND閃存設備(或其中一些),當然,通過I/O總線與MCU配對。但是,您需要開發(fā)自己的媒體管理軟件,以處理背景“垃圾收集”清理閃存擦除塊,這些塊已經(jīng)填滿了有效和/或退役的視頻數(shù)據(jù),例如,以及磨損等級媒體是為了防止某些擦除塊與其他擦除塊“過熱”。此外,這種媒體管理需要由MCU本身處理,從而消耗寶貴的處理器周期,否則可能會用于計算機視覺處理和其他任務。
相反,請考慮使用閃存大容量存儲解決方案其中包括自己的媒體管理控制器。選項包括可移動SD卡(以及更小的迷你SD和micro SD兄弟),以及美光科技的BGA封裝的e.MMC NAND閃存;這兩個選項都通過幾個引腳的I/O總線連接到PIC32MZ EF MCU(圖3)。根據(jù)捕獲的幀分辨率,幀速率和壓縮格式,例如,Micron的32 GByte e.MMC應該可以存儲數(shù)十分鐘到數(shù)小時的視頻。此外,通過電子郵件,短信或其他提醒,您可以將新視頻的捕獲狀態(tài)(以及可選地,與所有視頻本身一起)傳達給監(jiān)控系統(tǒng)所有者;視頻將保留在相機中,以供后續(xù)查看,存檔和/或刪除。
圖3:帶有集成媒體管理控制器的閃存大容量存儲解決方案可以釋放系統(tǒng)處理器來處理其他任務并簡化軟件開發(fā)工作。 (圖片由Micron Technology提供)
結論
該項目描述無疑是無所不包的;例如,仍然需要添加AC/DC和DC步進電源子系統(tǒng),您可能還需要包括麥克風和ADC,以便與圖像一起記錄音頻。但是,它涵蓋了設計的一些關鍵部分。每個算法越復雜,你組合的越多,你最有可能最終使PIC32MZ EF的CPU和FPU的處理能力過載。話雖如此,新的算法,如用于對象識別的新興卷積神經(jīng)網(wǎng)絡“深度學習”技術(圖4),以及現(xiàn)有算法的優(yōu)化一直在出現(xiàn)。
圖4:卷積神經(jīng)網(wǎng)絡(CNN)和其他“深度學習”方法,一旦經(jīng)過一系列參考圖像的訓練,已被證明可以在實質性處理和實際處理的權衡中提供令人印象深刻的物體識別結果。內(nèi)存要求。 (圖片由維基百科提供)
強烈建議在生產(chǎn)前進行大量現(xiàn)場測試;不可避免地,您將遇到在產(chǎn)品開發(fā)過程中未考慮的環(huán)境條件和使用場景,這將需要進行算法微調。除了實現(xiàn)細微差別之外,將運行開源軟件(如OpenCV)的PIC32MZ EF MCU等經(jīng)濟高效的處理器與傳感器或相機模塊捕獲的圖像相結合,存儲到駐留閃存并通過網(wǎng)絡連接進行傳輸,各種有趣的應用:現(xiàn)有產(chǎn)品的增強和全新的產(chǎn)品類別。