SSD模型:
下载:https://github.com/weiliu89/caffe/tree/ssd#models
Fast-R-CNN模型基础上延伸(在特征图上采用卷积核来预测)
刚开始的层使用图像分类模型中的层,称为base network,在此基础上,添加一些辅助结构:
- Mult-scale feature map for detection
在base network后,添加一些卷积层,这些层的大小逐渐减小,可以进行多尺度预测。 - Convolutional predictors for detection
每一个新添加的层,可以使用一系列的卷积核进行预测。
对于一个大小为mn、p通道的特征层,使用33的卷积核进行预测,在某个位置上预测出一个值,该值可以是某一类别的得分,也可以是相对于default bounding boxes的偏移量,并且在图像的每个位置都将产生一个值。 - Default boxes and aspect ratio
在特征图的每个位置预测K个box。
对于每个box,预测C个类别得分,以及相对于default bounding box的4个偏移值,这样需要(C+4)k个预测器,在mn的特征图上将产生(C+4)km*n个预测值。
基于PASCAL VOC数据集实现200个分类对象检测
- 二进制模型
VGG_ILSVRC2016_SSD_300x300_iter_440000.caffemodel / MobileNetSSD_deploy.caffemodel - 网络描述
ILSVRC2016/SSD_300x300/deploy.prototxt / MobileNetSSD_deploy.prototxt - 分类信息
ILSVRC2016/SSD_300x300/labelmap_det.txt / classNames(20个分类标签)
GOTURN模型可以实现视频对象跟踪(100FPS)
GOTURN(Generic Object Tracking Using Regression Networks)
下载地址https://github.com/opencv/opencv_extra/tree/c4219d5eb3105ed8e634278fad312a1a8d2c182d/testdata/tracking
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <iostream>
using namespace cv;
using namespace cv::dnn;
using namespace std;
//参照https://blog.csdn.net/Haiqiang1995/article/details/89948101
//标签文件//分类信息
const char* classNames[] = {
"background",
"aeroplane", "bicycle", "bird", "boat",
"bottle", "bus", "car", "cat", "chair",
"cow", "diningtable", "dog", "horse",
"motorbike", "person", "pottedplant",
"sheep", "sofa", "train", "tvmonitor" };
//String Label_Text = "labelmap_det.txt";
String Model_Caffe =