图像处理

Vivado HLS嵌入式实时图像处理系统的构建与实现

作者:张艳辉,郭洺宇,何 宾

摘 要: 传统的基于CPU、GPU和DSP的处理平台难以满足图像实时处理的要求,而FPGA在并行图像处理上有着独一无二的优势,在性能和成本之间提供更加灵活的选择。通过Xilinx最新的Vivado HLS工具,设计实现了可变参数的拉普拉斯算子图像滤波算法,并且在ZYNQ-7000 SoC上构建了可视化的实时嵌入式图像处理系统。实验结果表明,系统可以实现不同的图像处理算法,很好地满足了图像处理的实时性、高性能、低成本要求,对未来高性能图像处理系统的设计和实现提供了很好的借鉴。

0 引言

CPU vs FPGA?图像处理谁更“应景”?

作者:Brandon Treece,NI总部数据采集和控制产品市场经理

机器视觉在工业自动化系统中的应用已经有一定的历史,它取代了传统的人工检查,提高了生产质量和产量。 我们已经看到了相机在计算机、移动设备和汽车等日常生活设备中的迅速普及,但是机器视觉的最大进步莫过于处理能力。随着处理器的性能以每两年翻一番的速度不断提升,以及多核CPU和FPGA等并行处理技术日益受到关注,视觉系统设计人员现在可以应用复杂的算法来可视化数据,并创建出更加智能的系统。

性能的提高意味着设计人员可以获得更高的数据吞吐量,从而实现更快速的图像采集,使用更高分辨率的传感器,并充分利用市场上具有最高动态范围的一些新款相机。性能的提高不仅可让设计人员更快速地采集图像,而且还能更快速地处理图像。预处理算法(如阈值和滤波)或处理算法(如模式匹配)也可以更快速地执行。最终设计人员能够比以往更快地基于可视化数据制定决策。

德州奥斯汀NI总部数据采集和控制产品市场经理,主要负责机器视觉领域的Brandon Treece认为,随着视觉系统越来越多地集成最新一代多核CPU和强大FPGA,视觉系统设计人员需要了解使用这些处理元件的好处和得失。他们不仅需要在正确的硬件上运行正确的算法,还需要了解哪些架构最适合作为其设计的基础。

基于Zynq的HDMI视频解码方式和相关IP核介绍

在图像处理应用开发中,捕获或显示图像的最简单方法之一是使用HDMI(高清晰度多媒体接口)。HDMI是一种可以传输高清数字视频和音频数据的专有标准,被许多显示器和相机支持并广泛采用。这个特点使得HDMI成为Zynq图像处理应用的理想接口标准。

在这篇文章中,我们将向大家介绍如何在不同目标开发板上使用基于Zynq的HDMI传输。

图:Arty Z7 HDMI输入输出案例

图:Arty Z7 HDMI输入输出案例

FPGA : 用“芯”做图

作者:张博/闵彪/章恒

背景

“No PP,No WAY”这是个眼见为实的世界,这是个视觉构成的信息洪流的世界。大脑处理视觉内容的速度比文字内容快6万倍,而随着智能手机的普及,图片、视频的产生和分享已经是人们在社交平台上的基本交流方式。用户通过手机、平板、电脑上传和分享自己的图片,而且这个趋势是每年都在增长(参见图1)。

图1. 2016年KPCB统计报告

图1. 2016年KPCB统计报告

参考资料:xilinx大学计划
实验平台:ZYBO开发板

本次实验要做的是一个基于FPGA的简单图像处理程序, 共实现两个功能:
1.输出一个灰度图像的直方图。
2.将一个曝光不足的图像进行处理,使其对比度更大。

一、Vivado HLS 部分

首先我们用Vivado HLS来编写FPGA图像处理所用的IP核。

1.绘制直方图

1.首先编写相应的C/C++语言程序,加入到Vivado HLS工程中,再编写相应的testbench代码进行编译测试。


代码很简单大家看一下就明白了。

注意到右侧Directive窗口中的优化部分,分别表示doHist的输出接口使用AXI4-lite传输协议,inStream图像输入接口采用AXI4协议,输入数组histo存入bram中,loop_init循环进行展开。

2.点击Run C Simulation进行对C/C++源文件进行编译测试。

矩阵卷积理解

在图像处理的过程中,经常会看到矩阵卷积的概念,比如说用一个模板去和一张图片进行卷积,因此很有必要了解矩阵卷积到了做了什么,具体又是怎么计算的。

在matlab中有conv2函数对矩阵进行卷积运算,其中有一个shape参数,取值具体有三种:
-full - (default) returns the full 2-D convolution,
-'same' - returns the central part of the convolution
that is the same size as A.
-'valid' - returns only those parts of the convolution
that are computed without the zero-padded edges.
size(C) = max([ma-max(0,mb-1),na-max(0,nb-1)],0).

用一幅图可以很好的理解这三个参数代码的具体含义:

视频:尖端的视频/图像处理方案

RGB Spectrum 是尖端视频/图形处理器和决策支持系统的领先厂商,为计算机及视频信号的显示,记录和传输提供创新解决方案。公司产品包括多显示器,视频墙处理器,矩阵切换器,视频编解码器,记录仪,以及集成的中央控制室方案。RGB Spectrum 的产品涉及工业、安全、医疗、教育、商业等领域。本视频展示了基于赛灵思 FPGA 的一些尖端视频/图像处理方案。

长文揭秘图像处理和卷积神经网络架构

本文由微信公众号“机器之心”(ID:almosthuman2014)编译,选自 Analyticsvidhya,作者:DISHASHREE GUPTA

近日,Dishashree Gupta 在 Analyticsvidhya 上发表了一篇题为《Architecture of Convolutional Neural Networks (CNNs) demystified》的文章,对用于图像识别和分类的卷积神经网络架构作了深度揭秘;作者在文中还作了通盘演示,期望对 CNN 的工作机制有一个深入的剖析。

引言

MATLAB中图像处理的函数

MATLAB 图像处理命令

1. MATLAB中图像处理的一些简单函数

A、 imread

imread函数用于读入各种图像文件,其一般的用法为
[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。例:[X,MAP]=imread(’flowers.tif’,’tif’);比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size函数用来显示数组的维数,了解数据的特点。
B=size(a) 返回数组a 的维数。

B、 imwrite

imwrite函数用于输出图像,其语法格式为:
imwrite(X,map,filename,fmt)
imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。

C、 imfinfo

imfinfo函数用于读取图像文件的有关信息,其语法格式为
imfinfo(filename,fmt)

作者:kenshin

NET(New Electronic Technology)是一家集软硬件设计于一体的高科技公司,主要面向医疗和工业领域提供高级的摄像头解决方案,除了硬件设计还深入研究一系列实际应用场景的图像采集和图像处理算法,经过二十年的发展已经积累了丰富的设计经验和技术专利。在2017年举办的嵌入式视觉大会上该公司隆重推出了两款新一代GigE摄像头:GigEPRO 和CORSIGHT。(图1:NET公司推出的GigEPRO系列千兆网络摄像头)

图2:NET公司推出的CORSIGHT系列千兆网络摄像头

图2:NET公司推出的CORSIGHT系列千兆网络摄像头

同步内容