Neural Nework - 物体检测
材料准备
- AmebaPro2 [ AMB82 MINI ] x 1
范例说明
介绍
在这个例子中,我们将使用 Ameba Pro2 开发板使用板载摄像头传感器(JX-F37P)检测 80 种不同的物体,如人、自行车、汽车、笔记本电脑等。
以下示例显示了如何使用对象检测和屏幕显示。 这两个示例之间的主要区别在于对象检测结果的处理位置。 “ObjectDetectionCallback”使用回调函数,而“ObjectDetectionLoop”在循环函数中处理结果。
1. ObjectDetectionLoop
2. ObjectDetectionCallback
流程
打开其中一个对象检测示例 “File” -> “Example” -> “AmebaNN” -> “ObjectDetectionLoop”。
在标记的代码片段中,将您的 WiFi 网络 SSID 填入“ssid”,将网络密码填入“pass”。
使用以黄色标记的 modelSelect() 函式选择Neural Network (NN) 工作和模型。 该函式有 4 个参数:Neural Network工作、物体侦测模型、人脸侦测模型和人脸辨识模型。 如果您选择的Neural Network工作不需要它们,请替换为“NA_MODEL”。 请注意,必须在调用 begin() 之前调用 modelSelect()。
有效的Neural Network工作: OBJECT_DETECTION, FACE_DETECTION, FACE_RECOGNITION
有效的物体侦测模型:
YOLOv3 model: DEFAULT_YOLOV3TINY, CUSTOMIZED_YOLOV3TINY
YOLOv4 model: DEFAULT_YOLOV4TINY, CUSTOMIZED_YOLOV4TINY
YOLOv7 model: DEFAULT_YOLOV7TINY, CUSTOMIZED_YOLOV7TINY
有效的人脸侦测模型: DEFAULT_SCRFD, CUSTOMIZED_SCRFD
有效的人脸辨识模型: DEFAULT_MOBILEFACENET, CUSTOMIZED_MOBILEFACENET
如果您想使用自己的 NN 模型,请选择自定义选项(例如,CUSTOMIZED_YOLOV4TINY/ CUSTOMIZED_SCRFD/ CUSTOMIZED_MOBILEFACENET)。 要了解转换 AI 模型的过程,请参阅此处。 此外,请参阅此处以了解如何安装和使用转换后的模型。
请注意,对于来自 pytorch 的 Yolov7 物件侦测训练,您将需要执行额外的步骤来重新定义参数。 对于此重新参数化步骤,Realtek 在 ~/NeuralNetwork/Yolov7_reparam_scripts 下的 Yolov7_reparam_scripts 资料夹中提供了两个脚本。
运行命令是:
python reparam_yolov7-tiny.py –weights weights/best.pt –custom_yaml custom/yolov7-tiny-deploy.yaml –output best_reparam.pt
编译代码并将其上传到 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 以排除对自行车的检测。
程式码说明
可以根据您的 WiFi 网络质量调整视频bitrate,方法是取消注解下面标示的程式码。