Bỏ qua nội dung

Xem kết quả suy luận trong Terminal

Ví dụ về hình ảnh Sixel 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à sixeliTerm. Hướng dẫn này sẽ trình bày cách sử dụng sixel giao thức.

Quá trình

  1. Đầu tiên, bạn phải bật cài đặt terminal.integrated.enableImagesterminal.integrated.gpuAcceleration trong VSCode.

    "terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on"
    "terminal.integrated.enableImages": false
    

    VSCode cho phép thiết lập hình ảnh đầu cuối

  2. 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ủa PySixel thư viện hiện không còn được duy trì.

    pip install sixel
    
  3. 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)!
    
    1. Xem các tham số phương pháp vẽ đồ thị để xem các đối số có thể sử dụng.
  4. Bây giờ, sử dụng MởCV để chuyển đổi numpy.ndarray ĐẾN bytes dữ liệu. Sau đó sử dụng io.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)
    
    1. Bạn cũng có thể sử dụng các phần mở rộng hình ảnh khác.
    2. Chỉ đối tượng ở mục lục 1 điều đó cần phải được trả lại.
  5. Tạo một SixelWriter ví dụ, và sau đó sử dụng .draw() phương pháp vẽ hình ảnh trong terminal.

    from sixel import SixelWriter
    
    # Create sixel writer object
    w = SixelWriter()
    
    # Draw the sixel image in the terminal
    w.draw(mem_file)
    

Ví dụ kết quả suy luận

Xem hình ảnh trong Terminal

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)
  1. Bạn cũng có thể sử dụng các phần mở rộng hình ảnh khác.
  2. Chỉ đối tượng ở mục lục 1 điều đó cần phải được trả lại.
  3. 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:

  1. Bật các cài đặt VSCode cần thiết:

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
    
  2. Cài đặt thư viện sixel:

    pip install sixel
    
  3. Tải của bạn YOLO mô hình và chạy suy luận:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    results = model.predict(source="path_to_image")
    plot = results[0].plot()
    
  4. 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:

    import io
    
    import cv2
    from sixel import SixelWriter
    
    im_bytes = cv2.imencode(".png", plot)[1].tobytes()
    mem_file = io.BytesIO(im_bytes)
    SixelWriter().draw(mem_file)
    

Để 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:

  1. Đảm bảo các cài đặt cần thiết trong VSCode được bật:

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
    
  2. Kiểm tra cài đặt thư viện sixel:

    pip install sixel
    
  3. Kiểm tra lỗi chuyển đổi dữ liệu hình ảnh và mã vẽ đồ thị của bạn. Ví dụ:

    import io
    
    import cv2
    from sixel import SixelWriter
    
    im_bytes = cv2.imencode(".png", plot)[1].tobytes()
    mem_file = io.BytesIO(im_bytes)
    SixelWriter().draw(mem_file)
    

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:

  1. Đảm bảo thư viện được cài đặt đúng trong môi trường ảo của bạn:

    pip install sixel
    
  2. 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.

  3. 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.

  4. 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ấtdự đoán .

📅 Được tạo cách đây 9 tháng ✏️ Đã cập nhật cách đây 2 tháng

Bình luận