乾貨丨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開發板硬體設計的二三事
- 乾貨丨Linux系統下強大的ethtool命令Linux
- 乾貨丨ERP系統的RPA實施技巧
- 乾貨丨愛奇藝CDN IPv6系統配置
- 現貨量化跟單交易程式策略系統模型開發丨量化丨合約丨python模型Python
- 乾貨分享:Air780E開發板如何使用?AI
- 【Bugly安卓開發乾貨分享】Android APP 快速 Pad 化實現安卓AndroidAPP
- Python實現AI影像識別-身份證識別PythonAI
- 現貨量化跟單丨合約跟單系統開發丨原始碼丨量化機器人開發技術分析原始碼機器人
- 人臉識別智慧考勤系統開發_人臉識別考勤管理系統開發
- 美軍開發遠端人臉識別系統,實現1公里內目標識別
- 移動端開發乾貨知識分享
- RK3399主機板設計方案,RK3399開發板原理圖
- 乾貨 | 影像資料增強實戰
- 乾貨丨機器學習知識點(人工智慧篇)機器學習人工智慧
- 現貨量化交易機器人開發穩定版丨現貨量化交易機器人系統開發(成熟及方案)機器人
- 開發實踐丨用小熊派STM32開發板模擬自動售貨機
- 前端開發 JavaScript 乾貨知識點彙總前端JavaScript
- 現貨期權期貨交易所開發(詳情)丨現貨期權期貨交易所繫統開發(PHP/JAVA開發)PHPJava
- 合約跟單系統開發邏輯功能板塊丨跟單策略系統開發技術方案
- 瑞芯微RK3399開發板,RK3399主機板引數介紹
- AI開發實踐丨客流分析之未佩戴口罩識別AI
- 飛凌嵌入式乾貨分享丨如何在iMX8MQ 核心板上實現低功耗音訊播放MQ音訊
- ARM開發板實現雙系統引導的一種方法——基於迅為iTOP-4412開發板
- 期權現貨交易系統開發|秒合約系統開發原始碼原始碼
- BSC丨Solana丨AVAX丨LUNA公鏈遊戲系統開發規則丨鏈遊系統開發(結構模型)遊戲模型
- C#呼叫DLL實現影像文字識別(OCR)C#
- DAPP系統開發邏輯丨DAPP系統開發功能丨合約DAPP系統開發技術APP
- ios開發實現畫板功能iOS
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 量化合約系統開發丨合約量化系統開發原始碼丨合約量化系統開發技術Demo原始碼
- 乾貨:PHP與大資料開發實踐PHP大資料
- 量化現貨交易系統開發(功能詳解)| 量化現貨交易系統(原始碼demo示例)原始碼
- Gamefi鏈遊系統開發(DAPP遊戲開發)丨Gamefi鏈遊系統開發(開發案例)丨原始碼GAMAPP遊戲開發原始碼
- RK3399主機板硬體開發過程
- 現貨跟單量化開發詳情丨跟單策略交易機器人系統開發及詳細方案機器人
- 量化秒合約技術開發丨現貨量化跟單系統程式設計開發及程式碼示例程式設計