龙空技术网

opencv3.4在圣诞节发布,支持faster R-CNN

CV派 8499

前言:

现在同学们对“zfnetcaffe”大致比较关切,大家都需要剖析一些“zfnetcaffe”的相关知识。那么小编同时在网络上搜集了一些对于“zfnetcaffe””的相关知识,希望各位老铁们能喜欢,朋友们一起来学习一下吧!

opencv3.4发布

值此圣诞与新年双节到来之际,OpenCV3.4悄然发布。用OpenCV官方的话来说就是:

Right before the Christmas and New Year holidays, we are glad to present the latest and the greatest OpenCV 3.4. we are glad to present the latest and the greatest OpenCV 3.4.

新内容

显著改善了DNN模块,包括:支持faster R-CNN,JavaScript绑定以及实现OpenCL加速。 尤其是MobileNet-SSD网络,比 OpenCV 3.3.1快了近7倍。这得益于Peng Li和他的团队。(看名字应该是中国人。)

为预编译的OpenCL内核二进制文件实现了磁盘高速缓存和手动加载,可以大幅降低许多应用程序的初始化时间,允许在没有JIT编译器的嵌入式平台运行OpenCL。

又实现了一种bit-exact算法,新的8位bilinear resize将为跨多种平台的复杂的计算机视觉管道奠定稳定的基础。

一个新的GSoC项目被整合进来 - 添加了新的背景差分算法(background subtraction algorithms)实现。

......

更多的更细节的更新内容请参考官方发布的ChangeLog。

尝试

我尝试了一下faster R-CNN的效果。看起来还不错。下面是测试结果。

代码运行

代码位置

代码用的是OpenCV官方的例子代码,在

D:\opencv3.4\opencv\sources\samples\dnn\faster_rcnn.cpp

这里可以找到。

下载caffe模型。

我们还需要按照例子只是去下载模型文件。其中faster R-CNN的模型文件例子中给的不是很清楚,我这里给出一个更清楚的地址:。下载后的压缩包里面包含两个caffe模型:VGG16_faster_rcnn_final.caffemodel和ZF_faster_rcnn_final.caffemodel。

然后去下载两个模型对应的protptxt:faster_rcnn_zf.prototxt和faster_rcnn_vgg16.prototxt。

修改代码

代码的开头部分原来是这个样子的:

 CommandLineParser parser(argc, argv, keys); parser.about("This sample is used to run Faster-RCNN and R-FCN object detection " "models with OpenCV. You can get required models from " " (Faster-RCNN) and from " " (R-FCN). Corresponding .prototxt " "files may be found at ."); if (argc == 1 || parser.has("help")) { parser.printMessage(); return 0; } String protoPath = parser.get<String>("proto"); String modelPath = parser.get<String>("model"); String imagePath = parser.get<String>("image"); float confThreshold = parser.get<float>("conf");

如果你会用命令行运行程序的话,直接用就行了。如果你跟我一样是在VS中运行的话(当然运行之前要花一分钟配置下最新的OpenCV3.4啦,配置时间不能超过两分钟),在把faster_rcnn.cpp拷到工程下后,你就需要做如下修改。首先把上述下载的模型文件和配置文件都放到VS工程下跟faster_rcnn.cpp同一文件夹内。然后修改程序开头部分如下即可。

String protoPath = "faster_rcnn_zf.prototxt";String modelPath = "ZF_faster_rcnn_final.caffemodel";String imagePath = "test1.jpg";float confThreshold = 0.8;

然后你就可以运行程序了!

运行效果如上面那个飞人飞车所示。换个姿势再运行一次......

标签: #zfnetcaffe