1 Star 0 Fork 1

武俊峰 / ZYNQ_ddctracking

forked from openfpga / ZYNQ_ddctracking 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

使用云台相机进行实时对象跟踪(肤色追踪实验)

IPC摄像头将跟踪对象保持在视频的中心。

硬件

FPGA Zybo ![](https://files.mdnice.com/user/17442/f033b735-5af5-48b2-a4b1-39872674f6fe.png) AXIS V5915 50HZ PTZ # 介绍

对象跟踪是在视频序列的每个连续帧中寻找感兴趣的区域,在许多应用中都很有用,例如汽车行业、自动视频监控系统和手势识别。

该项目展示了使用 Zybo Z7-20 SoC 的 FPGA 加速跟踪算法。该系统还包含 AXIS V5915 PTZ 摄像机,通过与摄像机服务器的 TCP 连接而进行控制达到我们的目的。

肤色追踪

肤色识别是在YCbCr色彩空间中完成的,可以通过RGB像素乘以3x3转换矩阵来实现:

转换后,可以创建肤色分类掩码,255 值表示像素被认为是皮肤。

Ta、Tb、Tc、Td 值是通过实验确定的。

分类后,可以计算皮肤区域的中心坐标:

具体位置计算:

Im(i, j) 是 (i, j) 像素坐标的掩码值。

控制相机的位置

相机的服务器在 TCP 端口 80 上接受 HTTP 请求,其结构如下所示:

例如,如果我们想将相机绕垂直轴向右旋转 10 度,则应发送以下请求:

其他参数如下表所示:

系统架构设计

使用异构 Zynq-7000 SoC,可以将项目划分为两个子系统:在可编程逻辑中实现的肤色跟踪算法,负责计算跟踪对象位置并将其写入 AXI4 Lite 接口,以及负责从 AXI4 获取对象坐标的相机控制系统接口并通过 TCP 循环控制相机的速度。总图如图 1 所示。

PS端设计

使用了 Xilinx SDK自带的 TCP Client 示例项目的进行修改。主程序循环如图所示(详细见源码)。

PL端设计

顶块设计如图所示。

演示

参考来源

https://github.com/mdanilow/ddctracking

使用

Step 1. 摄像头端设置(IP等).

  • Open project in Vivado.
  • File > Launch SDK.
  • camera control project is "clientboys"
  • in line 64 of "main.c" define your camera's network location
  • in file "tcp_perf_client.c", line 212, edit your camera's request structure

Step 2. Build project Step 3. Generate bitstream in Vivado Step 4. Click "Program FPGA" in SDK and then Run

空文件

简介

ZYNQ使用云台相机进行实时对象跟踪(肤色追踪实验) 展开 收起
Verilog
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Verilog
1
https://gitee.com/wu-junfenggitee/ddctracking.git
git@gitee.com:wu-junfenggitee/ddctracking.git
wu-junfenggitee
ddctracking
ZYNQ_ddctracking
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891