论文部分内容阅读
摘要:商标识别是图像识别中的一种。由于商标是日常生活中随处可见的事物,同时因为其富含信息,所以在自然环境下的商标自动识别也具有极大的用处。目前商标识别由于在自然情况下图片的干扰及其商标的大小、位置的不一样导致传统的商标识别算法难以解决以上的问题。本文提出了一种基于图像分块的商标可以很好的解决以上的问题。
关键词:商标识别;图像分块;二值化算法
中图分类号:TP391.3 文献标识码:A 文章编号:1003-2177(2017)11-0061-02
1 前言
商标识别由于其应用领域多、应用范围广,受到了众多研究者的关注。商标识别框图1所示,一般商标识别分为以下几步:获取图片、图像灰度化、图像二值化、去噪滤波处理、识别[1]。
(1)获取图片:图片一般是从相机、手机、网络等途径获得的。由于相机和手机的摄像头分辨率参差不齐,并且拍摄时自然条件的多样化导致得到的图片的格式、大小、分辨率也各有不同。
(2)图像灰度化:由于开始获取的图片包含了干扰、前景和背景、噪声等元素,这些东西非常不利于图像的识别,所以先把彩色的图像灰度化。图像的灰度化有许多种方法,这里采用的是用以下公式计算:
其中I代表灰度化之后的亮度值,B、G、R分别代表原来彩色图像中的蓝色、绿色、红色的值。
(3)图像二值化:图像灰度化后还是包括目标、背景和噪声,图像二值化便是通过一个阀值的选取将目标完全保留,同时将背景和噪声去除。本文中选取阀值的方法为大津阀值。
(4)图像标准化:图像二值化后由于颜色的原因,有些图片的目标变成背景,背景变成图片。由于绝大多数图片,背景的像素点比目标的像素点多,所以这一步默认将像素点多的颜色为白色,像素点少的为黑色。
(5)去噪和滤波处理:此模块的作用是将图像二值化后残留的背景和噪声完全去除,为了方便下一步的识别。本文中采用的滤波方法是基于轮廓提取的滤波方法。
(6)识别:以上的过程都完成后便只剩下目标了,这一步是将图片中的目标和模板进行比较,识别商标。本文中采用的识别方法为分块识别。
2 二值化算法
本文中采用的二值化算法为基于大津阀值的二值化算法。此方法为将一个灰度图像的数据在某一阀值处分成两组,当被分成的两组方差最大时,决定阀值[2]。
假设一幅图像中的灰度值为,灰度值的像素数为,此时我们得到的像素总是为:
3 滤波算法
本文中采用的滤波算法是一种新型的滤波算法,这个滤波算法基于边界提取算法。在实际图片中,绝大多数图片的目标物在中间,所以本文考虑的图片是目标在图片的中间。滤波算法为我们从边界上开始找点,如果找到黑色点,则默认为噪声点,然后通过从此点的左上角开始顺时针查找是否还有黑点,如果有黑点则将其全部存起来,继续寻找,直到所有点都已经找完。
int *revdata=new int[sum]; //定义一个数组,大小与图片的黑色点数相同
memset(revdata,0,sum); //将数组中所有元素初值设为0
point=width*(height-1) j; //得到图像中的点
comp(point,data,datacom,width,height,revdata,q); //查看此点周围的点,如果还有黑点,则存入revdata[q ]中
for(i=0;revdata[i]!=0;i ) //继续查找revdata数组中周围的点
{
point=revdata[i];
comp(point,data,datacom,width,height,revdata,q);
}
memset(revdata,0,sum);
q=0;
4 识别算法
在图片识别之前首先获取图片的特征,首先获取图片中目标的左上方、左下方、右上方、右下方的点,通过这四个点确定包含目标的最小矩形,本文中获取三个特征:第一个是目标所在的最小矩形的高和宽的比值;目标所在最小矩形中黑色点的个数与矩形的面积的比值;将最小矩形切割成100份,每一份小矩形中黑色点的个数与小矩形的面积的比值。继而将以上三个特征与模板图片的三个特征进行比较,取差值最小的模板所对应的商标为图片对应商标。
float s1=fabs(height / width -modal_height[i]/modal_width[i]);
//s1代表得到图片切割后的长度、宽度与已知模板图片的比较
float s2=fabs(blacknumber/ (height*width)- modalsum[i]/modalsquare[i]);
//s1代表得到图片切割后的黑色点数所占图片的比例与已知模板图片的比较
for(j=0;j<100;j ) //s3代表图片分成100份后每一小分中黑色点数占图片比例的比较
if(fabs((target[j])/ (height*width)- (modal[i][j])/modalsquare[i])>0.2)
s3 =0.01;
s=s1 s2 s3; //将三个差值之和进行比较,得到最小值
s3=0;
if(s {
min=s;
result=i;
}
5 结语
本文中提出了一种新的商标识别方法,这种算法克服了商标的大小和位置不同的问题,并对这种方法进行了验证。在验证过程中一种识别了四个商标,识别正确率为91.67%。证明了这种方法在实际应用过程中有着一定的优势。
参考文献
[1] 游张华,徐勇,康业娜.基于ARM的商标识别系统的设计与实现[J].计算机工程,2007,(15):264-266.
[2] 杨淑莹.图像模式识别[M].北京:清華大学出版社,2005.
关键词:商标识别;图像分块;二值化算法
中图分类号:TP391.3 文献标识码:A 文章编号:1003-2177(2017)11-0061-02
1 前言
商标识别由于其应用领域多、应用范围广,受到了众多研究者的关注。商标识别框图1所示,一般商标识别分为以下几步:获取图片、图像灰度化、图像二值化、去噪滤波处理、识别[1]。
(1)获取图片:图片一般是从相机、手机、网络等途径获得的。由于相机和手机的摄像头分辨率参差不齐,并且拍摄时自然条件的多样化导致得到的图片的格式、大小、分辨率也各有不同。
(2)图像灰度化:由于开始获取的图片包含了干扰、前景和背景、噪声等元素,这些东西非常不利于图像的识别,所以先把彩色的图像灰度化。图像的灰度化有许多种方法,这里采用的是用以下公式计算:
其中I代表灰度化之后的亮度值,B、G、R分别代表原来彩色图像中的蓝色、绿色、红色的值。
(3)图像二值化:图像灰度化后还是包括目标、背景和噪声,图像二值化便是通过一个阀值的选取将目标完全保留,同时将背景和噪声去除。本文中选取阀值的方法为大津阀值。
(4)图像标准化:图像二值化后由于颜色的原因,有些图片的目标变成背景,背景变成图片。由于绝大多数图片,背景的像素点比目标的像素点多,所以这一步默认将像素点多的颜色为白色,像素点少的为黑色。
(5)去噪和滤波处理:此模块的作用是将图像二值化后残留的背景和噪声完全去除,为了方便下一步的识别。本文中采用的滤波方法是基于轮廓提取的滤波方法。
(6)识别:以上的过程都完成后便只剩下目标了,这一步是将图片中的目标和模板进行比较,识别商标。本文中采用的识别方法为分块识别。
2 二值化算法
本文中采用的二值化算法为基于大津阀值的二值化算法。此方法为将一个灰度图像的数据在某一阀值处分成两组,当被分成的两组方差最大时,决定阀值[2]。
假设一幅图像中的灰度值为,灰度值的像素数为,此时我们得到的像素总是为:
3 滤波算法
本文中采用的滤波算法是一种新型的滤波算法,这个滤波算法基于边界提取算法。在实际图片中,绝大多数图片的目标物在中间,所以本文考虑的图片是目标在图片的中间。滤波算法为我们从边界上开始找点,如果找到黑色点,则默认为噪声点,然后通过从此点的左上角开始顺时针查找是否还有黑点,如果有黑点则将其全部存起来,继续寻找,直到所有点都已经找完。
int *revdata=new int[sum]; //定义一个数组,大小与图片的黑色点数相同
memset(revdata,0,sum); //将数组中所有元素初值设为0
point=width*(height-1) j; //得到图像中的点
comp(point,data,datacom,width,height,revdata,q); //查看此点周围的点,如果还有黑点,则存入revdata[q ]中
for(i=0;revdata[i]!=0;i ) //继续查找revdata数组中周围的点
{
point=revdata[i];
comp(point,data,datacom,width,height,revdata,q);
}
memset(revdata,0,sum);
q=0;
4 识别算法
在图片识别之前首先获取图片的特征,首先获取图片中目标的左上方、左下方、右上方、右下方的点,通过这四个点确定包含目标的最小矩形,本文中获取三个特征:第一个是目标所在的最小矩形的高和宽的比值;目标所在最小矩形中黑色点的个数与矩形的面积的比值;将最小矩形切割成100份,每一份小矩形中黑色点的个数与小矩形的面积的比值。继而将以上三个特征与模板图片的三个特征进行比较,取差值最小的模板所对应的商标为图片对应商标。
float s1=fabs(height / width -modal_height[i]/modal_width[i]);
//s1代表得到图片切割后的长度、宽度与已知模板图片的比较
float s2=fabs(blacknumber/ (height*width)- modalsum[i]/modalsquare[i]);
//s1代表得到图片切割后的黑色点数所占图片的比例与已知模板图片的比较
for(j=0;j<100;j ) //s3代表图片分成100份后每一小分中黑色点数占图片比例的比较
if(fabs((target[j])/ (height*width)- (modal[i][j])/modalsquare[i])>0.2)
s3 =0.01;
s=s1 s2 s3; //将三个差值之和进行比较,得到最小值
s3=0;
if(s
min=s;
result=i;
}
5 结语
本文中提出了一种新的商标识别方法,这种算法克服了商标的大小和位置不同的问题,并对这种方法进行了验证。在验证过程中一种识别了四个商标,识别正确率为91.67%。证明了这种方法在实际应用过程中有着一定的优势。
参考文献
[1] 游张华,徐勇,康业娜.基于ARM的商标识别系统的设计与实现[J].计算机工程,2007,(15):264-266.
[2] 杨淑莹.图像模式识别[M].北京:清華大学出版社,2005.