劉瀟元 任釗婷 楊晨



摘要:2015年10月,AlphaGo在沒有任何讓子的情況下,以5:0的懸殊比分擊潰歐洲圍棋冠軍樊麾二段。隨即第二年六月戰勝第一圍棋手柯潔。人工智能初露鋒芒,而在當今人工智能的發展下各個產業出現了新的轉變,人臉識別,視網膜識別,虹膜識別,掌紋識別,專家系統,無人駕駛,智能搜索,定理證明,博弈等人工智能逐漸改變著人們的生活,神經網絡在圖像處理的運用上更加廣泛,常應用于車輛檢測、目標分類識別。本項目意在通過YOLO2的剪枝算法TINY yolo2實現在嵌入式soc上進行目標檢測達到圖像轉文字的目的。再爾,通過云服務實現文字轉語音的服務。完成整個項目的目的,即圖像轉文字的過程,適用于幼兒教學市場。
關鍵詞:TINY YOLO2;云服務;視覺翻譯
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)15-0182-02
1 神經網絡單元TPU介紹
在芯片集成度方面,勘智K210采用視聽一體化設計。在機器視覺上,芯片基于自主研發的神經網絡加速器KPU,可完成基于神經網絡的圖像分類任務,進行人臉識別與檢測,以及實時獲取被檢測目標的分類。在聽覺能力上,芯片自帶APU語音處理單元,最高可支持8路音頻數據及16個方向,無須占用CPU即可實現聲源定向、聲場成像、波束形成、語音識別與喚醒等功能。
在算法定制化方面,勘智K210在可編程能力上呈現出更高的靈活性。首先,相比ARM等架構,勘智K210采用RISC-V架構,擁有更強的可定制化能力,便于開發者根據具體應用場景定制算法。其次,芯片搭載FPIOA現場可編程IO陣列,支持TensorFlow、Keras、Darknet、PaddlePaddle和Caffe等主流AI編程框架,以及全面的開發文檔,對開發者十分友好。
2 攝像頭
OV7670,本設計采用自帶FiFo的模組,使用FIFO模組可以大大減少K210的計算量,數字攝像頭的構成主要是由鏡頭、基座、紅外濾波片、圖像傳感器。部分數字攝像頭可能帶有馬達用以調節像距。本設計中為了提高處理速度,使用CIF格式的圖像格式傳輸到K210中進行計算,經過實際的測試,空載的幀率可以達到80FPS。在實際加載上TINY YOLO2的程序測試可以達到60FPS左右,達到了實際使用的需求。
3 識別算法TINY YOLO2
相較于RCNN系列算法,YOLO算法最大的創新在于將物體檢測作為回歸問題來求解,而RCNN系列算法是將目標檢測用一個region proposal + CNN來作為分類問題求解。 如下圖所示,YOLO通過對輸入圖像進行推測,得到圖中所有物體的位置及其所屬類別的相應概率。
YOLO的網絡模型結構包含有24個卷積層和2個全鏈接層,其具體結構如下:
4 百度云語音合成API
為了減小內存的使用,本項目采用了百度語音合成python接口,只需要使用http請求的REST API接口,將文本轉換為可以播放的音頻文件。再通過K210的播放器進行輸出。由于k210的性能限制,本項目使用內存占用極小的PCM編碼,聲音經過采集和處理裝置的抽樣、量化和編碼就實現了脈沖編碼調制。本系統中使用K210的I2S總線連接麥克風模塊,模擬聲音信號經過麥克風抽樣采集。傳送到K210端口,經過K210通過DAC發送音頻放大器,最后由揚聲器將PCM編碼的聲音量播報出來,實現了語音播報。
PCM以采樣技術為定理。采樣定理:如果在規定的時間內,以有效信號最高頻率的二倍或二倍以上的速率對該信號進行采樣,則這些采樣信息值中包含了全部原始信號信息。再進行實際實驗時 Tiny yolo2在k210平臺上幀率能達到60fps+。
5 系統菜單設計
為了完成該項目的多個功能需要設計一個菜單搭配按鍵進行功能的選擇,這里我們采用了有限狀態機。也稱為FSM,其特點是任意狀態在任意時刻都有對應的下一狀態。每個狀態具有同樣的屬性,當其屬性進行轉移時,FSM將一直保持消亡狀態。狀態轉移圖中還有兩個特殊狀態:狀態1狀態被稱為“起始狀態”,表示FSM的初始化狀態,狀態6稱為“結束狀態”。表示成功識別了所有屬性而后進入下一流程。使用編程思維理解,建立結構體數組成員變量使用UP、DOWN、ENTER,來表示每個狀態對應的屬性操作。建立Index成員表示當前的序列號,函數指針表示當前狀態所需要執行的函數。通過Index序號根據用戶的操作UP、DOWN或是ENTER來進入下一個所需要執行的函數。達到邏輯清晰、代碼量簡潔高效的目的。
然后我們開始程序設計。CurrerIndex表示當前標號,UpIndex表示按下上鍵跳入的菜單標號,DnIndex表示按下下鍵跳入的菜單標號,EnterIndex表示按下確認鍵跳入的菜單標號,(*CurOperate)表示這個菜單對應的函數指針。
Encoder_EC11_Scan()函數這個本來是編碼器EC11的掃描函數,由于體積大小原因,將旋轉編碼器替換成了三個按鍵。AA代表上鍵,BB代表下鍵,Keyenter鍵代表確認鍵。當按鍵按下對應引腳接地,引腳電平為0。為了消除抖動使用了Delay5ms()這個函數延遲5ms如果這時按鍵還是低電平,就說明不是因為抖動而是人為按下。置ScanResult返回值為0,1,2,3分別代表按鍵沒有按下,上鍵,下鍵,確認鍵的按下標志位并作為函數的返回值返回。
狀態機從0開始,通過Encoder_EC11_Scan()函數來返回用戶的操作鍵碼,通過Switch語句跳轉到各個鍵碼對應的操作中去。如按下上鍵Encoder_EC11_Scan()函數會返回1。并把此時菜單上鍵對應的鍵碼賦值給Fun_index全局變量。然后將對應的函數指針賦值給CurOperate_Ptr。而后執行函數完成函數的跳轉。
6基本流程
1)k210通過攝像頭獲取圖像;
2)圖像輸入變換進入模型比對;
3)圖像中是否存在目標物體;
4)存在物體,文本信息送入百度云api進行轉化然后送入揚聲器進行播報。否則返回獲取圖像繼續搜索目標物體。
7 項目總結
本項目將神經網絡識別技術與物聯網技術結合在一起。意在通過圖像得到語音的輸出,適用于早教市場,幼兒外語的學習。項目的不足,因為是通過網絡進行語音轉化,所以本項目離不開網絡,必須通過手機開啟熱點或連接家中wifi使用,本項目將會繼續研究離線的文字語音轉化技術。
參考文獻:
[1] Real-Time Pattern-Recognition of GPR Images with YOLO v3 Implemented by Tensorflow. 10.3390/s20226476.
[2] 謝兄,楊金鵬.YOLO-wLU:考慮定位不確定性的目標檢測算法[J]. 計算機工程與應用.
[3] 黃鳳琪,陳明,馮國富,基于可變形卷積改進的yolo目標檢測算法[J].計算機工程.https://doi.org/10.19678/j.issn.1000-3428.0059096.
【通聯編輯:李雅琪】