一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种目标检测方法、装置及电子设备与流程

2022-06-15 22:49:51 来源:中国专利 TAG:


1.本公开涉及人工智能领域,尤其涉及自动驾驶、计算机视觉和深度学习技术,尤其涉及一种目标检测方法、装置及电子设备。


背景技术:

2.目标检测是计算机视觉任务中常见的手段,对障碍物等目标进行检测,可用于智慧交通以及智能驾驶等领域,而目标检测算法的好坏直接影响目标检测的效果,因此有必要对目标检测算法进行不断迭代更新。
3.目前,一般通过目标检测算法的目标检测结果的测评结果对目标检测算法进行迭代更新,而目前在对目标检测算法的检测结果进行评测过程中,常采用的方式是通过检测结果计算常见的指标,例如,准确率和召回率等。


技术实现要素:

4.本公开提供一种目标检测方法、装置及电子设备。
5.第一方面,本公开一个实施例提供一种目标检测方法,所述方法包括:
6.通过第一目标检测算法对待测帧进行目标检测,得到检测目标集合;
7.基于所述检测目标集合以及所述待测帧的标注目标集合,确定第一代价矩阵,所述第一代价矩阵中任一元素为所述检测目标集合中一检测目标与所述标注目标集合中一标注目标之间的交并比;
8.根据所述第一代价矩阵,对所述检测目标集合以及标注目标集合进行问题目标提取和分类,得到所述待测帧的至少一个问题目标集合,其中,一个问题目标集合对应一个问题类别,所述至少一个问题目标集合用于对所述第一目标检测算法进行更新。
9.在本公开实施例的目标检测方法中,在基于检测目标集合以及待测帧的标注目标集合确定第一代价矩阵后,可根据第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合,一个问题目标集合对应一个问题类别,也即是可对问题目标的问题类别进行细分,将同一问题类别的问题目标聚集在同一问题目标集合中,得到的至少一个问题目标集合可用于对第一目标检测算法进行更新,这样可提高第一目标检测算法的鲁棒性。
10.第二方面,本公开一个实施例提供一种目标检测装置,所述装置包括:
11.目标检测模块,用于通过第一目标检测算法对待测帧进行目标检测,得到检测目标集合;
12.第一确定模块,用于基于所述检测目标集合以及所述待测帧的标注目标集合,确定第一代价矩阵,所述第一代价矩阵中任一元素为所述检测目标集合中一检测目标与所述标注目标集合中一标注目标之间的交并比;
13.目标集合确定模块,用于根据所述第一代价矩阵,对所述检测目标集合以及标注目标集合进行问题目标提取和分类,得到所述待测帧的至少一个问题目标集合,其中,一个
问题目标集合对应一个问题类别,所述至少一个问题目标集合用于对所述第一目标检测算法进行更新。
14.第三方面,本公开一个实施例还提供一种电子设备,包括:
15.至少一个处理器;以及
16.与所述至少一个处理器通信连接的存储器;其中,
17.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开如第一方面提供的目标检测方法。
18.第四方面,本公开一个实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开如第一方面提供的目标检测方法。
19.第五方面,本公开一个实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开如第一方面提供的目标检测方法。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是本公开提供的一个实施例的目标检测方法的流程示意图之一;
23.图2是本公开提供的一个实施例的目标检测方法的流程示意图之二;
24.图3是本公开提供的一个实施例的目标检测方法中获取点云帧的至少一个问题目标集合的流程示意图;
25.图4是本公开提供的一个实施例的目标检测方法中进行版本对比获取版本误差的流程示意图;
26.图5是本公开提供的一个实施例的目标检测方法中进行统计和存储的流程示意图之一;
27.图6是本公开提供的一个实施例的目标检测方法中进行统计和存储的流程示意图之二;
28.图7是本公开提供的一个实施例的绘制图片x1的示意图;
29.图8是本公开提供的一个实施例的绘制图片x2的示意图;
30.图9是本公开提供的一个实施例的目标检测装置的结构图之一;
31.图10是本公开提供的一个实施例的目标检测装置的结构图之二;
32.图11是本公开提供的一个实施例的目标检测装置的结构图之三;
33.图12是用来实现本公开实施例的目标检测方法的电子设备的框图。
具体实施方式
34.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
35.如图1所示,根据本公开的实施例,本公开提供一种目标检测方法,可应用于电子设备,该方法包括:
36.步骤s101:通过第一目标检测算法对待测帧进行目标检测,得到检测目标集合,
37.目标检测算法的种类有多种,本实施例中,对第一目标检测算法不作具体限定。通过第一目标检测算法对待测帧进行目标检测,得到检测目标集合,也可称为检测结果(detection result,dt)集合,检测目标集合中包括至少一个检测目标,且还包括每个检测目标的相关信息以及预测分数,检测目标可以理解是检测框,该相关信息可包括但不限于三维坐标、尺寸信息、检测类别和航向角,尺寸信息可以包括长度、宽度和高度。一个示例中,上述待检测帧可以包括但不限于点云帧。检测目标的预测分数可表示该检测目标为对应的检测类别的概率。需要说明的是,本公开实施例中的检测框和标注框均可以为三维框(3dbox)或二维框。
38.步骤s102:基于检测目标集合以及待测帧的标注目标集合,确定第一代价矩阵;
39.第一代价矩阵中任一元素为检测目标集合中一检测目标与标注目标集合中一标注目标之间的交并比(intersection over union,iou)。
40.预先对待测帧中的目标进行标注得到待测帧的标注目标集合,标注目标集合也可以理解是真值(ground truth,gt)目标集合,标注目标集合中包括至少一个标注目标,且还可包括每个标注目标的相关信息,其中,标注目标可以理解为真值目标,标注目标可以理解是标注框。
41.在路侧采集点云帧序列和图像帧序列,经过抽帧等预处理操作后,可结合点云帧以及对应的图像帧对该点云帧进行目标标注,一个示例,待测帧可以为待测点云帧,可以理解,在对待测点云帧进行目标标注过程中,可结合待测点云帧以及对应的图像帧对该待测点云帧进行目标标注,得到标注目标集合。
42.一个示例中,交并比可以是三维交并比(3d iou),检测目标的检测框和标注目标的标注框均为方体,若检测目标a与标注目标b之间没有交集,即检测框与标注框没有交集,则iou=0,若检测目标a与标注目标b之间存在交集,则a∩b代表a跟b交集的体积,a∪b代表a跟b并集的体积。若检测框和标注框均为矩形,交并比为二维交并比,检测目标a与标注目标b之间存在交集,则a∩b代表a跟b交集的面积,a∪b代表a跟b并集的面积。
43.在本实施例中,第一代价矩阵中包括检测目标集合中检测目标与标注目标集合中标注目标之间的交并比,例如,标注目标集合中包括i个标注目标,检测目标集合中包括j个检测目标,以标注目标为行,检测目标为列,第一代价矩阵大小为i行j列,包括i
×
j个元素,第一代价矩阵中任一元素为一个标注目标与一个检测目标之间的交并比,例如,第一代价矩阵中第i行第j列的元素,为第i个标注目标与第j个检测目标之间的交并比。
44.步骤s103:根据第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合,其中,一个问题目标集合对应一个问题类别,至少一个问题目标集合用于对第一目标检测算法进行更新。
45.由于检测目标集合是通过目标检测算法检测得到的,可能存在检测有误(有问题)的情况,即得到的检测目标集合中可能存在问题目标,另外,对于标注目标集合,可能存在未检测到的目标,即漏检,也可认为是问题目标,在本实施例中,可利用第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合。
46.一个问题目标集合对应一个问题类别,相同问题类别的问题目标集中在同一问题目标集合中,由于存在至少一个问题目标集合,则存在至少一个问题类别,问题类别的数量与问题目标集合的数量相同。一个示例中,至少一个问题类别可包括但不限于漏检、误检、检测类别错误、位置错误、检测类别和位置均错误这五种类别中的至少一项。
47.得到的至少一个问题目标集合可用于对第一目标检测算法进行更新,提高第一目标检测算法的可靠性和鲁棒性。一个示例中,在对第一目标检测算法进行更新的过程中,首先可统计至少一个问题目标集合中每个问题目标集合的问题目标数量,得到至少一个问题目标集合的问题目标数量,根据至少一个问题目标集合的问题目标数量以及至少一个问题目标集合的问题类别,对第一目标检测算法进行更新。例如,若至少一个问题类别中检测类别错误的问题目标数量较多,则可针对第一目标检测算法中分类的损失、权重、特征等进行调整,实现算法更新;又例如,若至少一个问题类别中位置错误的问题目标数量较多,则可进一步分析是位置不准确、尺寸不准准确还是角度不准确,对第一目标检测算法进行anchor box(锚框)回归的优化调整,实现算法更新;再例如,若至少一个问题类别中背景误检的问题目标数量较多,则可对第一目标检测算法的样本匹配策略、前后景分类特征等进行调整,实现算法更新。
48.在本公开实施例的目标检测方法中,在基于检测目标集合以及待测帧的标注目标集合确定第一代价矩阵后,可根据第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合,一个问题目标集合对应一个问题类别,也即是可对问题目标的问题类别进行细分,将同一问题类别的问题目标聚集在同一问题目标集合中,得到的至少一个问题目标集合可用于对第一目标检测算法进行更新,这样可提高第一目标检测算法的鲁棒性。后续利用更新后的第一目标检测算法进行目标检测,可提高目标检测的准确性。
49.在一个实施例中,根据第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合,包括:
50.根据第一代价矩阵,对检测目标集合以及标注目标集合进行目标匹配,得到第一匹配结果;
51.基于第一匹配结果以及第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合。
52.得到第一代价矩阵后,需要通过第一代价矩阵对检测目标集合中的检测目标与标注目标集合中的标注目标进行初步的目标匹配,即确定哪些检测目标和标注目标初步匹配成功,哪些检测目标未匹配成功以及哪些标注目标未匹配成功,得到第一匹配结果,即第一匹配结果中包括每个检测目标的匹配结果以及每个标注目标的匹配结果。然后利用第一匹配结果以及第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合,以提高确定问题目标集合的准确性。
53.一个示例中,根据第一代价矩阵,对检测目标集合以及标注目标集合进行目标匹配,得到第一匹配结果,可以根据第一代价矩阵,通过匈牙利算法对检测目标集合以及标注目标集合进行目标匹配,得到第一匹配结果,匈牙利算法是一种匹配算法,也可以称为一种组合优化算法,本公开实施例不再对其具体过程进行赘述,本示例中,在第一代价矩阵中利用匈牙利算法进行检测目标集合以及标注目标集合的匹配,可降低匹配复杂度,提高匹配效率。
54.在一个实施例中,基于第一匹配结果以及第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合,包括:
55.根据第一匹配结果以及第一代价矩阵,从检测目标集合以及标注目标集合中获取第一未匹配目标集合以及第一匹配目标对集合,其中,第一匹配目标对集合中任一匹配目标对包括一检测目标以及匹配的一标注目标,且任一匹配目标对之间的交并比大于0;
56.对于第一未匹配目标集合中每个未匹配目标,在未匹配目标属于标注目标集合的情况下,将未匹配目标添加至漏检类别的问题目标集合中,在未匹配目标属于检测目标集合的情况下,将未匹配目标添加至误检类别的问题目标集合中;
57.基于第一代价矩阵以及第一匹配目标对集合中目标的检测类别,对第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合,m为正整数。
58.上述通过第一代价矩阵进行初步匹配后未匹配成功的目标属于第一未匹配目标集合,需要说明的是,上述第一匹配结果是通过第一代价矩阵进行初步匹配的结果,但对于初步匹配上的两个目标之间的交并比若不大于0,则可认定这2个目标最终未匹配成功的,也是属于第一未匹配目标集合,可以理解,第一未匹配目标集合包括根据第一代价矩阵,对检测目标集合以及标注目标集合未匹配成功的目标以及根据第一代价矩阵,对检测目标集合以及标注目标集合匹配成功的初始匹配对(任一初始匹配对包括一个检测目标和与该检测目标初始匹配成功的一个标注目标),且任一初始匹配对之间的交并比不大于0,而第一匹配目标对集合中任一匹配目标对中的检测目标和标注目标不但初始匹配成功,且两者之间的交并比大于0,即表示最终匹配成功,需要说明的是,检测目标与标注目标最终未匹配成功,表示该检测目标是不正确检测,即是问题目标,然而,检测目标与标注目标最终匹配成功是在第一代价矩阵以及第一匹配结果的基础上确定检测目标与标注目标匹配成功,但并不表示该检测目标一定是正确检测,即不表示该检测目标一定是不是问题目标,后续还需要进一步利用第一代价矩阵以及第一匹配目标对集合中目标的检测类别,对第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合。
59.在本实施例中,对于第一未匹配目标集合中的未匹配目标,可根据其属于检测目标集合和标注目标集合中的哪一个,将其添加到对应类别的问题目标集合中,例如,若第一未匹配目标集合中的某个未匹配目标为标注目标集合中的目标,可将该未匹配目标添加到漏检(miss error)类别的问题目标集合中,若该未匹配目标为检测目标集合中的目标,可将该未匹配目标添加到误检类别(也可称背景误检类别,即background error)的问题目标集合中。对于第一匹配目标对集合,需要进一步根据第一代价矩阵以及第一匹配目标对集合中目标的检测类别来进行问题目标提取和分类,得到m个问题目标集合。需要说明的是,检测类别是利用第一目标检测算法进行目标检测得到的检测类别,例如,检测的目标a1的检测类别为车辆,检测的目标a2的检测类别为行人,检测的目标a3为小狗等。
60.在本实施例中,首先可利用第一匹配结果以及第一代价矩阵,从检测目标集合以及标注目标集合中获取第一未匹配目标集合以及第一匹配目标对集合,后续可对第一未匹配目标集合以及第一匹配目标对集合采用不同的分类方式进行分类,即对于第一未匹配目标集合中每个未匹配目标,在未匹配目标属于标注目标集合的情况下,将未匹配目标添加至漏检类别的问题目标集合中,在未匹配目标属于检测目标集合的情况下,将未匹配目标添加至误检类别的问题目标集合中,而对于第一匹配目标对集合,需要通过第一代价矩阵以及第一匹配目标对集合中目标的检测类别,对第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合,如此,实现检测目标集合以及标注目标集合的问题目标提取和分类,得到待测帧的至少一个问题目标集合,可提高问题目标提取和分类的精确性。
61.在一个实施例中,基于第一代价矩阵以及第一匹配目标对集合中目标的检测类别,对第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合,包括以下任一项:
62.在第一代价矩阵中第一匹配目标对之间的交并比大于或等于第一阈值,且第一匹配目标对中的检测目标与标注目标之间的检测类别不匹配的情况下,将第一匹配目标对中的检测目标添加至检测类别错误类别的问题目标集合中,第一匹配目标对为第一匹配目标对集合中任一匹配目标对;
63.在第一代价矩阵中第一匹配目标对之间的交并比小于第一阈值,且第一匹配目标对中的检测目标与标注目标之间的检测类别匹配的情况下,将第一匹配目标对中的检测目标添加至位置错误类别的问题目标集合中;
64.在第一代价矩阵中第一匹配目标对之间的交并比小于第一阈值,且第一匹配目标对中的检测目标与标注目标之间的检测类别不匹配的情况下,将第一匹配目标对中的检测目标添加至检测类别和位置均错误类别的问题目标集合中。
65.需要说明的是,上述第一阈值可根据经验预先设置,本公开实施例对第一阈值的具体值不作限定,例如,对于机动车,可设置为0.5,对于其余小型目标,可设置0.25。一个示例中,上述检测类别不匹配可以是检测类别不一致或不同,检测类别匹配可以是检测类别一致或相同。
66.在本实施例对第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合的过程中,对于第一匹配目标对集合中任一匹配目标对,可从第一代价矩阵中获取该匹配目标对之间的交并比,若该匹配目标对之间的交并比大于或等于第一阈值,且该匹配目标对中的检测目标与标注目标之间的检测类别不匹配,表示该匹配目标对中检测目标的检测类别错误(class error),该检测目标为检测类别错误的问题目标,可将该匹配目标对中检测目标添加至检测类别错误类别的问题目标集合中。若该匹配目标对之间的交并比小于第一阈值,且该匹配目标对中的检测目标与标注目标之间的检测类别匹配,表示该匹配目标对中检测目标的检测位置错误(location error),该检测目标为位置错误的问题目标,可将该匹配目标对中检测目标添加至位置错误类别的问题目标集合中。若该匹配目标对之间的交并比小于第一阈值,且该匹配目标对中的检测目标与标注目标之间的检测类别不匹配,表示该匹配目标对中检测目标,不但检测类别错误而且检测位置错误,该检测目标为检测类别错误以及位置错误的问题目标,可将该匹配目标对中检测目标添加至检测类别和位置均错误类别(class error and location error)的问题目标集合中。另外,若该匹
配目标对之间的交并比大于或等于第一阈值,且该匹配目标对中的检测目标与标注目标之间的检测类别匹配,表示该匹配目标对中检测目标检测正确,即为正确检测(true positive),不是问题目标,无需将其添加至任何问题目标集合中。上述第一匹配目标对集合中每个匹配目标对均可通过上述类似过程进行是否为目标问题的判断以及分类,实现第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合。
67.在本实施例中,可通过将匹配目标对之间的交并比与第一阈值的比较以及判断匹配目标对之间的检测类别是否相同,根据比较结果以及检测类别判断结果,将该匹配目标对中检测目标添加到对应的问题目标集合中,实现对第一匹配目标对集合中问题目标的提取和分类,提高问题目标分类的精确性。
68.在一个实施例中,得到待测帧的至少一个问题目标集合之后,还包括:
69.获取待测帧的第二问题目标集合,第二问题目标集合为第二目标检测算法对应的问题目标集合,第一目标检测算法的版本与第二目标检测算法的版本不同;
70.基于第一问题目标集合以及第二问题目标集合,确定第二代价矩阵,第二代价矩阵中任一元素为第一问题目标集合中一问题目标与第二问题目标集合中一问题目标之间的交并比,第一问题目标集合为第一目标检测算法对应的问题目标集合,包括至少一个问题目标集合;
71.根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行问题标记,标记后的第一问题目标集合以及标记后的第二问题目标集合用于对第一目标检测算法的更新。
72.可以理解,第一目标检测算法与第二目标检测算法是同一目标检测算法的不同版本,将第一目标检测算法对待测帧进行目标检测得到的检测目标集合看作第一检测目标集合,利用第二目标检测算法,预先已对待测帧进行目标检测得到第二目标检测集合,基于第二检测目标集合以及待测帧的标注目标集合,确定第三代价矩阵,第三代价矩阵中任一元素为第二检测目标集合中一检测目标与标注目标集合中一标注目标之间的交并比;根据第三代价矩阵,对第二检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的第二问题目标集合,可以理解,得到的第二问题目标集合是与第二目标算法对应,第二问题目标集合中包括h个问题目标集合,h为至少一个,h个问题目标集合中的一个问题目标集合对应一个问题类别,h个问题目标集合对应h个问题类别。另外,需要说明的是,上述通过第二目标检测算法确定待测帧的第二问题目标集合的过程与通过第一目标检测算法确定待检测帧的第一问题目标集合的过程类似,不同点在于目标检测算法不同,即是不同版本的目标检测算法。
73.上述在第一目标检测算法的基础上确定的至少一个问题目标集合可看作是第一问题目标集合,在获取到待测帧的至少一个问题目标集合之后,可获取第二目标检测算法对应的第二问题目标集合,然后对第一目标检测算法对应的第一问题目标集合和第二目标检测算法的第二目标问题集合进行比较,获取不同版本的目标检测算法之间的误差信息,对第一问题目标集合以及第二问题目标集合进行问题标记。
74.具体地,可先利用第一问题目标集合以及第二问题目标集合,确定第二代价矩阵,第二代价矩阵中任一元素为第一问题目标集合中一问题目标与第二问题目标集合中一问题目标之间的交并比,例如,第二问题目标集合中问题目标数量为p(正整数),第一问题目
标集合中问题目标数量为q(正整数),以第二问题目标集合中问题目标为行,以第一问题目标集合中问题目标为列,第二代价矩阵大小为p行q列,包括p
×
q个元素,第二代价矩阵中第p行第q列的元素,为第二问题目标集合中第p个问题目标与第一问题目标集合中第q个问题目标之间的交并比。
75.上述第一目标检测算法可以理解为当前最新版本的目标检测算法,第二目标检测算法可以为目标历史版本的目标检测算法,可以根据用户的选择从多个历史版本中确定目标历史版本,或者该目标历史版本为多个历史版本中的最新版本,由于不同版本的目标检测算法的检测结果可能存在差异,新的版本可能解决了历史版本的问题,也可能会引入新的问题,在本实施例中,可对第一问题目标集合以及第二问题目标集合进行问题标记,例如,可根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行问题标记,一个示例,一个问题目标的问题标记结果可包括问题已修复、问题新出现或问题未解决。
76.在本实施例中,通过版本对比,可对对第一问题目标集合以及第二问题目标集合进行问题标记,这样可明确通过第一目标检测算法是否引入了问题、是否修复了之前的问题以及哪些问题未得到修复等,可将标记后的第一问题目标集合以及标记后的第二问题目标集合用于对第一目标检测算法的更新,这样,可提高第一目标检测算法的可靠性和鲁棒性。
77.在一个实施例中,根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行问题标记,包括:
78.根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行目标匹配,得到第二匹配结果;
79.利用第二匹配结果以及第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行问题标记。
80.得到第二代价矩阵后,需要通过第二代价矩阵对第一问题集合中的问题目标与第二问题目标集合中的问题目标进行初步的目标匹配,即确定哪些问题目标之间初步匹配成功,哪些问题目标未匹配成功,得到第二匹配结果,即第二匹配结果中包括第一问题目标集合以及第二问题目标集合中每个问题目标的匹配结果。然后利用第二匹配结果以及第二代价矩阵,对第一问题目标集合以及第二问题目标集合问题标记,以提高问题标记的准确性。
81.一个示例中,根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行目标匹配,得到第二匹配结果,可以根据第二代价矩阵,通过匈牙利算法对第一问题目标集合以及第二问题目标集合进行目标匹配,得到第二匹配结果,以降低对第一问题目标集合以及第二问题目标集合的匹配复杂度,提高匹配效率。
82.在一个实施例中,利用第二匹配结果以及第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行问题标记,包括:
83.根据第二匹配结果以及第二代价矩阵,从第一问题目标集合以及第二问题目标集合中获取第二未匹配目标集合以及第二匹配目标对集合,其中,第二匹配目标对集合中任一匹配目标对包括第一问题目标集合中一问题目标以及第二问题目标集合中匹配的一问题目标,且第二匹配目标对集合中任一匹配目标对之间的交并比大于0;
84.对于第二未匹配目标集合中每个未匹配目标,在未匹配目标属于第二问题目标集合的情况下,将未匹配目标标记为问题已修复,在未匹配目标属于第一问题集合的情况下,
将未匹配目标标记为问题新出现;
85.基于第二代价矩阵,对第二匹配目标对集合进行问题标记。
86.上述通过第二代价矩阵进行初步匹配后未匹配成功的目标属于第二未匹配目标集合,需要说明的是,上述第二匹配结果是通过第二代价矩阵进行初步匹配的结果,但对于初步匹配上的两个目标之间的交并比若不大于0,则可认定这2个目标最终未匹配成功的,也是属于第二未匹配目标集合,可以理解,第二未匹配目标集合包括根据第二代价矩阵,对第一问题目标集合和第二问题目标集合未匹配成功的问题目标以及根据第二代价矩阵,对第一问题目标集合和第二问题目标集合匹配成功的初步匹配对(任一初步匹配对包括匹配的两个问题目标,该两个问题目标中一个属于第一问题目标集合,另一个属于第二问题目标集合),且任一初步匹配对之间的交并比不大于0,而第二匹配目标对集合中任一匹配目标对中两个问题目标不但初始匹配成功,且两者之间的交并比大于0,即表示最终匹配成功。
87.在本实施例中,首先可利用第二匹配结果以及第二代价矩阵,从第一问题目标集合和第二问题目标集合中获取第二未匹配目标集合以及第二匹配目标对集合,后续可对第二未匹配目标集合以及第二匹配目标对集合进行问题标记的过程中,对于第二未匹配目标集合中未匹配目标,若未匹配目标为第二问题目标集合中的目标,即该未匹配目标属于第二问题目标集合,可将该未匹配目标标记为问题已修复,若未匹配目标为第一问题目标集合中的目标,即该未匹配目标属于第一问题目标集合,可将该未匹配目标标记为问题新出现。而对于第二匹配目标对集合,需要通过第二代价矩阵对第二匹配目标对集合进行问题标记,如此,实现第一问题目标集合以及第二问题目标集合的问题标记,也即是,在本实施例中,可先从第一问题目标集合以及第二问题目标集合中获取第二未匹配目标集合以及第二匹配目标对集合,对第二未匹配目标集合以及第二匹配目标对集合采用不同的标记方式,从而实现对目标的问题标记,可提高问题标记的精确性。
88.在一个实施例中,基于第二代价矩阵,对第二匹配目标对集合进行问题标记,包括以下任一项:
89.在第二代价矩阵中第二匹配目标对之间的交并比大于或等于第二阈值的情况下,将第二匹配目标对中的问题目标标记为问题未解决,第二匹配目标对为第二匹配目标对集合中任一匹配目标对;
90.在第二代价矩阵中第二匹配目标对之间的交并比小于第二阈值的情况下,将第二匹配目标对中第一问题目标标记为问题新出现,将第二匹配目标对中第二问题目标标记为问题已修复,第一问题目标属于第一问题目标集合,第二问题目标属于第二问题目标集合。
91.需要说明的是,上述第二阈值可根据经验预先设置,本公开实施例对第二阈值的具体值不作限定,第二阈值与第一阈值可以相同或不同。
92.在本实施例对第二匹配目标对集合进行问题标记的过程中,对于第二匹配目标对集合中任一匹配目标对,可从第二代价矩阵中获取该匹配目标对之间的交并比,若该匹配目标对之间的交并比大于或等于第二阈值,表示该匹配目标对中问题目标的问题未解决,将该匹配目标对中的问题目标标记为问题未解决。若该匹配目标对之间的交并比小于第二阈值,由于该匹配目标对中包括两个问题目标,即第一问题目标和第二问题目标,需要根据目标所属的问题目标集合确定其标记的结果,例如,可将该匹配目标对中属于第一问题目
标集合的第一问题目标标记为问题新出现,将该匹配目标对中属于第二问题目标集合的第二问题目标标记为问题已修复。
93.在本实施例中,可通过将匹配目标对之间的交并比与第二阈值的比较,根据比较结果,将该匹配目标对中问题目标标记为对应的结果,实现对第二匹配目标对集合的问题标记,提高问题标记的精确性。
94.在一个实施例中,待测帧包括n个点云帧,n为正整数,n个点云帧中任一帧对应至少一个问题目标集合;
95.在本实施例中,方法还包括:
96.统计n个点云帧的问题目标集合,得到目标统计结果;
97.其中,目标统计结果包括以下至少一项:
98.第一统计结果,第一统计结果中包括n条第一子统计结果,任一条第一子统计结果包括帧号以及帧号对应的点云帧中的问题目标;
99.第二统计结果,第二统计结果中包括k条第二子统计结果,任一条第二子统计结果包括问题类别以及问题类别对应的问题目标总数,k为正整数;
100.第三统计结果,第三统计结果中包括l条第三子统计结果,任一条第三子统计结果包括问题类别、n个点云帧中每个点云帧的帧号以及每个点云帧号对应的点云帧中属于问题类别的问题目标数量,l为正整数。
101.可以理解,对于第一统计结果,是按帧统计的结果,其中任一条第一子统计结果包括一个帧号以及该帧号对应的点云帧中的问题目标,对于第二统计结果,是按问题类别统计的结果,其中任一条第二子统计结果包括一问题类别以及该问题类别对应的问题目标总数,对于第三统计结果,是按问题类别以及帧进行统计的结果,其中任一条第三子统计结果包括一问题类别、n个点云帧中每个点云帧的帧号以及每个点云帧号对应的点云帧中属于该问题类别的问题目标数量。目标统计结果中的问题类别属于上述至少一个问题类别。
102.需要说明的是,对于某一点云帧,若将该点云帧的至少一个问题目标集合看作是第一问题目标集合,对于n个点云帧,可得到n个第一问题目标集合,对于第二目标检测算法,类似地,可得到n个第二问题目标集合,n个第一问题目标集合与n个点云帧一一对应,n个第二问题目标集合与n个点云帧一一对应。统计n个点云帧的问题目标集合可以理解是对n个点云帧的所有问题目标集合进行统计,即对n个第一问题目标集合进行统计。
103.在本实施例中,可分别按照不同的统计规则进行统计,得到上述第一统计结果、第二统计结果以及第二统计结果,提高统计的灵活性,可得到不同形式的统计结果,以便用户查看。
104.在一个实施例中,目标统计结果包括第三统计结果;
105.统计n个点云帧的问题目标集合,得到目标统计结果之后,还包括:
106.利用参考问题类别的预设问题数量和第一预设百分比中的至少一项以及在参考问题类别下n个点云帧中各点云帧的问题目标数量,对n个点云帧进行过滤,得到第一目标点云帧,参考问题类别为第三统计结果的问题类别中的任一类别;
107.对第一目标点云帧、第一目标点云帧的绘制图片、第一目标点云帧的检测目标集合以及第一目标点云帧的标注目标集合进行存储。
108.若目标统计结果包括第三统计结果,第三统计结果包括l条第三子统计结果,由于
任一条第三子统计结果中包括一问题类别,第三统计结果中包括l个问题类别,参考问题类别为l个问题类别中的任一类别,可通过参考问题类别的预设问题数量和参考问题类别的第一预设百分比中的至少一项以及在参考问题类别下n个点云帧中各点云帧的问题目标数量,对n个点云帧进行过滤,得到第一目标点云帧,可用于研发,即研发过程中,可通过对过滤后得到的第一目标点云帧中的问题目标进行分析,对目标检测算法进行迭代更新,例如,可通过第一目标点云帧的分类后的第一问题目标集合对目标检测算法进行迭代更新,避免对所有点云帧的问题目标进行分析,减少计算量,而且可更具针对性地实现对算法的更新,提高算法更新准确性。
109.在一个示例中,可将n个点云帧中参考问题类别的问题目标数量小于或等于参考问题类别的预设问题数量的点云帧过滤掉,保留n个点云帧中参考问题类别的问题目标数量大于参考问题类别的预设问题数量的点云帧,得到第一目标点云帧,可以理解,第一目标点云帧中为参考问题类别的问题目标数量大于参考问题类别的预设问题数量。另一个示例中,可将n个点云帧中参考问题类别的问题目标数量排序不在前t的点云帧过滤掉,保留n个点云帧中参考问题类别的问题目标数量排序前t的点云帧,得到第一目标点云帧,可以理解,第一目标点云帧中为参考问题类别的问题目标数量在n个点云帧中为参考问题类别的问题目标数量中排在前t。其中,t可以为n与第一预设百分比的乘积,例如,n为100,第一预设百分比为20%,可以理解是需要保留参考问题类别的问题目标数量排在这100个点云帧的参考问题类别的问题目标数量中前20的点云帧,作为第一目标点云帧。
110.需要说明的是,第一目标点云帧的帧数为一个或多个,第一目标点云帧的绘制图片可以是基于第一目标点云帧以及第一目标点云帧的第一问题目标集合中问题目标的相关信息进行绘制的图片,也可以是基于第一目标点云帧、第一目标点云帧的第一问题目标集合中问题目标的相关信息以及问题标记结果、第一目标点云帧的第二问题目标集合中问题目标的相关信息以及问题标记结果进行绘制的图片。
111.在本实施例中,进行过滤确定第一目标点云帧之后,可对第一目标点云帧、第一目标点云帧的绘制图片、第一目标点云帧的检测目标集合以及第一目标点云帧的标注目标集合进行存储,可减少存储量,避免占用较多的存储空间,节省存储空间。
112.在一个实施例中,待测帧包括n个点云帧,n为正整数,n个点云帧中任一帧对应至少一个问题目标集合;
113.根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行问题标记之后,还包括:
114.统计n个点云帧的标记后的第一问题目标集合以及n个点云帧的标记后的第二问题目标集合,得到参考统计结果,参考统计结果以下至少一项:
115.第四统计结果,第四统计结果中包括r条第四子统计结果,任一条第四子统计结果包括问题标记结果以及n个点云帧中问题标记结果对应的目标总数,r为正整数;
116.第五统计结果,第五统计结果中包括s条第五子统计结果,任一条第五子统计结果包括问题标记结果、n个点云帧中每个点云帧的帧号以及每个点云帧号对应的点云帧中为问题标记结果的目标数量,s为正整数。
117.可以理解,对于第四统计结果,是按问题标记结果(可以理解是问题标记分类或问题标记类别)统计的结果,其中任一条第四子统计结果包括一问题标记结果以及n个点云帧
中为该问题标记结果的目标总数,对于第五统计结果,是按问题标记结果以及帧进行统计的结果,其中任一条第五子统计结果包括一问题标记结果、n个点云帧中每个点云帧的帧号以及每个点云帧号对应的点云帧中为该问题标记结果的目标数量。
118.在本实施例中,可分别按照不同的统计规则进行统计,得到上述第四统计结果以及第五统计结果,提高统计的灵活性,可得到不同形式的统计结果,以便用户查看。
119.在一个实施例中,参考统计结果包括第五统计结果;
120.方法还包括:
121.利用候选问题标记结果的预设数量阈值和第二预设百分比中的至少一项以及在候选问题标记结果下n个点云帧中各点云帧的目标数量,对n个点云帧进行过滤,得到第二目标点云帧,候选问题标记结果为第五统计结果的问题标记结果中的任一标记结果;
122.对第二目标点云帧、第二目标点云帧的绘制图片、第二目标点云帧的检测目标集合以及第二目标点云帧的标注目标集合进行存储。
123.若参考统计结果包括第五统计结果,第五统计结果包括s条第五子统计结果,由于任一条第五子统计结果中包括一问题标记结果,第五统计结果中包括s个问题标记结果,候选问题标记结果为s个问题标记结果中的任一标记结果,可通过候选问题标记结果的预设数量阈值和候选问题标记结果的第二预设百分比中的至少一项以及在候选问题标记结果下n个点云帧中各点云帧的目标数量,对n个点云帧进行过滤,得到第二目标点云帧,可用于研发,即研发过程中,可通过对过滤后得到的第二目标点云帧中的问题目标进行分析,对目标检测算法进行迭代更新,例如,可通过第二目标点云帧标记后的第一问题目标集合和标记后的第二问题目标集合,对目标检测算法进行迭代更新,避免对所有点云帧的问题目标进行分析,减少计算量,而且可更具针对性地实现对算法的更新,提高算法更新准确性。
124.在一个示例中,可将n个点云帧中候选问题标记结果的目标数量小于或等于候选问题标记结果的预设数量阈值的点云帧过滤掉,保留n个点云帧中候选问题标记结果的目标数量大于候选问题标记结果的预设数量阈值的点云帧,得到第二目标点云帧,可以理解,第二目标点云帧中为候选问题标记结果的目标数量大于候选问题标记结果的预设数量阈值。另一个示例中,可将n个点云帧中候选问题标记结果的目标数量排序不在前u的点云帧过滤掉,保留n个点云帧中候选问题标记结果的目标数量排序前u的点云帧,得到第二目标点云帧,可以理解,第二目标点云帧中为候选问题标记结果的目标数量在n个点云帧中为候选问题标记结果的目标数量中排在前u。其中,u可以为n与第二预设百分比的乘积,例如,n为100,第二预设百分比为20%,可以理解是需要保留候选问题标记结果的目标数量排在这100个点云帧的候选问题标记结果的目标数量中前20的点云帧,作为第二目标点云帧。
125.需要说明的是,第二目标点云帧的帧数为一个或多个,第二目标点云帧的绘制图片可以是基于第二目标点云帧以及第二目标点云帧的第一问题目标集合中问题目标的相关信息进行绘制的图片,也可以是基于第二目标点云帧、第二目标点云帧的第一问题目标集合中问题目标的相关信息以及问题标记结果、第二目标点云帧的第二问题目标集合中问题目标的相关信息以及问题标记结果进行绘制的图片。
126.在本实施例中,进行过滤确定第二目标点云帧之后,可对第二目标点云帧、第二目标点云帧的绘制图片、第二目标点云帧的检测目标集合以及第二目标点云帧的标注目标集合进行存储,可减少存储量,避免占用较多的存储空间,节省存储空间。
127.在一个示例中,在存储的过程中,可根据点云帧对应的准确率和召回率,确定存储的目录。例如,对于第一目标点云帧中任一点云帧或第二目标点云帧中任一点云帧,可根据该点云帧的至少一个问题目标集合,计算该点云帧的准确率和召回率,在准确率小于预设准确率阈值和/或召回率小于预设召回率阈值的情况下,可将该点云帧、该点云帧的绘制图片、该点云帧的检测目标集合以及该点云帧的标注目标集合存入第一目录,例如可以是检查(check)目录,否则,存入第二目录,例如可以是通过(pass)目录。
128.一个示例中,对于第一目标点云帧中任一点云帧或对于第二目标点云帧中任一点云帧,根据对该点云帧的检测目标集合以及该点云帧的标注目标集合进行问题目标提取和分类而得到的该点云帧的至少一个问题目标集合,可统计得到该点云帧中正确检测(true positive,tp)的目标数量、该点云帧中误检(false positive,fp)的目标数量以及该点云帧中漏检(false negative,fn)的目标数量,该点云帧的准确率precision可通过以下公式确定:
[0129][0130]
其中,∑tp表示正确检测的目标数量,∑(tp fp)表示正确检测的目标数量与误检的目标数量之和,可以理解是该点云帧的检测目标集合中的目标总数。
[0131]
该点云帧的准确率recall可通过以下公式确定:
[0132][0133]
其中,∑(tp fn)表示正确检测的目标数量与漏检的目标数量之和,可以理解是该点云帧的标注目标集合中的目标总数。
[0134]
下面以具体实施例对上述方法的过程加以具体说明,以n个点云帧为例进行说明。
[0135]
如图2所示,本实施例的方法的整体流程如下:
[0136]
首先,对于每一个点云帧,读取点云帧的标注结果以及在当前测试版本的第一目标检测算法下的检测结果,生成标注目标集合以及检测目标集合;
[0137]
然后,将检测目标集合与标注目标集合进行比对,获取错误信息,即获取点云帧的至少一个问题目标集合(第一问题目标集合);
[0138]
其次,计算点云帧的准确率和召回率;
[0139]
再者,判断是否进行版本对比;
[0140]
若确定进行版本对比,则利用当前检测版本的第一目标检测算法与目标历史版本的第二目标检测算法进行对比,对第一目标检测算法的第一问题目标集合以及第二目标检测算法的第二问题目标集合进行问题标记,得到所第一问题目标集合的问题标记结果以及第二问题目标集合的问题标记结果,即获取版本误差,也可以理解是得到标记后的第一问题目标集合以及标记后的第二问题目标集合。
[0141]
后续利用点云帧的版本误差创建空白画布,绘制地面以及目标点云,得到第一初步图片,利用点云帧的至少一个问题目标集合在第一初步图片基础上绘制目标框(可包括检测框和标注框),得到第一绘制图片;
[0142]
若确定不进行版本对比,即可创建空白画布,绘制地面以及目标点云,得到第二初步图片,利用点云帧的至少一个问题目标集合在第二初步图片基础上绘制目标框,得到第
二绘制图片;
[0143]
判断准确率和召回率是否满足条件,例如,判断准确率是否小于预设准确率阈值以及召回率是否小于预设召回率阈值,若准确率小于预设准确率阈值以及召回率小于预设召回率阈值,可确定满足条件,否则不满足条件;
[0144]
若满足条件,将点云帧、点云帧的绘制图片(第一绘制图片或第二绘制图片)、点云帧的检测目标集合和标注目标集合存入检查目录;
[0145]
若不满足条件,将点云帧、点云帧的绘制图片(第一绘制图片或第二绘制图片)、点云帧的检测目标集合和标注目标集合存入通过目录。
[0146]
预设准确率阈值和预设召回率阈值的设定可以根据研发阶段进行设定,如果是在研发初期可以设定为整个数据集上平均准确率和平均召回率,准确率和召回率大于或等于对应平均值的,将这些点云帧以及对应结果存进通过目录,后续可以将这些点云帧生成的图片忽略掉,减轻工作量,反之存进检查目录,把注意力聚焦在准确率和召回率小于平均值的帧生成的图片;如果在研发中后期,大片的漏检、误检已经基本上没有了,需要精细定位问题,可以直接将预设准确率阈值和预设召回率阈值设定为固定的值,比方说95%,对于准确率和召回率小于95%的帧数着重检查。
[0147]
是否进行版本对比根据迭代需求选择,如果需要进行版本对比的话,需要提前生成基准版本(目标历史版本)的问题目标集合,以此作为输入,与当前测试版本的问题目标集合进行对比,输出版本误差,如果不需要对比,则直接进行可视化的绘制。
[0148]
另外,需要说明的是,绘制目标框以目标的相关信息、问题类别和版本误差信息作为输入,读取绘制mask来选择是否绘制当前类别的目标。如果只想查看错误的检测结果(误检),可以把正确检测的目标的绘制开关关掉,则将不会绘制正确检测的目标;或者想查看每一类别具体的错误,把当前错误类别打开,其他类别都关闭,再进行绘制即可。
[0149]
如图3所示,获取点云帧的至少一个问题目标集合的过程如下:
[0150]
首先,将点云帧的标注目标集合(gt)和检测目标集合(dt)作为输入,计算两者中各目标之间的3d iou,得到第一代价矩阵,标注目标为行,检测目标为列;
[0151]
其次,在第一代价矩阵中利用匈牙利算法进行标注目标集合和检测目标集合的初始匹配,即检测标注目标集合和检测目标集合中目标之间是否匹配,若两个目标之间初步匹配成功且两个目标在第一代价矩阵中对应的交并比大于0,代表这两个目标匹配上,否则这两个目标未能匹配;
[0152]
对于未匹配上的目标,判断其是否在检测目标集合中,若在检测目标集合中,则可将其确定为背景误检(background eroor),若不在检测目标集合中,在标注目标集合中,则可将其确定为漏检(miss error)。
[0153]
对于匹配上的目标,进一步判断其对应的3d iou是否大于第一阈值;
[0154]
若大于或等于第一阈值,且匹配上的两个目标的检测类别相同,则可确定其为正确检测(true positive),若大于或等于第一阈值,但匹配上的两个目标的检测类别不同,则可确定其中的检测目标为检测类别错误(class error);
[0155]
若小于第一阈值,且匹配上的两个目标的检测类别相同,则可确定其中的检测目标为位置错误(location error);若小于第一阈值,且匹配上的两个目标的检测类别不同,则可确定其中的检测目标为检测类别和位置均错误(class error and location error)。
[0156]
通过上述问题目标分类,可以将当前测试版本检测效果的问题细化,将时间和精力就聚焦在头部问题上,针对性地将问题个个击破。例如,如果是检测类别错误的问题目标数量较多,则可针对第一目标检测算法中分类的损失、权重、特征等进行调整,实现算法更新;又例如,若位置错误的问题目标数量较多,则可进一步分析是位置不准确、尺寸不准准确还是角度不准确,对第一目标检测算法进行anchor box(锚框)回归的优化调整,实现算法更新;再例如,若背景误检的问题目标数量较多,则可对第一目标检测算法的样本匹配策略、前后景分类特征等进行调整,实现算法更新。
[0157]
如图4所示,获取版本误差的过程如下:
[0158]
首先,对比版本(test version,即当前测试版本)的问题目标集合(第一问题目标集合)和基准版本(base version)的问题目标集合(第二问题目标集合)作为输入,计算两者中各目标之间的3d iou,得到第二代价矩阵,基准版本的目标为行,对比版本的目标为列;
[0159]
其次,在第二代价矩阵中利用匈牙利算法进行第一问题目标集合和第二问题目标集合的初始匹配,若两个目标初始匹配成功且这两个目标第二代价矩阵中对应的交并比大于0,代表这两个目标匹配上,否则目标未能匹配;
[0160]
对于未匹配上的目标,如果其是在第二问题目标集合中,则将其标记为问题已修复(fixed),如果是在第一问题目标集合中,则将其标记为问题新出现(new);
[0161]
对于匹配上的目标,进一步判断对应的3d iou是否大于第二阈值;
[0162]
如果大于或等于第二阈值,将匹配上的目标标记为问题未解决(remain);
[0163]
如果小于第二阈值,对于匹配上的目标中属于第二问题目标集合的目标标注为问题已修复,对于匹配上的目标中属于第一问题目标集合的目标标注为问题新出现。
[0164]
通过版本对比,可以快速定位到当前测试版本新增的问题,可以明确当前测试版本是否引入更多问题目标,如果引入了更多的问题,说明当前测试版本是不合格;也可以发现当前测试版本是否修复了之前的问题,如果修复的问题很多,说明当前测试版本带来的效果较好;也可以判断还有哪些问题未得到修复,后续需要重点解决。
[0165]
如图5所示,在对n个点云帧中每一帧进行问题分类,确定n个点云帧的第一问题目标集合后,可对n个点云帧的第一问题目标集合进行统计和存储,具体过程如下:
[0166]
记录每一帧的第一问题目标集合,汇总n个点云帧的第一问题目标集合中所有问题目标,具体地,可按帧统计汇总,将问题目标的相关信息按帧存储进json文件中,可以理解,统计的结果为第一统计结果,具体形式如下:
[0167]
{“帧号”:[[目标1],[目标2]
……
],“帧号”:[[目标1],[目标2]
……
]};
[0168]
统计每一帧的目标问题明细,即统计每一帧中每个问题类别的问题目标数量,汇总n个点云帧的目标问题明细,对各问题类别的问题目标总数进行统计,得到第二统计结果,具体形式如下:
[0169]
{“问题类别1”:总数,“问题类别2”:总数,
……
};
[0170]
例如,统计的漏检的总数为65444,统计的误检的总数为30650,统计的检测类别和位置均错误的总数为6478,统计的位置错误的总数为17761,统计的检测类别错误的总数为5751。
[0171]
以每一帧出现各问题类别的问题目标数量依据,在每一个问题类别中对帧号进行
降序排列,把问题目标数量最多的帧号排在最前面,再存进json中,可以理解,这样得到的统计结果为第三统计结果(问题类别排序结果),具体形式如下:
[0172]
{“问题类别1”:{“帧号1”:”数量1”,“帧号2”:”数量2
”……
},问题类别2”:{“帧号1”:”数量1”,“帧号2”:”数量2
”……
}
……
};
[0173]
例如,统计的帧号为007671的点云帧的漏检的数量为36,统计的帧号为005218的点云帧的漏检的数量为29,统计的帧号为003952的点云帧的漏检的数量为28等。
[0174]
需要说明的是,上述问题类别可包括漏检、误检、检测类别错误、位置错误、检测类别和位置均错误等。可以按照某个问题类别(例如,漏检)的问题目标数量,利用对应的预设问题数量或者第一预设百分比(前(top)20%)对n个点云帧进行过滤,得到第一目标点云帧,按照问题类别将第一目标点云帧、第一目标点云帧的绘制图片、第一目标点云帧的检测目标集合和第一目标点云帧的标注目标集合存进对应的目录;通过第一预设百分比过滤可以在研发前期使用,此时问题较多,可以筛选出头部问题,通过预设问题数量过滤可以在研发后期使用,把每一帧出现问题数量不符合预期的,全部挑选出来。
[0175]
如图6所示,在版本对比后,可对n个点云帧的标记后的第一问题目标集合以及n个点云帧的标记后的第二问题目标集合进行统计和存储,具体过程如下:
[0176]
统计每一帧的对比结果明细,即统计每一帧中每个问题标记结果的目标数量,汇总n个点云帧的对比结果明细,对各问题标记结果的目标总数进行统计,得到第四统计结果,将汇总统计的结果存储进json文件中,第四统计结果的具体形式如下:
[0177]
{“问题标记结果1”:总数,“问题标记结果2”:总数,
……
};
[0178]
这样,可以较明显知道当前测试版本新增了多少问题,修复了多少问题、以及还有多少问题没有得到修复(即未解决)。
[0179]
例如,统计的问题新出现的总数为100,统计的问题已修复的总数为150,统计的问题未解决的总数为130。
[0180]
以每一帧版本对比出现各问题标记结果的目标数量,在每一个问题标记结果中对帧号进行降序排列,把目标数量最多的帧号排在最前面,再存进json中,可以理解,这样得到的统计结果为第五统计结果(版本对比排序结果),具体形式如下:
[0181]
{“问题标记结果1”:{“帧号1”:”数量1”,“帧号2”:”数量2
”……
},“问题标记结果2”:{“帧号1”:”数量1”,“帧号2”:”数量2
”……
}
……
};
[0182]
例如,统计的帧号为007671的点云帧中问题未解决的数量为47,统计的帧号为006373的点云帧的问题未解决的数量为44,统计的帧号为005190的点云帧的问题未解决的数量为43等。
[0183]
需要说明的是,上述问题标记结果可包括问题新出现、问题已修复、问题未解决等。
[0184]
可以按照某个问题标记结果(例如,问题新出现)的目标数量,利用对应的预设数量阈值或者第二预设百分比(前20%)对对n个点云帧进行过滤,得到第二目标点云帧,按照问题标记结果将第二目标点云帧、第二目标点云帧的绘制图片、第二目标点云帧的检测目标集合和第二目标点云帧的标注目标集合存进对应的目录,如果当前测试版本出现新问题时,仅需要对挑选出来的新增问题(问题新出现)的头部问题进行检查,无需要在全部数据集中去寻找问题,大幅提升效率。
[0185]
对于某个点云帧f1,若经过版本对比,得到了版本误差信息,利用版本误差信息进行了绘制,得到对应的第二绘制图片x1,如图7所示,其中,点云帧f1的帧号为000042,版本误差信息中问题标记结果为问题未解决(remain)的目标数量为11,版本误差信息中问题标记结果为问题已修复(fixed)的目标数量为4,版本误差信息中问题标记结果为问题新出现(new)的问题目标数量为4,该点云帧f1的准确率(precision)为94.78%,召回率(recall)为88.62%,漏检(miss_err)的数量为9,背景误检(bground_err)的数量为1,检测类别和位置均错误(cls&loc_err)的数量为2,位置错误(loc_err)的数量为2,检测类别错误(cls_err)的数量为1,点云帧f1的标注目标集合中的目标总数(tp_gt)为109,点云帧f1的检测目标集合中的目标总数(tp_dt)为109。
[0186]
对于某个点云帧f2,若经过版本对比,得到了版本误差信息,利用版本误差信息进行了绘制,得到对应的第二绘制图片x2,如图8所示,其中,点云帧f2的帧号为000048,版本误差信息中问题标记结果为问题未解决(remain)的目标数量为14,版本误差信息中问题标记结果为问题已修复(fixed)的目标数量为4,版本误差信息中问题标记结果为问题新出现(new)的问题目标数量为3,该点云帧f2的准确率(precision)为89.19%,召回率(recall)为86.09%,漏检(miss_err)的数量为5,背景误检(bground_err)的数量为1,检测类别和位置均错误(cls&loc_err)的数量为3,位置错误(loc_err)的数量为8,检测类别错误(cls_err)的数量为0,点云帧f2的标注目标集合中的目标总数(tp_gt)为99,点云帧f2的检测目标集合中的目标总数(tp_dt)为99。
[0187]
通过本公开实施例的方法,将激光雷达目标检测结果进一步分类和过滤,可以更快发现聚焦问题,加快修复问题效率,帮助更好地完善产品,采用通用指标之外的另一个纬度,让当前测试版本的问题更清晰,可以更具针对性去解决问题;也可以快速定位当前测试版本的问题,可以实现对问题的精准分类,避免分类模糊增大沟通成本等问题,可以减少人力成本,提高迭代效率。本公开实施例在数据量大时对时间的节省和效率的提升更加明显,原来需要人工检查10000点云帧,通过本方法后,可以缩减10倍及以上。目前,各个厂家也在相继布局车路协同路侧感知系统,本公开可以促进路侧激光雷达算法加速迭代更新,建立领域领先优势。
[0188]
另外,本公开实施例的方案中的分类和过滤方法在研发前中后期皆可应用,如此可更好更快地发现和分类当前测试版本的问题,也可以快速定位问题,解决和修复当前测试版本出现的问题,实现快速迭代,保证路侧激光雷达的产品质量,使得激光雷达目标检测更加鲁棒。
[0189]
如图9所示,根据本公开的实施例,本公开还提供一种目标检测装置900,装置包括:
[0190]
目标检测模块901,用于通过第一目标检测算法对待测帧进行目标检测,得到检测目标集合;
[0191]
第一确定模块902,用于基于检测目标集合以及待测帧的标注目标集合,确定第一代价矩阵,第一代价矩阵中任一元素为检测目标集合中一检测目标与标注目标集合中一标注目标之间的交并比;
[0192]
目标集合确定模块903,用于根据第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合,其中,一个问题目标集
合对应一个问题类别,至少一个问题目标集合用于对第一目标检测算法进行更新。
[0193]
在一个实施例中,如图10所示,目标集合确定模块903,包括:
[0194]
第一匹配模块9031,用于根据第一代价矩阵,对检测目标集合以及标注目标集合进行目标匹配,得到第一匹配结果;
[0195]
问题目标确定模块9032,用于基于第一匹配结果以及第一代价矩阵,对检测目标集合以及标注目标集合进行问题目标提取和分类,得到待测帧的至少一个问题目标集合。
[0196]
如图11所示,在一个实施例中,问题目标确定模块9032,包括:
[0197]
第一获取模块90321,用于根据第一匹配结果以及第一代价矩阵,从检测目标集合以及标注目标集合中获取第一未匹配目标集合以及第一匹配目标对集合,其中,第一匹配目标对集合中任一匹配目标对包括一检测目标以及匹配的一标注目标,且任一匹配目标对之间的交并比大于0;
[0198]
第一添加模块90322,用于对于第一未匹配目标集合中每个未匹配目标,在未匹配目标属于标注目标集合的情况下,将未匹配目标添加至漏检类别的问题目标集合中,在未匹配目标属于检测目标集合的情况下,将未匹配目标添加至误检类别的问题目标集合中;
[0199]
问题目标子确定模块90323,用于基于第一代价矩阵以及第一匹配目标对集合中目标的检测类别,对第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合,m为正整数。
[0200]
在一个实施例中,基于第一代价矩阵以及第一匹配目标对集合中目标的检测类别,对第一匹配目标对集合进行问题目标提取和分类,得到m个问题目标集合,包括以下任一项:
[0201]
在第一代价矩阵中第一匹配目标对之间的交并比大于或等于第一阈值,且第一匹配目标对中的检测目标与标注目标之间的检测类别不匹配的情况下,将第一匹配目标对中的检测目标添加至检测类别错误类别的问题目标集合中,第一匹配目标对为第一匹配目标对集合中任一匹配目标对;
[0202]
在第一代价矩阵中第一匹配目标对之间的交并比小于第一阈值,且第一匹配目标对中的检测目标与标注目标之间的检测类别匹配的情况下,将第一匹配目标对中的检测目标添加至位置错误类别的问题目标集合中;
[0203]
在第一代价矩阵中第一匹配目标对之间的交并比小于第一阈值,且第一匹配目标对中的检测目标与标注目标之间的检测类别不匹配的情况下,将第一匹配目标对中的检测目标添加至检测类别和位置均错误类别的问题目标集合中。
[0204]
在一个实施例中,装置900还包括:
[0205]
第二获取模块,用于获取待测帧的第二问题目标集合,第二问题目标集合为第二目标检测算法对应的问题目标集合,第一目标检测算法的版本与第二目标检测算法的版本不同;
[0206]
第二确定模块,用于基于第一问题目标集合以及第二问题目标集合,确定第二代价矩阵,第二代价矩阵中任一元素为第一问题目标集合中一问题目标与第二问题目标集合中一问题目标之间的交并比,第一问题目标集合为第一目标检测算法对应的问题目标集合,包括至少一个问题目标集合;
[0207]
标记模块,用于根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合
进行问题标记,标记后的第一问题目标集合以及标记后的第二问题目标集合用于对第一目标检测算法的更新。
[0208]
在一个实施例中,标记模块,包括:
[0209]
第二匹配模块,用于根据第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行目标匹配,得到第二匹配结果;
[0210]
问题标记模块,用于利用第二匹配结果以及第二代价矩阵,对第一问题目标集合以及第二问题目标集合进行问题标记。
[0211]
在一个实施例中,问题标记模块,包括:
[0212]
第三获取模块,用于根据第二匹配结果以及第二代价矩阵,从第一问题目标集合以及第二问题目标集合中获取第二未匹配目标集合以及第二匹配目标对集合,其中,第二匹配目标对集合中任一匹配目标对包括第一问题目标集合中一问题目标以及第二问题目标集合中匹配的一问题目标,且第二匹配目标对集合中任一匹配目标对之间的交并比大于0;
[0213]
第一标记子模块,用于对于第二未匹配目标集合中每个未匹配目标,在未匹配目标属于第二问题目标集合的情况下,将未匹配目标标记为问题已修复,在未匹配目标属于第一问题集合的情况下,将未匹配目标标记为问题新出现;
[0214]
第二标记子模块,用于基于第二代价矩阵,对第二匹配目标对集合进行问题标记。
[0215]
在一个实施例中,基于第二代价矩阵,对第二匹配目标对集合进行问题标记,包括以下任一项:
[0216]
在第二代价矩阵中第二匹配目标对之间的交并比大于或等于第二阈值的情况下,将第二匹配目标对中的问题目标标记为问题未解决,第二匹配目标对为第二匹配目标对集合中任一匹配目标对;
[0217]
在第二代价矩阵中第二匹配目标对之间的交并比小于第二阈值的情况下,将第二匹配目标对中第一问题目标标记为问题新出现,将第二匹配目标对中第二问题目标标记为问题已修复,第一问题目标属于第一问题目标集合,第二问题目标属于第二问题目标集合。
[0218]
在一个实施例中,待测帧包括n个点云帧,n为正整数,n个点云帧中任一帧对应至少一个问题目标集合;
[0219]
装置还包括:
[0220]
第一统计模块,用于统计n个点云帧的问题目标集合,得到目标统计结果;
[0221]
其中,目标统计结果包括以下至少一项:
[0222]
第一统计结果,第一统计结果中包括n条第一子统计结果,任一条第一子统计结果包括帧号以及帧号对应的点云帧中的问题目标;
[0223]
第二统计结果,第二统计结果中包括k条第二子统计结果,任一条第二子统计结果包括问题类别以及问题类别对应的问题目标总数,k为正整数;
[0224]
第三统计结果,第三统计结果中包括l条第三子统计结果,任一条第三子统计结果包括问题类别、n个点云帧中每个点云帧的帧号以及每个点云帧号对应的点云帧中属于问题类别的问题目标数量,l为正整数。
[0225]
在一个实施例中,目标统计结果包括第三统计结果;
[0226]
装置还包括:
[0227]
第一过滤模块,用于利用参考问题类别的预设问题数量和第一预设百分比中的至少一项以及在参考问题类别下n个点云帧中各点云帧的问题目标数量,对n个点云帧进行过滤,得到第一目标点云帧,参考问题类别为第三统计结果的问题类别中的任一类别;
[0228]
第一存储模块,用于对第一目标点云帧、第一目标点云帧的绘制图片、第一目标点云帧的检测目标集合以及第一目标点云帧的标注目标集合进行存储。
[0229]
在一个实施例中,待测帧包括n个点云帧,n为正整数,n个点云帧中任一帧对应至少一个问题目标集合;
[0230]
装置还包括:
[0231]
第二统计模块,用于统计n个点云帧的标记后的第一问题目标集合以及n个点云帧的标记后的第二问题目标集合,得到参考统计结果,参考统计结果以下至少一项:
[0232]
第四统计结果,第四统计结果中包括r条第四子统计结果,任一条第四子统计结果包括问题标记结果以及n个点云帧中问题标记结果对应的目标总数,r为正整数;
[0233]
第五统计结果,第五统计结果中包括s条第五子统计结果,任一条第五子统计结果包括问题标记结果、n个点云帧中每个点云帧的帧号以及每个点云帧号对应的点云帧中为问题标记结果的目标数量,s为正整数。
[0234]
在一个实施例中,参考统计结果包括第五统计结果;
[0235]
装置还包括:
[0236]
第二过滤模块,用于利用候选问题标记结果的预设数量阈值和第二预设百分比中的至少一项以及在候选问题标记结果下n个点云帧中各点云帧的目标数量,对n个点云帧进行过滤,得到第二目标点云帧,候选问题标记结果为第五统计结果的问题标记结果中的任一标记结果;
[0237]
第二存储模块,用于对第二目标点云帧、第二目标点云帧的绘制图片、第二目标点云帧的检测目标集合以及第二目标点云帧的标注目标集合进行存储。
[0238]
上述各实施例的目标检测装置为实现上述各实施例的目标检测方法的装置,技术特征对应,技术效果对应,在此不再赘述。
[0239]
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0240]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质以及一种计算机程序产品。
[0241]
本公开实施例的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的目标检测方法。
[0242]
本公开实施例的计算机程序产品,包括计算机程序,计算机程序用于使计算机执行本公开各实施例提供的目标检测方法。
[0243]
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0244]
如图12所示,电子设备1200包括计算单元1201,其可以根据存储在只读存储器(rom)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(ram)1203中的计算机程序,来执行各种适当的动作和处理。在ram1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、rom 1202以及ram 1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。
[0245]
电子设备1200中的多个部件连接至i/o接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许电子设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0246]
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(i)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如目标检测方法。例如,在一些实施例中,目标检测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由rom 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到ram1203并由计算单元1201执行时,可以执行上文描述的目标检测方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行目标检测方法。本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0247]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0248]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0249]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0250]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
[0251]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0252]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0253]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献