Model conversion problem Yolo4模型转换无法通过编译

SDK/linux_sdk/linux_sdk/acuity-ovxlib-dev/include/vsi_nn_assert.h:35:32:错误:
数组‘assert_failed_CASE_VERSION_is_higher_than_OVXLIB_VERSION_25’的大小为负
typedef char assert_paste(assert_failed##msg##_, line)[2*!!(cond)-1];

按照https://docs.khadas.com/zh-cn/vim3/HowToConvertToUseNPU.html上的教程
把一个100%确定能用有正确结果的custom.weights和custom.cfg喂给NPU SDK
data下准备了200张416x416图片并将文件名写入validation_tf.txt

acuity-toolkit 取自 aml_npu_sdk_6.4.4.3
linux_sdk 与 toolchains 取自 aml_npu_sdk_6.4.3
(因为6.4.4.3里没这两文件夹)
Python3.5 / Pop!OS 20.04 LTS 可以成功编译aml_npu_app内的demo工程

我使用的是整合DarkNet转换脚本,本质是把0_xxx、1_xxx、2_xxx三个sh合起来。

#!/bin/bash

YOLO=custom
FILE=yolov3

echo “------------ConvertDarknet------------”

…/bin/convertdarknet
–net-input ${YOLO}.cfg
–weight-input ${YOLO}.weights
–net-output ${FILE}.json
–data-output ${FILE}.data \

echo “-------------Quantization-------------”

…/bin/tensorzonex
–model-input ${FILE}.json
–model-data ${FILE}.data
–source text
–source-file data/validation_tf.txt
–action quantization
–dtype float32
–reorder-channel ‘2 1 0’
–channel-mean-value ‘0 0 0 256’
–model-quantize ${FILE}.quantize
–quantized-dtype asymmetric_affine-u8
–batch-size 20
–epochs 10
–quantized-rebuild \

#default batch-size(100) epochs(1) if the epochs > 1
#the numbers of pictures = batch-size * epochs

echo “-------------Ovxgenerator-------------”

…/bin/ovxgenerator
–model-input ${FILE}.json
–data-input ${FILE}.data
–model-quantize ${FILE}.quantize
–reorder-channel ‘2 1 0’
–channel-mean-value ‘0 0 0 256’
–export-dtype quantized
–optimize VIPNANOQI_PID0X88
–viv-sdk …/bin/vcmdtools
–pack-nbg-unify \

echo “--------------Clear-------------”

rm *.h *.c *.lib BUILD *.linux
*.vcxproj .project .cproject
*.data *.json *.quantize \

echo “--------------Move--------------”

mv …/*nbg_unify cpp${FILE}
cd cpp_${FILE}
mv network_binary.nb ${FILE}.nb

NPU_APP=/home/qin915/Desktop/SDK/aml_npu_app/detect_library/model_code/

#cp ${NPU_APP}/detect_yolo_v3 ${NPU_APP}/detect_yolo_v3_raw -r

cp vnn_${FILE}.c ${NPU_APP}/detect_yolo_v3/vnn_yolov3.c
cp vnn_${FILE}.h ${NPU_APP}/detect_yolo_v3/include/vnn_yolov3.h
cp vnn_post_process.h ${NPU_APP}/detect_yolo_v3/include/vnn_post_process.h
cp vnn_pre_process.h ${NPU_APP}/detect_yolo_v3/include/vnn_pre_process.h

gedit ${NPU_APP}/detect_yolo_v3/yolov3_process.c
#yolov3_process.c : static char *coco_names = { ITEM };
#yolov3_process.c : int yolo_v3_post_process_onescale() { int num_class = NUM }
#yolov3_process.c : yolov3_postprocess() { … int size[3]={,(num_class+5)*3} }
#yolov3_process.c : yolov3_postprocess() { … int num_class = NUM }

echo “--------------Build-------------”

cd ${NPU_APP}/detect_yolo_v3
LinuxSDK=~/Desktop/SDK/linux_sdk/linux_sdk
./build_vx.sh ${LinuxSDK}

@qin915 你是用的最新的系统和最新 的SDK么?你这个看起来不是最新的版本

系统是1.0.6,SDK里能最新的都最新,用YoloV4就可以正常编译出so文件。
刚才我把全部项目都pull了,发现build_vx里x86平台编译命令无了。。。

@qin915 我们已经移除了x86的,我们现在只维护在板子上编译的