图像识别方法及其装置、计算机可读介质和系统与流程

文档序号:21104253发布日期:2020-06-16 21:07阅读:173来源:国知局
图像识别方法及其装置、计算机可读介质和系统与流程

本申请涉及图像识别领域,特别涉及一种图像识别方法及其装置、计算机可读介质和系统。



背景技术:

当下城市管理中,对犬只的管理越来越规范,由于居民饲养的宠物狗越来越多,基本大部分城市规定,外出遛狗时需要牵狗绳,因为没有使用牵狗绳就有安全风险,而且没有牵狗绳的狗有可能是流浪狗,流浪狗同样对居民的日常生活产生影响。因此,通过在小区的安防摄像头拍摄的视频,如何判断视频中的犬只是否为流浪犬是一个亟待解决的问题。



技术实现要素:

本申请实施例提供了一种图像识别方法及其装置、计算机可读介质和系统。本申请实施例提供的图像识别方法简单高效,能够快速发现视频场景中的流浪犬。

第一方面,本申请实施例提供了一种图像识别的方法,包括:

从视频中获取至少一张待识别的图像;

确定所述待识别图像中是否同时具有行人和犬只;

在确定同时具有行人和犬只的情况下,判断所述待识别图像中的行人和犬只之间的距离是否小于距离阈值;

在所述判断的结果为小于距离阈值的情况下,确定所述行人和犬只之间是否具有牵狗绳;

在确定所述行人和犬只之间无牵狗绳的情况下,确定所述犬只疑似为流浪犬。

在上述第一方面的一种可能的实现中,上述方法还包括:所述确定所述待识别图像中是否同时具有行人和犬只包括:

通过行人检测算法检测所述待识别图像中是否有行人,并通过犬只检测算法检测所述待识别图像中是否有犬只;

在所述待识别图像中同时具有行人和犬只的情况下,确定所述待识别图像同时具有行人和犬只。

在上述第一方面的一种可能的实现中,上述方法还包括:所述在确定同时具有行人和犬只的情况下,判断所述待识别图像中的行人和犬只之间的距离是否小于距离阈值包括:

判断所述犬只检测框和行人检测框的中心距离是否小于距离阈值。

在上述第一方面的一种可能的实现中,上述方法还包括:所述在所述判断的结果为小于距离阈值的情况下,确定所述行人和犬只之间是否具有牵狗绳,包括:

以第一比例外扩所述犬只检测框和行人检测框;

基于外扩后的犬只检测框和行人检测框的重叠区域,通过神经网络模型识别所述重叠区域是否具有牵狗绳。

在上述第一方面的一种可能的实现中,上述方法还包括:所述从视频中获得待识别图像包括:从所述视频中提起关键帧得到所述待识别图像。

第二方面,本申请实施里提供了一种图像识别的装置,所述图像识别装置包括:

获取模块,用于从视频中获取待识别的图像;

识别模块,用于确定所述待识别图像中是否同时具有行人和犬只;

第一判断模块,用于在确定同时具有行人和犬只的情况下,判断所述待识别图像中的行人和犬只之间的距离是否小于距离阈值;

第二判断模块,用于在所述判断的结果为小于距离阈值的情况下,确定所述行人和犬只之间是否具有牵狗绳;

输出模块,用于在确定所述行人和犬只之间无牵狗绳的情况下,确定所述犬只为流浪犬。

在上述第二方面的一种可能的实现中,上述装置还包括:所述识别模块通过以下方式确定所述待识别图像中是否同时具有行人和犬只包括:

通过行人检测算法检测所述待识别图像中是否有行人,并通过犬只检测算法检测所述待识别图像中是否有犬只。

在上述第二方面的一种可能的实现中,上述装置还包括:所述第一判断模块通过以下方式判断所述待识别图像中的行人和犬只之间的距离是否小于距离阈值包括:

判断所述犬只检测框和行人检测框的中心距离是否小于距离阈值。

在上述第二方面的一种可能的实现中,上述装置还包括:所述第二判断模块通过以下方式确定所述行人和犬只之间是否具有牵狗绳包括:

以第一比例外扩所述犬只检测框和行人检测框;

基于外扩后的犬只检测框和行人检测框的重叠区域,通过神经网络模型识别所述重叠区域是否具有牵狗绳。

在上述第二方面的一种可能的实现中,上述装置还包括:所述获取模块从视频中获取待识别图像包括:从所述视频中提取关键帧得到所述待识别图像。

第三方面,本申请实施里提供了一种计算机可读介质,所述计算机可读介质上存储有指令,该指令在机器上执行时使机器执行上述任一方面的图像识别的方法。

第四方面,本申请实施里提供了一种系统,包括:

存储器,用于存储由系统的一个或多个处理器执行的指令,以及

处理器,是系统的处理器之一,用于执行上述任一方面的图像识别的方法。

附图说明

图1根据本申请的一些实施例,示出了一种犬只识别装置结构示意图。

图2根据本申请的一些实施例,示出了一种犬只行人检测框示意图。

图3根据本申请的一些实施例,示出了一种犬只行人检测框示意图。

图4根据本申请的一些实施例,示出了图像识别方法的流程示意图。

图5根据本申请的一些实施例,示出了一种系统的框图。

图6根据本申请一些实施例,示出了一种片上系统(soc)的框图。

具体实施例

本申请的说明性实施例包括但不限于犬只识别方法及其装置、计算机可读介质和系统。

可以理解,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。

可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。

下面将结合附图对本申请的实施例作进一步地详细描述。

根据本申请的一些实施例,图1示意性示出了一种犬只识别装置结构示意图。如图1所示,犬只识别装置100包括获取模块101、识别模块102、第一判断模块103、第二判断模块104和输出模块105。其中,获取模块101根据获取的视频,通过视频关键帧提取算法提取视频中的关键帧获得待识别图像,或者从视频中预定时间间隔提取视频帧得到待识别图像。其中,待识别图像的数量不作限制。

获取模块101将待识别的图像发送给识别模块102,识别模块102通过图像识别技术识别出待识别图像中是否同时包含行人和犬只,其中,图像识别技术包含犬只检测算法和行人检测算法,下面以犬只检测算法为例说明如何检测出待识别图像中的犬只,行人检测算法与犬只检测算法相似,在本申请实施例中不作赘述。犬只检测算法过程如下:

通过候选检测模块,检测出待识别图像中疑似犬只的检测框,接着对所有疑似犬只的检测框,通过误报过滤模块,去除误报留下可靠的犬只的检测框,然后对于各个视频帧中的犬只检测框,通过tracking算法补全检测到帧间的犬只,并合并各视频帧中同一检测到的犬只到一个tracking中,最后输出所有检测到的犬只。

需要说明的是,检测候选模块使用的算法是一个基于神经网络的目标检测算法,如ssd,fasterrcnn,yolo等,通过该算法从视频帧中检测出犬只所在的区域,获得候选犬只检测框。

获得候选检测模块检测的候选犬只检测框,外扩犬只检测框并截取一定大小的roiroi(regionofinterest,感兴趣区域)图像。其中,机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域。将此roi图像输入一个分类卷积神经网络中,网络将区分犬只和非犬只,从而将正例和负例区分,误报过滤模块通过的检测框,则认为是该帧上最后该输出的结果。

对于各个视频帧,犬只的位置和大小范围通过上述模块进行,而其他帧则通过目标追踪算法,获得各非关键帧中的犬只的位置,tracking算法可以是kcf(kernelizedcorrelationfilters,核化相关滤波器)、卡尔曼滤波等。

根据识别模块102识别出同时出现行人和犬只的图像,第一判断模块103首先计算图像中的行人和犬只的距离,行人和犬只之间的距离可以通过选取犬只roi上的任意一点与行人roi上的任意一点之间的距离,在本申请的实施例中,选取犬只roi的中心位置与行人roi的中心位置之间的距离。如图3所示,犬只roi和行人roi以圆形检测框表示,从图中可以看出,犬只检测框201周围有3个行人检测框,分别是行人检测框202、行人检测框203和行人检测框204。并且犬只检测框201的中心与行人检测框202的中心、行人检测框203的中心和行人检测框204的中心分别是d1、d2和d3。

然后,第一判断模块103分别判断d1、d2和d3否小于距离阈值,其中,距离阈值可以设定在一定像素内,也可以根据检测框的大小设定。

示例性的,设定距离阈值为100px,图2中犬只检测框201与行人检测框202、203和204的中心距离d1、d2、d3分别是50px、150px、200px,通过比较得知则行人检测框202和犬只检测框201的中心距离d1小于距离阈值。

示例性的,也可以设定距离阈值为犬只检测框201半径的1/4,图2中犬只检测框201与行人检测框202、203和204中心距离d1、d2、d3分别是犬只检测框半径的1/5、1/3、1/2,因此,通过比较得知则行人检测框202和犬只检测框201的中心距离d1小于距离阈值。

需要说明的是,本申请的实施例以像素大小或者检测框的半径作为设定距离阈值的参考,在其他实施例中,例如,当检测框为矩形时,可以以检测框的长或宽作为阈值设定的参考,在此不作限制。图中的行人roi和犬只roi以圆形检测框表示,也可以以其他形式的检测框表示,例如矩形、不规则图形等。

第一判断模块103将满足条件的结果发送给第二判断模块104,在图2中,犬只检测框201和行人检测框202满足条件,第一判断模块103将犬只检测框201和行人检测框202发送给第二判断模块104进一步判断。如图3所示,犬只检测框201外扩后得到犬只检测框205,行人检测框202进行外扩后得到行人检测框206。从图3中可以看出,犬只检测框205和行人检测框206有重叠区域a,通过神经网络模型识别重叠区域a是否具有牵狗绳。

需要说明的是,对犬只检测框和行人检测框外扩的比例不作限制,并且,可以以相同的比例同时外扩犬只检测框和行人检测框,也可以以不同的比例分别外扩犬只检测框和行人检测框。

第二判断模块104将判断的结果发送给输出模块105,如果第二判断模块104判断的结果为重叠区域a有牵狗绳,则输出模块105输出的结果为该犬只不是流浪犬;如果第二判断104判断的结果为重叠区域a没有牵狗绳,则输出模块105输出的结果为该犬只疑似为流浪犬。

判断疑似流浪犬的方法是:在行人和犬只视频中,通过图像匹配方法和图像识别方法识别该疑似流浪犬只和某一行人同时出现的帧图像组成图像组,判断该图像组的时长与视频的时长的比值是否大于时间阈值,如果大于时间阈值,则该疑似流浪犬判定为不是流浪犬,否则,如果小于时间阈值,则判定该疑似流浪犬是流浪犬,其中,图像组的时长为所有相邻帧图像的时间间隔之和。

例如,从行人和犬只视频(例如10分钟)中识别出该疑似流浪犬a和行人b同时出现的帧图像组成图像组c(例如时长为1分钟),可以得出图像组c的时长与视频的时长比值为0.1,假设时间阈值0.5,则图像组c的时长与视频的时长比值(0.1)小于时间阈值(0.5),判定该疑似流浪犬是流浪犬。

根据本申请的一些实施例,图4示意性示出了一种图像识别方法的流程示意图,图中实现方法的功能模块可以通过上述实施例中的模块实现,图4具体包括:

(1)从视频中获取待识别图像(401);根据获取的视频,可以通过提取视频中的关键帧获得待识别图像,也可以从视频中预定时间间隔提取视频帧得到待识别图像。

(2)通过图像识别技术确定待识别图像中是否同时具有行人和犬只(402);图像识别技术包括行人检测算法和犬只检测算法,通过这两种检测算法识别出同时包含行人和犬只的图像,以犬只检测算法为例,通过候选检测模块,检测出待识别图像中所有疑似犬只的检测框,接着对所有疑似犬只的检测框,通过误报过滤模块,去除误报留下可靠的犬只的检测框,然后对于各个视频帧中的犬只检测框,通过tracking算法补全检测到帧间的犬只,并合并各视频帧中同一检测到的犬只到一个tracking中,最后输出所有检测到的犬只。行人检测算法与犬只检测算法相似,在此不作赘述。

(3)判断待识别图像中的行人和犬只之间的距离是否小于距离阈值(403);首先计算待识别图像中的行人和犬只的距离,行人和犬只之间的距离可以选取犬只roi上的任意一点与行人roi上的任意一点之间的距离,例如,可以选取犬只roi的中心点与行人roi的中心点之间的距离,然后,判断犬只roi和行人roi的距离否小于距离阈值,其中,距离阈值可以设定在一定像素内,也可以根据检测框的大小设定。

(4)确定行人和犬只之间是否具有牵狗绳(404);首先以一定比例外扩行人检测框和犬只检测框,并获得外扩后的行人检测框和犬只检测框的重叠区域,再通过神经网络模型识别重叠区域是否具有牵狗绳,需要说明的是,对行人检测框和犬只检测框外扩的比例不作限制,并且,可以以相同的比例同时外扩犬只检测框和行人检测框,也可以以不同的比例分别外扩犬只检测框和行人检测框。

(5)输出犬只是否为疑似流浪犬的结果,如果通过神经网络模型识别重叠区域没有牵狗绳,则输出的结果为该犬只疑似为流浪犬(405);如果重叠区域有牵狗绳,则输出的结果为该犬只不是流浪犬(406)。

现在参考图5,所示为根据本申请的一个实施例的电子设备500的框图。图5示意性地示出了根据多个实施例的示例电子设备500。在一个实施例中,电子设备500可以包括一个或多个处理器504,与处理器504中的至少一个连接的系统控制逻辑508,与系统控制逻辑508连接的系统内存512,与系统控制逻辑508连接的非易失性存储器(nvm)516,以及与系统控制逻辑508连接的网络接口520。

在一些实施例中,处理器504可以包括一个或多个单核或多核处理器。在一些实施例中,处理器504可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在电子设备500采用enb(evolvednodeb,增强型基站)101或ran(radioaccessnetwork,无线接入网)控制器102的实施例中,处理器504可以被配置为执行各种符合的实施例,例如,如图1-4所示的多个实施例中的一个或多个。

在一些实施例中,系统控制逻辑508可以包括任意合适的接口控制器,以向处理器504中的至少一个和/或与系统控制逻辑508通信的任意合适的设备或组件提供任意合适的接口。

在一些实施例中,系统控制逻辑508可以包括一个或多个存储器控制器,以提供连接到系统内存512的接口。系统内存512可以用于加载以及存储数据和/或指令。在一些实施例中电子设备500的内存512可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。

nvm/存储器516可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm/存储器516可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(harddiskdrive,硬盘驱动器),cd(compactdisc,光盘)驱动器,dvd(digitalversatiledisc,数字通用光盘)驱动器中的至少一个。

nvm/存储器516可以包括安装电子设备500的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口520通过网络访问nvm/存储516。

特别地,系统内存512和nvm/存储器516可以分别包括:指令524的暂时副本和永久副本。指令524可以包括:由处理器504中的至少一个执行时导致电子设备500实施如图2-4所示的方法的指令。在一些实施例中,指令524、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑508,网络接口520和/或处理器504中。

网络接口520可以包括收发器,用于为电子设备500提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口520可以集成于电子设备500的其他组件。例如,网络接口520可以集成于处理器504的,系统内存512,nvm/存储器516,和具有指令的固件设备(未示出)中的至少一种,当处理器504中的至少一个执行所述指令时,电子设备500实现如图2-4所示的方法。

网络接口520可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口520可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。

在一个实施例中,处理器504中的至少一个可以与用于系统控制逻辑508的一个或多个控制器的逻辑封装在一起,以形成系统封装(sip)。在一个实施例中,处理器504中的至少一个可以与用于系统控制逻辑508的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(soc)。

电子设备500可以进一步包括:输入/输出(i/o)设备532。i/o设备532可以包括用户界面,使得用户能够与电子设备500进行交互;外围组件接口的设计使得外围组件也能够与电子设备500交互。在一些实施例中,电子设备500还包括传感器,用于确定与电子设备500相关的环境条件和位置信息的至少一种。

在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。

在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。

在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口520的一部分或与网络接口520交互,以与定位网络的组件(例如,全球定位系统(gps)卫星)进行通信。

根据本申请的实施例,图6示出了一种soc(systemonchip,片上系统)600的框图。在图6中,相似的部件具有同样的附图标记。另外,虚线框是更先进的soc的可选特征。在图6中,soc600包括:互连单元650,其被耦合至应用处理器66;系统代理单元670;总线控制器单元680;集成存储器控制器单元640;一组或一个或多个协处理器620,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(sram)单元630;直接存储器存取(dma)单元660。在一个实施例中,协处理器620包括专用处理器,诸如例如网络或通信处理器、压缩引擎、gpgpu、高吞吐量mic处理器、或嵌入式处理器等等。本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。

可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。

程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。

在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。

在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。

需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。

需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1