Ultralytics VS Code 拡張機能#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
機能とメリット#
✅ Ultralytics を使用してコンピュータービジョン アプリケーションを構築しているデータサイエンティストまたは機械学習エンジニアですか?
✅ 同じコードブロックを繰り返し書くことにうんざりしていませんか?
✅ export、predict、train、track、または val メソッドの引数やデフォルト値をいつも忘れていませんか?
✅ Ultralytics を使い始めたいけれど、コード例を参照したり実行したりするためのより簡単な方法があればよいと思っていませんか?
✅ Ultralytics を使用する際、開発サイクルをスピードアップさせたいと思っていませんか?
もしあなたが Visual Studio Code を使用していて、上記に1つでも「はい」と答えたなら、VS Code 用の Ultralytics-snippets 拡張機能がお役に立ちます!この拡張機能の詳細、インストール方法、および使用方法について読み進めてください。
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Ultralytics コミュニティから着想を得ました#
この拡張機能を構築する着想は、Ultralytics コミュニティから得られました。コミュニティからの類似のトピックや例に関する質問が、このプロジェクトの開発を後押ししました。さらに、Ultralytics チームのメンバーの多くが、自身の業務を加速させるために VS Code を使用しています ⚡。
なぜ VS Code なのか?#
Visual Studio Code は世界中の開発者に非常に人気があり、Stack Overflow Developer Survey の 2021、2022、2023、2024 年版で最も人気のあるエディターにランクインしました。VS Code は高いカスタマイズ性、組み込み機能、幅広い互換性、拡張性を備えているため、多くの開発者に利用されているのも驚きではありません。幅広い開発者コミュニティや Ultralytics の Discord、Discourse、Reddit、GitHub コミュニティにおける人気を考慮すると、ワークフローの効率化と生産性の向上を支援する VS Code 拡張機能を作成することは理にかなっていました。
コード開発に何を使用しているかお知らせませんか?Discourse のコミュニティ投票にアクセスして教えてください!ついでに、お気に入りのコンピュータービジョン、機械学習、AI、開発者に関するミームをチェックしたり、お気に入りのものを投稿したりしてみてください!
拡張機能のインストール#
VS Code 拡張機能のインストールを許可するすべてのコード環境は、Ultralytics-snippets 拡張機能と互換性があるはずです*。拡張機能の公開後、neovim が VS Code 拡張機能と互換性を持つようにできることが発見されました。詳細については、Ultralytics-Snippets リポジトリの Readme の neovim インストールセクションを参照してください。
VS Code へのインストール#
-
VS Code の拡張機能メニューに移動するか、ショートカット Ctrl+Shift ⇑+x を使用して、Ultralytics-snippets を検索してください。
-
Install ボタンをクリックします。
VS Code 拡張機能マーケットプレイスからのインストール#
-
VS Code Extension Marketplace にアクセスして Ultralytics-snippets を検索するか、VS Code マーケットプレイスの拡張機能ページに直接移動してください。
-
Install ボタンをクリックし、ブラウザから VS Code セッションを起動することを許可します。
-
指示に従って拡張機能をインストールします。
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Ultralytics-Snippets 拡張機能の使用#
-
🧠 インテリジェントなコード補完: Ultralytics API に合わせて最適化された高度なコード補完の提案により、より速く、より正確にコードを書くことができます。
-
⌛ 開発速度の向上: 反復的なコーディングタスクを排除し、事前に構築されたコードブロックのスニペットを活用することで、時間を節約できます。
-
🔬 コード品質の向上: インテリジェントなコード補完により、よりクリーンで一貫性のある、エラーのないコードを作成できます。
-
💎 ワークフローの合理化: 一般的なタスクを自動化することで、プロジェクトの中核となるロジックに集中し続けられます。
概要#
この拡張機能は、言語モードが Python 🐍 に設定されている場合にのみ機能します。これは、他のファイルタイプで作業しているときにスニペットが挿入されないようにするためです。すべてのスニペットは ultra で始まるプレフィックスを持っています。拡張機能をインストールした後、エディターで単に ultra と入力すると、使用可能なスニペットのリストが表示されます。また、Ctrl+Shift ⇑+p を使用して VS Code のコマンドパレットを開き、コマンド Snippets: Insert Snippet を実行することもできます。
コードスニペットのフィールド#
多くのスニペットには、デフォルトのプレースホルダー値や名前を持つ「フィールド」があります。たとえば、predict メソッドの出力は、r、results、detections、preds、または開発者が選択したその他の名前の Python 変数に保存できます。これがスニペットに「フィールド」が含まれている理由です。スニペットが挿入された後にキーボードの Tab ⇥ を使用すると、カーソルがフィールド間を素早く移動します。フィールドが選択されている状態で新しい変数名を入力すると、そのインスタンスだけでなく、その変数のスニペットコード内の他のすべてのインスタンスも変更されます!
After inserting snippet, renaming model as world_model updates all instances. Pressing Tab ⇥ moves to the next field, which opens a dropdown menu and allows for selection of a model scale, and moving to the next field provides another dropdown to choose either world or worldv2 model variant.
コードスニペットの補完#
スニペットの完全なプレフィックスを入力したり、スニペットの先頭から入力し始めたりする必要はありません。下の画像で例を確認してください。
スニペットにはできるだけ説明的な名前が付けられていますが、これは入力する量が多くなることを意味し、より速く作業するという目的においては逆効果になる可能性があります。幸いなことに、VS Code ではユーザーが ultra.example-yolo-predict、example-yolo-predict、yolo-predict、または ex-yolo-p と入力しても、目的のスニペットオプションに到達できます!意図したスニペットが実際には ultra.example-yolo-predict-kwords であった場合は、キーボードの矢印 ↑ または ↓ を使用して目的のスニペットをハイライトし、Enter ↵ または Tab ⇥ を押すだけで、正しいコードブロックが挿入されます。
Typing ex-yolo-p will still arrive at the correct snippet.
スニペットカテゴリ#
これらは、Ultralytics-snippets 拡張機能で使用可能な現在のスニペットカテゴリです。将来さらに追加される予定ですので、アップデートを確認し、拡張機能の自動アップデートを有効にしてください。不足していると思われるスニペットの追加リクエストを行うこともできます。
| カテゴリ | 開始プレフィックス | 説明 |
|---|---|---|
| 例 | ultra.examples | Ultralytics を学ぶため、または使い始めるためのサンプルコード。例は、ドキュメントページのコードのコピーまたは類似のものです。 |
| Kwargs | ultra.kwargs | すべてのキーワード引数とデフォルト値を持つ train、track、predict、および val メソッドのスニペットを追加することで、開発をスピードアップします。 |
| Imports | ultra.imports | 一般的な Ultralytics オブジェクトを素早くインポートするためのスニペット。 |
| Models | ultra.yolo | ドロップダウン設定オプションを含め、さまざまなモデル(yolo、sam、rtdetr など)を初期化するためのコードブロックを挿入します。 |
| 結果 | ultra.result | 推論結果を扱う際の一般的な操作のためのコードブロック。 |
| ユーティリティ | ultra.util | Ultralytics パッケージに組み込まれている一般的なユーティリティへの迅速なアクセスを提供します。詳細については、Simple Utilities ページを参照してください。 |
例を用いた学習#
ultra.examples スニペットは、Ultralytics YOLO の使用方法の基本を学びたいと考えている人にとって非常に役立ちます。サンプルスニペットは挿入されるとすぐに実行されるように意図されています(一部にはドロップダウンオプションもあります)。この例は、このページのトップにあるアニメーションに示されています。スニペットが挿入された後、すべてのコードが選択され、Shift ⇑+Enter ↵ を使用してインタラクティブに実行されます。
このページのトップにあるアニメーションが示すように、スニペット ultra.example-yolo-predict を使用して次のコード例を挿入できます。挿入された後、唯一の設定可能なオプションはモデルスケールであり、n、s、m、l、または x のいずれかにすることができます。
from ultralytics import ASSETS, YOLO
model = YOLO("yolo26n.pt", task="detect")
results = model(source=ASSETS / "bus.jpg")
for result in results:
print(result.boxes.data)
# result.show() # uncomment to view each result image開発の加速#
ultra.examples 以外のスニペットの目的は、Ultralytics を使用した開発をより簡単かつ迅速にすることです。多くのプロジェクトで使用される一般的なコードブロックは、モデルの predict メソッドを使用して返された Results のリストを反復処理することです。ultra.result-loop スニペットはこれに役立ちます。
ultra.result-loop を使用すると、次のデフォルトコード(コメントを含む)が挿入されます。
# reference https://docs.ultralytics.com/modes/predict/#working-with-results
for result in results:
result.boxes.data # torch.Tensor arrayただし、Ultralytics は多数のタスクをサポートしているため、推論結果を扱う際には、アクセスしたくなる可能性のある他の Results 属性が存在します。ここでスニペットフィールドが強力に機能します。
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
キーワード引数#
さまざまな Ultralytics のすべてのタスクとモードに対して、100個以上のキーワード引数があります!覚えるべきことがたくさんあり、その引数が save_frame なのか save_frames なのか忘れてしまうことがあります(ちなみに間違いなく save_frames です)。ここで ultra.kwargs スニペットがお役に立ちます!
すべての推論引数を含む predict メソッドを挿入するには、ultra.kwargs-predict を使用します。これにより、次のコード(コメントを含む)が挿入されます。
model.predict(
source=src, # (str, optional) source directory for images or videos
imgsz=640, # (int | list) input images size as int or list[h,w] for predict
conf=0.25, # (float) minimum confidence threshold
iou=0.7, # (float) intersection over union (IoU) threshold for NMS
vid_stride=1, # (int) video frame-rate stride
stream_buffer=False, # (bool) buffer incoming frames in a queue (True) or only keep the most recent frame (False)
visualize=False, # (bool) save class activation heatmaps
augment=False, # (bool) apply image augmentation to prediction sources
agnostic_nms=False, # (bool) class-agnostic NMS
classes=None, # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
retina_masks=False, # (bool) use high-resolution segmentation masks
embed=None, # (list[int], optional) return feature vectors/embeddings from given layers
show=False, # (bool) show predicted images and videos if environment allows
save=True, # (bool) save prediction results
save_frames=False, # (bool) save predicted individual video frames
save_txt=False, # (bool) save results as .txt file
save_conf=False, # (bool) save results with confidence scores
save_crop=False, # (bool) save cropped images with results
stream=False, # (bool) for processing long videos or numerous images with reduced memory usage by returning a generator
verbose=True, # (bool) enable/disable verbose inference logging in the terminal
)このスニペットには、すべてのキーワード引数用のフィールドだけでなく、コードで別の変数を使用している場合に備えて model および src 用のフィールドもあります。キーワード引数を含む各行には、参考用の簡単な説明が含まれています。
すべてのコードスニペット#
利用可能なスニペットを見つける最良の方法は、拡張機能をダウンロードしてインストールし、試してみることです!興味があって事前にリストを確認したい場合は、リポジトリまたはVS Code マーケットプレイスの拡張機能ページにアクセスして、利用可能なすべてのスニペットの表を確認できます。
結論#
VS Code 用の Ultralytics-Snippets 拡張機能は、データサイエンティストや機械学習エンジニアが Ultralytics YOLO を使用してコンピュータービジョンアプリケーションをより効率的に構築できるように設計されています。事前構築済みのコードスニペットと役立つ例を提供することで、最も重要なこと、つまり革新的なソリューションの作成に集中できるように支援します。VS Code マーケットプレイスの拡張機能ページにアクセスしてレビューを残し、フィードバックを共有してください。⭐
よくある質問 (FAQ)#
新しいスニペットをリクエストするにはどうすればよいですか?#
新しいスニペットは、Ultralytics-Snippets のリポジトリの Issues を使用してリクエストできます。
Ultralytics 拡張機能の費用はいくらですか?#
完全に無料です!
コードスニペットのプレビューが表示されないのはなぜですか?#
VS Code は、プレビューウィンドウで情報を表示/非表示にするために Ctrl+Space キーの組み合わせを使用します。コードスニペットのプレフィックスを入力したときにスニペットのプレビューが表示されない場合は、このキーの組み合わせを使用するとプレビューが復元されます。
Ultralytics で拡張機能の推奨を無効にするにはどうすればよいですか?#
VS Code を使用していて、Ultralytics-snippets 拡張機能をインストールするように促すメッセージが表示されるようになり、そのメッセージをこれ以上表示したくない場合は、このメッセージを無効にする2つの方法があります。
-
Ultralytics-snippets をインストールすれば、メッセージは表示されなくなります 😆!
-
yolo settings vscode_msg=Falseを使用すると、拡張機能をインストールせずにメッセージが表示されないようにすることができます。詳細に慣れていない場合は、クイックスタートページの Ultralytics 設定で詳細を確認できます。
新しい Ultralytics コードスニペットのアイデアがあるのですが、どうすれば追加できますか?#
Ultralytics-snippets のリポジトリにアクセスして、Issue または Pull Request をオープンしてください!
Ultralytics-Snippets 拡張機能をアンインストールするにはどうすればよいですか?#
他の VS Code 拡張機能と同様に、VS Code の拡張機能メニューに移動してアンインストールできます。メニューで Ultralytics-snippets 拡張機能を見つけ、歯車アイコン (⚙) をクリックしてから「Uninstall」をクリックして拡張機能を削除します。