熟悉了tengine两个星期之后(主要还是熟悉环境和操作fedora,解决一些问题),本部分简要记录了一些问题如何解决,以及完成后的体会总结。成功在EAIDK310上测试MSSD。
在EAIDK310板子上 git tengine源码,按手册来操作的话主要的问题是fedora如何安装一些lib。fedora有yum安装,dnf安装,如需要安装protobuf的lib可以使用如下命令。
sudo yum install protobuf libprotobuf-devel
举一反三的东西不闲扯。
Step1:tengine目前的版本1.3.2下,对于EAIDK310来说,直接cp makefile.config即可,直接编译,make -j2最好,过多板子发热厉害。make j4直接卡机。
编译完成后,按照手册测试
step2:进入examples文件夹内的mssd,修改cmakelist文件,将其中所有与BLAS有关均注释掉,去除BLAS,否则在STEP3中你会得到一个cannot find openblas的错误。
step3:编译完成,并测试成功后,开始按照examples内readme操作,mkdir build然后cd build ,修改linux-build的内容,即修改其路径,我的是/home/openailab/tengine。在build路径下运行linux-build.sh,会看到build路径下有很多文件夹,本次只编译mssd(缩写)文件夹下的工程。直接make,同时需要保证tengine目录下models文件夹内含有模型文件(手册中有提示如何下载),编译成功后,该文件下会生成一个可执行文件,MSSD运行后可以得到如下图所示的输出,以及saved.jpg。
/home/openailab/tengine/examples/build/mobilenet_ssd/MSSD
proto file not specified,using /home/openailab/tengine/models/MobileNetSSD_deploy.prototxt by default
model file not specified,using /home/openailab/tengine/models/MobileNetSSD_deploy.caffemodel by default
image file not specified,using /home/openailab/tengine/tests/images/ssd_dog.jpg by default
--------------------------------------
repeat 1 times, avg time per run is 216.731 ms
detect result num: 3
dog :100%
BOX:( 138.509 , 209.394 ),( 324.57 , 541.314 )
car :100%
BOX:( 467.315 , 72.8045 ),( 687.269 , 171.128 )
bicycle :100%
BOX:( 107.395 , 140.657 ),( 574.212 , 415.188 )
======================================
就为了这个在板子上运行,花了很长时间,下一步准备将我训练好的模型移植到板子上,并给出结果,展示效果。
OMT:
EAIDK310在MSSD任务上表现很不错,实现了两百毫秒的速度,我曾在树莓派3上移植caffe ssd,并运行了我的模型识别一张图需要三四秒还不止,同样如之前所说的我还使用过TI的异构处理器,AM5708,该芯片暂时不支持MSSD,对于图像应用来说,不支持目标检测,简直是废物一般,关注后期EAIDK的报价,TI的性价比普遍不高,工业上用的多,RK的片子性能很不错的,发热问题希望EAIDK官方改进一下,或者配一个散热片,不然板子寿命会大幅缩短。