Qt +opencv 通过级联分类器训练的模型进行识别(车辆识别+人脸识别)

article/2025/9/28 14:40:35

有不对的或更好的方法欢迎交流

一些内容可参照这篇文章:https://blog.csdn.net/m0_64596200/article/details/126748697?spm=1001.2014.3001.5502
训练好的的模型:
车辆识别模型:https://download.csdn.net/download/m0_64596200/86507302?spm=1001.2014.3001.5503
人脸识别模型:https://download.csdn.net/download/m0_64596200/86509158?spm=1001.2014.3001.5503

如需讲解如何训练级联分类器模型请留言

人脸识别在最后面

车辆识别

1、为了提高检测效率首先进行灰度处理

cvtColor(frame,gray,CV_RGB2GRAY);
//视频画面可能过于高清
//再将灰度图再缩小一半
Mat smalling(cvRound(frame.rows/scale),cvRound(frame.cols/scale),CV_8UC1);
resize(gray,smalling,smalling.size(),0,0,INTER_LINEAR);

2、直方图均值化:将灰度后的图片黑白分明

    equalizeHist(smalling,smalling);

3、级联分类器检测出车辆进行保存再容器中

vector<Rect>cars;
//以矩形形状保存
cascade.detectMultiScale(smalling,cars,1.1,2,0|CV_HAAR_SCALE_IMAGE,Size(30,20));

4、绘制级联分类器识别出的物体

vector<Rect>::const_iterator iter;
for(iter=cars.begin();iter!=cars.end();iter++)
{//前面灰度是对图像进行了缩小,现在进行放大绘制矩形rectangle(frame,cvPoint(cvRound(iter->x*scale),cvRound(iter->y*scale)),cvPoint(cvRound((iter->x+iter->width)*scale),cvRound((iter->x+iter->height)*scale)),Scalar(250,200,500),2,8);
}

结果:
在这里插入图片描述
总结:绘制上可能需要小改。识别没有非常准确,只有look like,数据量不够,车辆的样式等不够全。级联分类器的正样本和负样本和训练时间、数据量的多少对准确度的影响

代码:

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void datectCarDaw(Mat &frame,CascadeClassifier cascade,double scale)
{Mat gray;cvtColor(frame,gray,CV_RGB2GRAY);//灰度图再缩小一半Mat smalling(cvRound(frame.rows/scale),cvRound(frame.cols/scale),CV_8UC1);//INTER_LINEAR线性变化resize(gray,smalling,smalling.size(),0,0,INTER_LINEAR);imshow("hui",smalling);//直方图均值化:将缩小的灰度图黑白分明//原图和保存对象equalizeHist(smalling,smalling);//检测级联分类器检测物体vector<Rect>cars;//以矩形形状保存cascade.detectMultiScale(smalling,cars,1.1,2,0|CV_HAAR_SCALE_IMAGE,Size(30,20));imshow("zhi",smalling);//绘制vector<Rect>::const_iterator iter;for(iter=cars.begin();iter!=cars.end();iter++){//前面灰度是对图像进行了缩小,现在进行放大绘制矩形rectangle(frame,cvPoint(cvRound(iter->x*scale),cvRound(iter->y*scale)),cvPoint(cvRound((iter->x+iter->width)*scale),cvRound((iter->x+iter->height)*scale)),Scalar(250,200,500),2,8);}imshow("frame",frame);
}int main()
{//级联分类器对象CascadeClassifier cascade;cascade.load("D:/QQ/cars.xml");Mat frame;VideoCapture cap("./carMove.mp4");while(cap.read(frame)){imshow("res",frame);datectCarDaw(frame,cascade,2);waitKey(25);}return 0;
}

人脸识别:

1、将路径cascade.load(“”);改成人脸识别级联分类器的路径
2、将vediocapture的参数数该为0(打开本机摄像头即可)
结果:在这里插入图片描述


http://chatgpt.dhexx.cn/article/KG14ZgN9.shtml

相关文章

机器学习1:OpenCV4.5.5加载xml进行车辆识别

深度学习准确率高识别效果好&#xff0c;但是对软硬件环境要求高&#xff0c;使用及部署有一定难度&#xff0c;应用受限。相比之下&#xff0c;机器学习效果差一个量级&#xff0c;但是计算量小&#xff0c;计算迅速&#xff0c;部署相对容易&#xff0c;尤其是在一些计算能力…

基于YOLOv5的车辆识别系统

基于YOLOv5的车辆识别系统&#xff08;展示&#xff09; 文章目录 基于YOLOv5的车辆识别系统&#xff08;展示&#xff09;前言车牌识别车型识别 前言 YOLO能实现图像或视频中物体的快速识别&#xff0c;在相同的识别类别范围和识别准确率条件下&#xff0c;YOLO识别速度最快。…

Review of Vehicle Recognition Technology - 车辆识别技术综述

Review of Vehicle Recognition Technology - 车辆识别技术综述 ZHANG Qiang, LI Jiafeng, ZHUO Li Faculty of Information Technology, Beijing University of Technology, Beijing 100124, China 北京工业大学信息学部&#xff0c;北京 100124 Beijing University of Tech…

deeplearning.36车辆识别YOLO算法实践

车辆识别 下载相关资料导入相关包数据集定义YOLO模型细节分类阈值过滤非最大值抑制非最大值抑制函数对所有框进行过滤 测试训练好的yolo模型定义分类、锚框、图像维度加载已经训练好的模型模型的输出转换为边界框过滤锚框实际图像中运行计算图实际预测一下 下载相关资料 下载本…

基于python的transform行人车辆识别

Transformer是一种神经网络体系结构&#xff0c;由于它能够有效地处理顺序数据中的长期依赖性&#xff0c;因此在自然语言处理(NLP)任务中受到欢迎。它还被应用于各种其他任务&#xff0c;包括图像分类、对象检测和语音识别。 在车辆和行人识别方面&#xff0c;transformer可用…

使用Python和docTR提取车辆识别号

VIN&#xff08;车辆识别号&#xff09;是一个17个字符的字符串&#xff0c;由数字和大写字母组成&#xff0c;用作汽车的指纹。 它可以帮助识别任何一辆汽车的寿命&#xff0c;并获得有关它的具体信息。该唯一标识符在制造过程中打印在车辆的某个位置&#xff0c;以便人们在租…

Opencv python之车辆识别项目(附代码)

文章目录 图片车辆识别视频车辆识别 图片车辆识别 根据文章搭建好环境后开始进行做项目link import sys import cv2 from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtGui import QIcon, QPalette, QPixmap, QBrush, QRegExpValidatorclass mainWin(QW…

java opencv 之车辆识别

上篇写了人脸识别&#xff0c;因为人脸识别的训练模型 haarcascade_frontalface_alt.xml 之类的官方已经训练好了可以直接用&#xff0c;但是我们要识别车辆或者其它物体就得训练模型&#xff0c;好在废了一点力 找到了一位大神训练好的模型 核心代码 几乎和人脸识别的差不多 s…

如何开发一个车牌识别,车牌识别系统,车辆识别系统毕业设计毕设作品

开发准备 第1步&#xff1a;准备好百度智能云的账号 第2步&#xff1a;在百度智能云领取对应AI开发的免费资源包 第3步&#xff1a;创建对应的应用&#xff0c;然后获取对应的开发信息&#xff0c;主要是下面几个 AppID&#xff1a;应用列表中 API Key&#xff1a;应用列表…

车辆识别

一&#xff1a;简介 车牌识别系统(Vehicle License Plate Recognition&#xff0c;VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息&#xff08;含汉字字符、英文字母、阿拉伯数字及号牌颜色&#xff09;进行处理的技术。车牌识别是现代智能交通系统中的重要组成…

【OpenCV】 车辆识别 运动目标检测

目录 一&#xff1a;车辆识别 运动目标检测 二&#xff1a;车辆识别实现 超详细步骤解析 步骤一&#xff1a;灰度化处理 步骤二&#xff1a;帧差处理 步骤三&#xff1a;二值化处理 步骤四&#xff1a;图像降噪 4-1 腐蚀处理 目的 去除白色噪点 4-2 膨胀处理 目的 把白…

【OpenCV】车辆识别 C++ OpenCV 原理介绍 + 案例实现

目录 前言 一、图像处理 &#x1f4bb;二值化处理 &#x1f4bb;膨胀、腐蚀 &#x1f4bb;开运算、闭运算 二、案例实现 Step1&#xff1a;灰度处理 Step2&#xff1a;对视频进行帧差处理 Step3&#xff1a;二值化处理 Step4&#xff1a;腐蚀处理 Step5&#xff1a…

【OpenCV】车辆识别 目标检测 级联分类器 C++ 案例实现

目录 前言 一、目标检测技术 二、样本采集工作原理 三、创建自己的级联分类器 Step1&#xff1a;准备好样本图像 Step2&#xff1a;环境配置&#xff08;OpenCV win10&#xff09; Step3&#xff1a;设置路径 Step4&#xff1a;实现样本数据采集 Step5&#xff1a;实…

使用华为modelarts进行车辆识别

要求&#xff1a;从图像&#xff08;图3&#xff09;中检测并识别出车辆。车辆检测和识别算法可采用深度学习、BP网络或特征匹配等方法&#xff0c;方法不限。 图5-1待识别图像 原理&#xff1a;ModelArts是面向AI开发者的一站式开发平台&#xff0c;支持自动学习的功能&#…

车辆识别(特征提取+svm分类器)

以下为udacity的SDCND的一个项目 ps:这里使用的是用opencv进行特征提取+svm分类器的方法实现物体检测,是在深度学习流行前比较经典的实现方法 项目描述: 使用openCV提取图片特征,训练svm分类器,分类车辆与非车辆。用训练好的模型识别汽车前置摄像头记录视频中的车辆。 …

深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码)

深度学习目标检测&#xff1a;YOLOv5实现车辆检测(含车辆检测数据集训练代码) 目录 深度学习目标检测&#xff1a;YOLOv5实现车辆检测(含车辆检测数据集训练代码) 1. 前言 2. 车辆检测数据集说明 &#xff08;1&#xff09;车辆检测数据集 &#xff08;2&#xff09;自定…

案例-使用python实现基于opencv的车辆识别

写在开头&#xff0c;接触opencv也有很长一段时间了&#xff0c;中间还接触了halcon。但都是基于C实现&#xff0c;发现如果有什么idea&#xff0c;还是使用python可以快速实现。基于C版本的后期会有更新。 首先&#xff0c;这个案例是一个老生常谈的问题-车辆识别。首先我们要…

MySQL清空单表数据

一&#xff1a;问题背景 1. 问题描述 之前测试1千万数据插入MySQL数据库里面,分别使用单线程的方式和线程池的方式对比测试&#xff0c;查看效果,但是插入了1千万数据后,由于是测试数据,现在不能在新建一张表浪费存储空间,还是之前的表,要清空原来的数据.有哪些方式可用&#x…

mysql清空表数据_mysql数据库之如何清空表中数据

本篇文章主要讲述的是在数据库中使用清空命令&#xff0c;具有一定学习价值&#xff0c;有需要的朋友可以了解一下&#xff0c;希望能够对你有所帮助。 在做数据迁移&#xff0c;数据清洗或者写web项目时要将数据替换更新&#xff0c;那么有时要将表做清空处理 常用的清空数据表…

mysql删除表中所有数据_MySQL删除或清空表中数据的方法

原标题&#xff1a;MySQL删除或清空表中数据的方法 要想把MySQL中的数据删除或清空&#xff0c;可以通过两种方法来实现&#xff1a;DELETE语句和TRUNCATE TABLE语句。 DELETE语句可以将表中所有记录都删除&#xff0c;也可以指定WHERE子句&#xff0c;对要删除的记录进行选择;…