跑通一个soc example--yolov5---------------------------------------------------------------------------------
1:环境搭建 参考-----> https://kdocs.cn/l/ctDl6N6bTFfF的mlir章节
2:进入tpu-mlir_20230327_063052,注意,BM1684X请使用mlir工具链
进入docker-->docker run --privileged --name tpu-mlir -v $PWD:/workspace -it sophgo/tpuc_dev:v2.2
tar zxf tpu-mlir_v0.9.9-g29bbf954-20230327.tar.gz
source tpu-mlir_v0.9.9-g29bbf954-20230327/envsetup.sh
退出容器
创建一个soc-sdk文件并将一些文件移入
cp -rf ../sophon-img_20230327_063808/libsophon_soc_0.4.6_aarch64/opt/sophon/libsophon-0.4.6/include/ ./socsdk/
cp -rf ../sophon-img_20230327_063808/libsophon_soc_0.4.6_aarch64/opt/sophon/libsophon-0.4.6/lib/ ./socsdk/
cp -rf ../../sophon-mw_20230327_040051/sophon-mw-soc_0.6.0_aarch64/opt/sophon/sophon-ffmpeg_0.6.0/lib/ ./
cp -rf ../../sophon-mw_20230327_040051/sophon-mw-soc_0.6.0_aarch64/opt/sophon/sophon-ffmpeg_0.6.0/include/ ./
cp -rf ../../sophon-mw_20230327_040051/sophon-mw-soc_0.6.0_aarch64/opt/sophon/sophon-opencv_0.6.0/include/ ./
cp -rf ../../sophon-mw_20230327_040051/sophon-mw-soc_0.6.0_aarch64/opt/sophon/sophon-opencv_0.6.0/lib/ ./
将sophon-demo下下来-->git clone GitHub - sophgo/sophon-demo
之后在容器内进行
1:进入docker
docker run --privileged --name tpu-mlir -v $PWD:/workspace -it sophgo/tpuc_dev:v2.2
原因:该镜像已创建,要么重新创建一个新进程,要么杀死老进程;
解决办法如下:
接着设置一下环境
source envsetup.sh
在该目录下下载所需的文件,执行下载脚本
chmod -R +x scripts/
./scripts/download.sh
接着 ./scripts/gen_fp32bmodel_mlir.sh BM1684X生成bmodel
退出容器exit
进入下图目录并创建build文件并进入
执行cmake,红色为soc-sdk的路径
cmake -DTARGET_ARCH=soc \
-DSDK=/home/wzw/Bitmain/Release_230301-public/tpu-mlir_v1.1.v1.1-20230517/soc-sdk ../
make
生成可执行文件yolov5_bmvc.soc
远程传输指令-->scp -r sophon-demo/ linaro@10.12.13.51:/data/
远程连接另一台linux--->ssh -p 22 linaro@10.12.13.51
运行-->./yolov5_bmcv.soc --input=../../datasets/test \
--bmodel=../../models/BM1684X/yolov5s_v6.1_3output_fp32_1b.bmodel \
--dev_id=0 --conf_threash=0.5 --nms_thresh=0.5 --obj_threash=0.5 \
--classnames=../../datasets/coco.names
以下就是推理结果