Neural Nework - 物体检测
材料准备
- AmebaPro2 [ AMB82 MINI ] x 1
范例说明
介绍
在这个例子中,我们将使用 Ameba Pro2 开发板使用板载摄像头传感器(JXF37)检测 80 种不同的物体,如人、自行车、汽车、笔记本电脑等。
以下示例显示了如何使用对象检测和屏幕显示。这两个示例之间的主要区别在于对象检测结果的处理位置。 “ObjectDetectionCallback”使用回调函数,而“ObjectDetectionLoop”在循环函数中处理结果。
1. ObjectDetectionLoop
2. ObjectDetectionCallback
流程
打开其中一个对象检测示例 “File” -> “Example” -> “AmebaNN” -> “ObjectDetectionLoop”。
由于将使用摄像头视频输出,因此请确保“工具”中的“Video ISP Bin”选项设置为启用。还要确保启用“Neural Network Bin”以上传包含所需神经网络二进制文件的 Flash 二进制文件。
在标记的代码片段中,将您的 WiFi 网络 SSID 填入“ssid”,将网络密码填入“pass”。
编译代码并将其上传到 Ameba。按下Reset键后,等待Ameba Pro 2开发板连上WiFi网络。用于 RTSP 的开发板 IP 地址和网络端口号将显示在串行监视器中。
可以使用 VLC 验证检测到的对象的结果。您可以从连结下载 VLC 媒体播放器 (这里)。
软件安装完成后,打开VLC media player,进入 “Media” -> “Open Network Stream”。
确保您的 PC 连接到与 Ameba Pro2 开发板相同的网络以进行串流式传输。由于 RTSP 被用作串流媒体协议,在 VLC 媒体播放器中键入“rtsp://{IPaddress}:{port}”作为网络 URL,将 {IPaddress} 替换为您的 Ameba Pro2 开发板的 IP 地址,以及 {port } 使用串行监视器中显示的 RTSP 端口(例如,“rtsp://192.168.1.154:554”)。默认的 RTSP 端口号是 554。
接下来,点击“播放”开始RTSP 串流式传输以查看结果。来自摄像机的视频串流将显示在 VLC 媒体播放器中。
将在 RTSP 视频串流上绘制一个带有对象名称和置信度分数的边界框,以标记已识别的对象。
预训练模型总共可以识别 80 种不同类型的物体。这些对象可以在 ObjectClassList.h 中找到。每个对象的索引号是固定的,不应更改。要停用某些物体的检测,请将过滤器值设置为 0。例如,将过滤器值设置为 0 以排除对自行车的检测。
程式码说明
获得更好视频质量的推荐设置,请参考Ameba FAQ:https ://forum.amebaiot.com/t/ameba-faq/1220。
可以根据您的 WiFi 网络质量调整视频bitrate,方法是取消注解下面标示的程式码。