CN106952216A - 一种基于imx6图形处理器的直线检测方法 - Google Patents

一种基于imx6图形处理器的直线检测方法 Download PDF

Info

Publication number
CN106952216A
CN106952216A CN201710187712.2A CN201710187712A CN106952216A CN 106952216 A CN106952216 A CN 106952216A CN 201710187712 A CN201710187712 A CN 201710187712A CN 106952216 A CN106952216 A CN 106952216A
Authority
CN
China
Prior art keywords
image
space
imx6
line detection
gpu
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
CN201710187712.2A
Other languages
English (en)
Other versions
CN106952216B (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.)
Chengdu Aeronautic Polytechnic
Original Assignee
Chengdu Aeronautic Polytechnic
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 Chengdu Aeronautic Polytechnic filed Critical Chengdu Aeronautic Polytechnic
Priority to CN201710187712.2A priority Critical patent/CN106952216B/zh
Publication of CN106952216A publication Critical patent/CN106952216A/zh
Application granted granted Critical
Publication of CN106952216B publication Critical patent/CN106952216B/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Image Analysis (AREA)

Abstract

本发明属于数字图像处理技术领域,公开了一种基于IMX6图形处理器的直线检测方法,该方法利用OpenGL的离屏渲染技术,将图像在帧缓冲对象中进行渲染,并通过CPU读取帧缓冲对象中的数据,从而克服部分GPU处理器不支持几何着色器而无法动态增加顶点的缺点,提高了算法的通用性;利用OpenGL的图像混合技术,将寻找直线的交点问题转化为寻找灰度图像像素值的最大值问题,通过得到的最大值坐标便可以计算出要检测的直线方程。本发明受硬件的制约小,提高了算法的通用性,本发明具有节约开发成本,计算复杂度低,运算速度快的特点。

Description

一种基于IMX6图形处理器的直线检测方法
技术领域
本发明属于计算机视觉领域,具体涉及一种基于IMX6图形处理器的直线检测方法。
背景技术
直线检测技术就是将图像中的一条或几条直线检测出来并进行标定的技术。由于任何图像在微观上都是由许多直线构成,因此许多图像处理功能都可以归结为在图像中对直线进行检测。2016年北京智芯原动科技有限公司发明的“车道直线检测方法及装置”(申请号:201610134621.8),将车道线图像进行二值化处理后,对它的检测问题便能够转化为图像中的直线检测问题。2014年广东工业大学发明的“一种基于直线检测的PCB层数及导线厚度测量方法”(申请号:201410289894.0),通过提取PCB板导线边界计算PCB的层数和导线厚度。一方面,目前大多数的直线提取方法都采用了Hough变换的原理。Hough变换是一种常用的在图像中检测直线的方法,它利用图像空间与参数空间中点与线的对偶性,将图像空间中的直线检测问题转化为参数空间中对点的表决投票问题,参数空间中票数最多的点即为图像空间中需要检测的直线。通过Hough变换检测得到的直线虽然具有相当高的精度,但是其计算量相当大。另一方面,目前大多数的直线提取方法均是在CPU中计算完成。然而,随着图形处理器(Graphics Processing Unit,GPU)的不断发展,图像处理中大批量的计算工作逐渐从CPU转移到了GPU中。由于Hough变换的参数方程为曲线,因此在空间转换的计算中必须逐点进行变换,如果将Hough变换方法移植入GPU中,无法充分发挥GPU的强大性能。
2011年,Marketa Dubska在“PClines–Line Detection Using ParallelCoordinates”一文中提出了利用平行坐标系(parallel coordinates)进行直线检测的方法。与Hough变换一样,这种方法也是将图像空间转变为参数空间并进行投票,但是由于采用了平行坐标系,图像空间中的任意一点映射到参数空间中的结果均为一些直线线段。特别地,在描述线段时只需要提供其两个端点,而不需要逐点进行计算,因此大大提高了运算速度;并且,这种方法更加适合在GPU中进行运算。Marketa Dubska也提出了这种方法的GPU解决方案,通过OpenGL接口,能够使得算法可以全部在GPU中运行。然而,在其实施过程中运用了几何着色器(Geometry Shader)的功能。几何着色器作为顶点着色器(Vertex Shader)和片元着色器(Fragment Shader)的桥梁,可以动态增加顶点数目。但是它作为OpenGL3.0的核心之一只能应用在目前较高档的芯片中,这样必然会带来成本的增加。而目前国内主流的嵌入式芯片中大都采用OpenGL ES2.0接口,例如恩智浦公司的IMX6系列处理器,它们大都不支持几何着色器的功能。
发明内容
本发明所要解决的技术问题是提供一种基于IMX6图形处理器的直线检测方法,该方法受硬件制约小,通用性好,节约开发成本,计算复杂度低,运算速度快,能够满足实时性的要求。
本发明解决上述技术问题的技术方案如下:
一种基于IMX6图形处理器的直线检测方法,包括以下步骤:
(1)在GPU中将输入的图像转化为灰度图,利用sobel算子对所述灰度图进行滤波,得到二值化图像;
(2)分别计算二值化图像中每个像素点和方向的梯度,如果x或y方向的梯度大于预设阈值,则将此像素点作为边界点,并设为1,否则设为0,由此得到边界二值化图;
(3)利用OpenGL中离屏渲染技术,将所述边界二值化图像在帧缓冲对象中进行渲染,并通过CPU读取帧缓冲对象中的数据,分别计算每个边界点的图像空间坐标,并将图像空间坐标映射到平行坐标空间中;
(4)将计算所得的图像空间坐标作为顶点坐标输入到GPU中,得到平行坐标空间中的映射图像;
(5)在平行坐标空间中对映射图像进行投票,找到最大值,并通过得到的最大值对应的坐标计算出待检测的直线方程。
本发明的有益效果是:本发明利用OpenGL的离屏渲染技术,将图像在帧缓冲对象中进行渲染,并通过CPU读取帧缓冲对象中的数据,从而克服部分GPU处理器不支持几何着色器而无法动态增加顶点的缺点,提高了算法的通用性;利用OpenGL的图像混合技术,将寻找直线的交点问题转化为寻找灰度图像像素值的最大值问题,通过得到的最大值坐标便可以计算出要检测的直线方程,并输出结果;该方法受硬件制约小,通用性好,节约开发成本,计算复杂度低,运算速度快,能够满足实时性的要求。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤(5)中对映射图像进行投票的方法为:在GPU中将每个像素点的alpha通道组成灰度图,并定位此灰度图的最亮像素点。
采用上述进一步方案的有益效果是:由于映射图像中均为直线段,因此只需要计算直线段的两个端点,无需计算线段中的每个点,最大限度地减少计算量;并且投票过程利用硬件直接完成,不需要软件参与。
附图说明
图1为方法流程示意图;
图2为图像空间坐标示意图;
图3为平行坐标空间示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明提供了一种基于IMX6图形处理器的直线检测方法,包括以下步骤:
1)二值化图像:将输入的图像转化为灰度图后,利用sobel算子进行滤波,分别计算出图像每个像素点x和y方向的梯度,当x或y方向的梯度大于预设阈值时,则将此像素点作为边界点,并设为1,否则设为0。这步操作在GPU中实现。
2)平行坐标空间映射:利用OpenGL中离屏渲染技术(offscreen rendering),将所得到的二值化图像保存在内存中,利用CPU分别计算每个边界点的图像空间坐标,并将此坐标映射到平行坐标空间中。
图像坐标空间如图2所示,其中(x1,y1)、(x2,y2)和(x3,y3)分别表示图像空间中某一直线上的点,w表示图像宽度,h表示图像高度,图像空间中图像的原点在图像的左上角处。
平行坐标空间如图3所示,其中u为横坐标,v为纵坐标,其原点在屏幕中心处。x轴相当于图像空间中的横坐标,y轴相当于图像空间中的纵坐标,-y轴与图像空间中的纵坐标相反,d为平行坐标之间的距离。(xi',yi'),i=1、2、3分别为图像空间中三个点在平行坐标空间中映射的坐标值,其映射关系为
xi'=xi-w/2
yi'=h/2-yi
3)将计算所得的空间坐标作为顶点(vertex)坐标输入到GPU中,并得到平行坐标空间中的映射图像,利用OpenGL的图像混合技术(Blending),当直线相交时,直线交点处像素的alpha通道会进行迭加,如果将所有像素点的alpha通道数值看为一幅灰度图,则寻找直线的交点就可以转变为寻找这幅灰度图中像素值的最大值。由于映射图像中均为直线段,因此只需要计算直线段的两个端点,无需计算线段中的每个点,最大限度地减少计算量;并且投票过程利用硬件直接完成,不需要软件参与。
4)在平行坐标空间中,根据纵轴的取值,可以将整个空间分为T和S两个子空间,v<0时为T子空间,v>0时为S子空间,如图3所示。根据交点所处的不同子空间,可以分别求出待检测直线方程。假设直线方程为u=mv+b,并且交点坐标为(u′,v′),其中m为直线的斜率,b为直线的截距。则
本发明的直线检测原理为:利用图像坐标空间与平行坐标空间中线与点的对偶关系,将图像空间中的直线检测问题转化为平行坐标空间中对点的表决投票问题。
本发明充分利用了GPU强大的图形处理和计算功能,在IMX6上利用OpenGL接口实现了图像中的直线检测。此方法的创新之处在于:利用OpenGL的离屏渲染技术,通过CPU作为桥梁,克服了部分GPU处理器由于不支持几何着色器而无法动态增加顶点的缺点,此方法适合于大多数基于OpenGL的图形处理器,提高了算法的通用性;充分利用GPU的图形处理功能,自动实现对参数空间的表决投票功能,与Hough变换相比,本发明无需对点逐个进行投票,大大提高了运算速度。
本发明的有益效果是,受硬件制约小,通用性好,节约开发成本,计算复杂度低,运算速度快,能够满足实时性的要求。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于IMX6图形处理器的直线检测方法,其特征在于,包括以下步骤:
(1)在GPU中将输入的图像转化为灰度图,利用sobel算子对所述灰度图进行滤波,得到二值化图像;
(2)分别计算二值化图像中每个像素点和方向的梯度,如果x或y方向的梯度大于预设阈值,则将此像素点作为边界点,并设为1,否则设为0,由此得到边界二值化图;
(3)利用OpenGL中离屏渲染技术,将所述边界二值化图像在帧缓冲对象中进行渲染,并通过CPU读取帧缓冲对象中的数据,分别计算每个边界点的图像空间坐标,并将图像空间坐标映射到平行坐标空间中;
(4)将计算所得的图像空间坐标作为顶点坐标输入到GPU中,得到平行坐标空间中的映射图像;
(5)在平行坐标空间中对映射图像进行投票,找到最大值,并通过得到的最大值对应的坐标计算出待检测的直线方程。
2.根据权利要求1所述的基于IMX6图形处理器的直线检测方法,其特征在于,所述步骤(5)中对映射图像进行投票的方法为:在GPU中将每个像素点的alpha通道组成灰度图,并定位此灰度图的最亮像素点。
CN201710187712.2A 2017-03-27 2017-03-27 一种基于imx6图形处理器的直线检测方法 Active CN106952216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710187712.2A CN106952216B (zh) 2017-03-27 2017-03-27 一种基于imx6图形处理器的直线检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710187712.2A CN106952216B (zh) 2017-03-27 2017-03-27 一种基于imx6图形处理器的直线检测方法

Publications (2)

Publication Number Publication Date
CN106952216A true CN106952216A (zh) 2017-07-14
CN106952216B CN106952216B (zh) 2020-07-28

Family

ID=59472332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710187712.2A Active CN106952216B (zh) 2017-03-27 2017-03-27 一种基于imx6图形处理器的直线检测方法

Country Status (1)

Country Link
CN (1) CN106952216B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109816639A (zh) * 2019-01-05 2019-05-28 西安交通大学 一种基于lsd算法的实时直线段检测系统及方法
CN110619629A (zh) * 2019-09-10 2019-12-27 苏州浪潮智能科技有限公司 一种cpu插座检测方法和设备
CN115350479A (zh) * 2022-10-21 2022-11-18 腾讯科技(深圳)有限公司 渲染处理方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5631982A (en) * 1993-06-10 1997-05-20 International Business Machines Corporation System using parallel coordinates for automated line detection in noisy images
US20090262125A1 (en) * 2008-04-18 2009-10-22 Vasanth Swaminathan Rendering A Multiple Viewpoint Image Into A Single Frame Buffer Using Off-Screen Rendering Surfaces
CN103473814A (zh) * 2013-09-23 2013-12-25 电子科技大学中山学院 一种基于gpu的三维几何图元拾取方法
CN104331885A (zh) * 2014-10-29 2015-02-04 电子科技大学 一种基于投票线聚类的圆形目标检测方法
CN105469057A (zh) * 2015-11-27 2016-04-06 成都神州数码索贝科技有限公司 一种基于hough直线检测和投影的车窗检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5631982A (en) * 1993-06-10 1997-05-20 International Business Machines Corporation System using parallel coordinates for automated line detection in noisy images
US20090262125A1 (en) * 2008-04-18 2009-10-22 Vasanth Swaminathan Rendering A Multiple Viewpoint Image Into A Single Frame Buffer Using Off-Screen Rendering Surfaces
CN103473814A (zh) * 2013-09-23 2013-12-25 电子科技大学中山学院 一种基于gpu的三维几何图元拾取方法
CN104331885A (zh) * 2014-10-29 2015-02-04 电子科技大学 一种基于投票线聚类的圆形目标检测方法
CN105469057A (zh) * 2015-11-27 2016-04-06 成都神州数码索贝科技有限公司 一种基于hough直线检测和投影的车窗检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARKETA DUBSKA,ET AL.: "PClines – Line Detection Using Parallel Coordinates", 《IEEE CONFERENCE ON COMPUTER VISION & PATTERN RECOGNITION》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109816639A (zh) * 2019-01-05 2019-05-28 西安交通大学 一种基于lsd算法的实时直线段检测系统及方法
CN109816639B (zh) * 2019-01-05 2021-04-20 西安交通大学 一种基于lsd算法的实时直线段检测系统及方法
CN110619629A (zh) * 2019-09-10 2019-12-27 苏州浪潮智能科技有限公司 一种cpu插座检测方法和设备
CN110619629B (zh) * 2019-09-10 2022-11-25 苏州浪潮智能科技有限公司 一种cpu插座检测方法和设备
CN115350479A (zh) * 2022-10-21 2022-11-18 腾讯科技(深圳)有限公司 渲染处理方法、装置、设备及介质
WO2024082878A1 (zh) * 2022-10-21 2024-04-25 腾讯科技(深圳)有限公司 渲染处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品

Also Published As

Publication number Publication date
CN106952216B (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
US20220405582A1 (en) Systems and methods for training neural networks with sparse data
US8269775B2 (en) Discarding of vertex points during two-dimensional graphics rendering using three-dimensional graphics hardware
CN101116111B (zh) 使用3d光栅化算法的2d/3d线条渲染
US10121276B2 (en) Infinite resolution textures
US10055883B2 (en) Frustum tests for sub-pixel shadows
US9245363B2 (en) System, method, and computer program product implementing an algorithm for performing thin voxelization of a three-dimensional model
US10540789B2 (en) Line stylization through graphics processor unit (GPU) textures
WO2014025483A1 (en) Gpu-accelerated path rendering
US20150178961A1 (en) System, method, and computer program product for angular subdivision of quadratic bezier curves
WO2015094647A1 (en) Gpu-accelerated path rendering
KR102006584B1 (ko) 레이트 심도 테스팅과 컨서버티브 심도 테스팅 간의 동적 스위칭
CN104050704A (zh) 用于可变分辨率渲染的一致性顶点捕捉
CN106952216A (zh) 一种基于imx6图形处理器的直线检测方法
CN107086027A (zh) 文字显示方法及装置、移动终端及存储介质
US9905037B2 (en) System, method, and computer program product for rejecting small primitives
US8928690B2 (en) Methods and systems for enhanced quality anti-aliasing
CN106408626A (zh) 图形处理系统
CN106485646B (zh) 图形处理系统
US9305370B2 (en) Graphical rendering with implicit surfaces
CN101354793B (zh) 基于图形处理器的实时三维图像平滑处理方法
CN111127590B (zh) 一种二阶贝塞尔曲线绘制方法及装置
US20170330371A1 (en) Facilitating culling of composite objects in graphics processing units when such objects produce no visible change in graphics images
US20230388470A1 (en) Neural network training for implicit rendering
US11468633B1 (en) Methods and systems for tile-based graphics processing
US20240020806A1 (en) System and method for dynamic binning

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