Ultralytics YOLO27:

コンピュータービジョンプロジェクトの目標を定義する方法#

コンピュータービジョンプロジェクトを定義するには、主要な問題、スコープ、ステークホルダー、制約を明記した問題ステートメントを作成し、測定可能で期限のある目標を設定します。そして、その問題を、モデル、データセット、デプロイに関する意思決定を決めるコンピュータービジョンタスクに対応付けます。このガイドでは、実例を使って各ステップを説明します。



Watch: How to define Computer Vision Project's Goal | Problem Statement and VisionAI Tasks Connection 🚀

データ収集からデプロイまでのワークフロー全体の概要については、コンピュータービジョンプロジェクトの主要なステップに関するガイドをご覧ください。

コンピュータービジョンの問題ステートメントの書き方#

明確な問題ステートメントを作成することは、最も効果的な解決策を見つけるための重要な第一歩です。問題ステートメントは次の4つの要素で構成されます。

  • 主要な問題を特定する: コンピュータービジョンプロジェクトで解決しようとしている具体的な課題を明確にします。
  • スコープを決定する: 問題の範囲を定義します。
  • エンドユーザーとステークホルダーを考慮する: 解決策の影響を受ける人を特定します。
  • プロジェクトの要件と制約を分析する: 利用可能なリソース(時間、予算、人員)を評価し、技術的または規制上の制約を特定します。

ビジネス上の問題ステートメントの例#

高速道路上の車両の速度を推定するコンピュータービジョンプロジェクトを考えてみましょう。主要な問題は、古いレーダーシステムと手作業のプロセスにより、現在の速度監視方法が非効率でエラーが発生しやすいことです。このプロジェクトでは、従来の速度推定システムを置き換えられるリアルタイムコンピュータービジョンシステムの開発を目指します。

Vehicle speed estimation on a highway using Ultralytics YOLO

主なユーザーは交通管理当局と法執行機関で、二次的なステークホルダーは高速道路計画担当者と、より安全な道路の恩恵を受ける一般市民です。主な要件には、予算、時間、人員の評価に加え、高解像度カメラやリアルタイムデータ処理などの技術的ニーズへの対応が含まれます。さらに、プライバシーとデータセキュリティに関する規制上の制約も考慮する必要があります。

測定可能な目標の設定#

測定可能な目標を設定することは、コンピュータービジョンプロジェクトの成功に重要です。効果的な目標はSMART基準に従います。

基準意味
具体的明確で詳細な目標を定義します。
測定可能目標を定量化できるようにします。
達成可能能力の範囲内で現実的な目標を設定します。
関連性がある目標をプロジェクト全体の目標に整合させます。
期限がある各目標の期限を設定します。

高速道路の速度推定の例では、SMART目標として次のようなものが考えられます。

  • 10,000枚の車両画像データセットを使用し、6か月以内に速度検出で少なくとも95%の精度を達成します。
  • システムは、最小限の遅延で毎秒30フレームのリアルタイム動画フィードを処理できる必要があります。

具体的で定量化可能な目標を設定することで、進捗を効果的に追跡し、改善領域を特定して、プロジェクトを計画どおりに進められます。

適切なコンピュータービジョンタスクの選び方#

問題ステートメントは、問題を解決できるコンピュータービジョンタスクを具体化するのに役立ちます。代表的なタスクには、画像分類物体検出画像セグメンテーションがあります。詳しい比較については、Ultralyticsのタスクページをご覧ください。

Comparison of image classification, object detection, and image segmentation outputs

たとえば、高速道路上の車両速度を監視する問題では、タスクはトラックモードで実行する物体検出です。トラッキングにより、検出された各車両に動画フレーム間で持続するIDが付与されます。これは速度の計算に必要です。

ここでは検出だけでは不十分です。検出は各フレーム内の車両の位置を特定しますが、フレーム間で各車両の同一性を維持しません。同一性がなければ、システムは時間経過に伴う移動を測定できません。トラックモードはこの同一性を付与します。適切なコンピュータービジョンタスクを特定すると、モデル選択、データセット準備、モデルのトレーニング手法など、プロジェクトの重要な要素を決める指針になります。

最初に行うべきことは、モデル、データ、それともトレーニング手法ですか?#

モデル選択、データセット準備、トレーニング手法の順序は、プロジェクトの具体的な状況によって異なります。

状況最初に行うこと
明確に定義された問題と目標モデル選択車両速度を推定する交通監視システムでは、トラックモードで実行する検出モデルを選択し、高速道路の動画を収集してアノテーションを付け、その後、リアルタイム動画処理向けの手法でトレーニングします。
固有または限られたデータデータセット準備データセットが小規模な顔認識システムでは、まずデータにアノテーションを付け、次に転移学習に利用できる事前学習済みモデルなど、限られたデータで適切に動作するモデルを選択し、データセットを拡張するためのデータ拡張を計画します。
実験が重要(研究)トレーニング手法製造上の欠陥を検出する新しい手法を検討するプロジェクトでは、まず小規模なデータサブセットで実験します。有望な手法が見つかったら、その結果に合わせたモデルを選択し、包括的なデータセットを準備します。

データから始める場合、プロジェクトの進展に合わせてUltralytics Platformを使うと、データセットの整理、アノテーション、トレーニングを簡素化できます。

デプロイの選択肢がプロジェクトに与える影響#

モデルのデプロイの選択肢はコンピュータービジョンプロジェクトのパフォーマンスに大きく影響するため、最初から考慮してください。デプロイ環境は、モデルの計算負荷に対応できる必要があります。

デプロイの選択肢最適な用途技術例
エッジデバイス計算リソースが限られたスマートフォンやIoTデバイス、軽量モデルLiteRTONNX Runtime
クラウドサーバー計算負荷の大きい複雑なモデル、プロジェクトに応じて拡張できるハードウェアAWS、Google Cloud、Azure
オンプレミスサーバー高いデータプライバシーおよびセキュリティ要件、データとインフラストラクチャの完全な管理自己管理型GPUサーバー
ハイブリッドソリューションパフォーマンス、コスト、レイテンシのバランス、エッジ処理とクラウド分析の組み合わせエッジランタイムとクラウドプラットフォームの組み合わせ

各選択肢には異なるメリットと課題があり、選択はパフォーマンス、コスト、セキュリティなど、プロジェクト固有の要件によって決まります。

まとめ#

コンピュータービジョンプロジェクトを成功させるには、明確な問題ステートメント、SMARTに基づく測定可能な目標、そして目的に合ったコンピュータービジョンタスクから始めます。これらの決定が、モデル選択からデプロイまで、その後のすべてを導きます。次のステップとして、データの収集とアノテーションの方法を学ぶか、GitHubUltralytics Discordサーバーで他の開発者とプロジェクトについて議論してください。

FAQ#

  • 明確な問題ステートメントには、プロジェクトが解決する主要な問題、スコープ、エンドユーザーとステークホルダー、リソース上および規制上の制約を明記します。この4つの要素を順番に整理し、技術的な意思決定を行う前に、ステークホルダーとステートメントの妥当性を確認してください。詳しい内訳と実例については、コンピュータービジョンの問題ステートメントの書き方をご覧ください。

  • 必要な出力を、それを生成するタスクに対応付けます。画像ごとに1つのラベルが必要なら画像分類、物体の位置が必要なら物体検出、ピクセルレベルの境界が必要なら画像セグメンテーション、動画フレーム間で同一性を維持する必要があるなら、同じ検出モデルをトラックモードで実行します。たとえば車両速度の監視には、時間経過に伴う各車両の移動から速度を計算するため、トラッキングが必要です。サポートされているすべてのタスクについては、Ultralyticsのタスクページをご覧ください。

  • SMART基準(具体的、測定可能、達成可能、関連性がある、期限がある)を使用します。たとえば、「10,000枚の車両画像データセットを使用し、6か月以内に速度検出で95%の精度を達成する」です。この方法により、進捗を追跡し、改善領域を特定できます。測定可能な目標の設定について詳しくお読みください。

  • いいえ。事前学習済みモデルは、従来の意味でクラスを「記憶」しているわけではありません。大規模なデータセットからパターンを学習し、カスタムトレーニング(ファインチューニング)中に、特定のタスクに合わせてこれらのパターンを調整します。モデルの容量には限りがあるため、新しい情報に集中すると、以前の学習内容の一部が上書きされる可能性があります。

    Overview of transfer learning from a pretrained model to a custom model

    モデルが事前学習したクラスを使用したい場合は、2つのモデルを使う実用的な方法があります。一方は元のパフォーマンスを維持し、もう一方は特定のタスク向けにファインチューニングします。これにより、両方のモデルの出力を組み合わせられます。レイヤーの凍結、事前学習済みモデルの特徴抽出器としての使用、タスク固有の分岐など、他の選択肢もありますが、これらはより複雑で、より高度な専門知識が必要です。

  • デプロイの選択肢によって利用可能なモデルサイズと形式が決まるため、プロジェクトの最初から方向性に影響します。エッジデバイスでは、LiteRTONNX Runtimeなどの形式とランタイムで軽量モデルを提供する必要があります。クラウドサーバーではスケーラブルなハードウェア上で複雑なモデルを処理でき、オンプレミスサーバーではプライバシーに配慮が必要なプロジェクトでデータを完全に管理でき、ハイブリッド構成では両者のバランスを取れます。デプロイの選択肢の表で比較するか、詳細についてはモデルのデプロイの選択肢に関するガイドをご覧ください。

  • よくある課題には次のようなものがあります。

    • 曖昧または広すぎる問題ステートメント。
    • 非現実的な目標。
    • ステークホルダー間の認識の不一致。
    • 技術的制約への理解不足。
    • データ要件の過小評価。

    これらの課題には、初期段階での十分な調査、ステークホルダーとの明確なコミュニケーション、問題ステートメントと目標の反復的な改善によって対処します。プロジェクトのワークフロー全体については、コンピュータービジョンプロジェクトの主要なステップをご覧ください。

コメント