请教一下yolov4使用问题~~

我编译了一下aml_npu_app/detect_libaray/sample_demo_fb代码,得到detect_demo程序,放到板子上运行报错:
khadas@Khadas:~/npu/aml_npu_demo_binaries/detect_demo$ ./detect_demo 4 1080p.bmp
init_fb…
1920x1080, 32bpp
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
E Detect_api:[check_and_set_function:177]dlopen libnn_yolo_v4.so failed!
E Detect_api:[det_set_model:218]ModelType so open failed or Not support now!!
det_set_model fail. ret=-1

好像是libnn_yolo_v4.so打开出错?但是我已经把这个动态库放到/usr/lib目录下了:


是哪里没做对?谢谢!

@cbtogu 你是用的最新的代码运行的么

@Frank, 是的,昨天从gilab上更新的。我发现跑yolov3也出错:

@cbtogu 你的固件是你自己编译的还是官方发布的

@Frank,官方发布的,我用的是VIM3_Ubuntu-xfce-bionic_Linux-4.9_arm64_EMMC_V20191231 desktop版本

@cbtogu 你要用0530的版本,1231的版本驱动版本比较老了

@Frank, 我是得重新刷机吗?可以在线更新吗?

@cbtogu sudo apt update && sudo apt upgrade && sync ,然后重启

@Frank, 好的,不过估计会碰到昨天我说的从dl.khadas.com/repos/vim3更新软件太慢的问题

@cbtogu 这个目前确实没有解决办法,或者你刷0530的固件,目前我们没有设置国内的ota服务器

@Frank, 刷了最新固件之后就能正常运行了,谢谢。
不过建议把aml_npu_app下的代码目录整理一下,比如说aml_npu_app下有detect_library, 但DDK_6.4.0.3下面也有detect_library, 得仔细看才能看出他们之间的区别;
另外DDK_6.4.0.3/detect_library/model_code/detect_yolo_v4/nn_data下面有个yolov4_88.nb文件,跟aml_npu_demo_binaries/detect_demo_picture/nn_data/下的yolov4_88.nb有什么区别?我们测试的时候该用哪个文件?
还有aml_npu_demo_binaries/detect_demo_picture下的几个demo程序好像是依赖opencv4以上版本的?板子里安装的是opencv3.4,所以直接跑demo程序会出错。
这几个demo程序代码最好有一个readme告诉大家这些程序的区别,这样大家用起来也方便些。反正我在测试的时候,走了不少弯路。谢谢!

@cbtogu 你看分支,有opencv3的跟opencv4的不同分支,感谢你的建议,我们后续会对仓库做整理的

@Frank, 好的,感谢你们的工作。另外请教一下,我之前在PC上训练了一个yolov4的模型,能拿过来用转换工具转换然后使用吗?需要重新训练模型吗?

@cbtogu 不需要重新训练,转换后就是直接使用的

@Frank, 您好,我用已有的yolov4模型转换后,执行出错,我是按照 https://docs.khadas.com/zh-cn/vim3/HowToTransformYolo.html 上说的步骤进行转换,转换过程中没有出错,并且把编译好的libnn_yolo_v4.so和yolov4_88.nb放到相应的位置了,但在执行:./detect_demo 4 ./test.jpg后提示出错:

init_fb…
1920x1080, 32bpp
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
Error: yolo_v4.c: model_create at 31
E Detect_api:[det_set_model:225]Model_create fail, file_path=nn_data, dev_type=1
det_set_model fail. ret=-4
但是同一个程序,我用原先的libnn_yolo_v4.so和yolov4_88.nb和1080p.bmp测试正常。
请问这可能是什么问题?谢谢!

@cbtogu 你改用自带bmp文件测试看看呢?不要用你的图片

@Frank, 试过了,也是一样的错误。但是我用之前的yolov4_88.nb来测试我自己的测试图,倒也能正常运行,只不过检测结果为0。看来应该是模型的问题?

@cbtogu 你的libnn_yolo_v4.so是基于哪个源码生成的.是新的yolov4的 源码仓库生成的么,你的SDK和驱动的版本号是正确对应的么

@Frank yolov4是用的aml_npu_app/detect_library/model_code/detect_yolo_v4下的源码,
sdk是6.4.0.10版本,DDK 6.4.0.3

@cbtogu 你的程序的驱动呢,你更新最新的驱动了么,最新已经是6.4.2.1的了.然后你看一下你下载的可执行文件的版本是6.4.0.10还是6.4.2.1的了.不匹配是会出错的