尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Detecto 4行代码实战:预训练Faster R-CNN ResNet-50模型首次推理详解

Detecto 4行代码实战:预训练Faster R-CNN ResNet-50模型首次推理详解 Detecto 4行代码实战预训练Faster R-CNN ResNet-50模型首次推理详解【免费下载链接】detectoBuild fully-functioning computer vision models with PyTorch项目地址: https://gitcode.com/gh_mirrors/de/detectoDetecto是构建在 PyTorch 之上的 Python 目标检测库只需 4 行代码即可加载预训练的 Faster R-CNN ResNet-50 FPN 模型对图片或视频完成首次推理实时画出检测框无需手写任何模型代码。本文带你从零跑通这个预训练模型的目标检测推理流程 上图就是 Detecto 用预训练模型对一张照片跑完推理后的效果苹果和橙子被准确框出并标上了apple、orange标签。接下来我们拆解它是怎么做到的。一、Detecto 为什么适合新手做目标检测Detecto 的设计目标只有一个让目标检测变得足够简单。它的核心优势包括⚡代码极少创建并运行一个预训练 Faster R-CNN ResNet-50 模型只需要 4 行代码见 README.md 中的官方示例基于 PyTorch底层使用 torchvision 的预训练模型fasterrcnn_resnet50_fpn两者之间可以无缝互转见 detecto/core.py 中Model.__init__的实现️自动选择设备有 GPU 就用 GPU没有则回落到 CPU逻辑在 detecto/config.py开箱即用的可视化图片标注、视频检测、摄像头实时检测一应俱全见 detecto/visualize.py默认模型在 COCO 数据集上预训练可以识别80 个类别包括人、车、狗、苹果、橙子等日常物体完整列表见 detecto/config.py。二、4行代码完成首次推理安装非常简单pip3 install detecto即可自动装好全部依赖。然后是主角——4 行代码from detecto.core import Model from detecto.visualize import detect_video model Model() # 加载预训练 Faster R-CNN ResNet-50 模型 detect_video(model, input_video.mp4, output.avi) # 对视频跑推理逐行解读代码作用from detecto.core import Model导入核心模型类model Model()不传类别参数时加载 COCO 预训练权重识别 80 个默认类别detect_video(model, ...)逐帧推理并输出带检测框的视频output.avi输出文件请使用.avi扩展名小贴士首次调用Model()时会下载预训练权重文件请确保网络通畅下载完成后会缓存到本地之后启动几乎秒开。对单张图片做推理比起视频先从一张图片开始更直观。以测试目录中的图片为例from detecto.utils import read_image image read_image(apple_orange.jpg) labels, boxes, scores model.predict(image)read_image是一个便捷函数读取图片并转成 RGB 的 NumPy 数组见 detecto/utils.py。而predict的返回值正是首次推理中最值得弄懂的部分 三、读懂 predict 的返回值model.predict(image)返回一个三元组也是理解所有目标检测模型输出的关键labels字符串列表每个检测框对应的类别名如[apple, orange]boxes形状为(N, 4)的张量每行是[xmin, ymin, xmax, ymax]即检测框的左上角和右下角坐标scores每个预测的置信度取值 0.0 ~ 1.0越大越可信如果想更干净地看结果可以用predict_top它对每个类别只保留置信度最高的一个框避免同一类物体出现一堆重叠框。⚠️注意Detecto 的可视化函数默认使用0.6 的置信度阈值score_filter参数——低于该分数的预测不会画出来。觉得框太多就调高它想要更敏感就调低。四、可视化推理结果图片、视频、摄像头推理结果画出来才算眼见为实。Detecto 提供 4 个可视化函数全部位于 detecto/visualize.py1. 单张图片标注——show_labeled_image把predict的 boxes 和 labels 叠画到原图上得到开篇那张苹果橙子的效果图。2. 视频推理—— 就是开头的detect_video它逐帧读取视频、逐帧推理再用 OpenCV 画出红色检测框和类别: 置信度文字最后写入.avi文件。效果演示如下3. 摄像头实时检测——detect_live(model)直接打开本机摄像头跑检测按q或ESC退出。4. 批量图片网格——plot_prediction_grid(model, images, dim(2, 2))一次画出多张图的检测结果方便横向对比。事实上Detecto 对任意输入图片都能工作比如这张水下场景的照片模型同样会尝试在其中寻找已知类别的物体五、常见问题与避坑指南推理很慢没有 GPU 时 CPU 推理可能非常慢训练更是以小时甚至天计。官方建议在 docs/usage/quickstart.rst 中提到的方式使用带 GPU 的在线环境跑实验。输出的 .avi 打不开部分播放器如 macOS 自带的 QuickTime对 DIVX 编码支持不好建议换 VLC 播放。想换更轻量的骨干网络Model还支持fasterrcnn_mobilenet_v3_large_fpn等 Faster R-CNN 变体通过model_name参数指定即可。想检测自己的物体进入下一步——迁移学习。六、进阶5行代码训练自定义检测模型预训练模型只认识 80 个默认类别。如果目标换成狗、猫、兔子这类自定义类别Detecto 同样只需 5 行from detecto.core import Model, Dataset dataset Dataset(custom_dataset/) # 读取图片 XML 标签 model Model([dog, cat, rabbit]) model.fit(dataset) model.predict(...) # 开始使用训练好的模型它会替换预训练模型的分类头在 detecto/core.py 中实现用你的数据微调。配套的Dataset类还能自动处理 Resize、随机翻转等数据增强并同步修正标注框坐标。七、核心文件导航 ️文件说明detecto/core.py核心类Model、Dataset、DataLoader推理与训练都在这里detecto/visualize.pydetect_video、detect_live、plot_prediction_grid等可视化函数detecto/utils.pyread_image、XML 转 CSV、归一化变换等工具函数detecto/config.py默认设备与 80 个 COCO 类别配置docs/usage/quickstart.rst官方快速上手教程数据格式、训练、推理全流程4 行代码一个预训练 Faster R-CNN ResNet-50 模型加上开箱即用的可视化——这就是 Detecto 给出的目标检测最短路径。跑通本文的推理流程后你可以顺势尝试对视频、摄像头做检测甚至训练自己的模型 【免费下载链接】detectoBuild fully-functioning computer vision models with PyTorch项目地址: https://gitcode.com/gh_mirrors/de/detecto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表