CN103854279A - 用于圆的霍夫变换 - Google Patents

用于圆的霍夫变换 Download PDF

Info

Publication number
CN103854279A
CN103854279A CN201310628827.2A CN201310628827A CN103854279A CN 103854279 A CN103854279 A CN 103854279A CN 201310628827 A CN201310628827 A CN 201310628827A CN 103854279 A CN103854279 A CN 103854279A
Authority
CN
China
Prior art keywords
edge
line
edge pixel
pixel
ballot
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
CN201310628827.2A
Other languages
English (en)
Other versions
CN103854279B (zh
Inventor
B·波伊勒
A·M·斯里帕达拉奥
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.)
Analog Devices Inc
Original Assignee
Analog Devices 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 Analog Devices Inc filed Critical Analog Devices Inc
Publication of CN103854279A publication Critical patent/CN103854279A/zh
Application granted granted Critical
Publication of CN103854279B publication Critical patent/CN103854279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/48Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/582Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20061Hough transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Ophthalmology & Optometry (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Abstract

用于圆的霍夫变换可以用下列方式来实施:通过基于对关注的线投票的相应线中的边缘像素连续识别图像的每条线中的中心候选者而避免对霍夫累加器阵列的随机存取。

Description

用于圆的霍夫变换
技术领域
本发明大致涉及用于检测图像中的圆的***和方法,且更具体地涉及用于圆的霍夫变换。
背景技术
圆形物体的检测对于许多实际应用很重要。例如,其用于诸如自动装配和检验的工业应用中,其中许多组件的形状是圆的。此外,其可用于自动检测在多数欧洲和亚洲国家是圆形的交通标志。圆检测还可用于生物计量应用中,所述应用用于虹膜识别以定位虹膜的内边界和外边界。
一种流行的用于圆检测的图像分析技术是用于圆的霍夫变换。霍夫变换产生图像中线的参数表示;其将实际空间中的图像(其通常以笛卡尔空间坐标为函数指定图像值(例如,亮度和色彩))映射至被适于关注线或曲线的参数横跨的霍夫空间。例如,二维图像中的直线可被映射至二维参数空间上,指定其从坐标系原点的方向和距离且二维图像中的圆可被映射至三维参数空间上,指定圆的中心坐标和半径。
在用于圆的霍夫变换(也被称作标准霍夫变换或SHT)的简单实施中,维持被圆心(xc,yc)和半径r横跨的霍夫空间的三维累加器阵列,且对应于边缘(即,图像参数(诸如亮度、色彩或深度)经历离散变化的线)的实际空间图像中的像素被解析以通过使针对各自元素存储的计数器递增而给累加器阵列的元素“投票”。在最简单的实施方案中,各边缘像素给对应于包括所述像素的潜在圆的所有累加器阵列元素“投票”:例如,查找具有范围从rmin至rmax的半径的圆,具有坐标(x,y)的边缘像素给满足等式(x-xc)2+(y-yc)2=r2(其中rmin≤r≤rmax)的累加器阵列中的所有元素(xc,yc,r)投票。每个边缘像素因此将被映射至霍夫参数空间中的锥形截面上。对于位于实际空间中(即,原始图像中)的相同圆上的边缘点,这些锥形截面在单个点上相交。因此可通过查找累加器阵列中的局部最大值而识别圆。
用于圆的SHT需要针对霍夫累加器阵列的大量执行时间和大存储器,其通常妨碍阵列存储在微处理器或微控制器的内部存储器中。此外,其需频繁随机存取累加器阵列,阻碍将直接存储器存取(DMΑ)及缓存用于典型的嵌入式微控制器和数字信号处理器(DSP)。因此,已提出减小处理和存储器要求的对SHT的不同修改。例如,利用对图像中边缘方向的了解,边缘像素所投票的累加器阵列元素的数量可减至对应于垂直于边缘的线上(或在所述线周围的区域中,以考虑边缘方向的不准确估计)的圆心的那些元素。此外,取代使用三维累加器阵列,可连续使用二维或更低维度阵列。例如,一些技术分两个步骤来检测圆:第一步骤是识别可能的中心且第二步骤是估计每个中心的半径。虽然这些修改可改进霍夫变换算法的性能,但是其通常不足以促进在本地存储器中缓冲累加器阵列。此外,当图像中存在同心圆或弧时,如现有技术中使用的两步骤算法无法高效运行。因此,亟需进一步减小存储器要求和/或执行时间的稳健技术。
发明内容
本发明提供用于圆和/或弧的基于霍夫变换的检测的***和方法,其减少或消除对累加器阵列的随机存取并且由此缩短执行时间。不同实施方案采用两步骤方法,其中第一步,确定圆的中心坐标且第二步,估计对应于每个中心的半径。与现有技术方法不同,第一步骤无需解析所有边缘像素(例如,以所有边缘像素存储在边缘像素缓冲区中的顺序)及针对每个像素确定所述像素所投票的二维累加器阵列中的元素,投票将需要连续存取累加器阵列中的随机位置。而且,其涉及针对潜在的中心候选者逐条线搜索图像。识别特定线中的中心候选者可包括识别对所述特定线(其数量通常明显比图像中的总线数少)投票的边缘像素的线、解析所识别的边缘像素线以对可能的中心的一维累加器阵列投票并及确定对应于中心候选者的一维累加器阵列的最大值。在许多实施方案中,一维累加器阵列适于本地存储器(例如,缓存)并且可被再使用于连续的中心像素线。
在一些实施方案中,投票步骤之前是过滤步骤,其共同分析边缘像素线(不考虑个别边缘像素)以确定其中的边缘像素总数并且基于这个总数消除未超过指定阈值的中心像素线;这个步骤可显著减小投票步骤中的计算总数。过滤步骤和投票步骤都可利用不同的各自边缘方向的柱条(bin)中边缘像素的存储及/或利用x坐标的单独缓冲区中边缘像素坐标的表示和每条线中的边缘像素的数量。这些特征可提供附加效率增益并且进一步减小存储器要求。
因此,在第一方面中,本发明涉及一种用于检测数字图像中的圆的方法。所述方法涉及计算检测图像中的边缘像素和基于与像素相关的边缘角在多个边缘缓冲区中存储检测到的边缘像素的坐标信息。多个边缘缓冲区的每一个可仅存储边缘像素的边缘方向在与所述缓冲区相关的边缘方向的柱条内的边缘像素的坐标信息。共同地,多个边缘缓冲区可提供用于所有可能边缘方向的柱条。在一些实施方案中,坐标信息被存储在针对每个边缘角的两个一维边缘缓冲区中:第一边缘缓冲区存储边缘像素的水平位置,且第二缓冲区存储与图像的每条线相关的边缘像素的累加总数(即,在达到且包括所讨论的线的线中检测到的边缘像素的总数)。
该方法还包括在图像的一条或多条所选线中连续计算识别具有在指定范围内的半径的圆心。这个步骤涉及(i)针对每个边缘角,识别与所选线的距离在半径的指定范围内的边缘像素的线;(ii)解析所识别的边缘像素的线且至少部分基于边缘角和检测到的边缘像素的坐标信息累加来自边缘像素对所选线的投票及(iii)至少部分基于累加投票识别所选线中的中心(及任选地还基于投票阈值和/或圆心的指定总数)。在一些实施方案中,以此方式处理图像的所有线。在其它实施方案中,在识别子集中的每条线的中心之前,通过消除与图像的所述线的距离在半径的指定范围内的边缘像素的各自线内的边缘像素的累加数低于指定正数个边缘方向(例如,一个、两个或更多个边缘方向)的指定阈值的图像的线而选择线的子集。
在一些实施方案中,在一维累加器缓冲区中累加边缘像素对所选线的投票;这个缓冲区可连续再使用于所有所选线。解析针对图像的所选线的所识别的边缘像素线可包括迭代指定范围内的半径并且针对每个迭代确定边缘像素的相关线。所识别的边缘像素的线随后可被解析以通过计算与每个像素相关的中心坐标及递增用于中心坐标的计数器而累加对图像的所选线的投票。在一些实施方案中,该方法还包括针对每个所识别的圆心,通过针对所有边缘角、针对在指定范围内的半径累加来自边缘像素的投票及识别累加投票的最大值而确定相关半径。
在第二个方面中,本发明提供一种用于检测包括所存储的像素阵列的数字图像中的圆的***。该***包括存储器,其用于基于与像素相关的边缘角在多个边缘缓冲区中存储图像中的边缘像素的坐标信息。如上所述,坐标信息可存储在用于每个边缘角的两个一维边缘缓冲区中(其分别存储边缘像素的水平位置和边缘像素的累加总数),且边缘缓冲区可共同提供用于所有可能的边缘方向的柱条,每个个别缓冲区仅存储边缘像素的边缘方向在与所述缓冲区相关的柱条内的边缘像素的坐标信息。该***还包括处理器,其被配置来在图像的一条或多条所选线的每一条中连续及以上述方式基于所存储的坐标信息(和任选地基于投票阈值或圆心的指定总数)识别具有指定范围内的半径的圆心。处理器还可被配置来检测图像中的边缘像素以在存储器中存储坐标信息;(针对指定正数个边缘方向)消除边缘像素的各自线内的边缘像素的累加总数低于指定阈值的图像的线;和/或(以上述方式)针对每个所识别的圆心确定相关半径。在投票期间,处理器可在一维累加器缓冲区中累加来自边缘像素对所选线的投票(例如,其存储在处理器的本地存储器中),一维累加器缓冲区可连续再使用于每条所选线。
附图说明
可从尤其在结合附图进行的下文详细描述中更容易地了解上述内容,其中:
图1是图示根据不同实施方案的圆检测方法的流程图;
图2是图示如在不同实施方案中采用的圆心与边缘像素线之间的关系的图;
图3是更详细地图示根据不同实施方案的图1过滤步骤的流程图;
图4A和图4B是更详细地图示根据不同实施方案的图1投票步骤的流程图;
图5是更详细地图示根据不同实施方案的图1半径估计步骤的流程图;
图6A是图示根据不同实施方案的实施边缘检测方法的示例性通用计算机***的方框图;和
图6B是图示根据不同实施方案的实施边缘检测方法的示例性DSP***的方框图。
具体实施方式
图1提供根据不同实施方案的修改型霍夫变换算法的概述。算法100取得一个图形作为输入,并且提供有关图像中所检测到的圆和/弧的中心坐标和半径的信息作为输出。输出可实质按原样被提供给使用者(例如,以中心坐标和半径的文本列表的形式)或可被进一步处理及例如图示为叠加至图像上的圆轮廓的形式。通常(但不一定),图像的查找限于半径在指定范围内的圆;这个范围取决于特定应用并且避免与在这种情况下太小或太大而不相关的圆的检测相关的不必要计算运算。例如,对于虹膜识别方法,可假设虹膜将被检测的人在与获取图像的相机相距的特定范围的距离内(例如,从5cm至1m的范围);结合人类虹膜的典型大小范围,这个信息便于计算图像中所检测到的虹膜的可能半径的范围。类似地,针对圆形交通标志的检测,关注的半径范围可基于当从合理距离(例如,介于1m与200m之间的距离)查看时的正常大小的交通标志的表观尺寸指定。
如图1中所示,圆检测的第一步骤102涉及解析图像以识别边缘像素。边缘通常对应于像素值(即,与每个像素相关的一个或多个图像参数的值)中的突变梯度或离散跳跃。例如,亮度或色彩可能在物体的边界上突变。此外,用具有深度感测功能的相机获取的图像可能具有与像素相关的深度信息,其中深度对应于成像物体与相机的距离;即使亮度和色彩与背景的变化不大,这种信息仍可用于例如识别前景物体的边界。通常,边缘形成在在至少一个图像参数上形成对比的两个图像区域之间的边界上。但是,在一些应用中,在离散线与(更多或更少均匀)背景之间存在对比度;在这种情况下,线自行构成边缘。可使用本领域技术人员已知的任意多种边缘检测方法(诸如,例如Soble边缘检测或Canny边缘检测)识别边缘像素。这些方法通常提供二进制输入,其中每个像素属于一个边缘或不属于一个边缘。例如,在一些实施方案中,水平滤波器和垂直滤波器应用在图像上且如果一些图像参数的梯度的量级大于指定阈值,那么像素被视作边缘像素。梯度的方向赋予像素的边缘方向。
一旦被识别为边缘像素,所述像素的坐标信息(例如,其行数和列数)存储在缓冲区中,在本文中称作“边缘缓冲区”(步骤104)。如本文中使用,术语“缓冲区”泛指可能在主存储器内实体不同并且单独定址或更一般地逻辑分区的专用存储器区域。因此,多个边缘缓冲区可为单独的存储器模块、单个存储器内的分区或仅为数据结构中的单独条目。为了便于在后续处理阶段中考虑检测到的边缘的方向,边缘像素可根据其所属边缘的方向柱条化并且存储在不同柱条的单独缓冲区中。例如,可使用32个边缘缓冲区,每个对应于11.25°的边缘方向的角度范围,使得缓冲区共同覆盖全360°。(或者,由于最终以相同方式处理相差达180°的边缘方向,所以仅可使用各覆盖11.25°的16个缓冲区。)针对下文讨论的确定性,如图2中所示,下文中边缘方向的特征在于横跨局部垂直于边缘(其对应于与边缘正切的圆的径向)的线与水平轴(即,所述轴)之间的角度α。每个柱条由选自柱条所覆盖的角度范围的α的离散值(例如,所述范围的圆心角)表示。
边缘缓冲区可为一维的并且简单存储所有边缘像素的一系列坐标对(x,y)。或者,坐标信息可存储为不同格式。对于根据本文的方法的不同处理步骤,在两个缓冲区中存储边缘像素坐标是有利的。第一缓冲区(标注为Xbα(其中α指示边缘方向))仅连续列出所有边缘像素的x坐标,例如从图像的第一行中的边缘像素的坐标开始并且从左向右移动,随后继续移动至图像的第二行(且再次从左向右移动)等。第二缓冲区(标注为Ybα[n])针对每行n,存储多达且包括行n的所有行中累加检测到的边缘像素的数量n。用于存储边缘位置的这种技术将相关存储器要求减小达大约一半。全坐标信息(x,y)可简单地从缓冲区Xbα和Ybα[n]中恢复:特定线n中的像素的x坐标(其确定y坐标)可见于Ybα[n-1]所赋予的起始指数与由Ybα[n]赋予的末尾指数之间的Xbα
所存储的边缘像素坐标信息在后续步骤中用于对霍夫空间的累加器阵列投票。概念上,霍夫空间的特征可为大小为M×N×R的三维阵列[xc,yc,r],其中M和N分别是图像中列数和行数,且R是关注范围中的离散半径的数量。但是,不同实施方案采用两步骤方法:在步骤I(步骤106、108)中,通过累加来自关注范围内的所有半径r的边缘像素的投票而确定所有圆的中心坐标(xc,yc)及在步骤II中,针对步骤I中识别的每个中心创建半径r的直方图以估计相应圆的半径(步骤110)。此外,在步骤I中,取代创建中心坐标(xc,yc)的完整M×N阵列[xc,yc]且对其投票,不同实施例介入过滤步骤106,其针对图像中的每条线n确定线是否可能包括一个或多个圆心并且消除答案否定的那些线(如在下文中参考图2和图3更详细说明)。
在过滤步骤106中留存的线被传递至投票阶段108,其中识别潜在中心坐标。这个过程被逐条线(即,连续针对固定值yc)执行,且涉及针对每条线Ic对大小为M的一维累加器阵列投票(步骤112,下文参考图4A和图4B更详细说明)。一维阵列通常小至足以本地存储在例如缓存存储器中,消除在投票过程期间对外部存储器存取的需要。当针对特定线的投票过程完成时,一维阵列可被发送至外部存储器并且保存(步骤114)用于后续处理(例如,确定局部最大值);这种存取固有地是非随机的且因此经由DMA高效地完成。或者,可在单独的数据结构(例如,列出所识别中心的坐标的中心候选者缓冲区)中立即识别(步骤116)并且存储(步骤118)累加器阵列的局部最大值且累加器阵列随后可被抛弃。以任一方式,存储一维累加器阵列的本地缓冲区随后可被再用于下一条线。
基于累加器阵列的局部最大值确定中心候选者可涉及将每个这种最大值的投票数与预定阈值比较并且仅保留超过阈值的那些坐标作为中心候选者。与中心候选者相关的投票数可简单为各自像素上的投票数;或者,在一些实施方案中,投票在围绕所述像素的小型子阵列(例如,在其各自中心上具有中心候选者像素的3×3阵列)内求和,例如以实现中心的子像素准确度。在后一情况中,累加器缓冲区的多(例如,三)条线被保留以确定中心候选者。除通过设阈值识别中心外,一些实施方案事先指定将在图像中被检测的圆的最大数量(下文中标注为T)。在这种情况下,仅保留前T个中心(即,具有最高投票数的中心)。针对特定线识别的中心候选者与存储先前经处理线的所有中心候选者的数据结构比较且如果总数超过T,那么不在前T个范围内的候选者被抛弃或被前T个候选者之一覆盖。
根据不同实施方案的霍夫变换算法的核心是过滤步骤106和投票步骤108,其现将更详细说明。两个步骤通过一次累加来自一行中心候选者的所有相关边缘像素的投票(而非每次一个像素地解析所有边缘像素)及计算每个像素所投票的累加器阵列中的元素而避免随机累加器存取。此外,两个步骤106、108利用基于边缘角α的边缘像素分组。
参考图2,考虑线lc中的圆心Co。对于在rmin与rmax之间变化的圆半径,具有对中心Co投票的边缘角α的所有边缘像素位于线lp0与lp1之间的线段P0P1上,且具有对中心C0投票的边缘角α+180°的所有边缘像素位于线lq0与lq1之间的线段Q0Ql上。可从rmin、rmax和α中计算每个柱条的线数如下:
lpo=lc-rmin·Sinα
lp1=lc-rmax·Sinα
lq0=lc+rmin·Sinα
lq1=lc+rmax·Sinα
(在这个计算中,α通常是代表特定柱条的边缘角。但是,如果被个别柱条覆盖的角度范围大,那么使用这些范围的边界角以确保所有相关边缘像素线被识别可能是有利的。具体地,为了计算lp0和lq0,可使用得到sinα的较小值的边界角且对于lpl和lq1,可使用得到sinα的较大值的边界角,使得线的范围被扩大)。相反地,如果线lc不含一个或多个中心,那么从lp0至lpl及从lq0至lq1的线应含有边缘像素(理论上每个针对各离散α的中心点两个,但是在实践中通常更多,因此每个α值表示边缘方向的范围,且还因为边缘可能具有横跨多个像素的厚度)。由于圆含有具有所有角度的像素,所以每个角度α的情况均为如此,除非圆被部分遮蔽。
如图3中所示,这些观测值可用于将线从累加器阵列(xc,yc)中消除。过滤步骤106大致从选择边缘角α开始(步骤300)且计算角lp0、lp1、lq0及lq1以确定与线Ic中的中心相关(即含边缘像素可对线Ic中的中心投票)的线的范围(步骤302)。接下来,确定这些线范围内的边缘像素的总数(步骤304)。如果如上所述,边缘像素坐标存储在缓冲区Xbα和Ybα[n]中,那么可通过简单计算进行这种确定:线n至线n+k中的边缘像素总数简单为Ybα[n+k]-Ybα[n-1]。在步骤306中,将计算得到的边缘像素的总数与指定阈值比较,且如果未超过阈值,那么线lc被视为无任何中心。阈值将大致较高,边缘方向柱条较大是且其可取决于其它参数,诸如,例如图像分辨率和对比度(其可影响例如像素数中的边缘厚度)和圆检测中误报与漏报之间的预期取舍。在特定实施方案中,例如,通过测试具有已知(例如,手动确定的)圆的图像的不同阈值设定的圆检测算法而实验地设定或调节阈值。如果算法旨在仅检测整圆,那么即使相关线内的像素数低于仅一个角α的阈值,仍可抛弃线lc(步骤308)。另一方面,为了允许不同程度的部分遮蔽,可在两个或更多个角度柱条低于阈值时调节线lc的消除。
图4A图示原则上可如何针对尚未在过滤步骤106期间消除的那些线lc确定中心候选者。与过滤步骤106一样,在选择边缘角α(步骤400)之后,这个过程以识别对累加器的特定线lc投票的每个边缘方向识别边缘像素的线(步骤402)。(当然,无需重新计算这些线的范围,但是lp0、lp1、lq0及lq1可在其在过滤期间确定之后存储(步骤302)且随后在投票步骤108中简单检索。此外,注意可在针对所有α值的初始化步骤期间计算一次(rmin·sinα)和(rmax·sinα)的值,且随后可以简单加法运算针对每个lc计算lp0、lp1、lq0和lq1
在步骤404中,线lp0至lpl和lq0至lq1被解析且其中的每个像素基于其x坐标和线数在线lc的一维累加器阵列中投票。如果边缘像素坐标存储在缓冲区Xbα和Ybα[n]中,解析边缘线涉及首先基于存储在Ybα[n]中的信息计算Xbα中的这些线的指数且随后解析这些指数之间的Xbα。对于每个边缘像素,计算像素在lc的累加器中投票的x坐标xc(步骤406)且递增累加器的相应元素(xc)中的投票计数器(步骤408)。lp0与lp1之间的线lp中具有x坐标xp的边缘像素对lc中具有x坐标xc的像素投票,xc由下列等式赋予:
xc=cp-r·cosα,其中
Figure BDA0000426743930000111
  (1)。
类似地,lq0与lq1之间的线lq中具有x坐标Xq的边缘像素对lc中x坐标xc的像素投票,其由下列等式赋予:
xc=xq+r·cosα,其中  (2)。
在针对特定角度柱条α解析所有线后,针对下一个角度柱条重复过程(步骤410)。由于整圆含有具有实质相等数量的所有角度柱条的边缘像素,所以在一些实施方案中,在移至下一角度柱条之前将投票与阈值比较(步骤412)且将投票低于阈值的lc中的坐标xc从中心候选者组中消除(例如,通过标记其使得其在下一角度柱条被处理时将不被考虑)。在其它实施方案中,为了避免花太多时间检查阈值及/或允许检测部分遮蔽圆,仅在大部分柱条已被处理之后检查阈值。例如,在一些实施方案中,在针对适当阈值检查累加投票之前针对每隔一个角度柱条完成投票。最后,在针对所有角度柱条的投票完成之后,前T个中心候选者的投票可与来自其它线的先前存储的中心候选者的投票比较且组合组的前T个中心可被保留(步骤414)。
图4B图示识别中心候选者的替代方式。这种经修改方法考虑下列事实,即在实践中,根据等式(1)和/或(2)计算r可导致小值α的不准确,因为关注范围(即,rmin与rmax之间)内的多个r值可映射至相同边缘像素线上(由于线的离散性和固有的取整效应)。(在极端情况下,α=0,所有半径映射至相同线上。)一种克服这个问题的方法是循环每个边缘像素的rmin与rmax之间的所有r值并且基于此计算中心的y坐标(而非基于对应于边缘和中心的y坐标的lp和lc计算r)及选择y坐标在当前中心线中的r值。
但是,图4B中的方法更高效。其涉及,针对每条中心线lc和每个边缘角α,循环R迭代中的所有半径,从例如r=rmin(在初始化步骤450中)开始且在每个步骤中递增r达△r(其中Δr=(rmax-rmin)/E)。在每个迭代中,根据
Figure BDA0000426743930000121
从α和当前r值中计算得到具有分数精确度的边缘像素线数
Figure BDA0000426743930000122
(且类似地针对
Figure BDA0000426743930000123
)(步骤452)。这个数字被取整以确定将被解析的边缘像素线lp(或lq)(步骤454)。现可(使用当前循环r值)从xc=xp-δx(orxc=xq+δx)(其中δx=r·cosα)针对线lp(或lq)中的每个边缘像素计算中心像素的中心坐标xc(步骤456)。在每个迭代后,分数线位置递增Δr·sinα(步骤458),其取决于当前分数和α值可能指向或可能不指向下一条边缘像素线。此外,δx被Δr·cosα更新(步骤460)。在完成循环r(及任选地多个或所有α值)后,通过设阈值(步骤412)及/或与先前存储的中心比较从而以与图4B中所描绘的实施方案中的相同方式保留前T个(步骤414)而确定中心。在一些实施方案中,附加验证步骤(未示出)确保不存在彼此太接近的两个中心。
在已识别所有(或预期数量的)圆的中心坐标后,在边缘检测方法100的阶段II中估计每个圆的半径(步骤110)。这个步骤110涉及通过下列步骤创建线lc中具有坐标xc的每个中心的半径(rmin与rmax之间)的直方图:循环所有边缘角α(步骤500)及针对每个α循环所有半径r(步骤502);确定对应于当前r值的边缘像素线lp(或lq)(步骤504);计算lp中对应于xc的点P的x坐标xp(即,xc(i.e.,xp=xc+r·cosα)(步骤506);及累加来自线lp中属于围绕计算得到的xp值的指定范围内的边缘像素的投票(步骤508)。一旦已收集针对所有r和α的投票,即通过查找直方图的最大值而识别圆的半径r(步骤510)。
本文所述的圆检测方法可大致实施在硬件、软件或两者的组合中。例如,在一些实施方案中,如图6Α中所示,其实施在软件中并且由通用计算机执行。计算机600大致包括中央处理器(CPU)602和相关***存储器604、一个或多个非易失性大容量存储装置和相关驱动器606、便于用户互动的输入/输出装置608(例如,键盘、鼠标等)、视需要的网络连接610(例如,用于访问因特网或局域网)和双向***总线612(其它组件通过其彼此通信)。捕获将被分析的图像的相机614或其它装置可经由直接连接发送图像数据至计算机600。或者,图像可存储在例如,磁盘、CD、DVD、USB密钥或其它存储装置或远程定位的服务器上并且经由适当的装置驱动器(例如,磁盘驱动器)606读取或经由网络连接610下载(若适用)。
***存储器604含有指令(概念上图示为模块组),其控制CPU602的操作和其与其它硬件组件的互动。操作***616命令低级、基本***功能(诸如大容量存储装置606的存储器分配、文件管理和操作)的执行。在更高级别下,一个或多个服务应用程序提供用于检测圆和/或弧的计算功能性。这些应用程序可例如包括:通用图像处理应用程序618,其用于过滤、调节或另外预处理图像帧;传统的边缘检测模块620,其用于检索边缘像素信息并且将其存储在边缘像素缓冲区622中;中心识别模块624,其使用线累加器缓冲区626实施过滤步骤108和投票步骤110并且输出一系列圆心627;和半径估计模块628,其根据图1至图5中所示的方法确定每个中心的半径。当然,这些模块可被组合、进一步分区或不同地组织;如本领域技术人员将了解,指令可大致以许多不同方式分组和组织。指令可被编程为任意多种适当的编程语言,包括但不限于C、C++、Basic、Pascal、Fortran或汇编语言。
图6B图示DSP实施作为用于执行本文中所述的方法的另一个示例性***。DSP650包括处理器652和相关本地存储器654,其可包括指令存储器656和数据存储器658以及DMA控制器660,其便于存取外部(例如,晶片外)存储器662,其可为例如DRAM或SDRAM(诸如DDR、DDR2、DDR3、LPDDR或LPDDR2)。外部存储器662可包括将被处理的图像的帧缓冲区672、边缘像素坐标信息的缓冲区674(例如,缓冲区Xbα和Ybα[n])和(在一些实施方案中)二维和三维累加器缓冲区676。本地数据存储器658可包括针对中心线lc的一维累加器缓冲区678、中心候选者缓冲区680和半径直方图缓冲区682。在一些实施方案中,存储在缓冲区674中边缘像素坐标信息被载入本地存储器658中,且图像中圆的确定完全本地完成,无需与外部存储器662的任何数据交换。在其它实施方案中,边缘像素信息根据需要从外部存储器662中获得及/或每当对特定中心线的投票完成时,来自一维本地累加器缓冲区678的数据被写出至外部二维或三维累加器缓冲区674;这种存取固有地是非随机的,且因此在DMA内非常高效。
当然,图6A和图6B中描绘的***实施方案只是实例。一般来说,本文所述的霍夫变换方法可实施在任何通用或专用计算装置上,包括,例如,专用计算机、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或可编程门阵列(PGA)。根据本文的***可被部署为实际上任意类型的计算装置(计算机、平板电脑、“智能电话”、个人数字助理、专用设备等)内的硬件单元或软件模块并且可通过高级应用程序启动或激活(例如,机器视觉应用程序,诸如虹膜识别***)。
本文中采用的术语和表达用作描述的术语和表达且非限制,且无意在使用这些术语和表达时排除所示和所述的特征的或其部分的任意等效物。此外,已描述本发明的特定实施方案,本领域一般技术人员应了解可使用并入本文公开的概念的其它实施方案而不脱离本发明的精神和范畴。例如,根据本文的圆检测方法不一定包括本文所述的所有有利特征和步骤,但可基于其子集实现性能改进。因此,所述实施例将在各个方面仅被视作说明性的且非限制性的。

Claims (22)

1.一种用于检测数字图像中的圆的方法,所述方法包括:
(a)计算检测图像中的边缘像素和基于与所述像素相关的边缘角在多个边缘缓冲区中存储所述检测到的边缘像素的坐标信息;和
(b)在所述图像的至少一条所选线的每一条中通过下列步骤连续计算识别具有在指定范围内的半径的圆心:(i)针对每个边缘角识别与所述所选线的距离在半径的所述指定范围内的所述边缘像素线;(ii)解析所述所识别的边缘像素线,且至少部分基于所述边缘角及所述检测到的边缘像素的所述坐标信息累加来自所述边缘像素对所述所选线的投票;以及(iii)至少部分基于所述累加投票识别所述所选线中的所述中心。
2.根据权利要求1所述的方法,其中所述多个边缘缓冲区的每一个仅存储边缘像素的边缘方向在与所述缓冲区相关的边缘方向的柱条内的所述边缘像素的坐标信息。
3.根据权利要求2所述的方法,其中所述多个边缘缓冲区共同提供用于所有可能边缘方向的柱条。
4.根据权利要求1所述的方法,其中所述坐标信息被存储在用于每个边缘角的两个一维边缘缓冲区中,所述第一边缘缓冲区存储所述边缘像素的水平位置且所述第二缓冲区存储与所述图像的每条线相关的边缘像素的累加总数。
5.根据权利要求1所述的方法,其还包括:在步骤(b)之前,消除与所述图像的所述线的距离在半径的所述指定范围内的边缘像素的各自线内的边缘像素的累加数量低于指定正数个边缘方向的指定阈值的所述图像的线,未消除的线构成步骤(b)的所述所选线。
6.根据权利要求5所述的方法,其中边缘方向的所述指定数量是1。
7.根据权利要求5所述的方法,其中边缘方向的所述指定数量是至少2。
8.根据权利要求1所述的方法,其中在一维累加器缓冲区中累加来自所述边缘像素对所述所选线的所述投票。
9.根据权利要求8所述的方法,其中所述一维累加器缓冲区连续再使用于所述至少一条所选线的每一条。
10.根据权利要求1所述的方法,其中解析所述所识别的边缘像素线包括迭代所述指定范围内的所述半径,且针对每个迭代,确定边缘像素的相关线且解析所述所识别的边缘像素线以通过计算与每个像素相关的中心坐标及递增用于所述中心坐标的计数器而累加对所述图像的所述所选线的投票。
11.根据权利要求1所述的方法,其中所述所选线中的中心还基于投票阈值或圆心的指定总数中的至少一个来识别。
12.根据权利要求1所述的方法,其还包括:针对每个所述所识别的圆心,通过针对所有边缘角、针对在所述指定范围内的所述半径累加来自边缘像素的投票及识别所述累加投票的最大值而确定相关半径。
13.一种用于检测包括所存储的像素阵列的数字图像中的圆的***,所述***包括:
存储器,其用于基于与所述像素相关的边缘角在多个边缘缓冲区中存储所述图像中的边缘像素的坐标信息;和
处理器,其被配置来通过下列方式在所述图像的至少一条所选线的每一条中连续计算识别具有在指定范围内的半径的圆心:(i)针对每个边缘角,识别与所述所选线的距离在半径的所述指定范围内的边缘像素线;(ii)解析所述所识别的边缘像素线且至少部分基于所述边缘角和所述检测到的边缘像素的所述坐标信息累加来自所述边缘像素对所述所选线的投票;和(iii)至少部分基于所述累加投票识别所述所选线中的所述中心。
14.根据权利要求13所述的***,其中所述多个边缘缓冲区的每一个仅存储边缘像素的边缘方向在与所述缓冲区相关的边缘方向的柱条内的所述边缘像素的坐标信息。
15.根据权利要求13所述的***,其中所述多个边缘缓冲区共同提供用于所有可能边缘方向的柱条。
16.根据权利要求13所述的***,其中所述坐标信息被存储在用于每个边缘角的两个一维边缘缓冲区中,所述第一边缘缓冲区存储所述边缘像素的水平位置且所述第二缓冲区存储与所述图像的每条线相关的边缘像素的累加总数。
17.根据权利要求13所述的***,其中所述处理器还被配置来消除与所述图像的所述线的距离在半径的所述指定范围内的边缘像素的各自线内的边缘像素的累加数量低于指定正数个边缘方向的指定阈值的图像的线,未消除的线构成所述所选线。
18.根据权利要求13所述的***,其中所述处理器还被配置来在一维累加器缓冲区中累加来自所述边缘像素对所述所选线的所述投票。
19.根据权利要求18所述的***,其中所述一维累加器缓冲区可连续再使用于所述至少一条所选线的每一条。
20.根据权利要求13所述的***,其中所述处理器还被配置来通过迭代所述指定范围内的所述半径来解析所述所识别的边缘像素线,且针对每个迭代,确定边缘像素的相关线且解析所述所识别的边缘像素线以通过计算与每个像素相关的中心坐标及递增用于所述中心坐标的计数器而累加对所述图像的所述所选线的投票。
21.根据权利要求13所述的方法,其中所述处理器还被配置以还基于投票阈值或圆心的指定总数中的至少一个识别所述所选线中的所述中心。
22.根据权利要求13所述的***,其中所述处理器还被配置来针对每个所述所识别的圆心,通过针对所有边缘角、针对在所述指定范围内的所述半径累加来自边缘像素的投票及识别所述累加投票的最大值而确定相关半径。
CN201310628827.2A 2012-12-03 2013-11-29 用于检测数字图像中的圆的方法和*** Active CN103854279B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/692,539 US9053389B2 (en) 2012-12-03 2012-12-03 Hough transform for circles
US13/692,539 2012-12-03

Publications (2)

Publication Number Publication Date
CN103854279A true CN103854279A (zh) 2014-06-11
CN103854279B CN103854279B (zh) 2017-11-07

Family

ID=49724468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310628827.2A Active CN103854279B (zh) 2012-12-03 2013-11-29 用于检测数字图像中的圆的方法和***

Country Status (4)

Country Link
US (1) US9053389B2 (zh)
EP (1) EP2738711B1 (zh)
KR (1) KR101546590B1 (zh)
CN (1) CN103854279B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106204542A (zh) * 2016-06-29 2016-12-07 上海晨兴希姆通电子科技有限公司 视觉识别方法及***
CN106557759A (zh) * 2016-11-25 2017-04-05 北京小米移动软件有限公司 一种标志牌信息获取方法及装置
WO2020258184A1 (zh) * 2019-06-27 2020-12-30 京东方科技集团股份有限公司 图像检测方法、图像检测装置、图像检测设备及介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443318B2 (en) * 2011-08-30 2016-09-13 Megachips Corporation Line segment and arc detection apparatus
KR101752612B1 (ko) * 2013-07-15 2017-06-29 에이치에프아이 이노베이션 인크. 비디오 코딩을 위한 샘플 적응적 오프셋 프로세싱의 방법
JP6128617B2 (ja) * 2013-07-24 2017-05-17 日本電気株式会社 画像認識装置およびプログラム
CN104282027B (zh) * 2014-10-29 2017-05-10 福州大学 一种基于Hough变换的圆检测方法
WO2016133924A1 (en) * 2015-02-18 2016-08-25 Siemens Healthcare Diagnostics Inc. Image-based tube slot circle detection for a vision system
DE102015205502A1 (de) * 2015-03-26 2016-09-29 Mando Corporation Bildverarbeitungsverfahren und Bildverarbeitungssystem zum Extrahieren verzerrter kreisförmiger Bildelemente
DE102015205505A1 (de) * 2015-03-26 2016-09-29 Mando Corporation Verfahren und Vorrichtung zum Detektieren elliptischer Strukturen in einem Bild
KR101714981B1 (ko) 2016-08-03 2017-03-09 연세대학교 산학협력단 간소화된 허프 변환을 이용하여 템플릿을 검사하기 위한 장치 및 방법
DE102017218430A1 (de) * 2017-10-16 2019-04-18 Zf Friedrichshafen Ag Verfahren zur Erkennung von parametrisierbaren geometrischen Kurven
US11767752B2 (en) 2020-10-02 2023-09-26 Saudi Arabian Oil Company Methodology for automated verification and qualification of sidewall core recovery depth using borehole image logs
CN113516123B (zh) * 2021-05-14 2023-11-24 南京工程学院 一种针对轮胎压印字符的检测识别方法
CN113487589B (zh) * 2021-07-22 2024-04-19 上海嘉奥信息科技发展有限公司 一种亚像素圆心检测方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050105827A1 (en) * 2003-09-09 2005-05-19 Fuji Photo Film Co., Ltd. Method and apparatus for detecting positions of center points of circular patterns
US20070274594A1 (en) * 2006-05-26 2007-11-29 Sony Corporation Outline definition apparatus and outline definition method, and image processing apparatus
WO2009022984A1 (en) * 2007-08-14 2009-02-19 Nanyang Polytechnic Method and system for real time hough transform
US20100200660A1 (en) * 2009-02-11 2010-08-12 Cognex Corporation System and method for capturing and detecting symbology features and parameters

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826311B2 (en) 2001-01-04 2004-11-30 Microsoft Corporation Hough transform supporting methods and arrangements
EP1229486A1 (en) 2001-01-31 2002-08-07 GRETAG IMAGING Trading AG Automatic image pattern detection
US7406212B2 (en) 2005-06-02 2008-07-29 Motorola, Inc. Method and system for parallel processing of Hough transform computations
JP4623172B2 (ja) 2008-09-03 2011-02-02 株式会社デンソー 瞳孔検出装置、瞳孔検出装置用プログラム及び瞳孔検出方法
JP5027783B2 (ja) 2008-11-25 2012-09-19 パナソニック株式会社 円検出装置
WO2012076036A1 (en) 2010-12-11 2012-06-14 Valeo Schalter Und Sensoren Gmbh Method of circle detection in images for round traffic sign identification and vehicle driving assistance device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050105827A1 (en) * 2003-09-09 2005-05-19 Fuji Photo Film Co., Ltd. Method and apparatus for detecting positions of center points of circular patterns
US20070274594A1 (en) * 2006-05-26 2007-11-29 Sony Corporation Outline definition apparatus and outline definition method, and image processing apparatus
WO2009022984A1 (en) * 2007-08-14 2009-02-19 Nanyang Polytechnic Method and system for real time hough transform
US20100200660A1 (en) * 2009-02-11 2010-08-12 Cognex Corporation System and method for capturing and detecting symbology features and parameters

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DINGDING CHANG ET AL: "Curve Detection Using Inverse Hough Transform as a Parameter Optimization Problem", 《電学論C》 *
J. ILLINGWORTH AND J. KITTLER: "A SURVEY OF EFFICIENT HOUGH TRANSFORM METHODS", 《AVC 1987》 *
JOHANNES KNEIP ET AL: "Memory Efficient List Based Hough Transform for Programmable Digital Signal Processors with On-Chip Caches", 《1996 IEEE DIGITAL SIGNAL PROCESSING WORKSHOP》 *
MUHAMMAD U.K. KHAN ET AL: "A Swift and Memory Efficient Hough Transform for Systems with Limited Fast Memory", 《ICIAR 2009》 *
SU CHEN AND HAI JIANG: "Accelerating the Hough Transform with CUDA on Graphics Processing Units", 《PDPTA’11》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106204542A (zh) * 2016-06-29 2016-12-07 上海晨兴希姆通电子科技有限公司 视觉识别方法及***
CN106204542B (zh) * 2016-06-29 2019-04-19 上海晨兴希姆通电子科技有限公司 视觉识别方法及***
CN106557759A (zh) * 2016-11-25 2017-04-05 北京小米移动软件有限公司 一种标志牌信息获取方法及装置
WO2020258184A1 (zh) * 2019-06-27 2020-12-30 京东方科技集团股份有限公司 图像检测方法、图像检测装置、图像检测设备及介质
CN112534469A (zh) * 2019-06-27 2021-03-19 京东方科技集团股份有限公司 图像检测方法、图像检测装置、图像检测设备及介质
US11756224B2 (en) 2019-06-27 2023-09-12 Boe Technology Group Co. Ltd. Circle center detection in imagery
CN112534469B (zh) * 2019-06-27 2024-07-19 京东方科技集团股份有限公司 图像检测方法、图像检测装置、图像检测设备及介质

Also Published As

Publication number Publication date
CN103854279B (zh) 2017-11-07
US9053389B2 (en) 2015-06-09
KR20140071242A (ko) 2014-06-11
US20140153834A1 (en) 2014-06-05
EP2738711B1 (en) 2023-12-27
EP2738711A2 (en) 2014-06-04
KR101546590B1 (ko) 2015-08-21
EP2738711A3 (en) 2015-12-02

Similar Documents

Publication Publication Date Title
CN103854279A (zh) 用于圆的霍夫变换
CN108229314B (zh) 目标人物的搜索方法、装置和电子设备
CN110807385A (zh) 目标检测方法、装置、电子设备及存储介质
CN110838125B (zh) 医学图像的目标检测方法、装置、设备、存储介质
CN108491827B (zh) 一种车辆检测方法、装置及存储介质
Lee et al. Place recognition using straight lines for vision-based SLAM
CN110533955B (zh) 一种确定停车位的方法、终端设备及计算机可读存储介质
KR20180034529A (ko) 차선 인식 모델링 방법, 장치, 저장 매체 및 기기, 및 인식 방법, 장치, 저장 매체 및 기기
WO2006132720A2 (en) Method and system for parallel processing of hough transform computations
CN112115805B (zh) 带双模态难挖掘三元-中心损失的行人重识别方法及***
EP4404148A1 (en) Image processing method and apparatus, and computer-readable storage medium
Yu et al. Traffic sign detection based on visual co-saliency in complex scenes
Krishnan et al. An efficient texture classification algorithm using integrated Discrete Wavelet Transform and local binary pattern features
US11256949B2 (en) Guided sparse feature matching via coarsely defined dense matches
CN109840529B (zh) 一种基于局部敏感置信度评估的图像匹配方法
Rangel et al. Object recognition in noisy RGB-D data using GNG
CN104268550A (zh) 特征提取方法及装置
CN116611678A (zh) 数据处理方法、装置、计算机设备和存储介质
CN116645499A (zh) 边界框的确定方法、装置、设备、存储介质和程序产品
CN116645500A (zh) 边界框的确定方法、装置、设备、存储介质和程序产品
CN113656625B (zh) 一种确定人体空间域的方法、装置及电子设备
CN113516096B (zh) 指静脉roi区域提取方法及装置
Wang et al. Capitalizing on the boundary ratio prior for road detection
CN111091022A (zh) 机器视觉的效能评估方法与***
Ziyu et al. Simple road detection based on vanishing point

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant