乾貨丨RK3399開發板android系統下實現影像識別

ningmengzier發表於2020-11-26

本文基於飛凌 OK3399-C 實現首先我們瞭解下 系統常用的影像識別框架
一:呼叫一些不開源庫進行識別曠視的影像識別及OCR文字識別庫,及其他廠家如阿里,百度, ,騰訊的OCR文字識別庫等。
二:呼叫一些開源庫進行識別
一):tensorflow 訓練自定義影像並識別
1.是先在 上對很多圖片進行訓練得到自己的類別模型檔案,xxx.pb檔案及xxx_labels.txt檔案
2.把上一步生成的檔案放到Android studio(AS)工程裡
3.AS新增tensorflow依賴
4.在tensorflow 給的android 工程上做改動,寫出自己的工程
5.執行工程開始識別。
要在 android 上使用 tensorflow ,官方提供兩種方式工程:
一)tensorflow for mobile,成熟,功能方法多
只需配置buildgradle,呼叫tensorflow相關介面進行識別
2) tensorflow lite.輕量,允許裝置端的機器學習模型的低延遲推斷
下載移動端的模型model和標籤labels檔案並解壓到 下,匯入tensorflow專案,呼叫tensorflow相關介面進行識別
注意此種方法不能直接使用tensorflow的模型,需要對模型進行轉換。
二):  訓練自定義影像並識別
1.配置AS中opencv的環境,下載並配置opencv的
2.在 上用opencv工具訓練自定義影像資料集
3.將訓練好的資料集載入到AS
4.編寫自己的android 工程
5.執行android 工程進行識別

三): tensorflow 訓練自定義影像,實時處理openCV獲取的攝像頭影像(openCV對影像進行分割)並識別( https://blog.csdn.net/qq_33200967/article/details/82773677
此方法與單獨使用tensorflow的區別是使用了opencv中的影像分割,將所有分割物體進行識別

四)其他:
另外有些開源的影像識別方法,Tesseract(支援OCR文字識別)等,可以將其加入android並進行識別。
OK3399-C 平臺 android 系統的影像識別實現
OK3399的android影像識別實現是使用tensorflow在ubuntu上訓練自定義影像,用tensorflow lite在android上進行的識別,識別部分使用了   內部的 mali400 

關於模型
首先,我們有訓練好的tensorflow模型檔案:xxx.pb。
其次,將模型檔案進行轉換,先轉換成tensorflow lite支援的xxx.tflite模型檔案,然後轉換成 rk3399 的 SSD ( Single Shot MultiBox Detector )支援的xxx.rkl模型檔案。
然後,把此轉換後的模型檔案加入android 工程。
此android例程的基本實現為:
開啟 的預覽,同時建立一個跟蹤執行緒。跟蹤執行緒不斷的檢測是否有可用的圖片,一旦有可用圖片就呼叫識別api進行識別,識別函式會返回識別目標的位置及型別,然後得到物體在圖片中的範圍,並繪製出來。

此例程除 實現的部分外,還涉及到三個庫:librkssd4j.so,librga.so和librkssd.so。
以下是三個庫的介紹。
librkssd4j.so
呼叫說明:由android 例程直接呼叫的庫。
原始碼位置: rk_ssd_demo_rk3399\app\src\main\cpp
作用:呼叫librga.so對於影像進行格式轉換或翻轉及壓縮,然後呼叫librkssd.so進行識別。
librga.so
呼叫說明:被librkssd4j.so載入
原始碼位置: OK3399-android7-source/hardware/rockchip/librga/
作用:用來判斷平臺是否支援rga,及做 轉rgb處理,rga主要對圖片資料進行一些格式轉換,翻轉,縮放等運算。
librkssd.so
呼叫說明:被librkssd4j.so載入
作用:對圖片進行識別。其使用了rk3399內部的Mali400 gpu。

以下為執行效果:
f_aac54c5549f1a6721e49238b6c1e9250&t=jpg&o=&s=&v=1593668641.jpg  參考資料: 原廠資料RKDocs/rk3399/RK3399_SSD_Android& _V1.0_20180522.pdf

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2737053/,如需轉載,請註明出處,否則將追究法律責任。

相關文章