GithubHelp home page GithubHelp logo

zhang-ranhao / aprilzynq Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 3.0 481.55 MB

基于Zynq UltraScale+ MPSoC的AprilTag算法移植与加速

C 17.01% Verilog 28.50% VHDL 42.48% Pascal 0.01% V 1.14% C++ 3.30% Tcl 4.38% Stata 0.10% Shell 0.10% Forth 0.02% JavaScript 0.04% Batchfile 0.01% PureBasic 0.01% HTML 0.07% SystemVerilog 2.86%

aprilzynq's Introduction

目录

1. 项目简述

1.1 项目名称

基于Zynq UltraScale+ MPSoC的AprilTag算法加速器设计
b站传送门:基于ZYNQ的AprilTag视觉定位算法加速技术研究——飞驰像素团队

1.2 项目背景

本项目来源于本人研究生一年级所负责的项目:陆空两栖可重构机器人“比翼鸟”,机器人实物图如下图所示。
图片文字描述 在该项目中,为了完成两架无人机的自主对接,我们采用了AprilTag视觉基准系统和OpenMV4摄像头模块来搭建视觉定位系统,我们希望无人机在更高的高度下也能稳定识别到AprilTag标签,所以将摄像头分辨率从QQVGA(160×120)提高到VGA(640×480),但此时视觉定位数据的刷新频率小于1Hz,无法满足无人机精确位置控制环所要求的数据更新频率。基于此,本项目旨在利用Zynq UltraScale+ MPSoC这一ARM+FPGA架构的硬件平台对该算法进行加速,以满足实时性要求。

1.3 目前工作进度

(1)已搭建好基于的ZYNQ的图像采集与处理系统,实现对来自OV5640摄像头的视频图像的实时采集、存储、预处理与显示,如下图框图所示。
图片文字描述 (2)我们成功将AprilTag算法部署到PS端中的ARM核上,并完成相机标定工作,使其能够输出高精度的六自由度位姿信息。
(3)将AprilTag仿真调试图像输出到显示屏,来展示AprilTag标签是如何被一步步识别到并输出定位信息的,包括自适应阈值分割、Union-Find联通域查找、边缘分割、PCA主成分分析、四边形匹配、边缘细化、解码、单应矩阵计算以及外参估计等流程,演示视频已上传到B站,欢迎观看。
(4)我们采用流水线以及并行计算等**,成功在PL端实现了AprilTag算法中的降采样、高斯模糊以及自适应阈值分割等图像处理算法,并将其封装为子模块接入到系统中,结果显示,我们取得了较为明显的加速效果。总结,算法在PS端的总运行时间时间为234ms,在经过FPGA加速后,减少为119ms,运行速度提升为原来的1.97倍,对于1280×720的实时视频流数据,算法的最终处理速度为8.4帧/秒。

1.4 未来工作计划

(1)在ZYNQ中的PL端,实现AprilTag算法中的其余部分,终极目标是在PL端实现全部AprilTag算法,算法更新频率达到50hz以上。
(2)为使系统具有更好的扩展性和可移植性,尝试将PS端的裸机系统更换为Linux操作系统。

2. 使用说明

2.1 硬件信息

本项目所使用的硬件平台为黑金公司生产的AXU2CGB开发板,ZYNQ芯片的具体型号为:xczu2cg-sfvc784-1-e,摄像头为黑金公司生产的AN5641摄像头模块,图像传感器芯片为豪威科技公司生产的OV5640芯片,AN5641通过mipi协议将图像数据传输到开发板,开发板通过DP协议将图像数据传输到显示屏,硬件实物图如下图所示。
图片文字描述

2.2 Vivado软件部分

Vivado部分位于pl文件夹下,其中降采样、高斯模糊、自适应阈值分割的文件名称分别为De_Resolution,GaussBlur,Th_Seg,而连通域查找的代码文件位于uf文件夹下,暂时未接入系统中 图片文字描述

2.3 Vitis软件部分

您需要使用ps文件下的top.xsa文件来建立vitis工程,项目源代码放在src文件夹下,在创建好vitis工程后,您还需要进行一些设置,才能保证编译成功,操作教程已上传到B站,欢迎观看。

aprilzynq's People

Contributors

zhang-ranhao avatar

Stargazers

 avatar  avatar  avatar  avatar sanrenfeng avatar  avatar  avatar  avatar swust_zyk avatar Annika  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.