CN111178200B - 一种仪表盘指示灯的识别方法及计算设备 - Google Patents
一种仪表盘指示灯的识别方法及计算设备 Download PDFInfo
- Publication number
- CN111178200B CN111178200B CN201911322879.0A CN201911322879A CN111178200B CN 111178200 B CN111178200 B CN 111178200B CN 201911322879 A CN201911322879 A CN 201911322879A CN 111178200 B CN111178200 B CN 111178200B
- Authority
- CN
- China
- Prior art keywords
- image
- instrument panel
- indicator
- indicator lamp
- category
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/02—Recognising information on displays, dials, clocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种仪表盘指示灯的识别方法,在计算设备中执行,适于生成指示灯识别模型,该指示灯识别模型适于输出仪表盘图像中指示灯的位置信息和类别信息,该方法包括步骤:获取多个仪表盘图像,每个仪表盘图像中包括至少一个指示灯;标注仪表盘图像中各指示灯的位置和所属类别;将标注了指示灯的位置和所属类别的仪表盘图像作为训练图像,来训练所述指示灯识别模型。本发明一并公开了相应的计算设备。本发明的仪表盘指示灯的识别方法能够准确识别仪表盘图像中指示灯的位置信息和类别信息,便于用户理解指示灯的含义,以及针对该指示灯做出合适的判断和驾驶行为。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种车辆仪表盘指示灯的识别方法及计算设备。
背景技术
仪表盘是车辆与驾驶员的主要交互界面。仪表盘上的指示灯,例如安全带未系指示灯、车门未关指示灯、刹车故障指示灯等,为驾驶员提供了车辆的重要信息。随着车辆功能的不断完善,指示灯的数量越来越多,且某些指示灯的图形和类别具有相似性,使得驾驶员难以理解指示灯的含义,无法针对指示灯及时做出判断。
一种现有的指示灯识别方法是,首先采用手机等终端设备拍摄车辆仪表盘的图像,根据该图像查询到相应的车型,加载该车型的指示灯库;然后拍摄指示灯的图像,将拍摄到的图像与指示灯库中的指示灯图像一一比对,确定指示灯的类型。该方法需要拍摄两次图像,一次仪表盘,一次指示灯,操作繁琐,实时性不高。此外,该方法的识别准确率依赖于用户拍摄的图像的质量,而用户拍摄的图像大小不一、质量难以保证,可能会出现模糊、倾斜、翻转、曝光过度/不足等问题,造成指示灯的误识别。
因此,需要提供一种能够高效、准确识别车辆仪表盘指示灯的方法。
发明内容
为此,本发明提供一种仪表盘指示灯的识别方法及计算设备,以力图解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种仪表盘指示灯的识别方法,在计算设备中执行,适于生成指示灯识别模型,所述指示灯识别模型适于输出仪表盘图像中指示灯的位置信息和类别信息,所述方法包括步骤:获取多个仪表盘图像,所述仪表盘图像中包括至少一个指示灯;标注仪表盘图像中各指示灯的位置和所属类别;将标注了指示灯的位置和所属类别的仪表盘图像作为训练图像,来训练所述指示灯识别模型,其中,所述指示灯识别模型包括多尺度特征提取模块、区域生成模块、目标检测模块和判定模块,所述多尺度特征提取模块以仪表盘图像为输入,输出所述仪表盘图像的多尺度特征图;所述区域生成模块包括多个区域生成单元,每个所述区域生成单元以所述多尺度特征提取模块所输出的一尺度特征图为输入,输出仪表盘图像中指示灯的候选位置;所述目标检测模块包括多个级联的目标检测单元,第一个目标检测单元以所述区域生成模块输出的多个候选位置为输入,其他目标检测单元以上一个目标检测单元输出的推荐位置为输入,输出仪表盘图像中指示灯的推荐位置和推荐类别;所述判定模块以所述多个目标检测单元输出的推荐位置和推荐类别为输入,输出仪表盘图像中指示灯的位置信息和类别信息。
可选地,在根据本发明的仪表盘指示灯的识别方法中,在所述标注仪表盘图像中各指示灯的位置和所属类别的步骤之前,还包括步骤:对所述多个仪表盘图像进行去重处理。
可选地,在根据本发明的仪表盘指示灯的识别方法中,所述去重处理包括步骤:分别提取所述多个仪表盘图像的特征向量;根据所述特征向量,对所述多个仪表盘图像进行聚类;分别对每一类进行去重处理。
可选地,在根据本发明的仪表盘指示灯的识别方法中,所述分别对每一类进行去重处理的步骤包括:若一类中的两个仪表盘图像的相似度大于第一阈值,则删除所述两个仪表盘图像中的任意一个,其中,所述相似度根据所述特征向量来计算。
可选地,在根据本发明的仪表盘指示灯的识别方法中,所述标注仪表盘图像中各指示灯的位置的步骤包括:在所述仪表盘图像中分别标注各指示灯所在的区域范围;对于每一个指示灯所在的区域范围:识别该区域范围中的连通域;分别计算各连通域的面积,将面积大于第二阈值的连通域作为有效连通域;将各有效连通域的外接矩形作为该指示灯的位置。
可选地,在根据本发明的仪表盘指示灯的识别方法中,在所述标注仪表盘图像中各指示灯的位置和所属类别的步骤之后,还包括步骤:对所述仪表盘图像进行镜像、改变颜色空间、模糊、旋转处理中的至少一种,并记录处理后的各指示灯的位置和所属类别。
可选地,在根据本发明的仪表盘指示灯的识别方法中,在所述标注仪表盘图像中各指示灯的位置和所属类别的步骤之前,还包括步骤:根据图像清晰程度,将仪表盘图像划分为多个识别难度等级,所述识别难度等级包括简单、中等、困难;所述将标注了指示灯的位置和所属类别的仪表盘图像作为训练图像的步骤包括:分别从各识别难度等级中取出多个仪表盘图像作为训练图像,其中,从各识别难度等级中取出的仪表盘图像的数量符合预设比例。
可选地,在根据本发明的仪表盘指示灯的识别方法中,在所述预设比例中,中等识别难度的仪表盘图像的数量大于简单识别难度的仪表盘图像的数量大于困难识别难度的仪表盘图像的数量。
可选地,在根据本发明的仪表盘指示灯的识别方法中,所述多尺度特征提取模块为特征金字塔网络(FPN),所述区域生成模块为区域候选网络(RPN),所述目标检测单元为基于区域的卷积神经网络(R-CNN)。
可选地,在根据本发明的仪表盘指示灯的识别方法中,在训练所述指示灯识别模型的过程中,所述判定模块将最后一个目标检测单元输出的推荐位置和推荐类别作为仪表盘图像中指示灯的位置信息和类别信息。
可选地,在根据本发明的仪表盘指示灯的识别方法中,在所述训练所述指示灯识别模型的步骤之后,还包括下述模型测试步骤:将标注了指示灯的位置和所属类别、且未参与模型训练的仪表盘图像作为测试图像,输入训练好的指示灯识别模型,以便指示灯识别模型输出各测试图像中指示灯的位置信息和类别信息;根据指示灯识别模型输出的位置信息和类别信息,以及各测试图像中指示灯的真实位置和真实类别,来计算所述指示灯识别模型的评价指标值;当所述评价指标值大于预设阈值时,判定所述指示灯识别模型成功生成。
可选地,在根据本发明的仪表盘指示灯的识别方法中,在测试训练好的指示灯识别模型的过程中,所述判定模块适于根据每一个目标检测单元输出的推荐位置和推荐类别,来确定仪表盘图像中指示灯的位置信息和类别信息。
根据本发明的第二个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如上所述的仪表盘指示灯的识别方法。
根据本发明的第三个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的仪表盘指示灯的识别方法。
本发明的仪表盘指示灯识别方法适于生成指示灯识别模型,该模型可以准确识别仪表盘图像中指示灯的位置信息和类别信息,便于用户理解指示灯的含义,以及针对该指示灯做出合适的判断和驾驶行为。
本发明的指示灯识别模型包括多尺度特征提取模块、区域生成模块、目标检测模块和判定模块。多尺度特征提取模块可以提取出仪表盘图像的不同尺度的特征,使得该模型对不同尺寸的指示灯均具有良好的识别效果。目标检测模块包括多个级联的目标检测单元,用于输出指示灯的推荐位置和推荐类别。每个目标检测单元(除第一个目标检测单元之外)可以对上一个目标检测单元输出的推荐位置和推荐类别进行校正,避免了因仪表盘图像质量问题(例如指示灯的尺寸较小、细节模糊等)而造成的误检或漏检情况,提高了指示灯识别的准确率。
此外,在本发明的仪表盘指示灯识别方法中,训练图像、测试图像在原始图像的基础上进行了镜像、改变颜色空间、模糊、旋转等操作,增加了数据集的多样性,从而提高了模型的鲁棒性,使模型能够准确识别出不同场景、不同质量的仪表盘图像中的指示灯。
此外,在本发明的仪表盘指示灯识别方法中,根据图像的清晰程度将仪表盘图像划分为多个识别难度等级,训练图像、测试图像按照预设比例从各识别难度等级中获取,增加了数据集的多样性,提高了模型的泛化能力,使模型能够准确识别出不同场景、不同质量的仪表盘图像中的指示灯。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的指示灯识别***100的示意图;
图2示出了根据本发明一个实施例的模型训练设备200的示意图;
图3示出了根据本发明一个实施例的仪表盘指示灯的识别方法300的流程图;
图4A~4C示出了根据本发明一个实施例的标注仪表盘指示灯位置的过程的示意图;
图5示出了根据本发明一个实施的数据预处理过程的示意图;
图6示出了根据本发明一个实施例的指示灯识别模型的结构图;
图7示出了根据本发明另一个实施例的指示灯识别模型的结构图;
图8示出了根据本发明一个实施例的重叠度(IoU)的计算方式的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的指示灯识别***100的示意图。如图1所示,指示灯识别***100包括应用服务器110、终端设备120和模型训练设备200。应当指出,图1所示的指示灯识别***100仅是示例性的,虽然其中仅示出了一个应用服务器、一个终端设备和一个模型训练设备,但是,在具体的实践情况中,指示灯识别***中可以包括不同数量的应用服务器、终端设备和模型训练设备,本发明对指示灯识别***中所包括的应用服务器、终端设备和模型训练设备的数量不做限制。
终端设备120为位于用户侧的设备,用户可以通过终端设备120中的触控屏、触控笔等输入输出装置,或者与终端设备120相连的体感设备、遥控设备该来与终端设备120进行交互。终端设备120例如可以是手机、平板电脑、智能可穿戴设备、车载智能设备、物联网设备等,但不限于此。
终端设备120中通常安装有多个应用(App),例如资讯应用、拍照应用、购物应用、即时通讯应用等,以向用户提供相应的功能。
在本发明的实施例中,为了实现车辆仪表盘指示灯的智能识别,终端设备120中安装有指示灯识别应用。需要说明的是,指示灯识别应用可以实现为安装于终端设备120中的一个独立的应用,也可以实现为安装于终端设备120的某个应用中的一个功能模块,例如,实现为汽车资讯应用中的一个功能模块,本发明对指示灯识别应用在终端设备120中的存在形式不做限制。
应用服务器110为指示灯识别应用所对应的服务端,其用于向部署于终端设备120中的指示灯识别应用客户端提供方法及数据调用。
模型训练设备200可以是任意计算设备,例如桌面计算机、笔记本计算机、服务器、工作站等,但不限于此。模型训练设备200用于执行本发明的仪表盘指示灯的识别方法300,以训练生成本发明的指示灯识别模型。生成的指示灯识别模型将被部署至应用服务器110,这样,应用服务器110便可以向终端设备120提供指示灯识别服务了。
具体地,在将指示灯识别模型部署至应用服务器110后,用户可以在终端设备120上访问指示灯识别应用,通过该应用中的特定接口来拍摄仪表盘图像,并将拍摄的图像上传至应用服务器110。或者,用户可以采用终端设备120的默认拍照应用来拍摄仪表盘图像,拍摄的仪表盘图像将存储于终端设备120的图库中。随后,启动指示灯识别应用,通过该应用中的特定接口来从终端设备120的图库中选中仪表盘图像,并将其上传至应用服务器110。
应用服务器110接收到终端设备120上传的仪表盘图像,采用训练好的指示灯识别模型来确定该仪表盘图像中的指示灯的位置信息和类别信息(例如可以采用矩形框等形式在仪表盘图像中标注出指示灯的位置,并在矩形框附近标注该指示灯的含义),并将指示灯的位置信息和类别信息返回至终端设备120,从而便于用户明确指示灯的含义,做出合适的判断和驾驶行为。
图2示出了根据本发明一个实施例的模型训练设备200的示意图。需要说明的是,图2所示的模型训练设备200仅为一个示例,在实践中,用于实施本发明的仪表盘指示灯的识别方法的模型训练设备可以是任意型号的设备,其硬件配置情况可以与图2所示的模型训练设备200相同,也可以与图2所示的模型训练设备200不同。实践中用于实施本发明的仪表盘指示灯的识别方法的设备可以对图2所示的模型训练设备200的硬件组件进行增加或删减,本发明对模型训练设备的具体硬件配置情况不做限制。
如图2所示,在基本的配置202中,模型训练设备200典型地包括***存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和***存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,***存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器204读取。***存储器206可以包括操作***220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作***上由一个或多个处理器204利用程序数据224执行指令。操作***220例如可以是Linux、Windows等,其包括用于处理基本***服务以及执行依赖于硬件的任务的程序指令。应用222包括用于实现各种用户期望的功能的程序指令,应用222例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用222被安装到模型训练设备200中时,可以向操作***220添加驱动模块。
在模型训练设备200启动运行时,处理器204会从存储器206中读取操作***220的程序指令并执行。应用222运行在操作***220之上,利用操作***220以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用222时,应用222会加载至存储器206中,处理器204从存储器206中读取并执行应用222的程序指令。
模型训练设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的模型训练设备200中,应用222包括用于执行本发明的仪表盘指示灯的识别方法300的指令,该指令可以指示处理器204执行本发明的仪表盘指示灯的识别方法300,以训练生成指示灯识别模型。生成的指示灯识别模型将被部署至应用服务器110,应用服务器110基于该指示灯识别模型来向终端设备120提供指示灯智能识别服务。
图3示出了根据本发明一个实施例的仪表盘指示灯的识别方法300的流程图。方法300在计算设备(例如前述模型训练设备200)中执行,用于生成指示灯识别模型,指示灯识别模型适于以仪表盘图像为输入,输出仪表盘图像中的指示灯的位置信息和类别信息。如图3所示,方法300始于步骤S310。
在步骤S310中,获取多个仪表盘图像,仪表盘图像中包括至少一个指示灯。
需要说明的是,步骤S310所获取到的仪表盘图像可以是任意仪表盘图像,本发明对步骤S310所获取到的仪表盘图像的来源、尺寸、清晰度等均不作限制。例如,仪表盘图像可以是采用专业相机拍摄的多个不同角度的仪表盘高清图像、用户上传的图像或从互联网上爬取的仪表盘图像等,但不限于此。
步骤S310所获取到的多个仪表盘图像中可能存在重复图像。重复图像指的是两个仪表盘图像完全相同,或者很相似,仅存在细微差别。为了避免在后续步骤S320对重复图像进行标注而浪费计算资源,以及避免步骤S330因采用重复图像训练指示灯识别模型而造成模型泛化能力降低,根据一种实施例,在步骤S310获取到多个仪表盘图像之后,执行步骤S312(步骤S312未在图3中示出),对这多个仪表盘图像进行去重处理。
根据一种实施例,在步骤S312中,可以按照以下方法来对仪表盘图像进行去重处理:首先,分别提取各仪表盘图像的特征向量。特征向量例如可以是图像的HOG(Histogramof Oriented Gradient,方向梯度直方图)特征、哈希特征等,但不限于此。随后,根据特征向量来对多个仪表盘图像进行聚类,得到多个图像类。聚类的结果是粗略地将较为相似的图像放在一起。聚类算法例如可以采用k-means、DBScan、层次聚类算法等,但不限于此。随后,分别对每一类进行去重处理。例如,若一类中的两个仪表盘图像的相似度大于第一阈值,则删除这两个仪表盘图像中的任意一个,其中,仪表盘图像的相似度根据其特征向量来计算。需要说明的是,第一阈值可以由本领域技术人员自行设置,本发明对第一阈值的取值不做限制。
例如,对于步骤S310获取到的n个仪表盘图像,分别提取每个图像的HOG特征,得到n个特征向量f1,f2,…,fn。随后,采用k-means算法将这n个图像聚为m类,记为k1,k2,…,km。随后,对于每一类ki,i=1,2,…,m进行图像去重。以k1类为例,假设k1类中有p个图像,对应的特征向量为f1,f2,…,fp。对于k1类中的特征向量两两计算相似度,例如计算该类中每一对特征向量的欧氏距离,若距离大于第一阈值,则说明对应的两图像为重复图像,删除两图像中的任意一个。以此类推,对每一类进行去重处理,最终得到去重后的多个仪表盘图像。
需要说明的是,由于篇幅所限,此处仅给出一种图像去重的实施方式。本领域技术人员还可以采用其他方法来对仪表盘图像进行去重,例如,通过对比两图像的信息熵、颜色分布情况、哈希值等方法来识别出重复图像,进而删除重复图像。本发明不限制仪表盘图像去重的具体方法,任意去重方法均在本发明的保护范围之内。
根据一种实施例,为了利用有效信息对指示灯识别模型进行训练和测试,在步骤S312对仪表盘图像进行去重处理之后,还包括步骤S314(步骤S314未在图3中示出),对去重后的仪表盘图像进行难度划分。
根据一种实施例,根据图像清晰程度,将仪表盘图像划分为多个识别难度等级,识别难度等级例如包括简单、中等、困难、极难,各识别难度等级对应的图像清晰程度如下:
简单:指示灯轮廓基本清晰、完整,指示灯或有轻微遮挡。例如,有90%以上区域清晰可见。肉眼易辨识。
中等:指示灯部分模糊、部分区域缺失,但轮廓基本完整。指示灯或存在遮挡,例如,70%以上区域基本清晰。肉眼可辨识。
困难:指示灯大部分缺失,轮廓不完整。肉眼可辨识,但需要借助经验。
极难:指示灯严重缺失,或者过度模糊。肉眼难以辨识。
需要说明的是,某些仪表盘图像中可能存在多个指示灯。若仪表盘图像中存在多个指示灯,则以其中最不清晰的指示灯来确定该图像的识别难度等级。由于识别难度等级为极难的图像对于指示灯识别模型的训练和测试无实际意义,因此,将这类图像视为无效数据进行丢弃,不再参与后续的模型训练和测试过程。
另外,需要说明的是,以上仅给出识别难度等级划分的一个示例,本发明的识别难度等级划分方案不限于上述方式。本领域技术人员可以根据实际需要,自行设置识别难度等级的数量及划分标准,本发明对识别难度等级的具体划分情况不做限制。
随后,在步骤S320中,标注仪表盘图像中各指示灯的位置和所属类别。
指示灯的位置例如可以采用矩形框来标注,矩形框内为指示灯。矩形框例如包含4个坐标信息x0、y0、w、h,其中,x0、y0表示矩形框左上角的横、纵坐标,w、h表示矩形框的宽度和高度。指示灯的所属类别即该指示灯的含义,例如,指示灯的所属类别可以是安全带未系指示灯、车门未关指示灯、刹车故障指示灯等,但不限于此。
根据一种实施例,可以按照以下步骤S322、S324来确定仪表盘图像中各指示灯的位置:
在步骤S322中,在仪表盘图像中分别标注各指示灯所在的区域范围。
指示灯所在的区域范围可以人工标注。例如,对于图4A所示的指示灯,人工标注其区域范围为矩形框510。
步骤S322中标注的指示灯区域范围可能偏大,因此,根据一种实施例,需要执行后续步骤S324,来对步骤S322中标注的区域范围进行调整,即缩小该区域范围,得到指示灯的准确位置。
在步骤S324中,对于每一个指示灯所在的区域范围:识别该区域范围中的连通域。根据一种实施例,在识别连通域之前,将仪表盘图像转化为灰度图像,然后对灰度图像进行高斯模糊,然后对模糊后的图像进行二值化。
随后,识别二值图像中的连通域,连通域可以是四连通区域,也可以是八连通区域。分别计算各连通域的面积(即各连通域所包括的像素数量),将面积大于第二阈值的连通域作为有效连通域,通过面积来对连通域进行筛选,可以去除图像中的噪声区域,提高标注的指示灯位置的准确性。需要说明的是,第二阈值可以由本领域技术人员自行设置,本发明对第二阈值的取值不做限制。
随后,将各有效连通域的外接矩形作为该指示灯的位置。例如,可以分别对各有效连通域进行边缘检测,得到各有效连通域的边缘像素,进而确定所有边缘像素中的横坐标的最小值min(x)、横坐标的最大值max(x)、纵坐标的最小值min(y)、纵坐标的最大值max(y),进而确定各有效连通域的外接矩形为左上角坐标为(min(x),min(y)),宽度为max(x)-min(x),高度为max(y)-min(y)的矩形。
例如,如图4B所示,人工标注的指示灯的区域范围为矩形框510。在步骤S324中,识别矩形框510中的连通区域,识别出5个连通域,即连通域512、连通域514、连通域516、连通域518和连通域520。随后,分别计算各连通域的面积(即各连通域所包括的像素数量),记为S512、S514、S516、S518、S520。其中,S514、S520小于第二阈值,因此,有效连通域为连通域512、516、518。最后,分别对连通域512、516、518进行边缘检测,得到其边缘像素集合。
根据边缘像素集合,确定边缘像素的横坐标的最小值为x2,对应的边缘像素为(x2,y2);横坐标的最大值为x4,对应的边缘像素为(x4,y4);纵坐标的最小值为y1,对应的边缘像素为(x1,y1);纵坐标的最大值为y3,对应的边缘像素为(x3,y3),如图4C所示。因此,连通域512、516、518的外接矩形为左上角坐标为(x2,y1),宽度为x4-x2,高度为y3-y1的矩形,即图4C中用虚线示出的矩形框530。矩形框530即为指示灯的准确位置。
仪表盘图像所属的类别可以由人工进行标注。例如,标注仪表盘图像的类别为安全带未系指示灯、车门未关指示灯、刹车故障指示灯等。
由于在实际应用场景中,用户拍摄仪表盘图像时的拍摄角度具有不确定性,容易出现指示灯倾斜、翻转、模糊、过曝光等情况,但步骤S310所获取的仪表盘图像不一定能在各种情况中均衡分布。为了保证生成的指示灯识别模型能够识别多种情况下的指示灯,需要人为创造一部分图像数据,以均衡实际应用场景中出现的各种情况。
根据一种实施例,在步骤S320标注了仪表盘图像中的指示灯的位置和所属类别后,执行步骤S326(步骤S326未在图3中示出),对仪表盘图像进行镜像、改变颜色空间、模糊、旋转处理中的至少一种,并记录处理后的各指示灯的位置和所属类别。步骤S326增加了数据集的多样性,从而提高了后续生成的指示灯识别模型的鲁棒性,使模型能够准确识别出不同场景、不同质量的仪表盘图像中的指示灯。
需要说明的是,前述步骤S312、S314、S320、S322、S324、S326均为数据预处理步骤,其目的是对步骤S310获取到的仪表盘图像进行预处理,得到用于训练指示灯识别模型的训练图像集和用于测试训练好的指示灯识别模型的识别效果的测试图像集。图5示出了这种数据预处理过程的示意图。
如图5所示,对于获取到的原始仪表盘图像,首先进行图像去重,然后进行识别难度划分,将仪表盘图像划分为简单、中等、困难、极难四个识别难度等级,并丢弃极难等级中的所有图像,使其不参与后续指示灯识别模型的训练和测试过程。随后,对于剩下的识别难度等级为简单、中等、困难的仪表盘图像,标注其中的指示灯的区域范围和所属类别,并对标注的区域范围进行校正,以得到指示灯的准确位置。随后,对于标注后的图像做镜像、改变颜色空间、模糊、旋转等增强处理,并记录增强处理后的各指示灯的位置和所属类别。最后,将处理后的图像作为可用的数据集,该数据集进一步划分为训练集和测试集,例如,可以将数据集中的70%的数据作为训练集,30%的数据作为测试集。训练集中的图像为训练图像,用于训练指示灯识别模型;测试集中的图像为测试图像,用于测试生成的指示灯识别模型的识别效果。
在标注了仪表盘图像中的指示灯的位置和所属类别,生成可用的数据集后,执行步骤S330。
在步骤S330中,将标注了指示灯的位置和所属类别的仪表盘图像作为训练图像,来训练指示灯识别模型。
根据一种实施例,分别从各识别难度等级中取出多个仪表盘图像作为训练图像,其中,从各识别难度等级中取出的仪表盘图像的数量符合预设比例。根据一种实施例,在预设比例中,中等识别难度的仪表盘图像的数量大于简单识别难度的仪表盘图像的数量大于困难识别难度的仪表盘图像的数量。例如,三种识别难度等级的图像的数量比可以是简单:中等:困难=2:7:1。本领域技术人员可以理解,以上仅给出三种识别难度等级的图像数量比的一个示例,在其他实施例中,也可以将不同识别难度等级的图像数量比设置为其他数值,本发明对此不做限制。
图6示出了根据本发明一个实施例的指示灯识别模型的结构图。如图6所示,本发明的指示灯识别模型包括多尺度特征提取模块610、区域生成模块620、目标检测模块630和判定模块640。
多尺度特征提取模块610以仪表盘图像为输入,输出仪表盘图像的多尺度特征图。
例如,如图6所示,多尺度特征提取模块610以仪表盘图像为输入,输出第一尺度~第四尺度四种不同尺度的特征图。
多尺度特征提取模块610可以提取出输入图像的不同尺度的特征,即,将单一尺寸的输入图像转化为多种尺寸的特征图像。模块610使得指示灯识别模型能够同时包含不同尺寸的目标的特征,达到检测不同尺寸物体的目的,从而对不同尺寸的指示灯均具有良好的识别效果。
区域生成模块620包括多个区域生成单元,每个区域生成单元以多尺度特征提取模块所输出的一尺度特征图为输入,输出仪表盘图像中指示灯的候选位置。输出的候选位置通常有多个。
如图6所示,区域生成模块620包括四个区域生成单元622、624、626、628。区域生成单元622以多尺度特征提取模块610输出的第一尺度特征图为输入,通过对第一尺度特征图进行处理,输出仪表盘图像中指示灯的候选位置(proposal),候选位置用矩形框表示。类似地,区域生成单元624、626、628分别以多尺度特征提取模块610输出的第二~第四尺度特征图为输入并进行处理,输出仪表盘图像中指示灯的多个候选位置。
目标检测模块630包括多个级联的目标检测单元,第一个目标检测单元以区域生成模块输出的多个候选位置为输入,其他目标检测单元以上一个目标检测单元输出的推荐位置为输入,输出仪表盘图像中指示灯的推荐位置和推荐类别。
推荐位置采用矩形框来表示。推荐类别由目标检测单元输出的概率向量来确定(概率向量通常采用softmax处理层来确定)。概率向量是一个一维向量,向量中的元素的个数与指示灯的类别的总数量相同,每个元素的值为推荐位置属于对应类别的概率,概率最大的类别即为推荐类别。例如,指示灯的类别共有156种,推荐位置为box,该推荐位置所对应的概率向量为p,则概率向量p是一个包含156个元素的一维向量,向量中的第i个元素的值为推荐位置box中的指示灯属于第i个类别的概率,若向量中的第50个元素值最大(即推荐位置属于第50个类别的概率最大),则第50个类别即为推荐类别。
如图6所示,目标检测模块630包括三个级联的目标检测单元632、634、636。目标检测单元632以区域生成模块620输出的多个候选位置为输入,即,以各个区域生成单元622~628输出的多个候选位置为输入,对候选位置进行校正,输出仪表盘图像中指示灯的推荐位置和推荐类别。目标检测单元634以与之相连的上一个目标检测单元,即目标检测单元632输出的推荐位置为输入,对目标检测单元632输出的推荐位置进行校正,输出校正后的推荐位置和推荐类别。目标检测单元636以与之相连的上一个目标检测单元,即目标检测单元634输出的推荐位置为输入,对目标检测单元634输出的推荐位置进行校正,输出校正后的推荐位置和推荐类别。
在本发明的实施例中,每个目标检测单元(除第一个目标检测单元之外)可以对上一个目标检测单元输出的推荐位置和推荐类别进行校正,避免了因仪表盘图像质量问题(例如指示灯的尺寸较小、细节模糊等)而造成的误检或漏检情况,提高了指示灯识别的准确率。
判定模块640以多个目标检测单元输出的推荐位置和推荐类别为输入,输出仪表盘图像中指示灯的位置信息和类别信息。
如图6所示,判定模块640以目标检测单元632、634、636输出的推荐位置和推荐类别为输入,输出仪表盘图像中指示灯的位置信息和类别信息。判定模块640输出的位置信息和类别信息即为仪表盘图像中的指示灯的识别结果。
根据一种实施例,在模型训练阶段,判定模块640以最后一个目标检测单元,即目标检测单元636的输出为输入,将最后一个目标检测单元输出的推荐位置和推荐类别作为仪表盘图像中指示灯的位置信息和类别信息。
随后,根据判定模块640输出的位置信息和类别信息与步骤S320中标注的指示灯的实际位置和所属类别,来计算模型的损失函数值(loss),根据损失函数值来更新指示灯识别模型的参数,模型的参数包括各个处理模块所采用的卷积核的权重、偏置等。更新参数后,采用训练图像来进行下一次迭代,再次更新模型参数,直至损失函数值收敛至预设阈值以内为止。这时,指示灯识别模型训练完成。
根据一种实施例,方法300还包括模型测试步骤S340(步骤S340未在图3中示出)。步骤S340在步骤S330后执行,对训练好的指示灯识别模型进行测试,以检测该模型的识别效果。
在步骤S340中,将标注了指示灯的位置和所属类别、且未参与模型训练的仪表盘图像作为测试图像,输入训练好的指示灯识别模型,以便指示灯识别模型输出各测试图像中指示灯的位置信息和类别信息;根据指示灯识别模型输出的位置信息和类别信息,以及各测试图像中指示灯的真实位置和真实类别,来计算指示灯识别模型的评价指标值(评价指标值例如可以是精确度、召回率等,但不限于此);当评价指标值大于预设阈值时,判定指示灯识别模型成功生成。
步骤S340的模型测试过程采用测试图像来进行。测试图像是已在步骤S320中标注了位置和所属类别、且未参与模型训练过程的仪表盘图像。根据一种实施例,可以从已标注指示灯的位置和所属类别的仪表盘图像中,按照识别难度等级简单:中等:困难=2:7:1的数量比,抽取多个仪表盘图像。然后,将抽取出的图像中,70%作为训练图像,30%作为测试图像。
在模型测试阶段,判定模块640以所有目标检测单元632、634、636输出的推荐位置和推荐类别为输入,对各目标检测单元输出的推荐位置和推荐类别进行综合分析和判定,来确定并输出的测试图像中指示灯的位置信息和类别信息。
随后,根据判定模块640输出的位置信息和类别信息,以及各测试图像中指示灯的真实位置和真实类别,来计算指示灯识别模型的评价指标值。评价指标值例如可以是精确度(precision)、召回率(recall)等,但不限于此。当评价指标值大于预设阈值时,判定指示灯识别模型成功生成。
图7示出了根据本发明一个实施例的指示灯识别模型的具体结构图。如图7所示,多尺度特征模块610实现为特征金字塔网络(Feature Pyramid Networks,FPN)。如图7所示,FPN包括的自底向上(bottom-up)和自顶向下(top-down)两个部分。其中,自底向上部分位于FPN的左侧,其采用已训练好的深度网络(例如ResNet网络、VGG网络等)来对输入图像进行处理,依次生成尺寸逐渐减小的特征图C1~C5。自顶向下部分位于FPN的右侧,其根据左侧的深度网络提取出的不同尺度的特征图C2~C5,生成增强的不同尺度的特征图F2~F5。其中,F5层为C5层经过1*1卷积而得到,F4层为C4层的1*1卷积结果与F5层的上采样结果叠加而得到,F3层为C3层的1*1卷积结果与F4层的上采样结果叠加而得到,F2层为C2层的1*1卷积结果与F3层的上采样结果叠加而得到。
区域生成模块620实现为多个区域候选网络(Region Proposal Network,RPN)。FPN输出的不同尺度的特征图F2~F5分别经过一个3*3的卷积核卷积后,输入各个RPN。各RPN分别对卷积后的特征图进行处理,输出仪表盘图像中的指示灯的候选位置(proposal)。随后,将各RPN输出的候选位置进行汇总。
目标检测模块630包括三个级联的目标检测单元,每个目标检测单元均实现为基于区域的卷积神经网络(Region-Convolutional Neural Networks,R-CNN),即,目标检测模块630包括三个级联的R-CNN。三个R-CNN的重叠度(Intersection over Union,IoU)阈值依次递增。
各RPN输出的候选位置记为B0,计算B0与已标注的指示灯的实际位置的IoU。两个矩形框的IoU为二者重叠区域的面积与二者所覆盖的总面积的比值,如图8所示,矩形框A与矩形框B的IoU为二者重叠部分的面积A∩B(图8中的阴影区域)与二者所覆盖的总面积A∪B的比值。设置IoU阈值为0.5,即丢弃IoU小于0.5的B0。随后,将剩下的B0经过ROI池化层(ROIPooling)进行池化处理后,输入第一个R-CNN。第一个R-CNN对B0进行校正(即调整B0的位置),输出校正后的推荐位置B1和推荐类别C1。
设置第二个R-CNN的IoU阈值为0.6,即,计算第一个R-CNN输出的推荐位置B1与已标注的指示灯的实际位置的IoU,丢弃IoU小于0.6的推荐位置B1。剩余的B1经过ROI池化层的池化处理后,输入第二个R-CNN。第二个R-CNN对B1进行校正(即调整B1的位置),输出校正后的推荐位置B2和推荐类别C2。
设置第三个R-CNN的IoU阈值为0.7,即,计算第一个R-CNN输出的推荐位置B2与已标注的指示灯的实际位置的IoU,丢弃IoU小于0.7的推荐位置B2。剩余的B2经过ROI池化层的池化处理后,输入第三个R-CNN。第三个R-CNN对B2进行校正(即调整B2的位置),输出校正后的推荐位置B3和推荐类别C3。
判定模块640以R-CNN输出的推荐位置和推荐类别为输入,输出仪表盘指示灯的位置信息和类别信息。
在模型训练阶段,判定模块接收最后一个R-CNN模块,即第三个R-CNN模块输出的推荐位置B3和推荐类别C3,并将推荐位置B3和推荐类别C3作为最终的指示灯的位置信息和类别信息,进行输出。
随后,根据判定模块640输出的位置信息B3和类别信息C3来更新模型参数。具体地,根据位置信息B3、类别信息C3以及已标注的指示灯的实际位置和所属类别,计算第三个R-CNN的损失函数值loss_3,根据loss_3来更新第三个R-CNN的参数。根据位置信息B2、类别信息C2以及已标注的指示灯的实际位置和所属类别,计算第二个R-CNN的损失函数值loss_2,根据loss_2来更新第二个R-CNN的参数。根据位置信息B1、类别信息C1以及已标注的指示灯的实际位置和所属类别,计算第一个R-CNN的损失函数值loss_1,根据loss_1来更新第一个R-CNN的参数。根据推荐位置B0、推荐类别C0和已标注的指示灯的实际位置和所属类别,计算RPN的损失函数值loss_0,根据loss_0来更新RPN模块的参数,其中,四个RPN的权重参数共享。随后,采用更新后的参数继续模型训练过程,进行下一轮迭代。当损失函数值收敛至预设阈值以内时,指示灯识别模型训练完成。
随后,对训练好的指示灯识别模型进行测试,以检测该模型的识别效果。
在模型测试阶段,多尺度特征提取模块610、区域生成模块620、目标检测模块630的计算过程与模型训练阶段相同,此处不再赘述。
在模型测试阶段,判定模块640根据三个R-CNN输出的推荐位置B1、B1、B3来确定最终输出的指示灯的位置信息和类别信息。
因三个R-CNN模块的重叠度阈值依次递增,因此,三个R-CNN输出的推荐位置的数量依次递减,即,B1的数量大于B2的数量大于B3的数量,并且,B2是对B1中的某些推荐位置的校正,B3是对B2中的某些推荐位置的校正。例如,第一个R-CNN、第二个R-CNN、第三个R-CNN分别输出了20、15、10个推荐位置,并且,第二个R-CNN输出的15个推荐位置是对第一个R-CNN输出的前15个推荐位置的校正,第三个R-CNN输出的10个推荐位置是对第二个R-CNN输出的前10个推荐位置的校正。
以下给出判定模块640根据三个R-CNN输出的推荐位置B1、B2、B3来确定最终输出的指示灯的位置信息和类别信息的一个实施例。
将第一个R-CNN输出的20个推荐位置记为B1-1、B1-2、…、B1-20,对应的概率向量分别为P1-1、P1-2、…、P1-20。
将第二个R-CNN输出的15个推荐位置,记为B2-1、B2-2、…、B2-15,对应的概率向量分别为P2-1、P2-2、…、P2-15。这15个推荐位置是对B1-1、B1-2、…、B1-15的进一步校正。
将第三个R-CNN输出的10个推荐位置,记为B3-1、B3-2、…、B3-10,对应的概率向量分别为P3-1、P3-2、…、P3-10。这10个推荐位置是对B2-1、B2-2、…、B2-10的进一步校正。
推荐位置B1-16、B1-17、…、B1-20仅由第一个R-CNN输出,没有经过后续两个R-CNN的校正。这五个推荐位置对应的概率向量为P1-16、P1-17、…、P1-20,概率向量中值最大的类别即为推荐位置的类别。例如,推荐位置B1-16的概率向量P1-16中,第5个元素的值最大,则推荐位置B1-16的类别为第五类。判定模块640将推荐位置B1-16、B1-17、…、B1-20作为位置信息、将概率向量P1-16、P1-17、…、P1-20中值最大的类别作为相应的类别信息,进行输出。
推荐位置B1-11、B1-12、…、B1-15由第一个R-CNN输出,并被第二个R-CNN校正为B2-11、B2-12、…、B2-15。第一个R-CNN输出的相应概率向量为P1-11、P1-12、…、P1-15,第二个R-CNN输出的相应概率向量为P2-11、P2-12、…、P2-15,将两个R-CNN输出的概率向量进行融合,得到推荐位置B2-11、B2-12、…、B2-15的加权概率向量Pi=w1*P1-i+w2*P2-i,其中,w1、w2分别为第一个R-CNN、第二个R-CNN输出的概率向量的权重,i=11、12、…、15。根据融合后的加权概率向量来确定推荐位置B2-11、B2-12、…、B2-15所属的类别,即,将加权概率向量中值最大的类别作为相应推荐位置的类别。判定模块640将推荐位置B2-11、B2-12、…、B2-15作为位置信息,将加权概率向量P11、P12、…、P15中值最大的类别作为相应的类别信息,进行输出。
推荐位置B1-1、B1-2、…、B1-10由第一个R-CNN输出,依次经过第二个、第三个R-CNN的校正,最终校正为B3-1、B3-2、…、B3-10。第一个R-CNN输出的相应概率向量为P1-1、P1-2、…、P1-10,第二个R-CNN输出的相应概率向量为P2-1、P2-2、…、P2-10,第三个R-CNN输出的相应概率向量为P3-1、P3-2、…、P3-10,将三个R-CNN输出的概率向量进行融合,得到推荐位置B3-1、B3-2、…、B3-10的加权概率向量Pi=w1*P1-i+w2*P2-i+w3*P3-i,其中,w1、w2、w3分别为第一个R-CNN、第二个R-CNN、第三个R-CNN输出的概率向量的权重,i=1、2、…、10。根据融合后的加权概率向量来确定推荐位置B3-1、B3-2、…、B3-10所属的类别,即,将加权概率向量中值最大的类别作为相应推荐位置的类别。判定模块640将推荐位置B3-1、B3-2、…、B3-10作为位置信息,将加权概率向量P1、P2、…、P10中值最大的类别作为相应的类别信息,进行输出。
综上,判定模块640将推荐位置B3-1、B3-2、…、B3-10,B2-11、B2-12、…、B2-15,B1-16、B1-17、…、B1-20作为位置信息,将相应概率向量P1、P2、…、P10,P11、P12、…、P15,P1-16、P1-17、…、P1-20中值最大的类别作为类别信息,进行输出。
在模型测试阶段,将多个测试图像输入训练好的指示灯识别模型中,模型将输出各测试图像的指示灯的位置信息和类别信息。根据指示灯识别模型输出的位置信息和类别信息,以及测试图像中指示灯的真实位置和真实类别,来计算指示灯识别模型的评价指标值。评价指标值例如可以是精确度(precision)、召回率(recall)等,但不限于此。当评价指标值大于预设阈值时,判定指示灯识别模型成功生成,将生成的模型部署至应用服务器110,以便应用服务器110向用户提供指示灯识别服务。
以下给出计算指示灯识别模型的评价指标值的一个实施例,在该实施例中,模型的评价指标包括精确度和召回率。
将n个测试图像输入训练好的指示灯识别模型中,模型将输出各测试图像的指示灯识别结果res1、res2、…、resn,每个识别结果包括检测出的至少一个指示灯的位置信息r_box和类别信息r_cls。每个测试图像对应的标注文件为gt1、gt2、…、gtn,每个标注文件中记录有相应测试图像中的指示灯的实际位置g_box和所属类别g_cls。
对于模型检测出的每一个位置信息r_box,计算该位置信息r_box与相应测试图像的每一个实际位置g_box的重叠度IoU,如果r_box与测试图像中的某一个实际位置g_box的IoU大于阈值(阈值例如可以设置为0.7),则将该位置信息r_box记为有效位置信息r_validbox,并将其对应的实际位置g_box记为有效实际位置g_validbox。
根据有效位置信息r_validbox和有效实际位置g_validbox来计算模型的精确度(precision)和召回率(recall)。
模型的精确度为与相应g_validbox类别相同的r_validbox的数量与模型检测到的r_box的总数量的比值。
模型的召回率为与相应g_validbox类别相同的r_validbox的数量与n个测试图像的实际位置g_box的总数量的比值。
分别设置精确度与召回率的阈值,当模型的精确度、召回率均大于相应的阈值时,指示灯识别模型成功生成。
将生成的模型部署至应用服务器110,应用服务器110即可向用户提供指示灯识别服务。具体地,参考图1,用户可以采用终端设备120对准仪表盘指示灯的位置拍摄图像,拍摄的图像可以包含背景信息例如方向盘等,也可以是一个单独的指示灯。随后,用户将拍摄的图像上传至应用服务器110。应用服务器110调用模型接口,将图像输入指示灯识别模型。模型将输出图像中的指示灯的位置信息和类别信息,同时给出置信率(即位置属于类别的概率)。当置信率大于预设阈值时,应用服务器110向终端设备120返回相应指示灯的位置和类别信息,以及相应指示灯的图标,以便用户进行区分和查阅。
A9、如权利要求1-8中任一项所述的方法,其中,所述多尺度特征提取模块为特征金字塔网络(FPN),所述区域生成模块为区域候选网络(RPN),所述目标检测单元为基于区域的卷积神经网络(R-CNN)。
A10、如权利要求1-9中任一项所述的方法,其中,在训练所述指示灯识别模型的过程中,所述判定模块将最后一个目标检测单元输出的推荐位置和推荐类别作为仪表盘图像中指示灯的位置信息和类别信息。
A11、如权利要求1-10中任一项所述的方法,在所述训练所述指示灯识别模型的步骤之后,还包括下述模型测试步骤:
将标注了指示灯的位置和所属类别、且未参与模型训练的仪表盘图像作为测试图像,输入训练好的指示灯识别模型,以便指示灯识别模型输出各测试图像中指示灯的位置信息和类别信息;
根据指示灯识别模型输出的位置信息和类别信息,以及各测试图像中指示灯的真实位置和真实类别,来计算所述指示灯识别模型的评价指标值;
当所述评价指标值大于预设阈值时,判定所述指示灯识别模型成功生成。
A12、如权利要求11所述的方法,其中,在测试训练好的指示灯识别模型的过程中,所述判定模块适于根据每一个目标检测单元输出的推荐位置和推荐类别,来确定仪表盘图像中指示灯的位置信息和类别信息。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的仪表盘指示灯的识别方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与本发明的示例一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
Claims (14)
1.一种仪表盘指示灯的识别方法,在计算设备中执行,适于生成指示灯识别模型,所述指示灯识别模型适于输出仪表盘图像中指示灯的位置信息和类别信息,所述方法包括步骤:
获取多个仪表盘图像,所述仪表盘图像中包括至少一个指示灯;
标注仪表盘图像中各指示灯的位置和所属类别;
将标注了指示灯的位置和所属类别的仪表盘图像作为训练图像,来训练所述指示灯识别模型,其中,所述指示灯识别模型包括多尺度特征提取模块、区域生成模块、目标检测模块和判定模块,
所述多尺度特征提取模块以仪表盘图像为输入,输出所述仪表盘图像的多尺度特征图;
所述区域生成模块包括多个区域生成单元,每个所述区域生成单元以所述多尺度特征提取模块所输出的一尺度特征图为输入,输出仪表盘图像中指示灯的候选位置;
所述目标检测模块包括多个级联的目标检测单元,第一个目标检测单元以所述区域生成模块输出的多个候选位置为输入,其他目标检测单元以上一个目标检测单元输出的推荐位置为输入,输出仪表盘图像中指示灯的推荐位置和推荐类别;
所述判定模块以所述多个目标检测单元输出的推荐位置和推荐类别为输入,输出仪表盘图像中指示灯的位置信息和类别信息。
2.如权利要求1所述的方法,在所述标注仪表盘图像中各指示灯的位置和所属类别的步骤之前,还包括步骤:
对所述多个仪表盘图像进行去重处理。
3.如权利要求2所述的方法,其中,所述去重处理包括步骤:
分别提取所述多个仪表盘图像的特征向量;
根据所述特征向量,对所述多个仪表盘图像进行聚类;
分别对每一类进行去重处理。
4.如权利要求3所述的方法,其中,所述分别对每一类进行去重处理的步骤包括:
若一类中的两个仪表盘图像的相似度大于第一阈值,则删除所述两个仪表盘图像中的任意一个,其中,所述相似度根据所述特征向量来计算。
5.如权利要求1-4中任一项所述的方法,其中,所述标注仪表盘图像中各指示灯的位置的步骤包括:
在所述仪表盘图像中分别标注各指示灯所在的区域范围;
对于每一个指示灯所在的区域范围:
识别该区域范围中的连通域;
分别计算各连通域的面积,将面积大于第二阈值的连通域作为有效连通域;
将各有效连通域的外接矩形作为该指示灯的位置。
6.如权利要求1-5中任一项所述的方法,其中,在所述标注仪表盘图像中各指示灯的位置和所属类别的步骤之后,还包括步骤:
对所述仪表盘图像进行镜像、改变颜色空间、模糊、旋转处理中的至少一种,并记录处理后的各指示灯的位置和所属类别。
7.如权利要求1-6中任一项所述的方法,其中,在所述标注仪表盘图像中各指示灯的位置和所属类别的步骤之前,还包括步骤:
根据图像清晰程度,将仪表盘图像划分为多个识别难度等级,所述识别难度等级包括简单、中等、困难;
所述将标注了指示灯的位置和所属类别的仪表盘图像作为训练图像的步骤包括:
分别从各识别难度等级中取出多个仪表盘图像作为训练图像,其中,从各识别难度等级中取出的仪表盘图像的数量符合预设比例。
8.如权利要求7所述的方法,其中,在所述预设比例中,中等识别难度的仪表盘图像的数量大于简单识别难度的仪表盘图像的数量大于困难识别难度的仪表盘图像的数量。
9.如权利要求1-8中任一项所述的方法,其中,所述多尺度特征提取模块为特征金字塔网络(FPN),所述区域生成模块为区域候选网络(RPN),所述目标检测单元为基于区域的卷积神经网络(R-CNN)。
10.如权利要求1-9中任一项所述的方法,其中,在训练所述指示灯识别模型的过程中,所述判定模块将最后一个目标检测单元输出的推荐位置和推荐类别作为仪表盘图像中指示灯的位置信息和类别信息。
11.如权利要求1-10中任一项所述的方法,在所述训练所述指示灯识别模型的步骤之后,还包括下述模型测试步骤:
将标注了指示灯的位置和所属类别、且未参与模型训练的仪表盘图像作为测试图像,输入训练好的指示灯识别模型,以便指示灯识别模型输出各测试图像中指示灯的位置信息和类别信息;
根据指示灯识别模型输出的位置信息和类别信息,以及各测试图像中指示灯的真实位置和真实类别,来计算所述指示灯识别模型的评价指标值;
当所述评价指标值大于预设阈值时,判定所述指示灯识别模型成功生成。
12.如权利要求11所述的方法,其中,在测试训练好的指示灯识别模型的过程中,所述判定模块适于根据每一个目标检测单元输出的推荐位置和推荐类别,来确定仪表盘图像中指示灯的位置信息和类别信息。
13.一种计算设备,包括:
至少一个处理器和存储有程序指令的存储器;
当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如权利要求1-12中任一项所述的仪表盘指示灯的识别方法。
14.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-12中任一项所述的仪表盘指示灯的识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911322879.0A CN111178200B (zh) | 2019-12-20 | 2019-12-20 | 一种仪表盘指示灯的识别方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911322879.0A CN111178200B (zh) | 2019-12-20 | 2019-12-20 | 一种仪表盘指示灯的识别方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111178200A CN111178200A (zh) | 2020-05-19 |
CN111178200B true CN111178200B (zh) | 2023-06-02 |
Family
ID=70653966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911322879.0A Active CN111178200B (zh) | 2019-12-20 | 2019-12-20 | 一种仪表盘指示灯的识别方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111178200B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639647B (zh) * | 2020-05-22 | 2023-07-25 | 深圳市赛为智能股份有限公司 | 指示灯状态识别方法、装置、计算机设备及存储介质 |
CN111652102B (zh) * | 2020-05-27 | 2024-06-14 | 国网山东省电力公司东营供电公司 | 一种输电通道目标物辨识方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779314B1 (en) * | 2014-08-21 | 2017-10-03 | Waymo Llc | Vision-based detection and classification of traffic lights |
CN109508580A (zh) * | 2017-09-15 | 2019-03-22 | 百度在线网络技术(北京)有限公司 | 交通信号灯识别方法和装置 |
WO2019232831A1 (zh) * | 2018-06-06 | 2019-12-12 | 平安科技(深圳)有限公司 | 机场异物识别方法、装置、计算机设备及存储介质 |
-
2019
- 2019-12-20 CN CN201911322879.0A patent/CN111178200B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779314B1 (en) * | 2014-08-21 | 2017-10-03 | Waymo Llc | Vision-based detection and classification of traffic lights |
CN109508580A (zh) * | 2017-09-15 | 2019-03-22 | 百度在线网络技术(北京)有限公司 | 交通信号灯识别方法和装置 |
WO2019232831A1 (zh) * | 2018-06-06 | 2019-12-12 | 平安科技(深圳)有限公司 | 机场异物识别方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
刘全周 ; 贾鹏飞 ; 李占旗 ; 王述勇 ; 王启配 ; .基于深度学习的汽车仪表标识辨别***设计.新型工业化.2018,(06),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111178200A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109961009B (zh) | 基于深度学习的行人检测方法、***、装置及存储介质 | |
US11321847B2 (en) | Foreground-aware image inpainting | |
US9978003B2 (en) | Utilizing deep learning for automatic digital image segmentation and stylization | |
CN109815843B (zh) | 图像处理方法及相关产品 | |
CN106447721B (zh) | 图像阴影检测方法和装置 | |
CN112529026B (zh) | 提供ai模型的方法、ai平台、计算设备及存储介质 | |
CN109376631B (zh) | 一种基于神经网络的回环检测方法及装置 | |
CN111144215B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN109191424B (zh) | 一种乳腺肿块检测与分类***、计算机可读存储介质 | |
WO2014174932A1 (ja) | 画像処理装置、プログラム及び画像処理方法 | |
CN111178183A (zh) | 人脸检测方法及相关装置 | |
US11392800B2 (en) | Computer vision systems and methods for blind localization of image forgery | |
US9025889B2 (en) | Method, apparatus and computer program product for providing pattern detection with unknown noise levels | |
CN112101386B (zh) | 文本检测方法、装置、计算机设备和存储介质 | |
CN111178200B (zh) | 一种仪表盘指示灯的识别方法及计算设备 | |
CN109165654B (zh) | 一种目标定位模型的训练方法和目标定位方法及装置 | |
CN111626295A (zh) | 车牌检测模型的训练方法和装置 | |
CN113095333A (zh) | 无监督特征点检测方法及装置 | |
US11367206B2 (en) | Edge-guided ranking loss for monocular depth prediction | |
CN112132130A (zh) | 一种面向全场景的实时性车牌检测方法及*** | |
CN111353325A (zh) | 关键点检测模型训练方法及装置 | |
CN112465050B (zh) | 一种图像模板选择方法、装置、设备及存储介质 | |
CN110210314B (zh) | 人脸检测方法、装置、计算机设备及存储介质 | |
US11200708B1 (en) | Real-time color vector preview generation | |
Li et al. | Deblurring traffic sign images based on exemplars |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |