一、项目背景
这次要移植到zynq板子上的算法是关于船只识别的,源代码是基于python+opencv写的,算法本身并不复杂,主要思想就是基于帧差法以及不同大小的滑动窗,做一个背景去除,再通过海面掩膜获取有船只的图像部分,通过二值化与轮廓检测定位出海面上的船。
这个小项目,我的重点不在算法本身(当然也需要根据平台做适当的适配与调整),主要目的是熟悉zynq的开发流程。
二、算法移植简介
2.1 算法框图
图片来自USGS LandSat8
2.2 平台及工具
zynq7020 clg400-2 ;
vivado HLS + SDK + Linux
2.3 移植流程
- 在vivado HLS上完成预处理部分(滤波、二值化)的IP核设计;
- 将HLS生成的IP核集成到vivado design中,主要利用VDMA进行IP核与DDR之间的数据交互,并将处理结果通过HDMI输出实时显示;
- 裸机部分的代码功能验证;
- 为目标板移植linux操作系统,以及qt+opencv的移植;
现在的情况是,图片预先存在DDR中(加上操作系统后,图片放在SD卡)后续条件允许的话,打算加上两个摄像头,把这套系统做成机器视觉平台,能够实时采集处理。
【第一次写CSDN博客,好多排版都不清楚…后面慢慢改】