基于对比语言-图像预训练的YOLOv10开放词汇:CLIP-YOLOv10全流程实战
目录一、写在前面的废话二、先看看效果三、核心原理(用人话讲)四、环境配置(血的教训)五、完整代码实现5.1 模型定义 models/clip_yolov10.py5.2 训练脚本 train_clip_yolo.py5.3 推理脚本 inference.py5.4 快速测试脚本 quick_test.py六、推荐的数据集1. COCO-O (COCO with Out-of-vocabulary)2. LVIS (Large Vocabulary Instance Segmentation)3. OVAD (Open Vocabulary Attribute Detection)4. 自制数据集方案(最推荐)一、写在前面的废话老铁们,好久不见。最近后台一堆人问我:“大佬,YOLOv10都出来了,能不能搞个开放词汇检测?就是那种不用固定类别,想检测啥就说啥的那种?”说实话,我之前一直在忙项目,没时间折腾。这不,前两天刚把手头的活交完,赶紧抽时间把这套东西搞出来了。传统的YOLO系列模型有个硬伤——你训练的时候定好了80类,推理的时候就只能检测这80类,想加个新类别?对不起,重新训练吧。今天要说的这个CLIP-YOLOv10,就是把CLIP那套牛逼的图文匹配能力嫁接到YOLOv10上。简单来说,你现在可以对着模型说“我要检测红色的杯子”,它还真就能给你框出来。不用重新训练,不用准备数据集,就是这么神奇。整个代码我已经在COCO和自定义数据集上调通跑过了,效果怎么说呢,比我想象的要好,但也没好到能直接上生产(后面会分析原因)。这篇文章,我尽量把踩过的坑都填上,让你直接用就能跑通。二、先看看效果先说结论:在COCO验证集上,用同样的文本描述(比如“person”、“car”这些),CLIP-YOLOv1