一种用于目标检测神经网络反量化层和后处理合并的方法与流程
本发明属于智能视频处理,特别涉及一种用于目标检测神经网络反量化层和后处理合并的方法。
背景技术:
1、现有技术中,针对例如北京君正t系列芯片运行的神经网络是量化过的网络,网络各层的权重、激活值和结果都是量化后的数值,可以减少存储参数所需的空间,提高推理速度。在模型提供输出结果时需要进行反量化,将整型数转化为浮点型实数,减少模型输出结果因量化而产生的精度误差。所以模型在输出结果前会有一个反量化层,在北京君正t系列芯片运行时调用model_output=dequantize(quantize_data)接口将量化值quantize_data计算成浮点数,得到模型的输出结果model_output。
2、北京君正t系列芯片运行的用于目标检测的神经网络提供输出结果后,需要在输出结果上进行一系列额外的处理步骤,以优化模型的预测结果或者提取更有意义的信息。在北京君正t系列芯片运行时调用result=generate_box(model_output)接口实现后处理操作。最终得到目标所在边界框的坐标,目标的置信度和目标的类别。generate_box接口内分为4个步骤实现,具体步骤为:
3、(1)调用calc_result=calculate_model_output(model_output)接口解析神经网络的输出结果。
4、神经网络输出结果model_output中存储的值通常是相对于图像的大小的相对值。首先需要调用calculate_model_output接口将网络输出的相对值转换回原始图像的绝对坐标,根据输入特征图的尺寸,对边界框的坐标进行计算,使其反映在原始图像上的正确位置。
5、用于目标检测的神经网络输出结果model_output是一个多维数组,其形状通常为[batch_size,height,width,num_anchors,(5+num_classes)],其中:
6、batch_size表示批处理大小
7、height和width分别表示特征图的高度和宽度
8、num_anchors表示每个像素点预测的锚框anchor box的数量
9、(5+num_classes)中的信息包含了bounding boxes、objectness scores和classscores:
10、bounding boxes:通过解析输出数组中的坐标值,可以得到每个锚框的位置信息。通常,这些坐标值需要进行解码,以得到真实的边界框位置。
11、objectness scores:表示锚框包含目标的置信度。在后处理过程中,通常会设置一个阈值,以过滤掉置信度较低的锚框。
12、class scores:表示锚框中目标属于各个类别的置信度。这些分数在后处理过程中用于确定锚框中目标的类别。
13、5表示每个锚框的4个坐标值(边界框bounding boxes的中心点相对于特征图左上角的偏移x、y和边界框的宽高w、h)以及一个objectness score(该锚框包含目标的置信度),num_classes表示类别数量(存储了锚框中目标属于各个类别的置信度classscores)。
14、(2)调用nms_result=nms(calc_result)接口用非极大值抑制(nms)算法去除重叠度高的检测框。
15、nms(non-maximum suppression,nms)是一种常用的后处理算法,用于去除重叠度较高的检测框,只保留置信度最高的框。nms通常基于iou(交并比)来度量检测框之间的重叠度。如果两个检测框的iou大于某个阈值(如0.45),则会保留置信度较高的框,并抑制置信度较低的框。
16、(3)调用box_result=filter_box(nms_result)接口根据设置的objectnessscore阈值(如0.5),过滤掉置信度较低的检测框,box_result包含的信息有目标所在边界框的坐标,目标的置信度。
17、(4)调用result=class_id(box_result)接口根据设置的class score来确定检测框中目标的类别,得到该目标的class_id值,result中包含的信息有第(3)步骤box_result的信息和该步骤的class_id值,result也就是generate_box接口的最终输出结果。
18、然而,现有技术存在的缺陷在于:
19、首先,针对北京君正t系列芯片运行用于目标检测的神经网络时,在最后一层调用model_output=dequantize(quantize_data)接口进行反量化,在模型输出结果后调用result=generate_box(model_output)接口进行后处理操作,得到最后的检测结果。其中,dequantize接口进行反量化时需要将神经网络预测的所有结果进行反量化,generate_box接口中的第(1)步解析模型输出结果也是将全部预测结果都解析一遍,这两个操作都需要进行大量的计算,同时计算了有效的检测框和无效的检测框,而无效的检测框通常多于有效的检测框,因此,这两个操作都浪费了大量的算力,消耗了计算资源。generate_box第(2)步用nms去除重叠度高的检测框,第(3)步过滤掉置信度较低的检测框都只是筛选操作,不需要进行计算,把计算步骤放在前面,筛选步骤放在后面会导致无效计算,计算量增大,浪费算力,从而目标检测模型总体运行时间增加,导致效率降低。
20、此外,本领域技术术语包括:
21、1.神经网络量化是指将神经网络模型中的连续取值的权重或激活值近似为有限多个离散值的过程。量化就是将浮点型实数量化为整型数(fp32->int8).使用低精度整型数据表示原来的高精度浮点数据,可以减少存储参数所需的空间,提高推理速度。因为量化相关的操作给网络中的值带来了误差,因此会导致模型精度的下降。神经网络反量化就是将整型数转化为浮点型实数(int8->fp32),将量化产生的精度误差还原回去,减少模型输出结果因量化而产生的精度误差,因此量化后的模型在输出结果前会有一个反量化层进行反量化操作,使得模型输出结果是精度较高的浮点型实数。
22、2.目标检测是计算机视觉领域中的一个重要任务,它旨在在图像或视频中识别和定位物体。目标检测神经网络可以学习复杂的模式和特征,从而实现更高的准确性和性能。在目标检测任务中,主要用于两个方面:一是对图像进行特征提取,以便识别物体;二是对物体进行定位,以便在图像中找到它们。
23、3.神经网络的后处理是指在神经网络的输出结果上进行一系列额外的处理步骤,以优化模型的预测结果或者提取更有意义的信息。后处理是目标检测过程中的一个重要步骤,它主要负责对神经网络的输出数据进行处理,需要过滤掉低置信度的检测、应用非极大值抑制(nms)来消除重叠的边界框,并最终得到最终的检测结果列表。
技术实现思路
1、为了解决上述问题,本技术的目的在于:提供一种用于目标检测神经网络反量化层和后处理合并的方法,设计新的接口result=dequantize_generate_box(quantize_data),该接口代替现有技术中例如北京君正t系列芯片运行目标检测神经网络调用的model_output=dequantize(quantize_data)和result=generate_box(model_output)两个接口,将dequantize反量化层与后处理generate_box合并,并调整计算顺序,先进行比较筛选,再进行反量化计算和坐标计算,得到最终结果。
2、具体地,本发明提供一种用于目标检测神经网络反量化层和后处理合并的方法,所述方法包括以下步骤:
3、s1,提供合并接口result=dequantize_generate_box(quantize_data),接收神经网络输出的量化数据quantize_data作为输入;
4、s2,通过filter_box(quantize_data)接口基于预设的objectness score阈值对量化数据进行初步筛选,保留置信度满足条件的检测框,所述置信度满足条件为置信度大于预设的阈值,输出保持量化状态的box_result;其中,box_result包含量化的边界框坐标以及置信度;
5、s3,通过nms(box_result)接口对筛选后的检测框执行非极大值抑制处理,输出进一步优化的nms_result;
6、s4,通过class_id(nms_result)接口确定各检测框的目标类别,输出包含边界框信息和类别id的box_class_result;
7、s5,通过dequantize(box_class_result)接口对边界框坐标和置信度进行反量化计算,同时保留类别id为整型,输出dequantize_result;
8、s6,通过calculate_box(dequantize_result)接口将反量化后的相对坐标转换为原始图像的绝对坐标,输出最终检测结果result。
9、所述步骤s2中所述filter_box接口仅进行阈值筛选判断,不改变输入数据的量化状态和相对坐标值。
10、所述步骤s3中所述nms接口在filter_box接口输出的量化数据基础上进行非极大值抑制处理,输出仍为量化数据,得到的检测框均是有效检测框,该步骤得到的值是再次筛选后的box_result。
11、所述步骤s4中调用box_class_result=class_id(nms_result)接口根据设置的class score来确定检测框中目标的类别,得到该目标的class_id值;class_result包含了步骤s3中的box_result的值和该步骤的class_id值。
12、所述步骤s5中所述dequantize接口仅对边界框坐标和置信度数据执行int8到fp32的反量化转换,类别id保持int8整型输出。
13、所述步骤s6中所述calculate_box接口基于输入特征图的尺寸参数,将相对坐标(x,y,w,h)转换为原始图像空间的绝对坐标。
14、所述filter_box接口和nms接口均在量化数据状态下执行筛选操作,避免对无效检测框进行反量化计算。
15、所述quantize_data为神经网络输出的多维数组,其维度结构为[batch_size,height,width,num_anchors,(5+num_classes)],包含量化后的边界框坐标、目标置信度和类别分数。
16、所述objectness score阈值和nms的iou阈值可动态配置,用于平衡检测精度和计算效率。
17、所述方法在嵌入式ai芯片中实施,用于优化目标检测神经网络的后处理计算效率。
18、由此,本方案的优势在于:
19、本发明将解决例如北京君正t系列芯片运行目标检测的神经网络,在进行反量化和后处理操作时计算多余无效检测框,浪费大量算力的问题,节省计算资源,减少目标检测模型总体运行时间,从而提高效率。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com