如何将YOLO模型识别结果Banana保存为字符串?
获取YOLO模型检测的类别名称字符串
要从ultralytics的Results对象中提取类别名称(如"Banana"),可以通过以下步骤实现:
从返回结果列表中取出单个Results实例
调用model(input_image)返回的是包含Results实例的列表,先提取第一个元素:results = output[0]获取检测框的类别索引
results.boxes.cls存储了每个检测框对应的类别索引(张量类型),将其转换为整数即可得到对应索引值:# 取第一个检测框的类别索引 class_idx = int(results.boxes.cls[0])通过模型的names字典映射得到类别名称
YOLO模型的names属性是一个字典,键为类别索引,值为对应的类别名称,用索引即可取出名称:class_name = model.names[class_idx] # 此时class_name就是"Banana"字符串
处理多个检测结果的情况
如果图片中有多个水果被检测到,可以遍历所有类别索引,批量获取名称:
class_names = [model.names[int(idx)] for idx in results.boxes.cls] # 示例输出:["Banana", "Apple"]
控制台能直接显示类别名称,是因为ultralytics在打印Results对象时,自动调用了模型的names字典完成索引到名称的转换,但Results对象本身的boxes属性仅存储索引值,因此需要手动通过上述步骤获取名称字符串。
内容的提问来源于stack exchange,提问作者Fares K. A.
相关产品推荐
相关产品推荐

