《------往期经典推荐------》
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
旋转边界框对象检测定义
“旋转边界框对象检测(Oriented Bounding Boxes Object Detection)”是指识别和定位图像或视频中的对象,同时估计它们的方向的过程。这种方法在处理呈现一定程度的旋转或方向变化的对象(例如汽车、飞机或文本)时十分重要。
定向对象检测器的输出是一组旋转的边界框,这些边界框精确地包围图像中的对象,沿着每个框的类标签和置信度得分。当您需要识别场景中感兴趣的对象时,对象检测是一个很好的选择,但不需要知道对象的确切位置或确切形状。
加载模型YOLOv8 OBB
# install ultralytics
pip3 install ultralytics
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n-obb.pt') # load an official model
# Predict with the model
results = model('test.jpg', save=True) # predict on an image
自定义数据集格式
数据集格式
YOLO OBB格式通过其四个角点指定边界框,坐标在0和1之间归一化。它遵循以下格式:
class_index, x1, y1, x2, y2, x3, y3, x4, y4
在内部,YOLO以xywhr
格式处理损失和输出,该格式表示边界框的中心点(xy)、宽度、高度和旋转。
模型训练
# Train the model
epochs = 150
imgsz = 640
batch = 16
save_period = 10
device = 0
cache = False
pretrained = True
YAML_FILE = '/content/datasets/data.yaml'
project = 'obb'
name = 'custom_obb'
model.train(
data=YAML_FILE,
device=device,
epochs=epochs,
imgsz=imgsz,
batch=batch,
cache=cache,
save_period=save_period,
project=project,
name=name,
patience=0,
augment=False
)
训练过程将运行150个epoch,批量大小为16张图像,图像大小为640像素。该脚本每10个epoch保存一次训练模型,并使用GPU进行训练(device=0)。训练期间不使用缓存(cache=False)。训练过程不使用预训练的权重(pretrained=False),也不使用数据增强(augment=False)。项目名称为’obb’,训练后的模型将以’custom_obb’的名称保存。
训练结果
如果你觉得这篇文章对你帮助,感谢点赞关注!
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!