效果1 识别摩托

效果 公路场景撞击现场

定义识别名称

const char* classNames[] = { “背景”,
“飞机”, “自行车”, “鸟”, “船”,
“瓶子”, “大汽车”, “小汽车”, “猫”, “椅子”,
“奶牛”, “餐桌”, “狗”, “马”,
“机车”, “人”, “花盆植物”,
“羊”, “沙发”, “火车”, “tv监视器” };

    String file_path = parser.getPathToApplication() + "/"; String modelConfiguration = file_path + "xx.prototxt";String modelBinary = file_path + "model.caffemodel";try{//加载深度神经网络模型dnn::Net net = readNetFromCaffe(modelConfiguration, modelBinary);if (net.empty()){cerr << "Can't load network by using the following files: " << endl;cerr << "prototxt:   " << modelConfiguration << endl;cerr << "caffemodel: " << modelBinary << endl;cerr << "Models can be downloaded here:" << endl;cerr << "https://github.com/chuanqi305/MobileNet-SSD" << endl;exit(-1);}net.setPreferableTarget(DNN_TARGET_OPENCL);

//定义图片,也可以从rtsp摄像头读取后 解码放到mat中,具体看我文章
rtsp读取摄像头进行算法识别

string image_file_name = "J:/bbbbb.jpg";
cv::Mat frame = cv::imread(image_file_name, CV_LOAD_IMAGE_COLOR);

判别过程

         Mat inputBlob = blobFromImage(frame, inScaleFactor,Size(inWidth, inHeight),Scalar(meanVal, meanVal, meanVal),false, false); //Convert Mat to batch of imagesnet.setInput(inputBlob); //set the network inputMat detection = net.forward(); //compute outputvector<double> layersTimings;double freq = getTickFrequency() / 1000;double time = net.getPerfProfile(layersTimings) / freq;Mat detectionMat(detection.size[2], detection.size[3], CV_32F, detection.ptr<float>());float confidenceThreshold = 0.5;// parser.get<float>("min_confidence");for (int i = 0; i < detectionMat.rows; i++){float confidence = detectionMat.at<float>(i, 2);if (confidence > confidenceThreshold){size_t objectClass = (size_t)(detectionMat.at<float>(i, 1));int left = static_cast<int>(detectionMat.at<float>(i, 3) * frame.cols);int top = static_cast<int>(detectionMat.at<float>(i, 4) * frame.rows);int right = static_cast<int>(detectionMat.at<float>(i, 5) * frame.cols);int bottom = static_cast<int>(detectionMat.at<float>(i, 6) * frame.rows);rectangle(frame, Point(left, top), Point(right, bottom), Scalar(0, 255, 0),2);String label = format("%s: %.2f", classNames[objectClass], confidence);int baseLine = 0;Size labelSize = getTextSize(label, FONT_HERSHEY_SIMPLEX, 0.5, 1, &baseLine);top = max(top, labelSize.height);rectangle(frame, Point(left, top - labelSize.height),Point(left + labelSize.width, top + baseLine+2),Scalar(0, 0, 255),FILLED);putTextZH(frame, label.c_str(), Point(left, top), Scalar(255, 255, 255), 18);/*putText(frame, label, Point(left, top),FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 0, 0));*/}}

以上使用opencv3.4.1 win7 win10 调试通过,在linux下面都是一样的过程,整个的

训练过程描述

可以使用多种方式,一种是yolo,一种是tensorflow模式训练模型,比较难的是逻辑模型,也就是行为识别,没有好的显卡很难做,这里没有写真正的详细过程,后续文章会写两种模式来训练模型。请关注我.

opencv 识别机车相关推荐

  1. 转载:使用 OpenCV 识别 QRCode

    原文链接:http://coolshell.cn/articles/10590.html#jtss-tsina 识别二维码的项目数不胜数,每次都是开箱即用,方便得很. 这次想用 OpenCV 从零识别 ...

  2. opencv resize_利用OpenCV 识别两张相似的图片

    Background: 在我们项目中,用到U-net,我们对训练样本图片使用labelme进行标定,对标定生成的json文件labelme_json_to_dataset生成标注图像,由于小伙伴将生成 ...

  3. opencv 取roi_利用OpenCV 识别两张相似的图片

    Background: 在我们项目中,用到U-net,我们对训练样本图片使用labelme进行标定,对标定生成的json文件labelme_json_to_dataset生成标注图像,由于小伙伴将生成 ...

  4. c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式

    from: c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式 #include <cstdint> #include <fstream> #i ...

  5. python相似图片识别_Python+Opencv识别两张相似图片

    Python+Opencv识别两张相似图片 在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系. 当然了,图像识别这个话 ...

  6. Opencv识别面部

    Opencv识别面部 本文识别面部依然采用的是cv zone中的面部识别的模型. 安装Opencv pip install opencv-python 安装cvzone pip install cvz ...

  7. Python+OpenCV 识别银行卡卡号

    Python+OpenCV 识别银行卡卡号 今天尝试一下用python+OpenCV,使用模板匹配的方式做个简单地识别银行卡卡号(大部分参考网上的,自己改了一部分,代码写的有点不太好,但是思路很清晰, ...

  8. Opencv识别车牌

    Opencv识别车牌 #encoding:utf8 import cv2 import numpy as np Min_Area = 50 #定位车牌 def color_position(img,o ...

  9. 通过OpenCV识别QR二维码

    <OpenCV系列教程> 二维码有很多种,我们今天介绍的就是QR这种二维码,全名是 Quick Response Code,下面我们就称作QR码. 博客分为两部分,第一部分是QR码的基础知 ...

最新文章

  1. 请正确使用return
  2. Javascript小括号“()”的多义性
  3. 大型网站核心架构要素--扩展性
  4. jquery-懒加载技术(简称lazyload)
  5. [开发笔记]-winfom ListBox控件选中项上下移动排序
  6. 【转】android:DDMS查看Threads--不错
  7. 2. Add Two Numbers
  8. bootstrap与jQuery结合的动态进度条
  9. 机器学习1/100天-数据预处理
  10. JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回 out.print(ja);...
  11. 《锋利的jQuery》随笔(一)
  12. BitPlots包简介
  13. MTK6763平台手机 在国外无法成功注册VOLTE。求解
  14. 智能家居linux 源码,搭建开源智能家居系统Domoticz
  15. 系统应用和第三方应用跳转
  16. web-天下武功唯快不破
  17. 二、Docker配置阿里镜像加速器
  18. 三相永磁同步电机无速度传感器控制(基于扩展反电动势)
  19. WebGoat 网安攻击模拟操训
  20. Unity URP管线设置 后处理的使用

热门文章

  1. invoke方法_JVM是如何执行方法调用的?
  2. 光标是停在文本框文字的最后
  3. 马斯克:正在认真考虑建立社交媒体平台
  4. 三星调侃iPhone13苍岭绿配色:受宠若惊
  5. 净利下降7成、新业务“扛大旗” 阿里转型更需耐心
  6. 英特尔成立集成光电研究中心 加速光互连I/O创新
  7. 库克宣布苹果将捐款帮助山西
  8. 年度影像旗舰vivo X70系列正式发布 售价3699元起
  9. 华为P50 Pro外观基本确认:居中开孔全面屏,首发鸿蒙操作系统
  10. 九阳股份:公司部分产品已开始对接使用华为鸿蒙系统