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

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

3天内不再提示

关于MATLAB 图像处理算法的作用分析介绍

MATLAB 来源:djl 2019-09-12 14:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

得益于 Raspberry Pi 等低成本硬件平台,现在比以往更容易在硬件上对图像处理算法进行原型验证。大多数图像处理算法需要进行大量计算,在嵌入式平台上以可接受的帧频运行它们非常困难。尽管 Raspberry Pi 在运行简单的图像处理算法时游刃有余,但大图像和复杂算法应在 NVIDIAJetson 等功能强大的硬件上运行。

本文将以色度键控效果为例,介绍在嵌入式硬件上部署 MATLAB 图像处理算法的简单工作流。我们将使用 MATLAB Coder 通过算法生成C代码,然后使用在硬件上运行的实用程序在 Raspberry Pi 板卡上进行算法原型验证。最后,我们将算法移植至 NVIDIA Jetson Tx1 平台以保证实时性能。

色度键控算法

色度键控广泛用于电视天气预报、电影制作和图片编辑应用程序,它是一种视频处理技术,首先针对单色背景(如绿色屏幕)拍摄前景对象,然后用不同场景(图1)替换该背景。

关于MATLAB 图像处理算法的作用分析介绍

图1:应用色度键控之前和之后的示例

色度键控算法将图像中的每个像素与代表单背景色的基准色进行对比。如果像素颜色与基准色足够接近,像素将由之前所选场景图像的对应像素替换。从数学上讲,色度键控算法采用以下公式:

关于MATLAB 图像处理算法的作用分析介绍

其中代表进行色度键控后位置 (j,k) 处的最终像素值,是与原始图像对应的像素值,是代表替换单一背景色的场景的像素值,m(j,k)∈[0,1] 是掩码值。掩码数值 m(j,k) 对于前景像素应该为 1,对于背景像素应该为 0。0 与 1 之间的掩码值可提供从背景到前景的平滑过渡。

每个像素的掩码值通常在 YcbCr 颜色空间而不是普通的 RGB 颜色空间中进行计算。YcbCr 图像的 Y 分量代表亮度分量,用于确定图像的明暗度。Cb 和 Cr 分量代表色度分量,用于衡量与基准色的相似度。由于仅使用图像的 Cb 和 Cr 分量衡量颜色相似度,该算法在应对单一背景色明暗区域的亮度值差异时十分稳健。

为衡量像素色与基准色的相似性,我们在色度空间中使用欧氏距离平方:

关于MATLAB 图像处理算法的作用分析介绍

最后,使用以下公式计算图像中位置(j,k) 的掩码值:

关于MATLAB 图像处理算法的作用分析介绍

其中 t1 和 t2 ( t2 > t1)代表要确定的阈值。

MATLAB实现

以下是色度控键算法的 MATLAB 实现:

关于MATLAB 图像处理算法的作用分析介绍

在 MATLAB 中,图像由类型 uint8 的 [N,M, 3] 数组表示。这表示,在执行数学操作前,我们需要将图像数据类型转换为 “double”。为避免背景到前景的快速突变,我们对算出的掩模采用高斯过滤器进行滤波。

确定基准色和阈值

色度键控算法需要基准色和阈值。使用 MATLAB Raspberry Pi 支持包中的相机接口,我们拍摄了实际场景的图像。随后,我们可以凭借经验确定背景的适用基准色和相应的阈值。

关于MATLAB 图像处理算法的作用分析介绍

img = snapshot(cam); 命令绘制 MATLAB 中 Raspberry Pi 相机拍摄的图像。我们使用 MATLAB 绘制中的 Data Cursor 工具指定背景颜色(图2)。

关于MATLAB 图像处理算法的作用分析介绍

图2:MATLAB 中用于确定背景色值的 Data Cursor 工具

要确定阈值,我们将循环运行算法并调整阈值:

关于MATLAB 图像处理算法的作用分析介绍

当运行代码时,我们会获得带有所选背景的图像(图3)。

图3:左:原始图像;右:运行色度控键算法后获得的图像

将色度键控算法部署到 Raspberry Pi

在部署代码前,我们需要编写一段包含有色度键控算法的循环体,循环体中还包括从相机拍摄图像,并在 Raspberry Pi 连接的显示器上显示:

关于MATLAB 图像处理算法的作用分析介绍

matlab.raspi.webcam 和 matlab.raspi.SDLVideo Display 是在硬件上运行实用程序的 System objects,它们可简化部署工作流程中相机的使用和 Raspberry Pi 显示。要编译并运行代码,我们可执行以下命令:

关于MATLAB 图像处理算法的作用分析介绍

runOnHardware 功能会为 Raspberry Pi 硬件创建 MATLAB Coder 配置,为 chromaKeyApp.m 生成代码并对其部署。为了以合理的帧频运行算法,图像大小可缩小到 640x480 或 320x240。

生成GPU代码

算法在 Raspberry Pi 上运行,但是它不会实现我们需要的实时性能。为了加快算法的速度,我们要使用 GPU Coder 将其部署到 NVIDIA Jetson 平台。我们需要生成 GPU 代码以利用算法中的内在并行性。首先,我们会编写 main 函数进行封装,以利用 OpenCV 访问连接到 NVIDIA Jetson 的 USB 相机。此功能将视频帧从相机送到我们的 chromaKey 算法,随后在屏幕上显示输出内容。

生成 GPU 代码后,我们首先创建 GPU Coder 配置对象、设置 GPU 参数以指向 NVIDIA Jetson 硬件平台,然后加入自定义的 main 函数。我们不会在 MATLAB 主机上编译代码,因为我们将专门为 NVIDIA Jetson 平台生成代码。我们将创建脚本来设置 GPU Coder 配置、输入示例数据,并为我们的应用生成源代码。

关于MATLAB 图像处理算法的作用分析介绍

我们随后在 MATLAB 中运行脚本为 chromaKey 算法生成 CUDA 代码。

向 NVIDIA Jetson 部署绿屏算法

要向 NVIDIA Jetson 部署生成的代码,我们需要使用以下 MATLAB 命令将全部所需文件打包到 codegen 目录。

关于MATLAB 图像处理算法的作用分析介绍

接下来,将生成的所有 codegen 文件夹从主机复制到 NVIDIA Jetson 控制板。在传输文件后,我们直接登录到 NVIDIA Jetson 以构建并运行应用程序。

登录到 NVIDIA Jetson 后,我们运行 NVIDIA 提供的 jetson_clocks.sh 脚本以将平台性能最大化、切换到包含生成的源代码(之前传输)的 codegen 目录,然后执行以下显示的编译命令。

在可执行程序(chromaKey)Build 后,使用 NVIDIA Jetson 控制台上的 USB 网络摄像头通过以下命令运行应用程序。每秒显示帧数将显示在输出窗口中。

关于MATLAB 图像处理算法的作用分析介绍

图 4 显示出现绿屏效果前后 NVIDIA Jetson 板卡的 USB 相机的输出内容。

图4:应用绿屏效果前后的示例

Raspberry Pi 和 NVIDIA Jetson 性能对比

NVIDIA Jetson 上 GPU 更加强大的并行处理能力极大地提高了算法的性能。Raspberry Pi 实现了约 1 帧/秒的帧频,而 NVIDIA Jetson 对于 1280x720 大小的图像实现了 20 帧/秒以上的帧频。也就是说,无需对算法进行任何修改或优化,我们便获得了 20 倍以上的加速。通过优化 MATLAB 算法提高 GPU 代码的生成效率,我们可以实现更高的性能。

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

    关注

    29

    文章

    1344

    浏览量

    59691
  • 摄像头
    +关注

    关注

    61

    文章

    5114

    浏览量

    103473
  • 网络
    +关注

    关注

    14

    文章

    8330

    浏览量

    95550
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    普源数字万用表高精度测量背后的ADC与信号处理算法

    普源(RIGOL)作为测试测量领域的知名品牌,其数字万用表以高精度、高稳定性著称。在实现高精度测量的背后,先进的模数转换器(ADC)技术与智能信号处理算法协同工作,构成了核心支撑。以下从ADC架构
    的头像 发表于 01-16 16:19 259次阅读
    普源数字万用表高精度测量背后的ADC与信号<b class='flag-5'>处理算法</b>

    高光谱成像:分析波长,可视化细微的色彩、材质差异和异物

    在机器视觉系统成像过程中,光源起着重要作用,合适的光源方案可以极大降低图像处理算法的复杂度,提高系统的稳定性、精度和速度。近年来,各领域利用高光谱成像技术进行检测的市场规模不断扩大,对高光谱相机
    的头像 发表于 12-26 17:02 701次阅读
    高光谱成像:<b class='flag-5'>分析</b>波长,可视化细微的色彩、材质差异和异物

    国密系列算法简介及SM4算法原理介绍

    在后续分享中分析AES和SM4算法的共同特点和可重构方法。 二、 SM4算法原理 图2所示为128位输入、128位密钥和128位输出的SM4算法流程图,共有32轮操作。SM4在每轮
    发表于 10-24 08:25

    基于FPGA的CLAHE图像增强算法设计

    CLAHE图像增强算法又称为对比度有限的自适应直方图均衡算法,其算法原理是通过有限的调整图像局部对比度来增强有效信号和抑制噪声信号。
    的头像 发表于 10-15 10:14 784次阅读
    基于FPGA的CLAHE<b class='flag-5'>图像</b>增强<b class='flag-5'>算法</b>设计

    中科亿海微Link-Sea-H6A图像处理套件

    实现摄像头接入、图像处理算法、显示输出等功能。开发套件集成板上FLASH、EEPROM、SDRAM、按键、LED灯等外设,其中SDRAM板载两片,每片容量为16M
    的头像 发表于 09-29 15:49 853次阅读
    中科亿海微Link-Sea-H6A<b class='flag-5'>图像</b><b class='flag-5'>处理</b>套件

    MATLAB 助力香港中文大学解决生物医学图像处理挑战

    Processing Toolbox™ 加速了生物医学图像处理工作流程。借助 MathWorks 的软件,研究人员高效地对万亿体素级别的图像进行了分割和分析,以往这些任务需要高端计算
    的头像 发表于 08-28 15:07 701次阅读

    商汤大装置跻身中国大模型推理算力厂商第一梯队

    近日,IDC发布首个《2025中国大模型推理算力市场分析报告》。
    的头像 发表于 08-14 09:29 5038次阅读

    FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效

    图像处理图像处理关键环节,可优化数据传输、减轻主机负担,其算法可在FPGA等硬件上执行。友思特FPGA
    的头像 发表于 08-13 17:41 1324次阅读
    FPGA 加持,友思特<b class='flag-5'>图像</b>采集卡高速预<b class='flag-5'>处理</b>助力视觉系统运行提速增效

    DFT算法与FFT算法的优劣分析

    一概述 在谐波分析仪中,我们常常提到的两个词语,就是DFT算法与FFT算法,那么一款功率分析仪/谐波分析仪采用DFT
    的头像 发表于 08-04 09:30 1754次阅读

    基于Matlab与FPGA的双边滤波算法实现

    前面发过中值、均值、高斯滤波的文章,这些只考虑了位置,并没有考虑相似度。那么双边滤波来了,既考虑了位置,有考虑了相似度,对边缘的保持比前几个好很多,当然实现上也是复杂很多。本文将从原理入手,采用Matlab与FPGA设计实现双边滤波算法
    的头像 发表于 07-10 11:28 4806次阅读
    基于<b class='flag-5'>Matlab</b>与FPGA的双边滤波<b class='flag-5'>算法</b>实现

    【Banana Pi BPI-RV2开发板试用体验】移植音频处理算法回声消除降噪性能等效果评估

    一. 前言 虽然香蕉派 BPI-RV2 RISC-V 开发板主打路由器开发,但是其强劲的性能,所以进行实时音频处理等应用也是小菜一碟。 本文分享移植音频处理算法,评估算法运行效率,评估回声消除降噪等
    发表于 07-09 23:19

    图像信号分析处理卡设计原理图:536-基于FMC接口的XCZU7EV 通用PCIe卡 视觉处理卡 工业控制卡

    XCZU7EV 通用PCIe卡 , 图像信号分析处理卡 , 视觉处理卡 , 工业控制卡 , 存储扩展卡
    的头像 发表于 07-08 10:47 1387次阅读
    <b class='flag-5'>图像</b>信号<b class='flag-5'>分析</b><b class='flag-5'>处理</b>卡设计原理图:536-基于FMC接口的XCZU7EV 通用PCIe卡 视觉<b class='flag-5'>处理</b>卡 工业控制卡

    普源示波器如何连接MATLAB实现数据采集与分析

    普源示波器(Rigol)作为国内知名的测试测量仪器品牌,广泛应用于电子工程、科研实验、教学等领域。为了进一步扩展其功能,用户常需将示波器与MATLAB等数据分析平台连接,实现自动化测试、实时信号处理
    的头像 发表于 05-29 09:34 1352次阅读

    工业相机的作用及未来发展

    工业相机核心作用是通过图像处理分析,为工业自动化提供关键数据支持。
    的头像 发表于 05-21 16:15 1231次阅读
    工业相机的<b class='flag-5'>作用</b>及未来发展

    一文读懂!图像采集卡是什么?它在工业/医疗/监控等多领域中的作用

    你有没有想过,在工业检测、医院手术室、安防监控这些高精度影像场景中,图像是怎么被“抓”进电脑里进行分析处理的?单靠摄像头就能搞定吗?其实并没那么简单,真正起到关键作用的,是一种常被忽视
    的头像 发表于 05-13 13:35 2426次阅读
    一文读懂!<b class='flag-5'>图像</b>采集卡是什么?它在工业/医疗/监控等多领域中的<b class='flag-5'>作用</b>