ALINX VD100+Simulink 快速实现 FPGA 图像处理 Sobel 边缘检测

原文作者:Adam Taylor

原文标题:MicroZed Chronicles: Creating Image Processing with Simulink

原文链接:https://www.adiuvoengineering.com/post/microzed-chronicles-creating-image-processing-with-simulink

Github 链接:https://github.com/ATaylorCEngFIET/mz629

FPGA 大神、Ardiuvo & Hackster.IO 知名博主 Adam Taylor 此前 基于 ALINX VD100(AMD Versal AI Edge VE2302)开发平台实现 LCD 测试图案显示

最近,他对这个项目进行了升级:增加 ALINX 摄像头模块 ,并构建完整的图像处理流水线,实现实时视频采集与显示

由于 LCD 显示输出链路已经搭建完成,本次升级的重点主要集中在视频采集和图像处理部分。


项目硬件清单

本项目基于 ALINX VD100 Versal AI Edge 开发平台搭建,实现了从摄像头采集、图像处理到显示输出的完整视频处理链路。

类别 硬件型号 作用
主开发平台 ALINX VD100 项目开发与验证平台
核心器件 AMD Versal AI Edge VE2302 图像采集、处理及系统控制
摄像头 ALINX MIPI Camera Module 图像采集输入
显示设备 1280×720 LVDS LCD Panel 图像显示输出
存储器 板载 4GB DDR4 视频帧缓存
非易失存储 8GB eMMC、512Mb QSPI Flash 系统启动与程序存储

(AMD Versal自适应计算加速平台开发板VD100)


系统架构

text 复制代码
ALINX MIPI Camera
        ↓
MIPI CSI-2 RX
        ↓
Sensor Demosaic
       ↓
VDMA Write
        ↓
DDR4 Frame Buffer
        ↓
VDMA Read
        ↓
Sobel Edge Detection IP
        ↓
LVDS LCD Display

构建视频采集链路

要实现摄像头视频采集,需要在设计中加入以下 IP 核:

MIPI CSI-2 RX Subsystem

配置参数如下:

  • 4 Lane 输入
  • RAW10 图像格式
  • 每个时钟周期输出 4 个像素

该模块负责接收来自 MIPI 摄像头的数据流。

Sensor Demosaic

配置参数:

  • 4 Pixels Per Clock
  • RAW10 输入

该模块用于完成 Bayer 图像的去马赛克处理,将图像传感器输出转换为标准 RGB 图像。

Video DMA(VDMA)

通过 NoC(Network on Chip)连接 DDRMC,实现:

  • 视频帧写入 DDR
  • 视频帧读取 DDR

从而完成帧缓存管理。

CIPS I2C(EMIO)

启用 EMIO 方式的 I2C 接口,用于:

  • 摄像头初始化
  • 摄像头参数配置

例如曝光、增益、分辨率等参数设置。

完成上述模块连接后,就建立起了一条完整的视频链路:

MIPI Camera → Demosaic → DDR Buffer → LCD Display

与此同时,还需要 Vitis 软件完成:

  • 摄像头配置
  • 图像处理 IP 配置
  • VDMA 控制

整个系统设计已发布在 Adam Taylor 的 GitHub 中,点击文末阅读原文即可跳转。


原始图像存在的问题

系统运行后,摄像头采集的画面已经能够正常显示到 LCD 上。

不过从显示效果来看,仍然存在两个比较明显的问题:

  • Gamma 校正不足
  • 白平衡未优化

因此图像质量还有进一步优化空间。


在完成视频采集与显示后,希望快速验证一个能够插入现有视频流水线的图像处理算法。

最终选择的是:

Sobel Edge Detection(Sobel 边缘检测)

并通过 MathWorks Simulink HDL Coder 自动生成 FPGA IP。


创建 HDL 子系统

首先在 Simulink 中建立一个新的 Subsystem,后续通过 HDL Coder 转换为 Vivado IP。

由于 Sobel 算法需要灰度图像作为输入,因此第一步需要实现:

RGB 转灰度

text 复制代码
RGB Image
    ↓
Grayscale Conversion
    ↓
Sobel Processing

即把彩色图像转换为灰度图像后,再进行边缘检测处理。


AXI4-Stream 视频接口设计

整个模块采用标准 AXI4-Stream Video 接口。

输入数据包括

tData

24bit 像素数据:

  • R:8bit
  • G:8bit
  • B:8bit

组成一个 RGB888 像素。

控制信号

  • tUser
  • tLast

用于表示帧起始行结束等视频时序信息。


Sobel 算法处理流程

完成灰度转换后,图像进入 Sobel 运算模块。

Sobel 算法会输出边缘检测结果。

通过 Switch 模块完成二值化:

  • 检测到边缘 → 输出 255
  • 非边缘区域 → 输出 0

最终生成黑白边缘图像。


为了在 FPGA 实现之前验证算法效果,可以先在 Simulink 进行视频仿真。

输入端采用 From Multimedia File 读取视频文件。

随后利用 Frame To Pixels 将视频帧转换为:

  • 像素流
  • 视频同步信号

模拟真实视频接口的数据格式。

输出端通过 Pixels To Frame 重新组合图像帧。

重新组装视频帧。

并利用 Video Viewer 查看处理结果。


AXI4-Stream 数据格式转换

这里遇到一个比较典型的问题。

Frame To Pixels 输出格式为uint8[1×3][R G B]三个独立的 8bit 数据。

而 AXI4-Stream 接口要求输入格式为uint32 单一数据输入。

因此需要增加一个 MATLAB Function:将 RGB 数据打包为单个 32 位数据(uint8[1x3]→uint32)。由于 MATLAB 不支持 24bit 数据类型,因此只能采用 uint32 作为替代方案。

在 HDL 模块入口处,再执行相反操作:uint32 → uint8[1x3] 恢复RGB数据。


自动生成 Vivado IP

完成仿真验证后,通过 HDL Coder 直接生成 Vivado IP。

生成内容包括:

  • RTL HDL
  • AXI4-Stream 接口
  • Vivado IP Packager 文件
  • 工程支持文件

开发者可以直接导入 Vivado 使用。


集成到 VD100 视频流水线

生成的 Sobel IP 被加入到 Vivado 工程中。

由于该模块采用:

单像素处理(1 Pixel Per Clock)

因此放置在 VDMA 输出端之后


资源占用情况

资源类型 使用量
DSP 5
LUT 941
Flip-Flop 1606

工作频率:200 MHz

在 Versal AI Edge VE2302 上实现时序收敛没有任何问题。


实际运行效果

修改 Vitis 软件,使其能够配置 Sobel 模块后,系统成功运行。

实时摄像头画面经过 FPGA 处理后实现了完整的实时边缘检测演示系统:

  • 实时摄像头采集
  • FPGA 边缘检测处理
  • LCD 实时显示

显示刷新率达到 60Hz

相关推荐
Hello_Damon_Nikola2 分钟前
扰流筋从原理到应用
人工智能·单片机·嵌入式硬件
某林2123 分钟前
从“仿真能跑”到“真机能走”:一套轮腿机械狗强化学习系统的工程化实践
人工智能·stm32·嵌入式硬件·架构·机器人·机械狗
爱知菜11 分钟前
Transformer vs Diffusion:为什么扩散模型更擅长捕捉细节?
人工智能·深度学习·transformer·扩散模型
xp_xht12315 分钟前
Day1 概率机器学习 信息论
人工智能·机器学习·信息论
chuan.bai28 分钟前
Java RAG 实战(第 3 篇):从交互式聊天到多轮上下文
java·人工智能·macos·ai
雪隐32 分钟前
个人电脑玩AI-16让5060 Ti给你打工——MiniMax H3 提速实录:从"泡杯茶等视频"到"视频等你",一张 5060 Ti 的自我修养
前端·人工智能·后端
深兰科技35 分钟前
深兰科技亮相天津医疗器械创新生态大会,DeepAgent智能体赋能医疗医美并签约天津OPC项目
人工智能·科技·r语言·symfony·视觉大模型·深兰科技·deepagent智能体
cxr82836 分钟前
从“对象本体”到“关系本体”
人工智能·架构
shxjnpl39 分钟前
Whisper + CAM++ + 本地大模型:一套完全离线的AI会议处理链路
人工智能·机器学习·whisper
小润nature44 分钟前
AI 与嵌入式三时简报|早报
人工智能