RV1126_RV1109 Rock-X 使用說明

一、簡(jiǎn)介

Rock-X SDK 是基于 RK3399Pro/RK180X 等平臺(tái)的一套 AI 組件庫垃瞧。開發(fā)者通過 Rock-X SDK 提供的 API 接口能夠快速構(gòu)建 AI 應(yīng)用。

Rock-X SDK 當(dāng)前支持 Python/C 編程語言, 支持運(yùn)行于 RK3399Pro Android/Linux 平臺(tái)乌妒、RK180X Linux 平臺(tái)以及 PC Linux/MacOS/Windows(需要接 RK1808 計(jì)算棒)色罚。

本文測(cè)試基于RV1109或RV1126的buildroot系統(tǒng)中真仲,運(yùn)行rock-x sdk。

SDK 提供的功能如下:

Rock-X SDK 文件說明

rv1126_rv1109/linux_sdk_rockchip/external/rockx$ tree -L 3
.
├── auth
│   ├── Android
│   │   ├── arm64-v8a
│   │   └── armeabi-v7a
│   ├── Linux
│   │   ├── aarch64
│   │   ├── armhf
│   │   └── x86_64
│   ├── README.md
│   └── Windows
│       └── RKauth_tool_v1.02.zip
├── ChangeLog.txt
├── CMakeLists.txt
├── demo
│   ├── command_line_demo   # Rock-X SDK C 示例程序
│   │   ├── build
│   │   ├── build-android-rk3399pro-v7a.sh
│   │   ├── build-android-rk3399pro-v8a.sh
│   │   ├── build-linux-rk1806.sh
│   │   ├── build-linux-rk1808.sh
│   │   ├── build-linux-rk3399pro-on-device.sh
│   │   ├── build-linux-rk3399pro.sh
│   │   ├── build-linux-rv1109.sh
│   │   ├── build-linux-x86.sh
│   │   ├── cmake
│   │   ├── CMakeLists.txt
│   │   ├── README.md
│   │   ├── rockx_body_mask_demo
│   │   ├── rockx_carplate_demo
│   │   ├── rockx_face_attribute_demo
│   │   ├── rockx_face_detection_demo
│   │   ├── rockx_face_landmark_demo
│   │   ├── rockx_face_masks_detection_demo
│   │   ├── rockx_face_recognition_demo
│   │   ├── rockx_head_detection_demo
│   │   ├── rockx_object_detection_demo
│   │   ├── rockx_object_track_demo
│   │   ├── rockx_person_detection_demo
│   │   ├── rockx_pose_body_demo
│   │   └── rockx_pose_finger_demo
│   └── rk3399pro_android_demo
│       ├── rockx-android-demo-carplate_recognition.zip
│       ├── rockx-android-demo-face_attribute.zip
│       ├── rockx-android-demo-face_landmark.zip
│       ├── rockx-android-demo-object_detection.zip
│       └── rockx-android-demo-pose_body.zip
├── doc
│   ├── Rockchip_Developer_Guide_RockX_SDK_CN.pdf
│   ├── Rockchip_Developer_Guide_RockX_SDK_EN.pdf
│   └── rockx_api_doc
│       └── html
├── LICENSE
├── python
│   ├── RockX-1.2.0-py3-none-any.whl
│   └── test
│       ├── camera
│       ├── image
│       └── __init__.py
├── sdk
│   ├── rockx-data
│   │   ├── carplate_align.data
│   │   ├── carplate_detection.data
│   │   ├── carplate_recognition.data
│   │   ├── face_attribute.data
│   │   ├── face_detection.data
│   │   ├── face_landmark5.data
│   │   ├── face_landmarks68.data
│   │   ├── face_liveness_2d.data
│   │   ├── face_recognition.data
│   │   ├── head_detection.data
│   │   ├── object_detection.data
│   │   ├── pose_body.data
│   │   ├── pose_finger.data
│   │   └── pose_hand.data
│   ├── rockx-data-rv1109   # 針對(duì)rv1109的 rock-x ai模型 
│   │   ├── body_detection.data
│   │   ├── body_mask.data
│   │   ├── carplate_align.data
│   │   ├── carplate_detection.data
│   │   ├── carplate_recognition.data
│   │   ├── face_attribute.data
│   │   ├── face_detection_v2.data
│   │   ├── face_detection_v3.data
│   │   ├── face_detection_v3_fast.data
│   │   ├── face_detection_v3_large.data
│   │   ├── face_landmark5.data
│   │   ├── face_landmarks68.data
│   │   ├── face_mask_classify.data
│   │   ├── face_masks_detection.data
│   │   ├── face_recognition.data
│   │   ├── head_detection.data
│   │   ├── object_detection.data
│   │   ├── person_detection_v2.data
│   │   ├── person_detection_v3.data
│   │   ├── pose_body.data
│   │   ├── pose_body_v2.data
│   │   ├── pose_finger.data
│   │   └── pose_hand.data
│   ├── rockx-rk1806-Linux
│   │   ├── include
│   │   ├── lib
│   │   ├── lib64
│   │   └── RockXConfig.cmake
│   ├── rockx-rk1808-Linux
│   │   ├── include
│   │   ├── lib64
│   │   └── RockXConfig.cmake
│   ├── rockx-rk3399pro-Android
│   │   ├── arm64-v8a
│   │   ├── armeabi-v7a
│   │   ├── include
│   │   └── RockXConfig.cmake
│   ├── rockx-rk3399pro-Linux
│   │   ├── include
│   │   ├── lib64
│   │   └── RockXConfig.cmake
│   ├── rockx-rv1109-Linux  # 針對(duì)rv1109的 rock-x 動(dòng)態(tài)鏈接庫和頭文件
│   │   ├── include
│   │   ├── lib
│   │   └── RockXConfig.cmake
│   └── rockx-x86-64-Linux
│       ├── include
│       ├── lib64
│       └── RockXConfig.cmake
└── VERSION

57 directories, 68 files

二漏健、編譯Rock-X SDK

使用RK_SDK_rv1126_rv1109_linux SDK

1.下載編譯CMake

rockx sdk的編譯需要基于 3.10 以上版本的cmake嚎货, 如果系統(tǒng)的cmake版本比較舊,則需要更新cmake蔫浆。

$ sudo apt-get install build-essential
$ cd ~/Download/
$ wget http://www.cmake.org/files/v3.11/cmake-3.11.3.tar.gz
$ tar -zxvf cmake-3.11.3.tar.gz
$ cd cmake-3.11.3
$ ./configure
$ make
# $ sudo make install

$ ~/Downloads/cmake-3.11.3/bin/cmake -version
cmake version 3.11.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

為了不應(yīng)用系統(tǒng)已安裝的cmake殖属,可以不使用install。

2.修改編譯環(huán)境

修改 external/rockx/demo/command_line_demo/build-linux-rv1109.sh

  • 修改交叉編譯工具鏈路徑
  • 修改cmake路徑
  • 手動(dòng)編譯
cd external/rockx/demo/command_line_demo

git diff build-linux-rv1109.sh
diff --git a/demo/command_line_demo/build-linux-rv1109.sh b/demo/command_line_demo/build-linux-rv1109.sh
index fa569de..5a34df1 100755
--- a/demo/command_line_demo/build-linux-rv1109.sh
+++ b/demo/command_line_demo/build-linux-rv1109.sh
@@ -1,6 +1,7 @@
 #!/bin/bash
 
-GCC_COMPILER_PATH=~/opts/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf
+GCC_COMPILER_PATH=/home/ubuntu/disk1/rv1126_rv1109/linux_sdk_rockchip/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf
 
 #BUILD_TYPE=Release
 BUILD_TYPE=Debug
@@ -13,14 +14,16 @@ if [[ ! -d "${BUILD_DIR}" ]]; then
   mkdir -p ${BUILD_DIR}
 fi
 
+CMAKE_DIR=/home/ubuntu/Downloads/cmake-3.11.3/bin
+
 cd ${BUILD_DIR}
-cmake ../.. \
+${CMAKE_DIR}/cmake ../.. \
     -DTARGET_SOC=rv1109 \
     -DCMAKE_SYSTEM_NAME=Linux \
     -DCMAKE_C_COMPILER=${GCC_COMPILER_PATH}-gcc \
     -DCMAKE_CXX_COMPILER=${GCC_COMPILER_PATH}-g++ \
     -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
     -DCMAKE_INSTALL_PREFIX=${ROOT_PWD}/install/rockx_rv1109_linux
-make -j4
-make install
+#make -j4
+#make install
 cd -

3.配置編譯rockx

$ cd external/rockx/demo/command_line_demo

# 配置編譯環(huán)境
$ bash build-linux-rv1109.sh
rockx_demo
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/disk1/rv1126_rv1109/linux_sdk_rockchip/external/rockx/demo/command_line_demo/build/build_rv1109_linux
/home/ubuntu/disk1/rv1126_rv1109/linux_sdk_rockchip/external/rockx/demo/command_line_demo

# 編譯
$ cd ./build/build_rv1109_linux/
$ make
[  6%] Built target rockx_face_detection
[ 13%] Built target rockx_face_landmark
[ 20%] Built target rockx_object_detection
[ 26%] Built target rockx_pose_body
[ 33%] Built target rockx_pose_body_async
[ 40%] Built target rockx_pose_finger
[ 46%] Built target rockx_face_recognition
[ 53%] Built target rockx_face_attribute
[ 60%] Built target rockx_head_detection
[ 66%] Built target rockx_carplate
[ 73%] Built target rockx_object_track
[ 80%] Built target rockx_face_masks_detection
[ 86%] Built target rockx_body_mask
[ 93%] Built target rockx_person_detection
[100%] Built target rockx_person_detection_async

三瓦盛、在buildroot系統(tǒng)中運(yùn)行rockx

1.復(fù)制編譯結(jié)果和依賴文件到本地

將主機(jī)的編譯結(jié)果和動(dòng)態(tài)庫等文件拷貝到RV1109或RV1126設(shè)備中

$ cd external/rockx/
$ scp -r sdk/ root@xxx:/userdata/rockx
$ scp -r demo/command_line_demo/ root@xxx:/userdata/rockx

2.加入動(dòng)態(tài)鏈接庫新搜索路徑

# RV1109設(shè)備上
cd /userdata/rockx
# 將動(dòng)態(tài)庫和頭文件放到與AI模型同一路徑下
cp sdk/rockx-rv1109-Linux/lib/*  sdk/rockx-data-rv1109/
cp sdk/rockx-rv1109-Linux/include/  sdk/rockx-data-rv1109/

# 修改環(huán)境變量
vi /etc/profile
    # 加入
    ROCKX_DATA_PATH=/userdata/rockx/sdk/rockx-data-rv1109
    export LD_LIBRARY_PATH=${ROCKX_DATA_PATH}:$LD_LIBRARY_PATH
source /etc/profile

也可以直接把動(dòng)態(tài)庫和AI模型復(fù)制到系統(tǒng)路徑

cp sdk/rockx-rv1109-Linux/lib/*  /usr/lib/
cp sdk/rockx-rv1109-Linux/include/  /usr/lib/
cp  sdk/rockx-data-rv1109/  /usr/lib/

3.運(yùn)行rockx demo 可執(zhí)行文件

$ cd /userdata/rockx/command_line_demo/build/build_rv1109_linux/rockx_carplate_demo

# 運(yùn)行車牌識(shí)別程序
$ ./rockx_carplate ../../../rockx_carplate_demo/carplate_det_test1.jpg 
(56 111 190 151) 0.986012
carplate: 蘇JAY888

各模塊運(yùn)行時(shí)間和所需內(nèi)存如下:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洗显,一起剝皮案震驚了整個(gè)濱河市外潜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挠唆,老刑警劉巖处窥,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異玄组,居然都是意外死亡滔驾,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門俄讹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嵌灰,“玉大人,你說我怎么就攤上這事颅悉」敛t!?“怎么了?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)周荐。 經(jīng)常有香客問我付呕,道長(zhǎng),這世上最難降的妖魔是什么豌鹤? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮枝缔,結(jié)果婚禮上布疙,老公的妹妹穿的比我還像新娘。我一直安慰自己愿卸,他們只是感情好灵临,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趴荸,像睡著了一般儒溉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上发钝,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天顿涣,我揣著相機(jī)與錄音,去河邊找鬼酝豪。 笑死涛碑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的孵淘。 我是一名探鬼主播蒲障,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了晌涕?” 一聲冷哼從身側(cè)響起滋捶,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎余黎,沒想到半個(gè)月后重窟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惧财,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年巡扇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垮衷。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厅翔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搀突,到底是詐尸還是另有隱情刀闷,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布仰迁,位于F島的核電站甸昏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏徐许。R本人自食惡果不足惜施蜜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雌隅。 院中可真熱鬧翻默,春花似錦、人聲如沸恰起。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽村缸。三九已至祠肥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梯皿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工县恕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留东羹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓忠烛,卻偏偏與公主長(zhǎng)得像属提,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容