0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的视频图像拼接融合

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-05-25 10:20 次阅读

基于FPGA视频图像拼接融合

本项目简单来说,就是实时生成视频全景图,该架构经过优化,可以实时视频输出。

算法

下图说明了描述算法每个步骤的系统框图

40a74798-dbc3-11ec-ba43-dac502259ad0.png

该系统大致可以分为三个子系统:

预处理

基于 SIFT 的特征提取

框架拼接融合

预处理

系统的输入视频流为 8 位 RGB 格式。输入的 8 位图像如下图所示。

视频流的每个单独帧将具有对应于红色、绿色和蓝色的三个通道。视频帧中的颜色信息不会增强特征检测。此外,与单通道 8 位图像相比,3 通道 8 位图像的计算需要更多时间。因此,RGB 视频帧被转换为 8 位灰度图像。生成的灰度图像噪声更小,阴影细节更多,计算效率更高,如下图所示。

基于SIFT的特征提取

使用SIFT算法从灰度图像中提取特征。SIFT算法可以分为两个主要步骤:

关键点检测

SIFT 操作从输入图像与不同高斯滤波器的离散卷积开始。高斯滤波器是一种广泛使用的图像平滑算法,定义为:

4180cda6-dbc3-11ec-ba43-dac502259ad0.png

上式中,G为(x,y)点的高斯核,σ为高斯参数。使用较大的 σ 值会对图像产生更大的平滑效果。图像与高斯核的离散卷积生成具有较少噪声和较少细节的图像。在 SIFT 中,高斯核的离散卷积是用四个不同的 σ 值完成的。逐渐增大的 σ 值用于生成一组模糊图像或八度音阶(意思频率减半,低频部分对应灰度图中变化平缓的部分,高频部分对应灰度图中变化剧烈的部分)。

41a31b36-dbc3-11ec-ba43-dac502259ad0.png

对于给定的 σ 值,卷积核中所有系数的总和应该等于 1。因此,核的大小随着 σ 值的增加而增加。

一旦生成了八度音阶,就会根据八度音阶中的四个图像构建一个 DoG 空间。DoG 代表高斯差分。DoG 是高斯拉普拉斯算子 (LoG) 的计算效率非常高的近似值。DoG 空间是通过逐像素计算两个相邻高斯尺度图像之间的差异来构建的。八度音阶中四个图像的DoG空间将具有三个级别。

41dd72f4-dbc3-11ec-ba43-dac502259ad0.png

通过查找局部最大值或最小值,从 DoG 空间中提取关键点。如果一个像素是由顶层 9 个像素、中间层 8 个像素和底层 9 个像素组成的 26 像素邻域内的局部最大值或最小值,则该像素被认为是关键点。

421ced8a-dbc3-11ec-ba43-dac502259ad0.png

关键点

描述符生成

关键点描述符是特定关键点的唯一标识符。SIFT 使用关键点的梯度幅度和方向作为描述符的基础。一个点的梯度大小和方向可以通过图像与 Sobel 滤波器的离散卷积来计算。

Sobel卷积输出

为了生成关键点描述符,计算每个关键点周围 16x16 窗口内每个点的梯度幅度和方向。16x16 窗口的梯度幅度与高斯核卷积。将每个 4x4 单元格中的梯度幅度组合起来,使 16x16 窗口减少到 4x4 窗口和 16 个梯度方向。最后,这 16 个梯度方向被转移到 8 个 bin 中。因此,构建了一个 128 个元素的向量,作为关键点描述符。

框架拼接融合

框架拼接是将两个帧组合成单个图像的过程。框架拼接分两步完成:

关键点匹配

比较来自两个相机传感器的视频帧中关键点的关键点描述符。如果两个关键点(每个相机传感器一个)的关键点描述符之间的差异低于误差阈值,则将它们视为关键点对。将它们的关键点描述符之间差异最小的关键点对作为参考关键点。

图像融合

加权平均方法用于将两个帧混合成单个图像。重叠区域的像素值等于两帧像素的加权平均值。根据重叠像素和相应帧的边界之间的距离选择权重。

拼接图像

FPGA程序顶层设计

顶层架构的框图如下图所示。

436d0756-dbc3-11ec-ba43-dac502259ad0.png

顶层设计分为五个阶段:

预处理阶段

为了模拟相机传感器的工作,使用了 image.v 和 image2.v,它们分别输入对应于左和右相机传感器的图像。RWM_1.v 是一个读写存储器,用于存储 8 位 RGB 图像。WRITE 模式时,RGB 图像像素数据写入内存。存储完所有像素值后,将存储器置于 READ 模式。在 READ 模式下,每个像素值从内存中顺序读取.

过滤阶段

关键点阶段

关键点匹配阶段

帧混合阶段

项目地址

https://github.com/AugustinJose1221/FPGA-Build

https://github.com/AugustinJose1221/Video-Stitching

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603333
  • 视频图像
    +关注

    关注

    0

    文章

    47

    浏览量

    17485
  • 算法
    +关注

    关注

    23

    文章

    4612

    浏览量

    92888

原文标题:[开源项目]基于FPGA的视频图像拼接融合

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    图像拼接

    简单的labview图像拼接程序
    发表于 05-15 23:19

    FPGA将3路图像拼接,什么好算法能模糊拼接处?

    3路sensor采集到的3路图像FPGA将它们从左至右拼接为1副图像。这样,图像1和图像2、
    发表于 02-19 10:40

    FPGA图像融合

    FPGA怎么实现:实时两路视频数据的融合,即实时模糊两路图像交接处的缝隙?
    发表于 02-23 13:54

    labview做投影机融合拼接的问题??

    如题,请问哪位真大神知道labview能不能做投影机融合拼接软件,多台投影机画面融合拼接??,求指点迷津!
    发表于 07-18 23:08

    【米尔MYD-C7Z020开发板试用申请】基于zynq的监控视频图像拼接算法

    手把手教你设计人工智能芯片及系统(全阶设计教程+AI芯片FPGA实现+开发板)详情链接:http://url.elecfans.com/u/c422a4bd15项目名称:基于zynq的监控视频图像
    发表于 10-30 17:03

    怎么实现基于FPGA的LCD大屏幕拼接系统的设计?

    本项目设计基于FPGA的数字视频处理算法, 实现对DVI视频信号进行解码,实时对数字视频的分割、 视频
    发表于 06-01 06:41

    介绍几种基于ARM处理器的纯硬件视频融合拼接系统技术方案

      视频融合拼接系统在商业显示领域有着广泛的应用,如屏幕拼接墙、舞台布景、LED影棚、投影融合等场景。传统方案采用独立的图形服务器或者
    发表于 07-18 16:51

    一种快速全景图像拼接技术

    这是拼接融合部分的简介,用fpga或者其他方式实习拼接融合的效果,大家可以看一下。
    发表于 05-20 11:16 6次下载

    基于FPGA的多幅图像融合叠加的设计与实现

    基于FPGA的多幅图像融合叠加的设计与实现
    发表于 08-30 15:10 13次下载

    基于FPGA视频图像缩放与叠加融合技术的设计方案及实现

    针对两通道视频图像叠加融合,设计并实现了一种实时性好、灵活性强的FPGA硬件系统。该系统可以根据实际需求进行任意比例和任意位置的视频
    发表于 11-22 08:32 4886次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>视频</b><b class='flag-5'>图像</b>缩放与叠加<b class='flag-5'>融合</b>技术的设计方案及实现

    小区域融合视频图像拼接

    针对视频图像拼接拼接面选取不当造成的畸变问题和图像融合阶段视差带来的残影问题,借助半角纠正法选
    发表于 01-22 15:30 1次下载
    小区域<b class='flag-5'>融合</b>的<b class='flag-5'>视频</b><b class='flag-5'>图像</b><b class='flag-5'>拼接</b>

    YUV视频GPU实时拼接

    为提高高清视频拼接的实时性能,提出一种基于GPU的多路高清YUV视频实时拼接方法,推导出YUV422图像
    发表于 03-20 10:10 2次下载
    YUV<b class='flag-5'>视频</b>GPU实时<b class='flag-5'>拼接</b>

    FPGA视频教程之FPGA视频图像处理领域的应用视频资料说明

    本文档的主要内容详细介绍的是FPGA视频教程之FPGA视频图像处理领域的应用视频资料说明。
    发表于 04-04 16:40 35次下载
    <b class='flag-5'>FPGA</b><b class='flag-5'>视频</b>教程之<b class='flag-5'>FPGA</b>在<b class='flag-5'>视频</b><b class='flag-5'>图像</b>处理领域的应用<b class='flag-5'>视频</b>资料说明

    视频拼接技术的标准

    视频拼接技术,即对有重叠区域的多路源视频数据利用拼接算法进行拼接,消除重叠区域,形成宽角度、大视场视频
    的头像 发表于 07-22 10:18 1845次阅读

    FPGA驱动下的视频图像拼接融合技术革新

    视频流的每个单独帧将具有对应于红色、绿色和蓝色的三个通道。视频帧中的颜色信息不会增强特征检测。此外,与单通道 8 位图像相比,3 通道 8 位图像的计算需要更多时间。
    发表于 03-01 10:25 651次阅读
    <b class='flag-5'>FPGA</b>驱动下的<b class='flag-5'>视频</b><b class='flag-5'>图像</b><b class='flag-5'>拼接</b><b class='flag-5'>融合</b>技术革新