CN112002015B - 无序点云生成网格数据结构的方法、装置、设备及介质 - Google Patents
无序点云生成网格数据结构的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112002015B CN112002015B CN202010944163.0A CN202010944163A CN112002015B CN 112002015 B CN112002015 B CN 112002015B CN 202010944163 A CN202010944163 A CN 202010944163A CN 112002015 B CN112002015 B CN 112002015B
- Authority
- CN
- China
- Prior art keywords
- point
- point cloud
- vertex
- disordered
- ordering
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种3D无序点云生成5D纹理网格数据结构的方法,包括:获取待扫描工件的无序点云;获取顶点Smn,并建立无序点云中各点Pi与顶点Smn之间一一对应关系;对点云数据进行排序,获取点各点Pi的按行排序和按列排序;遍历点云数据,对任一点Pi,依照按行排序和按列排序中的索引规则查找Pi的相邻点Pj、Pk、Pq;依据索引关系,获取Pi,Pj、Pk、Pq对应顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1;添加四角面片,并将Smn,Sm,n+1.Sm+1,n,Sm+1,n+1添加至四角面片的顶点位置处并生成半边四角网格,遍历Pi或顶点Smn,获取全部Pi或顶点Smn对应的半边四角网格,输出5D纹理网格数据结构。该方法用以将无序点云网格化,无序点云数据基于纹理网格的数据结构的数据表示后,呈拓扑结构且可有效表征三维物体的全方位信息。
Description
技术领域
本发明属于涉及计算机图形和计算机视觉技术领域,特别涉及一种无序点云的数据网格化方法装置、计算机设备及存储介质。
背景技术
在工业制造、物流等领域,机床上下料、零件分拣、货品拆零拣选等无序分拣任务对于传统人工操作的方式来说,劳动强度大、分拣效率低、招工难度大。机器人无序分拣技术越来越多地替代人工,成为相关产业降本增效、智能化升级的重要手段。
机器人无序分拣依靠视觉识别方法定位待分拣物体,进而引导机器人末端完成物体的抓取和放置操作。一般采用2D图像、3D点云或网格等方式表征物体信息,物体的视觉识别方法可分为2D方法和3D方法两类。
目前传统的2D视觉或3D视觉识别方法尚不能解决海量无序姿态工件的通用准确识别问题,难以应对电商物流的无序分拣需求。当待扫描工件的姿态倾角较大、杂乱堆叠时,比如进行位于周转箱侧放的桶装方便面识别,传统2D方法需要制作多个不同视角的模板进行匹配定位,这样面对海量工件时,建立模板工作量过于庞大;当待检测工件紧密放置时,3D视觉方法难以分割场景中的不同物体,且对物体形状变化较小的待检测工件难以适应,比如识别位于周转箱内紧密排列的手机包装盒。只有识别工件的完整形状(包括侧面和底面)等,才能工件实现准确码放,避免抓取贵重工件时损伤工件,而传统的2D/3D/深度学习方法,都只能基于工件上表面的局部信息进行识别,难以判断待测工件的完整形状,对准确码放难以适应。
上述问题的出现主要是由于现有视觉识别方法受限于表征三维物体的数据结构,其中得益于2D图像的矩阵形式,2D视觉中图像处理方法都十分成熟,但2D图像难以表示三维物体的全方位信息;在3D视觉处理中,现有3D图像处理方法大多基于无序点云,难以实现类似2D的有序邻域访问,从而无法利用2D的纹理特征;基于无序点云的3D图像处理方法,由于无序点云仅能表达工件的上表面信息,对底面和侧面无法表达,也无法实现完整形状的表达。
发明内容
本发明的目的是提供一种无序点云5D纹理网格数据结构生成方法,用以将无序点云网格化,点云数据基于5D纹理网格的数据结构的数据表示后,呈拓扑结构且可有效表征三维物体的全方位信息,故2D以及3D的图像处理算法均可适用,从而可实现更强大的感知识别效果,也为机器人面对海量无序状态的工件抓取奠定了数据结构基础。
为实现上述目的,本发明提供一种3D无序点云生成5D纹理网格数据结构的方法,包括如下步骤:
获取待扫描工件的无序点云;
对于所述无序点云中的任意一点Pi,添加所述Pi的3D位置坐标(x,y, z)、法向量、颜色信息以获取顶点Smn,并建立所述Pi与所述顶点Smn之间一一对应索引关系;
对无序点云中的各点进行排序,分别获取所述点云数据中各点Pi的按行排序和按列排序;
遍历所述点云数据,对任意一点Pi,依照所述按行排序和所述按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq;
依据所述索引关系,获取Pi, Pj、Pk、Pq各自分别对应的四个顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1;
添加四角面片,并将所述4个顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1添加至四角面片的对应顶点位置处以生成半边四角网格,其中每个所述顶点存储点云数据中对应点Pi的3D位置坐标(x,y, z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
遍历所述Pi或所述顶点Smn,获取全部所述Pi或所述顶点Smn对应的半边四角网格以输出所述无序点云对应的5D纹理网格数据结构。
作为一优选方案,所述按行排序获取包括:对于无序点云中的任意两点,根据x/z和y/z的大小对无序点云中的点Pi进行排序, 比较二者的y/z大小,并将y/z值较大的点排在后面,若二者y/z值相同,则比较x/z值大小,并将x/z值较大的点排在后面;若二者x/z值也相同,则删除其中一点,以获取所述按行排序;和/或,作为一优选方案,所述按列排序获取包括:对于无序点云中的任意两点,根据x/z和y/z的大小对无序点云中的点Pi进行排序,比较二者x/z值大小,并将x/z值较大的点排在后面,若二者x/z值相同,则比较y/z值大小,并将y/z值较大的点排在后面;若二者y/z值也相同,则删除其中一点,以获取所述按列排序。
更进一步的,创建两个空的容器以分别用于存储所述无序点云数据的按行排序与按列排序。
作为一优选方案,对于任一点Pi,依照所述按行排序和所述按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq包括如下步骤:
确定所述Pi在所述按行排序中的位置,并将Pi在所述按行排序中后一个点作为所述Pi的相邻点Pj;
确定所述Pj在所述按列排序中的位置,并将所述Pj在所述按列排序中后一个点作为所述Pi的相邻点Pk;
确定Pi在所述按列排序中的位置,并将Pi在所述按列排序中后一个点作为所述Pi的相邻点Pq。
更进一步的,创建一个空容器,所述Pi、Pj、Pk、Pq成组存储在于所述空容器中。
作为一优选方案,对任意一点Pi,若无法查找到对应的三个相邻点Pj、Pk、Pq,则跳过Pi相邻点查找,继续无序点云中下一个点的相邻点查找。
作为一优选方案,添加四角面片Q时,若判断所述四角面片的边长超出阈值,则删除边长超过阈值的所述四角面片。
作为一优选方案,基于3D相机获取待识别物的原始无序点云。
作为一优选方案,对于所述无序序点云的任意一点Pij,添加所述Pij对应的3 D位置坐标(x,y, z)、法向量、颜色信息获取顶点Smn后,建立顶点集合S,将各顶点Smn添加至中顶点集合S。
本发明还提供了一种无序点云生成5D纹理网格数据结构的装置,包括:
无序点云获取模块,用于获取待扫描工件的无序点云;
映射模块,用于对于所述无序点云中的任意一点Pi,添加所述Pi以及Pi的3D位置坐标(x,y, z)、法向量、颜色信息以获取顶点Smn,建立所述Pi与所述顶点Smn之间一一对应索引关系;
排序获取模块,用于对点云数据进行排序,获取所述点云数据中各点Pi的分别按行排序和按列排序;
相邻点获取模块,用于遍历所述点云数据,对点云数据中的任一点Pi,依照所述按行排序和按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq;
顶点获取模块,用于依据所述索引关系,获取Pj、Pk、Pq各自分别对应的四个顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1;
半边四角网格生成模块,用于添加四角面片Q,并将所述4个顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1添加至对应四角面片Q的顶点位置处以生成半边四角网格,其中每个所述顶点存储点云数据中对应点Pi的3D位置坐标(x,y, z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
5D纹理网格数据结构生成模块,用于遍历所述Pij或所述顶点Smn,获取全部所述Pij或所述顶点Smn对应的半边四角网格以输出所述无序点云对应的5D纹理网格数据结构。
作为一优选方案,映射模块用于对于所述无序序点云的任意一点Pij,添加所述Pij以及对应的3 D位置坐标(x,y, z)、法向量、颜色信息获取顶点Smn后,建立顶点集合S,将各顶点Smn添加至中顶点集合S。
作为一优选方案,排序获取模块包括行排序获取子模块与列排序获取子模块:其中,行排序获取子模块用于对点云数据排序根据x/z和y/z的大小对无序点云中的点Pi进行排序,对于无序点云中的任意两点,比较二者的y/z大小,并将y/z值较大的点排在后面,若二者y/z值相同,则比较x/z值大小,并将x/z值较大的点排在后面;若二者x/z值也相同,则删除其中一点,以获取所述按行排序;列排序获取子模块用于对点云数据排序根据x/z和y/z的大小对无序点云中的点Pi进行排序,对于无序点云中的任意两点,比较二者x/z值大小,并将x/z值较大的点排在后面,若二者x/z值相同,则比较y/z值大小,并将y/z值较大的点排在后面;若二者y/z值也相同,则删除其中一点,以获取所述按列排序。
进一步的,排序获取模块中还包括第一容器与第二容器,第一容器用于存储所述无序点云数据的按行排序,第二容器用于存储所述无序点云数据的按列排序。
作为一优选方案,相邻点获取模块包括第一相邻点查找子模块、第二相邻点查找子模块以及第三相邻点查找子模块:
第一相邻点查找子模块用于确定所述Pi在所述按行排序中的位置,并将Pi在所述按行排序中后一个点作为所述Pi的相邻点Pj;
第二确相邻点查找子模块用于定所述Pj在所述按列排序中的位置,并将所述Pj在所述按列排序中后一个点作为所述Pi的相邻点Pk;
第三相邻点查找子模块用于确定Pi在所述按列排序中的位置,并将Pi在所述按列排序中后一个点作为所述Pi的相邻点Pq。
进一步的,所述相邻点获取模块中,还包括第三容器,所述Pi、Pj、Pk、Pq成组存储在于所述第三容器F中。
作为一优选方案,所述相邻点获取模块还包括查找判断子模块,用于对任意一点Pi,判断三个相邻点Pj、Pk、Pq是否全部查找到,若判断无法查找到对应的三个相邻点Pj、Pk、Pq,则跳过Pi相邻点查找,继续无序点云中下一个点的相邻点查找。
作为一优选方案,半边四角网格生成模块还包括边长阈值判断子模块,用于添加四角面片Q时,判断所述四角面片的边长是否超出阈值,若超出阈值则删除边长超过阈值的所述四角面片。
作为一优选方案,一种3D无序点云生成5D纹理网格数据结构包括3D相机,所述3D相机用于获取待识别物的原始无序点云。
为了实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法的步骤。
本发明所示的一种无序点云5D纹理网格数据结构生成方法、装置、计算机设备及存储介质,可实现将3D点云转换为对应的5D纹理网格数据结构,用以将无序点云网格化,无序点云数据基于纹理网格的数据结构的数据表示后,呈拓扑结构且可有效表征三维物体的全方位信息,故2D以及3D的图像处理算法均可适用,从而实现了更强大的感知识别效果,也为机器人面对海量无序状态的工件抓取奠定了数据结构基础。
具体而言,将3D点云转换成SeizetColorMesh后,只需制作1个基于SeizetColorMesh的全方位模板,基于SeizetColorMesh的全方位模板,可提供待识别物体的完整形状和纹理信息(包括侧面和底面),提高了定位精度、可靠性以及通用性,进而可实现机器人在海量无序工件场景下的精准抓取与码放,即实现物体姿态倾角较大、杂乱堆叠场景的识别定位;此外,还可将2D图像处理方法拓展至SeizetColorMesh,即可实现物体紧密放置场景下的不同物体分割。
附图说明
图 1为本发明一种无序点云的5D纹理网格数据结构生成方法一实施例的流程示意图;
图 2无序点云数据的按行排序获取方法一实施例的流程示意图;
图 3无序点云数据的按列排序获取方法一实施例的流程示意图;
图4为本发明半边四角网格的结构示意图;
图5为本发明3D无序点云生成5D纹理网格数据结构一实施例的示意图;
图6为纸盒原始点云;
图7为纸盒点云生成的SeizetColorMesh;
图8为图7中虚框内结构的放大图;
图9为本发明一种无序点云的5D纹理网格数据结构生成装置一实施例的结构框图
图10为本发明计算机设备的一个实施例的硬件架构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,而非以任何方式限制本发明的保护范围。
在说明书的全文中,相同的附图标号指代相同的元件。表述“和/或”包括相关联的所列相目中的一个或多个的任何和全部组合。在附图中,为了便于说明,已稍微夸大了物体的厚度、尺寸和形状。附图仅为示例 而非严格按比例绘制。
还应理解的是,用语“包括”、“包括有”、“具有”、“包含”和/或“包含有”,当在本说明书中使用时表示存在所陈述的特征、步骤、整体、操作、元件和/或部件,但不排除存在或附加有一个或多个其它特征、步骤、整体、操作、元件、部件和/或它们的组合。
如在说明书中使用的用语“基本上”、 “大约”以及类似的用于用作表示近似的用语,而不用作表示程度的用语,并且旨在说明将由本领域普通技术人员认识到的、测量值或计算值中的固有偏差。
除非另有限定,否则本文中使用的所有用语(包括技术用语和科学用语)均具有与 本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,用语(例如在常用词 典中定义的用语)应被解释为具有与它们在相关技术的上下文中的含义一致的含义,并且 将不被以理想化或过度正式意义解释,除非本文中明确如此限定。
实施例一
如图1所示,本发明提供了一种无序点云生成5D纹理网格数据结构的方法,包括如下步骤:
S1获取待扫描工件的无序点云;
S2对于所述无序点云中的任意一点Pi,添加所述Pi以及Pi的3D位置坐标(x、y、z)、法向量、颜色信息以获取顶点Smn,建立所述Pi与所述顶点Smn之间一一对应索引关系;
S3对无序点云数据进行排序,获取所述无序点云中各点Pi的按行排序和按列排序;
S4遍历所述点云数据,对点云数据中的任一点Pi,依照所述按行排序和按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq;
S5依据所述索引关系,获取Pi, Pj、Pk、Pq各自分别对应的四个顶点Smn,Sm,n+ 1.Sm+1,n,Sm+1,n+1;
S6添加四角面片Q,并将所述4个顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1添加至对应四角面片Q的顶点位置处以生成半边四角网格,其中每个顶点Smn存储点云数据中对应点Pi的3D位置坐标(x,y, z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
S7遍历所述Pi或所述顶点Smn,获取全部所述Pi或所述顶点Smn对应的半边四角网格以输出所述无序点云对应的5D纹理网格数据结构。
本发明所示的一种无序点云的5D纹理网格数据结构生成方法,可实现将3D点云转换为对应的5D纹理网格数据结构(SeizetColorMesh),用以将无序点云网格化,无序点云数据基于纹理网格的数据结构的数据表示后,呈拓扑结构且可有效表征三维物体的全方位信息,其使用顶点、半边、四角面片的连接关系进行索引,故2D以及3D的图像处理算法均可适用,从而实现了更强大的感知识别效果,也为机器人面对海量无序状态的工件抓取奠定了数据结构基础。具体而言,将3D点云转换成SeizetColorMesh后,只需制作1个基于SeizetColorMesh的全方位模板,基于SeizetColorMesh的全方位模板,可提供待识别物体的完整形状和纹理信息(包括侧面和底面),提高了定位精度、可靠性以及通用性,进而可实现机器人在海量无序工件场景下的精准抓取与码放,即实现物体姿态倾角较大、杂乱堆叠场景的识别定位;此外,还可将2D图像处理方法拓展至SeizetColorMesh,即可实现物体紧密放置场景下的不同物体分割。
步骤S1中,可通过基于3D相机获取待检测物的原始无序点云,其中点云数据为待检测物以点的形式记录,每一个点包含有3D位置坐标(x、y、z)、颜色信息以及法向量。更具体的,颜色信息通常是通过相机获取彩色影像,然后将对应位置的像素的颜色信息赋予点云中对应的点;关于无序点云中各点Pi的法向量,若无序点云中的任意一点Pi只有3D位置坐标(x,y,z),则Pi的法向量可以通过邻域点的3D位置坐标(x、y、z)确定;若无序点云数据中已包含的法向量信息,则直接读取即可。
步骤S2中,作为一优选方案,建立顶点集合S,遍历无序点云C的每个点Pi,基于Pi以及对应的3D坐标、法向量、颜色信息获取顶点Smn后,将各顶点Smn添加至中顶点集合S。其中,顶点集合S为5D纹理网格数据结构(SeizetColorMesh)M的顶点集合。
步骤S3中,为便于后续相邻点的查找,首先对无序点云数据进行排序,分别获取无序点云数据的按行排序与按列排序,作为一优选方案,本实施例中,根据x/z和y/z的大小对无序点云中的点Pi进行排序。
其中,按行排序的获取包括如下步骤:对于无序点云中的任意两点,比较二者的y/z大小,并将y/z值较大的点排在后面,若二者y/z值相同,则比较x/z值大小,并将x/z值较大的点排在后面;若二者x/z值也相同,则删除其中一点,以获取所述按行排序。具体而言,如图2所示,使用std::map类创建一个空的容器V1,然后遍历原始无序点云C的每个点Pi,其坐标为(x,y,z),根据x/z和y/z的大小排序并存入容器V1,排序规则为:若y/z值较大,则排在后面;若y/z值相同,则x/z值较大的排在后面,若x/z值也相同,则删除其中一点。对无序点云中所有的点按照上述规则排序完毕后输出容器V1,容器V1实际上为一行多列的矩阵,其中总列数为无序点云中对应的点的数量(若按排序规则无重复的点)。
按列排序的获取包括如下步骤:对于无序点云中的任意两点,比较二者x/z值大小,并将x/z值较大的点排在后面,若二者x/z值相同,则比较y/z值大小,并将y/z值较大的点排在后面;若二者y/z值也相同,则删除其中一点,以获取所述按列排序。具体而言,如图3所示,使用std::map类创建一个空的容器V2,遍历原始无序点云C的每个点Pi,其坐标为(x,y,z),根据x/z和y/z的大小排序并存入容器V2,排序规则为:若x/z值较大,则排在后面;若x/z值相同,则y/z值较大的排在后面。若y/z值相同,则删除其中一点。对无序点云中所有的点按照上述规则排序完毕后输出容器V2,容器V2实质上也为一行多列的矩阵,其中总列数为无序点云中对应的点的数量(若按排序规则无重复的点)。
步骤S4中,作为一优选方案,对于任一点Pi,依照所述按行排序和按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq包括如下步骤:确定所述Pi在所述按行排序中的位置,并将Pi在所述按行排序中后一个点作为所述Pi的相邻点Pj;确定所述Pj在所述按列排序中的位置,并将所述Pj在所述按列排序中后一个点作为所述Pi的相邻点Pk;确定Pi在所述按列排序中的位置,并将Pi在所述按列排序中后一个点作为所述Pi的相邻点Pq。
本实施例中,遍历无序点云C的每个点Pi,创建一个空容器F,对于任一点Pi,首先将Pi存入F中;在容器V1中找到Pi的位置,将V1中Pi后一个点Pj存入F中;在容器V2中找到Pj的位置,将V2中Pj后一个点Pk存入F中;在容器V2中找到Pi的位置,将V2中Pi后一个点Pq存入F中。
此外,若上述3个查找步骤任意一个不成功,则跳过序号i的查找,进行无序点云数据中下一点的相邻点查找。记顶点集合S中顶点个数为Ns,遍历序号i(i=0…,Ns),对于S中的任一点Si,在容器V1中查找对应的点Pi,然后在容器V1中查找Pi的后一个点Pj,在容器V2中查找Pj的后一个点Pk,在容器V2中查找Pi的后一个点Pq;若上述3个查找步骤都成功,则依据索引关系确认相邻点Pj、Pk、Pq分别对应的顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1,并建立这4个顶点的拓扑关系,即为网格M添加一个新的四角面片Q,Q的顶点依次为Smn,Sm,n+1.Sm+1,n,Sm+1,n+1。
本步骤中的四角面片顶点顺序可采用其他顺序,如将Pi、Pq、Pk、Pj对应的四个顶点
依次作为四角面片Q的4个顶点因结构特殊性,即顶点的设置顺序为(i,j,k,q)或(i,q,k,j),这样设置是为了尽可能简化结构,尽可能保证顶点间距一致,尽可能提高顶点间相互访问的效率。
如图4所示,基于点云数据所生成的每个半边四角网格中包括顶点1)、半边2)和四角面片3),为方便说明,将顶点S(1,0)、S(1,1)、S(2,1)、S(2,0)简化为顶点A、B、C、D, AB、BC、CD、DA均为半边,ABCD为四角面片。
顶点(Vertex)A、B、C、D中存储对应点Pi,j+1,Pi+1,j+1,Pi+1,j的3D坐标、法向量、颜色等信息;半边(HalfEdge)是顶点之间的有向连线,通过TerminateVertex和OriginVertex指针分别记录其终止顶点和起始顶点,图4中半边AB的终止顶点和起始顶点分别为B和A。半边通过NextHalfEdge和PrevHalfEdge指针分别记录其下个半边和上个半边,图4中半边AB的下个半边和上个半边分别为BC和DA;半边通过OppositeHalfEdge指针记录其对立半边,图4中半边AB的对立半边为BA;半边通过AdjacentFace指针记录与其邻接的四角面片,图4中半边AB的邻接四角面片为ABCD;顶点通过OutgoingHalfEdge和IncomingHalfEdge指针分别记录出半边和入半边,图4中顶点A的出半边和入半边分别为AB和BA;四角面片(QuadFace)由4个顺序连接的半边组成,图4中四角面片ABCD由半边AB、BC、CD、DA组成;四角面片通过OuterHalfEdge和InnerHalfEdge指针记录其外半边和内半边,图4中四角面片ABCD的外半边和内半边分别为BA和AB。
步骤S6中,在添加四角面片Q时,若判断所述四角面片的边长超出阈值,则删除边长超过阈值的所述四角面片。
以下以一个包括9个点的点云数据的为例对步骤S4、S5、S6的建立半边四角网格的具体过程进行说明。为便于描述,如图5所示,本实施例中,将Smn简化为Si,即将顶点S(0,0)、S(0,1)、S(0,2)、S(1,0)、S(1,1)、S(1,2)、S(2,0)、S(2,1)、S(2,2)9个顶点对应简化为S0、S1、S2、S3、S4、S5、S6、S7、S8,当对点云数据中9个点分别按行/按列排序后,遍历按行排序或按列排序中的点,从点P0开始查找P0的相邻点:查找容器V1中P0的后一个点为P1,查找容器V2中P1的后一个点为P4,查找容器V2中P0的后一个点为P3,P0、P1、P4、P3均查询到后,为网格M添加四角面片Q0,Q0的顶点依次对应为S0、S1、S4、S3(分别对应点云数据中的P0、P1、P4、P3);继续对于点P1的相邻点查找,类似地,可为网格M添加四角面片Q1,Q1的顶点依次为S1、S2、S5、S4;对于顶点S2,为网格M添加四角面片Q2,Q2的顶点依次为S2、S3、S6、S5;对于顶点S3,为网格M添加四角面片Q3,Q3的顶点依次为S3、S4、S7、S6;对于顶点S4,为网格M添加四角面片Q4,Q4的顶点依次为S4、S5、S8、S7;对于顶点S5,为网格M添加四角面片Q5,Q5的顶点依次为S5、S6、S1、S8;对于顶点S6,为网格M添加四角面片Q6,Q6的顶点依次为S6、S7、S2、S1。
其中,在相邻点的查找过程中,顶点S7、S8在点云中对应的点由于其无法找到相邻点,则均无法添加四角面片;而对于四角面片Q2、Q5、Q6,由于边长超过阈值被删除。因此,输出网格M,M由顶点S0-S8、四角面片Q0、Q1、Q3、Q4以及顶点间的半边组成。
通过本发明所提出的5D纹理网格数据结构以及对应的3D无序点云生成5D纹理网格数据结构的方法,可将3D点云以SeizetColorMesh的形式存储,图6为纸盒原始点云,所生成的SeizetColorMesh如图7所示,图8为图7中虚框内结构的放大图。
实施例二
如图9所示,本发明还提供了一种3D无序点云生成5D纹理网格数据结构的装置10,包括:
无序点云获取模块11,用于获取待扫描工件的无序点云;
映射模块12,用于对于所述无序点云中的任意一点Pi,添加所述Pi以及Pi的3D位置坐标(x,y, z)法向量、颜色信息以获取顶点Smn并建立所述Pi与所述顶点Smn之间一一对应索引关系;
排序获取模块13,用于对点云数据进行排序,获取所述点云数据中各点Pi的分别按行排序和按列排序;
相邻点获取模块14,用于遍历所述点云数据,对点云数据中的任一点Pi,依照所述按行排序和按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq;
顶点获取模块15,用于依据所述索引关系,获取Pj、Pk、Pq各自分别对应的四个顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1;
半边四角网格生成模块16,用于添加四角面片Q,并将所述4个顶点Smn,Sm,n+ 1.Sm+1,n,Sm+1,n+1添加至对应四角面片Q的顶点位置处以生成半边四角网格,其中每个顶点Smn存储点云数据中对应点Pi的3D位置坐标(x,y, z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
5D纹理网格数据结构生成模块17,用于遍历所述Pij或所述顶点Smn,获取全部所述Pij或所述顶点Smn对应的半边四角网格以输出所述无序点云对应的5D纹理网格数据结构。
本发明所示的一种无序点云的5D纹理网格数据结构生成装置10,可实现将3D点云转换为对应的5D纹理网格数据结构,用以将无序点云网格化,无序点云数据基于纹理网格的数据结构的数据表示后,呈拓扑结构且可有效表征三维物体的全方位信息,故2D以及3D的图像处理算法均可适用,从而实现了更强大的感知识别效果,也为机器人面对海量无序状态的工件抓取奠定了数据结构基础。具体而言,将3D点云转换成SeizetColorMesh后,只需制作1个基于SeizetColorMesh的全方位模板,基于SeizetColorMesh的全方位模板,可提供待识别物体的完整形状和纹理信息(包括侧面和底面),提高了定位精度、可靠性以及通用性,进而可实现机器人在海量无序工件场景下的精准抓取与码放,即实现物体姿态倾角较大、杂乱堆叠场景的识别定位;此外,还可将2D图像处理方法拓展至SeizetColorMesh,即可实现物体紧密放置场景下的不同物体分割。
作为一优选方案,排序获取模块13包括行排序获取子模块与列排序获取子模块:
其中,行排序获取子模块用于对点云数据排序根据x/z和y/z的大小对无序点云中的点Pi进行排序,对于无序点云中的任意两点,比较二者的y/z大小,并将y/z值较大的点排在后面,若二者y/z值相同,则比较x/z值大小,并将x/z值较大的点排在后面;若二者x/z值也相同,则删除其中一点,以获取所述按行排序。
列排序获取子模块用于对点云数据排序根据x/z和y/z的大小对无序点云中的点Pi进行排序,对于无序点云中的任意两点,比较二者x/z值大小,并将x/z值较大的点排在后面,若二者x/z值相同,则比较y/z值大小,并将y/z值较大的点排在后面;若二者y/z值也相同,则删除其中一点,以获取所述按列排序。
进一步的,排序获取模块13中还包括第一容器与第二容器,第一容器用于存储所述无序点云数据的按行排序,第二容器用于存储所述无序点云数据的按列排序。
作为一优选方案,相邻点获取模块14包括第一相邻点查找子模块、第二相邻点查找子模块以及第三相邻点查找子模块:
第一相邻点查找子模块用于确定所述Pi在所述按行排序中的位置,并将Pi在所述按行排序中后一个点作为所述Pi的相邻点Pj;
第二确相邻点查找子模块用于定所述Pj在所述按列排序中的位置,并将所述Pj在所述按列排序中后一个点作为所述Pi的相邻点Pk;
第三相邻点查找子模块用于确定Pi在所述按列排序中的位置,并将Pi在所述按列排序中后一个点作为所述Pi的相邻点Pq。
进一步的,所述相邻点获取模块14中,还包括第三容器,所述Pi、Pj、Pk、Pq成组存储在于所述第三容器F中。
作为一优选方案,所述相邻点获取模块14还包括查找判断子模块,用于对任意一点Pi,判断三个相邻点Pj、Pk、Pq是否全部查找到,若判断无法查找到对应的三个相邻点Pj、Pk、Pq,则跳过Pi相邻点查找,继续无序点云中下一个点的相邻点查找。
作为一优选方案,半边四角网格生成模块16还包括边长阈值判断子模块,用于添加四角面片Q时,判断所述四角面片的边长是否超出阈值,若超出阈值则删除边长超过阈值的所述四角面片。
实施例三
图10是本发明实施例提供的一种计算机设备的结构示意图,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过***总线相互通信连接的存储器21、处理器22,如图10所示。需要指出的是,图10仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作***和各类应用软件,例如方法实施例中的无序点云5D纹理网格数据结构生成方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行无序点云的5D纹理网格数据结构生成装置,以实现方法实施例中的无序点云的5D纹理网格数据结构生成方法。
实施例四
本申请还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储无序点云的5D纹理网格数据结构生成装置10,被处理器执行时实现方法实施例的无序点云5D纹理网格数据结构生成方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种3D无序点云生成5D纹理网格数据结构的方法,其特征在于,包括如下步骤:
获取待扫描工件的无序点云;
对于所述无序点云中的任意一点Pi,添加所述Pi的3D位置坐标(x,y, z)、法向量、颜色信息以获取顶点Smn,并建立所述Pi与所述顶点Smn之间一一对应索引关系;
对无序点云中的各点云数据进行排序,分别获取所述点云数据中各点Pi的按行排序和按列排序;其中,所述按行排序包括:对于无序点云中的任意两点,根据x/z和y/z的大小对无序点云中的点Pi进行排序, 比较二者的y/z大小,并将y/z值较大的点排在后面,若二者y/z值相同,则比较x/z值大小,并将x/z值较大的点排在后面;若二者x/z值也相同,则删除其中一点,以获取所述按行排序;和/或,所述按列排序包括:对于无序点云中的任意两点,根据x/z和y/z的大小对无序点云中的点Pi进行排序,比较二者x/z值大小,并将x/z值较大的点排在后面,若二者x/z值相同,则比较y/z值大小,并将y/z值较大的点排在后面;若二者y/z值也相同,则删除其中一点,以获取所述按列排序;
遍历所述点云数据,对任意一点Pi,依照所述按行排序和所述按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq;对于任一点Pi,依照所述按行排序和所述按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq包括如下步骤:确定所述Pi在所述按行排序中的位置,并将Pi在所述按行排序中后一个点作为所述Pi的相邻点Pj;确定所述Pj在所述按列排序中的位置,并将所述Pj在所述按列排序中后一个点作为所述Pi的相邻点Pk;确定Pi在所述按列排序中的位置,并将Pi在所述按列排序中后一个点作为所述Pi的相邻点Pq;
依据所述索引关系,获取Pi, Pj、Pk、Pq各自分别对应的顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1;
添加四角面片,并将4个所述顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1添加至四角面片的对应顶点位置处以生成半边四角网格,其中每个所述顶点存储点云数据中对应点Pi的3D位置坐标(x,y, z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
遍历所述Pi或所述顶点Smn,获取全部所述Pi或所述顶点Smn对应的半边四角网格以输出所述无序点云对应的5D纹理网格数据结构。
2.根据权利要求1所述的一种3D无序点云生成5D纹理网格数据结构的方法,其特征在于,创建两个空的容器以分别用于存储所述无序点云数据的按行排序与按列排序。
3.根据权利要求1所述的一种3D无序点云生成5D纹理网格数据结构的方法,其特征在于,创建一个空容器,所述Pi、Pj、Pk、Pq成组存储在于所述空容器中。
4.根据权利要求1所述的一种3D无序点云生成5D纹理网格数据结构的方法,其特征在于,对任意一点Pi,若无法查找到对应的三个相邻点Pj、Pk、Pq,则跳过Pi相邻点查找,继续无序点云中下一个点的相邻点查找。
5.根据权利要求1所述的一种3D无序点云生成5D纹理网格数据结构的方法,其特征在于,添加四角面片Q时,若判断所述四角面片的边长超出阈值,则删除边长超过阈值的所述四角面片。
6.一种3D无序点云生成5D纹理网格数据结构的装置,其特征在于,包括:
无序点云获取模块,用于获取待扫描工件的无序点云;
映射模块,用于对于所述无序点云中的任意一点Pi,添加所述Pi以及Pi的3D位置坐标(x,y, z)、法向量、颜色信息以获取顶点Smn,建立所述Pi与所述顶点Smn之间一一对应索引关系;
排序获取模块,用于对点云数据进行排序,获取所述点云数据中各点Pi的分别按行排序和按列排序;其中,所述按行排序包括:对于无序点云中的任意两点,根据x/z和y/z的大小对无序点云中的点Pi进行排序, 比较二者的y/z大小,并将y/z值较大的点排在后面,若二者y/z值相同,则比较x/z值大小,并将x/z值较大的点排在后面;若二者x/z值也相同,则删除其中一点,以获取所述按行排序;和/或,所述按列排序包括:对于无序点云中的任意两点,根据x/z和y/z的大小对无序点云中的点Pi进行排序,比较二者x/z值大小,并将x/z值较大的点排在后面,若二者x/z值相同,则比较y/z值大小,并将y/z值较大的点排在后面;若二者y/z值也相同,则删除其中一点,以获取所述按列排序;
相邻点获取模块,用于遍历所述点云数据,对点云数据中的任一点Pi,依照所述按行排序和按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq;对于任一点Pi,依照所述按行排序和所述按列排序中的索引规则查找所述无序点云中Pi的相邻点Pj、Pk、Pq包括:确定所述Pi在所述按行排序中的位置,并将Pi在所述按行排序中后一个点作为所述Pi的相邻点Pj;确定所述Pj在所述按列排序中的位置,并将所述Pj在所述按列排序中后一个点作为所述Pi的相邻点Pk;确定Pi在所述按列排序中的位置,并将Pi在所述按列排序中后一个点作为所述Pi的相邻点Pq;
顶点获取模块,用于依据所述索引关系,获取Pj、Pk、Pq各自分别对应的顶点Smn,Sm,n+ 1.Sm+1,n,Sm+1,n+1;
半边四角网格生成模块,用于添加四角面片Q,并将4个所述顶点Smn,Sm,n+1.Sm+1,n,Sm+1,n+1添加至对应四角面片Q的顶点位置处以生成半边四角网格,其中每个所述顶点存储点云数据中对应点Pi的3D位置坐标(x,y, z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
5D纹理网格数据结构生成模块,用于遍历所述Pij或所述顶点Smn,获取全部所述Pij或所述顶点Smn对应的半边四角网格以输出所述无序点云对应的5D纹理网格数据结构。
7.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010944163.0A CN112002015B (zh) | 2020-09-10 | 2020-09-10 | 无序点云生成网格数据结构的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010944163.0A CN112002015B (zh) | 2020-09-10 | 2020-09-10 | 无序点云生成网格数据结构的方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112002015A CN112002015A (zh) | 2020-11-27 |
CN112002015B true CN112002015B (zh) | 2021-05-04 |
Family
ID=73470043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010944163.0A Active CN112002015B (zh) | 2020-09-10 | 2020-09-10 | 无序点云生成网格数据结构的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112002015B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814774B (zh) * | 2020-09-10 | 2020-12-18 | 熵智科技(深圳)有限公司 | 一种5d纹理网格数据结构 |
CN113052131B (zh) * | 2021-04-20 | 2024-07-16 | 深圳市商汤科技有限公司 | 点云数据处理、自动驾驶车辆控制方法及装置 |
CN113393575B (zh) * | 2021-08-17 | 2021-11-12 | 杭州灵西机器人智能科技有限公司 | 一种基于三维视觉的服饰尺寸测量的方法和*** |
CN113627548A (zh) * | 2021-08-17 | 2021-11-09 | 熵智科技(深圳)有限公司 | 一种平面工件模板匹配方法、装置、介质及计算机设备 |
CN113751824B (zh) * | 2021-08-17 | 2022-12-13 | 熵智科技(深圳)有限公司 | 一种切坡口轨迹自动生成方法、装置、计算机设备及介质 |
CN114119870A (zh) * | 2021-11-23 | 2022-03-01 | 熵智科技(深圳)有限公司 | 有序点云生成四角网格数据方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715509A (zh) * | 2015-03-23 | 2015-06-17 | 江苏大学 | 一种基于散乱点云特征的网格重建方法 |
CN105957068A (zh) * | 2016-04-25 | 2016-09-21 | 中国科学院自动化研究所 | 构建三维重建模型表面的方法和*** |
CN107085865A (zh) * | 2017-05-12 | 2017-08-22 | 杭州电子科技大学 | 应用于有限元分析的四边形分割方法 |
US10712727B2 (en) * | 2016-11-01 | 2020-07-14 | Xometry, Inc. | Methods and apparatus for machine learning predictions of manufacture processes |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111145085B (zh) * | 2019-12-26 | 2023-09-22 | 上海杰图天下网络科技有限公司 | 拣选片元的方法和模型栅格化的方法、***、设备和介质 |
CN111243094B (zh) * | 2020-01-09 | 2021-09-28 | 南京理工大学 | 一种基于点灯法的三维模型精确体素化方法 |
-
2020
- 2020-09-10 CN CN202010944163.0A patent/CN112002015B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715509A (zh) * | 2015-03-23 | 2015-06-17 | 江苏大学 | 一种基于散乱点云特征的网格重建方法 |
CN105957068A (zh) * | 2016-04-25 | 2016-09-21 | 中国科学院自动化研究所 | 构建三维重建模型表面的方法和*** |
US10712727B2 (en) * | 2016-11-01 | 2020-07-14 | Xometry, Inc. | Methods and apparatus for machine learning predictions of manufacture processes |
CN107085865A (zh) * | 2017-05-12 | 2017-08-22 | 杭州电子科技大学 | 应用于有限元分析的四边形分割方法 |
Non-Patent Citations (2)
Title |
---|
《Quad-mesh generation and processing: a survey》;Bommes D等;《Computer Graphics Forum》;20131231;全文 * |
《针对密集点云的快速自适应四边形网格生成算法》;郑永川等;《计算机辅助设计与图形学学报》;20191231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112002015A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112002015B (zh) | 无序点云生成网格数据结构的方法、装置、设备及介质 | |
CN111881892B (zh) | 有序点云5d纹理网格数据结构生成方法、装置、设备及介质 | |
CN109870983B (zh) | 处理托盘堆垛图像的方法、装置及用于仓储拣货的*** | |
CN110443549B (zh) | 一种物流仓库中物品的装箱方案生成方法及*** | |
CN111932570B (zh) | 一种基于网格数据的边缘检测方法、装置、介质及设备 | |
CN113140036B (zh) | 一种三维建模方法、装置、设备及存储介质 | |
CN112396688B (zh) | 一种三维虚拟场景的生成方法及装置 | |
CN113487633A (zh) | 一种点云轮廓提取方法、装置、计算机设备及存储介质 | |
AU2021288667B2 (en) | Control method and apparatus for warehouse robot, and robot and warehouse system | |
CN111598076B (zh) | 一种标签图像中日期检测处理方法及装置 | |
CN112184804A (zh) | 大体积工件高密度焊点定位方法、装置、存储介质及终端 | |
CN115147511A (zh) | 一种边缘构件详图生成方法、装置、设备及可读介质 | |
CN111814774B (zh) | 一种5d纹理网格数据结构 | |
CN111815691B (zh) | 一种网格数据结构的邻域访问方法、装置、设备及介质 | |
CN111476524B (zh) | 一种基于人工智能的成品出库用货品拣货方法、***、装置及可读存储介质 | |
CN111507430B (zh) | 基于矩阵乘法的特征编码方法、装置、设备及介质 | |
JP7352706B2 (ja) | 貨物計数方法及び装置、コンピュータ装置、並びに記憶媒体 | |
CN113159103A (zh) | 图像匹配方法、装置、电子设备以及存储介质 | |
CN111260723B (zh) | 棒材的质心定位方法及终端设备 | |
CN111191759B (zh) | 一种二维码的生成方法和基于gpu的定位、解码方法 | |
CN114841905A (zh) | 点云与图像的融合方法、装置及服务器 | |
CN114119407A (zh) | 四角网格数据的去噪方法、装置、设备及存储介质 | |
CN112633266A (zh) | 染色体簇分割方法、***和存储介质 | |
WO2024120172A1 (zh) | 目标物定位方法、装置、设备和存储介质 | |
CN114119870A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230915 Address after: Room 1726, Building 1, Rongsheng Business Center, No. 135 Wangdun Road, Suzhou Industrial Park, Suzhou City, Jiangsu Province, 215000 Patentee after: Suzhou Pavel Intelligent Technology Co.,Ltd. Address before: 518034 703, 7th floor, Zhongdian Difu building, Zhenhua Road, Fuqiang community, Huaqiang North Street, Futian District, Shenzhen City, Guangdong Province Patentee before: SHANGZHI TECHNOLOGY (SHENZHEN) Co.,Ltd. |