CN109753974B - 物体旋转角度的检测方法、装置及电子设备 - Google Patents

物体旋转角度的检测方法、装置及电子设备 Download PDF

Info

Publication number
CN109753974B
CN109753974B CN201811534625.0A CN201811534625A CN109753974B CN 109753974 B CN109753974 B CN 109753974B CN 201811534625 A CN201811534625 A CN 201811534625A CN 109753974 B CN109753974 B CN 109753974B
Authority
CN
China
Prior art keywords
contour
point
target object
edge
edge line
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
Application number
CN201811534625.0A
Other languages
English (en)
Other versions
CN109753974A (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.)
Goertek Inc
Original Assignee
Goertek Inc
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 Goertek Inc filed Critical Goertek Inc
Priority to CN201811534625.0A priority Critical patent/CN109753974B/zh
Publication of CN109753974A publication Critical patent/CN109753974A/zh
Application granted granted Critical
Publication of CN109753974B publication Critical patent/CN109753974B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种物体旋转角度的检测方法、装置及电子设备。该方法包括:根据包含目标物体的第一图像,获取目标物体的轮廓点序列;根据轮廓点序列以及预设的轮廓边线数目,获取目标物体的每条轮廓边线的边线信息;根据预设的参考边线信息以及目标物体的每条轮廓边线的边线信息,确定目标物体的旋转角度。

Description

物体旋转角度的检测方法、装置及电子设备
技术领域
本发明涉及物体检测技术领域,更具体地,涉及一种物体旋转角度的检测方法、装置及电子设备。
背景技术
通过人工智能设备(例如机器人)参与设备制造的智能制造技术日渐发展,应用需求也随之增长。而在智能制造中,通过人工智能设备自动获取物体的姿态信息并根据物体的姿态信息判断物体状态的应用场景非常广泛,例如,判断产品是否合格、零件是否组装完成、标签是否出现打印错误等。而获取物体旋转角度是获取物体的姿态信息中非常关键的环节。
目前,通常是将获取的包含物体的实物图像与未发生旋转的物体的样本图像(如图1所示),通过遍历法、傅里叶变化法、图像金字塔转换法等方法进行处理,实现自动获取物品旋转角度,但是处理过程中需要遍历所有可能的旋转角度(例如,负180度到正180度),涉及的计算量较大,耗时较长,效率较低,并不适合设备制造的实际应用场景。
因此,在实际应用中一般采用固定夹具固定物品,使得物品具有固定的物品旋转角度,从而人工智能设备就无需自动获取物体旋转角度,不必考虑物品旋转角度带来的影响,但是,相应地限制了人工智能设备在实际场景中应用,降低设备制造的效率。
发明内容
本发明的一个目的是提供一种用于检测物体旋转角度的新技术方案。
根据本发明的第一方面,提供了一种物体旋转角度的检测方法,其中,包括:
根据包含目标物体的第一图像,获取所述目标物体的轮廓点序列;
根据所述轮廓点序列以及预设的轮廓边线数目,获取所述目标物体的每条轮廓边线的边线信息;
根据预设的参考边线信息以及所述目标物体的每条轮廓边线的边线信息,确定所述目标物体的旋转角度。
可选地,所述轮廓点序列中包括所述目标物体的轮廓边线上以预设的排列次序依次排列的轮廓点,每个所述轮廓点具有对应的位置坐标;
所述根据包含目标物体的第一图像,获取所述目标物体的轮廓点序列的步骤包括:
根据预设的图像识别方向,对所述第一图像进行识别处理,获取与所述预设的图像识别方向对应的轮廓点子序列,以得到包括所述轮廓点子序列的所述轮廓点序列;
其中,所述轮廓点子序列中包含所述目标物体的对应所述预设的图像识别方向的轮廓边线上的所述轮廓点;所述预设的图像识别方向至少包括从左往右、从上往下、从右往左以及从下往上其中之一。
可选地,所述轮廓点序列中包括所述目标物体的轮廓边线上以预设的排列次序依次排列的轮廓点,每个所述轮廓点具有对应的位置坐标;
所述根据包含目标物体的第一图像,获取所述目标物体的轮廓点序列的步骤包括:
根据预设的图像识别方向,对所述第一图像进行识别处理,获取与所述预设的图像识别方向对应的轮廓点子序列,以得到包括所述轮廓点子序列的所述轮廓点序列;
其中,所述轮廓点子序列中包含所述目标物体的对应所述预设的图像识别方向的轮廓边线上的所述轮廓点;所述预设的图像识别方向至少包括从左往右、从上往下、从右往左以及从下往上其中之一。
进一步可选地,所述根据所述预设的轮廓边线数目,从所述轮廓点序列中获取所述目标物体的、符合所述轮廓边线数目的分界点的步骤包括:
当所述轮廓点序列不包括轮廓点子序列时,重复执行从所述轮廓点序列中获取一个分界点的步骤,直至获取的不同的所述分界点的数目符合所述预设的轮廓边线数目,其中,所述轮廓点子序列为包含所述目标物体的对应预设的图像识别方向的轮廓边线上的所述轮廓点的序列;
当所述轮廓点序列包括多个轮廓点子序列时,分别以每个所述轮廓点子序列作为一个所述轮廓点序列,执行从所述轮廓点序列中获取一个分界点的步骤,直至获取每个所述轮廓点子序列中包括的全部所述分界点,并从每个所述轮廓点子序列中包括的全部所述分界点获取所述符合所述预设的轮廓边线数目的不同的所述分界点。
进一步可选地,所述从所述轮廓点序列中获取一个分界点的步骤包括:在所述轮廓点序列中选取一个所述轮廓点作为起始划分点;
将所述轮廓点序列中排序次序在所述起始划分点之前的所述轮廓点进行线性拟合处理,获取对应的前半部拟合线的拟合信息,以及将所述轮廓点序列中排序次序在所述起始划分点之后的所述轮廓点进行线性拟合处理,获取对应的后半部拟合线的拟合信息;
其中,所述拟合信息至少包括对应的拟合斜率以及拟合截距;
根据所述前半部拟合线的拟合信息,获取所述起始划分点与所述前半部拟合线之间的第一距离,以及根据所述后半部拟合线的拟合信息,获取所述起始划分点与所述后半部拟合线之间的第二距离;
根据所述第一距离以及所述第二距离,在所述轮廓点序列中获取新的起始划分点;
根据所述新的起始划分点,重复执行上述获取前半部拟合线以及后半部拟合线的拟合信息、获取第一距离以及第二距离、获取新的起始划分点的步骤,直至获取满足预设的分界点条件的所述起始划分点作为所述分界点;
其中,所述分界点条件是与所述起始划分点对应的所述第一距离以及所述第二距离之间的差值小于预设的差值阈值。
可选地,所述根据所述第一距离以及所述第二距离,在所述轮廓点序列中获取新的起始划分点的步骤包括:
当所述第一距离大于所述第二距离时,在所述轮廓点序列中选取排序次序在所述起始划分点之前的、符合前移条件的所述轮廓点作为新的起始划分点;
以及,
当所述第一距离小于所述第二距离时,在所述轮廓点序列中选取排序次序在所述起始划分点之后的、符合后移条件的所述轮廓点作为新的起始划分点。
可选地,所述根据所述目标物体的每条所述轮廓边线包括的所述轮廓点,获取所述目标物体的每条轮廓边线的边线信息的步骤包括:
根据每条所述轮廓边线包括作为起点的所述轮廓点以及作为终点的所述轮廓点,确定每条所述轮廓边线的长度;
对每条所述轮廓边线包括的所有的所述轮廓点进行线性拟合,获取所述轮廓边线的斜率;
对每条所述轮廓边线,根据所述轮廓边线的斜率以及与其相邻的所述轮廓边线的斜率,获取轮廓边线与相邻的所述轮廓边线的夹角。
可选地,所述边线信息至少包括所述轮廓边线的长度、所述轮廓边线与相邻的所述轮廓边线的夹角以及所述轮廓边线的斜率;
所述参考边线信息至少包括参考边线的长度、所述参考边线与相邻的边线的夹角以及所述参考边线的斜率;
所述根据预设的参考边线信息以及所述目标物体的每条轮廓边线的边线信息,确定所述目标物体的旋转角度的步骤包括:
根据所述目标物体的每条轮廓边线的边线信息,选取所述轮廓边线的长度与所述参考边线的长度相同、并且所述轮廓边线与相邻的所述轮廓边线的夹角和所述参考边线与相邻的边线的夹角相同的所述轮廓边线作为目标轮廓边线;
根据所述目标轮廓边线的斜率与所述参考边线的斜率,确定所述目标物体的旋转角度。
可选地,所述根据所述目标轮廓边线的斜率与所述参考边线的斜率,确定所述目标物体的旋转角度的步骤包括:
根据所述目标轮廓边线的斜率与所述参考边线的斜率,获取参考角度;
以所述参考角度为中心,在预设的角度确定范围内,确定所述目标物体的旋转角度。
根据本发明的第二方面,提供一种物体旋转角度的检测装置,其中,包括:
轮廓点序列获取单元,用于根据包含目标物体的第一图像,获取所述目标物体的轮廓点序列;
边线信息获取单元,用于根据所述轮廓点序列以及预设的轮廓边线数目,获取所述目标物体的每条轮廓边线的边线信息;
旋转角度获取单元,用于根据预设的参考边线信息以及所述目标物体的每条轮廓边线的边线信息,确定所述目标物体的旋转角度。
根据本发明的第三方面,提供一种电子设备,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述电子设备执行本发明的第一方面所述的物体旋转角度的检测方法。
根据本公开的一个实施例,根据包含物体的实物图像获取物体的轮廓点序列,根据轮廓点序列以及预设的轮廓边线数目获取物体的每条轮廓边线信息,根据物体的每条轮廓边线信息以及参考边线信息来确定物体的旋转角度,无需耗费大量处理资源遍历所有可能的旋转角度,就能实时、快速的检测获取物体的旋转角度,适用于设备制造的实际应用场景,提高设备制造的效率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1示出了背景技术中的样品图像和实物图像的例子的示意图。
图2是显示可用于实现本发明的实施例的计算系统的硬件配置的例子的框图。
图3示出了本发明的实施例的物体旋转角度的检测方法的流程图。
图4示出了本发明的实施例的获取第一图像的例子示意图。
图5示出了本发明的实施例的以预设的图像识别方法识别得到的轮廓子序列的例子的示意图。
图6示出了本发明的实施例的选取新的起始划分点的例子的示意图。
图7示出了本发明的实施例的获取参考图像的例子的示意图。
图8示出了本发明的实施例的物体旋转角度的检测装置3000的框图。
图9示出了本发明的实施例的电子设备4000的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图2是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图2所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项物体旋转角度的检测方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
本发明实施例的总体构思,是提供一种检测物体旋转角度的新方案,根据包含物体的实物图像获取物体的轮廓点序列,根据轮廓点序列以及预设的轮廓边线数目获取物体的每条轮廓边线信息,根据物体的每条轮廓边线信息以及参考边线信息来确定物体的旋转角度,无需耗费大量处理资源遍历所有可能的旋转角度,就能实时、快速的检测获取物体的旋转角度,适用于设备制造的实际应用场景,提高设备制造的效率。
<实施例>
在本实施例中,提供一种物体旋转角度的检测方法。该物体是具有任意固定形状的实物,例如,可以是设备制造场景中被制造的产品。
物体旋转角度的检测方法,如图3所示,包括:步骤S2100-S2300。
步骤S2100,根据包含目标物体的第一图像,获取目标物体的轮廓点序列。
在本实施例中,第一图像中包含的目标物体,相对于预设的样本物体可能发生旋转。该样本物体是指与目标物体相同、处于未发生旋转的状态的物体。例如,第一图像中包含的目标物体可以是如图1所示的实物图像中显示的物体,对应的样本物体是图1所示的样本图像中显示的物体。
第一图像可以是仅包含目标物体、去除背景的图像。例如,以目标物体是图1所示的实物图像中显示的物体为例,可以通过对图1所示的实物图像,利用帧差法等图像分离技术进行前景及背景分离,再通过图像去噪等图像处理方法得到完整的前景图作为第一图像,如图4所示。
在本实施例中,可以通过多种方式获取第一图像,例如,通过拍摄目标物体的图像后,进行图像分离处理得到只包含目标物体的前景图像作为第一图像,或者,对第三方设备输入或者本地预先存储的包含目标物体以及背景的图像,进行图像分离处理得到只包含目标物体的前景图像作为第一图像,又或者,可以由第三方设备提供的只包含目标物体、去除背景的图像作为第一图像等等。
目标物体的轮廓点序列是目标物体的轮廓点构成的序列。
例如,轮廓点序列中可以包括目标物体的轮廓边线上以预设的排列次序依次排列的轮廓点,每个轮廓点具有对应的位置坐标。预设的排列次序可以根据具体的应用场景或者应用需求设置,比如,预设的排列次序可以是从左到右升序排序。
在本例中,上述步骤S2100可以包括:
根据预设的图像识别方向,对第一图像进行识别处理,获取与预设的图像识别方向对应的轮廓点子序列,以得到包括轮廓点子序列的轮廓点序列。
轮廓点子序列中包含目标物体的对应预设的图像识别方向的轮廓边线上的轮廓点。
预设的图像识别方向至少包括从左往右、从上往下、从右往左以及从下往上其中之一。
具体地,当预设图像识别方向包括从左往右时,轮廓点序列包括第一轮廓点子序列,第一轮廓点子序列中包括从左往右识别第一图像得到的、以预设的排列次序依次排列的轮廓点;
当预设图像识别方向包括从上往下时,轮廓点序列包括第二轮廓点子序列,第二轮廓点子序列中包括从上往下识别第一图像得到的、以预设的排列次序依次排列的轮廓点;
当预设图像识别方向包括从右往左时,轮廓点序列包括第三轮廓点子序列,第三轮廓点子序列中包括从右往左识别第一图像得到的、以预设的排列次序依次排列的轮廓点;
当预设图像识别方向包括从下往上时,所述轮廓点序列包括第四轮廓点子序列,第四轮廓点子序列中包括从下往上识别第一图像得到的、以预设的排列次序依次排列的轮廓点。
在本例中,预设的图像识别方向可以是上述四个图像识别方向中的一个或者多个,对应的,轮廓点序列中可以包括第一、二、三、四轮廓点子序列中的一个或多个。
以图4所示的第一图像为例,预设的图像识别方向分别是从左往右、从上往下、从右往左以及从下往上时可以识别得到的轮廓边线如图5所示,假设预设的排列次序是从左到右升序排列,对应地,第一、二、三、四轮廓点子序列分别包括构成基于对应的图像识别方向识别得到的轮廓边线的、从左到右升序排列的轮廓点。
在获取目标物体的轮廓点序列之后,进入:
步骤S2200,根据轮廓点序列以及预设的轮廓边线数目,获取目标物体的每条轮廓边线的边线信息。
预设的轮廓边线数目根据可预知的、与目标物体对应的样本物体设置。例如,对于如图4所示的第一图像中包含的目标物体,与其对应的样本物体如图1的样本图像所示的、具有四条边线的物体,对应地,可以设置预设的轮廓边线数目为4。
在一个例子中,步骤S2200可以包括:步骤S2210-S2230。
步骤S2210,根据预设的轮廓边线数目,从轮廓点序列中获取目标物体的、符合轮廓边线数目的分界点。
其中,分界点是目标物体的相邻的两条轮廓边线相交的轮廓点。
在一个具体的例子中,步骤S2210可以包括:步骤S2211-S2212。
步骤S2211,当轮廓点序列不包括轮廓点子序列时,重复执行从轮廓点序列中获取一个分界点的步骤,直至获取的不同的分界点的数目符合预设的轮廓边线数目。
轮廓点子序列为包含目标物体的对应预设的图像识别方向的轮廓边线上的轮廓点的序列。轮廓点序列中不包括轮廓点子序列,是指轮廓点序列中包括的轮廓点不根据预设的图像识别方向区分为不同的轮廓点子序列,轮廓点序列中包括能识别到的目标物体的轮廓边线上所有的轮廓点。在本例中,轮廓点序列中包括的每个轮廓点具有对应的位置坐标,轮廓点序列中包括的轮廓点根据预设的排列次序排列。
具体地,上述从轮廓点序列中获取一个分界点的步骤可以包括:步骤S2010-S2050。
步骤S2010,在轮廓点序列中选取一个轮廓点作为起始划分点。
在本例中,可以随机选取轮廓点序列中任意一个轮廓点作为起始划分点,也可以选取轮廓点序列中排序在中位的轮廓点作为起始划分点。
假设轮廓点序列为C,其中包括n个轮廓点,第i个轮廓点为Ci(i=1,....,n),可以选取轮廓点序列中排序在中位的轮廓点
Figure BDA0001906552800000101
作为起始划分点,当n为奇数时,可以进行取整处理选取
Figure BDA0001906552800000102
作为起始划分点。
步骤S2020,将轮廓点序列中排序次序在起始划分点之前的轮廓点进行线性拟合处理,获取对应的前半部拟合线的拟合信息,以及将轮廓点序列中排序次序在起始划分点之后的轮廓点进行线性拟合处理,获取对应的后半部拟合线的拟合信息。
其中,拟合信息中包括对应的拟合斜率以及拟合截距。此处,拟合斜率是指拟合线的斜率,拟合截距是指拟合线的截距。例如,针对拟合线y=kx+b,其中,k为拟合斜率,b为拟合截距。
继续以步骤S2010中的轮廓点序列C为例,选取轮廓点序列中排序在中位的轮廓点
Figure BDA0001906552800000103
作为起始划分点,对应的,轮廓点序列中排序次序在起始划分点之前的轮廓点为
Figure BDA0001906552800000104
每个轮廓点
Figure BDA0001906552800000105
具有对应的位置坐标(xi,yi),对这些轮廓点
Figure BDA0001906552800000111
进行线性拟合处理可以得到前半部拟合线的拟合信息:
拟合斜率
Figure BDA0001906552800000112
其中,
Figure BDA0001906552800000113
拟合截距
Figure BDA0001906552800000114
在具体应用中,也可以将起始划分点以及轮廓点序列中排序次序在起始划分点之前的轮廓点一并进行线性拟合处理,获取对应的前半部拟合线的拟合信息,对应地,只需将
Figure BDA0001906552800000115
以及
Figure BDA0001906552800000116
代入获取拟合斜率
Figure BDA0001906552800000117
以及拟合截距
Figure BDA0001906552800000118
即可。
类似地,选取轮廓点序列中排序在中位的轮廓点
Figure BDA0001906552800000119
作为起始划分点,轮廓点序列中排序次序在起始划分点之后的轮廓点
Figure BDA00019065528000001110
假设每个轮廓点
Figure BDA00019065528000001111
具有对应的位置坐标(xi,yi),对这些轮廓点
Figure BDA00019065528000001112
进行线性拟合处理可以得到后半部拟合线的拟合信息:
拟合斜率
Figure BDA00019065528000001113
其中,
Figure BDA00019065528000001114
拟合截距
Figure BDA00019065528000001115
在具体应用中,也可以将起始划分点以及轮廓点序列中排序次序在起始划分点之后的轮廓点一并进行线性拟合处理,获取对应的后半部拟合线的拟合信息,对应地,只需将
Figure BDA00019065528000001116
以及
Figure BDA00019065528000001117
代入获取拟合斜率
Figure BDA00019065528000001118
以及拟合截距
Figure BDA00019065528000001119
即可。
应当理解的是,在实际应用中可能会出现获取的前半部拟合线的拟合斜率与后半部拟合线的斜率相同或相近的情况,这就意味着轮廓点序列中的所有轮廓点都落在同一条轮廓边线上,因此,在实际应用时可以不再执行后续步骤,直接将轮廓点序列中的排序最前以及排序最末的两个轮廓点作为分界点。
步骤S2030,根据前半部拟合线的拟合信息,获取起始划分点与前半部拟合线之间的第一距离,以及根据后半部拟合线的拟合信息,获取起始划分点与后半部拟合线之间的第二距离。
继续基于上述步骤S2020中的轮廓点序列C中选取轮廓点序列中排序在中位的轮廓点
Figure BDA0001906552800000121
作为起始划分点的例子,起始划分点
Figure BDA0001906552800000122
的位置坐标为
Figure BDA0001906552800000123
可以获取前半部拟合信息包括拟合斜率k1以及拟合截距b1,后半部拟合信息包括拟合斜率k2以及拟合截距b2,可以获取:
始划分点与前半部拟合线之间的第一距离
Figure BDA0001906552800000124
始划分点与后半部拟合线之间的第二距离
Figure BDA0001906552800000125
步骤S2040,根据第一距离以及第二距离,在轮廓点序列中获取新的起始划分点。
具体地,步骤S2040可以包括:步骤S2041-S2042。
步骤S2041,当所第一距离大于第二距离时,在轮廓点序列中选取排序次序在起始划分点之前的、符合前移条件的轮廓点作为新的起始划分点。
假设如图6所示,轮廓点序列C中包括的轮廓点构成的轮廓边线是图中所示的实线L1和L2,此前选取的起始划分点为A点,对在排序次序在A点之前的轮廓点(在虚线L4左侧、轮廓边线上的轮廓点)的进行线性拟合处理,得到前半部分拟合线是虚线L3,对排序次序在A点之后的轮廓点(在虚线L4右侧、轮廓边线上的轮廓点)进行线性拟合处理,得到后半部分拟合线与实线L2重合。对应的,A点到前半部拟合线的第一距离,明显大于A点到后半部拟合线的第二距离,因此相对于实际的分界点B,新的起始划分点应基于当前的起始划分点A点前移,在排序次序在A点之前的轮廓点中选取。
在本例中,第一距离大于第二距离时,在轮廓点序列中选取排序次序在起始划分点之前的、符合前移条件的轮廓点作为新的起始划分点。
前移条件可以根据具体的应用场景或者应用需求设置。
例如,前移条件可以是与起始划分点的排序次序间隔符合预设的前移步进的轮廓点。该预设的前移步进可以1,也可以是5,以预设的前移步进为5为例,对应的,新的起始划分点是排序次序在起始划分点之前的、与起始划分点的排序次序间隔为5的轮廓点。
或者,前移条件是轮廓点与后半部拟合线之间的距离大于前移阈值,前移阈值根据轮廓点与前半部拟合线之间的距离确定。
具体地,可以根据上述计算第一距离以及第二距离的方法,依次分别计算排序次序在起始划分点
Figure BDA0001906552800000131
之前的每个轮廓点
Figure BDA0001906552800000132
与前半部拟合线之间的距离以及与后半部拟合线之间的距离,假设每个轮廓点
Figure BDA0001906552800000133
的位置坐标为(xi,yi):
Figure BDA0001906552800000134
与前半部拟合线之间的距离
Figure BDA0001906552800000135
Figure BDA0001906552800000136
与后半部拟合线之间的距离
Figure BDA0001906552800000137
前移阈值可以设置为d1′×α(0<α<1),α的取值可以根据具体的应用需求或者应用场景设置,例如设置为0.5;
对应的,新的起始划分点是排序次序在起始划分点之前的、d2′>d1′×α(0<α<1)的轮廓点。
通过设置前移条件是轮廓点与后半部拟合线之间的距离大于前移阈值,可以在起始划分点之前的轮廓点中,精准定位作为新的起始划分点的轮廓点,减少重复获取新的起始划分点的次数,提高处理效率。
步骤S2042,当第一距离小于第二距离时,在轮廓点序列中选取排序次序在起始划分点之后的、符合后移条件的轮廓点作为新的起始划分点。
上述如图6所示的例子中已经详细描述第一距离大于第二距离时应该基于起始划分点前移选取新的起始划分点,因此,对应的,当第一距离小于第二距离时,应当基于当前的起始划分点后后移选取新的起始划分点。
在本例中,第一距离小于第二距离时,在轮廓点序列中选取排序次序在起始划分点之后的、符合后移条件的轮廓点作为新的起始划分点。
后移条件可以根据具体的应用场景或者应用需求设置。
例如,后移条件可以是与起始划分点的排序次序间隔符合预设的前移步进的轮廓点。该预设的后移步进可以是5,对应的,新的起始划分点是排序次序在起始划分点之后的、与起始划分点的排序次序间隔为5的轮廓点。
或者,后移条件是轮廓点与前半部拟合线之间的距离大于后移阈值,后移阈值根据轮廓点与后半部拟合线之间的距离确定。
具体地,可以根据上述计算第一距离以及第二距离的方法,依次分别计算排序次序在起始划分点
Figure BDA0001906552800000141
之后的每个轮廓点
Figure BDA0001906552800000142
与前半部拟合线之间的距离以及与后半部拟合线之间的距离,假设每个轮廓点
Figure BDA0001906552800000143
的位置坐标为(xi,yi):
Figure BDA0001906552800000144
与前半部拟合线之间的距离
Figure BDA0001906552800000145
Figure BDA0001906552800000146
与后半部拟合线之间的距离
Figure BDA0001906552800000147
后移阈值可以设置为d2′×α(0<α<1),α的取值可以根据具体的应用需求或者应用场景设置,例如设置为0.5;
对应的,新的起始划分点是排序次序在起始划分点之后的、d1′>d2′×α(0<α<1)的轮廓点。
通过设置后移条件是轮廓点与前半部拟合线之间的距离大于后移阈值,可以在起始划分点之后的轮廓点中,精准定位作为新的起始划分点的轮廓点,减少重复获取新的起始划分点的次数,提高处理效率。
应当理解的是,在实际应用中,可能会出现第一距离与第二距离相同的情况,此时说明当前的起始划分点已经是实际的分界点,因此,在实际应用时可以不再执行后续步骤,直接将当前的起始划分点作为分界点。
步骤S2050,根据新的起始划分点,重复执行上述获取前半部拟合线以及后半部拟合线的拟合信息、获取第一距离以及第二距离、获取新的起始划分点的步骤,直至获取满足预设的分界点条件的起始划分点作为分界点。
其中,分界点条件是与起始划分点对应的第一距离以及第二距离之间的差值小于预设的差值阈值。
预设的差值阈值可以根据具体的应用场景或者应用需求设置,例如,预设的差值阈值可以是一个预设的极小的常数,比如0.01,或者预设的差值阈值可以是与起始划分点对应的第一距离或者第二距离与预设的系数相乘的乘积值,该预设的系数可以是0-0.1之间的正小数。
在一个例子中,分界点条件是与起始划分点对应的第一距离以及第二距离之间的差值小于第一距离或者第二距离与预设的系数相乘的乘积值,对应的,假设与起始划分点对应的第一距离为d1以及第二距离d2,当|d1-d2|<d1×β或|d1-d2|<d2×β(0<β≤0.1)时,将该起始划分点作为分界点,完成获取一个分界点的步骤。
例如,假设起始划分点是图6所示的B点,显然与B点对应第一距离与第二距离之间的差值小于差值阈值,对应的,将B点作为分界点。
上述步骤S2010-S2050已经详细描述如何从轮廓点序列中获取一个分界点。而轮廓点序列中应包括目标物体中符合预设的轮廓边线数目的分界点,因此,重复执行从轮廓点序列中获取一个分界点的步骤,可以从轮廓点序列中获取符合轮廓边线数目的、不同的分界点。
上述已经说明轮廓点序列中不包括轮廓点子序列时如何获取分界点,而在步骤S2212中,当轮廓点序列包括多个轮廓点子序列时,分别以每个轮廓点子序列作为一个轮廓点序列,执行从轮廓点序列中获取一个分界点的步骤,直至获取每个轮廓点子序列中包括的全部分界点,并从每个轮廓点子序列中包括的全部分界点获取符合预设的轮廓边线数目的不同的分界点。
轮廓点子序列为包含目标物体的对应预设的图像识别方向的轮廓边线上的轮廓点的序列。
例如,如上述以图5所举的例子,预设的图像识别方向包括从左往右、从上往下、从右往左以及从下往上四个方向,对应的,轮廓点序列C中包括第一、二、三、四轮廓点子序列,其中,第一轮廓点子序列C1中包括构成目标物体的轮廓边线E1、E4的轮廓点,第二轮廓点子序列C2中包括构成目标物体的轮廓边线E1、E2的轮廓点,第三轮廓点子序列C3中包括构成目标物体的轮廓边线E3、E4的轮廓点,第四轮廓点子序列C4中包括构成目标物体的轮廓边线E2、E3的轮廓点;
对应的,以第一轮廓点子序列C1作为一个轮廓点序列,可以通过上述从轮廓点序列中获取一个分界点的步骤,获取目标物体的轮廓边线E1、E4的分界点,以此类推,可以以第二轮廓点子序列C2作为一个轮廓点序列获取目标物体的轮廓边线E1、E2的分界点,以第三轮廓点子序列C3作为一个轮廓点序列获取目标物体的轮廓边线E3、E4的分界点,以第四轮廓点子序列C4作为一个轮廓点序列获取目标物体的轮廓边线E2、E3的分界点。
在实际应用中,目标物体可能是复杂的多边形(例如五边形或者六边形),因此每个轮廓点子序列中可能会包括多个分界点,甚至两个轮廓点子序列中包括的分界点有可能重合,因此以每个轮廓点子序列为一个轮廓点序列,重复执行从该轮廓点子序列中获取一个分界点步骤,执行得到该轮廓点序列中包括的所有分界点,而后得到每个轮廓点子序列中包括的全部分界点,从这些分界点中就可以获取符合预设的轮廓边线数目的不同的分界点。
在上述获取从轮廓点序列中获取目标物体的、符合轮廓边线数目的分界点之后,进入:
步骤S2220,根据符合轮廓边线数目的分界点,从轮廓点序列中确定目标物体的每条轮廓边线包括的轮廓点。
分界点是目标物体中相邻的两条轮廓边线相交的轮廓点,对应的,通过符合轮廓边线数目的分界点,可以确定目标物体中任意两条相邻的轮廓边线相交的轮廓点,对应的,从包括目标物体的轮廓边线上以预设的排列次序依次排列的轮廓点的轮廓点序列中,可以确定目标物体的每条轮廓边线包括的轮廓点。
具体的一个例子中,步骤S2220可以包括:步骤S2221-S2222。
步骤S2221,根据分界点的位置坐标,分别选取相邻的两个分界点作为一条轮廓边线的起点以及终点,以此确定目标物体的每条所述轮廓边线的起点以及终点。
例如,如上述以图5所举的例子,第一轮廓点子序列C1中获取的目标物体的轮廓边线E1、E4的分界点,与第二轮廓点子序列C2中获取的目标物体的轮廓边线E1、E2的分界点相邻,由这两个相邻的分界点作为E1的起点以及终点,具体的,轮廓点子序列的排序次序是从左向右升序排序时,第一轮廓点子序列C1中获取的目标物体的轮廓边线E1、E4的分界点是E1的起点,从第二轮廓点子序列C2中获取的目标物体的轮廓边线E1、E2的分界点是E1的终点。
以此类推,可以得到其他三条轮廓边线E2、E3以及E4的起点以及终点。
步骤S2222,根据每条轮廓边线的起点以及终点,从轮廓点序列中确定位置坐标在起点以及终点之间的、该轮廓边线的轮廓点。
位置坐标在一条轮廓边线的起点以及终点之间的轮廓点必然是构成该轮廓边线的点,以此可以确定一条轮廓边线上所有的轮廓点。
例如,如上述以图5所举的例子,第一轮廓点子序列C1中获取的目标物体的轮廓边线E1、E4的分界点是E1的起点,从第二轮廓点子序列C2中获取的目标物体的轮廓边线E1、E2的分界点是E1的终点,对应的,在第一轮廓点子序列C1中轮廓边线E1、E4的分界点之前的以及第二轮廓点子序列C2中轮廓边线E1、E2的分界点之后的轮廓点中去掉重合的轮廓点,得到的就是轮廓边线E1上所有的轮廓点。
在确定目标物体的每条轮廓边线包括的轮廓点之后,进入:
步骤S2230,根据目标物体的每条轮廓边线包括的轮廓点,获取目标物体的每条轮廓边线的边线信息。
其中,边线信息至少包括轮廓边线的长度、轮廓边线与相邻的轮廓边线的夹角以及轮廓边线的斜率。
具体的一个例子中,步骤S2230中可以包括:步骤S2231-S2233。
步骤S2231,根据每条轮廓边线包括作为起点的轮廓点以及作为终点的轮廓点,确定每条轮廓边线的长度。
每个轮廓点具有对应的位置坐标,假设一条轮廓边线E1作为起点的轮廓点的位置坐标是(xs,ys),作为终点的轮廓点的位置坐标是(xe,ye),则这条轮廓边线的长度
Figure BDA0001906552800000181
以此类推,可以得到每条轮廓边线的长度。
步骤S2232,对每条轮廓边线包括的所有的轮廓点进行线性拟合,获取轮廓边线的斜率。
假设一条轮廓边线E1中包括m个轮廓点,每个轮廓点Cj(j=1,...,m)的位置坐标为(xj,yj),轮廓边线E1的斜率
Figure BDA0001906552800000182
其中,
Figure BDA0001906552800000183
以此类推,可以得到每条轮廓边线的斜率。
步骤S2233,对每条轮廓边线,根据轮廓边线的斜率以及与其相邻的轮廓边线的斜率,获取轮廓边线与相邻的轮廓边线的夹角。
假设对于如图5所示的例子中的目标物体的四条轮廓边线E1、E2、E3以及E4,已经获取轮廓边线E1的斜率
Figure BDA0001906552800000184
E2的斜率
Figure BDA0001906552800000185
E3的斜率
Figure BDA0001906552800000186
以及E4的斜率
Figure BDA0001906552800000187
可以得到:
E1与E2的夹角
Figure BDA0001906552800000188
E2与E3的夹角
Figure BDA0001906552800000189
E3与E4的夹角
Figure BDA00019065528000001810
E4与E1的夹角
Figure BDA00019065528000001811
其中,每条轮廓边线均具有两条相邻的轮廓边线,对应的每条轮廓边线具有两个与相邻的轮廓边线的夹角,比如,对于轮廓边线E1,与相邻的轮廓边线的夹角包括θ12和θ41
在获取目标物体的每条轮廓边线的边线信息之后,进入:
步骤S2300,根据预设的参考边线信息以及目标物体的每条轮廓边线的边线信息,确定目标物体的旋转角度。
参考边线信息是用于作为样本参考的参考边线的边线信息。参考边线信息可以根据与目标物体对应的、处于未发生旋转状态的作为样本的样本物体的轮廓边线的信息预先设置。
例如,目标物体是如图1所示的实物图像中显示的物体,样本物体是如图1所示的样本图像中显示的物体,可以如图7所示将样本图像进行图像分离,得到只包括样本物体、去除背景的参考图像,再根据参考图像,以类似前述从第一图像中获取目标物体的每条轮廓边线的边线信息的步骤,从参考图像中获取样本物体目标物体的每条轮廓边线的边线信息后,对应设置参考边线信息。
参考边线信息中可以包括一条或多条作为样本参考的参考边线的边线信息。参考边线信息至少包括参考边线的长度、参考边线与相邻的边线的夹角以及参考边线的斜率。对应地,参考边线信息可以包括一条或多条参考边线的长度、每条参考边线与相邻的边线的夹角以及每条参考边线的斜率。
目标物体的每条轮廓边线的边线信息可以包括该轮廓边线的长度、该轮廓边线与相邻的轮廓边线的夹角以及该轮廓边线的斜率。
根据预设的参考边线信息以及目标物体的每条轮廓边线的边线信息,确定目标物体的旋转角度,无需耗费大量处理资源遍历所有可能的旋转角度,便可以实时、快速的检测获取物体的旋转角度,适用于设备制造的实际应用场景,提高设备制造的效率。
在一个例子中,每条轮廓边线的边线信息至少包括该轮廓边线的长度、该轮廓边线与相邻的轮廓边线的夹角以及该轮廓边线的斜率;参考边线信息至少包括参考边线的长度、参考边线与相邻的边线的夹角以及参考边线的斜率;步骤S2300可以包括:步骤S2310-S2320。
步骤S2310,根据目标物体的每条轮廓边线的边线信息,选取轮廓边线的长度与参考边线的长度相同、并且轮廓边线与相邻的轮廓边线的夹角和参考边线与相邻的边线的夹角相同的轮廓边线作为目标轮廓边线。
在实际应用中,参考边线信息中可以包括多条参考边线的边线信息,对应地,可以根据参考边线信息中包括的每条参考边线的长度、该参考边线与相邻的边线的夹角确定对应的目标轮廓边线,得到多条目标轮廓边线,以提高后续步骤中确定目标物体的旋转角度的精准度。
此外,在实际应用中,参考边线信息中可以仅包括参考边线与一条相邻的边线的夹角,或者,轮廓边线的边线信息中也可以仅包括该轮廓边线与一条相邻的轮廓边线的夹角,相应降低比对轮廓边线与相邻的轮廓边线的夹角和参考边线与相邻的边线的夹角所耗费的处理资源,提高处理效率。
步骤S2320,根据目标轮廓边线的斜率与参考边线的斜率,确定目标物体的旋转角度。
在本例中,可以根据目标轮廓边线的斜率与参考边线的斜率,计算目标轮廓边线相对参考边线的夹角作为目标物体的旋转角度。具体地,假设目标轮廓边线的斜率是kt,参考边线的斜率是kr,可以得到目标物体的旋转角度θ=arctan(kt)-arctan(kr)或θ=π-(arctan(kt)-arctan(kr))。
在对目标物体的旋转物体的精准度具有更高要求的场景中,步骤S2320可以包括:步骤S2321-S2322。
步骤S2321,根据目标轮廓边线的斜率与参考边线的斜率,获取参考角度。
假设目标轮廓边线的斜率是kt,参考边线的斜率是kr,可以得到目标物体的旋转角度θr=arctan(kt)-arctan(kr)或θr=π-(arctan(kt)-arctan(kr))。
步骤S2322,以参考角度为中心,在预设的角度确定范围内,确定目标物体的旋转角度。
预设的角度确定范围可以根据具体应用场景或者应用需求设置,例如,预设的角度确定范围可以设置以参考角度为中心的±5°范围。
以参考角度为中心,预设的角度确定范围确定目标物体的旋转角度,是在以参考角度为中心的较小的角度确定范围内,将目标物体与样本物体进一步细化比对确定最终的目标物体的旋转角度,具体的比对方法可以遍历以参考角度为中心的预设的角度确定范围内的所有角度作为目标物体的旋转物体来评估与实际样本物体之间的误差,选取误差最小的角度作为最终的目标物体的旋转角度。
只在以参考角度为中心的较小的角度确定范围内确定目标物体的旋转角度,无需耗费大量处理资源遍历所有可能的旋转角度,在缩小角度确定范围的基础上提高目标物体的旋转角度的精准度,实现快速、精准地获取目标物体的旋转角度。
<物体旋转角度的检测装置>
在本实施例中,还提供中物体旋转角度的检测装置3000,如图8所示,包括:轮廓点序列获取单元3100、边线信息获取单元3200以及旋转角度获取单元3300,用于实施本实施例中提供的物体旋转角度的检测方法,在此不再赘述。
轮廓点序列获取单元3100,用于根据包含目标物体的第一图像,获取目标物体的轮廓点序列。
可选地,轮廓点序列中包括目标物体的轮廓边线上以预设的排列次序依次排列的轮廓点,每个轮廓点具有对应的位置坐标;
轮廓点序列获取单元3100包括:
用于根据预设的图像识别方向,对所述第一图像进行识别处理,获取与所述预设的图像识别方向对应的轮廓点子序列,以得到包括所述轮廓点子序列的所述轮廓点序列的装置;
其中,所述轮廓点子序列中包含所述目标物体的对应所述预设的图像识别方向的轮廓边线上的所述轮廓点;所述预设的图像识别方向至少包括从左往右、从上往下、从右往左以及从下往上其中之一。
边线信息获取单元3200,用于根据所述轮廓点序列以及预设的轮廓边线数目,获取所述目标物体的每条轮廓边线的边线信息。
可选地,边线信息获取单元3200包括:
用于根据所述预设的轮廓边线数目,从所述轮廓点序列中获取所述目标物体的、符合所述轮廓边线数目的分界点的装置;
其中,所述分界点是所述目标物体的相邻的两条所述轮廓边线相交的所述轮廓点;
用于根据所述符合所述轮廓边线数目的分界点,从所述轮廓点序列中确定所述目标物体的每条所述轮廓边线包括的所述轮廓点的装置;
用于根据所述目标物体的每条所述轮廓边线包括的所述轮廓点,获取所述目标物体的每条轮廓边线的边线信息的装置;
其中,所述边线信息至少包括所述轮廓边线的长度、所述轮廓边线与相邻的所述轮廓边线的夹角以及所述轮廓边线的斜率。
进一步可选地,所述用于根据所述预设的轮廓边线数目,从所述轮廓点序列中获取所述目标物体的、符合所述轮廓边线数目的分界点的装置包括:
当所述轮廓点序列不包括轮廓点子序列时,重复执行从所述轮廓点序列中获取一个分界点的步骤,直至获取的不同的所述分界点的数目符合所述预设的轮廓边线数目,其中,所述轮廓点子序列为包含所述目标物体的对应预设的图像识别方向的轮廓边线上的所述轮廓点的序列;
当所述轮廓点序列包括多个轮廓点子序列时,分别以每个所述轮廓点子序列作为一个所述轮廓点序列,执行从所述轮廓点序列中获取一个分界点的步骤,直至获取每个所述轮廓点子序列中包括的全部所述分界点,并从每个所述轮廓点子序列中包括的全部所述分界点获取所述符合所述预设的轮廓边线数目的不同的所述分界点。
可选地,上述从所述轮廓点序列中获取一个分界点的步骤包括:
在所述轮廓点序列中选取一个所述轮廓点作为起始划分点;
将所述轮廓点序列中排序次序在所述起始划分点之前的所述轮廓点进行线性拟合处理,获取对应的前半部拟合线的拟合信息,以及将所述轮廓点序列中排序次序在所述起始划分点之后的所述轮廓点进行线性拟合处理,获取对应的后半部拟合线的拟合信息;
其中,所述拟合信息至少包括对应的拟合斜率以及拟合截距;
根据所述前半部拟合线的拟合信息,获取所述起始划分点与所述前半部拟合线之间的第一距离,以及根据所述后半部拟合线的拟合信息,获取所述起始划分点与所述后半部拟合线之间的第二距离;
根据所述第一距离以及所述第二距离,在所述轮廓点序列中获取新的起始划分点;
根据所述新的起始划分点,重复执行上述获取前半部拟合线以及后半部拟合线的拟合信息、获取第一距离以及第二距离、获取新的起始划分点的步骤,直至获取满足预设的分界点条件的所述起始划分点作为所述分界点;
其中,所述分界点条件是与所述起始划分点对应的所述第一距离以及所述第二距离之间的差值小于预设的差值阈值。
进一步可选地,上述根据所述第一距离以及所述第二距离,在所述轮廓点序列中获取新的起始划分点的步骤包括:
当所述第一距离大于所述第二距离时,在所述轮廓点序列中选取排序次序在所述起始划分点之前的、符合前移条件的所述轮廓点作为新的起始划分点;
以及,
当所述第一距离小于所述第二距离时,在所述轮廓点序列中选取排序次序在所述起始划分点之后的、符合后移条件的所述轮廓点作为新的起始划分点。
可选地,所述用于根据所述符合所述轮廓边线数目的分界点,从所述轮廓点序列中确定所述目标物体的每条所述轮廓边线包括的所述轮廓点的装置还用于:
根据所述分界点的位置坐标,分别选取相邻的两个所述分界点作为一条所述轮廓边线的起点以及终点,以此确定所述目标物体的每条所述轮廓边线的起点以及终点;
根据每条所述轮廓边线的起点以及终点,从所述轮廓点序列中确定位置坐标在所述起点以及所述终点之间的、所述轮廓边线包括的所述轮廓点。
可选地,用于根据所述目标物体的每条所述轮廓边线包括的所述轮廓点,获取所述目标物体的每条轮廓边线的边线信息的装置还用于:
根据每条所述轮廓边线包括作为起点的所述轮廓点以及作为终点的所述轮廓点,确定每条所述轮廓边线的长度;
对每条所述轮廓边线包括的所有的所述轮廓点进行线性拟合,获取所述轮廓边线的斜率;
对每条所述轮廓边线,根据所述轮廓边线的斜率以及与其相邻的所述轮廓边线的斜率,获取轮廓边线与相邻的所述轮廓边线的夹角。
旋转角度获取单元3300,用于根据预设的参考边线信息以及所述目标物体的每条轮廓边线的边线信息,确定所述目标物体的旋转角度。
可选地,所述边线信息至少包括所述轮廓边线的长度、所述轮廓边线与相邻的所述轮廓边线的夹角以及所述轮廓边线的斜率;所述参考边线信息至少包括参考边线的长度、所述参考边线与相邻的边线的夹角以及所述参考边线的斜率;
所述旋转角度获取单元3300包括:
用于根据所述目标物体的每条轮廓边线的边线信息,选取所述轮廓边线的长度与所述参考边线的长度相同、并且所述轮廓边线与相邻的所述轮廓边线的夹角和所述参考边线与相邻的边线的夹角相同的所述轮廓边线作为目标轮廓边线的装置;
用于根据所述目标轮廓边线的斜率与所述参考边线的斜率,确定所述目标物体的旋转角度的装置。
可选地,用于根据所述目标轮廓边线的斜率与所述参考边线的斜率,确定所述目标物体的旋转角度的装置还用于:
根据所述目标轮廓边线的斜率与所述参考边线的斜率,获取参考角度;
以所述参考角度为中心,在预设的角度确定范围内,确定所述目标物体的旋转角度。
本领域技术人员应当明白,可以通过各种方式来实现物体旋转角度的检测装置3000。例如,可以通过指令配置处理器来实现物体旋转角度的检测装置3000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现物体旋转角度的检测装置3000。例如,可以将物体旋转角度的检测装置3000固化到专用器件(例如ASIC)中。可以将物体旋转角度的检测装置3000分成相互独立的单元,或者可以将它们合并在一起实现。物体旋转角度的检测装置3000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
<电子设备>
在本实施例中,还提供一种电子设备4000,如图9所示,包括:
存储器4100,用于存储可执行的指令;
处理器4200,用于根据可执行的指令的控制,运行电子设备4000执行本实施例的物体旋转角度的检测方法。
在本实施例中,电子设备4000可以具有各种实体形式,例如,可以是具有存储器以及处理器的单片机、电脑、服务器等,也可以是如图1所示的电子设备1000。
以上已经结合附图和例子说明本实施例中提供的物体旋转角度的检测方法、装置及电子设备,根据包含物体的实物图像获取物体的轮廓点序列,根据轮廓点序列以及预设的轮廓边线数目获取物体的每条轮廓边线信息,根据物体的每条轮廓边线信息以及参考边线信息来确定物体的旋转角度,无需耗费大量处理资源遍历所有可能的旋转角度,就能实时、快速的检测获取物体的旋转角度,适用于设备制造的实际应用场景,提高设备制造的效率。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (11)

1.一种物体旋转角度的检测方法,其特征在于,包括:
根据包含目标物体的第一图像,获取所述目标物体的轮廓点序列;
根据所述轮廓点序列以及预设的轮廓边线数目,获取所述目标物体的每条轮廓边线的边线信息;
根据预设的参考边线信息以及所述目标物体的每条轮廓边线的边线信息,确定所述目标物体的旋转角度,
其中,所述轮廓点序列中包括所述目标物体的轮廓边线上以预设的排列次序依次排列的轮廓点,每个所述轮廓点具有对应的位置坐标;
所述根据包含目标物体的第一图像,获取所述目标物体的轮廓点序列的步骤包括:
根据预设的图像识别方向,对所述第一图像进行识别处理,获取与所述预设的图像识别方向对应的轮廓点子序列,以得到包括所述轮廓点子序列的所述轮廓点序列;
其中,所述轮廓点子序列中包含所述目标物体的对应所述预设的图像识别方向的轮廓边线上的所述轮廓点;所述预设的图像识别方向至少包括从左往右、从上往下、从右往左以及从下往上其中之一。
2.根据权利要求1所述的方法,其特征在于,
所述根据所述轮廓点序列以及预设的轮廓边线数目,获取所述目标物体的每条轮廓边线的边线信息的步骤包括:
根据所述预设的轮廓边线数目,从所述轮廓点序列中获取所述目标物体的、符合所述轮廓边线数目的分界点;
其中,所述分界点是所述目标物体的相邻的两条所述轮廓边线相交的所述轮廓点;
根据所述符合所述轮廓边线数目的分界点,从所述轮廓点序列中确定所述目标物体的每条所述轮廓边线包括的所述轮廓点;
根据所述目标物体的每条所述轮廓边线包括的所述轮廓点,获取所述目标物体的每条轮廓边线的边线信息;
其中,所述边线信息至少包括所述轮廓边线的长度、所述轮廓边线与相邻的所述轮廓边线的夹角以及所述轮廓边线的斜率。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预设的轮廓边线数目,从所述轮廓点序列中获取所述目标物体的、符合所述轮廓边线数目的分界点的步骤包括:
当所述轮廓点序列不包括轮廓点子序列时,重复执行从所述轮廓点序列中获取一个分界点的步骤,直至获取的不同的所述分界点的数目符合所述预设的轮廓边线数目,其中,所述轮廓点子序列为包含所述目标物体的对应预设的图像识别方向的轮廓边线上的所述轮廓点的序列;
当所述轮廓点序列包括多个轮廓点子序列时,分别以每个所述轮廓点子序列作为一个所述轮廓点序列,执行从所述轮廓点序列中获取一个分界点的步骤,直至获取每个所述轮廓点子序列中包括的全部所述分界点,并从每个所述轮廓点子序列中包括的全部所述分界点获取所述符合所述预设的轮廓边线数目的不同的所述分界点。
4.根据权利要求3所述的方法,其特征在于,所述从所述轮廓点序列中获取一个分界点的步骤包括:
在所述轮廓点序列中选取一个所述轮廓点作为起始划分点;
将所述轮廓点序列中排序次序在所述起始划分点之前的所述轮廓点进行线性拟合处理,获取对应的前半部拟合线的拟合信息,以及将所述轮廓点序列中排序次序在所述起始划分点之后的所述轮廓点进行线性拟合处理,获取对应的后半部拟合线的拟合信息;
其中,所述拟合信息至少包括对应的拟合斜率以及拟合截距;
根据所述前半部拟合线的拟合信息,获取所述起始划分点与所述前半部拟合线之间的第一距离,以及根据所述后半部拟合线的拟合信息,获取所述起始划分点与所述后半部拟合线之间的第二距离;
根据所述第一距离以及所述第二距离,在所述轮廓点序列中获取新的起始划分点;
根据所述新的起始划分点,重复执行上述获取前半部拟合线以及后半部拟合线的拟合信息、获取第一距离以及第二距离、获取新的起始划分点的步骤,直至获取满足预设的分界点条件的所述起始划分点作为所述分界点;
其中,所述分界点条件是与所述起始划分点对应的所述第一距离以及所述第二距离之间的差值小于预设的差值阈值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一距离以及所述第二距离,在所述轮廓点序列中获取新的起始划分点的步骤包括:
当所述第一距离大于所述第二距离时,在所述轮廓点序列中选取排序次序在所述起始划分点之前的、符合前移条件的所述轮廓点作为新的起始划分点;
以及,
当所述第一距离小于所述第二距离时,在所述轮廓点序列中选取排序次序在所述起始划分点之后的、符合后移条件的所述轮廓点作为新的起始划分点。
6.根据权利要求2所述的方法,其特征在于,
所述根据所述符合所述轮廓边线数目的分界点,从所述轮廓点序列中确定所述目标物体的每条所述轮廓边线包括的所述轮廓点的步骤包括:
根据所述分界点的位置坐标,分别选取相邻的两个所述分界点作为一条所述轮廓边线的起点以及终点,以此确定所述目标物体的每条所述轮廓边线的起点以及终点;
根据每条所述轮廓边线的起点以及终点,从所述轮廓点序列中确定位置坐标在所述起点以及所述终点之间的、所述轮廓边线包括的所述轮廓点。
7.根据权利要求2所述的方法,其特征在于,所述根据所述目标物体的每条所述轮廓边线包括的所述轮廓点,获取所述目标物体的每条轮廓边线的边线信息的步骤包括:
根据每条所述轮廓边线包括作为起点的所述轮廓点以及作为终点的所述轮廓点,确定每条所述轮廓边线的长度;
对每条所述轮廓边线包括的所有的所述轮廓点进行线性拟合,获取所述轮廓边线的斜率;
对每条所述轮廓边线,根据所述轮廓边线的斜率以及与其相邻的所述轮廓边线的斜率,获取轮廓边线与相邻的所述轮廓边线的夹角。
8.根据权利要求1所述的方法,其特征在于,
所述边线信息至少包括所述轮廓边线的长度、所述轮廓边线与相邻的所述轮廓边线的夹角以及所述轮廓边线的斜率;
所述参考边线信息至少包括参考边线的长度、所述参考边线与相邻的边线的夹角以及所述参考边线的斜率;
所述根据预设的参考边线信息以及所述目标物体的每条轮廓边线的边线信息,确定所述目标物体的旋转角度的步骤包括:
根据所述目标物体的每条轮廓边线的边线信息,选取所述轮廓边线的长度与所述参考边线的长度相同、并且所述轮廓边线与相邻的所述轮廓边线的夹角和所述参考边线与相邻的边线的夹角相同的所述轮廓边线作为目标轮廓边线;
根据所述目标轮廓边线的斜率与所述参考边线的斜率,确定所述目标物体的旋转角度。
9.根据权利要求8所述的方法,其特征在于,所述根据所述目标轮廓边线的斜率与所述参考边线的斜率,确定所述目标物体的旋转角度的步骤包括:
根据所述目标轮廓边线的斜率与所述参考边线的斜率,获取参考角度;
以所述参考角度为中心,在预设的角度确定范围内,确定所述目标物体的旋转角度。
10.一种物体旋转角度的检测装置,其特征在于,包括:
轮廓点序列获取单元,用于根据包含目标物体的第一图像,获取所述目标物体的轮廓点序列;
边线信息获取单元,用于根据所述轮廓点序列以及预设的轮廓边线数目,获取所述目标物体的每条轮廓边线的边线信息;
旋转角度获取单元,用于根据预设的参考边线信息以及所述目标物体的每条轮廓边线的边线信息,确定所述目标物体的旋转角度,
其中,所述轮廓点序列中包括所述目标物体的轮廓边线上以预设的排列次序依次排列的轮廓点,每个所述轮廓点具有对应的位置坐标;
所述轮廓点序列获取单元包括:
用于根据预设的图像识别方向,对所述第一图像进行识别处理,获取与所述预设的图像识别方向对应的轮廓点子序列,以得到包括所述轮廓点子序列的所述轮廓点序列的装置;
其中,所述轮廓点子序列中包含所述目标物体的对应所述预设的图像识别方向的轮廓边线上的所述轮廓点;所述预设的图像识别方向至少包括从左往右、从上往下、从右往左以及从下往上其中之一。
11.一种电子设备,其特征在于,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述电子设备执行权利要求1-9所述的物体旋转角度的检测方法。
CN201811534625.0A 2018-12-14 2018-12-14 物体旋转角度的检测方法、装置及电子设备 Active CN109753974B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811534625.0A CN109753974B (zh) 2018-12-14 2018-12-14 物体旋转角度的检测方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811534625.0A CN109753974B (zh) 2018-12-14 2018-12-14 物体旋转角度的检测方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN109753974A CN109753974A (zh) 2019-05-14
CN109753974B true CN109753974B (zh) 2020-09-22

Family

ID=66403819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811534625.0A Active CN109753974B (zh) 2018-12-14 2018-12-14 物体旋转角度的检测方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109753974B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111127558B (zh) * 2019-12-20 2023-06-27 北京理工大学 确定装配体检测角度的方法、装置、电子设备及存储介质
CN113487634B (zh) * 2021-06-11 2023-06-30 中国联合网络通信集团有限公司 关联建筑物高度与面积的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103679702A (zh) * 2013-11-20 2014-03-26 华中科技大学 一种基于图像边缘矢量的匹配方法
CN104463866A (zh) * 2014-12-04 2015-03-25 无锡日联科技有限公司 一种基于轮廓随机采样的局部形状匹配方法
CN105468095A (zh) * 2015-11-12 2016-04-06 联想(北京)有限公司 一种角度检测方法及电子设备
CN108113629A (zh) * 2018-02-01 2018-06-05 艾瑞迈迪医疗科技(北京)有限公司 硬管内窥镜旋转角度测量方法和装置
CN108898632A (zh) * 2018-06-13 2018-11-27 浙江大华技术股份有限公司 一种仪表指针的旋转角度确定方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886029B2 (en) * 2013-12-02 2018-02-06 Daihen Corporation Workpiece processing apparatus and workpiece transfer system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103679702A (zh) * 2013-11-20 2014-03-26 华中科技大学 一种基于图像边缘矢量的匹配方法
CN104463866A (zh) * 2014-12-04 2015-03-25 无锡日联科技有限公司 一种基于轮廓随机采样的局部形状匹配方法
CN105468095A (zh) * 2015-11-12 2016-04-06 联想(北京)有限公司 一种角度检测方法及电子设备
CN108113629A (zh) * 2018-02-01 2018-06-05 艾瑞迈迪医疗科技(北京)有限公司 硬管内窥镜旋转角度测量方法和装置
CN108898632A (zh) * 2018-06-13 2018-11-27 浙江大华技术股份有限公司 一种仪表指针的旋转角度确定方法及装置

Also Published As

Publication number Publication date
CN109753974A (zh) 2019-05-14

Similar Documents

Publication Publication Date Title
CN108182246B (zh) 敏感词检测过滤方法、装置和计算机设备
EP3138046B1 (en) Techniques for distributed optical character recognition and distributed machine language translation
US10559078B2 (en) Object detection
CN108460098B (zh) 信息推荐方法、装置和计算机设备
US20150310290A1 (en) Techniques for distributed optical character recognition and distributed machine language translation
US10452953B2 (en) Image processing device, image processing method, program, and information recording medium
CN109215037B (zh) 目标图像分割方法、装置及终端设备
EP3234865B1 (en) Techniques for providing user image capture feedback for improved machine language translation
WO2017080289A1 (zh) 指纹注册方法、装置及移动终端
CN110460827B (zh) 振镜工作状态的确定方法、装置及计算机存储介质
CN111182367A (zh) 一种视频的生成方法、装置及计算机系统
CN109753974B (zh) 物体旋转角度的检测方法、装置及电子设备
CN109726481B (zh) 一种机器人搭建的辅助方法、装置及终端设备
US20210264635A1 (en) Edge-based three-dimensional tracking and registration method and apparatus for augmented reality, and storage medium
JP2020513627A (ja) インテリジェント盲導方法および装置
CN112306235A (zh) 一种手势操作方法、装置、设备和存储介质
CN111241961A (zh) 人脸检测方法、装置及电子设备
CN109829431B (zh) 用于生成信息的方法和装置
CN110796130A (zh) 用于文字识别的方法、装置及计算机存储介质
CN106951168B (zh) 一种文字处理方法及移动终端
CN117058421A (zh) 基于多头模型的图像检测关键点方法、系统、平台及介质
JP2020525963A (ja) メディア特徴の比較方法及び装置
CN113850239B (zh) 多文档检测方法、装置、电子设备及存储介质
CN107071553B (zh) 一种修改视频语音的方法、装置和计算机可读存储介质
CN107155002B (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