图像识别方法、装置、电子设备及可读存储介质与流程
未命名
08-09
阅读:87
评论:0

1.本技术实施例涉及图像处理技术领域,特别涉及一种图像识别方法、装置、电子设备及可读存储介质。
背景技术:
2.在图像处理技术领域,用于识别出图像中的目标对象的图像识别技术较为重要,图像识别技术的应用范围也越来越广。例如,对风景图像进行图像识别,可以识别出风景图像中的动物。
3.相关技术中,电子设备获取到的图像数据可能是对一张图像进行编码处理后得到的编码数据。此时,电子设备需要先对图像的编码数据进行解码处理,以解码得到图像,然后对图像进行图像识别。由于对图像的编码数据进行解码处理需要消耗大量的计算资源,降低了图像识别效率。
技术实现要素:
4.本技术实施例提供了一种图像识别方法、装置、电子设备及可读存储介质,可用于解决因解码处理需要消耗大量的计算资源,而导致图像识别效率低的问题,所述技术方案包括如下内容。
5.一方面,本技术实施例提供了一种图像识别方法,所述方法包括:
6.获取目标图像的编码数据,所述目标图像的编码数据包括所述目标图像中多个宏块的编码数据,所述多个宏块中的任一宏块进行编码处理时所消耗的信息量与所述任一宏块的纹理复杂度成正比,所述任一宏块的纹理复杂度与所述任一宏块中的各像素点的像素值相关;
7.基于各个宏块的编码数据获取所述目标图像对应的轮廓图像,所述轮廓图像用于反映所述目标图像中的物体的轮廓;
8.对所述轮廓图像进行图像识别处理,得到图像识别结果。
9.另一方面,本技术实施例提供了一种图像识别装置,所述装置包括:
10.获取模块,用于获取目标图像的编码数据,所述目标图像的编码数据包括所述目标图像中多个宏块的编码数据,所述多个宏块中的任一宏块进行编码处理时所消耗的信息量与所述任一宏块的纹理复杂度成正比,所述任一宏块的纹理复杂度与所述任一宏块中的各像素点的像素值相关;
11.所述获取模块,还用于基于各个宏块的编码数据获取所述目标图像对应的轮廓图像,所述轮廓图像用于反映所述目标图像中的物体的轮廓;
12.图像识别模块,用于对所述轮廓图像进行图像识别处理,得到图像识别结果。
13.在一种可能的实现方式中,所述获取模块,用于对所述各个宏块的编码数据进行统计处理,得到所述各个宏块所消耗的信息量;从所述各个宏块所消耗的信息量中确定最大的第一信息量;基于所述各个宏块所消耗的信息量和所述第一信息量,确定所述目标图
像对应的轮廓图像。
14.在一种可能的实现方式中,所述获取模块,用于对于任一个宏块,对所述任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到所述任一个宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;将所述任一个宏块对应的各个编码成分所消耗的信息量之和,确定为所述任一个宏块所消耗的信息量。
15.在一种可能的实现方式中,所述获取模块,用于对于任一个宏块,确定所述任一个宏块所消耗的信息量和所述第一信息量之间的比值;将所述各个宏块对应的比值映射到灰度值范围,得到所述目标图像对应的轮廓图像。
16.在一种可能的实现方式中,所述获取模块,用于对于任一个宏块,将所述任一个宏块划分为多个子宏块;对所述任一个宏块的编码数据进行统计处理,得到所述任一个宏块的各个子宏块所消耗的信息量;从所述多个宏块的各个子宏块所消耗的信息量中,确定最大的第二信息量;基于所述多个宏块的各个子宏块所消耗的信息量和所述第二信息量,确定所述目标图像对应的轮廓图像。
17.在一种可能的实现方式中,所述获取模块,用于对于任一个宏块,对所述任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到所述任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;对于任一个子宏块,将所述任一个子宏块对应的各个编码成分所消耗的信息量之和,确定为所述任一个子宏块所消耗的信息量。
18.在一种可能的实现方式中,所述获取模块,用于对于所述任一个宏块的编码数据包含的任一个编码成分,响应于所述任一个编码成分是所述宏块类型、所述宏块预测、所述编码的块模式、所述量化参数偏移量中的任一项,则统计所述任一个编码成分所消耗的信息量,得到所述任一个宏块的各个子宏块对应的所述任一个编码成分所消耗的信息量。
19.在一种可能的实现方式中,所述获取模块,用于对于所述任一个宏块的编码数据包含的任一个编码成分,响应于所述任一个编码成分是所述残差,且所述残差包括的残差系数矩阵的数量不小于所述任一个宏块的子宏块的数量,则从所述残差包括的残差系数矩阵中确定所述任一个宏块的任一个子宏块对应的残差系数矩阵,统计所述任一个子宏块对应的残差系数矩阵所消耗的信息量;响应于所述任一个编码成分是所述残差,且所述残差包括的残差系数矩阵的数量小于所述任一个宏块的子宏块的数量,则基于任一个残差系数矩阵所对应的子宏块的数量和所述任一个残差系数矩阵所消耗的信息量,确定所述任一个残差系数矩阵对应的各个子宏块所消耗的信息量。
20.在一种可能的实现方式中,所述获取模块,用于对于任一个子宏块,确定所述任一个子宏块所消耗的信息量和所述第二信息量之间的比值;将所述多个宏块的各个子宏块对应的比值映射到灰度值范围,得到所述目标图像对应的轮廓图像。
21.在一种可能的实现方式中,所述装置还包括:
22.处理模块,用于响应于所述图像识别结果为所述轮廓图像中包括敏感内容,则过滤所述目标图像的编码数据,或者对所述目标图像的编码数据进行解码处理,得到所述目标图像,对所述目标图像的所述敏感内容进行打码处理。
23.另一方面,本技术实施例提供了一种电子设备,所述电子设备包括处理器和存储
器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现上述任一所述的图像识别方法。
24.另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一所述的图像识别方法。
25.另一方面,还提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一种图像识别方法。
26.本技术实施例提供的技术方案至少带来如下有益效果:
27.本技术实施例提供的技术方案是基于目标图像的编码数据包括的各个宏块的编码数据,获取目标图像对应的轮廓图像,以对轮廓图像进行图像识别。由于不需要对目标图像的编码数据进行解码处理得到目标图像,因此,能节约大量的计算资源,提高图像识别效率。
附图说明
28.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1是本技术实施例提供的一种图像识别方法的实施环境示意图;
30.图2是本技术实施例提供的一种图像识别方法的流程图;
31.图3是本技术实施例提供的一种轮廓图像的示意图;
32.图4是本技术实施例提供的一种宏块的编码数据的示意图;
33.图5是本技术实施例提供的一种视频的处理示意图;
34.图6是本技术实施例提供的一种图像识别处理的示意图;
35.图7是本技术实施例提供的一种图像识别装置的结构示意图;
36.图8是本技术实施例提供的一种终端设备的结构示意图;
37.图9是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
38.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。首先,对本技术实施例涉及到的名词进行解释和说明。
39.像素域:视频像素数据的状态。
40.压缩域:视频像素数据经过编码(如h.264/avc编码)处理后得到的视频压缩数据的状态。编码处理的过程是将视频从像素域转化到压缩域的过程,反之,解码处理的过程是将视频从压缩域还原到像素域的过程。
41.轮廓图:也称为边缘图,是将一幅图像中物体的边缘勾勒出来形成的一幅灰度图像或二值化图像。
42.图1是本技术实施例提供的一种图像识别方法的实施环境示意图,如图1所示,该
实施环境包括终端设备101和服务器102。其中,本技术实施例中的图像识别方法可以由终端设备101执行,也可以由服务器102执行,或者由终端设备101和服务器102共同执行。
43.终端设备101可以是智能手机、游戏主机、台式计算机、平板电脑、膝上型便携计算机、智能电视、智能车载设备、智能语音交互设备、智能家电等。服务器102可以为一台服务器,或者为多台服务器组成的服务器集群,或者为云计算平台和虚拟化中心中的任意一种,本技术实施例对此不加以限定。服务器102可以与终端设备101通过有线网络或无线网络进行通信连接。服务器102可以具有数据处理、数据存储以及数据收发等功能,在本技术实施例中不加以限定。终端设备101和服务器102的数量不受限制,可以是一个或多个。
44.本技术实施例的图像识别方法可以基于云技术实现。云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
45.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
46.基于上述实施环境,本技术实施例提供了一种图像识别方法,以图2所示的本技术实施例提供的一种图像识别方法的流程图为例,该方法可由图1中的终端设备101或者服务器102执行,也可以由终端设备101和服务器102共同执行。为便于描述,将执行本技术实施例中的图像识别方法的终端设备101或者服务器102称为电子设备,该方法可以由电子设备来执行。如图2所示,该方法包括步骤201至步骤203。
47.步骤201,获取目标图像的编码数据,目标图像的编码数据包括目标图像中多个宏块的编码数据,多个宏块中的任一宏块进行编码处理时所消耗的信息量与任一宏块的纹理复杂度成正比,任一宏块的纹理复杂度与任一宏块中的各像素点的像素值相关。
48.本技术实施例不对目标图像的编码数据的获取方式做限定。示例性的,基于h.264/高级视频编码(advanced video coding,avc)对目标图像进行编码处理,得到目标图像的编码数据,其中,h.264是一种数字视频压缩格式。通过对目标图像进行编码处理,实现将目标图像从像素域转化为压缩域,减少目标图像的数据冗余。
49.可选地,目标图像可以是视频中的任意一帧图像,该视频可以是实时录制的直播视频,也可以是已录制视频。对于直播视频,第一终端设备(如主播的终端设备)的摄像头实时采集视频,对实时采集的视频进行编码处理,得到视频码流,并将视频码流发送至电子设备,码流也可以称为比特流、码率。电子设备从视频码流中提取任意一帧图像的码流,该帧图像的码流即为目标图像的编码数据。
50.目标图像包括多个宏块(macroblock),一个宏块由一个亮度像素块和两个色度像素块组成。因此,目标图像的编码数据包括多个宏块的编码数据。对于直播视频,任一个宏块的编码数据也可以称为任一个宏块的比特流、任一个宏块的码流等。
51.本技术实施例中,对目标图像进行编码处理,如基于h.264/avc对目标图像进行编码处理,可以得到目标图像的编码数据。通常情况下,在对目标图像进行编码处理时,若宏
块的纹理相对复杂,则对宏块进行编码处理时所消耗的信息量相对较大,若宏块的纹理相对简单,则对宏块进行编码处理时所消耗的信息量相对较小。也就是说,对宏块进行编码处理时所消耗的信息量与宏块的纹理复杂度成正比,而宏块的纹理复杂度与宏块中各像素点的像素值相关。也就是说,基于宏块的编码数据可以得到对宏块进行编码处理时所消耗的信息量。
52.步骤202,基于各个宏块的编码数据获取目标图像对应的轮廓图像,轮廓图像用于反映目标图像中的物体的轮廓。
53.上文已提及,对宏块进行编码处理时所消耗的信息量可以基于宏块的编码数据得到,而宏块的纹理复杂度与宏块中各像素点的像素值相关,因此,基于各个宏块的编码数据,可以得到各个宏块的像素信息,从而可以得到目标图像对应的轮廓图像,轮廓图像能够反映目标图像中物体的外形。本技术实施例中,物体的外形指的是物体的轮廓,二者含义相同。
54.请参见图3,图3是本技术实施例提供的一种轮廓图像的示意图。其中,(a)是i帧(i frame)对应的轮廓图像。i帧也可以称为内部画面(intra picture),通常是指第一个帧,经过适度地压缩,作为随机访问的参考点,可以当成图像。(b)是p帧(p frame)对应的轮廓图像,p帧由前面的b帧或者i帧预测而来。(c)是b帧(b frame)对应的轮廓图像,b帧由相邻的前一帧、本帧以及后一帧预测而来。从(a)、(b)以及(c)中均可以看出轮廓图像的内容主体,因此,轮廓图像能够反映图像中物体的外形。
55.本技术实施例可以采用两种方式基于各个宏块的编码数据获取目标图像对应的轮廓图像。详细请见下文的实现方式a1和实现方式a2。
56.实现方式a1,基于各个宏块的编码数据获取目标图像对应的轮廓图像,包括:对各个宏块的编码数据进行统计处理,得到各个宏块所消耗的信息量;从各个宏块所消耗的信息量中确定最大的第一信息量;基于各个宏块所消耗的信息量和第一信息量,确定目标图像对应的轮廓图像。
57.本技术实施例中,对任一个宏块的编码数据进行统计处理,得到该宏块所消耗的信息量,宏块所消耗的信息量包括但不限于宏块所消耗的比特数量。宏块所消耗的比特数量也可以称为该宏块的比特开销。其中,宏块所消耗的信息量指的是对宏块进行编码处理时所消耗的信息量,宏块所消耗的信息量可以用来表示宏块的信息熵。需要说明的是,任一个宏块的编码数据包括至少一个编码成分,通过至少一个编码成分记录该宏块的编码信息。
58.在一种可能的实现方式中,对各个宏块的编码数据进行统计处理,得到各个宏块所消耗的信息量,包括:对于任一个宏块,对任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到任一个宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;将任一个宏块对应的各个编码成分所消耗的信息量之和,确定为任一个宏块所消耗的信息量。
59.本技术实施例中,任一个宏块对应一个宏块类型,该宏块类型可以是跳过(skip)类型、直接(direct)类型、脉冲编码调制(pulse code modulation,pcm)类型以及其他类型等,可以将其他类型称为非skip类型、非direct类型以及非pcm类型。宏块对应的宏块类型不同,宏块的编码数据包括的编码成分也可能存在差异。
60.请参见图4,图4是本技术实施例提供的一种宏块的编码数据的示意图。其中,图4是当宏块的宏块类型为非skip类型、非direct类型以及非pcm类型时,该宏块的编码数据所包含的各个编码成分。宏块的编码数据包括但不限于宏块类型(macroblock type,mb_type)、宏块预测(macroblock prediction,mb_pred)、编码的块模式(coded block pattern,cbp)、量化参数偏移量(quantization parameter offset,qp_off)以及残差(residual)等编码成分。
61.宏块类型用于记录宏块的编码类型,宏块的编码类型包括预测方式、分割尺寸、帧间参考方向等。其中,预测方式包括帧内预测和帧间预测。帧内预测的预测值与实际值均位于当前帧图像,帧内预测主要消除图像的空间冗余。帧内预测的压缩率相对较低,可以独立解码,不依赖除当前帧图像之外的其他帧图像的数据,视频中的关键帧图像可以采用帧内预测。帧间预测的实际值位于当前帧图像,预测值位于参考帧图像,帧间预测主要消除图像的时间冗余。帧间预测的压缩率高于帧内预测,但不能独立解码,必须在获取到参考帧图像的数据之后才能重建当前帧图像。分割尺寸用于描述宏块的尺寸信息,宏块的分割尺寸包括16
×
16、16
×
8、8
×
16、8
×
8、4
×
4等。帧间参考方向是参考帧图像相对于当前帧图像的方向,帧间参考方向包括前向、后向和双向。前向是相对于视频的播放顺序,参考帧图像位于当前帧图像之前。后向是相对于视频的播放顺序,参考帧图像位于当前帧图像之后。双向是相对于视频的播放顺序,参考帧图像位于当前帧图像之前和之后。
62.宏块预测包含与宏块预测相关的信息。宏块分为i宏块、p宏块和b宏块。i宏块包含帧内预测模式(intra prediction mode,ipm),也就是说,i宏块是帧内预测,而p宏块和b宏块均是帧间预测。p宏块的分割尺寸和b宏块的分割尺寸均包括16
×
16、16
×
8、8
×
16和8
×
8。其中,对于分割尺寸为16
×
16、16
×
8、8
×
16的p宏块或者b宏块,其包括参考帧索引(reference index,ref_idx)和运动向量差值(motion vector difference,mvd)。对于分割尺寸为8
×
8的p宏块或者b宏块,其包括子宏块类型(sub-macroblock type,sub_mb_type)、参考帧索引和运动向量差值。
63.编码的块模式表示宏块的残差编码方案,用4个比特记录亮度残差系数矩阵中是否含有非零值,用2个比特记录色度残差系数矩阵中是否含有非零值。
64.量化参数偏移量表示宏块的量化参数值相对于当前帧图像的量化参数值的偏移量。任一个宏块可以存在一个量化参数值,该量化参数值用于对宏块的残差系数进行量化,得到量化残差系数,宏块的残差系数能够反应宏块预测值的准确性。当前帧图像也存在一个量化参数值,该量化参数值用于对当前帧图像的残差系数进行量化,当前帧图像的残差系数能够反应当前帧图像预测值的准确性。
65.残差包括宏块亮度的量化残差系数和宏块色度的量化残差系数,其中。宏块亮度包括一个亮度分量y,宏块色度包括两个色度分量u和v。
66.当宏块的宏块类型为skip类型或者direct类型或者pcm类型时,该宏块的编码数据包括至少一个编码成分,本技术实施例不对该宏块的编码数据所包含的编码成分做限定。
67.本技术实施例中,对任一个宏块的编码数据包含的宏块类型进行统计处理,可以得到该宏块对应的宏块类型所消耗的信息量。对任一个宏块的编码数据包含的宏块预测进行统计处理,可以得到该宏块对应的宏块预测所消耗的信息量。对任一个宏块的编码数据
包含的编码的块模式进行统计处理,可以得到该宏块对应的编码的块模式所消耗的信息量。对任一个宏块的编码数据包含的量化参数偏移量进行统计处理,可以得到该宏块对应的量化参数偏移量所消耗的信息量。对任一个宏块的编码数据包含的残差进行统计处理,可以得到该宏块对应的残差所消耗的信息量。
68.接下来,计算任一个宏块对应的宏块类型所消耗的信息量、该宏块对应的宏块预测所消耗的信息量、该宏块对应的编码的块模式所消耗的信息量、该宏块对应的量化参数偏移量所消耗的信息量、该宏块对应的残差所消耗的信息量中至少一项的信息量之和,得到任一个宏块所消耗的信息量。通过这种方式,可以确定目标图像中所有宏块各自所消耗的信息量。
69.接着,从目标图像中所有宏块各自所消耗的信息量中确定最大的信息量,将最大的信息量记为第一信息量。基于所有宏块各自所消耗的信息量和第一信息量,确定目标图像对应的轮廓图像。
70.在一种可能的实现方式中,基于各个宏块所消耗的信息量和第一信息量,确定目标图像对应的轮廓图像,包括:对于任一个宏块,确定任一个宏块所消耗的信息量和第一信息量之间的比值;将各个宏块对应的比值映射到灰度值范围,得到目标图像对应的轮廓图像。
71.本技术实施例中,基于任一个宏块所消耗的信息量和第一信息量,对该宏块所消耗的信息量进行归一化处理。归一化处理的方式可以是计算任一个宏块所消耗的信息量和第一信息量之间的比值,该比值为任一个宏块对应的比值,该比值的值范围为[0,1]。
[0072]
接着,将任一个宏块对应的比值乘以255,以将任一个宏块对应的比值映射到灰度值范围。将任一个宏块对应的映射后的比值记为该宏块对应的映射值,此时,该映射值的值范围为[0,255]。在将目标图像中所有宏块各自对应的比值映射到灰度值范围之后,即可得到目标图像对应的轮廓图像,且该轮廓图像为灰度图像。
[0073]
通过实现方式a1,统计得到各个宏块所消耗的信息量,并基于各个宏块所消耗的信息量,确定目标图像对应的轮廓图像,该轮廓图像可以准确的反映出目标图像的内容主体。为了更好的反应出目标图像的内容主体,提高轮廓图像的清晰度,可以采用实现方式a2来确定目标图像对应的轮廓图像。
[0074]
实现方式a2,基于各个宏块的编码数据获取目标图像对应的轮廓图像,包括:对于任一个宏块,将任一个宏块划分为多个子宏块;对任一个宏块的编码数据进行统计处理,得到任一个宏块的各个子宏块所消耗的信息量;从多个宏块的各个子宏块所消耗的信息量中,确定最大的第二信息量;基于多个宏块的各个子宏块所消耗的信息量和第二信息量,确定目标图像对应的轮廓图像。
[0075]
对于目标图像中的任一个宏块,可以定义该宏块处于目标图像中第m行第n列,则该宏块可以记为{mb
(m,n)
|0≤m≤m-1,0≤n≤n-1},m为在目标图像的宽方向上包含的宏块数量,n为在目标图像的长方向上包含的宏块数量,也就是说,目标图像包括m行n列的宏块,这m行分别记为第0行至第m-1行,这n列分别记为第0列至第n-1列。
[0076]
可以将任一个宏块划分为多个子宏块,且本技术实施例不对子宏块的数量做限定。示例性的,可以将任一个宏块划分为16个分割尺寸为4
×
4的子宏块,此时,任一个宏块包括4行4列的子宏块,这4行分别记为第0行至第3行,这4列分别记为第0列至第3列,则宏块
mb
(m,n)
中第a行第b列的子宏块为
[0077]
接下来,对任一个宏块的编码数据进行统计处理,得到该宏块的各个子宏块所消耗的信息量,任一个子宏块所消耗的信息量包括但不限于该子宏块所消耗的比特数量,该子宏块所消耗的比特数量也可以称为该子宏块的比特开销。其中,子宏块所消耗的信息量指的是对子宏块进行编码处理时所消耗的信息量,子宏块所消耗的信息量可以用来表示子宏块的信息熵。
[0078]
在一种可能的实现方式中,对任一个宏块的编码数据进行统计处理,得到任一个宏块的各个子宏块所消耗的信息量,包括:对于任一个宏块,对任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;对于任一个子宏块,将任一个子宏块对应的各个编码成分所消耗的信息量之和,确定为任一个子宏块所消耗的信息量。
[0079]
需要说明的是,上文已说明了任一个宏块的编码数据所包含的编码成分,因此,本技术实施例中不再对编码成分做赘述。
[0080]
本技术实施例中,对于任一个宏块的编码数据包含的宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项编码成分,对该编码成分进行统计处理,得到该宏块的各个子宏块对应的该编码成分所消耗的信息量,下面将详细介绍统计处理方式。
[0081]
在一种可能的实现方式中,对任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,包括:对于任一个宏块的编码数据包含的任一个编码成分,响应于任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量中的任一项,则统计任一个编码成分所消耗的信息量,得到任一个宏块的各个子宏块对应的任一个编码成分所消耗的信息量。
[0082]
宏块类型、宏块预测、编码的块模式、量化参数偏移量这四个编码成分属于宏块而不属于宏块的某一个子宏块。也就是说,这四个编码成分是宏块的所有子宏块的共享信息。因此,任一个宏块的编码数据包含的这四个编码成分中的任意一个编码成分,相当于是该宏块的各个子宏块的编码数据包含的该任意一个编码成分。
[0083]
对任一个宏块的编码数据包含的宏块类型进行统计处理,可以得到该宏块对应的宏块类型所消耗的信息量bit{mb_type
(m,n)
}。对于该宏块中的任一个子宏块,将该宏块对应的宏块类型所消耗的信息量bit{mb_type
(m,n)
},作为该子宏块对应的宏块类型所消耗的信息量。
[0084]
对任一个宏块的编码数据包含的宏块预测进行统计处理,可以得到该宏块对应的宏块预测所消耗的信息量bit{mb_pred
(m,n)
}。对于该宏块中的任一个子宏块,将该宏块对应的宏块预测所消耗的信息量bit{mb_pred
(m,n)
},作为该子宏块对应的宏块预测所消耗的信息量。
[0085]
对任一个宏块的编码数据包含的编码的块模式进行统计处理,可以得到该宏块对应的编码的块模式所消耗的信息量bit{cbp
(m,n)
}。对于该宏块中的任一个子宏块,将该宏块对应的编码的块模式所消耗的信息量bit{cbp
(m,n)
},作为该子宏块对应的编码的块模式所消耗的信息量。
[0086]
对任一个宏块的编码数据包含的量化参数偏移量进行统计处理,可以得到该宏块对应的量化参数偏移量所消耗的信息量bit{qp_off
(m,n)
}。对于该宏块中的任一个子宏块,将该宏块对应的量化参数偏移量所消耗的信息量bit{qp_off
(m,n)
},作为该子宏块对应的量化参数偏移量所消耗的信息量。
[0087]
在一种可能的实现方式中,对任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,包括:对于任一个宏块的编码数据包含的任一个编码成分,响应于任一个编码成分是残差,且残差包括的残差系数矩阵的数量不小于任一个宏块的子宏块的数量,则从残差包括的残差系数矩阵中确定任一个宏块的任一个子宏块对应的残差系数矩阵,统计任一个子宏块对应的残差系数矩阵所消耗的信息量;响应于任一个编码成分是残差,且残差包括的残差系数矩阵的数量小于任一个宏块的子宏块的数量,则基于任一个残差系数矩阵所对应的子宏块的数量和任一个残差系数矩阵所消耗的信息量,确定任一个残差系数矩阵对应的各个子宏块所消耗的信息量。
[0088]
残差包括宏块亮度的量化残差系数和宏块色度的量化残差系数。由于一个宏块的不同子宏块亮度的量化参数系数可能存在差异,一个宏块的不同子宏块色度的量化参数系数也可能存在差异,因此,需要基于任一个宏块的编码数据包含的残差,确定该宏块的任一个子宏块的编码数据包含的残差。为了便于描述,下面从一个宏块的角度,介绍宏块的任一个子宏块的编码数据包含的残差。
[0089]
一个宏块的编码数据包含的残差包括多个残差系数矩阵,同时,该宏块划分为多个子宏块,因此,可以基于残差系数矩阵的数量和子宏块的数量之间的关系,确定任一个子宏块的编码数据包含的残差。
[0090]
当残差系数矩阵的数量不小于子宏块的数量,也就是说,一个子宏块对应至少一个残差系数矩阵。此时,从多个残差系数矩阵中确定任一个子宏块对应的残差系数矩阵,该子宏块对应的残差系数矩阵即为该子宏块的编码数据包含的残差。然后,对该子宏块对应的残差系数矩阵进行统计处理,得到该子宏块对应的残差系数矩阵所消耗的信息量。
[0091]
例如,对宏块mb
(m,n)
采用4
×
4尺寸的离散余弦变换得到16个残差系数矩阵,此时,任一个残差系数矩阵为4
×
4大小,可以记为4大小,可以记为将宏块mb
(m,n)
分割成16个分割尺寸为4
×
4的子宏块,此时,任一个子宏块与4
×
4大小的残差系数矩阵相对齐,也就是说,一个子宏块对应一个残差系数矩阵。因此,任一个残差系数矩阵是一个子宏块对应的残差系数矩阵,对任一个残差系数矩阵进行统计处理,得到一个子宏块对应的残差系数矩阵所消耗的信息量
[0092]
当残差系数矩阵的数量小于子宏块的数量,也就是说,一个残差系数矩阵对应至少一个子宏块。此时,一个残差系数矩阵为至少一个子宏块的编码数据包含的残差。对于一个残差系数矩阵对应的任一个子宏块,可以对该残差系数矩阵进行统计处理,得到该残差系数矩阵所消耗的信息量,再结合该残差系数矩阵所对应的子宏块的数量,确定该子宏块对应的残差系数矩阵所消耗的信息量。
[0093]
例如,对宏块mb
(m,n)
采用8
×
8尺寸的离散余弦变换得到4个残差系数矩阵,此时,任
一个残差系数矩阵为8
×
8大小,可以记为将宏块mb
(m,n)
分割成16个分割尺寸为4
×
4的子宏块,此时,任一个子宏块与4
×
4大小的残差系数矩阵相对齐,也就是说,一个残差系数矩阵对应四个子宏块。因此,任一个残差系数矩阵是四个子宏块对应的残差系数矩阵,对任一个残差系数矩阵进行统计处理,得到四个子宏块对应的残差系数矩阵所消耗的信息量,任一个子宏块对应的残差系数矩阵所消耗的信息量可以记为
[0094]
接下来,计算任一个子宏块对应的宏块类型所消耗的信息量、该子宏块对应的宏块预测所消耗的信息量、该子宏块对应的编码的块模式所消耗的信息量、该子宏块对应的量化参数偏移量所消耗的信息量、该子宏块对应的残差系数矩阵所消耗的信息量中至少一项的信息量之和,得到该子宏块所消耗的信息量。
[0095]
可选地,任一个子宏块所消耗的信息量是按照如下所示的公式(1)和公式(2)确定的,或者,任一个子宏块所消耗的信息量是按照如下所示的公式(1)和公式(3)确定的。
[0096][0097][0098][0099]
其中,表示任一个子宏块所消耗的信息量,+=表示累加符号,bit{mb_type
(m,n)
}表示该子宏块对应的宏块类型所消耗的信息量,bit{mb_pred
(m,n)
}表示该子宏块对应的宏块预测所消耗的信息量,bit{cbp
(m,n)
}表示该子宏块对应的编码的块模式所消耗的信息量,bit{qp_off
(m,n)
}表示该子宏块对应的量化参数偏移量所消耗的信息量,和均表示该子宏块对应的残差系数矩阵所消耗的信息量。
[0100]
通过上述方式,可以确定目标图像中所有宏块各自的各个子宏块所消耗的信息量,也就是说,可以确定目标图像中所有子宏块各自所消耗的信息量。接着,从目标图像中所有子宏块各自所消耗的信息量中确定最大的信息量,将最大的信息量记为第二信息量。基于目标图像中所有子宏块各自所消耗的信息量和第二信息量,确定目标图像对应的轮廓图像。
[0101]
在一种可能的实现方式中,基于多个宏块的各个子宏块所消耗的信息量和第二信息量,确定目标图像对应的轮廓图像,包括:对于任一个子宏块,确定任一个子宏块所消耗的信息量和第二信息量之间的比值;将多个宏块的各个子宏块对应的比值映射到灰度值范围,得到目标图像对应的轮廓图像。
[0102]
本技术实施例中,对于目标图像中的任一个子宏块,基于该子宏块所消耗的信息
量和第二信息量,对该子宏块所消耗的信息量进行归一化处理。归一化处理的方式可以是计算该宏块所消耗的信息量和第二信息量之间的比值,该比值为该子宏块对应的比值,该比值的值范围为[0,1]。其中,归一化处理的方式如下公式(4)所示。
[0103][0104]
其中,表示目标图像中的任一个子宏块对应的比值,表示该子宏块所消耗的信息量,表示第二信息量。
[0105]
接着,对于目标图像中的任一个子宏块,将该宏块对应的比值乘以255,即计算以将该子宏块对应的比值映射到灰度值范围。将任一个子宏块对应的映射后的比值记为该子宏块对应的映射值,此时,该映射值的值范围为[0,255]。在将目标图像中所有子宏块各自对应的比值映射到灰度值范围之后,即可得到目标图像对应的轮廓图像,且该轮廓图像为灰度图像。
[0106]
通过实现方式a2,将目标图像中的每一个宏块划分为多个子宏块,并统计每一个子宏块所消耗的信息量,使得统计粒度更细。从而使得基于目标图像中所有子宏块所消耗的信息量,确定得到的轮廓图像的清晰度、准确性等加以提升,在后续进行图像识别处理时,也能提高图像识别结果的准确性。
[0107]
步骤203,对轮廓图像进行图像识别处理,得到图像识别结果。
[0108]
本技术实施例中,可以采用任意针对像素域的图像识别算法或者任意针对像素域的图像识别模型,对轮廓图像进行图像识别,得到图像识别结果。图像识别结果为目标图像中包含敏感内容或者目标图像中不包括敏感内容。本技术实施例不对敏感内容做限定,示例性的,敏感内容为低俗内容。
[0109]
若目标图像中不包括敏感内容,则电子设备可以对目标图像的编码数据进行解码处理,得到目标图像,并渲染目标图像,以在电子设备上显示该目标图像。或者,对于直播视频,电子设备可以将目标图像的编码数据发送至第二终端设备(如观众的终端设备),由第二终端设备对目标图像的编码数据进行解码处理,得到目标图像,并渲染目标图像,以在第二终端设备上显示该目标图像。
[0110]
需要说明的是,对于直播视频,电子设备是将视频码流发送至第二终端设备,该视频码流中包括目标图像的码流,也就是说,视频码流中包括目标图像的编码数据。
[0111]
在一种可能的实现方式中,对轮廓图像进行图像识别处理,得到图像识别结果之后,还包括:响应于图像识别结果为轮廓图像中包括敏感内容,则过滤目标图像的编码数据,或者对目标图像的编码数据进行解码处理,得到目标图像,对目标图像的敏感内容进行打码处理。
[0112]
可选地,若目标图像中包括敏感内容,则电子设备过滤掉目标图像的编码数据,避免显示、传播目标图像。对于直播视频,电子设备可以停止向第二终端设备发送视频码流,避免显示、传播目标图像。
[0113]
可选地,若目标图像中包括敏感内容,则电子设备对目标图像的编码数据进行解
码处理,得到目标图像,并对目标图像的敏感内容进行打码处理,以遮蔽敏感内容,得到打码后的目标图像。接着,电子设备可以渲染打码后的目标图像,以在电子设备上显示该打码后的目标图像。对于直播视频,电子设备可以对渲染打码后的目标图像重新进行编码处理,得到打码后的目标图像的编码数据,将打码后的目标图像的编码数据发送至第二终端设备,由第二终端设备对打码后的目标图像的编码数据进行解码处理,得到打码后的目标图像,并渲染打码后的目标图像,以在第二终端设备上显示该打码后的目标图像。
[0114]
需要说明的是,对于直播视频,电子设备从第一终端设备处接收到的视频码流(可以记为第一视频码流)与电子设备向第二终端设备发送的视频码流(可以记为第二视频码流)可以相同,也可以不同。电子设备接收到包含敏感内容的第一视频码流之后,可以过滤包含敏感内容的目标图像的编码数据或者对目标图像中的敏感内容进行打码,向第二终端设备发送不包含敏感内容的第二视频码流,避免敏感内容显示、传播,提高直播视频的质量。
[0115]
上述方法是基于目标图像的编码数据包括的各个宏块的编码数据,获取目标图像对应的轮廓图像,以对轮廓图像进行图像识别。由于不需要对目标图像的编码数据进行解码处理得到目标图像,因此,能节约大量的计算资源,提高图像识别效率。
[0116]
上述从方法步骤的角度阐述了图像识别方法,下面将结合直播场景进行详细的解释和说明。在直播场景中,执行步骤201至步骤203的电子设备为服务器。
[0117]
请参见图5,图5是本技术实施例提供的一种视频的处理示意图。本技术实施例中,主播的终端设备实时采集视频(该视频为直播视频),并对视频进行美颜、添加特效等预处理。其中,视频是与主播相关的视频,如视频是主播正在玩的游戏视频、主播的跳舞视频等。本技术实施例中,实时采集的视频可以称为视频像素流,主播的终端设备对视频像素流进行编码处理,得到视频比特流,视频比特流是视频对应的比特流(也可以称为码流)形式的编码数据。主播的终端设备向服务器发送视频比特流。其中,视频比特流包括多帧图像的编码数据,任一帧图像的编码数据可以为上文提及的目标图像的编码数据。
[0118]
服务器接收视频比特流。服务器从视频比特流中提取帧图像的比特流。接着,利用帧图像的比特流,构建帧图像对应的轮廓图像。之后,对轮廓图像进行图像识别处理,得到图像识别结果。当图像识别结果为帧图像中不包含敏感内容,则服务器向观众的终端设备发送视频比特流。当图像识别结果为帧图像中包含敏感内容,则服务器停止接收主播的终端设备发送的视频比特流,且停止向观众的终端设备发送视频比特流。可选地,服务器可以对视频比特流中的每一帧图像进行图像识别处理,当存在帧图像的图像识别结果为帧图像中包含敏感内容,则服务器停止接收主播的终端设备发送的视频比特流,且停止向观众的终端设备发送视频比特流。
[0119]
观众的终端设备接收到服务器发送的视频比特流之后,对视频比特流进行解码处理,得到视频像素流。接着,对视频像素流进行渲染,以使观众的终端设备显示视频,便于观众观看视频。
[0120]
接下来,请参见图6,图6是本技术实施例提供的一种图像识别处理的示意图。其中,图6所示的图像识别处理是图5中“服务器从视频比特流中提取帧图像的比特流,利用帧图像的比特流,构建帧图像对应的轮廓图像,并对轮廓图像进行图像识别处理”的内容。
[0121]
本技术实施例中,服务器可以接收到视频比特流,从视频比特流中提取帧图像的
比特流,并从帧图像的比特流中提取宏块的比特流。其中,帧图像的比特流对应于上文提及的目标图像的编码数据,宏块的比特流对应于上文提及的宏块的编码数据。将宏块划分为子宏块,由于宏块的比特流包括至少一个编码成分,因此,对各编码成分进行统计处理,得到各个子宏块所消耗的比特数量。其中,子宏块所消耗的比特数量对应于上文提及的子宏块所消耗的信息量。对各个子宏块所消耗的比特数量进行归一化处理,得到各个子宏块对应的比值,将各个子宏块对应的比值映射到灰度值范围,得到帧图像对应的轮廓图像。之后,对轮廓图像进行图像识别处理。
[0122]
需要说明的是,主播的终端设备利用h.264/avc对直播视频进行编码处理,得到视频比特流,则观众的终端设备也需利用h.264/avc对视频比特流进行解码处理,得到直播视频。其中,h.264/avc是一种视频编解码协议,具有广泛的统一的应用。因此,对于主播的终端设备来说,可无缝应用于所有直播架构的拉流场景中,无需做额外的适配工作。同时,对于云端服务器来说,基于视频比特流构建出帧图像对应的轮廓图像,该轮廓图像是像素域的图像,可以利用所有针对像素域的图像识别算法、图像识别模型,对轮廓图像进行图像识别处理。
[0123]
利用h.264/avc对视频比特流进行解码处理时,可以将该解码处理分为三个操作,这三个操作分别为预测与补偿、反变换与反量化、熵解码。本技术实施例中,对于不同帧类型的帧图像,分别统计各个操作所需要的时间,并基于各个操作所需的时间计算各个操作的时间占比,得到下表1。
[0124]
表1
[0125][0126]
从表1可以看出,利用h.264/avc对视频比特流进行解码处理时,预测与补偿的时间占比远大于反变换与反量化的时间占比,且预测与补偿的时间占比也要远大于熵解码的时间占比。而熵解码对应于本技术实施例中的服务器利用帧图像的比特流构建帧图像对应的轮廓图像。
[0127]
也就是说,本技术实施例中,服务器仅需进行熵解码,即可得到轮廓图像,节省了预测与补偿、反变换与反量化。对于i帧的帧图像,可以降低72.07%的时间开销,对于p帧的帧图像,可以降低80.29%的时间开销,对于b帧的帧图像,可以降低85.81%的时间开销。由此可知,本技术实施例的图像识别方法,能节约大量的计算资源,提高图像识别效率。
[0128]
图7所示为本技术实施例提供的一种图像识别装置的结构示意图,如图7所示,该装置包括:
[0129]
获取模块701,用于获取目标图像的编码数据,目标图像的编码数据包括目标图像中多个宏块的编码数据,多个宏块中的任一宏块进行编码处理时所消耗的信息量与任一宏块的纹理复杂度成正比,任一宏块的纹理复杂度与任一宏块中的各像素点的像素值相关;
[0130]
获取模块701,还用于基于各个宏块的编码数据获取目标图像对应的轮廓图像,轮廓图像用于反映目标图像中的物体的轮廓;
[0131]
图像识别模块702,用于对轮廓图像进行图像识别处理,得到图像识别结果。
[0132]
在一种可能的实现方式中,获取模块701,用于对各个宏块的编码数据进行统计处理,得到各个宏块所消耗的信息量;从各个宏块所消耗的信息量中确定最大的第一信息量;基于各个宏块所消耗的信息量和第一信息量,确定目标图像对应的轮廓图像。
[0133]
在一种可能的实现方式中,获取模块701,用于对于任一个宏块,对任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到任一个宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;将任一个宏块对应的各个编码成分所消耗的信息量之和,确定为任一个宏块所消耗的信息量。
[0134]
在一种可能的实现方式中,获取模块701,用于对于任一个宏块,确定任一个宏块所消耗的信息量和第一信息量之间的比值;将各个宏块对应的比值映射到灰度值范围,得到目标图像对应的轮廓图像。
[0135]
在一种可能的实现方式中,获取模块701,用于对于任一个宏块,将任一个宏块划分为多个子宏块;对任一个宏块的编码数据进行统计处理,得到任一个宏块的各个子宏块所消耗的信息量;从多个宏块的各个子宏块所消耗的信息量中,确定最大的第二信息量;基于多个宏块的各个子宏块所消耗的信息量和第二信息量,确定目标图像对应的轮廓图像。
[0136]
在一种可能的实现方式中,获取模块701,用于对于任一个宏块,对任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;对于任一个子宏块,将任一个子宏块对应的各个编码成分所消耗的信息量之和,确定为任一个子宏块所消耗的信息量。
[0137]
在一种可能的实现方式中,获取模块701,用于对于任一个宏块的编码数据包含的任一个编码成分,响应于任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量中的任一项,则统计任一个编码成分所消耗的信息量,得到任一个宏块的各个子宏块对应的任一个编码成分所消耗的信息量。
[0138]
在一种可能的实现方式中,获取模块701,用于对于任一个宏块的编码数据包含的任一个编码成分,响应于任一个编码成分是残差,且残差包括的残差系数矩阵的数量不小于任一个宏块的子宏块的数量,则从残差包括的残差系数矩阵中确定任一个宏块的任一个子宏块对应的残差系数矩阵,统计任一个子宏块对应的残差系数矩阵所消耗的信息量;响应于任一个编码成分是残差,且残差包括的残差系数矩阵的数量小于任一个宏块的子宏块的数量,则基于任一个残差系数矩阵所对应的子宏块的数量和任一个残差系数矩阵所消耗的信息量,确定任一个残差系数矩阵对应的各个子宏块所消耗的信息量。
[0139]
在一种可能的实现方式中,获取模块701,用于对于任一个子宏块,确定任一个子宏块所消耗的信息量和第二信息量之间的比值;将多个宏块的各个子宏块对应的比值映射到灰度值范围,得到目标图像对应的轮廓图像。
[0140]
在一种可能的实现方式中,装置还包括:
[0141]
处理模块,用于响应于图像识别结果为轮廓图像中包括敏感内容,则过滤目标图
像的编码数据,或者对目标图像的编码数据进行解码处理,得到目标图像,对目标图像的敏感内容进行打码处理。
[0142]
上述装置是基于目标图像的编码数据包括的各个宏块的编码数据,获取目标图像对应的轮廓图像,以对轮廓图像进行图像识别。由于不需要对目标图像的编码数据进行解码处理得到目标图像,因此,能节约大量的计算资源,提高图像识别效率。
[0143]
应理解的是,上述图7提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0144]
图8示出了本技术一个示例性实施例提供的终端设备800的结构框图。该终端设备800包括有:处理器801和存储器802。
[0145]
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0146]
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器801所执行以实现本技术中方法实施例提供的图像识别方法。
[0147]
在一些实施例中,终端设备800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807和电源808中的至少一种。
[0148]
外围设备接口803可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0149]
射频电路804用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包
括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
[0150]
显示屏805用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置在终端设备800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端设备800的不同表面或呈折叠设计;在另一些实施例中,显示屏805可以是柔性显示屏,设置在终端设备800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
[0151]
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
[0152]
音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
[0153]
电源808用于为终端设备800中的各个组件进行供电。电源808可以是交流电、直流电、一次性电池或可充电电池。当电源808包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
[0154]
在一些实施例中,终端设备800还包括有一个或多个传感器809。该一个或多个传感器809包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、光学传感器814以及接近传感器815。
[0155]
加速度传感器811可以检测以终端设备800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
[0156]
陀螺仪传感器812可以检测终端设备800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端设备800的3d动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
[0157]
压力传感器813可以设置在终端设备800的侧边框和/或显示屏805的下层。当压力传感器813设置在终端设备800的侧边框时,可以检测用户对终端设备800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在显示屏805的下层时,由处理器801根据用户对显示屏805的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
[0158]
光学传感器814用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器814采集的环境光强度,控制显示屏805的显示亮度。具体地,当环境光强度较高时,调高显示屏805的显示亮度;当环境光强度较低时,调低显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器814采集的环境光强度,动态调整摄像头组件806的拍摄参数。
[0159]
接近传感器815,也称距离传感器,通常设置在终端设备800的前面板。接近传感器815用于采集用户与终端设备800的正面之间的距离。在一个实施例中,当接近传感器815检测到用户与终端设备800的正面之间的距离逐渐变小时,由处理器801控制显示屏805从亮屏状态切换为息屏状态;当接近传感器815检测到用户与终端设备800的正面之间的距离逐渐变大时,由处理器801控制显示屏805从息屏状态切换为亮屏状态。
[0160]
本领域技术人员可以理解,图8中示出的结构并不构成对终端设备800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0161]
图9为本技术实施例提供的服务器的结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器901和一个或多个的存储器902,其中,该一个或多个存储器902中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器901加载并执行以实现上述各个方法实施例提供的图像识别方法,示例性的,处理器901为cpu。当然,该服务器900还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器900还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0162]
在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种图像识别方法。
[0163]
可选地,上述计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
[0164]
在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一种图像识别方法。
[0165]
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0166]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0167]
以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种图像识别方法,其特征在于,所述方法包括:获取目标图像的编码数据,所述目标图像的编码数据包括所述目标图像中多个宏块的编码数据,所述多个宏块中的任一宏块进行编码处理时所消耗的信息量与所述任一宏块的纹理复杂度成正比,所述任一宏块的纹理复杂度与所述任一宏块中的各像素点的像素值相关;基于各个宏块的编码数据获取所述目标图像对应的轮廓图像,所述轮廓图像用于反映所述目标图像中的物体的轮廓;对所述轮廓图像进行图像识别处理,得到图像识别结果。2.根据权利要求1所述的方法,其特征在于,所述基于各个宏块的编码数据获取所述目标图像对应的轮廓图像,包括:对所述各个宏块的编码数据进行统计处理,得到所述各个宏块所消耗的信息量;从所述各个宏块所消耗的信息量中确定最大的第一信息量;基于所述各个宏块所消耗的信息量和所述第一信息量,确定所述目标图像对应的轮廓图像。3.根据权利要求2所述的方法,其特征在于,所述对所述各个宏块的编码数据进行统计处理,得到所述各个宏块所消耗的信息量,包括:对于任一个宏块,对所述任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到所述任一个宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;将所述任一个宏块对应的各个编码成分所消耗的信息量之和,确定为所述任一个宏块所消耗的信息量。4.根据权利要求2所述的方法,其特征在于,所述基于所述各个宏块所消耗的信息量和所述第一信息量,确定所述目标图像对应的轮廓图像,包括:对于任一个宏块,确定所述任一个宏块所消耗的信息量和所述第一信息量之间的比值;将所述各个宏块对应的比值映射到灰度值范围,得到所述目标图像对应的轮廓图像。5.根据权利要求1所述的方法,其特征在于,所述基于各个宏块的编码数据获取所述目标图像对应的轮廓图像,包括:对于任一个宏块,将所述任一个宏块划分为多个子宏块;对所述任一个宏块的编码数据进行统计处理,得到所述任一个宏块的各个子宏块所消耗的信息量;从所述多个宏块的各个子宏块所消耗的信息量中,确定最大的第二信息量;基于所述多个宏块的各个子宏块所消耗的信息量和所述第二信息量,确定所述目标图像对应的轮廓图像。6.根据权利要求5所述的方法,其特征在于,所述对所述任一个宏块的编码数据进行统计处理,得到所述任一个宏块的各个子宏块所消耗的信息量,包括:对于任一个宏块,对所述任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到所述任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,任一个编码成分是宏块类型、宏块预测、编码的块模式、量化参数偏移量以及残差中的任一项;
对于任一个子宏块,将所述任一个子宏块对应的各个编码成分所消耗的信息量之和,确定为所述任一个子宏块所消耗的信息量。7.根据权利要求6所述方法,其特征在于,所述对所述任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到所述任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,包括:对于所述任一个宏块的编码数据包含的任一个编码成分,响应于所述任一个编码成分是所述宏块类型、所述宏块预测、所述编码的块模式、所述量化参数偏移量中的任一项,则统计所述任一个编码成分所消耗的信息量,得到所述任一个宏块的各个子宏块对应的所述任一个编码成分所消耗的信息量。8.根据权利要求6所述的方法,其特征在于,所述对所述任一个宏块的编码数据包含的至少一个编码成分进行统计处理,得到所述任一个宏块的各个子宏块对应的各个编码成分所消耗的信息量,包括:对于所述任一个宏块的编码数据包含的任一个编码成分,响应于所述任一个编码成分是所述残差,且所述残差包括的残差系数矩阵的数量不小于所述任一个宏块的子宏块的数量,则从所述残差包括的残差系数矩阵中确定所述任一个宏块的任一个子宏块对应的残差系数矩阵,统计所述任一个子宏块对应的残差系数矩阵所消耗的信息量;响应于所述任一个编码成分是所述残差,且所述残差包括的残差系数矩阵的数量小于所述任一个宏块的子宏块的数量,则基于任一个残差系数矩阵所对应的子宏块的数量和所述任一个残差系数矩阵所消耗的信息量,确定所述任一个残差系数矩阵对应的各个子宏块所消耗的信息量。9.根据权利要求5所述的方法,其特征在于,所述基于所述多个宏块的各个子宏块所消耗的信息量和所述第二信息量,确定所述目标图像对应的轮廓图像,包括:对于任一个子宏块,确定所述任一个子宏块所消耗的信息量和所述第二信息量之间的比值;将所述多个宏块的各个子宏块对应的比值映射到灰度值范围,得到所述目标图像对应的轮廓图像。10.根据权利要求1至9任一项所述的方法,其特征在于,所述对所述轮廓图像进行图像识别处理,得到图像识别结果之后,还包括:响应于所述图像识别结果为所述轮廓图像中包括敏感内容,则过滤所述目标图像的编码数据,或者对所述目标图像的编码数据进行解码处理,得到所述目标图像,对所述目标图像的所述敏感内容进行打码处理。11.一种图像识别装置,其特征在于,所述装置包括:获取模块,用于获取目标图像的编码数据,所述目标图像的编码数据包括所述目标图像中多个宏块的编码数据,所述多个宏块中的任一宏块进行编码处理时所消耗的信息量与所述任一宏块的纹理复杂度成正比,所述任一宏块的纹理复杂度与所述任一宏块中的各像素点的像素值相关;所述获取模块,还用于基于各个宏块的编码数据获取所述目标图像对应的轮廓图像,所述轮廓图像用于反映所述目标图像中的物体的轮廓;图像识别模块,用于对所述轮廓图像进行图像识别处理,得到图像识别结果。
12.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现如权利要求1至10任一所述的图像识别方法。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至10任一所述的图像识别方法。14.一种计算机程序产品,其特征在于,所述计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至10任一所述的图像识别方法。
技术总结
本申请公开了一种图像识别方法、装置、电子设备及可读存储介质,属于图像处理技术领域。方法包括:获取目标图像的编码数据,目标图像的编码数据包括目标图像中多个宏块的编码数据,多个宏块中的任一宏块进行编码处理时所消耗的信息量与任一宏块的纹理复杂度成正比,任一宏块的纹理复杂度与任一宏块中的各像素点的像素值相关;基于各个宏块的编码数据获取目标图像对应的轮廓图像,轮廓图像用于反映目标图像中的物体的轮廓;对轮廓图像进行图像识别处理,得到图像识别结果。由于不需要对目标图像的编码数据进行解码处理得到目标图像,因此能节约大量的计算资源,提高图像识别效率。提高图像识别效率。提高图像识别效率。
技术研发人员:梁剑
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.01.28
技术公布日:2023/8/8
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种厨余垃圾桶的制作方法 下一篇:一种回转贴标机瓶托装置的制作方法