터미널에서 추론 결과 보기
libsixel 웹사이트의 이미지입니다.
동기
원격 시스템에 연결할 때 일반적으로 이미지 결과를 시각화하는 것은 불가능하거나 GUI가 있는 로컬 장치로 데이터를 이동해야 합니다. 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": true
-
다음을 설치합니다.
python-sixel
가상 환경의 라이브러리입니다. 이것은 포크 의PySixel
라이브러리이며 더 이상 유지 관리되지 않습니다.pip install sixel
-
모델을 로드하고 추론을 실행한 다음 결과를 플롯하고 변수에 저장합니다. 추론 인수 및 결과 작업에 대한 자세한 내용은 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)!
- 사용 가능한 인수를 확인하려면 plot 메서드 파라미터를 참조하십시오.
-
이제 다음을 사용합니다. 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
반환되는 값이 필요합니다.
-
파일 만들기
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
반환되는 값이 필요합니다. - 사용 가능한 인수를 확인하려면 plot 메서드 파라미터를 참조하십시오.
팁
다음을 사용해야 할 수 있습니다. clear
터미널에서 이미지 보기를 "지우려면" 사용합니다.
FAQ
macOS 또는 Linux의 VSCode 터미널에서 YOLO 추론 결과를 어떻게 확인합니까?
macOS 또는 Linux의 VSCode 터미널에서 YOLO 추론 결과를 보려면 다음 단계를 따르십시오.
-
필요한 VSCode 설정 활성화:
"terminal.integrated.enableImages": true "terminal.integrated.gpuAcceleration": "auto"
-
sixel 라이브러리 설치:
pip install sixel
-
YOLO 모델을 로드하고 추론을 실행합니다:
from ultralytics import YOLO model = YOLO("yolo11n.pt") results = model.predict(source="path_to_image") plot = results[0].plot()
-
추론 결과 이미지를 바이트로 변환하여 터미널에 표시합니다.
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 터미널에 이미지를 표시하는 데 문제가 발생하는 경우:
-
VSCode에서 필요한 설정이 활성화되어 있는지 확인하십시오.
"terminal.integrated.enableImages": true "terminal.integrated.gpuAcceleration": "auto"
-
sixel 라이브러리 설치 확인:
pip install sixel
-
이미지 데이터 변환 및 플로팅 코드에 오류가 있는지 확인하십시오. 예:
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
라이브러리:
-
가상 환경에 라이브러리가 올바르게 설치되었는지 확인하십시오.
pip install sixel
-
필요한 Python 및 시스템 종속성이 있는지 확인하십시오.
-
추가 문서 및 커뮤니티 지원은 python-sixel GitHub 저장소를 참조하십시오.
-
코드에 잠재적인 오류, 특히 다음의 사용법을 다시 확인하십시오.
SixelWriter
이미지 데이터 변환 단계를 거칩니다.
YOLO 모델 및 sixel 통합 작업에 대한 추가 지원은 내보내기 및 예측 모드 문서 페이지를 참조하세요.