1. 方案簡介
方案接線示意圖

2. 快速上手
2.1 開發環境準備
如果您初次閱讀此文檔,請閱讀《入門指南/開發環境準備/Easy-Eai編譯環境準備與更新》,并按照其相關的操作,進行編譯環境的部署。
在PC端Ubuntu系統中執行run腳本,進入EASY-EAI編譯環境,具體如下所示。
cd ~/develop_environment ./run.sh 2204

2.2 源碼下載以及例程編譯
在EASY-EAI編譯環境下創建存放源碼倉庫的管理目錄:
cd /opt mkdir EASY-EAI-Toolkit cd EASY-EAI-Toolkit
通過git工具,在管理目錄內克隆遠程倉庫
git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-1126B.git

注:
* 此處可能會因網絡原因造成卡頓,請耐心等待。
* 如果實在要在gitHub網頁上下載,也要把整個倉庫下載下來,不能單獨下載本實例對應的目錄。
進入到對應的例程目錄執行編譯操作,具體命令如下所示:
cd EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer ./build.sh cpres
注:
* 由于依賴庫部署在板卡上,因此交叉編譯過程中必須保持/mnt掛載。
* 若build.sh腳本帶有cpres參數,則會把Release/目錄下的所有資源都拷貝到開發板上。

2.3 例程運行
通過串口調試或ssh調試,進入板卡后臺,定位到例程部署的位置,如下所示:
cd /userdata/Solu/rtspMulitPlayer

運行例程命令,后臺打印如下所示。
./rtspMulitPlayer

屏幕顯示內容如下所示:

若屏幕顯示【無視頻信號】,請到src/main.cpp確認:

屏幕顯示邏輯:

若要調整顯示輪詢時間,請到src/analyzer/analyzer.cpp中的imgDisplay_thread(...)修改:

3. 設計說明
本開發實例由四大邏輯模塊組成,分別是:啟動邏輯、取流解碼邏輯、算法分析邏輯、顯示邏輯。
3.1 邏輯框圖

線程資源分布:
* 取流解碼邏輯xN
* 算法分析邏輯x1
* 顯示邏輯x1
* 總線程數=N+1+1
3.2 代碼組成
本開發實例相關的所有代碼,均位于EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer/中。其中:
啟動邏輯位于:EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer/src/main.cpp
取流解碼邏輯位于:EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer/src/capturer/
算法分析邏輯位于:EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer/src/analyzer/
顯示邏輯位于:EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer/src/analyzer/

3.3 調用關系

3.4 開發建議
用戶想要做算法識別,建議【僅修改】以下【兩個文件】:
EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer/src/analyzer/algoProcess.cpp
EASY-EAI-Toolkit-1126B/Solutions/rtspMulitPlayer/src/analyzer/algoProcess.h
代碼中注釋了一個【人員識別】的樣例:①把注釋放開。②把【對應模型】放到與本開發實例的【可執行文件】所在的【開發板目錄】。即可實現人員識別功能。
效果如下所示:

模型的下載,以及單步的demo使用參考,可閱讀《EASY-EAI-Toolkit/算法組件/人員檢測》
想要接入其它算法,可用同樣方法參考其它的算法組件的使用文檔。
4. 開發指南
4.1 Toolkit倉庫介紹

4.2 示例文件&目錄結構
4.2.1 開發實例介紹
每個開發實例就是一個獨立的項目,項目使用cmake構建自動編譯部署。一個最簡單的項目至少要包含以下元素:build.sh、CMakeLists.txt、main.c,如下所示。

具體介紹如下所示。

4.2.2 可拓展的目錄
可拓展的目錄是指:開發過程中增加某些功能模塊,功能代碼。增加模式分為兩種:
l 增加已編譯的第三方庫,在include、libs目錄內添加頭文件和庫文件;
l 增加用戶自定義的功能模塊,推薦在src目錄內增加;
具體情況如下所示,第三方模塊相關的文件由include/3rd_model/xxx.h、libs/3rd_model/xxx.a。自定義的功能模塊為src/mySrcCode、src/mySrcCode2。

4.3 CMakeLists.txt文件解析
4.3.1 編譯環境配置部分:
第一部分為配置部分,配置部分如下所示。(獲取當前方案目錄、配置工具鏈、提取方案名稱):

配置信息如下所示。

4.3.2 easyeai-api配置部分
第二部分是引入我司的功能組件庫(針對當前方案進行:配置EASY EAI API頭文件目錄${XXX_INCLUDE_DIRS}、源碼文件目錄${XXX_SOURCE_DIRS}以及所依賴的庫參數${XXX_LIBS}):


4.3.3 第三方庫配置部分
第三部分配置第三方的庫(針對當前方案進行:配置第三方頭文件目錄、庫文件目錄、配置第三方庫鏈接參數以及配置源碼目錄):

配置信息如下所示。

例如添加個人庫的目錄組成方式如下所示。

aux_source_directory的修改方式為:
aux_source_directory(./src ./src/mySrcCode ./src/mySrcCode2 dir_srcs)
或
aux_source_directory(./src dir_srcs) aux_source_directory(./src/mySrcCode dir_srcs) aux_source_directory(./src/mySrcCode2 dir_srcs)
4.3.4 本方案配置部分
第四部分配置項目的編譯信息,內容如下所示:

配置項如下所示。

4.4 build.sh編譯腳本:
4.4.1 路徑定位部分
第一部分用于提取目錄用于編譯操作,內容如下所示:(進入build.sh腳本所在目錄,并且提取當前目錄絕對路徑,提取當前目錄名稱)

4.4.2 清除編譯部分
第二部分清除操作,清除目錄為build,以及Release下通過編譯生成出來的文件,內容如下所示:(執行build.sh腳本時,帶入了參數“clear”,則清空編譯輸出)

4.4.3 編譯操作
第三部分,編譯直接調用cmake,內容如下所示:(重新編譯,成部署目錄,并把資源自動部署進板卡)

-
人工智能
+關注
關注
1819文章
50253瀏覽量
266674 -
開發板
+關注
關注
26文章
6385瀏覽量
120258 -
瑞芯微
+關注
關注
27文章
831瀏覽量
54632 -
EASY-EAI靈眸科技
+關注
關注
4文章
89瀏覽量
3717 -
RV1126B
+關注
關注
0文章
77瀏覽量
229
發布評論請先 登錄
瑞芯微(EASY EAI)RV1126B 音頻輸入
瑞芯微(EASY EAI)RV1126B 音頻輸出
【EASY EAI Nano-TB(RV1126B)開發板試用】+初識篇
【EASY EAI Nano-TB(RV1126B)開發板試用】+1、開箱上電
【EASY EAI Nano-TB(RV1126B)開發板試用】桌面系統功能測試-驅動攝像頭-Mediapipe人體姿態檢測1
【EASY EAI Nano-TB(RV1126B)開發板試用】介紹、系統安裝
【飛凌嵌入式RV1126B開發板試用體驗】初識飛凌嵌入式RV1126B開發板試
【免費試用】EASY EAI Nano-TB(RV1126B)開發套件評測
瑞芯微(EASY EAI)RV1126B 多路網絡攝像頭AI分析方案
評論