Xem kết quả suy luận trong Terminal
Hình ảnh từ trang web libsixel .
Động lực
Khi kết nối với máy từ xa, thông thường không thể trực quan hóa kết quả hình ảnh hoặc yêu cầu di chuyển dữ liệu đến thiết bị cục bộ có GUI. Thiết bị đầu cuối tích hợp VSCode cho phép hiển thị hình ảnh trực tiếp. Đây là bản trình diễn ngắn về cách sử dụng kết hợp với ultralytics
với kết quả dự đoán.
Cảnh báo
Chỉ tương thích với Linux và MacOS. Kiểm tra Kho lưu trữ VSCode, kiểm tra Trạng thái vấn đề, hoặc tài liệu để cập nhật về hỗ trợ Windows để xem hình ảnh trong terminal với sixel
.
Các giao thức tương thích với VSCode để xem hình ảnh bằng thiết bị đầu cuối tích hợp là sixel
Và iTerm
. Hướng dẫn này sẽ trình bày cách sử dụng sixel
giao thức.
Quá trình
-
Đầu tiên, bạn phải bật cài đặt
terminal.integrated.enableImages
Vàterminal.integrated.gpuAcceleration
trong VSCode."terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on" "terminal.integrated.enableImages": false
-
Cài đặt
python-sixel
thư viện trong môi trường ảo của bạn. Đây là một cái nĩa củaPySixel
thư viện hiện không còn được duy trì. -
Tải mô hình và thực hiện suy luận, sau đó vẽ biểu đồ kết quả và lưu trữ trong một biến. Xem thêm về đối số suy luận và làm việc với kết quả trên trang chế độ dự đoán .
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)!
- Xem các tham số phương pháp vẽ đồ thị để xem các đối số có thể sử dụng.
-
Bây giờ, sử dụng MởCV để chuyển đổi
numpy.ndarray
ĐẾNbytes
dữ liệu. Sau đó sử dụngio.BytesIO
để tạo ra một đối tượng "giống như tệp".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)
- Bạn cũng có thể sử dụng các phần mở rộng hình ảnh khác.
- Chỉ đối tượng ở mục lục
1
điều đó cần phải được trả lại.
-
Tạo một
SixelWriter
ví dụ, và sau đó sử dụng.draw()
phương pháp vẽ hình ảnh trong terminal.
Ví dụ kết quả suy luận
Sự nguy hiểm
Việc sử dụng ví dụ này với video hoặc khung GIF động chưa được thử nghiệm. Hãy tự chịu rủi ro.
Ví dụ mã đầy đủ
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)
- Bạn cũng có thể sử dụng các phần mở rộng hình ảnh khác.
- Chỉ đối tượng ở mục lục
1
điều đó cần phải được trả lại. - Xem các tham số phương pháp vẽ đồ thị để xem các đối số có thể sử dụng.
Mẹo
Bạn có thể cần phải sử dụng clear
để "xóa" chế độ xem hình ảnh trong thiết bị đầu cuối.
CÂU HỎI THƯỜNG GẶP
Tôi có thể xem bằng cách nào? YOLO kết quả suy luận trong thiết bị đầu cuối VSCode trên macOS hoặc Linux?
Để xem YOLO kết quả suy luận trong thiết bị đầu cuối VSCode trên macOS hoặc Linux, hãy làm theo các bước sau:
-
Bật các cài đặt VSCode cần thiết:
-
Cài đặt thư viện sixel:
-
Tải của bạn YOLO mô hình và chạy suy luận:
-
Chuyển đổi hình ảnh kết quả suy luận thành byte và hiển thị nó trong thiết bị đầu cuối:
Để biết thêm chi tiết, hãy truy cập trang chế độ dự đoán .
Tại sao giao thức sixel chỉ hoạt động trên Linux và macOS?
Giao thức sixel hiện chỉ được hỗ trợ trên Linux và macOS vì các nền tảng này có khả năng thiết bị đầu cuối gốc tương thích với đồ họa sixel. Hỗ trợ Windows cho đồ họa thiết bị đầu cuối sử dụng sixel vẫn đang được phát triển. Để biết thông tin cập nhật về khả năng tương thích với Windows, hãy kiểm tra trạng thái và tài liệu Sự cố VSCode .
Tôi phải làm sao nếu gặp sự cố khi hiển thị hình ảnh trong terminal VSCode?
Nếu bạn gặp sự cố khi hiển thị hình ảnh trong terminal VSCode bằng sixel:
-
Đảm bảo các cài đặt cần thiết trong VSCode được bật:
-
Kiểm tra cài đặt thư viện sixel:
-
Kiểm tra lỗi chuyển đổi dữ liệu hình ảnh và mã vẽ đồ thị của bạn. Ví dụ:
Nếu sự cố vẫn tiếp diễn, hãy tham khảo kho lưu trữ VSCode và truy cập phần tham số phương pháp vẽ đồ thị để biết thêm hướng dẫn.
Có thể YOLO Hiển thị kết quả suy luận video trong thiết bị đầu cuối bằng sixel?
Hiện tại, việc hiển thị kết quả suy luận video hoặc khung GIF động bằng sixel trong thiết bị đầu cuối chưa được kiểm tra và có thể không được hỗ trợ. Chúng tôi khuyên bạn nên bắt đầu bằng hình ảnh tĩnh và xác minh khả năng tương thích. Hãy tự chịu rủi ro khi thử kết quả video, lưu ý đến các hạn chế về hiệu suất. Để biết thêm thông tin về cách lập biểu đồ kết quả suy luận, hãy truy cập trang chế độ dự đoán .
Làm thế nào tôi có thể khắc phục sự cố với python-sixel
thư viện?
Để khắc phục sự cố với python-sixel
thư viện:
-
Đảm bảo thư viện được cài đặt đúng trong môi trường ảo của bạn:
-
Xác minh rằng bạn có đủ điều kiện cần thiết Python và sự phụ thuộc của hệ thống.
-
Tham khảo kho lưu trữ python -sixel GitHub để biết thêm tài liệu và hỗ trợ từ cộng đồng.
-
Kiểm tra lại mã của bạn để tìm lỗi tiềm ẩn, đặc biệt là cách sử dụng
SixelWriter
và các bước chuyển đổi dữ liệu hình ảnh.
Để được hỗ trợ thêm về việc làm việc với YOLO mô hình và tích hợp sixel, hãy xem các trang tài liệu về chế độ xuất và dự đoán .