推論結果をターミナルで見る
画像はlibsixelウェブサイトより
モチベーション
リモートマシンに接続する場合、通常、画像結果を視覚化することは不可能であるか、GUIを持つローカルデバイスにデータを移動する必要があります。VSCode統合ターミナルは、画像を直接レンダリングすることができます。これは、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
現在はメンテナンスされていない。 -
モデルをロードして推論を実行し、結果をプロットして変数に格納します。推論の引数と結果の操作については、predict modeのページを参照してください。
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()
-
では、次のように使う。 オープンCV を変換する。
numpy.ndarray
へのbytes
データを使用します。そしてio.BytesIO
で「ファイルのような」オブジェクトを作る。import io import cv2 # Results image as bytes im_bytes = cv2.imencode( ".png", plot, )[1].tobytes() # Image bytes as a file-like object mem_file = io.BytesIO(im_bytes)
-
を作成する。
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()
# Results image as bytes
im_bytes = cv2.imencode(
".png",
plot,
)[1].tobytes()
mem_file = io.BytesIO(im_bytes)
w = SixelWriter()
w.draw(mem_file)
チップ
を使用する必要があるかもしれない。 clear
をクリックすると、端末内の画像の表示を「消す」ことができる。
よくあるご質問
macOSやLinuxのVSCodeターミナルで、YOLO の推論結果を見るには?
macOSまたはLinux上のVSCodeターミナルでYOLO 推論結果を表示するには、以下の手順に従ってください:
-
必要なVSCode設定を有効にする:
-
sixelライブラリをインストールする:
-
YOLO モデルをロードし、推論を実行する:
-
推論結果の画像をバイトに変換し、ターミナルに表示する:
詳しくは予測モードのページをご覧ください。
なぜsixelプロトコルはLinuxとmacOSでしか動作しないのですか?
sixelプロトコルは現在、LinuxとmacOSでのみサポートされている。これらのプラットフォームは、sixelグラフィックスと互換性のあるネイティブ端末機能を備えているからである。sixelを使用したターミナルグラフィックスのWindowsサポートはまだ開発中です。Windowsの互換性に関する最新情報については、VSCode Issue Statusと ドキュメントを確認してください。
VSCodeターミナルで画像を表示する際に問題が発生した場合は?
sixelを使用してVSCode端末で画像を表示する際に問題が発生した場合:
-
VSCodeの必要な設定が有効になっていることを確認する:
-
sixelライブラリのインストールを確認する:
-
画像データの変換とプロットコードにエラーがないか確認してください。例えば
それでも問題が解決しない場合は、VSCodeリポジトリを参照し、プロットメソッドパラメータセクションを参照してください。
YOLO sixelを使ってビデオ推論の結果を端末に表示することはできますか?
端末でsixelを使用してビデオ推論結果やアニメーションGIFフレームを表示することは、現在のところテストされておらず、サポートされていない可能性があります。静止画像から始め、互換性を確認することをお勧めします。パフォーマンスの制約を念頭に置き、自己責任でビデオ結果を試してください。推論結果のプロットに関する詳細は、予測モードのページをご覧ください。
のトラブルシューティングはどうすればよいですか? python-sixel
図書館?
の問題をトラブルシューティングするには python-sixel
library:
-
ライブラリが仮想環境に正しくインストールされていることを確認してください:
-
必要なPython 、システムの依存関係があることを確認する。
-
その他のドキュメントやコミュニティ・サポートについては、python-sixelGitHub リポジトリを参照のこと。
-
コードに潜在的なエラーがないか再チェックしてください。
SixelWriter
と画像データ変換のステップ。
YOLO モデルとsixelの統合に関する更なる支援については、エクスポートと 予測モードのドキュメントページを参照してください。