目标检测图像
材料
AMB82-mini x 1
SD 卡 x 1
范例
在本范例中,我们将使用开发板在保存于外部 SD 卡的单张图像上检测 80 种不同类型的目标,例如人、自行车、汽车、笔记本电脑等。
在 File -> Examples -> AmebaNN -> ObjectDetectionImage 中打开目标检测图像范例。
使用 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 模型重参数化指南 获取指导。
接下来,创建一个名为 image_list.txt 的文本文件,或按您的需要重命名。
在创建的文本文件中列出要处理的图像。
编译并上传代码。打开串口监视器查看响应。
NN 检测结果将保存为与图像同名的 JSON 文件。您也可以在串口监视器上查看结果(如下所示)。
预训练模型总共可以识别 80 种不同类型的目标。每个目标的索引号是固定的,不应更改。
请参考以下由默认 YOLO 模型识别的目标列表,目标的索引对应 JSON 文件中的 "category_id" 值。
{0, "person" },
{1, "bicycle" },
{2, "car" },
{3, "motorbike" },
{4, "aeroplane" },
{5, "bus" },
{6, "train" },
{7, "truck" },
{8, "boat" },
{9, "traffic light" },
{10, "fire hydrant" },
{11, "stop sign" },
{12, "parking meter" },
{13, "bench" },
{14, "bird" },
{15, "cat" },
{16, "dog" },
{17, "horse" },
{18, "sheep" },
{19, "cow" },
{20, "elephant" },
{21, "bear" },
{22, "zebra" },
{23, "giraffe" },
{24, "backpack" },
{25, "umbrella" },
{26, "handbag" },
{27, "tie" },
{28, "suitcase" },
{29, "frisbee" },
{30, "skis" },
{31, "snowboard" },
{32, "sports ball" },
{33, "kite" },
{34, "baseball bat" },
{35, "baseball glove" },
{36, "skateboard" },
{37, "surfboard" },
{38, "tennis racket" },
{39, "bottle" },
{40, "wine glass" },
{41, "cup" },
{42, "fork" },
{43, "knife" },
{44, "spoon" },
{45, "bowl" },
{46, "banana" },
{47, "apple" },
{48, "sandwich" },
{49, "orange" },
{50, "broccoli" },
{51, "carrot" },
{52, "hot dog" },
{53, "pizza" },
{54, "donut" },
{55, "cake" },
{56, "chair" },
{57, "sofa" },
{58, "pottedplant" },
{59, "bed" },
{60, "diningtable" },
{61, "toilet" },
{62, "tvmonitor" },
{63, "laptop" },
{64, "mouse" },
{65, "remote" },
{66, "keyboard" },
{67, "cell phone" },
{68, "microwave" },
{69, "oven" },
{70, "toaster" },
{71, "sink" },
{72, "refrigerator" },
{73, "book" },
{74, "clock" },
{75, "vase" },
{76, "scissors" },
{77, "teddy bear" },
{78, "hair dryer" },
{79, "toothbrush" }