I used the following steps which are not seccessful:
Model Conversion
-
configuration and weights
cfg: models-zoo/yolov3-tiny.cfg at master · yan-wyb/models-zoo · GitHub
weights: https://pjreddie.com/media/files/yolov3-tiny.weights -
0_import_model_416A_tiny.sh
sajjad@teco:~/hussain/npusdk2_basis/aml_npu_sdk/acuity-toolkit/demo$ cat 0_import_model_416A_tiny.sh
#!/bin/bash
NAME=yolotiny
ACUITY_PATH=../bin/
pegasus=${ACUITY_PATH}pegasus
if [ ! -e "$pegasus" ]; then
pegasus=${ACUITY_PATH}pegasus.py
fi
#--model /home/sajjad/sajjad/models-zoo/darknet/yolov3/yolov3/yolov3-tiny.cfg \
#--weights /home/sajjad/sajjad/yolov3.weights \
$pegasus import darknet\
--model /home/sajjad/sajjad/darknet/cfg/yolov3-tiny.cfg \
--weights /home/sajjad/sajjad/darknet/yolov3-tiny.weights \
--output-model ${NAME}.json \
--output-data ${NAME}.data \
#generate inpumeta --source-file dataset.txt
$pegasus generate inputmeta \
--model ${NAME}.json \
--input-meta-output ${NAME}_inputmeta.yml \
--channel-mean-value "0 0 0 0.003906" \
--source-file data/validation_tf_416.txt
- 1_quantize_model_416_tiny.sh
sajjad@teco:~/hussain/npusdk2_basis/aml_npu_sdk/acuity-toolkit/demo$ cat 1_quantize_model_416_tiny.sh
#!/bin/bash
NAME=yolotiny
ACUITY_PATH=../bin/
pegasus=${ACUITY_PATH}pegasus
if [ ! -e "$pegasus" ]; then
pegasus=${ACUITY_PATH}pegasus.py
fi
$pegasus quantize \
--quantizer dynamic_fixed_point \
--qtype int8 \
--rebuild \
--with-input-meta ${NAME}_inputmeta.yml \
--model ${NAME}.json \
--model-data ${NAME}.data
- 2_export_case_code_416_tiny.sh
sajjad@teco:~/hussain/npusdk2_basis/aml_npu_sdk/acuity-toolkit/demo$ cat 2_export_case_code_416_tiny.sh
#!/bin/bash
NAME=yolotiny
ACUITY_PATH=../bin/
pegasus=$ACUITY_PATH/pegasus
if [ ! -e "$pegasus" ]; then
pegasus=$ACUITY_PATH/pegasus.py
fi
$pegasus export ovxlib\
--model ${NAME}.json \
--model-data ${NAME}.data \
--model-quantize ${NAME}.quantize \
--with-input-meta ${NAME}_inputmeta.yml \
--dtype quantized \
--optimize VIPNANOQI_PID0X88 \
--viv-sdk ${ACUITY_PATH}vcmdtools \
--pack-nbg-unify
rm -rf ${NAME}_nbg_unify
mv ../*_nbg_unify ${NAME}_nbg_unify
cd ${NAME}_nbg_unify
mv network_binary.nb ${NAME}_88.nb
cd ..
#save normal case demo export.data
mkdir -p ${NAME}_normal_case_demo
mv *.h *.c .project .cproject *.vcxproj BUILD *.linux *.export.data ${NAME}_normal_case_demo
# delete normal_case demo source
#rm *.h *.c .project .cproject *.vcxproj BUILD *.linux *.export.data
#rm *.data *.quantize *.json *_inputmeta.yml
rm *.data *.json *_inputmeta.yml
- validation_tf_416.txt
sajjad@teco:~/hussain/npusdk2_basis/aml_npu_sdk/acuity-toolkit/demo$ cat data/validation_tf_416.txt
./1080p-416x416.jpg
sajjad@teco:~/hussain/npusdk2_basis/aml_npu_sdk/acuity-toolkit/demo$
Test yolov3_tiny
-
Produce libnn_yolo_tiny.so using detect_yolo_v3_tiny
I copied the generated files from SDK i.e., vnn_post_process.h, vnn_pre_process.h, and vnn_yolotiny.h to aml_npu_app/detect_library/model_code/detect_yolo_v3_tiny/include and vnn_yolotiny.c to aml_npu_app/detect_library/model_code/detect_yolo_v3_tiny/include. libnn_yolo_tiny.so is produced using ./build_vx.sh -
Copy libnn_yolo_tiny.so and yolotiny_88.nb to detect_demo_picture
I copied libnn_yolo_tiny.so to aml_npu_demo_binaries/detect_demo_picture/lib and yolotiny_88.nb to aml_npu_demo_binaries/detect_demo_picture/nn_data
yolotiny_88.nb -
Run ./UNINSTALL and ./INSTALL
sudo ./UNINSTALL
khadas@Khadas:~/hussain/aml_npu_demo_binaries/detect_demo_picture$ sudo cp -arf lib/libnn_detect.so /usr/lib/.
khadas@Khadas:~/hussain/aml_npu_demo_binaries/detect_demo_picture$ sudo cp -arf lib/libnn_yolo_tiny.so /usr/lib/.
- Test the yolo-v3-tiny using ./detect_demo_x11 -m 3
It gives the following error.
khadas@Khadas:~/hussain/aml_npu_demo_binaries/detect_demo_picture$ ./detect_demo_x11 -m 3 -w 416 -h 416 -p ~/hussain/img/1920x1056/dog_1920x1056.jpg
W Detect_api:[det_set_log_level:19]Set log level=1
W Detect_api:[det_set_log_level:21]output_format not support Imperfect, default to DET_LOG_TERMINAL
W Detect_api:[det_set_log_level:26]Not exist VSI_NN_LOG_LEVEL, Setenv set_vsi_log_error_level
det_set_log_config Debug
Segmentation fault
khadas@Khadas:~/hussain/aml_npu_demo_binaries/detect_demo_picture$ ./detect_demo_x11 -m 3 -p ~/hussain/img/1920x1056/dog_1920x1056.jpg
W Detect_api:[det_set_log_level:19]Set log level=1
W Detect_api:[det_set_log_level:21]output_format not support Imperfect, default to DET_LOG_TERMINAL
W Detect_api:[det_set_log_level:26]Not exist VSI_NN_LOG_LEVEL, Setenv set_vsi_log_error_level
det_set_log_config Debug
Segmentation fault
khadas@Khadas:~/hussain/aml_npu_demo_binaries/detect_demo_picture$ ./detect_demo_x11 -m 3 -p ~/hussain/img/416/dog_416.jpg
W Detect_api:[det_set_log_level:19]Set log level=1
W Detect_api:[det_set_log_level:21]output_format not support Imperfect, default to DET_LOG_TERMINAL
W Detect_api:[det_set_log_level:26]Not exist VSI_NN_LOG_LEVEL, Setenv set_vsi_log_error_level
det_set_log_config Debug
Segmentation fault
khadas@Khadas:~/hussain/aml_npu_demo_binaries/detect_demo_picture$
while with original libnn_yolo_tiny.so and yolotiny_88.nb it gives the correct results. Can you please guide me how to fix it?
Thanks
@Frank @numbqq