Ultralytics Solutions:YOLO26で現実世界の課題を解決#
Ultralytics Solutionsは、YOLOモデルの最先端の活用例を提供し、物体カウント、ぼかし処理、セキュリティシステムなどの現実世界の課題を解決します。さまざまな業界で効率と精度を高めます。YOLO26を実用的で大きな効果をもたらす形で導入する方法をご覧ください。

視聴: コマンドライン(CLI)から Ultralytics Solutions を実行する方法 | Ultralytics YOLO26 🚀
Solutions#
魅力的なコンピュータービジョンプロジェクトの作成に活用できる、厳選されたUltralyticsのソリューションをご紹介します。
- 分析:YOLO26を活用した記述的、予測的、処方的分析により、包括的なデータ分析を行い、パターンを発見して情報に基づいた意思決定を支援します。
- 距離計算:YOLO26でバウンディングボックスの重心を使って物体間の距離を計算します。これは空間分析に不可欠です。
- ヒートマップ:検出ヒートマップを使用して行列全体のデータ強度を可視化し、コンピュータービジョンタスクにおける明確な洞察を提供します。
- 物体追跡を伴うインスタンスセグメンテーション:YOLO26でインスタンスセグメンテーションと物体追跡を実装し、物体の境界を正確に捉え、継続的に監視します。
- Streamlitによるライブ推論:YOLO26の性能を活用し、使いやすいStreamlitインターフェースを通じて、Webブラウザー上でリアルタイムの物体検出を直接実行します。
- 物体のぼかし処理:YOLO26を使って画像や動画の処理時に物体をぼかし、プライバシーを保護します。
- 物体カウント:YOLO26を使ったリアルタイムの物体カウント方法を学びます。ライブ動画ストリーム内の物体を正確に数えるスキルを身につけられます。
- 領域内の物体カウント:YOLO26を使って特定の領域内の物体を数え、さまざまなエリアで正確に検出します。
- 物体の切り出し:YOLO26を使った物体の切り出し方法を習得し、画像や動画から物体を正確に抽出します。
- 駐車場管理:YOLO26を使って駐車場内の車両の流れを整理・誘導し、スペースの利用効率とユーザー体験を最適化します。
- 行列管理:YOLO26を使って効率的な行列管理システムを実装し、待ち時間を短縮して生産性を高めます。
- セキュリティアラームシステム:YOLO26で新しい物体を検出したときにアラートを発するセキュリティアラームシステムを作成します。用途に合わせてシステムをカスタマイズできます。
- 類似画像検索:OpenAI CLIPの埋め込みとコサイン類似度検索を組み合わせて、画像をインテリジェントに検索します。「バッグを持っている人」や「移動中の車両」などの自然言語クエリを利用できます。
- 速度推定:YOLO26と物体追跡技術を使って物体の速度を推定します。自動運転車や交通監視などの用途で重要です。
- ゾーン内の物体追跡:YOLO26を使って動画フレーム内の特定ゾーンで物体を追跡し、正確かつ効率的に監視する方法を学びます。
- VisionEyeによる物体マッピング:人間の目が特定の物体に焦点を合わせる動きを模倣するシステムを開発し、コンピューターが詳細を識別して優先順位を付ける能力を高めます。
- ワークアウトのモニタリング:YOLO26を使ってワークアウトをモニタリングする方法をご覧ください。さまざまなフィットネスルーティンをリアルタイムで追跡・分析する方法を学べます。
Solutionsの引数#
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパスです。 |
region | listまたはdict | None | 関心領域を定義するポイントです。(x, y)タプルのリスト、または複数領域用に領域名とポイントリストを対応付ける辞書(RegionCounterのみ)を指定します。Noneの場合、領域が必要なSolutionsでは定義済みのデフォルト値が使用されます。 |
show_in | bool | True | 動画ストリームに入場数を表示するかどうかを制御するフラグです。 |
show_out | bool | True | 動画ストリームに退場数を表示するかどうかを制御するフラグです。 |
analytics_type | str | 'line' | グラフの種類です。line、bar、area、pieを指定できます。 |
colormap | int | cv2.COLORMAP_DEEPGREEN | ヒートマップに使用するカラーマップです。 |
line_width | int | 2 | Solutionが描画するボックス、キーポイント、カウント表示の線幅です。 |
verbose | bool | True | 各フレームの入力shape、クラス数、処理速度を記録するSolutionのログを有効にします。トラッキング呼び出し自体は常にログを出力しません。 |
json_file | str | None | すべての駐車座標データを含むJSONファイルへのパスです。 |
up_angle | float | 145.0 | 「上」ポーズの角度しきい値です。 |
kpts | list[int] | [6, 8, 10] | ワークアウトのモニタリングに使用する3つのキーポイントインデックスのリストです。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などで使用する肩、肘、手首といった身体の関節や部位に対応します。 |
down_angle | float | 90.0 | 「下」ポーズの角度しきい値です。 |
blur_ratio | float | 0.5 | ぼかしの強度をパーセンテージで調整します。値の範囲は 0.1 - 1.0 です。 |
crop_dir | str | 'cropped-detections' | 切り抜いた検出結果を保存するディレクトリ名です。 |
records | int | 5 | セキュリティ警報システムでメールを送信するトリガーとなる検出数の合計です。 |
vision_point | tuple[int, int] | (20, 20) | VisionEye Solutionを使用して、ビジョンがオブジェクトを追跡し、軌跡を描画する位置です。 |
source | str | None | 入力ソース(動画、RTSPなど)へのパスです。Solutionsのコマンドラインインターフェース(CLI)でのみ使用できます。 |
figsize | tuple[float, float] | (12.8, 7.2) | Analytics のチャートで使用するインチ単位の図のサイズです。(12.8, 7.2) は1280×720のフレームを描画します。 |
fps | float | 30.0 | 速度の計算に使用する1秒あたりのフレーム数です。 |
max_hist | int | 5 | 速度や方向の計算で、オブジェクトごとに追跡する履歴ポイントの最大数です。 |
meter_per_pixel | float | 0.05 | ピクセル距離を実世界の単位に変換するためのスケーリング係数です。 |
max_speed | int | 120 | 速度の上限(km/h)です。推定速度がこの値を超える場合、この値に制限されます。 |
data | str | 'images' | 類似検索に使用する画像ディレクトリへのパスです。 |
imgsz | int | 640 | モデル推論に使用する入力画像のサイズです。 |
Solutionsは、以下の推論およびトラッキング引数をmodel.track()に渡します。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 使用するトラッキングアルゴリズムを指定します。組み込みのオプション:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 検出の信頼度しきい値を設定します。値を低くすると、より多くの物体を追跡できますが、誤検出が含まれる可能性があります。 |
iou | float | 0.7 | 重複する検出をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。 |
classes | list | None | クラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]を指定すると、指定したクラスのみを追跡します。 |
device | str | None | 推論に使用するデバイスを指定します(例:cpu、cuda:0、0)。モデル実行に使用するCPU、特定のGPU、その他の計算デバイスを選択できます。 |
imgsz | int or tuple | 640 | 推論時の入力画像サイズです。正方形の場合は整数、または(height, width)のペアを指定します。形状はモデルのストライドに合わせて調整されます。 |
max_det | int | 300 | トラッキング前にフレームごとに保持する検出の最大数です。混雑したシーンでソリューションが処理する物体数を制限します。 |
quantize | int or str | None | 推論精度: CPU以外で実行するPyTorchおよびTorchScriptモデルでは、16(FP16)または32/未設定(FP32)を使用します。その他の形式では、アーティファクトとランタイムによって選択される精度が使用されます。非推奨のhalf引数を置き換えます。 |
show_conf、show_labels、その他の説明済みの引数を使って、可視化をカスタマイズできます。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中にすぐ視覚的なフィードバックを得るのに便利です。 |
show_conf | bool | True | 各検出のラベルとともに信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。 |
show_labels | bool | True | 可視化出力で各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。 |
SolutionAnnotatorの使用方法#
すべてのUltralytics Solutionsは、メインのAnnotatorクラスを拡張する独立したクラスSolutionAnnotatorを使用し、以下のメソッドを備えています。
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
draw_region() | None | 指定した点、色、太さを使って領域を描画します。 |
queue_counts_display() | None | 指定した領域内の行列人数を表示します。 |
display_analytics() | None | 駐車場管理の全体統計を表示します。 |
estimate_pose_angle() | float | 物体の姿勢における3点間の角度を計算します。 |
draw_specific_kpts() | np.ndarray | 画像上に指定したキーポイントを描画します。 |
plot_workout_information() | int | 画像上にラベル付きのテキストボックスを描画します。 |
plot_angle_and_count_and_stage() | None | ワークアウトのモニタリング用に、角度、ステップ数、ステージを可視化します。 |
plot_distance_and_line() | None | 重心間の距離を表示し、線で結びます。 |
display_objects_labels() | None | バウンディングボックスに物体クラスのラベルを付けます。 |
sweep_annotator() | None | 垂直なスイープラインと、任意のラベルを可視化します。 |
visioneye() | None | 物体の重心を視覚的な「目」のポイントにマッピングして接続します。 |
adaptive_label() | None | バウンディングボックスの中央に円形または長方形の背景付きラベルを描画します。 |
SolutionResultsの使用方法#
Similarity Search を除き、Solution の各呼び出しは SolutionResults オブジェクトを返します。
- 物体カウントでは、結果に
in_count、out_count、classwise_countが含まれます。
import cv2
from ultralytics import solutions
im0 = cv2.imread("path/to/img")
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
counter = solutions.ObjectCounter(
show=True, # 出力を表示する
region=region_points, # 領域の点を渡す
model="yolo26n.pt", # model="yolo26n-obb.pt"で、OBBモデルを使った物体カウントを行います。
# classes=[0, 2], # COCOの事前学習済みモデルで、人物や車など特定のクラスをカウントします。
# tracker="botsort.yaml" # bytetrack.yamlなどのトラッカーを選択します。
)
results = counter(im0)
print(results.in_count) # display in_counts
print(results.out_count) # display out_counts
print(results.classwise_count) # display classwise_countSolutionResults オブジェクトには、次の属性があります。
| 属性 | 種類 | 説明 |
|---|---|---|
plot_im | np.ndarray | カウント、ぼかし効果、ソリューション固有の機能強化などの視覚的なオーバーレイを含む画像です。 |
in_count | int | 動画ストリーム内で、定義されたゾーンに入る物体の合計数です。 |
out_count | int | 動画ストリーム内で、定義されたゾーンから出る物体の合計数です。 |
classwise_count | dict[str, dict[str, int] | int] | クラスごとのカウント:ObjectCounterとHeatmapでは{"IN": int, "OUT": int}、Analyticsではintです。 |
queue_count | int | 事前に定義された行列または待機エリア内に現在いる物体の数です(行列管理に適しています)。 |
workout_count | list[int] | AI Gymにおけるトラックごとのワークアウト反復回数(現在追跡中の個体ごとに1つのエントリー)。 |
workout_angle | list[float] | AI Gymにおけるトラックごとのエクササイズ角度(現在追跡中の個体ごとに1つのエントリー)。 |
workout_stage | list[str] | AI Gymにおけるトラックごとの現在のワークアウトステージ(現在追跡中の個体ごとに1つのエントリー)。 |
pixels_distance | float | 2つの物体または点(例:バウンディングボックス)間のピクセル単位の距離です(距離計算に適しています)。 |
available_slots | int | 監視対象エリア内の空き駐車枠の数です(駐車場管理に適しています)。 |
filled_slots | int | 監視対象エリア内の使用中の駐車枠の数です(駐車場管理に適しています)。 |
email_sent | bool | 通知またはアラートメールが正常に送信されたかどうかを示します(セキュリティアラームに適しています)。 |
total_tracks | int | 動画分析中に観測された、重複のない物体トラックの合計数です。 |
region_counts | Dict[str, int] | ユーザー定義の領域またはゾーン内のオブジェクト数です。 |
speed_dict | Dict[int, int] | SpeedEstimatorによって推定された速度をkm/h単位でトラックごとに格納した辞書です。速度の分析に役立ちます。 |
total_crop_objects | int | ObjectCropperソリューションによって生成された、切り抜き済みオブジェクト画像の合計数です。 |
speed | Dict[str, float] | トラッキングとソリューション処理のパフォーマンス指標を格納した辞書です。 |
詳細については、SolutionResultsクラスのドキュメントをご覧ください。
CLIでのSolutionsの使用方法#
ほとんどのSolutionsは、コマンドラインインターフェースから直接使用できます。
構文
yolo SOLUTIONS SOLUTION_NAME ARGS
- SOLUTIONSは必須のキーワードです。
- SOLUTION_NAMEには、次のいずれかを指定します:
['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye', 'region', 'security', 'parking']。 - ARGS(省略可)は、デフォルト設定を上書きするための
arg=valueとshow_in=Trueなどのカスタムペアです。
yolo solutions count show=True # for object counting
yolo solutions count source="path/to/video.mp4" # specify video file pathSolutionsへの貢献#
コミュニティからの貢献を歓迎します。Ultralytics YOLOの特定の分野に精通していて、まだSolutionsで取り上げられていない内容があれば、ぜひ知見を共有してください。ガイドを執筆することは、コミュニティに貢献し、ドキュメントをより包括的で使いやすくするための素晴らしい方法です。
まずは貢献ガイドを読み、Pull Request (PR)の作成方法をご確認ください 🛠️。皆様からの貢献をお待ちしています。
Ultralytics YOLOエコシステムをより堅牢で汎用性の高いものにするために、協力して取り組みましょう 🙏!
よくある質問#
Ultralytics YOLO26は、高度な物体検出機能を活用して、リアルタイムのオブジェクトカウントに使用できます。オブジェクトカウントの詳細なガイドに沿って、ライブ動画ストリームを分析するようYOLO26を設定できます。YOLO26をインストールし、モデルを読み込んで動画フレームを処理するだけで、動的にオブジェクトをカウントできます。
Ultralytics YOLO26は、リアルタイムの物体検出とアラート機能を提供することで、セキュリティシステムを強化します。YOLO26を利用すれば、監視エリアで新しいオブジェクトが検出されたときにアラートを発するセキュリティアラームシステムを構築できます。YOLO26を使った堅牢なセキュリティ監視を実現するセキュリティアラームシステムの設定方法をご覧ください。
Ultralytics YOLO26は、行列に並ぶ人々を正確にカウントして追跡することで、キュー管理システムを大幅に改善できます。これにより、待ち時間の短縮とサービス効率の最適化に役立ちます。キュー管理の詳細なガイドに沿って、効果的な行列の監視と分析にYOLO26を導入する方法をご確認ください。
はい。Ultralytics YOLO26は、フィットネスのルーティンをリアルタイムで追跡・分析し、ワークアウトのモニタリングに効果的に使用できます。これにより、運動フォームとパフォーマンスを正確に評価できます。YOLO26を使ったAI搭載ワークアウトモニタリングシステムの設定方法については、ワークアウトモニタリングのガイドをご覧ください。
Ultralytics YOLO26は、指定した領域全体のデータの強度を可視化するヒートマップを生成し、活動や関心の高い領域を強調できます。この機能は、さまざまなコンピュータービジョンタスクのパターンや傾向を把握するうえで特に役立ちます。包括的なデータ分析と可視化に向けたYOLO26でのヒートマップの作成方法と使用方法について、詳しくご覧ください。