在终端中查看推理结果
图片来自libsixel网站。
动机
当连接到远程机器时,通常无法将图像结果可视化,或者需要将数据移动到带有图形用户界面的本地设备上。VSCode 集成终端可直接渲染图像。下面简要演示如何将其与 ultralytics
与 预测结果.
警告
仅兼容 Linux 和 MacOS。检查 VSCode 存储库检查 问题状态或 文献资料 以获取有关 Windows 支持在终端中使用 sixel
.
使用集成终端查看图像的 VSCode 兼容协议有 sixel
和 iTerm
.本指南将演示如何使用 sixel
协议。
过程
-
首先,您必须启用设置
terminal.integrated.enableImages
和terminal.integrated.gpuAcceleration
在 VSCode 中。"terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on" "terminal.integrated.enableImages": false
-
安装
python-sixel
库。这是一个 分叉 的PySixel
该图书馆已不再维护。 -
加载模型并执行推理,然后绘制结果并存储在变量中。有关推理参数和处理结果的更多信息,请参阅预测模式页面。
from ultralytics import YOLO # Load a model model = YOLO("yolo11n.pt") # Run inference on an image results = model.predict(source="ultralytics/assets/bus.jpg") # Plot inference results plot = results[0].plot() # (1)!
- 请参阅绘图方法参数,了解可能使用的参数。
-
现在,使用 OpenCV 转换为
numpy.ndarray
至bytes
数据。然后使用io.BytesIO
来制作一个 "类文件 "对象。import io import cv2 # Results image as bytes im_bytes = cv2.imencode( ".png", # (1)! plot, )[1].tobytes() # (2)! # Image bytes as a file-like object mem_file = io.BytesIO(im_bytes)
- 也可以使用其他图像扩展名。
- 只有位于索引
1
需要返回。
-
创建一个
SixelWriter
实例,然后使用.draw()
方法在终端中绘制图像。
推理结果示例
危险
本示例尚未经过与视频或 GIF 动画帧一起使用的测试。请自行承担风险。
完整代码示例
import io
import cv2
from sixel import SixelWriter
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Run inference on an image
results = model.predict(source="ultralytics/assets/bus.jpg")
# Plot inference results
plot = results[0].plot() # (3)!
# Results image as bytes
im_bytes = cv2.imencode(
".png", # (1)!
plot,
)[1].tobytes() # (2)!
mem_file = io.BytesIO(im_bytes)
w = SixelWriter()
w.draw(mem_file)
- 也可以使用其他图像扩展名。
- 只有位于索引
1
需要返回。 - 请参阅绘图方法参数,了解可能使用的参数。
提示
您可能需要使用 clear
以 "擦除 "终端中的图像视图。
常见问题
如何在 macOS 或 Linux 的 VSCode 终端中查看YOLO 推断结果?
要在 macOS 或 Linux 的 VSCode 终端中查看YOLO 推理结果,请按以下步骤操作:
-
启用必要的 VSCode 设置:
-
安装 sixel 库:
-
加载YOLO 模型并运行推理:
-
将推理结果图像转换为字节,并在终端中显示:
更多详情,请访问预测模式页面。
为什么 sixel 协议只能在 Linux 和 macOS 上运行?
目前,只有 Linux 和 macOS 支持 sixel 协议,因为这些平台具有与 sixel 图形兼容的本地终端功能。Windows 对使用 sixel 的终端图形的支持仍在开发中。有关 Windows 兼容性的最新信息,请查看VSCode Issue 状态和文档。
如果在 VSCode 终端中显示图像时遇到问题怎么办?
如果在使用 sixel 的 VSCode 终端中显示图像时遇到问题,请参阅 "如何在 VSCode 终端中显示图像":
-
确保启用 VSCode 中的必要设置:
-
验证 sixel 库的安装:
-
检查图像数据转换和绘图代码是否有误。例如
如果问题仍然存在,请查阅VSCode 代码库,并访问绘图方法参数部分以获得更多指导。
YOLO 能否使用 sixel 在终端显示视频推理结果?
在终端中使用 sixel 显示视频推理结果或 GIF 动画帧目前尚未经过测试,可能不支持。我们建议首先使用静态图像并验证兼容性。请自行承担尝试视频结果的风险,并牢记性能限制。有关绘制推理结果的更多信息,请访问预测模式页面。
如何排除 python-sixel
图书馆?
要排除 python-sixel
图书馆
-
确保库已正确安装到虚拟环境中:
-
验证是否有必要的Python 和系统依赖项。
-
有关其他文档和社区支持,请参阅python-sixel GitHub 代码库。
-
仔细检查代码是否存在潜在错误,特别是使用
SixelWriter
和图像数据转换步骤。
有关使用YOLO 模型和 sixel 集成的进一步帮助,请参阅导出和预测模式文档页面。