CN114972182A - 一种物体检测方法及其装置 - Google Patents
一种物体检测方法及其装置 Download PDFInfo
- Publication number
- CN114972182A CN114972182A CN202210395863.8A CN202210395863A CN114972182A CN 114972182 A CN114972182 A CN 114972182A CN 202210395863 A CN202210395863 A CN 202210395863A CN 114972182 A CN114972182 A CN 114972182A
- Authority
- CN
- China
- Prior art keywords
- confidence
- target
- depth value
- depth
- weight
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- 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
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种物体检测方法,涉及人工智能领域,包括:获取目标图像;通过机器学习模型,对目标图像中的物体进行检测,输出物体的第一深度值以及目标信息,目标信息包括如下信息的至少一种:物体的几何特征、物体的关键点信息、物体的位置特征;根据目标信息,预测物体的至少一个第二深度值;对第一深度值以及至少一个第二深度值进行融合,以得到物体的目标深度。本申请通过机器学习模型输出的物体的相关属性信息(目标信息),基于不同的原理,对目标的中心点所在的深度进行估计,从而可以获得至少一个具有差异的、多样化的深度预测,进而可以基于通过多个不同方式获取的物体的多个深度值,来确定一个更准确的物体的深度值。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种物体检测方法及其装置。
背景技术
计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主***中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机或摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工***从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成象***代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。
目前视觉感知网络能完成的功能越来越多,包括图片分类、2D检测、语义分割(Mask)、关键点检测、线性物体检测(比如自动驾驶技术中的车道线或停止线检测)、可行驶区域检测等。另外,视觉感知***具有成本低、非接触性、体积小、信息量大的特点。随着视觉感知算法的精度的不断提高,其成为当今众多人工智能***的关键技术,得到越来越广泛的应用,如:高级驾驶辅助***(advanced driving assistant system,ADAS)和自动驾驶***(autonomous driving system,ADS)中对路面上的动态障碍物(人或车)、静态物体(交通灯、交通标志或交通锥状物)的识别,在终端视觉的拍照美颜功能中通过识别人体的Mask和关键点实现瘦身效果等。
无论在自动驾驶(ADS)还是高级辅助驾驶***(ADAS)中,车辆都需要实时感知道路环境中的其他交通参与者,以确保驾驶安全并支持其下一步的驾驶决策。而在智能车的所有传感器中,摄像头可以提供分辨率最高、细节最丰富的信息。此外,视觉感知***具有成本低、体积小的特点,因此通过视觉信号感知并建模当前车辆附近的其他交通参与者是智能车感知***中的关键技术。其中对周围车辆、行人进行目标检测是最重要的感知功能,目前已经具有广泛的应用,如:在ADAS、ADS中对周围环境车辆位置进行估计,以避免碰撞并保持安全距离;预测周围车辆的朝向和尺寸并在此基础上预测其未来的运动轨迹,使自动驾驶车辆规划安全、舒适的行进路线等。
对图像中的交通参与者进行检测并获取相关信息是基于摄像头的自动驾驶感知***中最具挑战性的问题。同时,交通参与者的类型多样,其相对摄像头的距离、遮挡程度、光照等多种环境因素都会带来进一步的干扰。如何提高目标检测的准确性是让智能车精准感知周围交通参与者的位置并进行下一步驾驶决策的关键。
随着深度学习技术的发展,采用卷积神经网络(convolutional neuralnetworks,CNN)进行目标检测成为目前该领域发展的趋势。在现有的研究中,根据获取目标深度信息方式的不同,目标检测方法一般可以划分为基于神经网络直接估计和通过估计目标的关键点并基于目标的其他信息进行几何推理两种方法。基于直接估计的方法,要求神经网络根据各目标在图像上的外观学习其相对于相机的深度,并在推理阶段直接从网络中获取对目标的深度、朝向、尺寸的估计,这种方法流程简单但推理精度不够准确,一旦拍摄图像的相机发生改变,精度往往会大幅下降。
发明内容
本申请提供了一种物体检测方法,可以提高对图像中的物体进行检测时得到的深度值的精度。
第一方面,本申请提供了一种物体检测方法,包括:获取目标图像;通过机器学习模型,对所述目标图像中的物体进行检测,输出所述物体的第一深度值以及目标信息,所述目标信息包括如下信息的至少一种:所述物体的几何特征、所述物体的关键点信息、所述物体的位置特征;根据所述目标信息,预测所述物体的至少一个第二深度值;对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。
在一种可能的实现中,目标图像可以包括至少一个物体,本申请实施例中的物体可以为目标图像中的任意一个物体。
在一种可能的实现中,机器学习模型的推理精度不够准确,一旦拍摄图像的相机发生改变或者是拍摄场景的改变,精度往往会大幅下降。本申请实施例中,通过机器学习模型输出的物体的相关属性信息(也就是本申请实施例中的目标信息),基于不同的原理,对目标的中心点所在的深度进行估计,从而可以获得至少一个具有差异的、多样化的深度预测,进而可以基于通过多个不同方式获取的物体的多个深度值,来确定一个更准确的物体的深度值。
在一种可能的实现中,所述通过机器学习模型,对所述目标图像中的物体进行检测之后,所述方法还包括:输出所述第一深度值的第一置信度,以及预测每个所述第二深度值的第二置信度;对所述第一置信度以及所述至少一个第二置信度进行融合,以得到所述目标深度的目标置信度。
本申请通过使用不同的理论假设和目标的属性组合,同时产生多组深度估计及每个深度估计的不确定度,并在后续过程中根据不确定度的大小选择和融合高可靠性的深度预测、舍弃不可靠的错误预测,从而最终产生鲁棒的深度估计结果,极大的提升了***对于不同环境的检测鲁棒性和准确性,此外不确定度还帮助***产生了一个更加可靠的对预测结果的评估打分,进一步提升了检测的精度和***可解释性。
在一种可能的实现中,可以通过N点透视算法PnP来预测所述物体的至少一个第二深度值。
具体的,所述目标信息中的所述关键点信息可以包括所述物体的的多个关键点在所述图像上的2D位置,所述物体的几何特征包括所述物体的物理尺寸,所述物体的位置特征包括所述物体的朝向角度。进而可以根据所述目标信息,通过N点透视算法PnP,预测所述物体的至少一个第二深度值。
在本申请实施例中,关心目标中心点的深度,因此可以将目标的3D中心点也被定义为一个关键点,当给出其在图像上的2D位置(uc,vc)时,物体的中心点位置可以表达成仅与z有关的形式:
基于此,每个关键点此时可以表示成2个关于z值的线性方程,因此可以计算出两组对目标中心点z值的估计。
在一种可能的实现中,还可以基于基于物体在预设方向的长度进行深度预测。具体的,所述物体的几何特征包括所述物体的3D包络盒在预设方向上的多个像素尺寸、以及所述物体在所述预设方向上的物理尺寸;进而,可以根据所述多个像素尺寸以及所述物理尺寸之间的几何关系,预测所述物体的至少一个第二深度值。
以预设方向为竖直方向为例,此时预设方向的长度为高度,网络可以预测目标的物理高度H,和目标3D包围盒角点和中心点在包围盒上下表面的投影点(即预先定义的关键点),由于目标的物理高度与这些关键点间的距离是相关的,因此可以通过以下公式得到对关键点的深度估计:
其中f是相机的内参数,可以事先获得,H是网络估计的目标物理高度,h是一对处于目标3D包围盒上下表面的关键点间的垂直距离。
在一种可能的实现中,所述对所述第一置信度以及所述至少一个第二置信度进行融合,包括:获取所述第一置信度以及每个所述第二置信度的第一权重;根据所述第一权重,对所述第一置信度以及所述至少一个第二置信度进行加权求和。
其中,所述第一置信度以及每个所述第二置信度的第一权重可以理解为第一置信度对应的第一权重、以及每个所述第二置信度对应的第一权重。
在一种可能的实现中,融合的方式可以为加权求和,具体的,可以获取所述第一深度值以及每个所述第二深度值的第二权重;并根据所述第二权重,对所述第一深度值以及所述至少一个第二深度值进行加权求和。
其中,所述第一深度值以及每个所述第二深度值的第二权重可以理解为第一深度值对应的第二权重、以及每个所述第二深度值对应的第二权重。
在一种可能的实现中,可以基于第一深度值以及每个第二深度值的置信度(或者不确定度)来确定所述第一深度值以及每个所述第二深度值的第二权重,其中,置信度(或者不确定度)可以描述深度值的可靠程度,置信度越高的深度值,其对应的权重越大,也就是,所述第二权重的数值与对应的深度值的置信度正相关。
其中,第一深度值的置信度可以为机器学习模型的输出,通过不同方式得到的第二深度值的置信度可以在模型训练时作为可训练的参数被更新,在模型收敛时,可以得到各个更新后的第二深度值的置信度。在一种可能的实现中,也可以预先设定各个第二深度值的第二权重,这里并不限定。
在一种可能的实现中,所述方法还包括:获取所述机器学习模型输出的所述物体的3D包络盒的置信度;对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,以得到所述物体的几何置信度。
在一种可能的实现中,所述对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,包括:获取所述物体的3D包络盒的置信度以及所述目标置信度的第三权重;根据所述第三权重,对所述物体的3D包络盒的置信度以及所述目标置信度进行加权求和。
在一种可能的实现中,所述方法还包括:获取所述机器学习模型输出的所述物体的2D包络盒的置信度;根据所述物体的2D包络盒的置信度以及所述几何置信度,得到所述物体的检测置信度。
第二方面,本申请提供了一种物体检测装置,包括:
获取模块,用于获取目标图像;
物体检测模块,用于通过机器学习模型,对所述目标图像中的物体进行检测,输出所述物体的第一深度值以及目标信息,所述目标信息包括如下信息的至少一种:所述物体的几何特征、所述物体的关键点信息、所述物体的位置特征;
深度值预测模块,用于根据所述目标信息,预测所述物体的至少一个第二深度值;
融合模块,用于对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。
在一种可能的实现中,所述装置还包括:
置信度预测模块,用于在所述通过机器学习模型,对所述目标图像中的物体进行检测之后,输出所述第一深度值的第一置信度,以及预测每个所述第二深度值的第二置信度;
所述融合模块,还用于对所述第一置信度以及所述至少一个第二置信度进行融合,以得到所述目标深度的目标置信度。
在一种可能的实现中,所述关键点信息包括所述物体的的多个关键点在所述图像上的2D位置;
所述深度值预测模块,具体用于:
根据所述目标信息,通过N点透视算法PnP,预测所述物体的至少一个第二深度值。
在一种可能的实现中,所述物体的几何特征包括所述物体的物理尺寸,所述物体的位置特征包括所述物体的朝向角度。
在一种可能的实现中,所述物体的几何特征包括所述物体的3D包络盒在预设方向上的多个像素尺寸、以及所述物体在所述预设方向上的物理尺寸;
所述深度值预测模块,具体用于:
根据所述多个像素尺寸以及所述物理尺寸之间的几何关系,预测所述物体的至少一个第二深度值。
在一种可能的实现中,所述融合模块,具体用于:
获取所述第一置信度以及每个所述第二置信度的第一权重;
根据所述第一权重,对所述第一置信度以及所述至少一个第二置信度进行加权求和。
在一种可能的实现中,所述融合模块,具体用于:
获取所述第一深度值以及每个所述第二深度值的第二权重;
根据所述第二权重,对所述第一深度值以及所述至少一个第二深度值进行加权求和。
在一种可能的实现中,所述获取模块,还用于:
获取所述机器学习模型输出的所述物体的3D包络盒的置信度;
所述融合模块,还用于:
对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,以得到所述物体的几何置信度。
在一种可能的实现中,所述融合模块,具体用于:
获取所述物体的3D包络盒的置信度以及所述目标置信度的第三权重;
根据所述第三权重,对所述物体的3D包络盒的置信度以及所述目标置信度进行加权求和。
在一种可能的实现中,所述获取模块,还用于:
获取所述机器学习模型输出的所述物体的2D包络盒的置信度;
置信度确定模块,用于根据所述物体的2D包络盒的置信度以及所述几何置信度,得到所述物体的检测置信度。
第三方面,本申请实施例提供了一种物体检测装置,可以包括存储器、处理器以及总线***,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行如上述第一方面及其任一可选的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
第五方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
第六方面,本申请提供了一种芯片***,该芯片***包括处理器,用于支持执行设备或训练设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,所述芯片***还包括存储器,所述存储器,用于保存执行设备或训练设备必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1为人工智能主体框架的一种结构示意图;
图2a和图2b为本发明的应用***框架示意;
图3为本申请的一种应用场景示意;
图4为本申请的一种应用场景示意;
图5为本申请的一种***架构示意;
图6为本申请实施例的神经网络的结构示意;
图7为本申请实施例的神经网络的结构示意;
图8为本申请实施例提供的一种芯片的硬件结构;
图9为本申请实施例提供的一种物体检测方法的流程示意;
图10a和图10b为本申请实施例的主干网络backbone;
图11为一种FPN的结构示意;
图12a为一种header的示意;
图12b为一种header的RPN层的示意;
图13为本实施例中的一种网络结构的示意;
图14为本申请实施例提供的一种heatmap的示意;
图15为本申请实施例提供的一种角度示意;
图16为本申请实施例提供的一种高度选取的示意;
图17a为本申请实施例提供的***流程示意图;
图17b为本申请实施例提供的物体检测装置的一种结构示意图;
图18为本申请实施例提供的执行设备的一种结构示意图;
图19为本申请实施例提供的训练设备一种结构示意图;
图20为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、***、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
首先对人工智能***总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到***的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能***提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算***中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有***的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能***中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用***,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能***在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市等。
本申请实施例主要应用在驾驶辅助、自动驾驶、手机终端等需要完成多种感知任务的领域。本发明的应用***框架如图2a和图2b所示,视频经过抽帧得到单张图片,该图片送入到本发明中图2a或图2b所示的感知网络,得到该图片中感兴趣物体的2D、3D、Mask(掩膜)、关键点等信息。这些检测结果输出到后处理模块进行处理,比如在自动驾驶***中送入规划控制单元进行决策、在手机终端中送入美颜算法进行处理得到美颜后的图片。下面分别对ADAS/ADS视觉感知***和手机美颜两种应用场景做简单的介绍。
应用场景1:ADAS/ADS视觉感知***
如图3所示,在ADAS和ADS中,需要实时进行多类型的2D目标检测,包括:动态障碍物(行人(Pedestrian)、骑行者(Cyclist)、三轮车(Tricycle)、轿车(Car)、卡车(Truck)、公交车(Bus)),静态障碍物(交通锥标(TrafficCone)、交通棍标(TrafficStick)、消防栓(FireHydrant)、摩托车(Motocycle)、自行车(Bicycle)),交通标志(TrafficSign、导向标志(GuideSign)、广告牌(Billboard)、红色交通灯(TrafficLight_Red)/黄色交通灯(TrafficLight_Yellow)/绿色交通灯(TrafficLight_Green)/黑色交通灯(TrafficLight_Black)、路标(RoadSign))。另外,为了准确获取动态障碍物的在3维空间所占的区域,还需要对动态障碍物进行3D估计,输出3D框。为了与激光雷达的数据进行融合,需要获取动态障碍物的Mask,从而把打到动态障碍物上的激光点云筛选出来;为了进行精确的泊车位,需要同时检测出泊车位的4个关键点;为了进行构图定位,需要检测出静态目标的关键点。使用本申请实施例提供的技术方案,可以完成上述的全部或一部分功能。
例如,本申请实施例提供的技术方案可以应用于辅助驾驶、高级辅助驾驶中的自适应巡航。
ADAS中的自适应巡航功能需要根据车道前方车辆的位置和速度,自适应地调整自车的速度,从而实现自动巡航而不发生碰撞。当本车车道前方没有其他交通参与者(目标时),自车根据预先设定的速度或者道路限速前进。例如,当本车的感知***检测到有其他交通参与者进入到本车道的前方,此时自车会根据白车的位置和速度,自动降低本车的速度,避免前车减速发生碰撞。
例如,本申请实施例提供的技术方案可以应用于自动辅助驾驶中和监控中的目标轨迹预测。
轨迹预测通过相机感知道路场景,并通过目标检测算法获取重要交通参与者在环境中的位置、朝向、尺寸等信息,通过累计多帧检测结果就可以获得各目标的运动速度和方向,从而实现对目标未来运动轨迹的预测,并作为后续自动驾驶车辆决策控制的依据。例如,可以为自动驾驶车辆对周围车辆未来运动方向的预测,例如,可以在监控场景中,通过检测行人的朝向和位置,对其未来运动做出预测,从而提前识别可能出现的人群形为。
应用场景2:手机美颜功能
如图4所示,在手机中,通过本申请实施例提供的物体检测方法可以检测出人体的Mask和关键点,可以对人体相应的部位进行放大缩小,比如进行收腰和美臀操作,从而输出美颜的图片。
应用场景3:图像分类场景:
物体识别装置在获取待分类图像后,采用本申请的物体识别方法获取待分类图像中的物体的类别,然后可根据待分类图像中物体的物体的类别对待分类图像进行分类。对于摄影师来说,每天会拍很多照片,有动物的,有人物,有植物的。采用本申请的方法可以快速地将照片按照照片中的内容进行分类,可分成包含动物的照片、包含人物的照片和包含植物的照片。
对于图像数量比较庞大的情况,人工分类的方式效率比较低下,并且人在长时间处理同一件事情时很容易产生疲劳感,此时分类的结果会有很大的误差;而采用本申请的方法可以将图像进行分类。
应用场景4商品分类:
物体识别装置获取商品的图像后,然后采用本申请的物体识别方法获取商品的图像中商品的类别,然后根据商品的类别对商品进行分类。对于大型商场或超市中种类繁多的商品,采用本申请的物体检测方法可以完成商品的分类,降低了时间开销和人工成本。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)物体识别,利用图像处理和机器学习、计算机图形学等相关方法,确定图像物体的类别。
(2)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(3)深度神经网络
深度神经网络(Deep Neural Network,DNN),可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准,我们常说的多层神经网络和深度神经网络其本质上是同一个东西。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于DNN层数多,则系数W和偏移向量的数量也就是很多了。那么,具体的参数在DNN是如何定义的呢?首先我们来看看系数W的定义。以一个三层的DNN为例,如:第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结下,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为注意,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。
(4)卷积神经网络(Convosutionas Neuras Network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(5)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
(6)循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。
在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(7)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(8)反向传播算法
神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
下面介绍本申请实施例提供***架构。
参见图5,本申请实施例提供了一种***架构100。如所述***架构100所示,数据采集设备160用于采集训练数据,本申请实施例中训练数据包括:物体的图像或者图像块及物体的类别;并将训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到机器学习模型,机器学习模型可以包括CNN特征提取模型(解释说明:这里的特征提取模型就是前面介绍的经训练阶段训练得到的模型,可以是用于特征提取的机器学习模型等)以及头端(header)。该CNN特征提取模型能够用于实现本申请实施例提供的机器学习模型,即,将待识别图像或图像块通过相关预处理后输入该CNN特征提取模型,即可得到待识别图像或图像块感兴趣物体的2D、3D、Mask、关键点等信息。本申请实施例中的CNN特征提取模型具体可以为CNN卷积神经网络。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行CNN特征提取模型的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则可以应用于不同的***或设备中,如应用于图5所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在图5中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:待识别图像或者图像块或者图片。
在执行设备120对输入数据进行预处理,或者在执行设备120的计算模块111执行计算等相关的处理(比如进行本申请中机器学习模型的功能实现)过程中,执行设备120可以调用数据存储***150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储***150中。
最后,I/O接口112将处理结果,如上述得到的图像或图像块或者图片中感兴趣物体的2D、3D、Mask、关键点、置信度等信息返回给客户设备140,从而提供给用户。
可选地,客户设备140,可以是自动驾驶***中的规划控制单元、手机终端中的美颜算法模块。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则,该相应的目标模型/规则即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图5中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,图5仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图5中,数据存储***150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储***150置于执行设备110中。
如图5所示,根据训练设备120训练得到CNN特征提取模型,该CNN特征提取模型在本申请实施例中可以是CNN卷积神经网络也可以是下面实施例即将介绍的机器学习模型。
由于CNN是一种非常常见的神经网络,下面结合图5重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
本申请实施例的图像处理方法具体采用的神经网络的结构可以如图6所示。在图6中,卷积神经网络(CNN)100可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。其中,输入层210可以获取待处理图像,并将获取到的待处理图像交由卷积层/池化层220以及后面的神经网络层230进行处理,可以得到图像的处理结果。下面对图6中的CNN 100中内部的层结构进行详细的介绍。
卷积层/池化层220:
卷积层:
如图6所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层221为例,介绍一层卷积层的内部工作原理。
卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。
当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图6中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层230:
在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图6所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图6由210至240方向的传播为前向传播)完成,反向传播(如图6由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图2所示的卷积神经网络210仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
本申请实施例的图像处理方法具体采用的神经网络的结构可以如图7所示。在图7中,卷积神经网络(CNN)100可以包括输入层110,卷积层/池化层120(其中池化层为可选的),以及神经网络层130。与图6相比,图7中的卷积层/池化层120中的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
需要说明的是,图6和图7所示的卷积神经网络仅作为一种本申请实施例的图像处理方法的两种可能的卷积神经网络的示例,在具体的应用中,本申请实施例的图像处理方法所采用的卷积神经网络还可以以其他网络模型的形式存在。
另外,采用本申请实施例的神经网络结构的搜索方法得到的卷积神经网络的结构可以如图6和图7中的卷积神经网络结构所示。
图8为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器NPU50。该芯片可以被设置在如图5所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图5所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则。如图6和图7所示的卷积神经网络中各层的算法均可在如图8所示的芯片中得以实现。
神经网络处理器NPU 50,NPU作为协处理器挂载到主中央处理器(centralprocessing unit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器505(directmemory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
可选地,本申请中此处的输入数据为图片,输出数据为图片中感兴趣物体的2D、3D、Mask、关键点等信息。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic randomaccessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
上文中介绍的图5中的执行设备110能够执行本申请实施例的物体检测方法的各个步骤,图6和图7所示的CNN模型和图8所示的芯片也可以用于执行本申请实施例的物体检测方法的各个步骤。下面结合附图对本申请实施例的物体检测方法进行详细的介绍。
参照图9,图9为本申请实施例提供的一种物体检测方法的流程示意,如图9所示,本申请实施例提供的一种物体检测方法,可以包括步骤901至903,下面分别对这些步骤进行详细的描述。
901、获取目标图像,并通过机器学习模型,对所述目标图像中的物体进行检测,输出所述物体的第一深度值以及目标信息,所述目标信息包括如下信息的至少一种:所述物体的几何特征、所述物体的关键点信息、所述物体的位置特征。
在一种可能的实现中,目标图像可以包括至少一个物体,本申请实施例中的物体可以为目标图像中的任意一个物体。
本申请实施例中,机器学习模型的架构可以为图2a中示出的架构,其可以由特征提取网络以及头端header组成,其中,特征提取网络可以包括主干网络backbone、特征金字塔网络(feature pyramid network,FPN),其中,FPN为可选的。
本申请实施例中,主干网络backbone用于接收输入的图片,并对输入的图片进行卷积处理,输出对应所述图片的具有不同分辨率的特征图;也就是说输出对应所述图片的不同大小的特征图,也就是说,Backbone完成基础特征的提取,为后续的检测提供相应的特征。
具体的,主干网络可以对输入的图片进行一系列的卷积处理,得到在不同的尺度下的特征图(feature map)。这些特征图将为后续的检测模块提供基础特征。主干网络可以采用多种形式,比如视觉几何组(visual geometry group,VGG)、残差神经网络(residualneural network,resnet)、GoogLeNet的核心结构(Inception-net)等。
主干网络backbone可以对输入的图像进行卷积处理,生成若干不同尺度的卷积特征图,每张特征图是一个H*W*C的矩阵,其中H是特征图的高度,W是特征图的宽度、C是特征图的通道数。
Backbone可以采用目前多种现有的卷积网络框架,比如VGG16、Resnet50、Inception-Net等,下面以Resnet18为Backbone为例进行说明。该流程如图10a所示。
假设输入的图片的分辨率为H*W*3(高度H,宽度W,通道数为3,也就是RBG三个通道)。输入图片经过Resnet18的第一个卷积模块Res18-Conv1(图中的卷积模块1)进行卷积运算,生成Featuremap(特征图)C1,这个特征图相对于输入图像进行了2次下采样,并且通道数扩充为64,因此C1的分辨率是H/4*W/4*64,该卷积模块1由若干卷积层组成,后面的卷积模块类似,参照图10b,图10b为卷积模块的结构示意,如图10b中示出的那样,卷积模块1可以包括多个卷积层(卷积层1至卷积层N);C1经过Resnet18的第2个卷积模块Res18-Conv2(图中的卷积模块2)进行卷积运算,得到Featuremap C2,这个特征图的分辨率与C1一致;C2继续经过Resnet18的第3个卷积模块Res18-Conv3(图中的卷积模块3)处理,生成Featuremap C3,这个特征图相对C2进一步下采样,通道数增倍,其分辨率为H/8*W/8*128;最后C3经过Res18-Conv4(图中的卷积模块4)处理,生成Featuremap C4,其分辨率为H/16*W/16*256。
从图10a可以看出,Resnet18对输入图片进行多个层次的卷积处理,得到不同尺度的特征图:C1/C2/C3/C4。底层的特征图的宽度和高度比较大,通道数较少,其主要为图像的低层特征(比如图像边缘、纹理特征),高层的特征图的宽度和高度比较小,通道数较多,其主要为图像的高层特征(比如形状、物体特征)。后续的2D检测流程将会基于这些特征图进行进一步的预测。
本申请实施例中,主干网络backbone包括多个卷积模块,每个卷积模块包括多个卷积层,每个卷积模块可以对输入的特征图进行卷积处理,已得到不同分辨率的特征图,本申请实施例中主干网络backbone包括的第一卷积层为主干网络backbone包括的多个卷积层中的一个。
需要说明的是,本申请实施例中的主干网络也可以称为骨干网络,这里并不限定。
需要说明的是,图10a和图10b中示出的主干网络backbone仅为一种实现方式,并不构成对本申请的限定。
本申请实施例中,FPN与主干网络backbone连接,FPN可以对主干网络backbone生成的多个不同分辨率的特征图进行卷积处理,来构造特征金字塔。
参照图11,图11为一种FPN的结构示意,其中,使用卷积模块1对最顶层特征图C4进行处理,卷积模块1可以包括至少一个卷积层,示例性的,卷积模块1可以使用空洞卷积和1×1卷积将最顶层特征图C4的通道数下降为256,作为特征金字塔的最顶层特征图P4;横向链接最顶层下一层特征图C3的输出结果并使用1×1卷积(卷积模块2)降低通道数至256后,与特征图p4逐像素相加得到特征图p3;以此类推,从上到下,构建出特征金字塔Φp={特征图p4,特征图p3,特征图p2,特征图p1}。
本申请实施例中,FPN包括多个卷积模块,每个卷积模块包括多个卷积层,每个卷积模块可以对输入的特征图进行卷积处理,本申请实施例中FPN包括的第二卷积层为FPN包括的多个卷积层中的一个。
需要说明的是,图11中示出的FPN仅为一种实现方式,并不构成对本申请的限定。
本申请实施例中,header与FPN连接,header可以根据FPN提供的特征图,完成一个任务的2D框的检测,输出这个任务的物体的2D框、3D框以及对应的置信度等等,接下来描述一种header的结构示意,参照图12a,图12a为一种header的示意,如图12a中示出的那样,Header包括候选区域生成网络(Region Proposal Network,RPN)、ROI-ALIGN和RCNN三个模块。
其中,RPN模块可以用于在FPN提供的一个或者多个特征图上预测所述任务物体所在的区域,并输出匹配所述区域的候选2D框;或者可以这样理解,RPN在FPN输出的一个或者多个横图上预测出可能存在该任务物体的区域,并且给出这些区域的框,这些区域称为候选区域(Proposal)。比如,当Header负责检测车时,其RPN层就预测出可能存在车的候选框;当Header负责检测人时,其RPN层就预测出可能存在人的候选框。当然,这些Proposal是不准确的,一方面其不一定含有该任务的物体,另一方面这些框也是不紧致的。
2D候选区域预测流程可以由Header的RPN模块实施,其根据FPN提供的特征图,预测出可能存在该任务物体的区域,并且给出这些区域的候选框(也可以叫候选区域,Proposal)。在本实施例中,若Header负责检测车,其RPN层就预测出可能存在车的候选框。
RPN层的基本结构可以如图12b所示。在FPN提供的特征图上通过卷积模块1(例如一个3*3的卷积),生成特征图RPNHidden。后面Header的RPN层将会从RPN Hidden中预测Proposal。具体来说,Header的RPN层分别通过卷积模块2和卷积模块3(例如分别是一个1*1的卷积),预测出RPN Hidden每个位置处的Proposal的坐标以及置信度。这个置信度越高,表示这个Proposal存在该任务的物体的概率越大。比如,在Header中某个Proposal的score越大,就表示其存在车的概率越大。每个RPN层预测出来的Proposal需要经过Proposal合并模块,根据Proposal之间的重合程度去掉多余的Proposal(这个过程可以采用但不限制于NMS算法),在剩余的K个Proposal中挑选出score最大的N(N<K)个Proposal作为候选的可能存在物体的区域。从图12b可以看出,这些Proposal是不准确的,一方面其不一定含有该任务的物体,另一方面这些框也是不紧致的。因此,RPN模块只是一个粗检测的过程,需要后续的RCNN模块进行细分。在RPN模块回归Proposal的坐标时,并不是直接回归坐标的绝对值,而是回归出相对于Anchor的坐标。当这些Anchor与实际的物体匹配越高,RPN能检测出物体的概率越大。
ROI-ALIGN模块用于根据所述RPN模块预测得到的区域,从所述FPN提供的一个特征图中扣取出所述候选2D框所在区域的特征;也就是说,ROI-ALIGN模块主要根据RPN模块提供的Proposal,在某个特征图上把每个Proposal所在的区域的特征扣取出来,并且resize到固定的大小,得到每个Proposal的特征。可以理解的是,ROI-ALIGN模块可以使用但不局限于ROI-POOLING(感兴趣区域池化)/ROI-ALIGN(感兴趣区域提取)/PS-ROIPOOLING(位置敏感的感兴趣区域池化)/PS-ROIALIGN(位置敏感的感兴趣区域提取)等特征抽取方法。
RCNN模块用于通过神经网络对所述候选2D框所在区域的特征进行卷积处理,得到所述候选2D框属于各个物体类别的置信度;通过神经网络对所述候选区域2D框的坐标进行调整,使得调整后的2D候选框比所述候选2D框与实际物体的形状更加匹配,并选择置信度大于预设阈值的调整后的2D候选框作为所述区域的2D框。也就是说,RCNN模块主要是对ROI-ALIGN模块提出的每个Proposal的特征进行细化处理,得到每个Proposal的属于各个类别置信度(比如对于车这个任务,会给出Backgroud/Car/Truck/Bus 4个分数),同时对Proposal的2D框的坐标进行调整,输出更加紧致的2D框。这些2D框经过非极大值抑制(nonmaximum suppression,NMS)合并后,作为最后的2D框输出。
2D候选区域细分类主要由图12a中的Header的RCNN模块实施,其根据ROI-ALIGN模块提取出来的每个Proposal的特征,进一步回归出更加紧致的2D框坐标,同时对这个Proposal进行分类,输出其属于各个类别的置信度。RCNN的可实现形式很多,其中一种实现形式如图12b所示。ROI-ALIGN模块输出的特征大小可以为N*14*14*256(Feature ofproposals),其在RCNN模块中首先经过Resnet18的卷积模块4(Res18-Conv5)处理,输出的特征大小为N*7*7*512,然后通过一个Global Avg Pool(平均池化层)进行处理,把输入特征中每个通道内的7*7的特征进行平均,得到N*512的特征,其中每个1*512维的特征向量代表每个Proposal的特征。接下来通过2个全连接层FC分别回归框的精确坐标(输出N*4的向量,这4个数值分表表示框的中心点x/y坐标,框的宽高),框的类别的置信度(在Header0中,需要给出这个框是Backgroud/Car/Truck/Bus的分数)。最后通过框合并操作,选择分数最大的若干个框,并且通过NMS操作去除重复的框,从而得到紧致的框输出。
在一些实际应用场景中,该感知网络还可以包括其他Header,可以在检测出2D框的基础上,进一步进行3D/Mask/Keypoint检测。示例性的,以3D为例,ROI-ALIGN模块根据Header提供的准确的2D框,在FPN输出的特征图上提取出每个2D框所在区域的特征,假设2D框的个数为M,那么ROI-ALIGN模块输出的特征大小为M*14*14*256,其首先经过Resnet18的卷积模块5(例如为Res18-Conv5)处理,输出的特征大小为N*7*7*512,然后通过一个GlobalAvg Pool(平均池化层)进行处理,把输入特征中每个通道的7*7的特征进行平均,得到M*512的特征,其中每个1*512维的特征向量代表每个2D框的特征。接下来通过3个全连接层FC分别回归框中物体的朝向角(orientation,M*1向量)、质心点坐标(centroid,M*2向量,这2个数值表示质心的x/y坐标)和长宽高(dimention)。
本申请实施例中,header包括至少是一个卷积模块,每个卷积模块包括至少一个卷积层,每个卷积模块可以对输入的特征图进行卷积处理,本申请实施例中header包括的第三卷积层为header包括的多个卷积层中的一个。
需要说明的是,图12a和图12b中示出的header仅为一种实现方式,并不构成对本申请的限定。
示例性的,特征提取网络可以由CNN模块实施,其中包括一个特征提取器(encoder)和多个预测解码器(head)。encoder对输入图像(RGB图像)进行卷积处理,用于抽取图像高层语义特征,架构可以采用任何标准的图像分类模型,并逐渐通过Pooling或stride convolution降低特征分辨率,最后得到该图像的高维语义特征。如图13所示,本实施例采用centernet作为encoder对图像空间分辨率降采样为原始尺寸的1/16,输出特特征维度为64,该模型参数用在ImageNet图像分类数据集中进行训练后的值初始化。
本实施例对每个需要预测的属性,都会构建一个独立的head网络,其输入encoder获得的特征,并经过两次卷积和上采样并用来自encoder低层级的特征补充特征中的细节信息以获取高分辨率的预测,两个卷积之间***一个BN层和一个非线性RELU层。如图13中head1,2所示,每个head的中间结构完全相同,仅仅在最后阶段,根据所预测的属性输出不同的维度,输出阶段的空间分辨率为原始图像尺寸的1/4。
需要注意的是,这里的encoder和head结构,以及涵盖其中的超参数,包括卷积层数量、激活层类型、中间特征维度、分辨率等等都不做限定,可以使用任何常见的用于稠密预测任务的架构。
本申请实施例中,机器学习模型可以对图像中的物体进行检测,进而对物体的目标属性进行预测,其中,目标属性预测主要目的是分析图像每个像素及其邻域内的视觉信息,判断该像素周围是否存在感兴趣的目标,以及目标相关的信息,其中预测内容可以包括但不限于heatmap、2D Box偏移量、朝向、物理尺寸、关键点偏移量、某些属性的不确定度。
接下来分别进行说明:
在一种可能的实现中,热力图Heatmap的输出维度为C,每个维度对应一个目标类别,表达图像特征图中每个像素点属于某个目标类别的概率,取值范围是0~1。当某个像素的heatmap在第c维响应值较高时,说明该像素附近大概率存在一个参与者(目标物体)。
在一种可能的实现中,特征图每个像素位置都会预测一个目标的2D包围盒,这个包围盒给出了目标在图像中占据的矩形区域,这个2D box实际给出了目标的2D检测结果。
在一种可能的实现中,对经过CNN处理的每张图片,首先对其预测的heatmap进行解码,从而获知图片中是否存在目标。在本实施例中,可以使用目标的3D包围框中心点来表达每个目标,某像素距离目标质心越近时,heatmap取值越大,在质心点位置达到最大值1。本实施例中存在多个类别的目标(如行人、车辆等),对输入图像I每个像素k的Heatmap,C(k)可以使用如下公式计算:
其中fk(W,I)是CNN在参数为W,输入是I时模型在第k个像素的输出,公式将任意的模型输出归一化成取值范围为0~1的概率值。如图14中的Heatmap图所示,图中的颜色越浅,表示Heat值越大。
在一种可能的实现中,特征图每个像素位置会预测一个目标的3维尺寸,这个尺寸对应于目标在真实物理世界中长宽高。
在一种可能的实现中,特征图每个像素位置会预测一个目标相对于相机视线方向的朝向角度,由于这个角度与目标在图像上的外观相关,因此可以通过CNN模型通过其外观直接预测,可以称其为局部角度。当获得这个角度后,结合目标相对于相机的视线角度,从而可以恢复出目标在相机坐标系下的朝向角度,可以称其为全局角度。全局角度与局部角度间的关系,可以通过图15说明。
在一种可能的实现中,本实施例从每个质心位置上取得网络对目标的朝向、尺寸、深度估计偏移量,然后根据以下公式解码出每个目标的相机坐标系下的全局朝向角度、物理长宽高、和质心深度:本实施例对某个类别c,首先统计该类别目标在数据中的平均长宽高然后获取网络预测的尺寸偏移量(δh,δw,δl),则对每个目标预测的物理尺寸可以通过下式获得:
本实施例通过CNN预测目标的中心点深度偏移zo,通过下式将其恢复为目标质心的绝对深度zr:
在一种可能的实现中,类似于2D包围盒,特征图每个像素位置都会预测目标关键点的在图像中的位置。
示例性的,本实例对每个目标定义了11个关键点{ki,i=1,…11},分别是每个目标3D包围盒的8个角点,每个目标的3D包围盒的中心点(即质心点),以及3D包围盒中心点在包围盒上下表面的投影点,以上几种关键点分别如图13中黄、红、蓝色点所示。与2D box解码过程相似,本实施例通过在质心位置上取得网络对相应的关键点偏移量的估计,可以得到每个目标的关键点在图像中的位置。
在一种可能的实现中,特征图每个像素位置都会预测目标质心点的深度,该深度是一个3D空间中的物理量,指目标的中心(x,y,z)中的z值。
此外,在一种可能的实现中,特征图每个像素位置除了预测上述3D属性值外,还有能力给出这些属性预测的不确定度,不确定度的预测使用了基于贝叶斯网络的原理,其会在网络的训练过程中得到当上述属性的预测被建模成符合高斯分布时,这个不确定度可以通过高斯分布的方差表示。
如上所述,通过机器学习模型,可以令目标质心点处的像素直接预测目标的深度,此时可以得到基于网络直接估计的物体的第一深度值。
902、根据所述目标信息,预测所述物体的至少一个第二深度值。
在一种可能的实现中,机器学习模型的推理精度不够准确,一旦拍摄图像的相机发生改变或者是拍摄场景的改变,精度往往会大幅下降。本申请实施例中,通过机器学习模型输出的物体的相关属性信息(也就是本申请实施例中的目标信息),基于不同的原理,对目标的中心点所在的深度进行估计,从而可以获得至少一个具有差异的、多样化的深度预测,进而可以基于通过多个不同方式获取的物体的多个深度值,来确定一个更准确的物体的深度值。
接下来介绍如何根据所述目标信息,预测所述物体的至少一个第二深度值:
在一种可能的实现中,可以通过N点透视算法PnP来预测所述物体的至少一个第二深度值。
具体的,所述目标信息中的所述关键点信息可以包括所述物体的的多个关键点在所述图像上的2D位置,所述物体的几何特征包括所述物体的物理尺寸,所述物体的位置特征包括所述物体的朝向角度。进而可以根据所述目标信息,通过N点透视算法PnP,预测所述物体的至少一个第二深度值。
在一种可能的实现中,对于每个关键点都可以构建起一个在相机坐标系下的3D点Pc与图像空间中的2D点P2d间的对应,且这两个点的对应关系可以通过相机的内参矩阵K表示:
其中Pc与该关键点在目标的局部坐标系下位置Po的关系则可以通过相机的外参获得:
因此,图像上检测到的每个关键点P2d可以构成一个关于目标中心点在相机坐标系下位置T=[x,y,z]T的方程:
A=[xosinθ-zocosθ]
上述公式定义了两个关于T的线性方程,当目标上存在的关键点个数超过2个时,即可求解出T。该方法即所谓的N点透视算法PnP。
在本申请实施例中,关心目标中心点的深度,因此可以将目标的3D中心点也被定义为一个关键点,当给出其在图像上的2D位置(uc,vc)时,物体的中心点位置可以表达成仅与z有关的形式:
基于此,每个关键点此时可以表示成2个关于z值的线性方程,因此可以计算出两组对目标中心点z值的估计。
本实施例的目标3D信息中,包含目标的物理长、宽、高目标的全局朝向角度ry,及目标的3D包围盒中心点和角点在图像上的位置(9个关键点)。对于每个角点关键点在目标局部坐标系下的坐标Po可以通过其长宽高获得(例如),其图像中的坐标由关键点解码模块获得(u,v)。与此同时,图像质心关键点坐标为(uc,vc)。根据基于PnP的深度解算原理,可以获得z值的两组估计:
例如,本实施例中的3D box的8个角点因此可形成16组深度估计。
在一种可能的实现中,还可以基于基于物体在预设方向的长度进行深度预测。具体的,所述物体的几何特征包括所述物体的3D包络盒在预设方向上的多个像素尺寸、以及所述物体在所述预设方向上的物理尺寸;进而,可以根据所述多个像素尺寸以及所述物理尺寸之间的几何关系,预测所述物体的至少一个第二深度值。
以预设方向为竖直方向为例,此时预设方向的长度为高度,网络可以预测目标的物理高度H,和目标3D包围盒角点和中心点在包围盒上下表面的投影点(即预先定义的关键点),由于目标的物理高度与这些关键点间的距离是相关的,因此可以通过以下公式得到对关键点的深度估计:
其中f是相机的内参数,可以事先获得,H是网络估计的目标物理高度,h是一对处于目标3D包围盒上下表面的关键点间的垂直距离。
示例性的,本实施例中的10个关键点可以计算得到3组该目标的像素高度,其中目标质心投影点的垂直距离差可以形成一组像素高度,如图16(a)的Zc线条所示;目标3D包围盒角点位置上的8个关键点的垂直距离可以形成4组像素高度,如图16(b)的Z1和Z3条所示,图16(c)中的Z2和Z4线条所示。在本实施例中,因为要计算的是目标的质心深度,模块将4组高度进一步分成两个组,其中对角位置上的像素高度进行平均,以获得质心位置处的像素高度。对每组像素高度可以解算出一个目标深度估计,该方式可以形成3组深度估计。
应理解,上述计算得到至少一个第二深度值的方法仅为示意,还可以通过对目标信息进行运算来预测物体的深度值,本申请并不限定。
903、对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。
在一种可能的实现中,在得到第一深度值以及至少一个第二深度值之后,可以对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。
在一种可能的实现中,融合的方式可以为加权求和,具体的,可以获取所述第一深度值以及每个所述第二深度值的第二权重;并根据所述第二权重,对所述第一深度值以及所述至少一个第二深度值进行加权求和。
在一种可能的实现中,可以基于第一深度值以及每个第二深度值的置信度(或者不确定度)来确定所述第一深度值以及每个所述第二深度值的第二权重,其中,置信度(或者不确定度)可以描述深度值的可靠程度,置信度越高的深度值,其对应的权重越大,也就是,所述第二权重的数值与对应的深度值的置信度正相关。
其中,第一深度值的置信度可以为机器学习模型的输出,通过不同方式得到的第二深度值的置信度可以在模型训练时作为可训练的参数被更新,在模型收敛时,可以得到各个更新后的第二深度值的置信度。在一种可能的实现中,也可以预先设定各个第二深度值的第二权重,这里并不限定。
示例性的,通过深度解算***获取的多组深度估计值及其不确定度,描述了各估计值的可靠程度,在本申请实施例中被用于对异常估计进行过滤并融合剩余估计值,对剩余估计值的融合可以采用加权和的方式进行,当估计集合存在N组估计和方差时,每组估计的加权参数为:
上述公式的本质是对多个随机高斯变量加权求和,根据概率理论求和后的结果仍然为一个高斯随机变量,其均值和方差满足:
在一种可能的实现中,还可以输出所述第一深度值的第一置信度,以及预测每个所述第二深度值的第二置信度;并对所述第一置信度以及所述至少一个第二置信度进行融合,以得到所述目标深度的目标置信度。
在一种可能的实现中,融合的方式可以为加权求和,具体的,可以获取所述第一置信度以及每个所述第二置信度的第一权重;根据所述第一权重,对所述第一置信度以及所述至少一个第二置信度进行加权求和。第一权重的确定方式可以参照上述实施例中关系第二权重的确定方式,这里不再赘述。
在一种可能的实现中,对每个预测的物体,同时会计算该预测的置信度,即预测的可靠性。总体置信度的计算公式如下:
Pm=P3d|2d·P2d;
该公式同时表达两个内容,一是目标是否在图像中存在的概率,二是所预测的目标在3D空间中的形状和位置是否准确,即几何置信度。由于已经获得了关于目标位置的不确定度(目标置信度),因此可以使用不确定性计算目标几何置信度,即当对目标估计的不确定度越高时,置信度越低。
在一种可能的实现中,可以获取所述机器学习模型输出的所述物体的3D包络盒的置信度;对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,以得到所述物体的几何置信度。
在一种可能的实现中,可以获取所述物体的3D包络盒的置信度以及所述目标置信度的第三权重;根据所述第三权重,对所述物体的3D包络盒的置信度以及所述目标置信度进行加权求和。
具体的,对每个预测的目标,***同时会计算该预测的置信度,即预测的可靠性。总体置信度的计算公式如下:
Pm=P3d|2d·P2d;
该公式同时表达两个内容,一是目标是否在图像中存在的概率,二是所预测的目标在3D空间中的形状和位置是否准确,即几何置信度。由于已经获得了关于目标位置的不确定度,因此可以使用不确定性计算目标几何置信度,即当对目标估计的不确定度越高时,置信度越低:
d=1-min{σ2,1};
其中整体几何置信度由表示质心深度置信度dc和3D包围盒形状的置信度db两部分组成:
P3d|2d=ωcdc+ωbdb;
权重ωc与ωd的确定可以参照上述关于第二权重的描述,相似之处不再赘述。
在一种可能的实现中,可以获取所述机器学习模型输出的所述物体的2D包络盒的置信度;根据所述物体的2D包络盒的置信度以及所述几何置信度,得到所述物体的检测置信度。
示例性的,参照图17a,图17a为本申请实施例的一个整体流程的示意;
接下来介绍本申请实施例中机器学习模型的一个训练流程示意:
本实施例所用的神经网络需要进行训练,本实施例在训练过程中使用预先人工标注的感兴趣类别目标在相机坐标系下的位置、朝向、尺寸信息对网络的2D包围盒、中心点heatmap和3D属性输出进行监督,其目标函数的形式可以使用已有技术的相关方法。本实施例所特有的部分,则是在训练20组深度估计同时训练其不确定度,对每组深度和不确定度的监督代价函数,由以下公式定义:
为了证明本实施例的技术效果,本实施例在业界公开权威数据集Kitti上的实验结果总结如下。如表1所示,单独使用基于网络直接估计、基于高度估计、基于PnP的估计或者两两组合的方式产生的估计结果与本发明的多样化深度估计***存在较大的精度差距。该结果表明实施例一的多样化深度估计解算模块可以最大限度地发掘来自多个任务的深度线索,产生更加精准的深度估计。
表1实施例的多样化深度解算***在Kitti验证集的验证实验结果
如表2所示,对于多组深度估计,使用硬性选择、平均融合、直接加权融合的方式产生的精度均无法达到本实施例中的深度选择融合模块的精度。实验结果表明基于不确定性的异常估计滤除和融合策略可以较好地融合多组估计的结果,实现性能提升。
表2实施例的深度选择融合模块在Kitti验证集的验证实验结果
如表3所示,是使用不同的3D几何置信度的建模方式,对最终精度的影响。当不使用本实施例中的3D几何置信度计算模块,而代之以仅使用20组深度估计的某一个不确定性建模置信度,或者只使用σd和σb中的某一个建模,都无法达到本发明提出的几何置信度的效果。实验结果表明我们的基于不确定性的几何置信度估计可以有效建模目标在3D空间中的位置准确性,可以提升3d检测精度,明显优于3D IOU估计。
表3实施例的置信度计算模块在Kitti验证集的验证实验结果
表4是本实施例在Kitti测试集上与目前业界最优方法的对比。本实施例在Kitti的主要评比类别car上大幅优于目前业界最优水平(17.14vs 14.17精度提升~20%)。且本实施例同时在cyclist类别上排名第一,pedestrain类别排名第二。
表4实施例在Kitti官方测试集car类别与其他方案的性能比较
表5实施例在Kitti官方测试集cyclist和pedestrain类别与其他方案的性能比较
本申请实施例提供了一种物体检测方法,包括:获取目标图像;通过机器学习模型,对所述目标图像中的物体进行检测,输出所述物体的第一深度值以及目标信息,所述目标信息包括如下信息的至少一种:所述物体的几何特征、所述物体的关键点信息、所述物体的位置特征;根据所述目标信息,预测所述物体的至少一个第二深度值;对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。本申请通过使用不同的理论假设和目标的属性组合,同时产生多组深度估计及每个深度估计的不确定度,并在后续过程中根据不确定度的大小选择和融合高可靠性的深度预测、舍弃不可靠的错误预测,从而最终产生鲁棒的深度估计结果,极大的提升了***对于不同环境的检测鲁棒性和准确性,此外不确定度还帮助***产生了一个更加可靠的对预测结果的评估打分,进一步提升了检测的精度和***可解释性。
参照图17b,图17b为本申请实施例提供的一种物体检测装置的结构示意,如图17所示,本申请实施例提供的一种物体检测装置1700,包括:
获取模块1701,用于获取目标图像;
物体检测模块1702,用于通过机器学习模型,对所述目标图像中的物体进行检测,输出所述物体的第一深度值以及目标信息,所述目标信息包括如下信息的至少一种:所述物体的几何特征、所述物体的关键点信息、所述物体的位置特征;
其中,关于获取模块1701和物体检测模块1702的描述可以参照上述实施例中步骤901的描述,这里不再赘述。
深度值预测模块1703,用于根据所述目标信息,预测所述物体的至少一个第二深度值;
其中,关于深度值预测模块1703的描述可以参照上述实施例中步骤902的描述,这里不再赘述。
融合模块1704,用于对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。
其中,关于融合模块1704的描述可以参照上述实施例中步骤903的描述,这里不再赘述。
在一种可能的实现中,所述装置还包括:
置信度预测模块,用于在所述通过机器学习模型,对所述目标图像中的物体进行检测之后,输出所述第一深度值的第一置信度,以及预测每个所述第二深度值的第二置信度;
所述融合模块,还用于对所述第一置信度以及所述至少一个第二置信度进行融合,以得到所述目标深度的目标置信度。
在一种可能的实现中,所述关键点信息包括所述物体的的多个关键点在所述图像上的2D位置;
所述深度值预测模块,具体用于:
根据所述目标信息,通过N点透视算法PnP,预测所述物体的至少一个第二深度值。
在一种可能的实现中,所述物体的几何特征包括所述物体的物理尺寸,所述物体的位置特征包括所述物体的朝向角度。
在一种可能的实现中,所述物体的几何特征包括所述物体的3D包络盒在预设方向上的多个像素尺寸、以及所述物体在所述预设方向上的物理尺寸;
所述深度值预测模块,具体用于:
根据所述多个像素尺寸以及所述物理尺寸之间的几何关系,预测所述物体的至少一个第二深度值。
在一种可能的实现中,所述融合模块,具体用于:
获取所述第一置信度以及每个所述第二置信度的第一权重;
根据所述第一权重,对所述第一置信度以及所述至少一个第二置信度进行加权求和。
在一种可能的实现中,所述融合模块,具体用于:
获取所述第一深度值以及每个所述第二深度值的第二权重;
根据所述第二权重,对所述第一深度值以及所述至少一个第二深度值进行加权求和。
在一种可能的实现中,所述获取模块,还用于:
获取所述机器学习模型输出的所述物体的3D包络盒的置信度;
所述融合模块,还用于:
对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,以得到所述物体的几何置信度。
在一种可能的实现中,所述融合模块,具体用于:
获取所述物体的3D包络盒的置信度以及所述目标置信度的第三权重;
根据所述第三权重,对所述物体的3D包络盒的置信度以及所述目标置信度进行加权求和。
在一种可能的实现中,所述获取模块,还用于:
获取所述机器学习模型输出的所述物体的2D包络盒的置信度;
置信度确定模块,用于根据所述物体的2D包络盒的置信度以及所述几何置信度,得到所述物体的检测置信度。
接下来介绍本申请实施例提供的一种执行设备,请参阅图18,图18为本申请实施例提供的执行设备的一种结构示意图,执行设备1800具体可以表现为虚拟现实VR设备、手机、平板、笔记本电脑、智能穿戴设备、监控数据处理设备或服务器等,此处不做限定。具体的,执行设备1800包括:接收器1801、发射器1802、处理器1803和存储器1804(其中执行设备1800中的处理器1803的数量可以一个或多个,图18中以一个处理器为例),其中,处理器1803可以包括应用处理器18031和通信处理器18032。在本申请的一些实施例中,接收器1801、发射器1802、处理器1803和存储器1804可通过总线或其它方式连接。
存储器1804可以包括只读存储器和随机存取存储器,并向处理器1803提供指令和数据。存储器1804的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1804存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1803控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线***耦合在一起,其中总线***除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线***。
上述本申请实施例揭示的方法可以应用于处理器1803中,或者由处理器1803实现。处理器1803可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1803可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1803可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1804,处理器1803读取存储器1804中的信息,结合其硬件完成上述方法的步骤。
接收器1801可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1802可用于通过第一接口输出数字或字符信息;发射器1802还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1802还可以包括显示屏等显示设备。
本申请实施例还提供了一种训练设备,请参阅图19,图19是本申请实施例提供的训练设备一种结构示意图,具体的,训练设备1900由一个或多个服务器实现,训练设备1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(centralprocessing units,CPU)1919(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1919可以设置为与存储介质1930通信,在训练设备1900上执行存储介质1930中的一系列指令操作。
训练设备1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958;或,一个或一个以上操作***1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1919,用于执行上述实施例中和模型训练相关的动作。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例提供的执行设备、训练设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的数据处理方法,或者,以使训练设备内的芯片执行上述实施例描述的数据处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图20,图20为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 2000,NPU 2000作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路2003内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路2003是二维脉动阵列。运算电路2003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2003是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器2002中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器2001中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。
统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)2005,DMAC被搬运到权重存储器2002中。输入数据也通过DMAC被搬运到统一存储器2006中。
BIU为Bus Interface Unit即,总线接口单元2010,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)2009的交互。
总线接口单元2010(Bus Interface Unit,简称BIU),用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。
向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路2003的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数;或,非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。
控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;
统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (23)
1.一种物体检测方法,其特征在于,包括:
获取目标图像,并通过机器学习模型,对所述目标图像中的物体进行检测,输出所述物体的第一深度值以及目标信息,所述目标信息包括如下信息的至少一种:所述物体的几何特征、所述物体的关键点信息、所述物体的位置特征;
根据所述目标信息,预测所述物体的至少一个第二深度值;
对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。
2.根据权利要求1所述的方法,其特征在于,所述通过机器学习模型,对所述目标图像中的物体进行检测之后,所述方法还包括:
输出所述第一深度值的第一置信度,以及预测每个所述第二深度值的第二置信度;
对所述第一置信度以及所述至少一个第二置信度进行融合,以得到所述目标深度的目标置信度。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述第一深度值以及所述至少一个第二深度值进行融合,包括:
获取所述第一深度值以及每个所述第二深度值的第二权重;其中,所述第二权重的数值与对应的深度值的置信度正相关;
根据所述第二权重,对所述第一深度值以及所述至少一个第二深度值进行加权求和。
4.根据权利要求1至3任一所述的方法,其特征在于,所述关键点信息包括所述物体的的多个关键点在所述图像上的2D位置;
所述根据所述目标信息,预测所述物体的至少一个第二深度值,包括:
根据所述目标信息,通过N点透视算法PnP,预测所述物体的至少一个第二深度值。
5.根据权利要求4所述的方法,其特征在于,所述物体的几何特征包括所述物体的物理尺寸,所述物体的位置特征包括所述物体的朝向角度。
6.根据权利要求1至5任一所述的方法,其特征在于,所述物体的几何特征包括所述物体的3D包络盒在预设方向上的多个像素尺寸、以及所述物体在所述预设方向上的物理尺寸;
所述根据所述目标信息,预测所述物体的至少一个第二深度值,包括:
根据所述多个像素尺寸以及所述物理尺寸之间的几何关系,预测所述物体的至少一个第二深度值。
7.根据权利要求2至6任一所述的方法,其特征在于,所述对所述第一置信度以及所述至少一个第二置信度进行融合,包括:
获取所述第一置信度以及每个所述第二置信度的第一权重;
根据所述第一权重,对所述第一置信度以及所述至少一个第二置信度进行加权求和。
8.根据权利要求2至7任一所述的方法,其特征在于,所述方法还包括:
获取所述机器学习模型输出的所述物体的3D包络盒的置信度;
对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,以得到所述物体的几何置信度。
9.根据权利要求8所述的方法,其特征在于,所述对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,包括:
获取所述物体的3D包络盒的置信度以及所述目标置信度的第三权重;
根据所述第三权重,对所述物体的3D包络盒的置信度以及所述目标置信度进行加权求和。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
获取所述机器学习模型输出的所述物体的2D包络盒的置信度;
根据所述物体的2D包络盒的置信度以及所述几何置信度,得到所述物体的检测置信度。
11.一种物体检测装置,其特征在于,包括:
获取模块,用于获取目标图像;
物体检测模块,用于通过机器学习模型,对所述目标图像中的物体进行检测,输出所述物体的第一深度值以及目标信息,所述目标信息包括如下信息的至少一种:所述物体的几何特征、所述物体的关键点信息、所述物体的位置特征;
深度值预测模块,用于根据所述目标信息,预测所述物体的至少一个第二深度值;
融合模块,用于对所述第一深度值以及所述至少一个第二深度值进行融合,以得到所述物体的目标深度。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
置信度预测模块,用于在所述通过机器学习模型,对所述目标图像中的物体进行检测之后,输出所述第一深度值的第一置信度,以及预测每个所述第二深度值的第二置信度;
所述融合模块,还用于对所述第一置信度以及所述至少一个第二置信度进行融合,以得到所述目标深度的目标置信度。
13.根据权利要求11或12所述的装置,其特征在于,所述关键点信息包括所述物体的的多个关键点在所述图像上的2D位置;
所述深度值预测模块,具体用于:
根据所述目标信息,通过N点透视算法PnP,预测所述物体的至少一个第二深度值。
14.根据权利要求13所述的装置,其特征在于,所述物体的几何特征包括所述物体的物理尺寸,所述物体的位置特征包括所述物体的朝向角度。
15.根据权利要求11至14任一所述的装置,其特征在于,所述物体的几何特征包括所述物体的3D包络盒在预设方向上的多个像素尺寸、以及所述物体在所述预设方向上的物理尺寸;
所述深度值预测模块,具体用于:
根据所述多个像素尺寸以及所述物理尺寸之间的几何关系,预测所述物体的至少一个第二深度值。
16.根据权利要求12至15任一所述的装置,其特征在于,所述融合模块,具体用于:
获取所述第一置信度以及每个所述第二置信度的第一权重;
根据所述第一权重,对所述第一置信度以及所述至少一个第二置信度进行加权求和。
17.根据权利要求11至16任一所述的装置,其特征在于,所述融合模块,具体用于:
获取所述第一深度值以及每个所述第二深度值的第二权重;其中,所述第二权重的数值与对应的深度值的置信度正相关;
根据所述第二权重,对所述第一深度值以及所述至少一个第二深度值进行加权求和。
18.根据权利要求12至17任一所述的装置,其特征在于,所述获取模块,还用于:
获取所述机器学习模型输出的所述物体的3D包络盒的置信度;
所述融合模块,还用于:
对所述物体的3D包络盒的置信度以及所述目标置信度进行融合,以得到所述物体的几何置信度。
19.根据权利要求18所述的装置,其特征在于,所述融合模块,具体用于:
获取所述物体的3D包络盒的置信度以及所述目标置信度的第三权重;
根据所述第三权重,对所述物体的3D包络盒的置信度以及所述目标置信度进行加权求和。
20.根据权利要求18或19所述的装置,其特征在于,所述获取模块,还用于:
获取所述机器学习模型输出的所述物体的2D包络盒的置信度;
置信度确定模块,用于根据所述物体的2D包络盒的置信度以及所述几何置信度,得到所述物体的检测置信度。
21.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机执行权利要求1至10中任一项所述方法的操作。
22.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至10任一所述的方法。
23.一种***,包括至少一个处理器,至少一个存储器;所述处理器、所述存储器通过通信总线连接并完成相互间的通信;
所述至少一个存储器用于存储代码;
所述至少一个处理器用于执行所述代码,以执行如权利要求1至10任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210395863.8A CN114972182A (zh) | 2022-04-15 | 2022-04-15 | 一种物体检测方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210395863.8A CN114972182A (zh) | 2022-04-15 | 2022-04-15 | 一种物体检测方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114972182A true CN114972182A (zh) | 2022-08-30 |
Family
ID=82977440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210395863.8A Pending CN114972182A (zh) | 2022-04-15 | 2022-04-15 | 一种物体检测方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114972182A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115713758A (zh) * | 2022-11-10 | 2023-02-24 | 国能黄骅港务有限责任公司 | 一种车厢识别方法、***、装置及存储介质 |
CN117893538A (zh) * | 2024-03-15 | 2024-04-16 | 成都方昇科技有限公司 | 基于机器视觉的半导体器件质量检测方法、装置及*** |
-
2022
- 2022-04-15 CN CN202210395863.8A patent/CN114972182A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115713758A (zh) * | 2022-11-10 | 2023-02-24 | 国能黄骅港务有限责任公司 | 一种车厢识别方法、***、装置及存储介质 |
CN115713758B (zh) * | 2022-11-10 | 2024-03-19 | 国能黄骅港务有限责任公司 | 一种车厢识别方法、***、装置及存储介质 |
CN117893538A (zh) * | 2024-03-15 | 2024-04-16 | 成都方昇科技有限公司 | 基于机器视觉的半导体器件质量检测方法、装置及*** |
CN117893538B (zh) * | 2024-03-15 | 2024-05-31 | 成都方昇科技有限公司 | 基于机器视觉的半导体器件质量检测方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110298262B (zh) | 物体识别方法及装置 | |
WO2020253416A1 (zh) | 物体检测方法、装置和计算机存储介质 | |
CN110070107B (zh) | 物体识别方法及装置 | |
WO2021043112A1 (zh) | 图像分类方法以及装置 | |
CN111401517B (zh) | 一种感知网络结构搜索方法及其装置 | |
CN110222717B (zh) | 图像处理方法和装置 | |
WO2021018106A1 (zh) | 行人检测方法、装置、计算机可读存储介质和芯片 | |
WO2021218786A1 (zh) | 一种数据处理***、物体检测方法及其装置 | |
CN111368972B (zh) | 一种卷积层量化方法及其装置 | |
CN111310604A (zh) | 一种物体检测方法、装置以及存储介质 | |
CN114972182A (zh) | 一种物体检测方法及其装置 | |
WO2021249114A1 (zh) | 目标跟踪方法和目标跟踪装置 | |
CN110222718A (zh) | 图像处理的方法及装置 | |
CN112529904A (zh) | 图像语义分割方法、装置、计算机可读存储介质和芯片 | |
WO2022217434A1 (zh) | 感知网络、感知网络的训练方法、物体识别方法及装置 | |
CN112464930A (zh) | 目标检测网络构建方法、目标检测方法、装置和存储介质 | |
CN114764856A (zh) | 图像语义分割方法和图像语义分割装置 | |
CN112258565A (zh) | 图像处理方法以及装置 | |
US20230401826A1 (en) | Perception network and data processing method | |
CN110705564A (zh) | 图像识别的方法和装置 | |
CN113065575A (zh) | 一种图像处理方法及相关装置 | |
CN113534189A (zh) | 体重检测方法、人体特征参数检测方法及装置 | |
CN115249269A (zh) | 目标检测方法、计算机程序产品、存储介质及电子设备 | |
CN115731530A (zh) | 一种模型训练方法及其装置 | |
CN115631296A (zh) | 一种3d目标检测方法、计算机程序产品及电子设备 |
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 |