CN118134748A - 一种多线中心点云数据硬件分层排序方法、系统及介质 - Google Patents

一种多线中心点云数据硬件分层排序方法、系统及介质 Download PDF

Info

Publication number
CN118134748A
CN118134748A CN202410533257.7A CN202410533257A CN118134748A CN 118134748 A CN118134748 A CN 118134748A CN 202410533257 A CN202410533257 A CN 202410533257A CN 118134748 A CN118134748 A CN 118134748A
Authority
CN
China
Prior art keywords
line center
data
coordinate
point
center point
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.)
Granted
Application number
CN202410533257.7A
Other languages
English (en)
Other versions
CN118134748B (zh
Inventor
曹桂平
张光宇
董宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Eko Photoelectric Technology Co ltd
Original Assignee
Hefei Eko Photoelectric Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei Eko Photoelectric Technology Co ltd filed Critical Hefei Eko Photoelectric Technology Co ltd
Priority to CN202410533257.7A priority Critical patent/CN118134748B/zh
Publication of CN118134748A publication Critical patent/CN118134748A/zh
Application granted granted Critical
Publication of CN118134748B publication Critical patent/CN118134748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种多线中心点云数据硬件分层排序方法、系统及介质,分层排序方法包括:分组存储未排序的多线中心点云数据,以分离相同第一坐标对应的线中心点,得到多组未排序存储数据;选择每组未排序存储数据中的起始线中心点作为参考点,分析参考点下一个第一坐标对应的所有线中心点第二坐标值与参考点第二坐标值之间的差异值结果,计算得到最小第二坐标差异值;分析最小第二坐标差异值,判定参考点下一个第一坐标对应的输出结果,依次循环以得到多组排序存储数据;遍历输出多组排序存储数据。本发明基于硬件实现方式,通过在相机端完成多条线中心点数据的分层排序,为后续在相机端硬件实现多线中心滤波、插值、重建等算法提供必要基础。

Description

一种多线中心点云数据硬件分层排序方法、系统及介质
技术领域
本发明属于机器视觉领域,尤其涉及一种多线中心点云数据硬件分层排序方法、系统及介质。
背景技术
在机器视觉领域,继2D相机之后,3D相机在锂电,半导体,PCB等领域应用越来越广泛。目前大多数3D相机都是基于单线中心工作模式,即每次只计算和存储一条线中心点云数据,对于同坐标位置的数据通常采用覆盖的方式。随着应用场景的多样化,一方面对于扫描分辨率要求的不断提高,另一方面对于扫描速率要求的不断提高,多线中心大分辨率3D相机也逐渐在市场推广。所谓多线中心,即产生多个扫描线图像,相机提取出多条线中心点云数据,相机包括线激光3D相机、线光谱共聚焦相机等,对于大分辨率需求,目前大多采用插值算法来实现以规避对前端传感器的高要求。
无论是多线中心模式还是插值算法要求,都需要将提取得到的乱序线中心点云数据先行进行分层排序,即将物理上属于同一个扫描线的点云数据按照横向顺序排列在一起,以便于后端重建算法处理。对于单线中心相机而言,如前文所述,因为只需要存储单条线中心点数据,即每个位置有且仅有单个线中心点,则此时只需要按照中心点的横坐标进行存储即可,自动完成排序操作。但对于多线中心的情况,相同横坐标可以对应多个线中心点,有时还受制于前端传感器的数据输出模式,每条扫描线中心的提取顺序是不确定的,并非在图像中按照从上到下的顺序进行计算提取。因此对于多条扫描线中心点数据的重新排序是必须的,这是后续滤波算法和插值算法的必要前提。
因此本发明为了解决上述问题,提供了一种多线中心点云数据硬件分层排序方法、系统及介质。
发明内容
本发明的目的在于克服现有技术存在的以上问题,提供一种多线中心点云数据硬件分层排序方法、系统及介质。
为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种多线中心点云数据硬件分层排序方法,包括:
分组存储未排序的多线中心点云数据,以分离相同第一坐标对应的线中心点,得到多组未排序存储数据;
选择每组未排序存储数据中的起始线中心点作为参考点,分析参考点下一个第一坐标对应的所有线中心点第二坐标值与参考点第二坐标值之间的差异值结果,计算得到最小第二坐标差异值;
分析最小第二坐标差异值与差异阈值之间的大小关系,判定参考点下一个第一坐标对应的输出结果,依次循环以得到多组排序存储数据;
遍历输出多组排序存储数据。
进一步地,分组存储未排序的多线中心点云数据包括:
设置与扫描线相对应的若干存储块,用于从FIFO中读取未排序的所有线中心点数据,并以第一坐标作为存储地址进行存储;
读取相同第一坐标对应的所有线中心点数据,并分别存储在不同存储块中。
进一步地,计算得到最小第二坐标差异值包括:
采集参考点下一个第一坐标对应的所有线中心点第二坐标值与参考点第二坐标值之间的差异值结果;
采用流水线设计,分级对比差异值结果,获得最小第二坐标差异值。
进一步地,判定参考点下一个第一坐标对应的输出结果包括:
当最小第二坐标差异值大于差异阈值时,则参考点不变,且参考点下一个第一坐标对应的输出结果为零;
当最小第二坐标差异值小于等于差异阈值时:
若参考点下一个第一坐标对应的所有线中心点第二坐标值均为零,则跳过此次参考点下一个第一坐标对应的输出操作;
否则,参考点下一个第一坐标对应数据更新为最小第二坐标差异值对应线中心点数据,并将最小第二坐标差异值对应线中心点作为新的参考点。
进一步地,选择每组未排序存储数据中的起始线中心点作为参考点包括:判定多组未排序存储数据中第一个非零线中心点第一坐标是否相同,完成差异组对应的第一个非零线中心点的重新存储。
进一步地,还包括斜率连续排序方法,用于扫描线存在交叉的场景,包括:计算交叉点对应线中心点斜率值,选择后续线中心点中斜率差异值最小且满足差异阈值限定的对应数据作为输出结果。
进一步地,还包括跳变排序方法,用于扫描线存在跳变的场景,包括:确认跳变点第一坐标,将跳变点后续非零线中心点作为新一组排序存储数据的起始线中心点。
本发明还提供一种多线中心点云数据硬件分层排序系统,包括:
线中心读取分配模块,用于对未排序的多线中心点云数据进行读取并分配至数据存储模块,以分离相同第一坐标对应的线中心点;
数据存储模块,用于对来自线中心读取分配模块的分配数据进行分组存储,得到多组未排序存储数据;
线中心选点排序模块,用于对数据存储模块中的多组未排序存储数据按照最相邻原则进行重新排序,以得到多组排序存储数据;
线中心发送模块,用于对线中心选点排序模块得到的多组排序存储数据进行遍历输出。
进一步地,数据存储模块由两个数据存储器组成,用于进行乒乓操作。
本发明还提供一种计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的分层排序方法。
本发明的有益效果是:
(1)本发明基于硬件实现方式,通过在相机端完成多条线中心点数据的分层排序,为后续在相机端硬件实现多线中心滤波、插值、重建等算法提供必要基础,同时也为实现高分辨率高扫描速率3D相机提供了必要基础。相对于软件端实现分层排序,本发明只需要存储单帧的若干层线中心点数据,通过实时分层排序和输出,不仅消耗存储资源更少,而且处理效率更高;
(2)本发明具有可扩展性和灵活性,从单条扫描线到多条扫描线,可以根据FPGA资源的情况进行适当调整后即可进行支持,可根据所选FPGA资源的情况自动适配线中心数量,即FPGA资源越多,可支持的线中心数量越多;
(3)本发明通过多级流水线进行选点,能够快速精准地找到参考点最相邻线中心点,从而面对扫描线不交叉的场景,能够稳定地将相同扫描线的中心点云数据收集到同一个数据存储模块中;
(4)本发明通过差异阈值的动态设置,不仅能够结合线中心提取算法进行合理选择临近点,使得分层排序更加精准,同时通过与差异阈值对比判定,能够快速分类处理各种数据情况以稳定输出;
(5)本发明不仅能够处理扫描线不交叉的常见场景,也能够在面对扫描线交叉或被测物跳变时完成较好的处理效果,适用场景十分广泛。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明中分层排序方法流程图;
图2是本发明中线中心点扫描和分选基本时序示意图;
图3是本发明中最小第二坐标差异值判定示意图;
图4是本发明中选点和回写判定逻辑示意图;
图5是本发明中分层排序系统结构框图;
图6是本发明中分层排序系统实施例示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在完成多条扫描线中心提取后,线中心点数据都是无序排列的,而后端通常还需要对线中心点数据进行进一步滤波或者其他插值类算法,故需要先将线中心按照“同层”要求进行排序。
因此,如图1所示,本实施例首先提供一种多线中心点云数据硬件分层排序方法,具体包括以下步骤:
步骤一:分组存储未排序的多线中心点云数据,以分离相同第一坐标对应的线中心点,得到多组未排序存储数据。
通常3D相机采集原始数据后通过线中心提取算法处理后,会形成未排序的多线中心点云数据存储在FIFO中,未排序的多线中心点云数据中各线中心点数据一般包括X坐标(列编号),纵向Y坐标(行编号)以及灰度值等信息,本发明中可以将第一坐标理解为X坐标,第二坐标理解为Y坐标,实际应用中可以根据具体的坐标系表述来进行对应。
通过对相同第一坐标对应的线中心点的分离并分组存储,可以初步构建与扫描线数量相对应的多个存储路径和数据源,以实现后续处理,例如设支持的最大扫描线数量为N,可以开辟N个RAM用于存储线中心点数据,每个RAM对应单条扫描线,通过分组存储可以初步将不同X坐标对应的线中心点数据存储在一个RAM中,从而为后续处理提供数据支撑。
步骤二:选择每组未排序存储数据中的起始线中心点作为参考点,分析参考点下一个第一坐标对应的所有线中心点第二坐标值与参考点第二坐标值之间的差异值结果,计算得到最小第二坐标差异值。
对于每组未排序存储数据的处理方式均相同,参考点下一个第一坐标对应的所有线中心点第二坐标值,即参考点之后对应的所有RAM中对应X坐标上的线中心点Y坐标值,通过分别与参考点Y坐标值求差,便可以得到最小Y差异值,而最小Y差异值对应的线中心点即为参考点之后的最相邻线中心点。
步骤三:分析最小第二坐标差异值与差异阈值之间的大小关系,判定参考点下一个第一坐标对应的输出结果,依次循环以得到多组排序存储数据。
通过最小第二坐标差异值的获取便可以找到参考点之后的最相邻线中心点,但是最相邻线中心点是否满足隶属同一条扫描线的判断标准,还需要引入差异阈值来进行判断,从而将满足差异阈值限定要求的最小第二坐标差异值作为参考点下一个第一坐标对应的输出结果,而该输出结果又重新成为新一轮的参考点,按照步骤二和步骤三依次循环,便可以得到最终的多组排序存储数据。
步骤四:遍历输出多组排序存储数据。
多组排序存储数据排序完成后,给出ready信号,此时每个RAM则对应一条排序后的扫描线中心点数据,以RAM为单位进行遍历读取,输出每条完整扫描线中心点数据到后续算法模块如滤波、插值、3D重建模块等。
综上可知,本发明首先通过步骤一完成了所有乱序点云数据的初步分组存储,为后续选点排序提供数据基础,通过步骤二和步骤三的循环,可以并行读取N个RAM并同时完成每个RAM中线中心点的选取,按照最相邻原则重新完成了各RAM中的选点和排序,从而可以实现将属于相同扫描线的线中心点云数据收集到同一个RAM。
本发明基于当前主流FPGA,通过在相机端完成多条线中心点数据的分层排序,为后续在相机端硬件实现多线中心滤波、插值、重建等算法提供必要基础,同时也为实现高分辨率高扫描速率3D相机提供了必要基础。当前多线中心点云数据排序大多是在PC端使用软件完成,主要是考虑软件端实现分层排序算法较为简单,由此滤波算法和插值算法,包括3D重建算法全部被挤压到软件端实现,频繁的内存访问以及乘除法运算极大地降低了软件处理效率,或导致PC端成本上升或导致最终实现的3D相机效率低下。相对于软件端实现分层排序,本发明只需要存储单帧的若干层线中心点数据,通过实时分层排序和输出,不仅消耗存储资源更少,而且处理效率更高。
同时,本发明具有可扩展性和灵活性,从单条扫描线到多条扫描线,可以根据FPGA资源的情况进行适当调整后即可进行支持,可根据所选FPGA资源的情况自动适配线中心数量,即FPGA资源越多,可支持的线中心数量越多。
为了更好地得到多组未排序存储数据,分组存储未排序的多线中心点云数据具体包括以下步骤:
设置与扫描线相对应的若干存储块,即N个RAM,用于从FIFO中读取未排序的所有线中心点数据,每次从FIFO中读取一个未排序的点云数据,并以第一坐标作为存储地址进行存储;
读取相同第一坐标对应的所有线中心点数据,并分别存储在不同存储块中。
具体来说,N个RAM对于相同X坐标可最多存储N个中心点,即对应N条扫描线。若N个RAM相同地址处的存储单元已经全部使用,则丢弃当前点;否则按顺序使用当前未使用的RAM进行存储,即第一个线中心点存储在第一个RAM中,第二个相同X坐标的线中心点存储在第二个RAM中,以此类推,直到所有RAM消耗完。所有线中心点数据以X坐标按照先来先得策略完成存储。最后,每个RAM对应一组未排序存储数据,存在N个存储了有效线中心点数据的RAM,每个RAM中存储的线中心点可能来源于多条不同的扫描线。
为了计算得到最小第二坐标差异值,作为本发明的优选实施方式,具体包括以下步骤:
采集参考点下一个第一坐标对应的所有线中心点第二坐标值与参考点第二坐标值之间的差异值结果;
采用流水线设计,分级对比差异值结果,获得最小第二坐标差异值。
下面结合附图对最小第二坐标差异值的计算进行具体说明:
如图2所示为线中心点扫描和分选基本时序示意图,此处以N=8为例,每3个时钟周期并行处理N=8个点,对于第一个点的分选直接将当前读取位置处的非零线中心点作为起始点,即图中selected_point直接锁存来自RAM的中心点信息,此后以当前选取的点作为判断依据,将之后读取的每8个中心点和当前选取点进行比较,按照临近原则,则将Y差异最小的点作为命中点。
如图3所示为最小第二坐标差异值判定示意图,采用了流水线设计进行临近选点,在N=8的情况下,使用了3级流水线来完成最小Y差异值判定,图中SPi表示每个RAM的当前参考点Y坐标值(i=0,1,2,…,7),而P0-P7为来自RAM0-7的下一个待选点Y坐标值,|SPi-P0|至|SPi-P7|则分别表示每个RAM的当前参考点Y坐标值与下一个待选点Y坐标值的差异值,MIN-07则表示最小Y差异值。
从非0参考点开始,启动如图3所示选点流程,将最相邻点作为选取点写回当前RAM,同时将该选取的点作为当前参考点,与下一批次的待选点重复图3所示的选点过程,循环往复。
对于每个RAM而言,其选点过程都是相同的,以第一个RAM为例,其当前参考点为SP0,此时从8个RAM中读取的下一地址处的8个线中心点P0-P7被用来和SP0比较,以距离最近者作为点选择原则得到图3中的MIN-07,此时该点如图2中所示一方面被写入RAM-0中,另一方面成为RAM-0的当前点作为下一个周期的比较对象。其他7个RAM的选点过程与上述完全相同。
实际上,每个RAM的选点都是完全独立和并行的,不受其他RAM选点的影响,也便于扩展到更多RAM。当RAM数量增加或减少时,对于其中某个RAM而言,其选点过程中比较的对象(Pi,i=0,1,2,…,N)会发生变化,此时如图3中所示为了保证时序收敛,则延迟的流水线级数会发生变化。通常而言,流水线级数S随着RAM数量N的增加而增加,相互关系一般设计为S=[log2(N)],此处中括号“[]”表示向上(更大数)取整。鉴于线中点数量相比于原始像素点数据量而言大大减少,这种流水线级数的增加是可控的,即这种选点的处理速率是足够的。按照图2中每3个周期处理一个地址的线中心点的时序设计而言,此时N=8,S=3,则只要原始图像行数超过24行即可,而一般线中心提取算法是基于5行以上数据提取1行,则N=8时,原始图像行数一般在40行以上,即上述线中心选点算法速率是完全足够的。
为了合理地判定参考点下一个第一坐标对应的输出结果,具体包括以下步骤:
当最小第二坐标差异值大于差异阈值时,则参考点不变,且参考点下一个第一坐标对应的输出结果为零;
当最小第二坐标差异值小于等于差异阈值时:
若参考点下一个第一坐标对应的所有线中心点第二坐标值均为零,则跳过此次参考点下一个第一坐标对应的输出操作;
否则,参考点下一个第一坐标对应数据更新为最小第二坐标差异值对应线中心点数据,并将最小第二坐标差异值对应线中心点作为新的参考点。
下面结合附图对判定逻辑进行具体说明:
如图4所示为选点和回写判定逻辑示意图,Px表示根据最邻近原则选定的点,MIN-07表示Px与参考点SP的差异,即最小Y差异值,Dy表示差异阈值。
若MIN-07>Dy,则表示超过差异阈值,判定为非相邻线中心点,此时保持当前参考点SP不变,当前RAM回写0;
若MIN-07<=Dy且所有下一批次读取的点Pi=0,则保持当前参考点SP不变且不回写RAM,即相当于所有RAM跳过本次选点和写回过程,但读写地址均正常递增;否则表示Px与当前参考点SP是属于同一扫描线上的线中心点,则当前点更新为Px且回写Px到RAM中。
其中,差异阈值Dy的参数设置可以进行动态配置,用于保持灵活性,同时也可以默认设置为线中心提取算法跨度的2倍,例如对于基于5点的线中心提取算法,则Dy可默认设置为10。
作为步骤二的优选实施方式,选择每组未排序存储数据中的起始线中心点作为参考点包括:判定多组未排序存储数据中第一个非零线中心点第一坐标是否相同,完成差异组对应的第一个非零线中心点的重新存储。
具体如下:
若每组未排序存储数据中第一个非零线中心点上一个第一坐标对应的所有线中心点第二坐标值均为零,则将每组未排序存储数据中第一个非零线中心点作为起始线中心点;
否则,对部分第一个非零线中心点进行重新存储,包括:
确认需要重新存储的所有第一个非零线中心点,其上一个第一坐标存在至少一个非零线中心点;
采集所述第一个非零线中心点第一坐标对应的所有输出结果,将其中未作为输出结果的所有线中心点数据分别替换需要重新存储的所有第一个非零线中心点,以更新作为新的起始线中心点。
以地址0作为起始点进行巡点,每个RAM的初始参考点的选择均是从当前RAM读取的非0中心点开始,若为0,则直接跳过本次选点,也无需重新写回,即当前RAM不做任何操作。
每组未排序存储数据中第一个非零线中心点上一个第一坐标对应的所有线中心点第二坐标值均为零,即表示所有RAM中的起始点均为同一X坐标,此时则直接将每个RAM中的第一个非零线中心点作为起始线中心点即可。
但是,对于不满足上述情况时,以8个RAM对应8条扫描线为例,若RAM 1-6中的第一个非零线中心点均对应地址1,而RAM 7-8中的第一个非零线中心点均对应地址2,而此时若RAM 7-8中的第一个非零线中心点被作为选定点回写到RAM 1-6其中两个地址2中,则意味着RAM 7-8中的第一个非零线中心点需要重新存储为新的线中心点数据。
因此针对该情况,首先确认需要重新存储的所有第一个非零线中心点,其上一个第一坐标存在至少一个非零线中心点,即确认RAM 7-8中的第一个非零线中心点需要重新存储的情况。
然后,以RAM 1-6中的第一个非零线中心点为参考点,会选定地址2中对应的6个线中心数据回写到对应的参考点之后,此时将地址2对应的剩余2个未被选定的线中心点数据重新回写到RAM 7-8中的第一个非零线中心点位置,并分别作为RAM 7-8中新的起始线中心点。
对于扫描线不交叉的场景,上述排序方法可以较好地完成扫描线中心点的分层和排序。但是对于扫描线存在交叉的场景,则在交叉点可能会出现问题,此时提供一种斜率连续排序方法,可以在最邻近原则之上叠加斜率连续原则,即认为扫描线是连续的,利用其可微分特性增加判定准确度,可以包括以下步骤:计算交叉点对应线中心点斜率值,选择后续线中心点中斜率差异值最小且满足差异阈值限定的对应数据作为输出结果,具体如下:
交叉点之前的选点过程依然保持不变,当出现交叉点时,由于各RAM的选点是完全独立和并行的,交叉点对应的线中心点数据将会被两个以上的RAM选中并作为新的当前参考点以继续进行交叉点之后的选点,即当多组排序存储数据中任一个第一坐标对应两个以上的相同线中心点数据时:
选择该相同线中心点作为斜率参考点,并采集斜率参考点斜率值。此时该相同线中心点即为交叉点,该点即作为斜率参考点,也作为Y坐标值参考点,扫描线不交叉时的分层排序方法通过Y坐标值参考点得到最小Y差异值,而斜率参考点则是通过斜率参考点得到最小斜率差异值。
分析斜率参考点下一个第一坐标对应的所有线中心点第二坐标值与斜率参考点第二坐标值之间的差异值结果,得到第二坐标差异值小于等于差异阈值的所有线中心点数据,此时得到的满足差异阈值范围的这些线中心点即为靠近交叉点后的若干线中心点。
获取第二坐标差异值小于等于差异阈值的所有线中心点斜率值,此时可以参照图3所示的流水线设计思路,也就是将Y坐标值的差异对比换成斜率值的差异对比,通过多级流水线可以最终得到最小斜率差异值。
更新斜率参考点下一个第一坐标对应数据为最小斜率差异值对应线中心点数据,此后便可以继续按照扫描线不交叉的场景按照上述排序方法继续后续的选点。
除此之外,还包括跳变排序方法,用于扫描线存在跳变的场景,包括:确认跳变点第一坐标,将跳变点后续非零线中心点作为新一组排序存储数据的起始线中心点。对于扫描线由于被测物体跳变产生的对应跳变,则判定为两条扫描线进行处理,除了多占据一个RAM外不会造成额外影响。
例如当某条扫描线出现跳变时,若跳变点非零且MIN-07>Dy,则表示超过差异阈值,判定为非相邻线中心点,此时保持当前参考点SP不变,当前RAM回写0,对于MIN-07对应的线中心点数据即跳变点数据则开辟一个新的RAM进行存储。
若跳变点为零,作为第一实施例,则依然可以将跳变点后续非零线中心点作为新的RAM的起始线中心点。同样以上述8个RAM对应8条扫描线为例,假设RAM 8中地址99对应线中心点数据为零,则以RAM 1-7中地址99对应的线中心点为参考点,会选定地址100中对应的7个线中心数据回写到对应的参考点之后,此时将RAM 8中地址100对应的剩余1个未被选定的线中心点数据回写到RAM 9中作为RAM 9的起始线中心点。
不仅如此,若跳变点为零,还可以用第二实施例作为第一实施例的替换实施例,还可以引入斜率连续原则进行跳变点之后的选点。同样以上述8个RAM对应8条扫描线为例,假设RAM 8中地址99对应线中心点数据为零,则以RAM 1-7中地址99对应的线中心点为参考点,会选定地址100中对应的7个线中心数据回写到对应的参考点之后,此时RAM 8中地址100的选点以地址98的线中心点为参考点,可能会出现1个地址100对应剩余未被选定的线中心点以及RAM 1-7中地址100对应的任意数量线中心点与RAM 8地址98参考点的Y差异值均小于差异阈值,且最小Y差异值对应点并非地址100对应剩余未被选定的线中心点,此时可以通过参考上文计算得到最小斜率差异值,则可以将地址100对应剩余未被选定的线中心点作为RAM 8地址100的选定点。
对于第二实施例所面临的场景,与第一实施例相比,引入了更少的RAM,降低了资源消耗,尤其对于同一扫描线存在多个断点即对应线中心点数据为零时,极大的减少了资源需求量,为实际使用提供了稳定可靠的运行资源。
如图5所示,本发明第二方面还提供一种多线中心点云数据硬件分层排序系统,包括:
线中心读取分配模块,用于对未排序的多线中心点云数据进行读取并分配至数据存储模块,以分离相同第一坐标对应的线中心点;具体实现方法可以参照上述步骤一。
数据存储模块,用于对来自线中心读取分配模块的分配数据进行分组存储,得到多组未排序存储数据;包括若干RAM,对分层排序前后的数据进行存储。
线中心选点排序模块,用于对数据存储模块中的多组未排序存储数据按照最相邻原则进行重新排序,以得到多组排序存储数据;具体实现方法可以参照上述步骤二和步骤三。
线中心发送模块,用于对线中心选点排序模块得到的多组排序存储数据进行遍历输出,由线中心选点排序模块给出ready信号后,将数据存储模块中的多组排序存储数据进行遍历读取并输出。
如图6所示,为了消除线中心选点排序模块带来的系统死时间以保证高扫描效率,数据存储模块由两个数据存储器组成,每个数据存储器包括若干RAM,用于进行乒乓操作,采用乒乓方式进行线中心点的存储和选点排序。
其中,还包括交叉点排序模块,用于扫描线存在交叉时,对交叉点之后的线中心点进行分层排序,具体可以参考上述斜率连续排序方法的详细步骤。
本发明第三方面还提供一种计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现上述分层排序方法。
在实际应用中,计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以是但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本说明书的描述中,参考术语“一个实施例”“示例”“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

Claims (10)

1.一种多线中心点云数据硬件分层排序方法,其特征在于,包括:
分组存储未排序的多线中心点云数据,以分离相同第一坐标对应的线中心点,得到多组未排序存储数据;
选择每组未排序存储数据中的起始线中心点作为参考点,分析参考点下一个第一坐标对应的所有线中心点第二坐标值与参考点第二坐标值之间的差异值结果,计算得到最小第二坐标差异值;
分析最小第二坐标差异值与差异阈值之间的大小关系,判定参考点下一个第一坐标对应的输出结果,依次循环以得到多组排序存储数据;
遍历输出多组排序存储数据。
2.根据权利要求1所述的一种多线中心点云数据硬件分层排序方法,其特征在于,分组存储未排序的多线中心点云数据包括:
设置与扫描线相对应的若干存储块,用于从FIFO中读取未排序的所有线中心点数据,并以第一坐标作为存储地址进行存储;
读取相同第一坐标对应的所有线中心点数据,并分别存储在不同存储块中。
3.根据权利要求1所述的一种多线中心点云数据硬件分层排序方法,其特征在于,计算得到最小第二坐标差异值包括:
采集参考点下一个第一坐标对应的所有线中心点第二坐标值与参考点第二坐标值之间的差异值结果;
采用流水线设计,分级对比差异值结果,获得最小第二坐标差异值。
4.根据权利要求1所述的一种多线中心点云数据硬件分层排序方法,其特征在于,判定参考点下一个第一坐标对应的输出结果包括:
当最小第二坐标差异值大于差异阈值时,则参考点不变,且参考点下一个第一坐标对应的输出结果为零;
当最小第二坐标差异值小于等于差异阈值时:
若参考点下一个第一坐标对应的所有线中心点第二坐标值均为零,则跳过此次参考点下一个第一坐标对应的输出操作;
否则,参考点下一个第一坐标对应数据更新为最小第二坐标差异值对应线中心点数据,并将最小第二坐标差异值对应线中心点作为新的参考点。
5.根据权利要求4所述的一种多线中心点云数据硬件分层排序方法,其特征在于,选择每组未排序存储数据中的起始线中心点作为参考点包括:判定多组未排序存储数据中第一个非零线中心点第一坐标是否相同,完成差异组对应的第一个非零线中心点的重新存储。
6.根据权利要求4所述的一种多线中心点云数据硬件分层排序方法,其特征在于,还包括斜率连续排序方法,用于扫描线存在交叉的场景,包括:计算交叉点对应线中心点斜率值,选择后续线中心点中斜率差异值最小且满足差异阈值限定的对应数据作为输出结果。
7.根据权利要求4所述的一种多线中心点云数据硬件分层排序方法,其特征在于,还包括跳变排序方法,用于扫描线存在跳变的场景,包括:确认跳变点第一坐标,将跳变点后续非零线中心点作为新一组排序存储数据的起始线中心点。
8.一种多线中心点云数据硬件分层排序系统,其特征在于,包括:
线中心读取分配模块,用于对未排序的多线中心点云数据进行读取并分配至数据存储模块,以分离相同第一坐标对应的线中心点;
数据存储模块,用于对来自线中心读取分配模块的分配数据进行分组存储,得到多组未排序存储数据;
线中心选点排序模块,用于对数据存储模块中的多组未排序存储数据按照最相邻原则进行重新排序,以得到多组排序存储数据;
线中心发送模块,用于对线中心选点排序模块得到的多组排序存储数据进行遍历输出。
9.根据权利要求8所述的一种多线中心点云数据硬件分层排序系统,其特征在于,数据存储模块由两个数据存储器组成,用于进行乒乓操作。
10.一种计算机可读存储介质,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的分层排序方法。
CN202410533257.7A 2024-04-30 2024-04-30 一种多线中心点云数据硬件分层排序方法、系统及介质 Active CN118134748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410533257.7A CN118134748B (zh) 2024-04-30 2024-04-30 一种多线中心点云数据硬件分层排序方法、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410533257.7A CN118134748B (zh) 2024-04-30 2024-04-30 一种多线中心点云数据硬件分层排序方法、系统及介质

Publications (2)

Publication Number Publication Date
CN118134748A true CN118134748A (zh) 2024-06-04
CN118134748B CN118134748B (zh) 2024-07-23

Family

ID=91244077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410533257.7A Active CN118134748B (zh) 2024-04-30 2024-04-30 一种多线中心点云数据硬件分层排序方法、系统及介质

Country Status (1)

Country Link
CN (1) CN118134748B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310077A (zh) * 2013-07-08 2013-09-18 攀钢集团攀枝花钢钒有限公司 轧后件顺序拉伸成体的建模方法
CN112184539A (zh) * 2020-11-27 2021-01-05 深兰人工智能(深圳)有限公司 点云数据处理方法和装置
CN112686910A (zh) * 2020-12-31 2021-04-20 合肥中科智驰科技有限公司 一种基于多线激光雷达的地面分割方法
CN113239216A (zh) * 2021-04-09 2021-08-10 广东南方数码科技股份有限公司 点云的处理方法、装置、设备及存储介质
CN114841905A (zh) * 2022-05-11 2022-08-02 天津云圣智能科技有限责任公司 点云与图像的融合方法、装置及服务器
CN116452403A (zh) * 2023-06-16 2023-07-18 瀚博半导体(上海)有限公司 点云数据处理方法、装置、计算机设备及存储介质
US20230239501A1 (en) * 2020-06-05 2023-07-27 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310077A (zh) * 2013-07-08 2013-09-18 攀钢集团攀枝花钢钒有限公司 轧后件顺序拉伸成体的建模方法
US20230239501A1 (en) * 2020-06-05 2023-07-27 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN112184539A (zh) * 2020-11-27 2021-01-05 深兰人工智能(深圳)有限公司 点云数据处理方法和装置
CN112686910A (zh) * 2020-12-31 2021-04-20 合肥中科智驰科技有限公司 一种基于多线激光雷达的地面分割方法
CN113239216A (zh) * 2021-04-09 2021-08-10 广东南方数码科技股份有限公司 点云的处理方法、装置、设备及存储介质
CN114841905A (zh) * 2022-05-11 2022-08-02 天津云圣智能科技有限责任公司 点云与图像的融合方法、装置及服务器
CN116452403A (zh) * 2023-06-16 2023-07-18 瀚博半导体(上海)有限公司 点云数据处理方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
解则晓;刘静晓;潘成成;张梦泽;: "一种散乱分层点云的有序化精简方法", 图学学报, no. 03, 15 June 2016 (2016-06-15) *

Also Published As

Publication number Publication date
CN118134748B (zh) 2024-07-23

Similar Documents

Publication Publication Date Title
US11861786B2 (en) Determining lighting information for rendering a scene in computer graphics using illumination point sampling
CN108810616B (zh) 目标定位方法、视频显示方法、装置、设备和存储介质
JP5425541B2 (ja) マルチプロセッサ・システム上でデータ・セットを区分化およびソートするための方法および装置
CN102156751B (zh) 一种提取视频指纹的方法及装置
CN110929873B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
AU2018258094B2 (en) Octree-based convolutional neural network
CN106844664B (zh) 一种基于摘要的时间序列数据索引构建方法
US20030011637A1 (en) System, method, and computer program product for optimization of a scene graph
CN112085644B (zh) 多列数据排序方法、装置、可读存储介质和电子设备
US20200387548A1 (en) Graph data processing method and apparatus thereof
CN107315863B (zh) 布局优化方法及装置、终端及存储介质
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
CN118134748B (zh) 一种多线中心点云数据硬件分层排序方法、系统及介质
CN112148942A (zh) 基于数据聚类的业务指标数据分类方法及装置
CN115982418B (zh) 一种提升ai计算芯片超分运算性能的方法
CN104502967A (zh) 快速获取地震勘探观测系统面元信息的方法及装置
CN111724406A (zh) 一种区域连通合并方法、装置、设备和介质
CN114694755B (zh) 基因组组装方法、装置、设备及存储介质
CN113763240B (zh) 一种点云缩略图生成方法、装置、设备及存储介质
CN112100446A (zh) 搜索方法、可读存储介质和电子设备
CN116701438B (zh) 数据关联分析方法、装置、电子设备和计算机存储介质
CN107346527B (zh) 一种基于动态任务调度的层次包围盒构建方法
CN117078825A (zh) 一种点云数据线上渲染修改方法、系统、设备及介质
CN116541108A (zh) 显示版面排版转换方法、装置、计算机设备和存储介质
CN114090470A (zh) 数据预加载装置及其预加载方法、存储介质和计算机设备

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