提高OCR识别率的方法和系统
技术领域
本发明涉及OCR识别技术领域,具体涉及一种提高OCR识别率的方法和一种提高OCR识别率的系统。
背景技术
在产线上对芯片上的字符进行OCR时,一般是将装有多块芯片的滑动设备经过相机镜头,以对芯片进行拍摄识别。但是,在通过光电信号硬触发相机对各个芯片进行依次拍照时,由于滑动设备速度较快,相机响应硬触发拍照会出现延迟,使得拍到芯片照片会出现轻微偏移,从而容易导致ROI截取的部分可能会导致出现干扰字符或者丢失部分目标字符,造成字符识别的准确度下降。
发明内容
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种提高OCR识别率的方法,能够通过待识别物体上的位置识别点来准确截取待识别物体的目标区域,从而能够提升OCR的识别率和准确度。
本发明的第二个目的在于提出一种提高OCR识别率的系统。
为达到上述目的,本发明第一方面实施例提出了一种提高OCR识别率的方法,包括以下步骤:获取待识别物体的图像,其中,所述待识别物体设有位置识别点;对所述待识别物体的图像进行处理以标出所述位置识别点所在区域和所述待识别物体中的目标区域;对标出的所述目标区域的图像进行处理;对所述目标区域图像和处理后的所述目标区域图像进行OCR识别,以得到所述目标区域的识别字符;比对所述目标区域的识别字符和所述目标区域的实际字符;若所述目标区域的识别字符和所述目标区域的实际字符匹配,则计算所述位置识别点所在区域和所述目标区域之间的偏移量;根据所述位置识别点和所述偏移量对同一类型的所述待识别物体进行OCR识别。
根据本发明实施例提出的提高OCR识别率的方法,通过获取待识别物体的图像,并对待识别物体的图像进行处理以标出位置识别点所在区域和待识别物体中的目标区域,以及对标出的目标区域的图像进行处理,然后对目标区域图像和处理后的目标区域图像进行OCR识别,以得到目标区域的识别字符,并比对目标区域的识别字符和目标区域的实际字符,其中,若目标区域的识别字符和目标区域的实际字符匹配,则计算位置识别点所在区域和目标区域之间的偏移量,最后根据位置识别点和偏移量对同一类型的待识别物体进行OCR识别,由此,能够通过待识别物体上的位置识别点来准确截取待识别物体的目标区域,从而能够提升OCR的识别率和准确度。
另外,根据本发明上述实施例提出的提高OCR识别率的方法还可以具有如下附加的技术特征:
根据本发明的一个实施例,所述待识别物体采用固定模块印刻。
根据本发明的一个实施例,对所述待识别物体的图像进行处理以标出所述位置识别点所在区域和所述待识别物体中的目标区域,包括以下步骤:采用ROI标出所述位置识别点所在区域,并获取所述位置识别点所在区域的标定坐标;采用ROI标出所述待识别物体中的目标区域,并获取所述目标区域的标定坐标和尺寸数据。
根据本发明的一个实施例,对标出的所述目标区域的图像进行处理,包括以下步骤:设定多个旋转角度;根据多个所述旋转角度分别对标出的所述目标区域的图像进行旋转处理,并对应得到多个旋转图像。
根据本发明的一个实施例,采用深度学习算法分别对标出的所述目标区域的图像和多个所述旋转图像进行OCR识别,并对应得到多组所述目标区域的识别字符。
根据本发明的一个实施例,比对所述目标区域的识别字符和所述目标区域的实际字符,包括以下步骤:设定匹配阈值;比对每组所述目标区域的识别字符与所述目标区域的实际字符之间的匹配度;若存在至少一组所述目标区域的识别字符与所述目标区域的实际字符之间的匹配度达到所述匹配阈值,则选取其中匹配度最大的所述目标区域的识别字符对应的图像作为参考图像,并记录所述参考图像的旋转角度。
根据本发明的一个实施例,根据所述位置识别点所在区域的标定坐标和所述目标区域的标定坐标计算所述位置识别点所在区域和所述目标区域之间的偏移量。
根据本发明的一个实施例,根据所述位置识别点和所述偏移量对同一类型的所述待识别物体进行OCR识别,包括以下步骤:获取同一类型的所述待识别物体的检测图像;根据所述参考图像的旋转角度对所述检测图像进行旋转处理;对处理后的所述检测图像进行识别;若识别到所述检测图像的位置识别点,则获取所述检测图像的位置识别点所在区域的标定坐标;根据所述检测图像的位置识别点所在区域的标定坐标和所述偏移量得到所述检测图像的目标区域的标定坐标;根据所述检测图像的目标区域的标定坐标和所述尺寸数据对所述检测图像的目标区域的图像进行截取;采用所述深度学习算法对截取的所述检测图像的目标区域图像进行OCR识别。
为达到上述目的,本发明第二方面实施例提出了一种提高OCR识别率的系统,包括:获取模块,所述获取模块用于获取待识别物体的图像,其中,所述待识别物体设有位置识别点;第一处理模块,所述第一处理模块用于对所述待识别物体的图像进行处理以标出所述位置识别点所在区域和所述待识别物体中的目标区域;第二处理模块,所述第二处理模块用于对标出的所述目标区域的图像进行处理;第一识别模块,所述第一识别模块用于对所述目标区域图像和处理后的所述目标区域图像进行OCR识别,以得到所述目标区域的识别字符;比对模块,所述比对模块用于比对所述目标区域的识别字符和所述目标区域的实际字符;计算模块,若所述目标区域的识别字符和所述目标区域的实际字符匹配,则通过所述计算模块计算所述位置识别点所在区域和所述目标区域之间的偏移量;第二识别模块,所述第二识别模块用于根据所述位置识别点和所述偏移量对同一类型的所述待识别物体进行OCR识别。
根据本发明实施例提出的提高OCR识别率的系统,通过设置获取模块、第一处理模块、第二处理模块、第一识别模块、比对模块、计算模块和第二识别模块,其中,获取模块用于获取待识别物体的图像,第一处理模块用于对待识别物体的图像进行处理以标出位置识别点所在区域和待识别物体中的目标区域,第二处理模块用于对标出的目标区域的图像进行处理,第一识别模块用于对目标区域图像和处理后的目标区域图像进行OCR识别,以得到目标区域的识别字符,比对模块用于比对目标区域的识别字符和目标区域的实际字符,若目标区域的识别字符和目标区域的实际字符匹配,则通过计算模块计算位置识别点所在区域和目标区域之间的偏移量,第二识别模块用于根据位置识别点和偏移量对同一类型的待识别物体进行OCR识别,由此,能够通过待识别物体上的位置识别点来准确截取待识别物体的目标区域,从而能够提升OCR的识别率和准确度。
另外,根据本发明上述实施例提出的提高OCR识别率的系统还可以具有如下附加的技术特征:
根据本发明的一个实施例,所述待识别物体采用固定模块印刻。
附图说明
图1为本发明实施例的提高OCR识别率的方法的流程图;
图2为本发明一个具体实施例的芯片mark点区域和目标区域的示意图;
图3为本发明实施例的提高OCR识别率的系统的方框示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的提高OCR识别率的方法的流程图。其中,本发明实施例的提高OCR识别率的方法可用于设有位置识别点的待识别物体,并且待识别物体可采用固定模块印刻。
如图1所示,本发明实施例的提高OCR识别率的方法,包括以下步骤:
S1,获取待识别物体的图像,其中,待识别物体设有位置识别点;
S2,对待识别物体的图像进行处理以标出位置识别点所在区域和待识别物体中的目标区域;
S3,对标出的目标区域的图像进行处理;
S4,对目标区域图像和处理后的目标区域图像进行OCR识别,以得到目标区域的识别字符;
S5,比对目标区域的识别字符和目标区域的实际字符;
S6,若目标区域的识别字符和目标区域的实际字符匹配,则计算位置识别点所在区域和目标区域之间的偏移量;
S7,根据位置识别点和偏移量对同一类型的待识别物体进行OCR识别。
在本发明的一个实施例中,对于获取的待识别物体的图像,可采用ROI标出位置识别点所在区域,并获取位置识别点所在区域的标定坐标,并可采用ROI标出待识别物体中的目标区域,并获取目标区域的标定坐标和尺寸数据,即目标区域的边长尺寸,其中,可设定位置识别点所在区域的标定坐标为(x1,y1),目标区域的标定坐标为(x2,y2),尺寸数据,即目标区域的边长尺寸可包括宽w和高h。
进一步地,可设定多个旋转角度,例如90°、180°和270°三个旋转角度,并可根据多个旋转角度,即90°、180°和270°三个旋转角度分别对标出的目标区域的图像进行旋转处理,并对应得到多个旋转图像,即可将标出的目标区域的图像旋转90°得到第一旋转图像、将标出的目标区域的图像旋转180°得到第二旋转图像,以及将标出的目标区域的图像旋转270°得到第三旋转图像。
进一步地,可采用深度学习算法分别对标出的目标区域的图像和多个旋转图像进行OCR识别,并对应得到多组目标区域的识别字符,例如,可采用深度学习算法依次对第一旋转图像、第二旋转图像、第三旋转图像和标出的目标区域的图像进行OCR识别,以对应得到第一组目标区域的识别字符、第二组目标区域的识别字符、第三组目标区域的识别字符和第四组目标区域的识别字符。
进一步地,可先设定匹配阈值,然后可比对每组目标区域的识别字符与目标区域的实际字符之间的匹配度。其中,若存在至少一组目标区域的识别字符与目标区域的实际字符之间的匹配度达到匹配阈值,则选取其中匹配度最大的目标区域的识别字符对应的图像作为参考图像,并记录参考图像的旋转角度,例如,若第一组目标区域的识别字符和第二组目标区域的识别字符与目标区域的实际字符之间的匹配度达到匹配阈值,且第一组目标区域的识别字符与目标区域的实际字符之间的匹配度大于第二组目标区域的识别字符与目标区域的实际字符之间的匹配度,则选取第一旋转图像作为参考图像,并将旋转角度90°作为旋转参数进行记录;若没有一组目标区域的识别字符与目标区域的实际字符之间的匹配度达到匹配阈值,则重复上述步骤S2-S5直至存在至少一组目标区域的识别字符与目标区域的实际字符之间的匹配度达到匹配阈值。
进一步地,当存在至少一组目标区域的识别字符和目标区域的实际字符匹配时,可根据位置识别点所在区域的标定坐标,即(x1,y1)和目标区域的标定坐标,即(x2,y2)计算位置识别点所在区域和目标区域之间的偏移量,具体可通过下列公式进行计算:
delta_x=x1-x2,delta_y=y2-y1。
其中,delta_x为位置识别点所在区域与目标区域之间的水平方向偏移量,delta_y为位置识别点所在区域与目标区域之间的垂直方向偏移量。
进一步地,可根据上述步骤计算得到的位置识别点所在区域与目标区域之间的偏移量,即delta_x和delta_y对同一类型的待识别物体进行OCR识别。具体地,可获取同一类型的待识别物体的检测图像,并可根据参考图像的旋转角度,例如第一旋转图像的旋转角度90°对检测图像进行旋转处理,并可对处理后的检测图像上的位置识别点进行识别匹配,即判断识别的检测图像上的位置识别点的可信度是否达到阈值,若识别的检测图像上的位置识别点的可信度达到阈值,则可获取检测图像上的位置识别点所在区域的标定坐标,即(x_mark,y_mark),进而可根据检测图像的位置识别点所在区域的标定坐标,即(x_mark,y_mark)和偏移量,即delta_x和delta_y得到检测图像的目标区域的标定坐标,即(target_x,target_y),然后可根据检测图像的目标区域的标定坐标,即(target_x,target_y)和尺寸数据,即宽w和高h对检测图像的目标区域的图像进行截取,最后可采用深度学习算法对截取的检测图像的目标区域图像进行OCR识别。
综上可看出,图1所示的本发明实施例的提高OCR识别率的方法可具体分为两种运行模式,即teach模式包括上述步骤S1-S6,可用于调试确认参数,以及run模式包括上述步骤S7,可用于实际的识别检测。
下面将以带有位置识别点,即mark点的芯片为例,具体阐述本发明的teach模式对带有mark点芯片的调参过程和run模式对带有mark点芯片的识别检测过程,其中,带有mark点芯片的图像可通过相机进行获取。
在本发明的一个具体实施例中,如图2所示,可采用ROI标出芯片图像上mark点区域,并可获取mark点区域的左上点坐标(x1,y1),并可采用ROI标出芯片图像的目标区域,即字符00 60043所在的长方形区域,并可获取芯片图像的目标区域,即字符00 60043所在的长方形区域的左上点坐标(x2,y2),以及宽w和高h,进一步可调整相机机曝光、相机增益、光源亮度参数。
进一步地,可对芯片图像的目标区域,即字符00 60043所在的长方形区域进行旋转处理,例如可进行90°、180°和270°旋转,进一步可采用深度学习算法对芯片图像的目标区域,即字符00 60043所在的长方形区域和旋转得到的图像进行OCR识别可得到四个识别字符结果,然后可将识别字符结果和对应的可信度百分比进行反馈。其中,若存在至少一个识别字符结果对应的可信度百分比达到阈值,则可从中选取可信度百分比最大的识别字符结果对应的图像作为参考图像,并可将该参考图像的旋转角度作为旋转参数进行记录;若没有一个识别字符结果对应的可信度百分比达到阈值,则重复上述步骤直到存在至少一个识别字符结果对应的可信度百分比达到阈值。
进一步地,可通过下列公式进行计算芯片图像的目标区域和mark点区域之间的偏移量:
delta_x=x1-x2,delta_y=y2-y1。
其中,delta_x为mark点区域与芯片图像的目标区域之间的水平方向偏移量,delta_y为mark点区域与芯片图像的目标区域之间的垂直方向偏移量。
进一步地,可根据芯片图像的目标区域和mark点区域之间的偏移量,即delta_x和delta_y对生产线上同一类型的芯片进行OCR识别。具体地,可获取生产线上芯片的检测图像,并可根据参考图像的旋转角度,例如旋转角度90°对检测图像进行旋转处理,并可对处理后的检测图像上的mark点进行识别匹配,即判断识别的检测图像上的mark点的可信度是否达到阈值,若识别的检测图像上的mark点的可信度达到阈值,则可获取检测图像上的mark点所在区域的左上点坐标,即(x_mark,y_mark),进而可根据检测图像的mark点所在区域的左上点坐标,即(x_mark,y_mark)和偏移量,即delta_x和delta_y得到检测图像的目标区域的左上点坐标,即(target_x,target_y),然后可根据检测图像的目标区域的左上点坐标,即(target_x,target_y)和尺寸数据,即宽w和高h对检测图像的目标区域的图像进行截取,最后可采用深度学习算法对截取的检测图像的目标区域图像进行OCR识别。
根据本发明实施例提出的提高OCR识别率的方法,通过获取待识别物体的图像,并对待识别物体的图像进行处理以标出位置识别点所在区域和待识别物体中的目标区域,以及对标出的目标区域的图像进行处理,然后对目标区域图像和处理后的目标区域图像进行OCR识别,以得到目标区域的识别字符,并比对目标区域的识别字符和目标区域的实际字符,其中,若目标区域的识别字符和目标区域的实际字符匹配,则计算位置识别点所在区域和目标区域之间的偏移量,最后根据位置识别点和偏移量对同一类型的待识别物体进行OCR识别,由此,能够通过待识别物体上的位置识别点来准确截取待识别物体的目标区域,从而能够提升OCR的识别率和准确度。
对应上述实施例提出的提高OCR识别率的方法,本发明第二方面实施例提出了一种提高OCR识别率的系统。其中,本发明实施例的提高OCR识别率的系统可用于设有位置识别点的待识别物体,并且待识别物体可采用固定模块印刻。
如图3所示,本发明实施例提出了一种提高OCR识别率的系统,包括获取模块10、第一处理模块20、第二处理模块30、第一识别模块40、比对模块50、计算模块60和第二识别模块70。
其中,获取模块10用于获取待识别物体的图像,其中,待识别物体设有位置识别点;第一处理模块20用于对待识别物体的图像进行处理以标出位置识别点所在区域和待识别物体中的目标区域;第二处理模块30用于对标出的目标区域的图像进行处理;第一识别模块40用于对目标区域图像和处理后的目标区域图像进行OCR识别,以得到目标区域的识别字符;比对模块50用于比对目标区域的识别字符和目标区域的实际字符;若目标区域的识别字符和目标区域的实际字符匹配,则通过计算模块60计算位置识别点所在区域和目标区域之间的偏移量;第二识别模块70用于根据位置识别点和偏移量对同一类型的待识别物体进行OCR识别。
本发明实施例提出的提高OCR识别率的系统,可实现上述实施例提出的提高OCR识别率的方法,其具体实施方式可参照上述实施例。
根据本发明实施例提出的提高OCR识别率的系统,通过设置获取模块、第一处理模块、第二处理模块、第一识别模块、比对模块、计算模块和第二识别模块,其中,获取模块用于获取待识别物体的图像,第一处理模块用于对待识别物体的图像进行处理以标出位置识别点所在区域和待识别物体中的目标区域,第二处理模块用于对标出的目标区域的图像进行处理,第一识别模块用于对目标区域图像和处理后的目标区域图像进行OCR识别,以得到目标区域的识别字符,比对模块用于比对目标区域的识别字符和目标区域的实际字符,若目标区域的识别字符和目标区域的实际字符匹配,则通过计算模块计算位置识别点所在区域和目标区域之间的偏移量,第二识别模块用于根据位置识别点和偏移量对同一类型的待识别物体进行OCR识别,由此,能够通过待识别物体上的位置识别点来准确截取待识别物体的目标区域,从而能够提升OCR的识别率和准确度。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。