ResNet
环境配置
信息
参考 RKNN 安装 配置好相关环境。
参考 RKNN Model Zoo 下载示例文件。
模型下载
下载 onnx 模型文件。
X64 Linux PC
cd rknn_model_zoo/examples/resnet/model/
bash download_model.sh
模型转换
选择目标平台。
- rk3588
- rk356x
- rk3576
X64 Linux PC
export TARGET_PLATFORM=rk3588
X64 Linux PC
export TARGET_PLATFORM=rk356x
X64 Linux PC
export TARGET_PLATFORM=rk3576
将 onnx 模型转换为 rknn 模型。
提示
本示例可以在运行转换脚本之后看到模型输出。
X64 Linux PC
cd ../python/
python resnet.py ../model/resnet50-v2-7.onnx ${TARGET_PLATFORM}
模型输出:
-----TOP 5-----
[155] score=0.83 class="n02086240 Shih-Tzu"
[154] score=0.14 class="n02086079 Pekinese, Pekingese, Peke"
[262] score=0.02 class="n02112706 Brabancon griffon"
[283] score=0.00 class="n02123394 Persian cat"
[152] score=0.00 class="n02085782 Japanese spaniel"
C API
编译示例
切换到 rknn_model_zoo 目录下执行 build-linux.sh 编译脚本。
X64 Linux PC
cd ../../..
bash build-linux.sh -t ${TARGET_PLATFORM} -a aarch64 -d resnet
文件同步
然后将编译生成的 install 目录下的 demo 目录推送到板端。
X64 Linux PC
cd install/${TARGET_PLATFORM}_linux_aarch64/
scp -r rknn_resnet_demo/ user@your_device_ip:target_directory
运行示例
导出运行时库到环境变量。
Device
cd rknn_resnet_demo/
export LD_LIBRARY_PATH=./lib
运行示例。
Device
./rknn_resnet_demo ./model/resnet50-v2-7.rknn ./model/dog_224x224.jpg
$ ./rknn_resnet_demo ./model/resnet50-v2-7.rknn ./model/dog_224x224.jpg
num_lines=1001
model input num: 1, output num: 1
input tensors:
index=0, name=data, n_dims=4, dims=[1, 224, 224, 3], n_elems=150528, size=150528, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=-14, scale=0.018658
output tensors:
index=0, name=resnetv24_dense0_fwd, n_dims=2, dims=[1, 1000, 0, 0], n_elems=1000, size=1000, fmt=UNDEFINED, type=INT8, qnt_type=AFFINE, zp=-62, scale=0.146746
model is NHWC input fmt
model input height=224, width=224, channel=3
origin size=224x224 crop size=224x224
input image: 224 x 224, subsampling: 4:2:0, colorspace: YCbCr, orientation: 1
rga_api version 1.10.1_[0]
rknn_run
[155] score=0.792182 class=n02086240 Shih-Tzu
[154] score=0.182606 class=n02086079 Pekinese, Pekingese, Peke
[262] score=0.013012 class=n02112706 Brabancon griffon
[152] score=0.002237 class=n02085782 Japanese spaniel
[283] score=0.001931 class=n02123394 Persian cat
输出显示模型判断这是一张 Shih-Tzu (西施狗)的图片。
测试图片
Python API
本示例未提供单独的 Python API 运行脚本,读者可尝试自行实现。