资源简介
opencv4.0结合TensorFlow实现mask rcnn的目标分割效果Demo。
项目给予vs2015,其中没有加入mask_rcnn_inception_v2_coco训练数据集,如有导入需要可以去我的另一个资源中下载。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace cv;
using namespace dnn;
using namespace std;
// Initialize the parameters
float confThreshold = 0.5; // Confidence threshold
float maskThreshold = 0.3; // Mask threshold
vector classes;
vector colors;
void loadModal(Net& net);
void predictedAllobject(Mat& frame Net net);
// Draw the predicted bounding box
void drawBox(Mat& frame int classId float conf Rect box Mat& objectMask);
// Postprocess the neural network‘s output for each frame
void postprocess(Mat& frame const vector& outs);
int main()
{
Net net;
loadModal(net);
Mat frame;
// Create a window
static const string kWinName = “Deep learning object detection in OpenCV“;
namedWindow(kWinName WINDOW_NORMAL);
// get frame from the video
frame = imread(“3.jpg“);
predictedAllobject(frame net);
// Write the frame with the detection boxes
Mat detectedframe;
frame.convertTo(detectedframe CV_8U);
imshow(kWinName frame);
waitKey(0);
return 0;
}
void loadModal(Net& net)
{
// Load names of classes
string classesFile = “./mask_rcnn_inception_v2_coco_2018_01_28/mscoco_labels.names“;
ifstream ifs(classesFile.c_str());
string line;
while (getline(ifs line)) classes.push_back(line);
// Load the colors
string colorsFile = “./mask_rcnn_inception_v2_coco_2018_01_28/colors.txt“;
ifstream colorFptr(colorsFile.c_str());
while (getline(colorFptr line))
{
char* pEnd;
double r g b;
r = strtod(line.c_str() &pEnd);
g = strtod(pEnd NULL);
b = strtod(pEnd NULL);
Scalar color = Scalar(r g b 255.0);
colors.push_back(Scalar(r g b 255.0));
}
// Give the configuration and weight files for the model
String textGraph = “./mask_rcnn_inception_v2_coco_2018_01_28/mask_rcnn_inception_v2_coco_2018_01_28.pbtxt“;
String modelWeights = “./mask_rcnn_inception_v2_coco_2018_01_28/frozen_inference_graph.pb“;
// Load the network
net = readNetFromTensorflow(modelWeights textGraph);
net.setPreferableBackend(DNN_BACKEND_OPENCV);
net.setPreferableTarget(DNN_TARGET_CPU);
}
void predictedAllobject(Mat& frame Net net)
{
Mat blob;
// Create a 4D blob from a frame.
blobFromImage(frame blob 1.0 Size(frame.cols frame.rows) Scalar() true false);
//blobFromImage(frame blob);
//Sets the input to the network
net.setInput(blob);
// Runs the forward pass to get output from the output layers
std::vector outNames(2);
outNames[0] = “detection_out_final“;
outNames[1] = “detection_masks“;
vector outs;
net.forward(outs outNames);
// Extract the bounding box and mask for each of the detected objects
postprocess(frame outs);
// Put efficiency information. The function getPerfProfile returns the overall ti
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-02-21 10:04 opencv\
目录 0 2019-02-18 10:41 opencv\.vs\
目录 0 2019-02-18 10:41 opencv\.vs\opencv\
目录 0 2019-02-18 10:41 opencv\.vs\opencv\v14\
文件 34304 2019-02-21 10:04 opencv\.vs\opencv\v14\.suo
目录 0 2019-02-21 09:58 opencv\opencv\
文件 1300 2019-02-18 10:41 opencv\opencv.sln
文件 15224832 2019-02-21 10:04 opencv\opencv.VC.db
文件 288944 2019-01-28 11:50 opencv\opencv\1.jpg
文件 239931 2019-01-28 11:50 opencv\opencv\2.jpg
文件 213567 2019-01-28 11:50 opencv\opencv\3.jpg
文件 6601 2019-02-21 09:58 opencv\opencv\imgmain.cpp
文件 5706 2019-02-18 16:28 opencv\opencv\opencv.vcxproj
文件 948 2019-02-18 16:28 opencv\opencv\opencv.vcxproj.filters
目录 0 2019-02-18 10:53 opencv\opencv\x64\
目录 0 2019-02-21 09:58 opencv\opencv\x64\Debug\
文件 1124221 2019-02-21 09:58 opencv\opencv\x64\Debug\imgmain.obj
文件 1089484 2019-02-18 16:09 opencv\opencv\x64\Debug\main.obj
文件 728 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.log
目录 0 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\
文件 1294 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\CL.command.1.tlog
文件 57110 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\CL.read.1.tlog
文件 1378 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\CL.write.1.tlog
文件 1404 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\li
文件 3568 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\li
文件 676 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\li
文件 224 2019-02-21 09:58 opencv\opencv\x64\Debug\opencv.tlog\opencv.lastbuildstate
文件 1281024 2019-02-21 09:58 opencv\opencv\x64\Debug\vc140.idb
文件 2265088 2019-02-21 09:58 opencv\opencv\x64\Debug\vc140.pdb
目录 0 2019-02-18 10:53 opencv\x64\
目录 0 2019-02-28 14:35 opencv\x64\Debug\
............此处省略3个文件信息
- 上一篇:LifeChangerEA.zip
- 下一篇:LOINC精简版字典
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- 广联达6.0写锁包,2020年11月最新
- TensorFlow1.4 官方手册
- 机器学习个人笔记完整版v5.2-A4打印版
- 深度学习卷积神经网络可检测和分类
- GAN对抗式生成网络的应用:从图片上
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- [en]深度学习[Deep Learning: Adaptive Compu
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- 李宏毅-机器学习(视频2017完整)
- 吴恩达深度学习第一课第四周作业及
- 机器学习深度学习 PPT
- 麻省理工:深度学习介绍PPT-1
- Wikipedia机器学习迷你电子书之四《D
- opencv_traincascade训练分类器,手势识别
- 深度学习在遥感中的应用综述
- opencv3.0交叉编译用parallel.cpp
- 深度学习数据集标注
- 基于opencv的图像识别识别图像中的色
- 深度学习算法实践源码-吴岸城
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- MSCNN_dehaze.rar
- 基于双向LSTM+tensorflow中文分词
- QT+opencv+OCR 身份证号码,银行卡号识别
评论
共有 条评论