Video - 屏幕显示的动作检测

材料准备

范例说明

介绍

在这个例子中,我们将使用 Ameba Pro2 开发板来检测运动并在 RTSP 视频串流上标记它。动作检测是通过比较从板载摄像头传感器 (JXF37) 撷取的每个图像帧的 RGB 信息来实现的。

以下示例显示了如何使用动作检测和屏幕显示。这两个示例之间的主要区别在于处理动作检测结果的位置。 “CallbackPostProcessing”使用回调函数,而“LoopPostProcessing”在循环函数中处理结果。
1. LoopPostProcessing
2. CallbackPostProcessing

流程

打开其中一个动作检测示例 “File” -> “Example” -> “AmebaVideo” -> “MotionDetection” -> “LoopPostProcessing”。

1

由于将使用摄像头视频输出,因此请确保“工具”中的“Video ISP Bin”选项设置为启用。

1

在标记的代码片段中,将您的 WiFi 网络 SSID 填入“ssid”,将网络密码填入“pass”。

1

编译代码并将其上传到 Ameba。按下Reset键后,等待Ameba Pro 2开发板连上WiFi网络。用于 RTSP 的开发板 IP 地址和网络端口号将显示在串行监视器中。

1

您可以从连结下载 VLC 媒体播放器 (这里)
软件安装完成后,打开VLC media player,进入 “Media” -> “Open Network Stream”。

1

确保您的 PC 连接到与 Ameba Pro2 开发板相同的网络以进行串流式传输。由于 RTSP 被用作串流媒体协议,在 VLC 媒体播放器中键入“rtsp://{IPaddress}:{port}”作为网络 URL,将 {IPaddress} 替换为您的 Ameba Pro2 开发板的 IP 地址,以及 {port} 使用串行监视器中显示的 RTSP 端口(例如,“rtsp://192.168.1.174:554”)。默认的 RTSP 端口号是 554。

您可以在“Show more options”中选择更改缓存时间。默认值 1000 将在相机看到的内容和屏幕上显示的内容之间引入一秒的延迟。较短的缓存时间将减少视频延迟,但在网络状况不佳的情况下可能会导致播放卡顿。

1

接下来,单击“Play”开始 RTSP 串流式传输。来自摄像机的视频串流将显示在 VLC 媒体播放器中。当在视频中检测到动作时,将生成一个包含检测到的动作的框。

将生成一个红色框以显示视频中检测到动作的最大区域,并且在该区域内,将生成多个绿色框以识别动作中的项目。

1

通过运行“CallbackPostProcessing”,将生成一个框来显示检测到动作的最大区域。

1

程式码说明
获得更好视频质量的推荐设置,请参考Ameba FAQ: https://forum.amebaiot.com/t/ameba-faq/1220
可以根据您的 WiFi 网络质量调整视频bitrate,方法是取消注解下面标示的程式码。

1

请先确认已安装QQ通讯软体