Ultralytics YOLO27:

Ultralytics VS Code拡張機能#



視聴: Ultralytics Visual Studio Code拡張機能の使用方法 | すぐに使えるコードスニペット | Ultralytics YOLO 🎉

機能とメリット#

✅ Ultralyticsを使用してコンピュータービジョンアプリケーションを開発しているデータサイエンティスト、またはmachine learningエンジニアですか?

✅ 同じコードブロックを何度も書くのにうんざりしていませんか?

✅ train、val、predict、export、trackメソッドの引数やデフォルト値をいつも忘れてしまいませんか?

✅ Ultralyticsを使い始めたいものの、コード例を参照したり実行したりするもっと簡単な方法があればと思いませんか?

✅ Ultralyticsを使った開発サイクルをスピードアップしたいですか?

Visual Studio Codeを使用していて、上記のいずれかに「はい」と答えた方には、VS Code用のUltralytics-snippets拡張機能がお役に立ちます。この拡張機能の詳細、インストール方法、使い方をご紹介します。


Snippet Prediction Preview
Ultralytics YOLOを使ったサンプルコードを20秒以内に実行できます! 🚀

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のコミュニティ投票に参加してお知らせください。よろしければ、コンピュータービジョン、machine learning、AI、開発者向けのお気に入りのミームをご覧いただくか、お気に入りを投稿してください。

拡張機能のインストール#

注

VS Code拡張機能をインストールできるコード環境であれば、Ultralytics-snippets拡張機能と互換性があるはずです。拡張機能の公開後、neovimをVS Code拡張機能と互換性のある形で利用できることがわかりました。詳しくは、Ultralytics-SnippetsリポジトリのReadmeにあるneovimのインストールセクションをご覧ください。

VS Codeへのインストール#

  1. VS Codeの拡張機能メニューを開くか、ショートカットCtrl+Shift ⇑+xを使用して、Ultralytics-snippetsを検索します。

  2. Installボタンをクリックします。


VS Code extension menu

VS Code Extension Marketplaceからインストールする#

  1. VS Code Extension MarketplaceでUltralytics-snippetsを検索するか、VS Code Marketplaceの拡張機能ページに直接アクセスします。

  2. Installボタンをクリックし、ブラウザーからVS Codeを起動できるようにします。

  3. 表示される指示に従って、拡張機能をインストールします。


VS Code marketplace extension install
Visual Studio Code拡張機能マーケットプレイスのUltralytics-Snippetsページ

Ultralytics-Snippets拡張機能の使い方#

  • 🧠 インテリジェントなコード補完: Ultralytics APIに合わせた高度なコード補完候補を使って、より速く正確にコードを記述できます。

  • ⌛ 開発速度の向上: 繰り返し行うコーディング作業をなくし、用意されたコードスニペットを活用して時間を節約できます。

  • 🔬 コード品質の向上: インテリジェントなコード補完を活用して、より読みやすく一貫性のある、エラーのないコードを記述できます。

  • 💎 ワークフローの効率化: よく使うタスクを自動化し、プロジェクトの主要なロジックに集中できます。

概要#

この拡張機能は、Language ModeがPythonに設定されている場合にのみ動作します 🐍。これにより、ほかのファイル形式で作業しているときにスニペットが挿入されるのを防ぎます。すべてのスニペットのプレフィックスはultraで始まります。拡張機能のインストール後、エディターでultraと入力するだけで、使用可能なスニペットの一覧が表示されます。また、Ctrl+Shift ⇑+pを使ってVS CodeのCommand Paletteを開き、Snippets: Insert Snippetコマンドを実行することもできます。

コードスニペットのフィールド#

多くのスニペットには、デフォルトのプレースホルダー値や名前を持つ「フィールド」が含まれています。たとえば、predictメソッドの出力は、r、results、detections、predsなど、開発者が自由に選んだPython変数に保存できます。そのため、スニペットには「フィールド」が含まれています。スニペットを挿入した後にキーボードのTab ⇥を押すと、カーソルがフィールド間をすばやく移動します。フィールドを選択した状態で新しい変数名を入力すると、その箇所だけでなく、スニペット内の同じ変数のすべての箇所が変更されます。


Multi-update field and options
スニペットを挿入した後、modelの名前をworld_modelに変更すると、すべての箇所が更新されます。Tab ⇥を押すと次のフィールドに移動し、ドロップダウンメニューが開いてモデルのスケールを選択できます。さらに次のフィールドに移動すると、別のドロップダウンが表示され、worldまたはworldv2のモデルバリアントを選択できます。

コードスニペットの補完#

さらに_短い_ショートカット

スニペットのプレフィックスをすべて入力する必要はありません。また、スニペットの先頭から入力し始める必要もありません。下の画像の例をご覧ください。

スニペット名はできるだけ内容がわかりやすいものにしていますが、その分、入力に時間がかかり、作業を速めるという目的に反することもあります。幸い、VS Codeではultra.example-yolo-predict、example-yolo-predict、yolo-predict、さらにはex-yolo-pと入力しても、目的のスニペット候補にたどり着けます。目的のスニペットが実際にはultra.example-yolo-predict-kwordsの場合は、キーボードの矢印キー↑または↓で目的のスニペットを選択し、Enter ↵またはTab ⇥を押すと、正しいコードブロックが挿入されます。


VS Code incomplete code snippet preview
ex-yolo-pと入力すると、それでも正しいスニペットが表示されます。

スニペットのカテゴリー#

現在、Ultralytics-snippets拡張機能で利用できるスニペットのカテゴリーは以下のとおりです。今後も追加されるため、更新を確認し、拡張機能の自動更新を有効にしてください。不足しているスニペットがある場合は、追加のスニペットをリクエストすることもできます。

カテゴリー開始プレフィックス説明
例ultra.examplesUltralyticsの学習や使い始めに役立つコード例です。ドキュメントページのコードをそのまま、または一部変更して掲載しています。
キーワード引数ultra.kwargstrain、val、predict、trackメソッドのすべてのキーワード引数とデフォルト値を含むスニペットを追加して、開発をスピードアップできます。
インポートultra.importsUltralyticsでよく使われるオブジェクトをすばやくインポートするためのスニペットです。
モデルultra.yolo各種モデル(yolo、sam、rtdetrなど)を初期化するコードブロックを、ドロップダウン形式の設定オプションとともに挿入します。
結果ultra.result推論結果の処理でよく使われる操作のコードブロックです。
ユーティリティultra.utilUltralyticsパッケージに組み込まれている便利なユーティリティにすばやくアクセスできます。詳しくは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()  # 各結果画像を表示するにはコメントを解除します

開発の加速#

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属性にアクセスしたい場合もあります。そのような場合に、スニペットのフィールドが役立ちます。


VS Code YOLO results visualization options
boxesフィールドに移動すると、必要に応じて別の属性を選択できるドロップダウンメニューが表示されます。

キーワード引数#

Ultralyticsのさまざまなタスクとモードには、💯を超えるキーワード引数があります。覚えることが多く、引数がsave_frameかsave_framesかを忘れてしまいがちです(ちなみに、正しくはsave_framesです)。そんなときにultra.kwargsスニペットが役立ちます。

例

すべての推論引数を含むpredictメソッドを挿入するには、ultra.kwargs-predictを使用します。次のコード(コメントを含む)が挿入されます。

model.predict(
    source=src,  # (str, optional) 画像または動画のソースディレクトリ
    imgsz=640,  # (int | list) predict用の入力画像サイズ。intまたはlist[h,w]
    conf=0.25,  # (float) 最小信頼度しきい値
    iou=0.7,  # (float) NMS用の交差領域と和集合の比率(IoU)しきい値
    vid_stride=1,  # (int) 動画のフレームレートのストライド
    stream_buffer=False,  # (bool) 入力フレームをキューにバッファリングする(True)か、最新のフレームのみを保持する(False)か
    visualize=False,  # (bool) クラスアクティベーションヒートマップを保存
    augment=False,  # (bool) 予測ソースに画像拡張を適用
    agnostic_nms=False,  # (bool) クラス非依存のNMS
    classes=None,  # (int | list[int], optional) クラスで結果をフィルタリングします。例: classes=0、またはclasses=[0,2,3]
    retina_masks=False,  # (bool) 高解像度のセグメンテーションマスクを使用
    embed=None,  # (list[int], optional) 指定したレイヤーから特徴ベクトル/埋め込みを返す
    show=False,  # (bool) 環境が対応している場合、予測した画像や動画を表示
    save=True,  # (bool) 予測結果を保存
    save_frames=False,  # (bool) 予測した動画の各フレームを保存
    save_txt=False,  # (bool) 結果を.txtファイルとして保存
    save_conf=False,  # (bool) 信頼度スコアとともに結果を保存
    save_crop=False,  # (bool) 結果を含む切り抜き画像を保存
    stream=False,  # (bool) ジェネレーターを返すことで、メモリ使用量を抑えながら長時間の動画や多数の画像を処理
    verbose=True,  # (bool) ターミナルでの詳細な推論ログを有効化/無効化
)

このスニペットにはすべてのキーワード引数のフィールドに加えて、コード内で別の変数を使用している場合に備えてmodelとsrcのフィールドもあります。キーワード引数を含む各行には、参照用の簡単な説明が付いています。

すべてのコードスニペット#

利用可能なスニペットを確認するには、拡張機能をダウンロードしてインストールし、実際に試すのが最適です。事前に一覧を確認したい場合は、リポジトリまたはVS Code Marketplaceの拡張機能ページで、利用可能なすべてのスニペットの表をご覧ください。

結論#

VS Code用のUltralytics-Snippets拡張機能は、データサイエンティストやmachine learningエンジニアが、Ultralytics YOLOを使ったコンピュータービジョンアプリケーションをより効率的に開発できるよう支援します。あらかじめ用意されたコードスニペットや便利なサンプルを提供することで、最も重要なこと、つまり革新的なソリューションの開発に集中できます。ぜひVS Code Marketplaceの拡張機能ページにアクセスしてレビューを投稿し、フィードバックをお寄せください。⭐

よくある質問#

  • 新しいスニペットは、Ultralytics-SnippetsのリポジトリでIssueを作成してリクエストできます。

  • 完全無料です!

  • VS Codeでは、プレビューウィンドウに表示する情報を増減するために、Ctrl+Spaceのキー操作を使用します。コードスニペットのプレフィックスを入力してもスニペットのプレビューが表示されない場合は、このキー操作でプレビューを再表示できます。

  • VS Codeを使用していて、Ultralytics-snippets拡張機能のインストールを促すメッセージが表示されるようになり、そのメッセージを今後表示したくない場合は、無効にする方法が2つあります。

    1. Ultralytics-snippetsをインストールすれば、メッセージは表示されなくなります😆!

    2. 拡張機能をインストールせずに、yolo settings vscode_msg=Falseを使用してメッセージが表示されないようにできます。詳しくは、Ultralyticsの設定ページをご覧ください。

  • Ultralytics-snippetsのリポジトリにアクセスして、IssueまたはPull Requestを作成してください!

  • 他のVS Code拡張機能と同じように、VS Codeの拡張機能メニューからアンインストールできます。メニューでUltralytics-snippets拡張機能を見つけ、歯車アイコン(⚙)をクリックしてから「アンインストール」をクリックすると、拡張機能を削除できます。


    VS Code extension menu

コメント