主要内容

图像金字塔

这个例子展示了如何生成多层次金字塔图像像素流从输入流。这个模型派生多个像素流,将采样原始图像在水平和垂直两个方向,使用高斯滤波。这种类型的过滤器可以避免混叠工件。适合fpga的实现使用一个架构。

图像金字塔是用在许多图像处理应用,如图像压缩、目标检测和识别使用技术,如卷积神经网络(CNN)或聚合通道特性(ACF)。图像金字塔也类似于尺度空间表示。

示例模型需要一个240 p的视频输入和生产三个输出流:160 x120 80 x60, 40 x30。

modelname =“ImagePyramidHDL”;open_system (modelname);set_param (modelname“SampleTimeColors”,“上”);set_param (modelname“SimulationCommand”,“更新”);set_param (modelname“开放”,“上”);集(allchild (0)“可见”,“关闭”);

金字塔的每一层包含一个行缓冲块和将采样滤波器。

open_system ([modelname“/ ImagePyramidTop / ResamplingPyramidFilter”),“力”);

滤波器系数

的近似高斯滤波器系数[1]已经使用在许多图像金字塔的实现。这些系数是由:

格式Hh = [1 4 6 4 1]。/ 16;高压= Hh ';Hg =高压* Hh
Hg =列1到3 0.003906250000000 0.015625000000000 0.023437500000000 0.015625000000000 0.062500000000000 0.093750000000000 0.023437500000000 0.093750000000000 0.140625000000000 0.015625000000000 0.062500000000000 0.093750000000000 0.003906250000000 0.015625000000000 0.023437500000000列4到5 0.015625000000000 0.003906250000000 0.062500000000000 0.015625000000000 0.093750000000000 0.023437500000000 0.062500000000000 0.015625000000000 0.015625000000000 0.003906250000000

结果相似但不完全相同的高斯内核1.0817797其实历史。所以,Hg是一个近似高斯内核。

高频= fspecial (“高斯”5,1.0817797)
高频=列1到3 0.004609023214619 0.016606534868404 0.025458671096979 0.016606534868404 0.059834153028525 0.091728830511040 0.025458671096979 0.091728830511040 0.140625009648116 0.016606534868404 0.059834153028525 0.091728830511040 0.004609023214619 0.016606534868404 0.025458671096979列4到5 0.016606534868404 0.004609023214619 0.059834153028525 0.016606534868404 0.091728830511040 0.025458671096979 0.059834153028525 0.016606534868404 0.016606534868404 0.004609023214619

过滤器,Hg,显然是可分的,因为它是由水平和垂直的向量。因此,可分离滤波器实现是一个不错的选择。许多系数值的两个或两个只有两个大国的两种的组合。这些值意味着滤波器实现可以代替乘法转变和添加等技术规范签署数字(CSD)。分离中的每个向量表示也是对称的,所以过滤器实现使用一个对称公元前由进一步减少操作的数量。

将采样

与上面的近似高斯滤波器低通滤波后,然后downsamples像素流模型由两个在水平和垂直两个方向。这主要是通过其他像素交替的有效信号。该模型还再现了pixelcontrol总线信号。

比较的模型包括横向和纵向的计数器输出像素的数量和行面具参数有源像素和线条。这些统计模型使用重新创建的线(又)和框架(出售)信号。

将采样一次,之后pixelcontrol总线有效信号交替高然后低其他像素。在第二次downsample,交替模式的一个有效像素三个无效的像素紧随其后。在某些应用程序中,您可能想要收集所有的有效像素为持续有效时间。像素流FIFO块之间使用downsample阶段,产生连续的有效像素每一行。

每个ResamplingPyramidFilter子系统接受参数的输出帧的大小。这些数字必须是整数,两个小于输入图像的一个因素。如果输入的每行像素数量是奇怪而不是偶数,然后一轮下来到下一个整数。例如,如果输入大小是25每行像素,请求的输出尺寸必须12每行像素。

要进一步

高斯滤波器内核中使用传统的图像金字塔不是唯一可以使用低通滤波器。使用一个edge-preserving低通滤波器,如双边滤波器,不同大小的内核,将保留更多详细的金字塔。

有时有助于计算两个级别的图像金字塔的区别。这个算法被称为拉普拉斯算子的金字塔。小级别是upsampled大小一样大,和过滤。过滤器通常是一个按比例缩小的版本相同的近似高斯滤波器中使用这个模型。层的区别是将采样过程中丢失的信息。拉普拉斯算子的金字塔可以用于应用程序包括噪声去除、取心合成在不同时间或不同焦距拍摄的图像,和许多其他人。

这个模型的潜在限制是相当高的输出流之间的延迟。这延迟是因为第二个和第三个水平取决于前面的输出水平。这可以避免通过创建并行过滤器操作更多的线。这个例子实现了一个5-by-5过滤器存储在每个级别5行。低延迟并行实现需要13行存储两级三级过滤器的过滤或103行。这通常不是一个划算的交易。

在fpga上,行缓冲记忆通常使用块实现公羊。较小的记忆可以在FPGA中实现织物,和被称为分布式公羊。合成工具选择块或分布式RAM取决于你的设备的资源。由于将采样线的尺寸变得越来越小,分布可以更有效的公羊。在本例中,行缓冲块在每个级别储备空间2 k每行像素。这个大小的默认大小线缓冲区,并提供1080 p视频格式。针对分布式公羊,指定一个小功率的两个线缓冲区大小参数。在这个示例中,您可以设置线缓冲区大小的三个水平到256年,128年和64年。

引用

伯特[1],P。,and E. Adelson. "The Laplacian Pyramid as a Compact Image Code."IEEE通信31日。4(1983年4月):532 - 40。