主要内容

配置树莓派V4L2视频采集块的图像和设备属性,用于检测对象

这个例子展示了如何配置Simulink®支持包中的V4L2视频捕获块的图像和设备属性,并观察SDL视频显示块中的输出。金宝app金宝app本例还展示了如何调整V4L2 Video Capture块的图像属性,以检测有噪声和扭曲的实时视频中的对象。

先决条件

有关如何在树莓派硬件上使用Simulink支持包的更多信息,请参见金宝app金宝app树莓派硬件的Simulink支持包入门金宝app金宝app

所需的硬件

  • 树莓派硬件板

  • USB网络摄像头符合通用视频等级(UVC)标准

硬件设置

将网络摄像头连接到树莓派硬件板上。

任务1:修改V4L2视频捕获块参数,观察SDL视频显示块的变化

打开一个新的Simul金宝appink空白模型并连接V4L2视频采集而且SDL视频显示块。

将网络摄像头连接到树莓派板上。在摄像头前放一些东西。

硬件选项卡中的Simuli金宝appnk模型模式部分中,点击在船上跑然后选择连接输入输出在下拉列表中。在在电脑上运行部分中,点击使用IO运行.打开“SDL视频显示”窗口。

在V4L2视频捕获块中执行这些操作,并在SDL视频显示窗口中观察对图像的影响。

1.在基本的标签。V4L2视频采集块参数对话框:

  • 选择沿水平轴翻转图像沿水平轴旋转图像。

  • 选择沿垂直轴翻转图像沿垂直轴旋转图像。

2.在先进的的标签。V4L2视频采集块参数对话框:

使用滑块来改变图像的亮度。

高亮度图像

低亮度图像

中调整其他图像和设备属性先进的标签,并观察SDL视频显示块上的输出。有关更多信息,请参见V4L2视频采集

任务2:使用V4L2视频捕获块检测对象

本任务使用来自Simulink支持包for Raspberry金宝app Pi硬件的预配置Simulink模型。金宝app

要打开Simulink模金宝app型,请在MATLAB®命令窗口中运行此命令。

open_system (“raspberrypi_object_detection”

视频捕捉

V4L2视频采集块中的视频捕获部分支持从uvc兼容的USB网络摄像头进行视频捕获。金宝app网络摄像头还应支持YUYV(亮度和亮度)模式下金宝app的数据采集。使用USB线将网络摄像头连接到树莓派板上。

配置V4L2视频采集块参数对话框。

  1. 图像大小640 x480

  2. 像素格式YCbCr 4:2:2

  3. 样品时间1/30

YV4L2视频捕获块的输出端口包含灰度图像。

算法

中值滤波器算法区域的块减少了V4L2块捕获的灰度图像中存在的脉冲噪声。

阈值子系统将灰度图像转换为二值图像。

打开阈值在MATLAB命令窗口中运行该命令。

open_system (“raspberrypi_object_detection /阈值”

Blob分析块计算检测到的对象的统计信息。在这个例子中,块计算图像统计信息,如质心和包围框。

中配置主要的标签。Blob分析块参数对话框。

  1. 选择重心而且边界框

配置Blob属性的标签。Blob分析块参数对话框。

  1. 最大blobs数量5.该参数确定块检测到的对象的最大数量。

  2. 选择指定以像素为单位的最小斑点区域1000

  3. 选择指定以像素为单位的最大斑点区域100000

可视化

画标记可视化区域中的子系统接受三个输入。

  • 二值图像阈值子系统

  • 二值图像上检测到的物体的质心坐标

  • 在二值图像上检测到的对象的包围框坐标

打开画标记在MATLAB命令窗口中运行该命令。

open_system (“raspberrypi_object_detection /画标记”

画标记块使用被检测对象的质心坐标点作为输入,在质心点上绘制标记。在本例中,字母X用于表示被检测物体的质心。

配置画标记块参数对话框。

  1. 标志形状x标记

  2. 边框颜色指定的值

  3. 颜色值(s)[255 0 0]

  4. 图像信号单独的颜色信号

画出形状块使用检测到的对象的包围框坐标点作为输入,在其周围绘制包围框。在本例中,矩形框用于在检测到的对象周围绘制边界框。

配置画出形状块参数对话框。

  1. 形状矩形

  2. 边框颜色指定的值

  3. 颜色值(s)[255 0 0]

  4. 图像信号单独的颜色信号

图像数据是从数据类型转换而来的到uint8分离为单独的R, G和B数据信号,并作为SDL视频显示块的输入。

过滤后的图像子系统显示通过中值滤波器后的图像数据。

打开过滤后的图像在MATLAB命令窗口中运行该命令。

open_system (“raspberrypi_object_detection /过滤图像”

原始图像子系统显示使用V4L2视频捕获块捕获的原始图像数据。

打开原始图像在MATLAB命令窗口中运行该命令。

open_system (“raspberrypi_object_detection /原始图像”

在Con金宝appnected IO模式下运行Simulink模型

您可以对“V4L2视频捕获”对话框的图像属性进行更改,并在SDL视频显示窗口。有关更多信息,请参见使用已连接IO与硬件通信

硬件选项卡中的Simuli金宝appnk模型模式部分中,点击在船上跑然后选择连接输入输出在下拉列表中。在在电脑上运行部分中,点击使用IO运行

如果由于高背景噪声而未检测到对象,请更改先进的V4L2视频捕获块的选项卡。例如,当物体被放置在低光下时,可以提高亮度来检测物体。然而,当物体被放置在明亮的光线下时,你可以降低亮度来检测物体。不断更改图像属性,直到可以清楚地查看对象。

一旦图像清晰,可以检测到物体,观察围绕它绘制的质心和包围框。

其他可以尝试的事情

  • 在外部模式下运行金宝appSimulink模型(Monitor和Tune)。

  • 计算图像中检测到的物体的数量。使用参数,例如围绕检测到的对象绘制的质心或包围框的数量。

  • 将V4L2 Video Capture块属性用于对象检测以外的应用程序。