我在colab中使用Yolov 8对象检测模型。代码正确地运行了图像处理器,模型在终端中输出了正确的结果,但是在这一点之后,我无法以可用的格式获得结果。
!pip install ultralytics
import ultralytics
from ultralytics import YOLO
import pandas as pd
import os
# Mount Google Drive to access local files
from google.colab import drive
drive.mount('/content/drive')
# Set model details
model = YOLO('/content/drive/MyDrive/train/weights/best.pt')
# Set path to the parent folder containing image subfolders
parent_folder = "/content/drive/MyDrive"
# Create an empty list to store the results
results_list = []
for image_file in image_files:
# Set path to image file
path_to_image = os.path.join(path_to_folder, image_file)
# Predict using the model and get the bounding box coordinates
results = model.predict(path_to_image, conf=0.8, classes=1, boxes=True,)
# Extract information from results
image = results.path
xyxy = results.xyxy
conf = results.probs
# Append the extracted information to the list
results_list.append([image, xyxy, conf])
# Create a pandas DataFrame from the results list
df = pd.DataFrame(results_list, columns=['image', 'xyxy', 'conf'])
# Save the DataFrame as a CSV file
df.to_csv('/content/drive/MyDrive/1.predictions/object_detection_results.csv', index=False)
字符串
我试过把东西转换成json,txt或csv格式,但不能提取任何所需的变量,主要是xyxy。
对于用例,重要的是获得:
1.图像名称
1.边界框尺寸
1.置信区间
理想情况下为单独的列,并且每个预测一行。
我得到以下错误:
AttributeError Traceback (most recent call last)
<ipython-input-26-bac2882f463a> in <cell line: 20>()
26
27 # Extract information from results
---> 28 imagename = results.path
29 boxes = results.boxes
30 probs = results.probs
AttributeError: 'list' object has no attribute 'path'
型
对于boxes / probs和xyxy也会出现相同的错误。
但是我检查了文档,'path' / 'boxes'和'probs'似乎是正确的属性。
在这里的损失,任何建议,以获得一个半可用的格式将不胜感激。
1条答案
按热度按时间vzgqcmou1#
这里的
results
是 ultralytics.engine.results.Results 类对象的列表,该类用于存储和操作推理结果。此列表中的每个对象表示源中每个图像的结果信息。当您每次向模型传递单个图像时,您可以引用此列表的[0]索引以获取所有需要的信息。xyxy
和conf
是**boxes
**属性,它们都存储为 torch.Tensor,但为了方便起见,您可以将它们转换为列表。字符串
有关使用结果的更多信息,请单击此处。