本文接https://blog.csdn.net/justidle/article/details/102864794这个文章。

获取MobileNet-YOLO

上文提到缺少mobilenet_yolo.param和mobilenet_yolo.bin这两个文件,这两个文件来自MobileNet-YOLO这个开源项目。项目对应的GitHub地址为https://github.com/eric612/MobileNet-YOLO。其实仔细阅读yolov2.cpp代码,在detect_yolov2()函数中有说明。开始由于本人对NCNN不够熟悉,第一时间没有反应过来。

    // original pretrained model from https://github.com/eric612/MobileNet-YOLO
    // https://github.com/eric612/MobileNet-YOLO/blob/master/models/yolov2/mobilenet_yolo_deploy.prototxt
    // https://github.com/eric612/MobileNet-YOLO/blob/master/models/yolov2/mobilenet_yolo_deploy_iter_80000.caffemodel

好了,下载好MobileNet-YOLO源码。

将CAFFE模型转换为NCNN模型

将models/yolov2下对应的mobilenet_yolo_deploy.prototxt和mobilenet_yolo_deploy_iter_80000.caffemodel拷贝到D:\zhouyi\work\ncnn\build-vs2017\tools\caffe。然后利用NCNN的转换工具caffe2ncnn.exe,将Caffe模型转换为NCNN模型。

caffe2ncnn.exe mobilenet_yolo_deploy.prototxt mobilenet_yolo_deploy_iter_80000.caffemodel mobilenet_yolo.param mobilenet_yolo.bin

这样,我们就得到了mobilenet_yolo.param和mobilenet_yolo.bin,再将这两个文件拷贝到例程目录,D:\zhouyi\work\ncnn\examples\yolov2\x64\Debug。

拷贝被识别图片

同时拷贝一张图片,来自darknet的person.jpg。

识别

运行编译出的yolov2.exe。

D:\zhouyi\work\ncnn\examples\yolov2\x64\Debug>yolov2 person.jpg
find_blob_index_by_name data failed
12 = 0.98016 at 68.74 263.96 133.91 x 84.17
15 = 0.92400 at 189.25 88.86 78.89 x 296.65
17 = 0.69918 at 415.31 134.46 178.85 x 205.66

即可获得如下图片。

VS2017调试运行NCNN样例2

P.S.

    有个很奇怪的现象,修改源码,直接在vs2017下运行,cv::imread()出错,无法读取图片。我在编译NCNN的时候,NCNN_OPENCV这个宏没有使能啊。源码再查一下。

相关文章:

  • 2021-09-14
  • 2022-12-23
  • 2021-04-04
  • 2022-12-23
  • 2021-08-01
  • 2021-05-15
  • 2021-04-20
  • 2021-04-09
猜你喜欢
  • 2022-01-01
  • 2021-08-21
  • 2022-01-16
  • 2021-09-17
  • 2021-11-09
  • 2022-12-23
  • 2021-08-09
相关资源
相似解决方案