高通SNPE测试:6、在开发板上运行Inception v3 Model(oe-linux)
实际上还是很顺利的,终于来到了使用开发板进行测试了。
- 环境变量
教程是aarch64-android,我的板子是linux。
# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2
- 复制文件1:adb shell方式
# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2export SNPE_TARGET_DSPARCH=hexagon-v73DST_DIR=${DST_ROOT}/data/local/snpe/snpeexampleadb shell "mkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/bin"
adb shell "mkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/lib"
adb shell "mkdir -p ${DST_DIR}/dsp/lib"adb push $SNPE_ROOT/lib/$SNPE_TARGET_ARCH/*.so \${DST_DIR}/$SNPE_TARGET_ARCH/lib
adb push $SNPE_ROOT/lib/$SNPE_TARGET_DSPARCH/unsigned/*.so \${DST_DIR}/dsp/lib
adb push $SNPE_ROOT/bin/$SNPE_TARGET_ARCH/snpe-net-run \${DST_DIR}/$SNPE_TARGET_ARCH/bincd $SNPE_ROOT/examples/Models/InceptionV3
mkdir data/rawfiles && cp data/cropped/*.raw data/rawfiles/DST_DIR=/data/local/snpe/inception_v3
adb shell "mkdir -p ${DST_DIR}/cropped"
adb push data/rawfiles ${DST_DIR}/cropped
adb push data/target_raw_list.txt ${DST_DIR}
adb push dlc/inception_v3_quantized.dlc ${DST_DIR}
rm -rf data/rawfiles
- 复制文件2:tar方式
比如我是虚拟机,先打包,再复制到开发板上解压移动过去。
# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2export SNPE_TARGET_DSPARCH=hexagon-v73WORK_PATH=`pwd`PLATFORM_NAME=sg882g
DST_ROOT=${WORK_PATH}/${PLATFORM_NAME}
if [ -d ${DST_ROOT} ]; thenrm -rf ${DST_ROOT}
fi
SNPE_ROOT_PATH=/data/local/snpe
DST_DIR=${DST_ROOT}/${SNPE_ROOT_PATH}/snpeexamplemkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/bin
mkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/lib
mkdir -p ${DST_DIR}/dsp/libcp -rfP $SNPE_ROOT/lib/$SNPE_TARGET_ARCH/*.so \${DST_DIR}/$SNPE_TARGET_ARCH/lib
cp -rfP $SNPE_ROOT/lib/$SNPE_TARGET_DSPARCH/unsigned/*.so \${DST_DIR}/dsp/lib
cp -rfP $SNPE_ROOT/bin/$SNPE_TARGET_ARCH/snpe-net-run \${DST_DIR}/$SNPE_TARGET_ARCH/binDST_DIR=${DST_ROOT}/${SNPE_ROOT_PATH}/inception_v3
cd $SNPE_ROOT/examples/Models/InceptionV3
mkdir -p ${DST_DIR}/croppedcp -rfP data/cropped/*.raw ${DST_DIR}/cropped
cp -rfP data/target_raw_list.txt ${DST_DIR}
cp -rfP dlc/inception_v3_quantized.dlc ${DST_DIR}cd ${WORK_PATH}cp copy-to-sg882g.sh ${PLATFORM_NAME}
cp run-on-sg882g.sh ${PLATFORM_NAME}TAR_FILE=${PLATFORM_NAME}.tar
if [ -f ${TAR_FILE} ]; thenrm ${TAR_FILE}
fi
tar -czf ${TAR_FILE} ${PLATFORM_NAME}DST_DIR=${HOME}/share/E
if [ -f ${DST_DIR}/${TAR_FILE} ]; thenrm ${DST_DIR}/${TAR_FILE}
fi
cp ${TAR_FILE} ${DST_DIR}
其中的两个shell,一个是复制文件到系统,一个是运行。
- 运行
注意,执行文件复制到/bin,库文件复制到/lib
# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2SNPE_ROOT_PATH=/data/local/snpe
SNPE_ARCH_PATH=${SNPE_ROOT_PATH}/snpeexample/$SNPE_TARGET_ARCHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${SNPE_ARCH_PATH}/lib
export PATH=$PATH:${SNPE_ARCH_PATH}/bincd ${SNPE_ROOT_PATH}/inception_v3snpe-net-run \--container inception_v3_quantized.dlc \--input_list target_raw_list.txt-------------------------------------------------------------------------------
Model String: N/A
SNPE v2.21.0.240401120655_85612
-------------------------------------------------------------------------------
Processing DNN input(s):
cropped/notice_sign.raw
Processing DNN input(s):
cropped/trash_bin.raw
Processing DNN input(s):
cropped/chairs.raw
Processing DNN input(s):
cropped/plastic_cup.raw
Successfully executed!
- 运行结果
具体输出在output目录下,可以使用adb导出。
如果是在windows上,最好用tar打包出来。
adb pull /data/local/snpe/inception_v3/output output_linux
- 检查运行结果
cd snpe-2.21.0/examples/Models/InceptionV3python3 scripts/show_inceptionv3_classifications_snpe.py \-i data/target_raw_list.txt \-o output_linux/ \-l data/imagenet_slim_labels.txtcropped/notice_sign.raw 0.140213 459 brass
cropped/trash_bin.raw 0.772629 413 ashcan
cropped/chairs.raw 0.301875 832 studio couch
cropped/plastic_cup.raw 0.976873 648 measuring cup
对比在UBUNTU上的结果,有所差异。