콘텐츠로 건너뛰기

터미널에서 추론 결과 보기

터미널의 이미지 Sixel 예제

libsixel 웹사이트의 이미지입니다.

동기

원격 시스템에 연결할 때 일반적으로 이미지 결과를 시각화하는 것은 불가능하거나 GUI가 있는 로컬 장치로 데이터를 이동해야 합니다. VSCode 통합 터미널을 사용하면 이미지를 직접 렌더링할 수 있습니다. 다음은 이를 함께 사용하는 방법에 대한 간단한 데모입니다. ultralytics 와 함께 예측 결과.

경고

Linux 및 MacOS에서만 호환됩니다. 다음을 확인하십시오. VSCode 저장소, 확인하십시오. 이슈 상태또는 문서 터미널에서 이미지를 볼 수 있도록 Windows 지원에 대한 업데이트는 sixel.

통합 터미널을 사용하여 이미지를 보는 데 사용되는 VSCode 호환 프로토콜은 다음과 같습니다. sixeliTerm. 이 가이드에서는 다음의 사용법을 보여줍니다. sixel 프로토콜.

처리

  1. 먼저 설정을 활성화해야 합니다. terminal.integrated.enableImagesterminal.integrated.gpuAcceleration VSCode에서.

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

    VSCode 터미널 이미지 설정 활성화

  2. 다음을 설치합니다. python-sixel 가상 환경의 라이브러리입니다. 이것은 포크PySixel 라이브러리이며 더 이상 유지 관리되지 않습니다.

    pip install sixel
    
  3. 모델을 로드하고 추론을 실행한 다음 결과를 플롯하고 변수에 저장합니다. 추론 인수 및 결과 작업에 대한 자세한 내용은 predict 모드 페이지를 참조하십시오.

    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. 사용 가능한 인수를 확인하려면 plot 메서드 파라미터를 참조하십시오.
  4. 이제 다음을 사용합니다. OpenCV 변환하려면 np.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. 다른 이미지 확장자도 사용할 수 있습니다.
    2. 인덱스에 있는 객체만 1 반환되는 값이 필요합니다.
  5. 파일 만들기 SixelWriter 인스턴스를 사용한 다음 .draw() 터미널에 이미지를 그리는 메서드입니다.

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

예제 추론 결과

터미널에서 이미지 보기

위험

비디오 또는 애니메이션 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. 다른 이미지 확장자도 사용할 수 있습니다.
  2. 인덱스에 있는 객체만 1 반환되는 값이 필요합니다.
  3. 사용 가능한 인수를 확인하려면 plot 메서드 파라미터를 참조하십시오.

다음을 사용해야 할 수 있습니다. clear 터미널에서 이미지 보기를 "지우려면" 사용합니다.

FAQ

macOS 또는 Linux의 VSCode 터미널에서 YOLO 추론 결과를 어떻게 확인합니까?

macOS 또는 Linux의 VSCode 터미널에서 YOLO 추론 결과를 보려면 다음 단계를 따르십시오.

  1. 필요한 VSCode 설정 활성화:

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
    
  2. sixel 라이브러리 설치:

    pip install sixel
    
  3. YOLO 모델을 로드하고 추론을 실행합니다:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    results = model.predict(source="path_to_image")
    plot = results[0].plot()
    
  4. 추론 결과 이미지를 바이트로 변환하여 터미널에 표시합니다.

    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)
    

자세한 내용은 예측 모드 페이지를 방문하십시오.

sixel 프로토콜은 왜 Linux 및 macOS에서만 작동하나요?

sixel 프로토콜은 현재 Linux 및 macOS에서만 지원됩니다. 이러한 플랫폼은 sixel 그래픽과 호환되는 기본 터미널 기능을 갖추고 있기 때문입니다. sixel을 사용한 터미널 그래픽에 대한 Windows 지원은 아직 개발 중입니다. Windows 호환성에 대한 업데이트는 VSCode 문제 상태문서를 확인하십시오.

VSCode 터미널에서 이미지를 표시하는 데 문제가 발생하면 어떻게 해야 합니까?

sixel을 사용하여 VSCode 터미널에 이미지를 표시하는 데 문제가 발생하는 경우:

  1. VSCode에서 필요한 설정이 활성화되어 있는지 확인하십시오.

    "terminal.integrated.enableImages": true
    "terminal.integrated.gpuAcceleration": "auto"
    
  2. sixel 라이브러리 설치 확인:

    pip install sixel
    
  3. 이미지 데이터 변환 및 플로팅 코드에 오류가 있는지 확인하십시오. 예:

    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)
    

문제가 지속되면 VSCode 저장소를 참조하고 추가 지침은 plot 메서드 매개변수 섹션을 방문하십시오.

YOLO가 sixel을 사용하여 터미널에 비디오 추론 결과를 표시할 수 있습니까?

터미널에서 sixel을 사용하여 비디오 추론 결과 또는 애니메이션 GIF 프레임을 표시하는 것은 현재 테스트되지 않았으며 지원되지 않을 수 있습니다. 정적 이미지로 시작하여 호환성을 확인하는 것이 좋습니다. 성능 제약 조건을 염두에 두고 비디오 결과를 시도해 보세요. 추론 결과 플로팅에 대한 자세한 내용은 예측 모드 페이지를 참조하세요.

다음에 대한 문제를 어떻게 해결할 수 있습니까? python-sixel 라이브러리?

다음과 관련된 문제 해결 방법: python-sixel 라이브러리:

  1. 가상 환경에 라이브러리가 올바르게 설치되었는지 확인하십시오.

    pip install sixel
    
  2. 필요한 Python 및 시스템 종속성이 있는지 확인하십시오.

  3. 추가 문서 및 커뮤니티 지원은 python-sixel GitHub 저장소를 참조하십시오.

  4. 코드에 잠재적인 오류, 특히 다음의 사용법을 다시 확인하십시오. SixelWriter 이미지 데이터 변환 단계를 거칩니다.

YOLO 모델 및 sixel 통합 작업에 대한 추가 지원은 내보내기예측 모드 문서 페이지를 참조하세요.



📅 1년 전에 생성됨 ✏️ 1개월 전에 업데이트됨

댓글