YOLO-Patch-Based-Inference:简化实例分割任务的小对象检测
项目介绍
YOLO-Patch-Based-Inference 是一个基于 Python 的开源库,旨在简化类似于 SAHI 的推理方法,用于图像中的实例分割任务。它能够检测图像中的小对象,并适用于目标检测和实例分割任务。该库支持 Ultralytics 的多种模型,并提供了一种优雅的可视化推理结果的自定义方式,适用于所有模型。
项目技术分析
YOLO-Patch-Based-Inference 库的核心是采用 patch-based 推理机制,该机制将图像划分为多个小块(patches),并对每个小块进行检测或分割,最后将结果合并。这种方法特别适用于检测小对象,因为它可以减少由于对象尺寸小而导致的定位误差。
该库支持的模型包括 YOLOv8、YOLOv8-seg、YOLOv9、YOLOv9-seg、YOLOv10、FastSAM 和 RTDETR。用户可以选择预训练的模型,也可以使用自定义训练的模型来满足不同的任务需求。
项目及技术应用场景
YOLO-Patch-Based-Inference 可以应用于多种场景,如:
- 工业检测:在制造过程中检测并分类小型部件。
- 机器人视觉:帮助机器人识别和避让路径中的小障碍物。
- 医学图像分析:在医学图像中识别和分割微小病变。
项目特点
- 多模型支持:支持 Ultralytics 的多种模型,提供了灵活的选择空间。
- 小对象检测优化:通过 patch-based 推理机制优化小对象的检测。
- 自定义可视化:允许用户自定义推理结果的可视化展示。
- 易于使用:提供了交互式笔记本和详细的 YouTube 教程,方便用户快速上手。
以下是一个简单的使用示例:
import cv2
from patched_yolo_infer import MakeCropsDetectThem, CombineDetections
# 加载图像
img_path = "test_image.jpg"
img = cv2.imread(img_path)
# 创建 MakeCropsDetectThem 实例
element_crops = MakeCropsDetectThem(
image=img,
model_path="yolov8m.pt",
segment=False,
shape_x=640,
shape_y=640,
overlap_x=50,
overlap_y=50,
conf=0.5,
iou=0.7,
)
# 结果合并
result = CombineDetections(element_crops, nms_threshold=0.25)
# 提取结果
img = result.image
confidences = result.filtered_confidences
boxes = result.filtered_boxes
# ... 其他属性
在撰写本文时,已经注意到 SEO 收录规则,以下是文章的关键词优化部分:
- 核心关键词:YOLO-Patch-Based-Inference,实例分割,小对象检测,Ultralytics 模型。
- 长尾关键词:Python 图像处理库,目标检测算法,工业检测应用。
通过以上内容,我们相信 YOLO-Patch-Based-Inference 将为相关领域的研究者和开发者提供一个强大的工具,帮助他们更高效地完成小对象的检测和分割任务。欢迎感兴趣的用户尝试并使用这个开源项目。