CN110659538B - 一种非极大值抑制计算器和计算方法 - Google Patents
一种非极大值抑制计算器和计算方法 Download PDFInfo
- Publication number
- CN110659538B CN110659538B CN201810690957.1A CN201810690957A CN110659538B CN 110659538 B CN110659538 B CN 110659538B CN 201810690957 A CN201810690957 A CN 201810690957A CN 110659538 B CN110659538 B CN 110659538B
- Authority
- CN
- China
- Prior art keywords
- zero
- detection frame
- reading
- overlapping degree
- local memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种非极大值抑制计算器和计算方法,该计算器包括第一读写单元、分类计算单元、重叠度计算单元和第二读写单元;第一读写单元为从外部存储器读取每类物体的置信值设标志位写入本地存储器;分类计算单元从本地存储器读取每类物体任意两个非零标志位对应的置信值进行比较获得比较结果;重叠度计算单元读取计算对应的检测框坐标信息的重叠度获得检测框重叠度结果;分类计算单元根据两个结果确定是否更新非零标志位写入本地存储器;第二读写单元从本地存储器读取确定每个检测框非零标志位对应的最大置信值、物体类别和检测框序号写入外部存储器。可见,只读取非零标志位对应的数据进行多类并行处理,减少访问频率,减少计算量提高计算力。
Description
技术领域
本申请涉及算法计算技术领域,尤其涉及一种非极大值抑制计算器和计算方法。
背景技术
目前,在视觉任务实现物体检测通常需要采用非极大值抑制(英文:non-maximumsuppression,缩写:NMS)算法,其应用较为广泛,例如,边缘检测、目标检测等等。NMS算法的含义是指抑制不是极大值的元素,以便搜索局部的极大值。
一般地,现有物体检测利用NMS算法方式如下:获得针对某个图像的N个检测框坐标信息(检测框左上角、右上角、左下角、右下角在该图像中的坐标信息)和每个检测框中识别得到的C类物体的置信值(物体属于某一类的概率),其中,N是可设定的检测框个数,C是可设定的最大识别物体种类。通过计算N个检测框中任意两个检测框重叠度来确定两个检测框是否有较大重叠;若重叠度足够大,比较两个检测框下的C类物体中每一类物体置信值,保留大的置信值,将小的置信值修改为0;最后对N个检测框中每一个检测框,取C类物体的最大值,记录C类物体中最大置信值、对应的类别以及检测框序号。
发明人经过研究发现,现有的NMS计算方式对于任意两个检测框,都要计算它们的重叠度,对于重叠度足够大的任意两个检测框中每一类物体置信值都需要比较,计算法复杂度较大,计算量也非常大,导致计算耗费时间较多,计算力较为低下,用户体验较差。
发明内容
本申请所要解决的技术问题是,提供一种非极大值抑制计算器和计算方法,利用置信值的稀疏性减少计算量,从而提高计算力,且采用多类计算并行处理的方式进一步提高计算力;多类计算共享重叠度计算单元降低功耗,计算器硬件面积较小,最终实现用户体验的提升。
第一方面,本申请实施例提供了一种非极大值抑制计算器,该计算器包括:第一读写单元、分类计算单元、重叠度计算单元和第二读写单元;
所述第一读写单元,用于从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器并记录写入数据量,其中,C≥1,N≥2,标志位包括非零标志位和零标志位;
所述分类计算单元,用于若检测所述本地存储器存储数据量大于预设量时,从所述本地存储器读取所述每类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,获得比较结果;
所述重叠度计算单元,用于从所述本地存储器读取所述每类物体非零标志位对应的检测框坐标信息,依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,获得检测框重叠度结果发送至所述分类计算单元;
所述分类计算单元,还用于根据所述比较结果和对应的所述检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器;
所述第二读写单元,用于从所述本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入所述外部存储器。
可选的,所述分类计算单元包括并行的M个分类计算子单元,所述每个分类计算子单元一次计算对应所述C类物体中一类物体;其中,所述M≤C。
可选的,所述分类计算子单元包括第一读取模块、第二读取模块、比较模块和更新模块;
所述第一读取模块,用于若检测所述本地存储器存储数据量大于预设量时,向所述本地存储器发送读取所述预设类物体N个标志位的请求;
所述第二读取模块,用于获得所述预设类物体N个标志位并查找非零标志位,向所述本地存储器发送读取所述预设类物体非零标志位对应的置信值的请求;
所述比较模块,用于获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,获得比较结果;
所述更新模块,用于根据所述比较结果和对应的检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器。
可选的,所述比较模块具体用于:获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,确定所述任意两个所述非零标志位对应的置信值中较小置信值。
可选的,所述重叠度计算单元包括仲裁子单元和重叠度计算子单元;
所述仲裁子单元,用于获得所述预设类物体非零标志位对应的检测框坐标信息,生成队列发送至所述重叠度计算子单元,并接收所述重叠度计算子单元反馈的所述检测框重叠度结果发送至对应的更新模块;
所述重叠度计算子单元,用于依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,获得所述检测框重叠度结果发送至所述仲裁子单元。
可选的,所述重叠度计算子单元具体用于:依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,若所述重叠度大于等于预设重叠度,获得检测框重叠度结果为重叠度大发送至所述仲裁子单元;若所述重叠度小于预设重叠度,获得检测框重叠度结果为重叠度小发送至所述仲裁子单元。
可选的,所述更新模块具体用于:若检测框重叠度结果为重叠度大,将所述较小置信值对应的非零标志位更新为零标志位并写入所述本地存储器。
可选的,所述第二读写单元包括第一读取子单元、第二读取子单元、比较确定子单元和写入子单元;
所述第一读取子单元,用于向所述本地存储器发送读取所述每个检测框C个标志位的请求;
所述第二读取子单元,用于获得所述每个检测框C个标志位,向所述本地存储器发送读取所述每个检测框非零标志位对应的置信值的请求;
所述比较确定子单元,用于获得所述每个检测框非零标志位对应的置信值进行比较,确定所述每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号;
写入子单元,用于将所述最大置信值、对应的物体类别和检测框序号写入所述外部存储器。
可选的,所述第一读写单元具体用于:向所述外部存储器发送读取C类物体的物体检测相关信息的请求;获得所述C类物体中每类物体的N个置信值和对应的检测框坐标信息;若所述置信值为零,对应设置零标志;若所述置信值不为零,对应设置非零标志;将所述C类物体中每类物体的N个置信值、对应的检测框坐标信息和标志位写入本地存储器并记录写入数据量。
第二方面,本申请实施例提供了一种非极大值抑制计算方法,该方法包括:
从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器并记录写入数据量,其中,C≥1,N≥2,标志位包括非零标志位和零标志位;
若检测所述本地存储器存储数据量大于预设量时,从所述本地存储器读取所述每类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值获得比较结果;
从所述本地存储器读取所述每类物体非零标志位对应的检测框坐标信息,依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度获得检测框重叠度结果;
根据所述比较结果和对应的所述检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器;
从所述本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入所述外部存储器。
与现有技术相比,本申请至少具有以下优点:
采用本申请实施例的技术方案,非极大值抑制计算器包括第一读写单元、分类计算单元、重叠度计算单元和第二读写单元;第一读写单元从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位写入本地存储器;若分类计算单元检测本地存储器存储数据量大于预设量时,从本地存储器读取每类物体非零标志位对应的置信值,依次比较任意两个非零标志位对应的置信值,获得比较结果;同时重叠度计算单元相应地读取计算每类物体任意两个非零标志位对应的检测框坐标信息的重叠度,获得检测框重叠度结果;分类计算单元根据上述两个结果确定是否更新非零标志位并写入本地存储器;第二读写单元从本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值、对应的物体类别和检测框序号写入外部存储器。可见,从本地存储器只读取非零标志位对应的置信值和检测框坐标信息进行处理,减少对本地存储器的访问频率,利用置信值的稀疏性减少计算量,从而提高计算力,且采用多类计算并行处理的方式进一步提高计算力;多类计算共享重叠度计算单元降低功耗,计算器硬件面积较小,最终实现用户体验的提升。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种非极大值抑制计算器的结构示意图;
图2为本申请实施例提供的另一种非极大值抑制计算器的结构示意图;
图3为本申请实施例提供的又一种非极大值抑制计算器的结构示意图;
图4为本申请实施例提供的一种应用场景所涉及的***框架示意图;
图5为本申请实施例提供的一种非极大值抑制计算方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的NMS计算方式是计算N个检测框中任意两个检测框重叠度来确定两个检测框是否有较大重叠;若重叠度足够大,比较两个检测框下的C类物体中每一类物体置信值,保留大的置信值,将小的置信值修改为0,例如,检测框1中类1的置信值为0.1,检测框2中类1置信值为0.5,若检测框1和检测框2重叠够大,则检测框1中类1的置信值0.1将会被检测框2中类1置信值0.5抑制为0,置信值0.5被保留;最后对N个检测框中每一个检测框记录C类物体中最大置信值、对应的类别以及检测框序号。发明人经过研究发现,对于任意两个检测框都要计算它们的重叠度,对于重叠度足够大的任意两个检测框中每一类物体置信值都需要比较,计算法复杂度较大,计算量也非常大,导致计算耗费时间较多,计算力较为低下,用户体验较差
为了解决这一问题,在本申请实施例中,非极大值抑制计算器包括第一读写单元、分类计算单元、重叠度计算单元和第二读写单元;第一读写单元从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位写入本地存储器;若分类计算单元检测本地存储器存储数据量大于预设量时,从本地存储器读取每类物体非零标志位对应的置信值,依次比较任意两个非零标志位对应的置信值,获得比较结果;同时重叠度计算单元相应地读取计算每类物体任意两个非零标志位对应的检测框坐标信息的重叠度,获得检测框重叠度结果;分类计算单元根据上述两个结果确定是否更新非零标志位并写入本地存储器;第二读写单元从本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值、对应的物体类别和检测框序号写入外部存储器。可见,从本地存储器只读取非零标志位对应的置信值和检测框坐标信息进行处理,减少对本地存储器的访问频率,利用置信值的稀疏性减少计算量,从而提高计算力,且采用多类计算并行处理的方式进一步提高计算力;多类计算共享重叠度计算单元降低功耗,计算器硬件面积较小,最终实现用户体验的提升。
下面结合附图,通过实施例来详细说明本申请实施例中非极大值抑制计算器和计算方法的具体实现方式。
示例性装置
参见图1,示出了本申请实施例中一种非极大值抑制计算器的结构示意图。在本实施例中,所述计算器例如具体可以包括:
第一读写单元101、分类计算单元102、重叠度计算单元103和第二读写单元104;
所述第一读写单元101,用于从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器并记录写入数据量,其中,C≥1,N≥2,标志位包括非零标志位和零标志位;
所述分类计算单元102,用于若检测所述本地存储器存储数据量大于预设量时,从所述本地存储器读取所述每类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,获得比较结果;
所述重叠度计算单元103,用于从所述本地存储器读取所述每类物体非零标志位对应的检测框坐标信息,依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,获得检测框重叠度结果发送至所述分类计算单元102;
所述分类计算单元102,还用于根据所述比较结果和对应的所述检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器;
所述第二读写单元104,用于从所述本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入所述外部存储器。
可以理解的是,物体检测过程中,预设有检测框个数为N个、最大识别物体种类为C类,则得到N个检测框坐标信息和每个检测框中C类物体的置信值,将这些数据存储在相对于非极大值抑制计算器而言的外部存储器中。对于每个检测框而言,有其坐标信息和C类物体的置信值;对于每一类物体而言,有N个检测框坐标信息和置信值。例如,对一个检测框其检测框坐标信息包括左上角坐标信息、右上角坐标信息、左下角坐标信息和右下角坐标信息;其中,狗的概率是0.2,自行车的概率是0.9,白色汽车的概率是0,大树的概率是0.7,人的概率是0等,则物体狗的置信值为0.2,物体自行车的置信值为0.9,物体白色汽车的置信值为0,物体大树的置信值为0.7,物体人的置信值为0等。
需要说明的是,第一读写单元101需要向外部存储器发送读取上述数据的请求,才能获得上述数据写入本地存储器,具体采用物体分类读取获得数据的方式。另外,由于上述数据中包括大量置信值为0的置信值,应该与置信值不为0的置信值进行区分,便于后续数据处理,则该第一读写单元101还需要对每个置信值设置标志位,例如,将置信值为0的标志位设置为0,将将置信值不为0的标志位设置为1,以便基于标志位就能明确置信值是否为0。除此之外,为了明确读取写入本地存储器的数据量,在写入的同时记录写入数据量。因此,在本实施例的一些实施方式中,所述第一读写单元101具体用于:向所述外部存储器发送读取C类物体的物体检测相关信息的请求;获得所述C类物体中每类物体的N个置信值和对应的检测框坐标信息;若所述置信值为零,对应设置零标志;若所述置信值不为零,对应设置非零标志;将所述C类物体中每类物体的N个置信值、对应的检测框坐标信息和标志位写入本地存储器并记录写入数据量。
例如,第一读写单元101写入本地存储器的数据如下表所示:
表1
需要说明的是,由于第一读写单元101采用物体分类读取获得数据的方式,则本地存储器存储每类物体的N个置信值和对应的检测框坐标信息。考虑到一类接一类计算数据的计算速度较慢、耗费时间、效率低,可以采用并行计算多类数据的方式,即,在分类计算单元102中设置多个并行分类计算子单元同时进行多类物体的数据计算,以提高数据的计算速度和计算效率,其中,每个分类计算子单元的硬件结构和计算方式等均是相同的。因此,在本实施例的一些实施方式中,所述分类计算单元102包括并行的M个分类计算子单元,所述每个分类计算子单元一次NMS计算对应所述C类物体中一类物体;其中,所述M≤C。例如,C为8,可以在分类计算单元102设置并行的8个分类计算子单元,则进行1次分类计算完成8类物体的数据计算;当然,也可以在分类计算单元102设置并行的2个分类计算子单元,则需要进行4次分类计算才能完成8类物体的数据计算。
可以理解的是,由于每个分类计算子单元的硬件结构和计算方式等均是相同的,下面针对一个分类计算子单元进行硬件结构和计算方式的说明。
需要说明的是,基于第一读写单元101为每个置信值设置了标志位且记录了写入本地存储器的数据量,为了减少从本地存储器读取的数据量,减少后续计算量,省去不必要的计算,分类计算子单元在检测到本地存储器的数据量足够时,只需要获取一类物体非零标志位对应的数据进行后续计算。在实际应用中,应该根据读取请求先从本地存储器获得一类物体标志位,然后基于标志位只读取非零标志位对应的置信值进行两两比较,再基于重叠度计算单元103提供的对应的重叠度结果,明确是否更新非零标志位。因此,在本实施例的一些实施方式中,所述分类计算子单元包括第一读取模块、第二读取模块、比较模块和更新模块。其中,所述第一读取模块用于若检测所述本地存储器存储数据量大于预设量时,向所述本地存储器发送读取所述预设类物体N个标志位的请求;所述第二读取模块用于获得所述预设类物体N个标志位查找非零标志位,向所述本地存储器发送读取所述预设类物体非零标志位对应的置信值的请求;所述比较模块用于获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,获得比较结果;所述更新模块用于根据所述比较结果和对应的检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器。
需要说明的是,由于非极大值抑制计算器实际目的是抑制不是极大值的数据,即,抑制较小置信值,保留较大置信值,因此,上述比较模块比较任意两个非零标志位对应的置信值实际是寻找任意两个非零标志位对应的置信值中较小置信值,以便后续确定其是否被抑制。实际应用中,在本实施例的一些实施方式中,所述比较模块具体用于:获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,确定所述任意两个所述非零标志位对应的置信值中较小置信值。
例如,对于表1而言,若检测所述本地存储器存储数据量大于预设量时,若检测所述本地存储器存储数据量大于预设量时,第一读取模块的向本地存储器发送读取类1物体N个标志位的请求。第二读取模块获得所述类1物体N个标志位,即,1、1、……0、1,再向本地存储器发送读取类1物体非零标志位对应的置信值的请求。比较模块获得类1物体非零标志位对应的置信值0.1、0.5、……、0.8,依次比较任意两个所述非零标志位对应的置信值,如比较0.1与0.5、……、比较0.5与0.8,获得较小置信值0.1、……、0.5。更新模块用于根据上述比较结果和对应的检测框重叠度结果,确定是否更新非零标志位并写入本地存储器。
需要说明的是,由于分类计算单元102中设置多个并行分类计算子单元,且每个分类计算子单元选出多个非零标志位对应的数据进行后续计算,导致每一类的非零标志位对应的检测框信息中需要争夺计算任意两个非零标志位对应的检测框坐标信息的重叠度的计算资源。同时,多类计算也要争夺计算资源,由于每一类的非零标志位对应的检测框坐标信息比较少,因此,尽管同一时刻有多类的检测框坐标信息进行重叠度的计算,但是计算量很少,可以不需要多个重叠度计算单元103,而是共享一个重叠度计算单元103即可满足计算力,即,多类计算共享重叠度计算单元103,这样能够极大减小设计面积,降低功耗。争夺到计算资源的进行检测框的重叠度计算并将结果反馈至对应分类计算子单元的更新模块,以便实现更新模块的作用。因此,实际应用中,在本实施例的一些实施方式中,所述重叠度计算单元103包括仲裁子单元和重叠度计算子单元;所述仲裁子单元获得所述预设类物体非零标志位对应的检测框坐标信息,生成队列发送至所述重叠度计算子单元,并接收所述重叠度计算子单元反馈的所述检测框重叠度结果发送至对应的更新模块;所述重叠度计算子单元依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,获得所述检测框重叠度结果发送至所述仲裁子单元。
需要说明的是,计算两个检测框重叠度的目的是判断两个检测框的重叠度是否足够大,具体是将计算得到的重叠度与预先设置的重叠度阈值进行比较,将比较结果表征为重叠度是否足够大。因此,在本实施例的一些实施方式中,所述重叠度计算子单元具体用于:依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,若所述重叠度大于等于预设重叠度,获得检测框重叠度结果为重叠度大发送至所述仲裁子单元;若所述重叠度小于预设重叠度,获得检测框重叠度结果为重叠度小发送至所述仲裁子单元。
例如,对于表1而言,仲裁子单元获得类1物体非零标志位对应的检测框坐标信息,即,检测框1、检测框2、……、检测框N的坐标信息,生成队列发送至重叠度计算子单元,并接收重叠度计算子单元反馈的检测框重叠度结果发送至更新模块;重叠度计算子单元依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,如计算检测框1坐标信息与检测框2坐标信息的重叠度、……、检测框2坐标信息与检测框N坐标信息的重叠度,若检测框1坐标信息与检测框2坐标信息的重叠度大于等于预设重叠度,获得检测框重叠度结果为重叠度大发送至仲裁子单元;若检测框1坐标信息与检测框2坐标信息的重叠度小于预设重叠度,获得检测框重叠度结果为重叠度小发送至仲裁子单元。
需要说明的是,在确定任意两个非零标志位对应的置信值中较小置信值,且获得检测框重叠度结果后,基于非极大值抑制的原理,只有检测框重叠度结果为重叠度大时,保留较大置信值,抑制较小置信值,考虑到更新写入数据大小和更新写入速度,具体是将较小置信值对应的非零标志位更新为零标志位写入本地存储器即可。因此,在本实施例的一些实施方式中,所述更新模块具体用于:若检测框重叠度结果为重叠度大,将所述较小置信值对应的非零标志位更新为零标志位并写入所述本地存储器。
例如,对于表1而言,第一读取模块的向本地存储器发送读取类1物体N个标志位的请求。第二读取模块获得所述类1物体N个标志位,即,1、1、……0、1,再向本地存储器发送读取类1物体非零标志位对应的置信值的请求。比较模块获得类1物体非零标志位对应的置信值0.1、0.5、……、0.8,依次比较任意两个所述非零标志位对应的置信值,如比较0.1与0.5、……、比较0.5与0.8,获得较小置信值0.5、……、0.8。更新模块用于根据上述比较结果和对应的检测框重叠度结果,确定是否更新非零标志位并写入本地存储器。
综上例如,如图2所示的另一种非极大值抑制计算器的结构示意图,其中,在图1的基础上,所述分类计算单元102包括并行的M个分类计算子单元,每个分类计算子单元包括第一读取模块201、第二读取模块202、比较模块203和更新模块204,所述重叠度计算单元103包括仲裁子单元205和重叠度计算子单元206。所述第一读取模块201与所述第二读取模块202连接,所述第二读取模块202与所述比较模块203连接,所述比较模块203与所述更新模块204连接,所述更新模块204与所述仲裁子单元205连接,所述仲裁子单元205与重叠度计算子单元206连接。
需要说明的是,第二读写单元104需要向本地存储器发送读取更新后数据的请求,才能获得经过一部分非极大值抑制计算完成更新后的数据,由于物体检测最终目的是确定记录每个检测框中概率最大的物体,同样为了减少从本地存储器读取的数据量,以提高计算速率和计算效率,只需要获取每个检测框非零标志位对应的置信值进行后续计算。在实际应用中,应该根据读取请求先从本地存储器获得每个检测框标志位,然后基于标志位只读取非零标志位对应的置信值确定最大置信值,并明确对应的物体类别和检测框序号写入外部存储器。因此,在本实施例的一些实施方式中,所述第二读写单元104包括第一读取子单元、第二读取子单元、比较确定子单元和写入子单元;所述第一读取子单元向所述本地存储器发送读取所述每个检测框C个标志位的请求;所述第二读取子单元获得所述每个检测框C个标志位,向所述本地存储器发送读取所述每个检测框非零标志位对应的置信值的请求;所述比较确定子单元获得所述每个检测框非零标志位对应的置信值进行比较,确定所述每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号;写入子单元将所述最大置信值、对应的物体类别和检测框序号写入所述外部存储器。
例如,对于表1而言,第一读取子单元向本地存储器发送读取每个检测框C个标志位的请求。针对检测框1而言,第二读取子单元获得检测框1的C个标志位,如0、0、1……、1,再向本地存储器发送读取检测框1非零标志位对应的置信值的请求。比较确定子单元获得检测框1非零标志位对应的置信值0.9、……、0.8进行比较,确定检测框1非零标志位对应的置信值中的最大置信值为0.9,对应的物体类别为类C和检测框序号为1,写入子单元将最大置信值0.9、对应的物体类别类C和检测框序号1写入外部存储器。对于其他检测框,与检测框1的方式相似,在此不再赘述。
例如,如图3所示的又一种非极大值抑制计算器的结构示意图,其中,在图2的基础上,所述第二读写单元104包括第一读取子单元301、第二读取子单元302、比较确定子单元303和写入子单元304。所述第一读取子单元301与所述第二读取子单元302连接,所述第二读取子单元302与所述比较确定子单元303连接,所述比较确定子单元303与所述写入子单元304连接。
通过本实施例提供的各种实施方式,非极大值抑制计算器包括第一读写单元、分类计算单元、重叠度计算单元和第二读写单元;第一读写单元从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位写入本地存储器;若分类计算单元检测本地存储器存储数据量大于预设量时,从本地存储器读取每类物体非零标志位对应的置信值,依次比较任意两个非零标志位对应的置信值,获得比较结果;同时重叠度计算单元相应地读取计算每类物体任意两个非零标志位对应的检测框坐标信息的重叠度,获得检测框重叠度结果;分类计算单元根据上述两个结果确定是否更新非零标志位并写入本地存储器;第二读写单元从本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值、对应的物体类别和检测框序号写入外部存储器。可见,从本地存储器只读取非零标志位对应的置信值和检测框坐标信息进行处理,减少对本地存储器的访问频率,利用置信值的稀疏性减少计算量,从而提高计算力,且采用多类计算并行处理的方式进一步提高计算力;多类计算共享重叠度计算单元降低功耗,计算器硬件面积较小,最终实现用户体验的提升。
示例性方法
举例来说,本申请实施例的场景之一,可以是应用到如图4所示的场景中。该场景包括外部存储器401、非极大值抑制计算器402和本地存储器403。非极大值抑制计算器402从外部存储器401读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器403并记录写入数据量;若非极大值抑制计算器402检测本地存储器存储数据量大于预设量时,从本地存储器403读取每类物体非零标志位对应的置信值,依次比较任意两个非零标志位对应的置信值获得比较结果;非极大值抑制计算器402从本地存储器403读取每类物体非零标志位对应的检测框坐标信息,依次计算任意两个非零标志位对应的检测框坐标信息的重叠度获得检测框重叠度结果;非极大值抑制计算器402根据比较结果和对应的检测框重叠度结果,确定是否更新非零标志位并写入本地存储器403;非极大值抑制计算器402从本地存储器403读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入外部存储器401。
可以理解的是,在上述应用场景中,虽然将本申请实施方式的动作描述由非极大值抑制计算器402执行,但是,本申请在执行主体方面不受限制,只要执行了本申请实施方式所公开的动作即可。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
参见图5,示出了本申请实施例中一种非极大值抑制计算方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
步骤501:从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器并记录写入数据量,其中,C≥1,N≥2,标志位包括非零标志位和零标志位。
步骤502:若检测所述本地存储器存储数据量大于预设量时,从所述本地存储器读取所述每类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值获得比较结果。
步骤503:从所述本地存储器读取所述每类物体非零标志位对应的检测框坐标信息,依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度获得检测框重叠度结果。
步骤504:根据所述比较结果和对应的所述检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器。
步骤505:从所述本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入所述外部存储器。
可选的,所述步骤502包括以下步骤:
步骤5021:若检测所述本地存储器存储数据量大于预设量时,向所述本地存储器发送读取所述预设类物体N个标志位的请求;
步骤5022:获得所述预设类物体N个标志位查找非零标志位,向所述本地存储器发送读取所述预设类物体非零标志位对应的置信值的请求;
步骤5023:获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值获得比较结果。
可选的,所述步骤5023具体为:
获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,确定所述任意两个所述非零标志位对应的置信值中较小置信值。
可选的,所述步骤503包括以下步骤:
步骤5031:获得所述预设类物体非零标志位对应的检测框坐标信息生成队列;
步骤5032:依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,获得所述检测框重叠度结果。
可选的,所述步骤5032具体为:依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,若所述重叠度大于等于预设重叠度,获得检测框重叠度结果为重叠度大;若所述重叠度小于预设重叠度,获得检测框重叠度结果为重叠度小。
可选的,步骤504具体为:若检测框重叠度结果为重叠度大,将所述较小置信值对应的非零标志位更新为零标志位并写入所述本地存储器。
可选的,所述步骤505包括以下步骤:
步骤5051:向所述本地存储器发送读取所述每个检测框C个标志位的请求;
步骤5052:获得所述每个检测框C个标志位,向所述本地存储器发送读取所述每个检测框非零标志位对应的置信值的请求;
步骤5053:获得所述每个检测框非零标志位对应的置信值进行比较,确定所述每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号;
步骤5054:将所述最大置信值、对应的物体类别和检测框序号写入所述外部存储器。
可选的,所述步骤501具体为:
向所述外部存储器发送读取C类物体的物体检测相关信息的请求;获得所述C类物体中每类物体的N个置信值和对应的检测框坐标信息;若所述置信值为零,对应设置零标志;若所述置信值不为零,对应设置非零标志;将所述C类物体中每类物体的N个置信值、对应的检测框坐标信息和标志位写入本地存储器并记录写入数据量。
通过本实施例提供的各种实施方式,从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器并记录写入数据量;若检测本地存储器存储数据量大于预设量时,从本地存储器读取每类物体非零标志位对应的置信值,依次比较任意两个非零标志位对应的置信值获得比较结果;相应地获得检测框坐标信息,依次计算任意两个非零标志位对应的检测框坐标信息的重叠度获得检测框重叠度结果;根据上述两个结果确定是否更新非零标志位并写入本地存储器;从本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入外部存储器。可见,从本地存储器只读取非零标志位对应的置信值和检测框坐标信息进行处理,减少对本地存储器的访问频率,利用置信值的稀疏性减少计算量,从而提高计算力;且采用多类计算并行处理的方式进一步提高计算力,最终实现用户体验的提升。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。
Claims (10)
1.一种非极大值抑制计算器,其特征在于,包括:第一读写单元、分类计算单元、重叠度计算单元和第二读写单元;
所述第一读写单元,用于从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器并记录写入数据量,其中,C≥1,N≥2,标志位包括非零标志位和零标志位;
所述分类计算单元,用于若检测所述本地存储器存储数据量大于预设量时,从所述本地存储器读取所述每类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,获得比较结果;
所述重叠度计算单元,用于从所述本地存储器读取所述每类物体非零标志位对应的检测框坐标信息,依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,获得检测框重叠度结果发送至所述分类计算单元;
所述分类计算单元,还用于根据所述比较结果和对应的所述检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器;
所述第二读写单元,用于从所述本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入所述外部存储器。
2.根据权利要求1所述的计算器,其特征在于,所述分类计算单元包括并行的M个分类计算子单元,所述每个分类计算子单元一次计算对应所述C类物体中一类物体;其中,所述M≤C。
3.根据权利要求2所述的计算器,其特征在于,所述分类计算子单元包括第一读取模块、第二读取模块、比较模块和更新模块;
所述第一读取模块,用于若检测所述本地存储器存储数据量大于预设量时,向所述本地存储器发送读取所述预设类物体N个标志位的请求;
所述第二读取模块,用于获得所述预设类物体N个标志位并查找非零标志位,向所述本地存储器发送读取所述预设类物体非零标志位对应的置信值的请求;
所述比较模块,用于获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,获得比较结果;
所述更新模块,用于根据所述比较结果和对应的检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器。
4.根据权利要求3所述的计算器,其特征在于,所述比较模块具体用于:获得所述预设类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值,确定所述任意两个所述非零标志位对应的置信值中较小置信值。
5.根据权利要求4所述的计算器,其特征在于,所述重叠度计算单元包括仲裁子单元和重叠度计算子单元;
所述仲裁子单元,用于获得所述预设类物体非零标志位对应的检测框坐标信息,生成队列发送至所述重叠度计算子单元,并接收所述重叠度计算子单元反馈的所述检测框重叠度结果发送至对应的更新模块;
所述重叠度计算子单元,用于依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,获得所述检测框重叠度结果发送至所述仲裁子单元。
6.根据权利要求5所述的计算器,其特征在于,所述重叠度计算子单元具体用于:依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度,若所述重叠度大于等于预设重叠度,获得检测框重叠度结果为重叠度大发送至所述仲裁子单元;若所述重叠度小于预设重叠度,获得检测框重叠度结果为重叠度小发送至所述仲裁子单元。
7.根据权利要求6所述的计算器,其特征在于,所述更新模块具体用于:若检测框重叠度结果为重叠度大,将所述较小置信值对应的非零标志位更新为零标志位并写入所述本地存储器。
8.根据权利要求1所述的计算器,其特征在于,所述第二读写单元包括第一读取子单元、第二读取子单元、比较确定子单元和写入子单元;
所述第一读取子单元,用于向所述本地存储器发送读取所述每个检测框C个标志位的请求;
所述第二读取子单元,用于获得所述每个检测框C个标志位,向所述本地存储器发送读取所述每个检测框非零标志位对应的置信值的请求;
所述比较确定子单元,用于获得所述每个检测框非零标志位对应的置信值进行比较,确定所述每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号;
写入子单元,用于将所述最大置信值、对应的物体类别和检测框序号写入所述外部存储器。
9.根据权利要求1所述的计算器,其特征在于,所述第一读写单元具体用于:向所述外部存储器发送读取C类物体的物体检测相关信息的请求;获得所述C类物体中每类物体的N个置信值和对应的检测框坐标信息;若所述置信值为零,对应设置零标志;若所述置信值不为零,对应设置非零标志;将所述C类物体中每类物体的N个置信值、对应的检测框坐标信息和标志位写入本地存储器并记录写入数据量。
10.一种非极大值抑制计算方法,其特征在于,包括:
从外部存储器读取C类物体中每类物体的N个置信值和对应的检测框坐标信息,为每个置信值设置标志位,写入本地存储器并记录写入数据量,其中,C≥1,N≥2,标志位包括非零标志位和零标志位;
若检测所述本地存储器存储数据量大于预设量时,从所述本地存储器读取所述每类物体非零标志位对应的置信值,依次比较任意两个所述非零标志位对应的置信值获得比较结果;
从所述本地存储器读取所述每类物体非零标志位对应的检测框坐标信息,依次计算任意两个所述非零标志位对应的检测框坐标信息的重叠度获得检测框重叠度结果;
根据所述比较结果和对应的所述检测框重叠度结果,确定是否更新所述非零标志位并写入所述本地存储器;
从所述本地存储器读取确定N个检测框中每个检测框非零标志位对应的置信值中的最大置信值,以及对应的物体类别和检测框序号,写入所述外部存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690957.1A CN110659538B (zh) | 2018-06-28 | 2018-06-28 | 一种非极大值抑制计算器和计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690957.1A CN110659538B (zh) | 2018-06-28 | 2018-06-28 | 一种非极大值抑制计算器和计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659538A CN110659538A (zh) | 2020-01-07 |
CN110659538B true CN110659538B (zh) | 2022-09-23 |
Family
ID=69026474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810690957.1A Active CN110659538B (zh) | 2018-06-28 | 2018-06-28 | 一种非极大值抑制计算器和计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659538B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113240567A (zh) * | 2021-05-07 | 2021-08-10 | 北京航空航天大学 | 一种并行非极大值抑制运算装置 |
CN116596990B (zh) * | 2023-07-13 | 2023-09-29 | 杭州菲数科技有限公司 | 目标检测方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142892A (zh) * | 2013-05-09 | 2014-11-12 | 华为技术有限公司 | 一种数据读写方法、装置及*** |
US9165369B1 (en) * | 2013-03-14 | 2015-10-20 | Hrl Laboratories, Llc | Multi-object detection and recognition using exclusive non-maximum suppression (eNMS) and classification in cluttered scenes |
CN106557778A (zh) * | 2016-06-17 | 2017-04-05 | 北京市商汤科技开发有限公司 | 通用物体检测方法和装置、数据处理装置和终端设备 |
-
2018
- 2018-06-28 CN CN201810690957.1A patent/CN110659538B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9165369B1 (en) * | 2013-03-14 | 2015-10-20 | Hrl Laboratories, Llc | Multi-object detection and recognition using exclusive non-maximum suppression (eNMS) and classification in cluttered scenes |
CN104142892A (zh) * | 2013-05-09 | 2014-11-12 | 华为技术有限公司 | 一种数据读写方法、装置及*** |
CN106557778A (zh) * | 2016-06-17 | 2017-04-05 | 北京市商汤科技开发有限公司 | 通用物体检测方法和装置、数据处理装置和终端设备 |
Non-Patent Citations (1)
Title |
---|
一种改进约束条件的简化非极大值抑制;张强等;《中国科学技术大学学报》;20160115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110659538A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270166B2 (en) | Image identification system and image identification method | |
US20200210561A1 (en) | Biometric authentication, identification and detection method and device for mobile terminal and equipment | |
CN109035246B (zh) | 一种人脸的图像选择方法及装置 | |
CN111931864B (zh) | 基于顶点距离与交并比多重优化目标检测器的方法与*** | |
US9025889B2 (en) | Method, apparatus and computer program product for providing pattern detection with unknown noise levels | |
US20170323149A1 (en) | Rotation invariant object detection | |
CN110659538B (zh) | 一种非极大值抑制计算器和计算方法 | |
CN113850238B (zh) | 文档检测方法、装置、电子设备及存储介质 | |
JP2022540101A (ja) | ポジショニング方法及び装置、電子機器、コンピュータ読み取り可能な記憶媒体 | |
CN110619656A (zh) | 基于双目摄像头的人脸检测跟踪方法、装置及电子设备 | |
WO2024016949A1 (zh) | 标签生成、图像分类模型的方法、图像分类方法及装置 | |
WO2018166499A1 (zh) | 文本分类方法、设备和存储介质 | |
CN108764206B (zh) | 目标图像识别方法和***、计算机设备 | |
CN113721240B (zh) | 一种目标关联方法、装置、电子设备及存储介质 | |
CN111597368B (zh) | 一种数据处理方法及装置 | |
CN111783869B (zh) | 训练数据筛选方法、装置、电子设备及存储介质 | |
CN104933055B (zh) | 网页识别方法及网页识别装置 | |
CN113657317A (zh) | 一种货物位置识别方法、***、电子设备及存储介质 | |
CN112989869B (zh) | 人脸质量检测模型的优化方法、装置、设备及存储介质 | |
EP3605354A1 (en) | Artificial intelligence-enabled search for a storage system | |
CN112070144B (zh) | 图像聚类方法、装置、电子设备以及存储介质 | |
CN113327601B (zh) | 有害语音的识别方法、装置、计算机设备和存储介质 | |
WO2024174999A1 (zh) | 一种模型训练方法、装置及设备 | |
CN112232296B (zh) | 一种超参数探索方法及装置 | |
US20230096697A1 (en) | Object detection model training apparatus, method, and non-transitory computer readable storage medium thereof |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |