CN109508721A - 基于OpenCV的图形识别与颜色识别的实现 - Google Patents
基于OpenCV的图形识别与颜色识别的实现 Download PDFInfo
- Publication number
- CN109508721A CN109508721A CN201811322308.2A CN201811322308A CN109508721A CN 109508721 A CN109508721 A CN 109508721A CN 201811322308 A CN201811322308 A CN 201811322308A CN 109508721 A CN109508721 A CN 109508721A
- Authority
- CN
- China
- Prior art keywords
- color
- identification
- opencv
- value
- realization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 claims abstract description 9
- 210000002569 neuron Anatomy 0.000 claims abstract description 9
- 239000003086 colorant Substances 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Abstract
本发明公开了基于OpenCV的图形识别与颜色识别的实现,首先设置神经网络层数和神经元个数;创建训练模型;设置参数;开始训练;图形识别;图形的颜色识别。本发明的有益效果是能够高效、准确识别图形颜色。
Description
技术领域
本发明属于图像处理将技术领域,涉及一种基于OpenCV的图形识别与颜色识别的实现方法。
背景技术
人工神经网络(Artificial Neural Networks)是一种模仿生物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点(神经元)之间相互连接的权重,从而达到处理信息的目的。OpenCV的人工神经网络是机器学习算法中的其中一种,使用的是多层感知器(Multi-Layer Perception,MLP),是常见的一种ANN算法。MLP算法一般包括三层,分别是一个输入层,一个输出层和一个或多个隐藏层的神经网络组成。每一层由一个或多个神经元互相连结。一个“神经元”的输出就可以是另一个“神经元”的输入。
发明内容
本发明的目的在于提供基于OpenCV的图形识别与颜色识别的实现,本发明的有益效果是能够高效、准确识别图形颜色。
本发明所采用的技术方案是按照以下步骤进行:
步骤1:设置神经网络层数和神经元个数;
步骤2:创建训练模型;
步骤3:设置参数;
步骤4:开始训练;
步骤5:图形识别;
步骤6:图形的颜色识别。
进一步,步骤5中采用的是水平、垂直直方图和低分辨率图像所组成的矢量,先实现直方图的提取,然后将图形从80X80像素变为10X10个像素,最后将这三个图组成一个一行的向量。
进一步,采用HSV颜色空间来进行颜色识别,首先将图形从BGR颜色空间转化为HSV颜色空间,将颜色的范围值从从上面的文件中读入,得到一个二值图imgThresholded,通过对此二值图的分析,就能进行颜色识别,以灰度图中的非零值做为基准,然后计算出每个颜色范围的二值图的非零值,最后计算出比值,将一个图形的所有颜色范围的比值保存到一起,找出最大值,以及最大值的位置,就能确定其颜色,对每一个图形做上面同样的处理,完成所有的图形颜色的识别。
具体实施方式
下面结合具体实施方式对本发明进行详细说明。
一幅图像中包含三角形、四边形、五角星等各种形状,不同颜色的图形,要做形状和颜色识别,需要通过下面的几个步骤:图形的分割、截图、转化为灰度图、边缘检测、膨胀、腐蚀、提取轮廓、抠图,保存图像
采用的是人工神经网络按照以下步骤进行:
步骤1:设置神经网络层数和神经元个数
Mat layers_size=(Mat_<int>(1,3)<<input_num,hidden_num,output_num);
其中输入层个数input_num=120,隐藏层个数hidden_num=40,输出层个数output_num=要识别的图形个数,输入层个数要和特征的唯独匹配,特征值依据横向和纵向的投影(这里只图形的宽度和高度,图形归一化为80X80,这里取120),输出层个数要与目标维度匹配,隐藏层的个数采用试错法来挑选合适的数值。
步骤2:创建训练模型:
cv::Ptr<cv::ml::ANN_MLP>ann_model=cv::ml::ANN_MLP::create();
步骤3:设置参数:
ann_model->setLayerSizes(layers_size);
ann_model->setActivationFunction(cv::ml::ANN_MLP::SIGMOID_SYM,1,1);
ann_model->setTrainMethod(cv::ml::ANN_MLP::TrainingMethods::BACKPROP);ann_-model>setTermCriteria(cvTermCriteria(CV_TERMCRIT_ITER,30000,0.0001));ann_-model>setBackpropWeightScale(0.1);ann_-model>setBackpropMomentumScale(0.1);
步骤4:开始训练:
ann_model->train(traindata);保存训练
数据:
string modelPath="shape_train/ann_shape.xml";
ann_model->save(modelPath);traindata是训练的
数据,这些数据是通过下面的函数获取:
cv::ml::TrainData::create(samples_,
cv::ml::SampleTypes::ROW_SAMPLE,response);
其中samples_是存放到硬盘中的图形的特征数据矩阵,response是标签N*M的矩阵,N表示训练样本数,M是类标签,如果第i行的样本属于第j类,那么该标签矩阵的(i,j)位置为1,在读取图形时,按分类好的目录读取图形,同时每一个图形按目录顺序分配相同的标签,例如matVec是目录0内的所有图形:
对每一个目录重复上面的动作。
最后:
步骤5:图形识别:
一幅图像中总存在着其独特的像素点,这些点可以认为就是这幅图像的特征,成为特征点。计算机视觉领域中的很重要的图像特征匹配就是一特征点为基础而进行的,所以,如何定义和找出一幅图像中的特征点就非常重要。
在计算机视觉领域,兴趣点(也称关键点或特征点)的概念已经得到了广泛的应用,包括目标识别、图像配准、视觉跟踪、三维重建等。这个概念的原理是,从图像中选取某些特征点并对图像进行局部分析,而非观察整幅图像。只要图像中有足够多可检测的兴趣点,并且这些兴趣点各不相同且特征稳定,能被精确地定位,上述方法就十分有效。
特征提取的算法有很多,最常用的有:SURF、ORB、SIFT、BRIEF等。
本发明采用的是水平、垂直直方图和低分辨率图像所组成的矢量,程序先实现直方图的提取,然后将图形从80X80像素变为10X10个像素(低分辨率),最后将这三个图组成一个一行的向量。需要注意的是ann模型训练也用到特征矩阵,这两个地方必须使用同样的算法。
图形识别用下面的语句:
ann_model->predict(features,output);
features为上面算法得到的特征,为了方便编程,features是要识别的所有图形的特征集合,也就是要组合成一个矩阵.
output为:cv::Mat output(shapesNum,kCharactersNumber,CV_32FC1);
shapesNum为所抠出图形总数kCharactersNumber要识别图形总数
识别完成后output.row(output_index)中存放的是所对应图形的可能性值,output_index是所要识别的图形顺序,只要找出每个图形对应的最大值,以及相对应的编号,就能完成图形识别。
步骤6:图形的颜色识别
颜色识别和图形识别没有直接的关系,所以单独处理。采用HSV颜色空间来进行颜色识别
HSV(Hue,Saturation,Value)是根据颜色的直观特性由A.R.Smith在1978年创建的一种颜色空间,也称六角锥体模型(Hexcone Model)。、这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。
为了便于调试,将各个颜色的范围写到一个文件中,以方便修改;
以一个图形来展示程序的实现:
首先将图形从BGR颜色空间转化为HSV颜色空间
cvtColor(input,HSV,CV_BGR2HSV);
将颜色的范围值从从上面的文件中读入,下限值读入到vector<Scalar>hsvLo;而上限值读入到vector<Scalar>hsvHi;中,一定要注意读入的顺序,上限和下限要匹配.
inRange(HSV,hsvLo[i],hsvHi[i],imgThresholded);针对每一种颜色的上限和下限,通过此函数,得到一个二值图imgThresholded,通过对此二值图的分析,就能进行颜色识别,以灰度图中的非零值做为基准
Mat gray;cvtColor(input,gray,CV_BGR2GRAY);inttotalNonZero=countNonZero(gray);
然后计算出每个颜色范围的二值图的非零值:int nonezero=countNonZero(imgThresholded);
最后计算出比值:
int ratio=nonezero/totalNonZero;
将一个图形的所有颜色范围的比值保存到一起,找出最大值,以及最大值的位置,就能确定其颜色了.
对每一个图形做上面同样的处理,就完成所有的图形颜色的识别.
由于opencv很好的跨平台性,的程序在window7,window10,ubuntu,以及android等操作系统都能很好的运行,并且运行的结果一致.
以上所述仅是对本发明的较佳实施方式而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。
Claims (3)
1.基于OpenCV的图形识别与颜色识别的实现,其特征在于按照以下步骤进行:
步骤1:设置神经网络层数和神经元个数;
步骤2:创建训练模型;
步骤3:设置参数;
步骤4:开始训练;
步骤5:图形识别;
步骤6:图形的颜色识别。
2.按照权利要求1所述基于OpenCV的图形识别与颜色识别的实现,其特征在于:
所述步骤5中采用的是水平、垂直直方图和低分辨率图像所组成的矢量,先实现直方图的提取,然后将图形从80X80像素变为10X10个像素,最后将这三个图组成一个一行的向量。
3.按照权利要求1所述基于OpenCV的图形识别与颜色识别的实现,其特征在于:
采用HSV颜色空间来进行颜色识别,首先将图形从BGR颜色空间转化为HSV颜色空间,将颜色的范围值从从上面的文件中读入,得到一个二值图imgThresholded,通过对此二值图的分析,就能进行颜色识别,以灰度图中的非零值做为基准,然后计算出每个颜色范围的二值图的非零值,最后计算出比值,将一个图形的所有颜色范围的比值保存到一起,找出最大值,以及最大值的位置,就能确定其颜色,对每一个图形做上面同样的处理,完成所有的图形颜色的识别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811322308.2A CN109508721A (zh) | 2018-11-08 | 2018-11-08 | 基于OpenCV的图形识别与颜色识别的实现 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811322308.2A CN109508721A (zh) | 2018-11-08 | 2018-11-08 | 基于OpenCV的图形识别与颜色识别的实现 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109508721A true CN109508721A (zh) | 2019-03-22 |
Family
ID=65747749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811322308.2A Pending CN109508721A (zh) | 2018-11-08 | 2018-11-08 | 基于OpenCV的图形识别与颜色识别的实现 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109508721A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113221772A (zh) * | 2021-05-18 | 2021-08-06 | 哈尔滨理工大学 | 一种水下机器人视觉图像增强与识别方法 |
CN114155328A (zh) * | 2021-11-10 | 2022-03-08 | 广东时谛智能科技有限公司 | 一种基于图形元素及配色数据的鞋体专属定制方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136524B1 (en) * | 2005-09-16 | 2006-11-14 | Proximex Corporation | Robust perceptual color identification |
CN101398894A (zh) * | 2008-06-17 | 2009-04-01 | 浙江师范大学 | 机动车车牌自动识别方法及其实现装置 |
JP2014072750A (ja) * | 2012-09-28 | 2014-04-21 | Brother Ind Ltd | 画像処理装置およびコンピュータプログラム |
CN106570503A (zh) * | 2016-05-26 | 2017-04-19 | 北京羽医甘蓝信息技术有限公司 | 识别车身颜色的方法和系统 |
CN108280483A (zh) * | 2018-01-30 | 2018-07-13 | 华南农业大学 | 基于神经网络的实蝇成虫图像识别方法 |
-
2018
- 2018-11-08 CN CN201811322308.2A patent/CN109508721A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136524B1 (en) * | 2005-09-16 | 2006-11-14 | Proximex Corporation | Robust perceptual color identification |
CN101398894A (zh) * | 2008-06-17 | 2009-04-01 | 浙江师范大学 | 机动车车牌自动识别方法及其实现装置 |
JP2014072750A (ja) * | 2012-09-28 | 2014-04-21 | Brother Ind Ltd | 画像処理装置およびコンピュータプログラム |
CN106570503A (zh) * | 2016-05-26 | 2017-04-19 | 北京羽医甘蓝信息技术有限公司 | 识别车身颜色的方法和系统 |
CN108280483A (zh) * | 2018-01-30 | 2018-07-13 | 华南农业大学 | 基于神经网络的实蝇成虫图像识别方法 |
Non-Patent Citations (3)
Title |
---|
姚东明等: "基于车窗检测的车身颜色识别方法研究", 《信息通信》 * |
汪成龙等: "基于OpenCV的电线颜色识别系统软件", 《电子测量技术》 * |
郑顾平等: "基于机器学习的多车牌识别算法应用研究", 《计算机技术与发展》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113221772A (zh) * | 2021-05-18 | 2021-08-06 | 哈尔滨理工大学 | 一种水下机器人视觉图像增强与识别方法 |
CN114155328A (zh) * | 2021-11-10 | 2022-03-08 | 广东时谛智能科技有限公司 | 一种基于图形元素及配色数据的鞋体专属定制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Oh et al. | Approaching the computational color constancy as a classification problem through deep learning | |
CN109214399B (zh) | 一种嵌入SENet结构的改进YOLOV3目标识别方法 | |
CN107358257B (zh) | 一种大数据场景下可增量学习的图像分类训练方法 | |
CN104463209B (zh) | 一种基于bp神经网络的pcb板上数字代码识别方法 | |
CN109635875A (zh) | 一种基于深度学习的端到端网口检测方法 | |
CN108021947B (zh) | 一种基于视觉的分层极限学习机目标识别方法 | |
CN106920243A (zh) | 改进的全卷积神经网络的陶瓷材质件序列图像分割方法 | |
CN106446933B (zh) | 基于上下文信息的多目标检测方法 | |
CN110059741A (zh) | 基于语义胶囊融合网络的图像识别方法 | |
CN108304826A (zh) | 基于卷积神经网络的人脸表情识别方法 | |
CN107945153A (zh) | 一种基于深度学习的路面裂缝检测方法 | |
CN109410168A (zh) | 用于确定图像中的子图块的类别的卷积神经网络模型的建模方法 | |
CN108918536A (zh) | 轮胎模具表面字符缺陷检测方法、装置、设备及存储介质 | |
CN104036293B (zh) | 基于快速二值编码的高分辨率遥感影像场景分类方法 | |
CN113538574B (zh) | 位姿定位方法、装置、设备及计算机可读存储介质 | |
CN108154102A (zh) | 一种道路交通标志识别方法 | |
CN101694691A (zh) | 一种人脸图像合成方法及装置 | |
CN107016415A (zh) | 一种基于全卷积网络的彩色图像色彩语义分类方法 | |
CN108647695A (zh) | 基于协方差卷积神经网络的低对比度图像显著性检测方法 | |
CN113627472B (zh) | 基于分层深度学习模型的智慧园林食叶害虫识别方法 | |
CN108537168A (zh) | 基于迁移学习技术的面部表情识别方法 | |
CN107066972A (zh) | 基于多通道极值区域的自然场景文本检测方法 | |
CN108764159A (zh) | 小样本条件下的动物面部识别方法和系统 | |
CN109886153A (zh) | 一种基于深度卷积神经网络的实时人脸检测方法 | |
CN109993803A (zh) | 城市色调的智能分析与评价方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190322 |
|
RJ01 | Rejection of invention patent application after publication |