我训练了一个 YOLOV8 模型来识别十字路口中的物体(即汽车、道路等)。它工作正常,我可以将输出作为图像,并分割感兴趣的对象。
然而,我需要做的是捕获原始几何图形(多边形),以便稍后将它们保存在 txt 文件中。
我尝试了在文档(https://docs.ultralytics.com/modes/predict/#key-features-of-predict-mode)中找到的内容,但是返回的对象与文档所述不同。
事实上,结果是张量流数字的列表:
这是我的代码:
import argparse
import cv2
import numpy as np
from pathlib import Path
from ultralytics.yolo.engine.model import YOLO
# Parse command line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--source', type=str, required=True, help='Source image directory or file')
parser.add_argument('--output', type=str, default='output', help='Output directory')
args = parser.parse_args()
# Create output directory if it doesn't exist
Path(args.output).mkdir(parents=True, exist_ok=True)
# Model path
model_path = r'C:\\_Projects\\best_100img.pt'
# Load your model directly
model = YOLO(model_path)
model.fuse()
# Load image(s)
if Path(args.source).is_dir():
image_paths = list(Path(args.source).rglob('*.tiff'))
else:
image_paths = [args.source]
# Process each image
for image_path in image_paths:
img = cv2.imread(str(image_path))
if img is None:
continue
# Perform inference
predictions = model.predict(image_path, save=True, save_txt=True)
print("Processing complete.")
问题是:返回对象(预测变量)没有框、掩码、关键点等。
我想我的问题是:
- 为什么结果与文档如此不同?
- 有转换步骤吗?