UVCD 目标检测
材料
AMB82-mini x 1
范例
在本范例中,我们将使用开发板通过板载摄像头传感器(JX-F37P)检测 80 种不同类型的目标,例如人、自行车、汽车、笔记本电脑等。
以下范例展示了目标检测和屏幕显示(On-Screen Display)的使用方式。
打开范例:File -> Examples -> AmebaNN -> UVCDObjectDetectionLoop
使用 modelSelect() 函数选择神经网络(NN)任务和模型。该函数接受 4 个参数:神经网络任务、目标检测模型、人脸检测模型和人脸识别模型。如果所选神经网络任务不需要某些模型,请用 "NA_MODEL" 替换。请注意,在调用 begin() 函数之前,必须调用 modelSelect() 函数。
有效的神经网络任务:
OBJECT_DETECTION、FACE_DETECTION、FACE_RECOGNITION有效的目标检测模型:
YOLOv3-tiny 模型:
DEFAULT_YOLOV3TINY、CUSTOMIZED_YOLOV3TINYYOLOv4-tiny 模型:
DEFAULT_YOLOV4TINY、CUSTOMIZED_YOLOV4TINYYOLOv7-tiny 模型:
DEFAULT_YOLOV7TINY、CUSTOMIZED_YOLOV7TINY
有效的人脸检测模型:
DEFAULT_SCRFD、CUSTOMIZED_SCRFD有效的人脸识别模型:
DEFAULT_MOBILEFACENET、CUSTOMIZED_MOBILEFACENET
如果您想使用自己的神经网络模型,请选择自定义选项(例如 CUSTOMIZED_YOLOV4TINY/ CUSTOMIZED_SCRFD/ CUSTOMIZED_MOBILEFACENET)。要了解 AI 模型转换的流程,请参考
AI 模型转换工具
。此外,请参考
AI 模型部署指南
了解如何安装和使用转换后的模型。
小技巧
请注意,对于从 PyTorch 训练的 Yolov7 目标检测模型,您需要额外执行一个重参数化步骤。Realtek 已在 Yolov7_reparam_scripts 文件夹(位于 ~/NeuralNetwork/Yolov7_reparam_scripts)中提供了两个脚本。
运行命令: python reparam_yolov7-tiny.py --weights weights/best.pt --custom_yaml custom/yolov7-tiny-deploy.yaml --output best_reparam.pt
您也可以参考 自定义 YOLOv7-tiny 模型重参数化指南 获取指导。
编译代码并上传至 Ameba。按下重置按钮后,通过 micro-USB 线将"USB OTG"连接到目标设备(例如 PC)。
如下所示查看 USB 摄像头驱动程序。
检测到的目标结果可以使用 Potplayer 验证。您可以从 此处 下载 Potplayer。
软件安装完成后,打开 Potplayer,进入 PotPlayer -> Open -> Device Settings
接下来,在设备和格式下拉菜单中,选择"USB UVC CLASS"和"H264 1920x1080 24",然后单击"打开设备"。
摄像头的视频流将显示在 Potplayer 中。
包含目标名称和置信度分数的边界框将绘制在 RTSP 视频流上,以突出显示已识别的目标。