发明内容
针对上述存在的问题,本发明提供一种长微博图片识别方法和装置,用以实现从海量微博图片中识别出长微博图片。
本发明提供了一种长微博图片识别方法,包括:
获取待识别微博图片;
将所述待识别微博图像转换为灰度图片;
对所述灰度图片进行图像形态学处理,其中,所述图像形态学处理包括二值化处理、腐蚀和膨胀处理;
对经过所述图像形态学处理后的图片进行文字行识别;
当识别出的文字行数大于预设行数阈值时,确定所述待识别微博图片为长微博图片。
具体地,所述对经过所述图像形态学处理后的图片进行文字行识别,包括:
计算经过所述图像形态学处理后的图片的每个像素行中,文字像素所占比重,所述文字像素是指像素值与预设文字像素值相同的像素;
当相邻预设行数的像素行的文字像素所占比重均大于预设比值时,确定所述相邻预设行数的像素行所对应的图像区域对应一个文字行。
可选地,所述对所述灰度图片进行图像形态学处理之前,所述方法还包括:
当所述灰度图片的图片宽度大于或等于预设宽度阈值时,对所述灰度图片进行水平压缩处理,以缩小所述灰度图片的宽度。
可选地,所述对所述灰度图片进行图像形态学处理之前,所述方法还包括:
对所述灰度图片进行预设剪裁比例的剪裁处理。
可选地,所述对所述灰度图片进行图像形态学处理之前,所述方法还包括:
计算所述灰度图片的均值灰度;
当所述均值灰度大于第一预设均值灰度阈值,小于第二预设均值灰度阈值时,对所述灰度图片进行灰度取反处理,所述第二预设均值灰度阈值大于所述第一预设均值灰度阈值;
当所述均值灰度小于或等于所述第一预设均值灰度阈值时,确定所述待识别微博图片为非长微博图片。
本发明提供了一种长微博图片识别装置,包括:
获取模块,用于获取待识别微博图片;
灰度转换模块,用于将所述待识别微博图像转换为灰度图片;
形态处理模块,用于对所述灰度图片进行图像形态学处理,其中,所述图像形态学处理包括二值化处理、腐蚀和膨胀处理;
文字行识别模块,用于对经过所述图像形态学处理后的图片进行文字行识别;
确定模块,用于当识别出的文字行数大于预设行数阈值时,确定所述待识别微博图片为长微博图片。
具体地,所述文字行识别模块包括:
计算单元,用于计算经过所述图像形态学处理后的图片的每个像素行中,文字像素所占比重,所述文字像素是指像素值与预设文字像素值相同的像素;
确定单元,用于当相邻预设行数的像素行的文字像素所占比重均大于预设比值时,确定所述相邻预设行数的像素行所对应的图像区域对应一个文字行。
可选地,该长微博图片识别装置还包括:
水平压缩模块,用于当所述灰度图片的图片宽度大于或等于预设宽度阈值时,对所述灰度图片进行水平压缩处理,以缩小所述灰度图片的宽度。
可选地,该长微博图片识别装置还包括:
剪裁模块,用于对所述灰度图片进行预设剪裁比例的剪裁处理。
可选地,该长微博图片识别装置还包括:
灰度计算模块,用于计算所述灰度图片的均值灰度;
灰度取反模块,用于当所述均值灰度大于第一预设均值灰度阈值,小于第二预设均值灰度阈值时,对所述灰度图片进行灰度取反处理,所述第二预设均值灰度阈值大于所述第一预设均值灰度阈值;
所述确定模块,还用于当所述均值灰度小于或等于所述第一预设均值灰度阈值时,确定所述待识别微博图片为非长微博图片。
本发明提供的长微博图片识别方法和装置,针对获取的每张待识别微博图片,首先对该待识别微博图片进行图像处理,包括灰度处理以及诸如二值化处理、腐蚀和膨胀处理等图像形态学处理,从而能够将待识别微博图片中的文字、背景等因素显著区分,进而对经过图像形态学处理后的图片进行文字行识别,当识别出的文字行数大于预设行数阈值时,确定待识别微博图片为长微博图片。从而,基于对待识别微博图片的图像处理,以及有效文字行的识别处理,能够准确而高效地识别出待识别微博图片是否为长微博图片。进而使得基于对长微博图片的识别结果而进行的数据分析更加具有针对性,信息处理冗余度更低,数据分析处理效率更高。
具体实施方式
图1为本发明长微博图片识别方法实施例一的流程图,该长微博图片识别方法可以由长微博图片识别装置来执行,该长微博图片识别装置可以设置在诸如PC机、平板电脑等终端设备中,该终端设备可以由任何有需要对微博中的长微博进行数据分析的用户所管理或维护。如图1所示,该方法包括如下步骤:
步骤101、获取待识别微博图片。
一般来说,在大量微博消息中,既可能存在纯文本形式的评论消息,也可能存在视频、图片等消息,本实施例中所要识别出或者说筛选出的是其中的特定的图片消息,即长微博图片。为此,首先需要从大量的微博消息中筛选出图片形式的消息,筛选的方式不属于本发明保护的重点,可以参照相关技术实现。
因此,本实施例中所述的待识别微博图片,是指所有的图片形式发布的微博消息,本实施例的目的即是从这些待识别微博图片中识别出长微博图片。由于针对任何一个待识别微博图片的处理方式都是一样的,因此在不引起歧义的情况下,本发明实施例中的待识别微博图片是指任一张微博图片。
步骤102、将待识别微博图像转换为灰度图片。
步骤103、对灰度图片进行图像形态学处理,其中,图像形态学处理包括二值化处理、腐蚀和膨胀处理。
本实施例中,为了确定待识别微博图片是否为长微博图片,首先需要对待识别微博图片进行一定的图像处理,以便于识别。
具体来说,一般微博图片都是彩色的图片,为了便于后续处理,也为了降低图片亮度的影响,首先将待识别微博图片转换为灰度图片,灰度取值为0—255。
进而,可以对灰度图片进行诸如二值化处理、腐蚀和膨胀处理等图像形态学处理。其中,二值化处理是将灰度图片转换为仅包含黑、白像素的图片。继而,在二值化图片的基础上,进行图片的腐蚀和膨胀处理。可选的,该图像形态学处理除了包含二值化、腐蚀和膨胀处理外,还可以包括如增强对比度等处理,增强对比度的处理可以在二值化处理前进行。上述灰度处理、图像形态学处理可以参照现有技术执行,本实施例不赘述。腐蚀和膨胀处理的次数可以预设,比如设定为10次。
为了便于理解,本实施例仅从直观的图像处理结果的角度对经过上述图像处理的待识别微博图片所表现出的特征进行说明:此时,待识别微博图片仅为黑白像素组成的黑白图片,在该黑白图片中,会有多个黑、白像素区域。以待识别微博图片中包含多行文字以及背景色彩为例,假设二值化处理的结果使得该图片表现为白底黑字,相邻字之间会有空隙、每个字的笔画间也可能有空隙,这些空隙会被白色填充。腐蚀和膨胀处理使得黑色的字所在的范围都被填充为黑色,从而理想情况下看上去图片是有一条条黑白相间的条形区域组成。
步骤104、对经过图像形态学处理后的图片进行文字行识别。
从上述对图像处理后待识别微博图片的显示结果可以看出,对经过图像形态学处理后的图片进行文字行识别,就是根据待识别微博图片所述显示出的像素特征,结合文字行所表现的像素特征,识别待识别微博图片中是否包含文字行以及文字行的数量。本实施例中,文字行是指一行文字所对应的像素区域。
具体来说,经过图像形态学处理后的图片是由一行行的像素构成的,针对每个像素行,分别计算每个像素行中文字像素所占比重,该文字像素是指像素值与预设文字像素值相同的像素。对于上述距离的白底黑字的例子中,预设文字像素值是指黑色所对应的像素值,比如为1,那么对于一行像素来说,就是计算这行像素中像素值为1的像素个数占这行像素总个数的比重。如果该比重大于预设比值比如60%,则认为该行像素对应于文字行像素。
继而,再对相邻的下一行像素进行同样的计算处理。当相邻预设行数的像素行的文字像素所占比重均大于预设比值比如60%时,确定相邻预设行数的像素行所对应的图像区域对应一个文字行。上述预设行数比如为一个取值范围,比如5-55行。
综上所述,对于一个文字行的识别,当该文字行对应的多个相邻像素行中,每个像素行中文字像素的个数所占比重都大于一定预设比值时,这些相邻像素行所对应的图像区域才被认为是一个文字行。
对于上述文字行的识别处理过程,可以参考图2所示的流程图进行理解,图2中,n表示当前的像素行行数,初始时,n=1;H为待识别微博图片所包含的像素行总行数;M为被确定为属于一个文字行的像素行个数,初始时,M=0;num表示文字行行数,初始时,num=0;sum表示一个像素行中文字像素的个数;T0为上述预设比值;min表示上述预设行数的取值范围的下限,max表示上述预设行数的取值范围的上限。
步骤105、当识别出的文字行数大于预设行数阈值时,确定待识别微博图片为长微博图片。
对于待识别微博图片来说,当其中含有大于预设行数阈值的文字行时,确定该待识别微博图片为长微博图片。
本实施例中,针对获取的每张待识别微博图片,首先对该待识别微博图片进行图像处理,包括灰度处理以及诸如二值化处理、腐蚀和膨胀处理等图像形态学处理,从而能够将待识别微博图片中的文字、背景等因素显著区分,进而对经过图像形态学处理后的图片进行文字行识别,当识别出的文字行数大于预设行数阈值时,确定待识别微博图片为长微博图片。从而,基于对待识别微博图片的图像处理,以及有效文字行的识别处理,能够准确而高效地识别出待识别微博图片是否为长微博图片。进而使得基于对长微博图片的识别结果而进行的数据分析更加具有针对性,信息处理冗余度更低,数据分析处理效率更高。
图3为本发明长微博图片识别方法实施例二的流程图,如图3所示,在图1所示实施例的基础上,步骤103之前,还可以包括如下步骤:
步骤201、对灰度图片进行预设剪裁比例的剪裁处理。
步骤202、确定灰度图片的图片宽度是否大于或等于预设宽度阈值,若是,则执行步骤203后执行步骤103,若否,则直接执行步骤103。
步骤203、对灰度图片进行水平压缩处理,以缩小灰度图片的宽度。
一般来说,长微博图片中的文字区域都位于图片中心区域,而在外围则可能会有一些图案等干扰,因此,为了提高识别处理效率以及识别处理结果的准确度,在获得灰度图片后,可以通过对该灰度图片进行剪裁,以得到最有可能的文字区域。
具体实现时,预设剪裁比例比如是按灰度图片的高度、宽度比例剪裁,如图片的高度方向、宽度方向各剪裁高度、宽度的10%。
本实施例中,针对文字方向为水平方向的微博图片进行是否为长微博图片的识别处理。因此,为了提高后续图像腐蚀、膨胀等图像处理结果的精度,可以预先对图片宽度超过一定预设宽度阈值的灰度图片进行水平压缩处理,从而保证灰度图片的高度不便,宽度缩小,相当于压缩了字与字之间的间隔,以及使每个字更加紧凑。
具体的水平压缩处理,比如是,针对同一行的像素,每隔一个像素便丢弃一个像素,从而使得宽度压缩为原来的一半。
针对图片宽度本来就小于预设宽度阈值的灰度图片来说,无需进行水平压缩处理。
图4为本发明长微博图片识别方法实施例三的流程图,如图4所示,在图1或图3所示实施例的基础上,步骤103之前,还可以包括如下步骤:
步骤301、计算灰度图片的均值灰度。
步骤302、确定灰度图片的均值灰度是否小于或等于第一预设均值灰度阈值,若是,则执行步骤303,若否,则执行步骤304。
步骤303、确定待识别微博图片为非长微博图片。
步骤304、确定灰度图片的均值灰度是否小于第二预设均值灰度阈值,若是,则执行步骤305。
其中,第二预设均值灰度阈值大于第一预设均值灰度阈值。
步骤305、对灰度图片进行灰度取反处理。
可以理解的是,步骤301,在图1所示实施例的基础上,可以在步骤102后执行,在图3所示实施例的基础上,可以在步骤201后执行。步骤305之后,在图1所示实施例的基础上,则直接执行步骤103,在图3所示实施例的基础上,则直接执行步骤202。另外,若灰度图片的均值灰度不于第二预设均值灰度阈值,相应的,在图1所示实施例的基础上,则直接执行步骤103,在图3所示实施例的基础上,则直接执行步骤202。图4是以图3所示实施例为基础的示意。
本实施例中,可以基于灰度图片的均值灰度,对待识别微博图片是否为长微博图片进行初步的识别或者说筛选。具体来说,当将待识别微博图片转换为灰度图片后,可以基于该灰度图片所包含的各像素的灰度值,计算均值灰度。比如均值灰度的计算方式为:同一灰度的像素的个数乘以该灰度值,获得该灰度对应的总灰度值,每种灰度的总灰度值之和除以像素总个数,得到均值灰度。
如果该灰度图片的均值灰度小于或等于第一预设均值灰度阈值T1,假设T1为比较小的一个灰度值,则可以认为该待识别微博图片为一个基本全黑的图片,确定该待识别微博图片为非长微博图片。
否则,对于该待识别微博图片是否为长微博图片的识别判定,应采用前述实施例提供的方式进行。
但是,为了提高后续识别处理过程的准确度,本实施例中,如果该灰度图片的均值灰度大于T1,而小于第二预设均值灰度阈值T2,则对灰度图片进行灰度取反处理,也就是说尽量突出可能的文字区域,以避免背景对后续识别处理的不利影响。其中,第二预设均值灰度阈值T2大于第一预设均值灰度阈值T1。第二预设均值灰度阈值T2主要涉及到背景色彩的判断。其中,灰度取反,可以是线性取反,比如原来的灰度值为0的像素,取反后灰度值为255,原来的灰度值为255的像素,取反后灰度值为0。
通过对灰度图片的上述处理,不但能够初步筛选出非长微博图片,还为后续的图像形态学处理、文字行识别等处理效果提供可靠的基础保证。
图5为本发明长微博图片识别装置实施例一的结构示意图,如图5所示,该长微博图片识别装置包括:获取模块11、灰度转换模块12、形态处理模块13、文字行识别模块14、确定模块15。
获取模块11,用于获取待识别微博图片。
灰度转换模块12,用于将所述待识别微博图像转换为灰度图片。
形态处理模块13,用于对所述灰度图片进行图像形态学处理,其中,所述图像形态学处理包括二值化处理、腐蚀和膨胀处理。
文字行识别模块14,用于对经过所述图像形态学处理后的图片进行文字行识别。
确定模块15,用于当识别出的文字行数大于预设行数阈值时,确定所述待识别微博图片为长微博图片。
其中,所述文字行识别模块14包括:计算单元141、确定单元142。
计算单元141,用于计算经过所述图像形态学处理后的图片的每个像素行中,文字像素所占比重,所述文字像素是指像素值与预设文字像素值相同的像素。
确定单元142,用于当相邻预设行数的像素行的文字像素所占比重均大于预设比值时,确定所述相邻预设行数的像素行所对应的图像区域对应一个文字行。
本实施例的长微博图片识别装置可以用于执行图1、图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明长微博图片识别装置实施例二的结构示意图,如图6所示,在图5所示实施例的基础上,该长微博图片识别装置还包括:水平压缩模块21、剪裁模块22。
水平压缩模块21,用于当所述灰度图片的图片宽度大于或等于预设宽度阈值时,对所述灰度图片进行水平压缩处理,以缩小所述灰度图片的宽度。
剪裁模块22,用于对所述灰度图片进行预设剪裁比例的剪裁处理。
本实施例的长微博图片识别装置可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明长微博图片识别装置实施例三的结构示意图,如图7所示,在图5或图6所示实施例的基础上,该长微博图片识别装置还包括:灰度计算模块31、灰度取反模块32。
灰度计算模块31,用于计算所述灰度图片的均值灰度。
灰度取反模块32,用于当所述均值灰度大于第一预设均值灰度阈值,小于第二预设均值灰度阈值时,对所述灰度图片进行灰度取反处理,所述第二预设均值灰度阈值大于所述第一预设均值灰度阈值。
所述确定模块15,还用于当所述均值灰度小于或等于所述第一预设均值灰度阈值时,确定所述待识别微博图片为非长微博图片。
本实施例的长微博图片识别装置可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。