乾貨丨RK3399開發板android系統下實現影像識別
本文基於飛凌
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。
以下為執行效果:
參考資料:
原廠資料RKDocs/rk3399/RK3399_SSD_Android&
_V1.0_20180522.pdf
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2737053/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RK3399開發板Ubuntu系統下實現雙屏顯示&異觸Ubuntu
- 乾貨|關於RK3399開發板硬體設計的二三事
- 乾貨丨ERP系統的RPA實施技巧
- 乾貨丨Linux系統下強大的ethtool命令Linux
- RK3399主機板設計方案,RK3399開發板原理圖
- Python實現AI影像識別-身份證識別PythonAI
- 現貨量化跟單交易程式策略系統模型開發丨量化丨合約丨python模型Python
- 瑞芯微RK3399開發板,RK3399主機板引數介紹
- 人臉識別智慧考勤系統開發_人臉識別考勤管理系統開發
- RK3399 android7.1 wifi晶片識別流程AndroidWiFi晶片
- 乾貨分享:Air780E開發板如何使用?AI
- 美軍開發遠端人臉識別系統,實現1公里內目標識別
- 現貨量化跟單丨合約跟單系統開發丨原始碼丨量化機器人開發技術分析原始碼機器人
- 乾貨丨愛奇藝CDN IPv6系統配置
- 乾貨 | 影像資料增強實戰
- 現貨量化交易機器人開發穩定版丨現貨量化交易機器人系統開發(成熟及方案)機器人
- 開發實踐丨用小熊派STM32開發板模擬自動售貨機
- 使用F#實現基本影像識別
- 合約跟單系統開發邏輯功能板塊丨跟單策略系統開發技術方案
- 前端開發 JavaScript 乾貨知識點彙總前端JavaScript
- DAPP系統開發邏輯丨DAPP系統開發功能丨合約DAPP系統開發技術APP
- ARM開發板實現雙系統引導的一種方法——基於迅為iTOP-4412開發板
- RK3399主機板硬體開發過程
- RK3399開發資料,RK3399晶片效能,RK3399處理器引數,RK3399主機板晶片
- 現貨期權期貨交易所開發(詳情)丨現貨期權期貨交易所繫統開發(PHP/JAVA開發)PHPJava
- AI開發實踐丨客流分析之未佩戴口罩識別AI
- 使用Rust語言實現基本影像識別Rust
- 使用Scala語言實現基本影像識別
- 使用Haskell語言實現基本影像識別Haskell
- 使用Lua語言實現基本影像識別
- 飛凌嵌入式乾貨分享丨如何在iMX8MQ 核心板上實現低功耗音訊播放MQ音訊
- 瑞芯微RK3399開發板Android7.1修改網路優先順序方法,觸覺智慧SBC3968開發板演示Android
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 期權現貨交易系統開發|秒合約系統開發原始碼原始碼
- 【乾貨分享】Linux系統日誌的三種型別!Linux型別
- 瑞芯微3568開發板實時作業系統作業系統
- Gamefi鏈遊系統開發(DAPP遊戲開發)丨Gamefi鏈遊系統開發(開發案例)丨原始碼GAMAPP遊戲開發原始碼
- android 簡單實現指紋識別功能Android