Ultralytics YOLO26が単眼深度推定に対応
Ultralytics YOLO26の新しい深度推定タスクが、ステレオリグやLiDARなしで、単一のRGB画像からピクセル単位のメートルスケール深度を予測する仕組みをご紹介します。

これまでは、YOLOパイプラインに深度を追加するには、自分で組み立てる必要がありました。一般的な方法は、検出にYOLOを実行し、MiDaSやDepth Anythingなど、別のプロジェクトの深度モデルと組み合わせることでした。そのため、2つ目の依存関係、2つ目のフレームワーク、そして調整が必要な2組の入力・出力形式が必要でした。
単眼深度推定が、Ultralytics YOLO26のネイティブタスクになりました。1枚のRGB画像から、検出、セグメンテーション、ポーズと同じパッケージ、ワークフロー、エクスポートパスを使用して、すべてのピクセルの距離値を生成します。
深度推定とは何ですか?#
深度推定は、2台目のカメラや追加センサーを使わずに、1枚のRGB画像からピクセル単位の深度マップを予測します。出力される各ピクセルにはメートル単位の深度値が格納され、カメラからその表面上の点までの推定距離を表します。
出力は入力にアラインされた、形状(H, W)の密なfloatマップです。すべてのピクセルがメートル単位の絶対距離、つまり何が近く何が遠いかという相対的な順序ではなく、カメラからの距離を持ちます。
深度は専用のチェックポイントを持つ独立したタスクであり、出力は深度マップのみです。バウンディングボックスやセグメンテーションマスクは返しません。そのため、検出と深度を組み合わせるには、2つのモデルと2回のフォワードパスを実行する必要があります。従来と異なるのは、現在では両方が1つのパッケージ内に収まり、1回のインストール、1つの学習・予測インターフェース、1つのエクスポートパス、そして追跡するバージョンも1つを共有できる点です。以前のように、別のフレームワークを並行して保守する必要はありません。
このピクセル単位の出力により、深度は障害物やフリースペースの検出、クリアランス確認、シーンレイアウト、何が何の前方にあるかの把握に役立ちます。
図1. 安全およびコンプライアンス監視向けのUltralytics YOLO26深度推定。
Ultralytics YOLO26には、yolo26n-depthからyolo26x-depthまで、5つの事前学習済み深度モデルが含まれています。約219万枚の屋内・屋外画像にまたがる、広範な複数データセットの組み合わせで学習されています。NYU Depth V2データセットでは、nanoモデルのδ1精度0.882からextra-largeモデルの0.933までの範囲にあるため、デプロイ先に適した速度と精度のトレードオフを選択できます。
設計上、上限のない深度#
ほとんどの深度モデルは、予測範囲を0~10メートルのような固定範囲に制限します。これは屋内シーンでは問題ありませんが、屋外では限界があります。Ultralyticsは代わりに、ハードな上限のない開放型の対数スケールで深度を予測します。
この違いはテスト結果に表れます。上限付きモデルは、屋内と屋外の混合データで学習するとすぐに頭打ちになり、物体が80メートル離れていることもあるKITTIのような長距離データセットでは性能が崩れます。Ultralytics YOLO26のアプローチにはこのような上限がないため、データが増えるほど改善し、数センチメートルから数百メートルまで対応できます。KITTIでは、80 mの範囲でδ1が0.942に達します。つまり、卓上シーンにも高速道路シーンにも、同じモデルファミリーで等しく対応できます。
Ultralytics YOLO26の深度とDepth Anything V2の比較#
現在、YOLOと並行してDepth Anythingを実行している場合、違いは速度と、それに伴う計算コストです。Ultralytics YOLO26の深度モデルは、Depth Anything V2 Baseより最大20.3倍、Depth Anything V2 Smallより最大7.7倍高速です。しかも、モデルサイズは大幅に小さく、nanoは1,000万未満のパラメータで、DA V2の小さいチェックポイントの約2,400万に対抗できます。
図2. Depth Anything V2と比較したUltralytics YOLO26深度の速度ベンチマーク。
この差こそが設計の目的です。Depth Anything V2のモデルは大幅に大きい一方、Ultralytics YOLO26-Depthは、1フレームあたりの計算コストを抑え、これらのモデルでは対応できないハードウェアにもデプロイできるサイズと速度で、高い深度性能を実現するように構築されています。NYU Depth V2とKITTIでのモデルごとの精度値はドキュメントに公開されているため、実際の要件と照らし合わせて確認できます。
実行できる環境#
このサイズの違いが、深度を実際にどこへ導入できるかを決定します。深度を評価しているほとんどのチームは、アイデアに不足しているのではなく、計算リソースに不足しています。低消費電力のドローン、四足歩行ロボット、ウェアラブル、ダッシュカム、会議用ハードウェア、産業用PCは、精度の限界に達する前に、電力とコストの上限に達してしまいます。
深度には5つの事前学習済みモデルが用意されているため、ベンチマークで勝つサイズではなく、対象に適したサイズを選択できます。深度はUltralytics YOLO26のネイティブタスクであるため、検出、セグメンテーション、ポーズと同じエクスポートパスを使用し、次の形式に対応します:ONNX、TensorRT、CoreML、NCNN、LiteRT。
Ultralytics YOLO26の深度を始める#
Ultralytics Pythonパッケージは、深度を含むすべてのYOLO26タスクで、学習、検証、推論の実行に対応する、単一の統合インターフェースを提供します。事前学習済み深度モデルは、次の1つのコマンドで実行できます:
from ultralytics import YOLO
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-depth.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
depth_map = result.depth.data.cpu().numpy() # torch.Tensor → NumPy float32, shape (H, W), metersまたはCLIから実行します:
yolo depth predict model=yolo26n-depth.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo depth predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model絶対距離は、カメラとシーンによって異なります。深度マップの形状は正しいもののスケールがずれている場合、model.calibrate()は、約100枚のラベル付きフレームを使って、モデルの深度ヘッドにある2つの変数、スケールとオフセットを数秒でフィットします。学習は不要で、ネットワークの他の部分も変更しません。
独自データでのファインチューニング#
事前学習済み深度モデルを独自のカメラやドメインに適応させるには、事前学習済み重みから開始し、AdamWを使用します。また、ファインチューニングによってモデルを上書きするのではなく改良できるよう、学習率をゼロからの学習時のデフォルト値より大幅に下げます:
from ultralytics import YOLO
from ultralytics import YOLO
model = YOLO("yolo26s-depth.pt") # start from pretrained weights
model.train(
data="path/to/your_dataset.yaml",
epochs=20,
imgsz=640,
optimizer="AdamW",
lr0=1e-4, # ~100x below the from-scratch default
warmup_bias_lr=1e-4, # keep warmup gentle too
)デフォルトの対数ヘッドは上限がないため、データセットが近距離でも長距離でも、max_depthのチューニングなしでそのまま動作します。特定のカメラで絶対スケールだけがずれている場合は、model.calibrate()によって、小規模なラベル付き分割データに対して軽量な閉形式の補正を数秒で適用できます。ネットワークの重みには触れません。
データセットでは、各RGB画像に対応するフォルダー構造内の.npy深度ファイルを組み合わせます。UltralyticsにはNYU Depth V2、KITTI、Hypersim、SUN RGB-D、ARKitScenes用の組み込み設定が用意されているため、ほとんどのチームはすぐに標準ベンチマークに対する検証を開始できます。
深度推定の主なユースケース#
この新機能は一般的な単一カメラだけで動作するため、単眼深度推定によって、ステレオやLiDARの構成に必要なコスト、消費電力、キャリブレーションの負担を別の方法では正当化できない製品や業界にも、数え切れないほどの可能性が広がります。それでは、この機能の恩恵を受けられる主な業界とユースケースをいくつか見ていきましょう:
- ロボティクスと自律ナビゲーション。 モバイルロボットやドローンは、搭載された1台のカメラから障害物までの距離とフリースペースを推定し、専用の深度ハードウェアなしでリアルタイムの経路計画を支援できます。
- 産業および物流の状況把握。 2つ目のセンサーの追加が現実的でない場所でも、1台の固定カメラからクリアランス確認、フリースペース検出、棚や通路の状況把握を実現できます。
- 安全およびコンプライアンス監視。 フォークリフトや倉庫の安全区域、鉄道事故の検出、既存のCCTVでの転倒者や置き去り物体の検出など、すでに設置されているカメラ映像に距離情報を追加します。既存の安全認証済みセンサーを置き換えるのではなく、併用します。
- インフラおよび資産の点検。 架空線のクリアランス分析、ドローンによる資産や腐食の点検、航空測量など、同じモデルファミリーで近接した詳細と長距離のシーンの両方に対応する必要がある用途です。
- 運転支援および自動車の認識。 長距離で上限のない深度出力により、近距離の屋内シーンに対応する同じモデルファミリーを、80 m以上の走行シーンにも一般化できます。
- ARおよび空間コンテンツ。 現実のシーンに仮想オブジェクトを自然に配置したり、深度を考慮したエフェクトを適用したりするには、まず各ピクセルがカメラから実際にどれだけ離れているかを把握する必要があります。
あらゆるUltralytics YOLO26デプロイに深度推定を導入#
深度推定がUltralytics YOLO26のネイティブタスクになったことで、チームは業界を問わず、あらゆるRGBカメラから得られるピクセル単位の距離を活用できます。検出、セグメンテーション、ポーズで慣れ親しんだものと同じtrain、val、predict、exportのワークフローを使用でき、保守するサードパーティ依存関係も1つ減ります。
それでは、Ultralytics YOLO26の深度を使ったデプロイを検討する際に、留意すべき主なポイントをいくつか見ていきましょう:
- Ultralytics YOLO DepthはRGBカメラ向けに構築されています。ウェブカメラ、スマートフォン、産業用カメラ、ドローンなど、標準的なカメラであれば使用できます。ただし、LiDAR点群、レーダー、ソナー、サーマルやマルチスペクトルのバンド、メッシュやIFCデータなど、その他のモダリティはモデルの入力形式の対象外です。
- 認識に基づく意思決定のためのメートル単位の距離。出力は実際のメートル単位の距離であるため、ナビゲーション、クリアランス、監視に適しています。ただし、認証済みの許容差が必要な用途では、専用の計測機器が引き続き適切な計測手段です。
- 画像ごとの推論。深度は他のすべてのUltralytics YOLO26タスクと同様に、各フレームを独立して処理するため、既存のフレーム単位のパイプラインに変更なしで組み込めます。シーケンス全体にわたる推論は、アプリケーション層で実行します。
- Ultralytics YOLO26-Depthは、テクスチャのある不透明な表面で最も高い性能を発揮します。ガラス、鏡、水面、研磨金属、開けた空は、単一カメラ方式では本質的に曖昧になるため、実際の環境を代表するシーンで検証することをおすすめします。
ビジョンAIに関心がありますか?ライセンスオプションを確認して、コンピュータービジョンをプロジェクトに導入しましょう。GitHubリポジトリでUltralyticsのタスクと統合機能の全容を確認し、Ultralytics PlatformでエンドツーエンドのビジョンAIワークフローの構築を始めましょう。









