CN116052189A - 一种文本识别方法、系统和存储介质 - Google Patents
一种文本识别方法、系统和存储介质 Download PDFInfo
- Publication number
- CN116052189A CN116052189A CN202310059211.1A CN202310059211A CN116052189A CN 116052189 A CN116052189 A CN 116052189A CN 202310059211 A CN202310059211 A CN 202310059211A CN 116052189 A CN116052189 A CN 116052189A
- Authority
- CN
- China
- Prior art keywords
- license plate
- data
- particular object
- type
- representation
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19147—Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- 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
-
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
- G06V20/582—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
- G06V20/625—License plates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19173—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Image Analysis (AREA)
- Traffic Control Systems (AREA)
Abstract
本申请公开了用于生成与对象相关联的至少文本和特定类型的预测的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。通过使用第一机器学习模型处理包括一个或多个对象的输入数据来生成第一模型输出。第一模型输出识别输入数据中存在特定对象并指定特定对象的特征。基于指定的特征确定特定对象的类型。该类型包括单行类型和多行类型。生成特定对象的单行表示。通过处理单行表示生成第二模型输出。第二模型输出包括与特定车辆牌照相对应的字符的预测。
Description
技术领域
本申请涉及文本识别技术领域,更具体地说,涉及一种文本识别方法、系统和存储介质。
背景技术
本说明书涉及识别文本内容,更具体地说,涉及分析捕获场景中对象的图像数据,并使用机器学习模型识别呈现在捕获对象的一行或多行中的文本内容的字符。
例如,场景可以与一条或多条道路相关联,图像数据捕获的对象可以包括行人、车辆、车辆牌照和路标。文本内容可以包括与对象相关联的信息,例如与车辆牌照相关联的字符序列。
人类可以识别图像数据中的对象,以及可以识别对象的文本内容。或者,示例性地,可以配置用于处理图像数据的系统以识别图像数据中的对象并使用诸如基于贝叶斯统计的分类和模式识别的传统技术来识别关联的文本内容。
人工智能(Artificial Intelligence,AI)是一种机器演示的智能,代表计算机程序或机器思考和学习的能力。可以使用一台或多台计算机根据训练样本训练多个机器学习模型,并对每一个经训练的机器学习模型进行推理操作,以处理模型输入并生成模型输出。
神经网络属于机器学习模型的子领域。神经网络可以使用表示多种计算的一层或多层节点。一台或多台计算机可以配置为执行神经网络的计算以生成输出,例如对接收到的输入进行的分类、预测或分割。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层,即下一个隐藏层或输出层的输入。网络的每一层根据相应网络参数集的当前值由接收到的输入生成输出。
发明内容
本说明书描述了用于从图像数据中捕获的对象,特别是具有多于一行文本的对象中识别文本内容(例如,与文本内容相关联的字符序列)的技术。
本说明书中的术语“对象”是指在图像数据中捕获的任何合适的对象,并且具有一行或多行文本。例如,对象可以是一个或多个路标、广告牌或地标,每个都包括一行或多行文本。在一些情况下,对象可以与一种或多种交通工具(例如,货车、自行车和机动车辆)相关联,例如对象可以是贴在交通工具上并具有一行或多行文本的贴纸或贴花。作为另一示例,对象可以是附在车辆上的牌照。
识别车辆牌照的文本内容可以应用在不同的场景,例如,监控地方路段或公路上的车辆交通,改善车库入口管理,监控通过特定公路或桥梁的车辆的通行费,协助刑事调查,加强社会治安。牌照识别可用于识别车辆信息以及车主信息。
一些传统的牌照识别技术效率不高。例如,一些技术涉及相当多的人为推断,比如让一个或多个人员查看包含车辆牌照的图像或视频并识别对应牌照的字符。作为另一示例,一些技术采用人工提取的特征来分析输入图像或视频以获得牌照信息,例如,局部二值模式(Local Binary Pattern,LBP)方法,快速鲁棒特征(Speeded-up Robust Feature,SURF)方法,尺度不变特征变换(Scale-invariant Feature Transform,SIFT)方法和方向梯度直方图(Histogram of Oriented Gradients,HOG)方法。与包含一个或多个经过训练以识别牌照的机器学习模型的系统相比,这些技术效率较低。
然而,其他一些使用机器学习模型的技术不够准确。例如,当输入图像包含不同的牌照类型(例如,单行类型或多行类型)时,传统技术无法以令人满意的准确度水平生成不同类型牌照中字符的预测。其他一些技术通过使用不同的机器学习模型处理不同类型的牌照来解决这个问题,这可能非常耗时且计算成本更高。
以下说明书中描述的技术旨在解决传统技术面临的上述问题。所描述的技术涉及从输入数据中识别不同类型的车辆牌照,例如单行或多行类型(即,包括多行文本的牌照类型)的牌照,使用一个或多个端到端训练的机器学习模型识别与车辆牌照相关联的文本(例如,字符序列)。
通常,执行所描述的技术的方法、系统或一个或多个计算机可读存储介质可以至少识别与输入数据中的每个对象相关联的类型和文本。输入数据可以是一帧或多帧图像,每帧图像捕获一个或多个对象。如前所述,每个对象至少与文本和特定类型相关联,例如车辆牌照。
本申请所公开的技术可以使用第一机器学习模型(例如,第一深度神经网络)处理多帧图像以生成第一组模型输出。第一组模型输出可以指示特定对象的存在以及与该特定对象相关联的特征。特征可以包括,例如,对象的颜色、与对象相关联的多个关键点以及对象存在的置信水平。颜色可以是对象的背景颜色。本申请所公开的技术还可以确定特定对象的类型,类型包括如前所述的单行类型和多行类型。
确定类型后,本申请所公开的技术可以生成对象的单行表示作为表示数据。本申请所公开的技术可以使用第二机器学习模型(例如,第二深度神经网络)处理表示数据以生成对应于与对象相关联的文本的字符序列。进而,本申请所公开的技术可以通过确定和去除序列中的空格和冗余(redundant occurrence)处理该序列。
说明书中的术语“车辆牌照”是指附在车辆上用于官方识别目的的牌照。如前所述,术语“车辆”代表在公共道路上行驶的各种车辆,包括汽车、卡车、摩托车或拖拉机等机动车辆。每个车辆的车辆牌照包括可在颁发车辆牌照的管辖区内唯一地标识车辆的字符序列(即文本内容)。对于不同的司法管辖区,字符序列可以有不同的类型和长度。例如,字符序列可以是单行、双行或多行。作为另一示例,字符序列可以具有一个或多个字符的长度,例如2、4、7、9和12。为简单起见,术语“车辆牌照”在本说明书中有时也被称为“牌照”。
说明书中与被识别牌照相对应的术语“字符”代表与牌照相关联的文本。字符可以包括数字、字母、特定区域的象征字符(例如,中文字符、印地语字符、阿拉伯字符、日文字符或韩文字符),以及可选的符号(例如,字符之间的点、下划线或图形符号)。
说明书中的术语“机器学习模型”代表用于机器学习的任何合适的模型。作为示例,机器学习模型可以包括一个或多个被训练用于执行不同推理任务的神经网络。神经网络的示例和神经网络执行的任务在说明书末尾有更详细的描述。为简单起见,术语“机器学习模型”在后文说明书中有时也被称为“神经网络模型”或“深度神经网络”。
可以实施本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。
首先,本说明书中描述的技术可以自动执行从输入数据(例如,输入图像或视频)识别牌照并识别与牌照相关联的字符序列的过程。所描述的技术基于一个或多个机器学习模型(例如,神经网络),并且在确认和识别牌照方面比其他非机器学习模型更快、更准确。
第二,本说明书中描述的技术对于不同类型的牌照提供了稳健而高效的区分。特别地,所述技术可以确定被识别牌照的类型。牌照类型可以包括单行类型和多行类型。执行所述技术的系统可以处理在各个场景中捕获不同类型的牌照的输入图像或视频,并准确地确定牌照的对应类型。这样,系统不需要使用不同的模型(例如,基于仅包含单行牌照的数据训练而成的第一模型,基于仅包含双行牌照的数据训练而成的第二模型)来确认和识别不同类型的牌照。
另外,本说明书中描述的技术在训练方面非常有效。执行所述技术的系统可以包括一个或多个深度神经网络模型,这些模型按顺序集成并基于相同的训练样本集(例如,包含不同类型牌照的多个训练图像或视频)进行端到端训练。整个说明书中的术语“端到端训练”代表所有参数(例如,每个网络层中的节点权重)反向传播中在公共损失函数的约束下同时训练或更新。公共损失函数考虑了集成到系统中的一个或多个深度神经网络中的每一个的任务或准确度指标。因为一个或多个深度神经网络被端到端地训练,每个神经网络的参数基本上同时被训练(例如,收敛)。这比分别使用各自的损失函数训练两个或多个神经网络模型更有优势,因为训练周期更短,训练系统的输出精度更高。
此外,本说明书中描述的技术可以方便地适用于处理来自不同司法管辖区的输入数据。在某些情况下,系统可以根据为第一司法管辖区或地理区域(例如中国)收集的训练样本进行训练,并用于执行经训练的系统中指定的推理操作来识别与第二司法管辖区或地理区域(例如美国)相关联的输入数据中的牌照。在某些情况下,系统可以根据为第三区域(例如印度)收集的训练样本进行训练或重新训练,并配置为执行推理操作以处理与第三区域相关联的输入数据。
本说明书的主题的一个或多个实施例的细节在附图和下述说明书中阐述。根据说明书、附图和权利要求,本申请的主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了用于在处理输入数据之后生成与被识别牌照相对应的输出数据的一个示例系统。
图2A示出了用于在处理输入数据之后生成聚合数据的一个示例牌照特征引擎。
图2B示出了具有关键点的一个示例牌照。
图3A示出了用于确定牌照类型的一个示例牌照类型引擎。
图3B示出了用于在处理聚合数据之后生成表示数据的一个示例牌照处理引擎。
图4示出了双行类型牌照的单行表示示例。
图5A示出了用于处理表示数据以生成与被识别牌照相对应的输出数据的一个示例牌照识别引擎。
图5B示出了使用图5A的解码器示例生成输出数据的过程示例。
图6是生成与从输入数据中识别的对象相对应的输出数据的过程示例的流程图。
在各个附图中,相同的附图标记和名称指示相同的元件。
具体实施方式
图1示出了一示例系统100,其被配置为在处理输入数据110之后生成与被识别牌照相对应的输出数据180。尽管下述的说明书描述了用于对不同类型的车辆牌照进行文本识别的技术,但是应当理解,如前文所述,所述技术可以应用于识别图像数据中的其他对象并识别与被识别对象相关联的文本内容。示例性地,其他对象可以是路标、广告牌、地标以及附在一辆或多辆具有一行或多行文本的机动车上的贴纸。
一般而言,系统100配置为从包括多个牌照的输入数据110中识别牌照,并识别与被识别牌照相关联的一个或多个字符。系统100是在一个或多个位置的一个或多个计算机上实现的系统的示例,下文描述的系统、组件和技术也可以在系统100中被实现。系统100的一些组件可以以在一台或多台计算机上运行的计算机程序被实施。
如图1所示,系统100可以包括牌照处理子系统105,其被配置为接收输入数据110和生成输出数据180。系统100还可以包括与牌照处理子系统105通信耦合的存储器单元190。存储器单元190可以向牌照处理子系统105提供输入数据110,并且可以存储由牌照处理子系统105生成的输出数据180。例如,存储器单元190可以接收和存储由图像传感器捕获的图像或视频,并提供存储的图像或视频作为牌照处理子系统105的输入数据110。在一些实施方式中,存储器单元190可以是位于芯片上的片上存储器,牌照处理子系统105在同一芯片上被编译和部署。或者,存储器单元190可以与牌照处理子系统105无线耦合并且位于不同的位置。
系统100还可以包括与牌照处理子系统105通信耦合的服务器195。服务器195可以提供经训练或更新的神经网络参数,以配置牌照处理子系统105中的一个或多个深度神经网络。神经网络参数可以存储在存储器单元190中并由牌照处理子系统105每周期从存储器单元190中获取,或者服务器195可以直接将向牌照处理子系统105提供这些神经网络参数。在一些实现方式中,服务器195可以以特定时间间隔获取存储在存储器单元190中的输出数据180。或者,服务器195可以直接从牌照处理子系统105的数据流输出中获取输出数据180。可选地,服务器195可以以特定时间间隔获取存储在存储器单元190中的输入图像和视频以用于进一步操作。
输入数据110可以是传感器数据,包括拍摄到各角度场景的一个或多个图像或视频帧,并且每个图像可以包括捕获场景中的一个或多个不同对象。例如,当场景与道路(示例性地,地方道路、公路和高速公路)相关联时,不同的对象可以是车辆、行人、交通标志或交通信号灯。这些场景的图像的每一帧通常可以包括一个或多个车辆牌照。然而,在某些情况下,输入数据110中的一个或多个图像或视频可能不包括任何车辆牌照。
牌照处理子系统105可以使用一个或多个引擎处理输入数据110,以识别输入数据的图像中是否存在牌照,确定被识别牌照的特征,并生成输出数据180,每个输出数据180与被识别牌照相关联并表示为被识别牌照中被识别的字符序列。
牌照处理子系统105中的一个或多个引擎,如图1所示。可以包括牌照特征引擎120、牌照处理引擎140和牌照识别引擎160。在这些引擎120、140、160中,牌照特征引擎120和牌照识别引擎160各自可以包括单独的机器学习模型。例如,牌照特征引擎120可以包括第一机器学习模型125,而牌照识别引擎160可以包括第二机器学习模型165。第一机器学习模型125和第二机器学习模型165可以是适用于图像处理、分类和识别的任何机器学习模型。下面将更详细地描述机器学习模型的一些示例。
牌照特征引擎120,如图1所示。可以接收输入数据110并使用第一机器学习模型125处理输入数据110以生成第一模型输出,第一模型输出识别了车辆牌照的存在并指定被识别牌照的特征。特征至少包括被识别牌照的类型,例如单行类型、双行类型或多行类型。术语“单行”类型表示牌照中的字符以单行排列的一种牌照类型。术语“双行”类型表示牌照中的字符以双行排列的一种牌照类型。术语“多行”类型表示牌照中的字符以多行排列的一种牌照类型。术语“多行”在本说明书中也用“多于一行”表示。牌照特征引擎120还可以聚合模型输出数据以生成聚合数据130。牌照特征引擎120的更多细节将结合图2A进行描述。
牌照处理引擎140,如图1所示,可以从牌照特征引擎120接收并处理与被识别牌照相关联的聚合数据130以生成被识别牌照的表示数据150。表示数据150包括具体说明表示被识别牌照的经调整或变换的图像像素的数据。例如,牌照处理引擎140可以生成双行牌照的单行表示。生成表示数据150的更多细节将结合图3B进行描述。
牌照识别引擎160,如图1所示,可以从牌照处理引擎140接收表示数据150并且使用第二机器学习模型165处理表示数据150以生成第二模型输出。牌照识别引擎160还可以处理第二模型输出以确定并从第二模型输出中去除空格和/或冗余,并生成包括与被识别牌照相对应的识别字符序列的输出数据180。生成和处理第二模型输出的细节将结合图5A和图5B进行描述。
图2A示出了一示例的牌照特征引擎205,配置为在处理输入数据210之后生成聚合数据260。例如,牌照特征引擎205可以是图1所示的牌照特征引擎120,聚合数据260可以是图1所示的聚合数据130,输入数据210可以是图1的输入数据110。
第一机器学习模型220可以是任何经训练的机器学习模型,适用于生成对至少一个对象的存在的预测,可选地,还可以生成对被识别对象的位置的预测。例如,可以训练第一机器学习模型220通过在第一机器学习模型220中指定的操作来接收和处理每个输入数据210以生成第一模型输出225。输入数据210可以是由图像传感器捕获的多帧图像或视频。第一模型输出225可以至少包括识别输入图像或输入视频的帧中是否捕获到车辆牌照的数据,以及,可选地,被识别牌照的逐像素位置(例如,输入图像中用边界框包括表示被识别牌照的像素)。
在一些实现方式中,输入图像中是否存在牌照的识别是基于对图像帧中包含的表示牌照的一个或多个像素的可能性的预测。
第一机器学习模型220还可以裁剪出包括被识别牌照的像素,并使用计算机视觉技术处理裁剪图像以校正被识别牌照。校正图像可以由牌照特征引擎205用于进一步的操作,例如,生成对被识别牌照的特征的预测。
第一机器学习模型220可以通过监督学习方法进行训练以处理训练样本(例如,包括不同场景下一个或多个牌照的训练图像或视频)并生成模型输出。训练过程可以是与系统100中的其他机器学习模型的端到端训练。每个训练样本都标有参考标准信息,例如牌照的存在、牌照的颜色,以及关键点以及关键点在牌照中的位置。
对于一个牌照来说,术语“颜色”可以表示与牌照相关联的不同颜色。牌照的颜色可以包括牌照的一种或多种背景颜色,以及与牌照相关联的文本内容(例如,一行或多行文本或其他符号字符)的一种或多种颜色。牌照的背景颜色和文字颜色可以相同也可以不同。
对于一个牌照来说,说明书中使用的术语“关键点”表示牌照中的一个或多个特定点。一个或多个特定点可以包括牌照的顶点,或定义牌照中不同区域的点或两者都包括。例如,第一组点可以是定义牌照第一区域的顶点,第二组点可以是定义牌照第二区域的顶点。关键点还可以用于确定牌照的类型(例如,单行类型或多行类型),这将在下面更详细地描述。关键点的总数根据识别任务而变化。例如,关键点可以包括4、6、8、10或20个点。
在一些实现方式中,关键点也可以由对应于牌照顶点的一个或多个像素表示,这些顶点由图像帧中的多个像素表示。训练样本中的一个或多个像素可以被标记为关键点用于训练第一机器学习模型220以预测输入数据210的关键点信息230b。
训练过程是为了最小化训练损失,训练损失定义了由标记的训练样本表示的参考标准结果与第一机器学习模型220生成的预测之间的差异。第一机器学习模型220中的参数通过反向传播来更新,同时最小化训练损失。训练过程可以包括以下一种或多种技术,例如,批标准化(batch normalization)、暂退法(dropout)、线性修正单元或早停法。第一机器学习模型220还可以使用自举法(bootstrapping)进一步训练以获得每个预测(例如,关键点的逐像素位置)的均值和方差的估计,这可以使第一机器学习模型220将不确定性引入到到关键点的预测中,从而第一机器学习模型220能够以更稳定的方式运行。
继续参照图2A所示,第一模型输出225还可以包括响应于确定在图像帧中存在被捕获牌照而对牌照特征的预测。被识别牌照的特征可以包括对被识别牌照的颜色230a(例如,背景颜色)的预测。如前所述,示例性地,预测的背景颜色可以是红色、黄色、蓝色、黑色或白色。为简单起见,以下说明书中的术语“颜色”,如无特殊说明,均指牌照背景颜色。被识别牌照的特征还可以包括牌照的关键点信息230b。关键点信息230b可以包括与牌照相关联的关键点的总数以及关键点相对于输入图像的逐像素位置。
牌照类型引擎240可以处理作为输入的关键点信息230b,并生成包括对被识别牌照类型的预测的类型数据245。牌照类型引擎240处理关键点信息230b的细节将结合图3A进行描述。
在一些实施方式中,与被识别牌照相关联的特征还可以包括置信水平230c以避免假阳性错误。具体而言,第一机器学习模型220配置为将被识别牌照的预测与置信水平230c相关联。说明书中的置信水平可以是表示预测为真的可能性的实数。置信水平越高,预测越准确。例如,被识别牌照的存在可以与第一置信水平相关联,该第一置信水平表示被识别牌照存在的预测概率有多大可能是真实的并且可以被信任。作为另一示例,被识别牌照的颜色可以与第二置信水平相关联,指示预测颜色为真的可能性有多大。类似地,被识别牌照的每个关键点都可以与对应的置信水平相关联。说明书中的置信水平可以在0%到100%的范围内,例如80%、90%或95%。
机器学习模型220可以被提供预设的置信水平阈值,例如90%,并确定与小于该阈值的置信水平相关联的预测是假阳性,并拒绝这样的预测。例如,如果与牌照位于输入帧中的预测相关联的置信水平为85%,低于预设置信水平阈值90%,则第一机器学习模型220拒绝该预测并确定输入帧中没有牌照。
在一些实现方式中,第一机器学习模型220可以是经训练的深度神经网络,包括为不同的任务指定操作的多个网络层。例如,深度神经网络的第一组网络层可以配置为在识别输入图像中的牌照之后基于牌照的边界框输出裁剪图像。深度神经网络还可以处理裁剪后的表示牌照的图像,以输出被识别牌照的特征,例如颜色、关键点和被识别牌照的类型。
在生成被识别牌照的特征之后,聚合引擎250可以至少连接上述预测(例如,对颜色230a、关键点信息230b、置信水平230c和类型数据245的预测)以生成聚合数据260。聚合数据260可以包括任何合适的数据结构以对上述预测进行分组。例如,聚合数据260可以是张量、链表或哈希表。聚合引擎250可以在连接预测时确定数据结构的大小,以及可选地,确定用于存储聚合数据260的存储器位置以用于进一步操作。
图2B示出了具有关键点270和280的示例的牌照290和295。
如图2B所示,被识别牌照290是双行牌照,因为它具有排成两行的字符,而被识别牌照295是单行牌照,因为与牌照相关联的字符排成一行。尽管图2B所示的示例牌照是单行类型和双行类型,应当理解,所描述的技术可以应用于确认和识别发布区域中的其他类型的牌照(例如,具有以大于两行排列的字符的第三行类型或多行类型)。
继续参照被识别牌照290和295并结合上面的描述,牌照特征引擎205可以应用第一机器学习模型220来识别牌照,并基于输入图像帧中牌照的预测位置裁剪出具有表示牌照的像素的图像。在一些情况下,裁剪图像可以基本上仅包括表示被识别牌照的像素。例如,被识别牌照290由来自第一输入帧的第一裁剪图像中的像素表示,以及被识别牌照295由来自第二输入帧的第二裁剪图像中的像素表示。
由第一机器学习模型220生成的第一模型输出225可以包括与被识别牌照相关联的关键点信息230b。第一机器学习模型220可以用包括多个关键点标记的图像帧的训练样本进行训练,并且可以配置为处理输入图像帧以生成关键点信息230b。
如前所述,关键点信息230b可以包括相应数量的关键点和与被识别牌照的关键点相关联的位置。例如,被识别牌照290的关键点270的总数可以包括六个不同的关键点270a-f。作为另一示例,被识别牌照295的关键点280的总数可以包括六个不同的关键点280a-f。尽管如图2B所示每个牌照290和295有六个关键点,应当理解,其他数量的关键点是可能的,例如8、10、12和20。
关键点270a-f和280a-f中的每一个都与相对于原始输入图像帧或特定牌照的裁剪图像的逐像素位置或坐标相关联。在某些情况下,逐像素位置可以至少基于传感器位置、传感器特性和像素大小变换为实际大小。然而,应当理解,任何合适的坐标系可以用来表示关键点的逐像素位置或坐标。
图3A示出了一示例的牌照类型引擎305,配置为确定牌照的类型。图3A的牌照类型引擎305可以等同于图2A的牌照类型引擎240。
牌照类型引擎305可以接收关键点信息310,其等同于图2A的关键点信息230b,并通过配对生成器320生成多对关键点。多对关键点是基于诸如关键点的相对位置生成的。例如,第一对关键点可以包括位于牌照的左上顶点的第一关键点和基本位于左边缘并在第一关键点下方的第二关键点。作为另一示例,第二对关键点可以包括位于牌照右上顶点的第三关键点和在右边缘并在第三关键点下方的第四关键点。
在一些实现方式中,配对生成器320可以对所有用于后续分析的关键点进行配对。例如,继续参照图2B所示的被识别牌照290,配对生成器320可以生成关键点270a和270e的第一关键点对,以及关键点270b和270f的第二关键点对。作为另一示例,继续参照被识别牌照295,配对生成器320可以生成关键点280a和280e的第一关键点对,以及关键点280b和280f的第二关键点对。应当注意的是,对于被识别牌照,可能存在其他可能的关键点对,例如,牌照290的关键点对,270a和270d、270a和270b、270e和270d、270e和270f。
距离生成器330可以从配对生成器320接收关键点对325,并生成每个关键点对的距离335。一对关键点之间的距离可以是任何一种合适的距离,例如,欧几里得距离、被识别牌照的校正图像中的欧几里得距离或特定方向上的距离(例如,沿第一边缘的方向)。在一些实现方式中,距离可以是逐像素距离,比如一对关键点之间的像素个数。例如,该距离可以是5个像素、10个像素、20个像素或更多。
结合图2B所示的被识别牌照290,距离生成器330可以确定第一对关键点(例如,关键点270a和270e)之间的第一距离,以及第二对关键点(例如,关键点270b和270f)之间的第二距离。类似地,作为另一示例并且结合2B图所示的被识别牌照295,距离生成器330可以确定第一对关键点(例如,关键点280a和280e)之间的第一距离,以及第二对关键点(例如,关键点280b和280f)之间的第二距离。
牌照类型引擎305还可以包括阈值比较单元340,配置为确定被识别牌照的类型。为了确定被识别牌照的类型,阈值比较单元340可以将一个或多个关键点对的距离与预设阈值距离进行比较。例如,阈值比较单元340可以将与被识别牌照290相关联的第一距离和第二距离与阈值距离进行比较。如果第一距离和第二距离都等于或大于阈值距离,则阈值比较单元340可以确定被识别牌照290是双行类型牌照345a,否则是单行类型牌照。作为另一示例,在将与被识别牌照295相关联的第一距离和第二距离与阈值距离进行比较之后,如果第一距离和第二距离两者都小于阈值距离,阈值比较单元340可以确定被识别牌照295是单行类型牌照345b。或者,只要存在一对关键点的距离大于或等于阈值距离,阈值比较单元340就可以确定牌照为双行类型。
阈值距离可以根据识别任务的要求而变化。如前所述,阈值距离可以是像素距离。为了效率,阈值距离可以基于牌照的像素大小确定。例如,假设在图像中捕获的牌照高度为40个像素,则可以确定阈值距离为10个像素。作为另一示例,阈值距离可以是图像中捕获的牌照的像素高度或宽度的分数,例如牌照的像素高度的10%、25%或50%。在一些实施方式中,阈值距离可以基于牌照的实际尺寸确定。例如,阈值距离的范围可以在1厘米到5厘米之间。
牌照类型引擎305可以生成指明被识别牌照的牌照类型的类型数据350作为输出。系统100可以基于类型数据350执行额外操作。
图3B示出了一示例的牌照处理引擎395,配置为在处理聚合数据360之后生成表示数据390。图3B的牌照处理引擎395可以等同于图1的牌照处理引擎140。
如图3B所示,牌照处理引擎395可以处理输入的聚合数据360并生成表示数据390用于进一步的操作。
接收器365可以接收聚合数据360,例如,聚合数据360可以是图2A的聚合数据260或图1的聚合数据130。聚合数据360可以包括系统100为被识别牌照预测的特征。接收器365可以可选地接收表示包括被识别牌照的裁剪图像的数据。
图像处理单元370可以使用图像处理技术处理接收器365接收到的数据,以生成变换数据380。变换数据380通常很有用,因为在输入图像帧中的表示被识别牌照的原始图像可能以一种特定角度被捕获,不一定是正面方向并且会降低识别牌照字符的准确性。变换数据380可以是变换为正视图版本的裁剪图像。
为了生成变换数据380,图像处理单元370可以使用关键点信息对表示被识别牌照的裁剪图像执行单应性变换(homographic transformation)。图像的单应性变换通常涉及一个或多个相关图像之间的投影变换。尽管一个或多个牌照可以从图像帧中的不同视图捕获,但是图像帧中所有牌照的对齐(例如,牌照中关键点的对齐)可以彼此相关或基本相似。图像处理单元370可以基于对齐将从不同视图捕获的每个牌照图像变换成共同的预定视图(例如,前视图),例如,将牌照的左上区域中的关键点对齐。
例如,图像处理单元370可以将表示牌照的图像重新缩放为不同大小的像素,例如,从20x20像素缩放到500x500像素。作为另一示例,图像处理单元370可以将图像平移一个或多个像素或将图像绕轴旋转一定角度,例如,将图像的所有像素沿水平方向平移10个像素并将所有像素绕垂直于图像中心像素的轴顺时针旋转30度。
牌照处理引擎395还可以包括类型确定单元375,配置为基于聚合数据360确定被识别牌照被预测为多行类型牌照还是单行类型牌照。
响应于确定被识别牌照是多行类型牌照(例如,双行类型牌照),牌照处理引擎395可以使用图像处理单元370处理表示牌照的图像以生成牌照的单行表示385并提供单行表示385作为系统100进行字符识别的表示数据390。
当输入数据包括用于不同类型的需要识别的牌照时,生成双行类型或多行类型牌照的单行表示可以提高识别与牌照相关联的字符的准确性。生成双行牌照的单行表示的细节将结合图4进行描述。
响应于确定被识别牌照是单行类型牌照,牌照处理引擎395可以提供变换数据380作为表示数据390,以供系统100执行额外操作。
图4示出了双行类型牌照405的示例的单行表示490。
如图4所示,由变换数据380表示的双行类型牌照405可以包括宽度410和高度413。
牌照处理引擎395可以通过确定双行牌照的上部450和下部460处理双行类型牌照405。牌照处理引擎395还可以分别确定上部和下部对应的上部高度415和下部高度425。
一般地,牌照处理引擎395可以基于被识别的关键点信息确定不同的区域。如前所述,系统100可以基于第一组关键点确定牌照的第一区域(例如,上部450),并基于第二组关键点确定牌照的第二区域(例如,下部460)。系统可以根据第一组关键点和第二组关键点中重叠的关键点将表示双行牌照的图像裁剪成第一区域和第二区域。
牌照处理引擎395可以从双行类型牌照405裁剪出上部和下部,并执行图像处理技术以变换上部和下部。例如,如图4所示,牌照处理引擎395可以将下部460变换为修正下部460b,并且可以将上部450变换为修正上部450b。在一些实施方式中,牌照处理引擎395可以在转换470或480期间分别改变上部和下部的高度或宽度中的至少一个。
例如,修正下部460b具有与下部高度425不同的修正高度435,以及与宽度410不同的修正下部宽度430。作为另一示例,修正上部450b具有与修正下部460b基本对齐的修正高度435,以及与宽度410不同的修正上部宽度420。
一般地,牌照处理引擎395不必在变换期间修改上部和下部的所有宽度和高度,只要至少修改后的上部和下部的高度可以基本相同以用于对齐。例如,牌照处理引擎395可以保持下部不变,仅将上部的上部高度修改为与下部高度相同。
牌照处理引擎395可以将修改后的上部与修改后的下部连接起来,以生成如图4所示的单行表示490。
图5A示出了一示例的牌照识别引擎505,配置为处理表示数据510以生成与被识别牌照相对应的输出数据560。例如,图5A的牌照识别引擎505可以类似于或相同于图1的牌照识别引擎160。
如图5A所示,牌照识别引擎505可以接收表示数据510作为输入。表示数据510可以是,例如,图3B所示的表示数据390或图1所示的表示数据150。
第二机器学习模型520可以是基于时间网络的时序类分类(Connetionist-Temporal classification,CTC)方法(例如,CTC分数或CTC损失函数)的任何合适的机器学习模型。CTC方法是隐马尔可夫模型的替代方法,用于构建诸如长短期记忆(Long ShortTerm Memory,LSTM)网络的循环神经网络模型。CTC分数或CTC损失函数独立于底层神经网络结构,可应用于不同的机器学习模型以处理文本。在一些实施方式中,第二机器学习模型包括配置为识别牌照字符序列的神经网络模型。
第二机器学习模型520可以使用与上述类似的端到端训练技术,通过处理具有来自已知的多个输入图像或视频的字符序列的训练样本进行训练。第二机器学习模型520可以在最小化CTC损失函数时更新模型参数。例如,当第二机器学习模型520为神经网络模型时,可以在反向传播过程中更新网络参数。
经训练的第二机器学习模型520可以处理输入图像(例如,表示数据510)并通过对输入图像中的字符进行编码来生成第二模型输出525。第二机器学习模型可以对表示字符序列的输入图像进行编码,并生成包含重复字符的字符序列。第二机器学习模型520可以使用本说明书中表示为下划线符号“_”的空格符号来区分冗余字符和非冗余字符。例如,将序列中两边都与空格符号相邻的字符确定为非冗余字符。作为另一示例,确定两个相同且连续定位的字符具有至少一个冗余字符。
可选地,第二机器学习模型520可以在模型输出中确定预测的“空”字符的位置,并使用空格符号“_”来表示“空”字符。本说明书中的术语“空”字符表示在输出序列的特定位置没有任何“字符”的情况,例如,该位置对应于与牌照相关联的文本中的“空格”。
解码模型输出中的重复字符很有用,因为单一字符可以跨越输入图像中表示的序列的多个水平位置,而其他一些技术可能会预测该单一字符的多个重复项的输出,并且不能正确区分对真实字符和重复字符的预测。例如,当输入中显示的实际单词是“too”时,某些技术可能会错误地将“too”的第二“o”确定为冗余,并预测为单词“to”。
解码器530可以通过确定预测字符序列中的重复字符和空格并从第二模型输出525中去除重复字符和空格来解码第二模型输出525,以生成对应于被识别牌照的字符序列,即输出数据560。解码过程的细节将结合图5B进行描述。
图5B示出了使用图5A所示的解码器530生成输出数据560的示例过程599。为方便起见,示例过程599被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,当适当编程时,图5A的牌照识别引擎505、图1的牌照识别引擎160或图1的系统100可以执行过程599。
如图5B所示,第二机器学习模型520可以使用CTC编码技术生成包括字符序列的示例的第二模型输出570a或570b。每个第二模型输出570a或570B可以包括预先确定的长度585,例如,第二模型输出525中包括的字符序列的位置个数。长度可以是5、10、20和50,这取决于特定识别要求。该长度可以在训练第二机器学习模型520之前或训练时预设。因为第二机器学习模型520使用空格解码冗余字符和“空”字符,所以第二模型输出570a或507b可以包括被识别的小于或等于预先确定的长度585的各种大小的字符序列。
每个预测序列(即,用于处理相应输入的第二模型输出570a、570b)可以包括多个位置590a-z或595a-z,每个位置可以表示与被识别牌照相关联的预测字符或空格。例如,位置590c-k表示“AA_B_1_11”的序列,位置595c-k表示“A__BB__11”的序列。序列570a和570b可以在开头或结尾包含一个或多个空格或在开头和结尾同时包含。
解码器530可以从第二模型输出(例如,序列570a和570b)中确定一个或多个空格和冗余字符。在一些实施方式中,解码器530可以确定两个或更多个被识别的字符是重复的,如果它们是相同的字符并且彼此邻接而没有空格。例如,解码器530可以确定序列570a的位置590c和590d中的两个“A”中的一个是冗余的,并且位置590j和590k中的两个“1”中的一个是冗余的,因为这两个“A和两个“1”彼此相邻,中间没有一个或多个空格。类似地,解码器530可以确定序列570b的位置595f和595g中的两个“B”中的一个是冗余的。因此,解码器530可移除空格及冗余字符,并生成第二模型输出570a的输出数据580a为“AB11”,以及生成第二模型输出570b的输出数据580b为“AB1”。应当理解,解码器530可以在与图5B所示的序列570a和570b不同的配置中处理字符序列。
图6是生成与从输入数据识别的对象相对应的输出数据的示例过程600的流程图。为方便起见,示例过程600被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,当适当编程时,图1的系统100可以执行过程600。
系统可以接收包括一个或多个对象的输入数据610。如前所述,该系统可以包括被训练为处理输入数据的第一机器学习模型。输入数据可以包括由一个或多个图像传感器采集的一个或多个图像或视频。输入数据可以捕获具有一个或多个对象的一个或多个场景,每个对象至少与文本和特定类型相关联。在一些实施方式中,一个或多个对象可以包括一个或多个车辆牌照。
系统可以处理输入数据以生成第一模型输出620。更具体地,第一机器学习模型可以通过处理包括一个或多个对象的输入图像或视频来生成第一模型输出。第一模型输出可以包括至少识别输入数据中特定对象的存在的数据。在一些实现方式中,第一模型输出还可以包括表示从原始输入图像帧中识别出的对象的裁剪图像。
在第一模型输出指示输入图像中的特定对象的情况下,第一机器学习模型还可以生成与第一模型输出相关联的预测,该第一模型输出指定了被识别对象的特征。特征可以包括以下内容中的至少一个:对象中检测到的背景颜色、与被识别的对象相关联的关键点信息、或与对象的预测相关联的置信水平。
系统可以根据特征确定特定对象的类型630。更具体地,系统可以配置为至少基于关键点信息确定识别对象的类型。类型可以包括单行类型和多行类型。被识别对象可以是具有单行文本的单行类型或具有多行文本的多行类型。
系统可以生成多对关键点,并计算多对关键点中每一对的距离。系统可以将距离与预定距离阈值进行比较。基于比较结果,系统可以确定被识别的对象是单行类型还是双行类型。假设计算出的距离满足(例如,大于或等于)预定距离阈值。在这种情况下,系统可以确定对应的对象是双行类型;否则,对应的对象是单行类型。
系统可以生成特定对象的单行表示作为基于指定特定对象的数据的表示数据640。该系统可以包括图像处理单元,该图像处理单元配置为对表示相应对象的裁剪图像执行单应性变换,并生成表示不同视角(例如,正视图)的裁剪图像的经变换的数据。如前所述,系统可以判断对应的对象是否为双行牌照。响应于确定对应的对象是双行类型,图像处理单元还可以处理经变换的数据以生成对象的单行表示,并提供单行表示作为表示数据以用于进一步的操作。响应于确定对应的对象为单行类型,系统可以直接提供经变换的数据作为单行类型对象的表示数据。应当理解,当系统应用相同的机器学习模型来识别对应于不同类型对象的字符时,为对应的多行类型(例如,双行类型)对象生成单行表示可以提高准确性。
系统可以处理表示数据以生成第二模型输出650。更具体地,该系统可以包括与如前所述的第一机器学习模型端到端训练的第二机器学习模型。第二机器学习模型配置为处理表示数据(例如,双行类型对象的单行表示)并生成第二模型输出。第二模型输出可以包括初始预测字符序列,这些字符对应于与特定对象相关联的文本。值得注意的是,第二种机器学习模型基于CTC分数或CTC损失函数,并且可以对输入表示数据进行编码以识别空格或冗余字符。因此,第二模型输出可以有一个或多个空格或冗余字符在预测字符序列中。
系统可以确定在第二模型输出中是否存在一个或多个空格或者一个或多个冗余660。如前所述,系统可以确定两个连续放置的相同字符中的至少一个是重复出现的,并且如果字符的每一侧都与序列中的空格符号相邻,则可以确定该字符是非冗余的。系统可以使用一个或多个计数器确定空格或冗余的总数。例如,在20个位置的固定长度第二模型输出中,系统可以确定5个空格和10个冗余字符。
响应于确定在第二模型输出中存在一个或多个空格或一个或多个冗余,系统可以从第二模型输出中去除一个或多个空格或一个或多个冗余以生成对应于与特定对象相关联的文本的预测字符序列670。如前所述,生成的没有空格和重复出现的字符序列是系统生成的输出数据。
说明书中的术语“第一机器学习模型”和术语“第二机器学习模型”可以是适用于本说明书中描述的任务的神经网络模型。根据任务的不同,可以配置神经网络,即通过训练,接收任何类型的数字数据输入,并根据输入生成任何类型的分数、分类或回归输出。
在一些情况下,神经网络是配置为执行图像处理任务的神经网络,即,接收输入图像并处理输入图像以生成输入图像的网络输出。在本说明书中,处理输入图像是指使用神经网络处理图像的像素的强度值。例如,任务可能是图像分类,神经网络为给定的图像生成的输出可能是一组对象类别中每个对象的分数,每个分数表示图像包含属于该类别的对象的图像的估计可能性。作为另一示例,任务可以是图像嵌入生成,神经网络生成的输出可以是输入图像的数字嵌入。作为又一示例,任务可以是对象检测,并且神经网络生成的输出可以识别输入图像中描绘特定类型对象的位置。作为另一示例,任务可以是图像分割,神经网络生成的输出可以将输入图像的每个像素分配给一组类别中的一个类别。
作为另一示例,如果神经网络的输入是互联网资源(例如网页)、文档或文档的一部分,或者从互联网资源、文档或文档的一部分中提取的特征,则任务可以是对资源或文档进行分类,即神经网络为给定的互联网资源、文档或文档的一部分生成的输出可能是一组主题中每个主题的分数,每个分数表示互联网资源、文档或文档部分与主题有关的估计可能性。
作为另一示例,如果神经网络的输入是特定广告的印象上下文(impressioncontext)的特征,则神经网络生成的输出可以是表示特定广告将被点击的估计可能性的分数。
作为另一示例,如果神经网络的输入是用户个性化推荐的特征,例如,表征推荐上下文(context)的特征,例如,表征用户先前采取的动作的特征,则神经网络生成的输出可以是一组内容项中的每一个的分数,每个分数表示用户将对被推荐的内容项做出积极响应的估计可能性。
作为另一示例,如果神经网络的输入是一种语言的文本序列,则神经网络生成的输出可能是另一种语言的一组文本片段中的每一个的分数,每个分数表示另一种语言的文本片段是将输入文本正确翻译成另一种语言的估计可能性。
作为另一示例,任务可以是音频处理任务。例如,如果神经网络的输入是表示口头表达的序列,则神经网络生成的输出可能是一组文本片段中的每一个的分数,每个分数表示该文本片段是话语的正确抄本的估计可能性。
作为另一示例,该任务可以是关键词发现任务,如果神经网络的输入是表示口头话语的序列,神经网络生成的输出可以是指示特定的单词或短语(“热词”)是否在话语中被提及。作为另一示例,如果神经网络的输入是表示口头话语的序列,则神经网络生成的输出可以识别出该话语所使用的自然语言。
作为另一示例,任务可以是自然语言处理或理解任务,例如蕴含任务(entailmenttask)、释义任务、文本相似性任务、情感任务、句子完成任务、语法任务等,需要对某种自然语言的文本序列进行操作。
作为另一示例,任务可以是文本到语音任务,其中输入是自然语言文本或自然语言文本的特征,网络输出是频谱图或其他以自然语言朗读的文本定义音频的数据。
作为另一示例,任务可以是健康预测任务,其中输入是患者的电子健康记录数据,输出是与患者未来健康相关的预测,例如,应当给患者开处方的预测治疗、患者发生不良健康事件的可能性或患者的预测诊断。
作为另一示例,任务可以是代理控制任务,其中输入是表征环境状态的观察,输出定义代理响应观察要执行的动作。例如,代理可以是真实世界或模拟的机器人、工业设施的控制系统或控制不同类型代理的控制系统。
作为另一示例,任务可以是基因组学任务,其中输入是表示DNA序列片段或其他分子序列的序列,输出是用于下游任务的片段嵌入,例如,通过对DNA序列片段的数据集或下游任务的输出使用无监督学习技术。下游任务的示例包括启动子位点预测、甲基化分析、预测非编码变体的功能效应等。
在某些情况下,机器学习任务是多个单独机器学习任务的组合,即,神经网络配置为执行多个不同的单独机器学习任务,例如,上述机器学习任务中的两个或更多个。例如,神经网络可以被配置为执行多个单独的自然语言理解任务。可选地,网络输入可以包括要在网络输入上执行的单独的自然语言理解任务的标识符。作为另一示例,神经网络可以被配置为执行多个单独的图像处理或计算机视觉任务,即,通过处理单个输入图像来为多个不同的单独图像处理任务并行生成输出。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,例如编码在有形非暂时性存储介质上的一个或多个计算机程序指令模块,用于执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备,或者它们中的一种或多种的组合。备选地或另外地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息以用于传输到合适的接收器设备以由数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,包括用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或多个计算机。该装置还可以是或还包括专用逻辑电路,例如现场可编程门阵列(Field Programmable Gate Array,FPGA)或专用集成电路(Application-specific Integrated Circuit,ASIC)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也可以称为或描述为程序、软件、软件应用程序、应用程序、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或声明或过程语言,它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或其他适合在计算环境中使用的单元。程序可以但不一定对应于文件系统中的文件。程序可以存储在包含其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,专用于问题程序或多个协调文件的单个文件,例如,存储一个或多个模块、子程序或部分代码的文件。计算机程序可以部署在一台计算机上执行,也可以部署在位于一个站点或分布在多个站点并通过数据通信网络互连的多台计算机上执行。
对于由一台或多台计算机组成的系统,配置为执行特定操作或动作是指系统已安装在其上的软件、固件、硬件或它们的组合,在操作中导致系统执行操作或行动。对于要被配置为执行特定操作或动作的一个或多个计算机程序意味着该一个或多个程序包括当由数据处理设备执行时使该设备执行操作或动作的指令。
如本说明书中所用,“引擎”或“软件引擎”是指软件实现的输入/输出系统,它提供与输入不同的输出。引擎可以是经过编码的功能块,例如库、平台、软件开发工具包(Software Development Kit,“SDK”)或对象。每个引擎都可以在任何适当类型的计算设备上实现,例如服务器、移动电话、平板电脑、笔记本电脑、音乐播放器、电子书阅读器、膝上型或台式电脑、个人数字助理(Personal Digital Assistant,PDA)、智能手机或其他固定或便携式设备,包括一个或多个处理器和计算机可读介质。另外,引擎中的两个或更多个可以在相同的计算设备上或在不同的计算设备上实现。
本说明书中描述的过程和逻辑流程可以由一台或多台可编程计算机执行,该计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流程也可以由专用逻辑电路执行,例如FPGA或ASIC,或由专用逻辑电路和一个或多个编程计算机的组合执行。
适合执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他类型的中央处理器。一般地,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本要素是用于实现或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或合并到专用逻辑电路中。一般地,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘)接收数据或向其传输数据或两者兼而有之。然而,计算机不需要有这样的设备。此外,计算机可以嵌入到其他设备中,例如移动电话、个人数字助理、移动音频或视频播放器、游戏机、全球定位系统(Global PositioningSystem,GPS)接收器或便携式存储设备,例如,通用串行总线(Universal Serial Bus,USB)闪存驱动器,仅举几例。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,例如包括半导体存储设备,例如可擦可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示设备的计算机上实现,例如,阴极射线管(Cathode Ray Tube,CRT)或液晶显示器(Liquid CrystalDisplay,LCD)监视器,用于向用户显示信息,并且键盘和定点设备,例如鼠标、轨迹球或存在敏感显示器或用户可以通过其向计算机提供输入的其他表面。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从其接收文档来与用户交互;例如,通过将网页发送到用户设备上的网络浏览器以响应从网络浏览器收到的请求。此外,计算机可以通过向个人设备(例如智能手机)发送文本消息或其他形式的消息、运行消息传递应用程序并接收来自用户的响应消息来与用户交互。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如作为数据服务器),或者包括中间件组件(例如应用服务器),或者包括前端组件(例如,具有图形用户界面的客户端计算机、网络浏览器或用户可以通过其与本说明书中描述的主题的实现交互的应用程序),或一个或多个此类后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或媒介的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(Local Area Network,LAN)和广域网(Wide Area Network,WAN),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是由于计算机程序在各自的计算机上运行并且彼此具有客户端-服务器关系而产生的。在一些实施例中,服务器向用户设备传输数据,例如HTML页面,例如为了向与设备交互的用户显示数据和接收用户输入,该设备充当客户端。可以在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
除上述实施例外,以下实施例还具有创新性:
实施例1是一种方法,包括:接收包括一个或多个对象的输入数据,其中输入数据包括一帧或多帧图像,其中一个或多个对象在一帧或多帧图像中捕获,并且每个对象是至少与文本和特定类型相关联;通过使用第一机器学习模型处理一帧或多帧图像以生成第一模型输出,该输出包括识别一个或多个对象中特定对象的存在并指定该特定对象的特征的数据,其中该特征至少包括与特定对象相关联的多个关键点;基于特征确定特定对象的类型,类型包括单行类型和多行类型;基于指定特定对象的数据生成特定对象的单行表示作为表示数据;以及通过使用第二机器学习模型处理表示数据以生成第二模型输出,该第二模型输出包括对应于与特定对象相关联的文本的初始预测字符序列;其中第一机器学习模型和第二机器学习模型是基于包括对象集合的相同训练数据集同时训练而成的。
实施例2是实施例1所述的方法,其中,特定对象的特征还包括颜色或特定对象在输入数据中存在的置信水平中的至少一个,其中颜色包括与特定对象相关联的背景颜色或文本颜色中的至少一个。
实施例3是实施例1或实施例2所述的方法,其中特定对象对应牌照,确定特定对象的类型,包括:确定与车辆牌照相关联的多个关键点中的一对或多对关键点;计算多个关键点中的一对或多对关键点之间每对各自的距离;确定每对各自的距离中的至少一个是否超过距离阈值;响应于确定各自的距离中的至少一个超过距离阈值,确定车辆牌照为多行类型;响应于确定各自的距离未超过距离阈值,确定车辆牌照为单行类型。
实施例4是实施例3所述的方法,其中,生成特定对象的单行表示作为表示数据,包括:响应于确定车辆牌照为多行类型,通过修改多行类型牌照的数据来生成多行类型车辆牌照的单行表示作为表示数据;响应于确定车辆牌照为单行类型,将指定单行类型牌照的数据作为表示数据提供给第二机器学习模型。
实施例5是实施例3或4中任一项所述的方法,其中生成多行类型牌照的单行表示作为表示数据,包括:通过对多行类型车辆牌照图像进行校正来修改代表多行类型车辆牌照的数据;识别多行类型牌照的校正图像的第一部分和第二部分,其中第一部分与第二部分不同;调整第一部分以至少匹配第二部分的高度;以及将调整后的第一部分和第二部分对齐成单行,形成多行类型牌照的单行表示。
实施例6是实施例1至5中任一项所述的方法,其中生成第二模型输出包括:对于初始预测字符序列的每个位置,生成每个位置的字符的相应初始预测字符,其中每个初始预测字符包括空格、数字、字母或符号字符中的至少一个,其中每个初始预测都与初始预测字符在该位置的相应可能性相关联,并且各自的相应可能性形成一个概率向量;其中,初始预测字符序列具有固定长度,概率向量也具有相同的固定长度。
实施例7是实施例1至6中任一项所述的方法,还包括:确定初始预测字符序列中是否存在一个或多个空格或一个或多个冗余;以及响应于确定初始预测字符序列中存在一个或多个空格或一个或多个冗余,从初始预测字符序列中去除一个或多个空格或一个或多个冗余以生成对应于与特定对象相关联的文本的预测字符序列。
实施例8是一种系统,包括一个或多个计算机和一个或多个存储指令的存储设备,当指令由一个或多个计算机执行指令时,使该一个或多个计算机执行相应的操作,该操作包括任一实施例1至7的方法。
实施例9是一个或多个计算机可读存储介质,用于存储指令,当由一个或多个计算机执行时,使该一个或多个计算机执行各自的操作,各自的操作包括实施例1至7中任一个的方法。
虽然本说明书包含许多具体的实施细节,但这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是作为对特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管特征可能在上面被描述为在某些组合中起作用,甚至一开始就这样要求保护,但在某些情况下,可以从要求保护的组合中删除一个或多个特征,并且要求保护的组合可以是子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描述操作,但这不应理解为要求以所示的特定顺序或按先后顺序执行此类操作,或者执行所有图示的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。另外,上述实施例中各个系统模块和组件的分离不应理解为所有实施例都需要这样分离,应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中,或者打包成多个软件产品。
主题的特定实施例已经被描述。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或按先后顺序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。
Claims (15)
1.一种方法,其特征在于,包括:
接收包括一个或多个对象的输入数据,其中所述输入数据包括一帧或多帧图像,其中所述一个或多个对象在所述一帧或多帧图像中捕获并且每个对象至少与文本和特定类型相关联;
通过使用第一机器学习模型来处理所述一帧或多帧图像,以生成第一模型输出,所述第一模型输出包括识别所述一个或多个对象中的特定对象的存在并指定所述特定对象的特征的数据,其中所述特征至少包括与所述特定对象相关联的多个关键点;
基于所述特征确定所述特定对象的类型,其中所述类型包括单行类型和多行类型;
基于指定所述特定对象的数据生成所述特定对象的单行表示作为表示数据;以及
通过使用第二机器学习模型来处理所述表示数据以生成第二模型输出,所述第二模型输出包括对应于与所述特定对象相关联的文本的初始预测字符序列;
其中所述第一机器学习模型和所述第二机器学习模型是基于包括对象集合的相同训练数据集被同时训练而成的。
2.根据权利要求1所述的方法,其特征在于,其中所述特定对象的特征还包括颜色或所述特定对象在所述输入数据中存在的置信水平中的至少一个,其中所述颜色包括与所述特定对象相关联的背景颜色或文本颜色中的至少一个。
3.根据权利要求1所述的方法,其特征在于,其中所述特定对象与车辆牌照相对应,所述基于所述特征确定所述特定对象的类型,包括:
确定与所述车辆牌照相关联的多个关键点中的一对或多对关键点;
计算所述多个关键点中的一对或多对关键点之间每对各自的距离;
确定所述各自的距离中的至少一个是否超过距离阈值;
响应于确定所述各自的距离中的至少一个超过所述距离阈值,确定所述车辆牌照为多行类型;以及
响应于确定所述各自的距离均未超过所述阈值距离值,确定所述车辆牌照为单行类型。
4.根据权利要求3所述的方法,其特征在于,其中所述基于指定所述特定对象的数据生成所述特定对象的单行表示作为表示数据包括:
响应于所述确定所述车辆牌照为多行类型,通过修改指定所述多行类型车辆牌照的数据来生成所述多行类型车辆牌照的单行表示作为所述表示数据;以及
响应于所述确定所述车辆牌照为单行类型,将指定所述单行类型车辆牌照的数据作为所述表示数据提供给所述第二机器学习模型。
5.根据权利要求4所述的方法,其特征在于,其中所述通过修改指定所述多行类型车辆牌照的数据来生成所述多行类型车辆牌照的单行表示作为所述表示数据包括:
通过对所述多行类型车辆牌照图像进行校正来修改表示所述多行类型车辆牌照的数据;
识别所述多行类型车辆牌照的校正图像的第一部分和第二部分,其中所述第一部分与所述第二部分不同;
调整所述第一部分以至少匹配所述第二部分的高度;以及
将调整后的第一部分和第二部分对齐成单行,以形成所述多行类型车辆牌照的单行表示。
6.根据权利要求1所述的方法,其特征在于,其中所述通过使用第二机器学习模型来处理所述表示数据以生成所述第二模型输出包括:
对于所述初始预测字符序列的每个位置,生成所述每个位置的相应初始预测字符,其中每个所述初始预测字符包括空格、数字、字母或符号字符中的至少一个,其中每个所述初始预测字符都与所述初始预测字符在所述位置的相应可能性相关联,并且其中所述相应可能性形成概率向量;其中所述初始预测字符序列具有固定长度,并且所述概率向量具有相同的固定长度。
7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括:
确定所述初始预测字符序列中是否存在一个或多个空格或一个或多个冗余;以及
响应于确定所述初始预测字符序列中存在一个或多个空格或一个或多个冗余,从所述初始预测字符序列中去除所述一个或多个空格或所述一个或多个冗余以生成对应于与所述特定对象相关联的文本的预测字符序列。
8.一种系统,其特征在于,包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令由所述一个或多个计算机执行时,使得所述一个或多个计算机执行相应的操作,所述操作包括:
接收包括一个或多个对象的输入数据,其中所述输入数据包括一帧或多帧图像,其中所述一个或多个对象在所述一帧或多帧图像中捕获并且每个对象至少与文本和特定类型相关联;
通过使用第一机器学习模型来处理所述一帧或多帧图像,以生成第一模型输出,所述第一模型输出包括识别所述一个或多个对象中的特定对象的存在并指定所述特定对象的特征的数据,其中所述特征包括至少多个与所述特定对象相关联的关键点;
基于所述特征确定所述特定对象的类型,其中所述类型包括单行类型和多行类型;
基于指定所述特定对象的数据生成所述特定对象的单行表示作为表示数据;以及
通过使用第二机器学习模型来处理所述表示数据以生成第二模型输出,所述第二模型输出包括对应于与所述特定对象相关联的文本的初始预测字符序列;
其中所述第一机器学习模型和所述第二机器学习模型是基于包括对象集合的相同训练数据集被同时训练而成的。
9.根据权利要求8所述的系统,其特征在于,其中所述特定对象的特征还包括颜色或所述特定对象在所述输入数据中存在的置信水平中的至少一个,其中所述颜色包括与所述特定对象相关联的背景颜色或文本颜色中的至少一个。
10.根据权利要求8所述的系统,其特征在于,其中所述特定对象与车辆牌照相对应,所述基于所述特征确定特定对象的类型,包括:
确定与所述车辆牌照相关联的多个关键点中的一对或多对关键点;
计算所述多个关键点中的一对或多对关键点之间每对各自的距离;
确定所述各自的距离中的至少一个是否超过距离阈值;
响应于确定所述各自的距离中的至少一个超过所述距离阈值,确定所述车辆牌照为多行类型;以及
响应于确定所述各自的距离均未超过所述阈值距离值,确定所述车辆牌照为单行类型。
11.根据权利要求10所述的系统,其特征在于,其中所述基于指定所述特定对象的数据生成所述特定对象的单行表示作为所述表示数据包括:
响应于所述确定所述车辆牌照为多行类型,通过修改指定所述多行类型车辆牌照的数据来生成所述多行类型车辆牌照的单行表示作为所述表示数据;以及
响应于所述确定所述车辆牌照为单行类型,将指定所述单行类型车辆牌照的数据作为所述表示数据提供给所述第二机器学习模型。
12.根据权利要求11所述的系统,其特征在于,其中所述通过修改指定所述多行类型车辆牌照的数据来生成所述多行类型车辆牌照的单行表示作为所述表示数据包括:
通过对所述多行类型车辆牌照图像进行校正来修改代表所述多行类型车辆牌照的数据;
识别所述多行类型车辆牌照的校正图像的第一部分和第二部分,其中所述第一部分与所述第二部分不同;
调整所述第一部分以至少匹配所述第二部分的高度;以及
将调整后的第一部分和第二部分对齐成单行,以形成所述多行车辆牌照的单行表示。
13.根据权利要求8所述的系统,其特征在于,其中所述通过使用第二机器学习模型来处理所述表示数据以生成所述第二模型输出包括:
对于所述初始预测字符序列的每个位置,生成所述位置的相应初始预测字符,其中每个初始预测字符包括空格、数字、字母或符号字符中的至少一个,其中每个所述初始预测字符都与所述初始预测字符在所述位置的相应可能性相关联,并且其中所述相应可能性形成概率向量;其中所述初始预测字符序列具有固定长度,并且其中所述概率向量具有相同的固定长度。
14.根据权利要求8至13中的任一项所述的系统,其特征在于,所述操作还包括:
确定所述初始预测字符序列中是否存在一个或多个空格或一个或多个冗余;以及
响应于确定所述初始预测字符序列中存在一个或多个空格或一个或多个冗余,从所述初始预测字符序列中去除所述一个或多个空格或所述一个或多个冗余以生成对应于与所述特定对象相关联的文本的预测字符序列。
15.一个或多个计算机可读存储介质,其特征在于,用于存储指令,当所述指令由一个或多个计算机执行时,使得所述一个或多个计算机执行上述权利要求1至7任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/586,724 US20230237816A1 (en) | 2022-01-27 | 2022-01-27 | Adaptive text recognition |
US17/586,724 | 2022-01-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116052189A true CN116052189A (zh) | 2023-05-02 |
Family
ID=86119866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310059211.1A Pending CN116052189A (zh) | 2022-01-27 | 2023-01-18 | 一种文本识别方法、系统和存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230237816A1 (zh) |
CN (1) | CN116052189A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117037136B (zh) * | 2023-10-10 | 2024-02-23 | 中国科学技术大学 | 场景文本识别方法、系统、设备及存储介质 |
-
2022
- 2022-01-27 US US17/586,724 patent/US20230237816A1/en active Pending
-
2023
- 2023-01-18 CN CN202310059211.1A patent/CN116052189A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230237816A1 (en) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bevandić et al. | Discriminative out-of-distribution detection for semantic segmentation | |
US11003941B2 (en) | Character identification method and device | |
CN113688652B (zh) | 一种异常驾驶行为的处理方法和装置 | |
US20190095730A1 (en) | End-To-End Lightweight Method And Apparatus For License Plate Recognition | |
Satzoda et al. | Multipart vehicle detection using symmetry-derived analysis and active learning | |
US9633436B2 (en) | Systems and methods for multi-dimensional object detection | |
Alam et al. | Indian traffic sign detection and recognition | |
WO2020048265A1 (zh) | 多级目标分类及交通标志检测方法和装置、设备、介质 | |
CN112200081A (zh) | 异常行为识别方法、装置、电子设备及存储介质 | |
CN110675637A (zh) | 车辆违法视频的处理方法、装置、计算机设备及存储介质 | |
CN112016605A (zh) | 一种基于边界框角点对齐和边界匹配的目标检测方法 | |
CN116311214B (zh) | 车牌识别方法和装置 | |
Parvin et al. | Vehicle number plate detection and recognition techniques: a review | |
Isa et al. | Real-time traffic sign detection and recognition using Raspberry Pi | |
US11420623B2 (en) | Systems for determining object importance in on-road driving scenarios and methods thereof | |
Zhang et al. | Appearance-based loop closure detection via locality-driven accurate motion field learning | |
CN116964588A (zh) | 一种目标检测方法、目标检测模型训练方法及装置 | |
CN116052189A (zh) | 一种文本识别方法、系统和存储介质 | |
KR102206604B1 (ko) | 글자 인식 장치 및 이에 의한 글자 인식 방법 | |
CN112784494B (zh) | 假阳性识别模型的训练方法、目标识别方法及装置 | |
CN112597996B (zh) | 基于任务驱动的自然场景中交通标志显著性检测方法 | |
KR20210010602A (ko) | 글자 인식 장치 및 이에 의한 글자 인식 방법 | |
KR102026280B1 (ko) | 딥 러닝을 이용한 씬 텍스트 검출 방법 및 시스템 | |
CN115953744A (zh) | 一种基于深度学习的车辆识别追踪方法 | |
Sanjeewani et al. | A novel evolving classifier with a false alarm class for speed limit sign recognition |
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 |