참고
개발 환경 소개
호스트 PC: ubuntu22.04로 설치됨(다른 것도 참조할 수 있음)
Docker: ubuntu20.04
개발 보드: rk3588s 칩
호스트 머신 환경 구성을 갖춘 rock 5a
[Rock Pi 1] VNC+KDE 데스크탑용 Rock pi open VNC 원격 데스크탑
[ Rock Pi 2] rknn 호스트 측 구성 Docker 개발 환경 배포
YOLO v5 모델 배포(C++ 버전)
소스 코드 다운로드(호스트 측)
#根据上篇文章创建的docker虚拟机编号执行下面指令进入docker虚拟机
dengml@dengml-SER:~$ sudo docker exec -it -u dengml -w /home/dengml 612c918d5027 /bin/bash
[sudo] dengml 的密码:
dengml@612c918d5027:~$ cd /data/ubuntu/rockpi/rknn-toolkit2
#执行以下命令使能之前创建的python虚拟环境(虽然本节似乎没用到宿主机的python)
dengml@612c918d5027:/data/ubuntu/rockpi/rknn-toolkit2$ source venv/bin/activate
#获取rknpu2源代码
(venv) dengml@612c918d5027:/data/ubuntu/rockpi$ git clone https://kgithub.com/rockchip-linux/rknpu2.git
이 코드에는 Yolo v5와 같은 여러 모델의 데모가 포함되어 있습니다. 여기서는 먼저 공식적으로 제공되는 rknn 모델을 배포합니다.
크로스 컴파일 도구 설치(호스트 측)
우분투 소프트웨어 라이브러리에는 이미 cross-aarch64-linux 크로스 컴파일 도구 체인이 포함되어 있으므로 단순성의 원칙에 따라 다음과 같이 apt를 직접 사용하여 설치할 수 있습니다.
$ sudo apt update
$ sudo apt-get install gcc-aarch64-linux-gnu
$ sudo apt-get install g++-aarch64-linux-gnu
#安装 cmake 编译工具
$ sudo apt install cmake
소스 코드 컴파일(호스트 측)
$ cd rknpu2/examples/rknn_yolov5_demo
$ ./build-linux_RK3588.sh
#代码通过scp到开发板端,也可以通过winscp、samba、等其他方式
$ scp -r install/rknn_yolov5_demo_Linux [email protected]:~/work
검증(개발보드 측)
컴파일된 바이너리 및 모델 파일을 보드에 scp한 후 SSH를 통해 개발 보드에 로그인합니다.
#打开cp过来的目录
rock@rock-5a:~$ cd work/rknn_yolov5_demo_Linux/
#添加运行依赖的动态库
rock@rock-5a:~/work/rknn_yolov5_demo_Linux$ export LD_LIBRARY_PATH=./lib
#执行识别命令
rock@rock-5a:~/work/rknn_yolov5_demo_Linux$ ./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn model/bus.jpg
명령을 실행한 후의 결과는 그림과 같습니다.
실행 로그는 그림과 같으며 먼저 moba 인터페이스에서 SFTP 파일 관리자 인터페이스("1"로 표시)를 클릭한 후 "2"를 클릭하면 오른쪽의 터미널이 위치한 디렉터리가 바로 열립니다. 자동으로 열 수 없습니다. 위 그림과 같이 오른쪽에 있는 터미널이 있는 "3" 디렉터리를 입력하세요. 모델 생성의 결과로 새로운 파일 out.jpg가 생성되는 것을 볼 수 있습니다. 이 시점에서 rknn 모델의 C++ 버전 배포가 완료되었습니다. 두 번 클릭하여 열면 결과는 다음과 같습니다.