海思AI芯片(Hi3519A/3559A)方案学习(十三)第一次在hi3519A ARM上运行yolov3模型

前言

前段时间调通了nnie上运行 yolo3模型(darknet->caffe model->wk),但发现精度掉的很厉害,小目标检测根本就不行了(后注:后来发现参数设置有些问题,其实精度不会掉很多,就是比较敏感,容易误识别,但得分不高,所以可以通过提高置信度阈值来解决)。因为我们项目对实时性要求不苛刻,所以转而想直接在arm上运行darknet weights。

运行yolo3 完整版模型失败

由于有了系列 十二)移植opencv343到hi3519A 得基础,所以很快就用下面命令行对cpu+opencv4.0.1上直接运行yolov3模型 中的源代码进行编译。

 可是执行时,却遇到下面这个问题。初步分析是因为yolov3得weights有240MB左右,在arm平台上malloc这么大一个mat会失败。

运行yolo3-tiny模型太慢

 改成加载yolov3-tiny.weights,同时使用yolov3-tiny.cfg以及yolov3-tiny.names(一共80个类),并将network size在代码里面改成416 x 416,是可以成功运行yolo3-tiny模型得,但是推理时间要2分钟左右。而且准确度不高,如下图所示,自行车没有识别出来,而且卡车识别成两个了。

小结

 目前来看,在arm cpu平台上直接推理yolo3模型不是很顺利,还需要花费比较大的精力来优化。 

 

你可能感兴趣的:(嵌入式AI)