用 DINOv3 预训练的 ConvNeXt 实现箭靶箭头检测
AI 总结
r/MachineLearning 用户 BrashBunyip 分享了一个射箭箭靶自动检测项目:用约 4 万张 Blender 渲染场景和 8000 张人工标注的真实图片构建数据集,再经重度增强扩充至约 100 万样本,训练配准与检测两个网络。作者称在尝试的多种主干中,ImageNet 预训练 ResNet 表现不错、纯 ViT 较差,而基于 DINOv3 预训练的 ConvNeXt 效果最好。自报测试结果为 F1 96.6%、整图完全正确率 80.5%(无漏检、无误检)。流程为先配准定位靶心与得分环,再对裁剪图生成落点热图,并通过镜像推理、单应变换去透视以及针对纸张翘曲的径向修正来精化坐标。
深度见解
该帖展示了用合成数据加少量真实标注、并以自监督预训练视觉主干做小样本工业级检测的可行路径,但所有指标均为作者自报,未提供独立复现或验证。
| Worked on this for about a month. I experimented a lot with resnets (pretrained on Imagenet) which performed quite well, pure ViT which performed worse. ConvNext DINOv3 performed the best. For data I rendered about 40000 varied blender scenes, and used 8000 labelled real images. I had to label most of these real images by hand, which was a huge pain in the ass and about 20 hours of my life I'll never get back. Both registration and detection networks were trained on about 1 million samples (heavy augmentations of the 48k dataset). End result was F1 96.6% on test and whole image correctness of 80.5% (no missed arrows, no false detections). The process is basically registration to identify target, semantic rings, centre, scoring zones. Detection then takes a cropped image and produces a heatmap of impact candidates. I run that image through the same detector mirrored and combine both in decoder to find local peaks. I tried a sliding window approach which didn't produce better results. I then apply a homography transform to remove perspective skew and flatten the target so the impacts conform to a canonical coordinate system. There's then a small correction step where I adjust impact coordinates to account for warped paper (homography can remove perspective skew but it can't fix warped paper that isn't planar). This is a neat trick because I basically compare the heatmap of the semantic rings produced by the registration model to the perfect geometric rings of the archery target and use that offset to make a radial correction. submitted by /u/BrashBunyip [link] [comments] |