我看到YOLO V8中(ultralytics版本8.2.18)集成了YOLO V9,所以直接在YOLO V8 OBB的基础上实现YOLO V9 OBB,训练结果也出来了,但是评估指标比YOLO V8 OBB低一点点。之前不知道是因为什么原因,现在原因查明了,是因为训练的v9 OBB只有主分支,没有辅助分支,所以精度较低。还有另一个原因可能是没有预训练权重,如果先在DOTA数据集上进行预训练,再使用预训练权重训练v9 OBB,精度可能还可以再提一点。
训练
YOLO V8 OBB(精度较低是因为数据集只有132张,增加之后mAP50-95可达0.97)
使用YOLO V8X
YOLO V9 OBB(精度较低是因为数据集只有132张,增加之后mAP50-95可达0.948)
使用YOLO V9E
可以看到V8 OBB比V9 OBB好一些,原因在开头已经说了
推理
YOLO V8 OBB
YOLO V9 OBB
可以看到V8和V9在检测某些大棚时无法用检测框框住整个大棚,大棚有一部分没有在检测框里面,这可以通过增加数据集来解决。我在增肌数据集之后可以明显缓解这个问题,但是也还是会有这种情况。
我们是将一张超大的TIF无人机或者卫星影像按照某种算法进行切割(有一定的重叠,命名也有规则),将切割完的图片送进模型进行推理,在推理的过程中我们可以获取每张图像推理完得到的检测框信息,可以将这个信息写入shapefile文件中,这样基本上每个大棚都会有两个或者三个检测框,这些重叠的检测框可以覆盖完整个大棚。最后面将重叠的检测框按照一定规则旋转(让重叠检测框边框平行)和扩充,这样就可以得到一个完整的检测框(下面给出的图还没有做这样的工作)。将shapefile文件叠加在原始TIF影像上即可得到整幅影像的农业大棚提取图,如下:
小白一通乱改的,难免有错误或者遗漏的地方,欢迎交流指正