CN105844654A - 一种基于Zynq软硬件协同处理的增强现实系统及方法 - Google Patents
一种基于Zynq软硬件协同处理的增强现实系统及方法 Download PDFInfo
- Publication number
- CN105844654A CN105844654A CN201610236522.0A CN201610236522A CN105844654A CN 105844654 A CN105844654 A CN 105844654A CN 201610236522 A CN201610236522 A CN 201610236522A CN 105844654 A CN105844654 A CN 105844654A
- Authority
- CN
- China
- Prior art keywords
- image
- kernel module
- augmented reality
- usb camera
- sdram
- 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.)
- Pending
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于Zynq软硬件协同处理的增强现实系统及方法,包括Zynq主处理器、USB摄像头、USB控制芯片、DDR3SDRAM、SD卡、SDRAM和VGA显示器,主要用于实现增强现实系统的处理与显示。技术方案如下:Zynq主处理器包括处理器系统和FPGA,处理器系统导入标识图像和计算USB摄像头内参数;FPGA对USB摄像头采集的图像进行预处理;然后把预处理结果通过AXI总线传输回处理器系统,计算摄像头的外参数,并把虚拟图像与真实图像进行实时融合,在VGA显示器上进行显示。本发明具有以下有益效果:处理速度较快、实时性较好、处理能力较强、增强用户体验、能降低系统功耗、具有通用性。
Description
技术领域
本发明涉及计算机增强现实领域,特别涉及一种基于Zynq软硬件协同处理的增强现实系统及方法。
背景技术
增强现实(augmented reality,AR)技术是一种真实世界信息和虚拟世界信息“无缝”集成的新技术,是把原本在现实世界的一定时间空间范围内很难体验到的视觉信息和声音等,通过将计算机产生的图形、文字和注释等虚拟三维信息无缝自然地叠加融合到用户所看到的真实世界场景中,从而扩展人类认知和感知世界的能力。
传统的嵌入式增强现实处理系统的架构如下:摄像头采集真实世界图像,ARM处理器对真实世界图像进行预处理,然后进行标识识别、三维注册和虚实融合,最后将渲染后的图像传送到显示器进行实时显示。由于ARM处理器是串行执行处理程序的,对灰度化和边缘检测等步骤处理速度较慢,不容易做到实时处理图像,其实时性不好,处理能力较差,影响用户体验,且程序过大,系统功耗较大,只能适用于一定场合,不具有通用性。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述处理速度较慢、实时性不好、处理能力较差、影响用户体验、系统功耗较大、不具有通用性的缺陷,提供一种处理速度较快、实时性较好、处理能力较强、增强用户体验、能降低系统功耗、具有通用性的基于Zynq软硬件协同处理的增强现实系统及方法。
本发明解决其技术问题所采用的技术方案是:构造一种基于Zynq软硬件协同处理的增强现实系统,所述Zynq主处理器包括处理器系统和FPGA,所述处理器系统和FPGA通过高速AXI总线连接,所述处理器系统包括ARM处理器和DDR3控制器,还包括四个AXI_HP接口、四个AXI_GP接口和一个AXI_ACP接口,所述FPGA包括SDRAM控制器IP内核模块、VGA控制器IP内核模块和图像预处理IP内核模块,所述USB控制芯片与所述USB摄像头连接,所述USB控制芯片还与所述ARM处理器连接,所述DDR3SDRAM通过所述DDR3控制器与所述ARM处理器连接,所述DDR3控制器还通过DMA传输通道连接所述高速AXI总线,所述SD卡与所述ARM处理器连接,所述SDRAM控制器IP内核模块与所述SDRAM连接,所述SDRAM控制器IP内核模块还通过视频直接存储器传输通道连接所述高速AXI总线,所述图像预处理IP内核模块的输入端和输出端均通过视频直接存储器传输通道连接所述高速AXI总线,所述VGA控制器IP内核模块与所述VGA显示器连接,所述VGA控制器IP内核模块还通过视频直接存储器传输通道连接所述高速AXI总线。
本发明还涉及一种利用上述基于Zynq软硬件协同处理的增强现实系统进行增强现实的方法,包括如下步骤:
步骤1:在SD卡中存储Linux系统启动所需的文件,将所述Zynq主处理器的启动方式设置为SD卡启动,上电自启动Linux系统,编写并运行图像预处理IP内核模块的驱动、VGA控制器IP内核模块的驱动和SDRAM控制器IP内核模块的驱动程序,根据Vivado软件给定的对应IP内核模块的物理地址,编写用于对物理地址进行操作的内核驱动程序,运行基于OpenCV的用于交互和显示的Qt显控程序;
步骤2:使用所述USB摄像头采集给定的棋盘格图像,使用OpenCV的摄像头标定程序对所述USB摄像头进行标定,计算得到所述USB摄像头的内参数,在Qt显控程序中选择标识图像并导入所述DDR3SDRAM中,计算所述标识图像的海明码信息,并通过视频直接存储器传输通道存储在所述SDRAM中。
步骤3:利用OpenCV集成的OpenGL生成与所述标识图像对应的三维虚拟信息,并将其通过视频直接存储器传输通道传送到所述SDRAM进行存储;
步骤4:所述ARM处理器实时采集所述USB摄像头中的原始图像,并通过视频直接存储器传输通道将其传输到所述FPGA进行缓存;
步骤5:使用Vivado HLS软件编写图像预处理IP内核模块,并对所述原始图像进行图像预处理得到二次处理图像;所述图像预处理包括对图像进行灰度变换、利用阈值分割进行二值化处理、轮廓检测、对检测出的轮廓进行多边形逼近,找到与所述标识图像相近的四边形作为候选标识区域,记录所述候选标识区域的角点位置;
步骤6:将所述二次处理图像经视频直接存储器传输通道传回所述ARM处理器,在Linux系统下编写基于集成OpenGL的OpenCV的增强现实处理程序,并恢复所述原始图像中标识的正视图,识别步骤5所述候选标识区域中的特殊标识,并对识别出特殊标识的步骤5所述候选标识区域进行位姿估计,得到USB摄像头的外参数;所述USB摄像头的外参数包括旋转矩阵和平移向量;
步骤7:针对识别出特殊标识的步骤5所述候选标识区域,利用视频直接存储器传输通道从所述SDRAM中导入对应的三维虚拟信息,并根据步骤2所述USB摄像头的内参数和步骤6所述的外参数,将对应的虚拟三维信息与所述原始图像进行融合,得到虚实融合的图像;
步骤8:将步骤7所述虚实融合的图像通过视频直接存储器传输通道传输到VGA控制器IP内核模块,所述VGA控制器IP内核模块控制VGA显示器进行显示。
在本发明所述的利用上述基于Zynq软硬件协同处理的增强现实系统进行增强现实的方法中,所述步骤5的具体步骤包括:
5-1)在Vivado HLS软件中编写图像预处理IP内核模块程序,把所述FPGA中缓存的图像转换成Mat类型的图像;
5-2)把Mat类型的图像由三通道的彩色图像转换成单通道的灰度图像;
5-3)利用阈值分割法对所述单通道的灰度图像进行二值化处理,得到二值化图像;
5-4)对所述二值化图像进行轮廓检测,得到包含多边形轮廓的图像;
5-5)利用多边形近似法对多边形轮廓进行多边形逼近,排除不是四边形的多边形轮廓区域;
5-6)计算候选标识区域的角点位置,并把角点位置保存在所述原始图像的数据结尾,作为候选标识位置数据;
5-7)利用Vivado HLS软件对程序图像预处理IP内核模块程序进行流水线优化,对处理速度和占用的资源进行优化,产生RTL级代码,并封装成IP内核模块。
在本发明所述的利用上述基于Zynq软硬件协同处理的增强现实系统进行增强现实的方法中,所述步骤6的具体步骤包括:
6-1)将所述二次处理图像通过视频直接存储器传输通道传送回ARM处理器,对每一个候选标识区域进行透视变换,得到候选标识区域的正方形视图;
6-2)使用Otsu算法对所述候选标识区域进行二值化处理,去掉灰度像素,只留下黑白像素;
6-3)计算所述候选标识区域的正方形视图内部区域的海明码信息,并计算其与SDRAM中存储的标识图像的海明码信息的海明距离,把所述候选标识区域依次顺时针或逆时针旋转90度,重复计算海明距离,若当前最小的海明距离为0,则当前候选标识区域是一个正确的标识区域;
6-4)找到所述正确的标识区域后,调用OpenCV函数按亚像素精度查找角点位置;
6-5)根据所述USB摄像头的内参数和候选标识区域的角点位置,调用OpenCV的函数计算所述USB摄像头的外参数。
实施本发明的基于Zynq软硬件协同处理的增强现实系统及方法,具有以下有益效果:由于使用Zynq主处理器、USB摄像头、USB控制芯片、DDR3SDRAM、SD卡、SDRAM和VGA显示器,Zynq主处理器包括处理器系统和FPGA,处理器系统和FPGA通过高速AXI总线连接,处理器系统包括ARM处理器和DDR3控制器,FPGA集成了28nm低功耗可编程逻辑,内部包含片上高速AXI总线,大大提高了处理速度,降低硬件设计复杂度,由于采用软硬件协同处理,ARM处理器和FPGA分担不同的处理任务,协同工作,这样就能提高系统处理效率,降低功耗,使系统的通用性更好,采用SDRAM保存需要识别的标识图像的海明码信息和对应的三维虚拟信息,在多标识识别和虚实融合时,其更加快捷迅速,用户体验度更好,所以其处理速度较快、实时性较好、处理能力较强、增强用户体验、能降低系统功耗、具有通用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于Zynq软硬件协同处理的增强现实系统及方法一个实施例中的系统的软硬件架构框图;
图2为所述实施例中方法的流程图;
图3为所述实施例中在ARM处理器上运行Linux操作系统,实现各外设和硬件IP内核模块的驱动,利用Qt实现用于交互和显示的图形界面的具体流程图;
图4为所述实施例中使用Vivado HLS软件编写图像预处理IP内核模块,并对原始图像进行图像预处理得到二次处理图像的具体流程图;
图5为所述实施例中计算USB摄像头的外参数的具体流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明基于Zynq的软硬件协同处理的增强现实系统及方法实施例中,其基于Zynq的软硬件协同处理的增强现实系统的软硬件架构框图如图1所示。图1中,该基于Zynq的软硬件协同处理的增强现实系统包括Zynq主处理器、USB摄像头、USB控制芯片、DDR3SDRAM、SD卡、SDRAM和VGA显示器,本实施例中,Zynq主处理器选用的是Xilinx Zynq-7030-FBG484,本实施例中,该Zynq主处理器包括处理器系统和FPGA,上述处理器系统和FPGA通过高速AXI总线连接,该处理器系统包括ARM处理器和DDR3控制器,还包括四个AXI_HP接口、四个AXI_GP接口和一个AXI_ACP接口,AXI_HP接口用于提供直接存储器访问模式的高带宽数据通路,AXI_GP接口与高速AXI总线连接,AXI_GP接口用于实现ARM处理器和FPGA控制命令的传输,AXI_ACP接口与高速AXI总线连接,AXI_ACP接口用于作为FPGA访问ARM处理器的缓存的低延时通路。该FPGA包括SDRAM控制器IP内核模块、VGA控制器IP内核模块和图像预处理IP内核模块。
本实例中USB控制芯片与USB摄像头连接,USB控制芯片还与ARM处理器连接,本实施例中,USB驱动芯片选用的是TI公司的TUSB1210,该USB驱动芯片是一款支持OTG的USB驱动芯片,全面支持USB2.0协议,支持全部USB设备。
本实施例中,所述DDR3SDRAM通过所述DDR3控制器与所述ARM处理器连接,DDR3控制器用于控制DDR3SDRAM存储USB摄像头采集的图像,DDR3控制器还通过DMA传输通道连接高速AXI总线,这样可加快硬盘读写速度,提高数据传输速率,值得一提的是,本实施例中,DDR3SDRAM选用的是两片MT41K128M16JT-125-K,数据总线位宽为32位,总容量为512MB,可以作为ARM处理器的内存运行Linux系统。
本实施例中,SD卡与ARM处理器连接、用于存储Linux系统启动文件和需要识别的标识图像,本实施例中,SD卡选用的是金士顿的16GB的SD卡,文件系统为FAT32,存储Linux启动文件,同时存储要进行识别的标识图像,在系统运行时,保存USB摄像头标定所得到的标定数据。
本实施例中,SDRAM控制器IP内核模块与SDRAM连接,SDRAM控制器IP内核模块用于控制SDRAM存储需要识别的标识图像的海明码信息和对应的三维虚拟信息,值得一提的是,本实施例中,SDRAM选用的是micron公司的MT48LC8M32B2TG,该SDRAM是一款32位的SDRAM,存储容量为256M,该SDRAM作为标识图像和三维虚拟信息的缓存模块。本实施例中,SDRAM控制器IP内核模块还通过视频直接存储器传输通道连接高速AXI总线。
本实施例中,图像预处理IP内核模块的输入端和输出端均通过视频直接存储器传输通道连接高速AXI总线,图像预处理IP内核模块用于对USB摄像头采集的图像依次进行灰度变换、利用阈值进行二值化处理、轮廓检测并对检测出的轮廓进行多边形逼近。值得一提的是,本实施例中,利用高级综合工具Vivado HLS,无需编写RTL级代码,即可实现图像预处理IP内核模块,这样就缩短了开发周期,更利于维护和移植,灵活性较好。
本实施例中,VGA控制器IP内核模块与VGA显示器连接,VGA控制器IP内核模块用于控制VGA显示器对虚实融合后的图像进行显示,VGA控制器IP内核模块还通过视频直接存储器传输通道连接高速AXI总线。本实施例中,VGA显示器最高支持720p@60Hz的视频格式。
本实施例中,FPGA集成了28nm低功耗可编程逻辑,内部包含片上高速AXI总线,大大提高了处理速度,降低硬件设计复杂度,由于采用软硬件协同处理,ARM处理器和FPGA分担不同的处理任务,协同工作,这样就能提高系统处理效率,降低功耗,使系统的通用性更好,采用SDRAM保存需要识别的标识图像的海明码信息和对应的三维虚拟信息,在多标识识别和虚实融合时,其更加快捷迅速,用户体验度更好,所以其处理速度较快、实时性较好、处理能力较强、增强用户体验、能降低系统功耗、具有通用性。
本实施例中,内核空间软件包括:引导程序Boot loader、Linux内核与驱动、板级支持包与图像预处理IP的驱动、SDRAM控制器的驱动和VGA控制器的驱动。用户空间软件包括基于OpenCV的增强现实应用程序和以Qt作为显控界面。
本实施例还涉及一种实现上述基于Zynq的软硬件协同处理的增强现实系统进行增强现实的方法,该方法的流程图如图2所示。图2中,该方法包括如下步骤:
步骤1在ARM处理器上运行Linux操作系统,实现各外设和硬件IP内核模块的驱动,利用Qt实现用于交互和显示的图形界面:本步骤中,细化后具体步骤流程图如图3所示,在SD卡中存储Linux系统启动所需的文件,将Zynq主处理器的启动方式设置为SD卡启动,上电自启动Linux系统,编写并运行图像预处理IP内核模块的驱动、VGA控制器IP内核模块的驱动和SDRAM控制器IP内核模块的驱动程序,根据Vivado软件给定的对应IP内核模块的物理地址,编写用于对物理地址进行操作的内核驱动程序,实现对物理地址的操作,运行基于OpenCV的Qt显控程序,该Qt显控程序用于交互和显示。
步骤2利用USB摄像头采集棋盘格图像,在ARM处理器中对USB摄像头进行标定,计算USB摄像头的内参数,导入一个或多个标识图像并将其存储到DDR3SDRAM中,计算标识图像的海明码信息并将其存储到SDRAM中:本步骤中,使用所述USB摄像头采集给定的棋盘格图像,使用OpenCV的摄像头标定程序对所述USB摄像头进行标定,计算得到所述USB摄像头的内参数,在Qt显控程序中选择标识图像并导入所述DDR3SDRAM中,计算所述标识图像的海明码信息,并通过视频直接存储器传输通道存储在所述SDRAM中。
步骤3利用OpenCV集成的OpenGL生成与标识图像对应的三维虚拟信息,并将其通过视频直接存储器传输通道传送到SDRAM进行存储:本步骤中,利用OpenCV集成的OpenGL生成与标识图像对应的三维虚拟信息,并将该三维虚拟信息通过视频直接存储器传输通道传送到SDRAM进行存储。
步骤4ARM处理器实时采集USB摄像头中的原始图像,并通过视频直接存储器传输通道将其传输到FPGA进行缓存:本步骤中,ARM处理器实时采集USB摄像头中的原始图像(即采集的棋盘格图像),并通过视频直接存储器传输通道将其传输到FPGA进行缓存。
步骤5使用Vivado HLS软件编写图像预处理IP内核模块,并对原始图像进行图像预处理得到二次处理图像:本步骤中,使用Vivado HLS软件编写图像预处理IP内核模块,并对原始图像进行图像预处理得到二次处理图像,值得一提的是,图像预处理包括对图像进行灰度变换、利用阈值分割进行二值化处理、轮廓检测、对检测出的轮廓进行多边形逼近,找到与标识图像相近的四边形作为候选标识区域,记录候选标识区域的角点位置。
步骤6将二次处理图像经视频直接存储器传输通道传回ARM处理器,在Linux系统下编写基于集成OpenGL的OpenCV的增强现实处理程序,并恢复原始图像中标识的正视图,识别步骤5所述候选标识区域中的特殊标识,并对识别出特殊标识的步骤5所述候选标识区域进行位姿估计,得到USB摄像头的外参数:本步骤中,将二次处理图像经视频直接存储器传输通道传回ARM处理器,在Linux系统下编写基于集成OpenGL的OpenCV的增强现实处理程序,并恢复原始图像中标识的正视图,识别步骤5所述候选标识区域中的特殊标识,并对识别出特殊标识的步骤5所述候选标识区域进行位姿估计,得到USB摄像头的外参数。本实施例中,USB摄像头的外参数包括旋转矩阵和平移向量。
步骤7针对识别出特殊标识的步骤5所述候选标识区域,从SDRAM中提取对应的三维虚拟信息,并根据USB摄像头的内参数和外参数,将对应的虚拟三维信息与原始图像进行融合,得到虚实融合的图像:本步骤中,针对识别出特殊标识的步骤5所述候选标识区域,利用视频直接存储器传输通道从所述SDRAM中导入与所述识别出特殊标识的标识图像对应的三维虚拟信息,并根据所述USB摄像头的内参数和外参数,将对应的虚拟三维信息与所述原始图像进行融合,得到虚实融合的图像。
步骤8将步骤7所述的虚实融合的图像通过视频直接存储器传输通道传输到VGA控制器IP内核模块,VGA控制器IP内核模块控制VGA显示器进行显示:本步骤中,在Vivado中编写VGA控制器IP内核模块的程序,将虚实融合的图像通过视频直接存储器传输通道传输到VGA控制器IP内核模块,VGA控制器IP内核模块控制VGA显示器进行显示。
本实施例首先利用ARM处理器运行Linux系统,采集USB摄像头的原始图像进行缓存,并对USB摄像头进行标定。然后利用FPGA使用Vivado HLS软件编写硬件加速图像预处理IP内核模块的程序,检测候选标识位置。然后利用ARM处理器编写基于OpenCV的增强现实程序,识别候选标识,完成三维注册,并进行虚实融合。最后利用FPGA实现VGA控制器IP内核模块的驱动程序,进行实时显示。本实施例利用ARM处理器+FPGA架构进行软硬件联合设计,其显著提高了图像处理算法的实时性,降低了传统硬件架构的复杂程度和开发成本,用户IP内核模块的设计与集成也更简捷灵活,其具有功耗低和性能高等特点。
对于本实施例而言,上述步骤5还可进一步细化,其细化后的流程图如图4所示。图4中,上述步骤5进一步包括:
步骤5-1在Vivado HLS软件中编写图像预处理IP内核模块程序,把FPGA中缓存的图像转换成Mat类型的图像:本步骤中,在Vivado HLS软件中编写图像预处理IP内核模块程序,Vivado HLS软件中集成了类OpenCV的库,把FPGA中缓存的图像转换成Mat类型的图像。
步骤5-2把Mat类型的图像由三通道的彩色图像转换成单通道的灰度图像:本步骤中,把Mat类型的图像由三通道的彩色图像转换成单通道的灰度图像。
步骤5-3利用阈值分割法对单通道的灰度图像进行二值化处理,得到二值化图像:本步骤中,利用阈值分割法对单通道的灰度图像进行二值化处理,得到二值化图像。
步骤5-4对二值化图像进行轮廓检测,得到包含多边形轮廓的图像:本步骤中,对二值化图像进行轮廓检测,得到包含多边形轮廓的图像。
步骤5-5利用多边形近似法对多边形轮廓进行多边形逼近,排除不是四边形的多边形轮廓区域:本步骤中,利用多边形近似法对多边形轮廓进行多边形逼近,排除不是四边形的多边形轮廓区域。
步骤5-6计算候选标识区域的角点位置,并把角点位置保存在原始图像的数据结尾,作为候选标识位置数据:本步骤中,计算候选标识区域的角点位置,并把角点位置保存在原始图像的数据结尾,作为候选标识位置数据。
步骤5-7利用Vivado HLS软件对程序图像预处理IP内核模块程序进行流水线优化,对处理速度和占用的资源进行优化,产生RTL级代码,并封装成IP内核模块:本步骤中,利用Vivado HLS软件对程序图像预处理IP内核模块程序进行流水线优化,即对图像进行灰度变换、利用阈值分割进行二值化处理、轮廓检测、对检测出的轮廓进行多边形逼近等进行流水线优化,对处理速度和占用的资源进行优化,产生RTL级代码,并封装成IP内核模块。
对于本实施例而言,上述步骤6还可进一步细化,其细化后的流程图如图5所示。图5中,上述步骤6进一步包括:
步骤6-1将二次处理图像通过视频直接存储器传输通道传送回ARM处理器,对每一个候选标识区域进行透视变换,得到候选标识区域的正方形视图:本实施例中,二次处理图像包含候选标识区域位置,本步骤中,将二次处理图像通过视频直接存储器传输通道传送回ARM处理器,对每一个候选标识区域进行透视变换,得到候选标识区域的正方形视图。
步骤6-2使用Otsu算法对候选标识区域进行二值化处理,去掉灰度像素,只留下黑白像素:本步骤中,使用Otsu算法对候选标识区域进行二值化处理,去掉灰度像素,只留下黑白像素。
步骤6-3计算候选标识区域的正方形视图内部区域的海明码信息,并计算其与SDRAM中存储的标识图像的海明码信息的海明距离,把候选标识区域依次顺时针或逆时针旋转90度,重复计算海明距离,若当前最小的海明距离为0,则当前候选标识区域是一个正确的标识区域:本步骤中,计算候选标识区域的正方形视图内部区域的海明码信息,并计算其与SDRAM中存储的标识图像的海明码信息的海明距离,把候选标识区域依次顺时针或逆时针旋转90度,重复计算海明距离,若当前最小的海明距离为0,则当前候选标识区域是一个正确的标识区域。
步骤6-4找到正确的标识区域后,调用OpenCV函数按亚像素精度查找角点位置:本步骤中,找到正确的标识区域后,调用OpenCV函数按亚像素精度查找角点位置,得到精确的角点位置。
步骤6-5根据USB摄像头的内参数和候选标识区域的角点位置,调用OpenCV的函数计算USB摄像头的外参数:本步骤中,根据USB摄像头的内参数和候选标识区域的角点位置,调用OpenCV的函数计算USB摄像头的外参数,USB摄像头的外参数包括旋转矩阵和平移向量。
总之,在本实施例中,本发明以ARM处理器为主,以FPGA为辅,构建了一个软硬件协处理的基于Zynq软硬件协同处理的增强现实系统,该基于Zynq软硬件协同处理的增强现实系统按软硬件结构灵活划分程序模块,同时应用片内高速AXI总线,其能提高吞吐率,降低功耗,实时性较好,实时处理能力强。该基于Zynq软硬件协同处理的增强现实系统可加快识别处理速度,进而提高识别处理的识别精度和稳定性,使用户能够及时并准确地获取与现实信息最匹配的预制虚拟信息,并实时的显示在VGA显示器上,进一步提升用户体验。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种基于Zynq的软硬件协同处理的增强现实系统,包括Zynq主处理器、USB摄像头、USB控制芯片、DDR3SDRAM、SD卡、SDRAM和VGA显示器,其特征在于:
所述Zynq主处理器包括处理器系统和FPGA,处理器系统和FPGA通过高速AXI总线连接,所述处理器系统包括ARM处理器和DDR3控制器,四个AXI_HP接口、四个AXI_GP接口和一个AXI_ACP接口,所述FPGA包括SDRAM控制器IP内核模块、VGA控制器IP内核模块和图像预处理IP内核模块;
所述USB摄像头与所述USB控制芯片连接,所述USB控制芯片与所述ARM处理器连接,所述DDR3SDRAM通过所述的DDR3控制器与所述ARM处理器连接,所述DDR3控制器还通过DMA传输通道连接所述高速AXI总线,所述SD卡与所述ARM处理器连接,所述SDRAM控制器IP内核模块与所述SDRAM连接,所述SDRAM控制器IP内核模块还通过视频直接存储器传输通道连接所述高速AXI总线,所述图像预处理IP内核模块的输入端和输出端均通过视频直接存储器传输通道连接所述高速AXI总线,所述VGA控制器IP内核模块与所述VGA显示器连接,所述VGA控制器IP内核模块还通过视频直接存储器传输通道连接所述高速AXI总线。
2.一种基于如权利要求1所述的基于Zynq的软硬件协同处理的增强现实系统的增强现实方法,其特征在于,包括如下步骤:
步骤1:在SD卡中存储Linux系统启动所需的文件,将所述Zynq主处理器的启动方式设置为SD卡启动,上电自启动Linux系统,编写并运行图像预处理IP内核模块的驱动、VGA控制器IP内核模块的驱动和SDRAM控制器IP内核模块的驱动程序,根据Vivado软件给定的对应IP内核模块的物理地址,编写用于对物理地址进行操作的内核驱动程序,运行基于OpenCV的用于交互和显示的Qt显控程序;
步骤2:使用所述USB摄像头采集给定的棋盘格图像,使用OpenCV的摄像头标定程序对所述USB摄像头进行标定,计算得到所述USB摄像头的内参数,在Qt显控程序中选择标识图像并导入所述DDR3SDRAM中,计算所述标识图像的海明码信息,并通过视频直接存储器传输通道存储在所述SDRAM中;
步骤3:利用OpenCV集成的OpenGL生成与所述标识图像对应的三维虚拟信息,并将其通过视频直接存储器传输通道传送到所述SDRAM进行存储;
步骤4:所述ARM处理器实时采集所述USB摄像头中的原始图像,并通过视频直接存储器传输通道将其传输到所述FPGA进行缓存;
步骤5:使用Vivado HLS软件编写图像预处理IP内核模块,并对所述原始图像进行图像预处理得到二次处理图像;所述图像预处理包括对图像进行灰度变换、利用阈值分割进行二值化处理、轮廓检测、对检测出的轮廓进行多边形逼近,找到与所述标识图像相近的四边形作为候选标识区域,记录所述候选标识区域的角点位置;具体步骤如下:
5-1)在Vivado HLS软件中编写图像预处理IP内核模块程序,把所述FPGA中缓存的图像转换成Mat类型的图像;
5-2)把Mat类型的图像由三通道的彩色图像转换成单通道的灰度图像;
5-3)利用阈值分割法对所述单通道的灰度图像进行二值化处理,得到二值化图像;
5-4)对所述二值化图像进行轮廓检测,得到包含多边形轮廓的图像;
5-5)利用多边形近似法对多边形轮廓进行多边形逼近,排除不是四边形的多边形轮廓区域;
5-6)计算候选标识区域的角点位置,并把角点位置保存在所述原始图像的数据结尾,作为候选标识位置数据;
5-7)利用Vivado HLS软件对程序图像预处理IP内核模块程序进行流水线优化,对处理速度和占用的资源进行优化,产生RTL级代码,并封装成IP内核模块;
步骤6:将所述二次处理图像经视频直接存储器传输通道传回所述ARM处理器,在Linux系统下编写基于集成OpenGL的OpenCV的增强现实处理程序,并恢复所述原始图像中标识的正视图,识别步骤5所述候选标识区域中的特殊标识,并对识别出特殊标识的步骤5所述候选标识区域进行位姿估计,得到USB摄像头的外参数;所述USB摄像头的外参数包括旋转矩阵和平移向量;
具体步骤如下:
6-1)将所述二次处理图像通过视频直接存储器传输通道传送回ARM处理器,对每一个候选标识区域进行透视变换,得到候选标识区域的正方形视图;
6-2)使用Otsu算法对所述候选标识区域进行二值化处理,去掉灰度像素,只留下黑白像素;
6-3)计算所述候选标识区域的正方形视图内部区域的海明码信息,并计算其与SDRAM中存储的标识图像的海明码信息的海明距离,把所述候选标识区域依次顺时针或逆时针旋转90度,重复计算海明距离,若当前最小的海明距离为0,则当前候选标识区域是一个正确的标识区域;
6-4)找到所述正确的标识区域后,调用OpenCV函数按亚像素精度查找角点位置;
6-5)根据所述USB摄像头的内参数和候选标识区域的角点位置,调用OpenCV的函数计算所述USB摄像头的外参数;
步骤7:针对识别出特殊标识的步骤5所述候选标识区域,利用视频直接存储器传输通道从所述SDRAM中导入对应的三维虚拟信息,并根据步骤2所述USB摄像头的内参数和步骤6所述的外参数,将对应的虚拟三维信息与所述原始图像进行融合,得到虚实融合的图像;
步骤8:将步骤7所述虚实融合的图像通过视频直接存储器传输通道传输到VGA控制器IP内核模块,所述VGA控制器IP内核模块控制VGA显示器进行显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610236522.0A CN105844654A (zh) | 2016-04-15 | 2016-04-15 | 一种基于Zynq软硬件协同处理的增强现实系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610236522.0A CN105844654A (zh) | 2016-04-15 | 2016-04-15 | 一种基于Zynq软硬件协同处理的增强现实系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105844654A true CN105844654A (zh) | 2016-08-10 |
Family
ID=56589625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610236522.0A Pending CN105844654A (zh) | 2016-04-15 | 2016-04-15 | 一种基于Zynq软硬件协同处理的增强现实系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105844654A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844900A (zh) * | 2016-12-31 | 2017-06-13 | 上海交通大学 | 电磁暂态仿真系统的搭设方法 |
CN107277390A (zh) * | 2017-06-16 | 2017-10-20 | 南京巨鲨显示科技有限公司 | 一种基于Zynq多路视频拼接系统 |
CN107329720A (zh) * | 2017-06-30 | 2017-11-07 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于zynq的雷达图像显示加速系统 |
CN107861906A (zh) * | 2017-09-26 | 2018-03-30 | 成都九洲迪飞科技有限责任公司 | 一种fpga与arm处理器的高速数据交互系统及方法 |
CN108595369A (zh) * | 2018-04-28 | 2018-09-28 | 天津芯海创科技有限公司 | 算式并行计算装置及方法 |
CN109167966A (zh) * | 2018-09-29 | 2019-01-08 | 南京邮电大学南通研究院有限公司 | 基于fpga+arm的图像动态检测系统及方法 |
CN109246331A (zh) * | 2018-09-19 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种视频处理方法和系统 |
CN109375568A (zh) * | 2018-10-26 | 2019-02-22 | 北京计算机技术及应用研究所 | 一种多源数据实时采集装置 |
CN109714586A (zh) * | 2018-12-14 | 2019-05-03 | 上海物联网有限公司 | 基于zynq的实时双目立体视觉软硬件协同设计方法 |
CN110049294A (zh) * | 2019-05-29 | 2019-07-23 | 郑晓宇 | 基于Zynq高清高帧图像采集和处理系统 |
CN110134042A (zh) * | 2019-05-10 | 2019-08-16 | 吉林大学 | 车辆路径跟踪预测控制器及fpga异构加速实现方法 |
CN113011223A (zh) * | 2019-12-19 | 2021-06-22 | 深圳怡化电脑股份有限公司 | 一种图像识别方法、系统、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625754A (zh) * | 2009-08-05 | 2010-01-13 | 黄以华 | 一种基于fpga的图像处理系统 |
KR20130063876A (ko) * | 2011-12-07 | 2013-06-17 | (주)엘에이치에스지 | 클라우드 컴퓨팅을 이용한 증강 현실 시스템 및 생성 방법 |
CN103412619A (zh) * | 2013-07-30 | 2013-11-27 | 中国科学院上海技术物理研究所 | 一种异构多核的红外图像处理系统及方法 |
CN104851069A (zh) * | 2015-04-28 | 2015-08-19 | 电子科技大学 | 一种线缆表观图像缺陷检测装置 |
CN105046213A (zh) * | 2015-06-30 | 2015-11-11 | 成都微力互动科技有限公司 | 一种增强现实的方法 |
CN205608814U (zh) * | 2016-04-15 | 2016-09-28 | 中国科学院上海技术物理研究所 | 一种基于Zynq软硬件协同处理的增强现实系统 |
-
2016
- 2016-04-15 CN CN201610236522.0A patent/CN105844654A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625754A (zh) * | 2009-08-05 | 2010-01-13 | 黄以华 | 一种基于fpga的图像处理系统 |
KR20130063876A (ko) * | 2011-12-07 | 2013-06-17 | (주)엘에이치에스지 | 클라우드 컴퓨팅을 이용한 증강 현실 시스템 및 생성 방법 |
CN103412619A (zh) * | 2013-07-30 | 2013-11-27 | 中国科学院上海技术物理研究所 | 一种异构多核的红外图像处理系统及方法 |
CN104851069A (zh) * | 2015-04-28 | 2015-08-19 | 电子科技大学 | 一种线缆表观图像缺陷检测装置 |
CN105046213A (zh) * | 2015-06-30 | 2015-11-11 | 成都微力互动科技有限公司 | 一种增强现实的方法 |
CN205608814U (zh) * | 2016-04-15 | 2016-09-28 | 中国科学院上海技术物理研究所 | 一种基于Zynq软硬件协同处理的增强现实系统 |
Non-Patent Citations (3)
Title |
---|
GERMANO F. GUIMARÃES 等: "FPGA Infrastructure for the Development", 《PROCEEDINGS OF THE 20TH ANNUAL SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEMS DESIGN 2007》 * |
李聪: "基于FPGA的增强现实人工标记的识别和跟踪", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
许文龙: "基于视觉的增强现实虚实注册关键技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844900A (zh) * | 2016-12-31 | 2017-06-13 | 上海交通大学 | 电磁暂态仿真系统的搭设方法 |
CN106844900B (zh) * | 2016-12-31 | 2020-04-03 | 上海交通大学 | 电磁暂态仿真系统的搭设方法 |
CN107277390B (zh) * | 2017-06-16 | 2020-02-21 | 南京巨鲨显示科技有限公司 | 一种基于Zynq多路视频拼接系统 |
CN107277390A (zh) * | 2017-06-16 | 2017-10-20 | 南京巨鲨显示科技有限公司 | 一种基于Zynq多路视频拼接系统 |
CN107329720A (zh) * | 2017-06-30 | 2017-11-07 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于zynq的雷达图像显示加速系统 |
CN107329720B (zh) * | 2017-06-30 | 2020-07-03 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于zynq的雷达图像显示加速系统 |
CN107861906A (zh) * | 2017-09-26 | 2018-03-30 | 成都九洲迪飞科技有限责任公司 | 一种fpga与arm处理器的高速数据交互系统及方法 |
CN108595369A (zh) * | 2018-04-28 | 2018-09-28 | 天津芯海创科技有限公司 | 算式并行计算装置及方法 |
CN108595369B (zh) * | 2018-04-28 | 2020-08-25 | 天津芯海创科技有限公司 | 算式并行计算装置及方法 |
CN109246331A (zh) * | 2018-09-19 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种视频处理方法和系统 |
CN109167966A (zh) * | 2018-09-29 | 2019-01-08 | 南京邮电大学南通研究院有限公司 | 基于fpga+arm的图像动态检测系统及方法 |
CN109375568A (zh) * | 2018-10-26 | 2019-02-22 | 北京计算机技术及应用研究所 | 一种多源数据实时采集装置 |
CN109714586A (zh) * | 2018-12-14 | 2019-05-03 | 上海物联网有限公司 | 基于zynq的实时双目立体视觉软硬件协同设计方法 |
CN109714586B (zh) * | 2018-12-14 | 2021-02-02 | 上海物联网有限公司 | 基于zynq的实时双目立体视觉软硬件协同设计方法 |
CN110134042A (zh) * | 2019-05-10 | 2019-08-16 | 吉林大学 | 车辆路径跟踪预测控制器及fpga异构加速实现方法 |
CN110134042B (zh) * | 2019-05-10 | 2021-11-05 | 吉林大学 | 车辆路径跟踪预测控制器及fpga异构加速实现方法 |
CN110049294A (zh) * | 2019-05-29 | 2019-07-23 | 郑晓宇 | 基于Zynq高清高帧图像采集和处理系统 |
CN113011223A (zh) * | 2019-12-19 | 2021-06-22 | 深圳怡化电脑股份有限公司 | 一种图像识别方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105844654A (zh) | 一种基于Zynq软硬件协同处理的增强现实系统及方法 | |
CN205608814U (zh) | 一种基于Zynq软硬件协同处理的增强现实系统 | |
CN110196053B (zh) | 一种基于fpga的实时田间机器人视觉导航方法与系统 | |
JP7073247B2 (ja) | 車線境界線検出モデルを生成するための方法、車線境界線を検出するための方法、車線境界線検出モデルを生成するための装置、車線境界線を検出するための装置、機器、コンピュータ読み取り可能な記憶媒体およびコンピュータプログラム | |
JP6871314B2 (ja) | 物体検出方法、装置及び記憶媒体 | |
WO2021189901A1 (zh) | 图像分割方法、装置、电子设备及计算机可读存储介质 | |
Pauwels et al. | A comparison of FPGA and GPU for real-time phase-based optical flow, stereo, and local image features | |
CN104881666B (zh) | 一种基于fpga的实时二值图像连通域标记实现方法 | |
CN108805871A (zh) | 血管图像处理方法、装置、计算机设备和存储介质 | |
CN111145215B (zh) | 一种目标跟踪方法及装置 | |
CN103345382A (zh) | 一种cpu+gpu群核超算系统及sift特征匹配并行计算方法 | |
WO2019222889A1 (zh) | 一种图像特征提取方法及装置 | |
CN103605497B (zh) | 一种二值图像连通域标记快速识别方法 | |
CN108038447A (zh) | 一种基于Zynq-7000的行人检测系统 | |
TWI489319B (zh) | 以深度梯度爲基礎之追蹤 | |
CN107077186A (zh) | 低功率计算成像 | |
CN116524195B (zh) | 语义分割方法、装置、电子设备及存储介质 | |
CN106709431A (zh) | 虹膜识别方法及装置 | |
CN101567078B (zh) | 一种双总线的视觉处理芯片架构 | |
CN109733285B (zh) | 车辆行驶状态显示方法、设备和系统 | |
US20230064049A1 (en) | Multi-modal sensor fusion for content identification in applications of human-machine interfaces | |
CN112581509A (zh) | 一种基于sopc的无人机载地面目标实时跟踪系统及跟踪方法 | |
CN204131656U (zh) | 应用于增强现实系统的辅助图像处理装置 | |
CN109346028A (zh) | 一种基于tlm的三角形光栅化扫描结构 | |
CN205692214U (zh) | 一种单目视觉位姿测量系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160810 |