YOLO Vision Shenzhen
深セン
今すぐ参加

Ultralytics によるコンピュータビジョンにおけるスマートなデータセット管理

コンピュータビジョンプロジェクトにおけるデータセット管理を効率化するために、Ultralytics どのように活用できるかをご覧ください。データセットの追跡、比較、改善を簡単に行うことができます。

Ultralyticsでコンピュータビジョンプロジェクトをスケールアップ

始める

ビジョンAI、すなわちコンピュータビジョンは、その黎明期から長い道のりを歩んできました。実験的な研究から始まり、現在では実世界のアプリケーションを支える基幹技術へと進化を遂げています。今日では、AI愛好家たちは、手軽に入手できるツールやフレームワークを活用して、物体検出やインスタンスセグメンテーションといったタスク向けの強力なモデルを構築することができます。

しかし、こうしたアプリケーションが実験段階から本番環境へと移行するにつれ、データセットの管理は依然として極めて重要でありながら、しばしば見過ごされがちな課題となっています。コンピュータビジョン用データセットの規模と複雑さが増すにつれ、チームは一貫したアノテーションの維持、バージョン間のtrack 、そしてデータ全体の品質確保に苦労することが少なくありません。

最先端のモデルであっても、学習に用いるデータが不完全であったり、不均衡であったり、管理が不十分であったりすれば、実環境では期待通りの性能を発揮できないことがあります。開発時の性能と実環境での信頼性との間に生じているこのギャップの拡大こそが、データセット管理に対してより体系的なアプローチが必要とされる理由です。

もう一つの一般的な課題は、データ収集、アノテーション、およびトレーニングが、しばしば別々のツールで行われる点です。ワークフローが分断されていると、データセットを効率的に管理することが難しくなり、不整合が生じるリスクが高まり、反復作業のスピードも低下してしまいます。

データセットの管理やワークフローの断片化といったビジョンAIの課題を解決するため、当社は先日「Ultralytics 」をリリースしました。これは、データセットの管理、アノテーション、トレーニング、デプロイ、モニタリングを単一の統合ワークフローに統合したエンドツーエンドのワークスペースです。 

コンピュータビジョンのライフサイクルの各段階を連携させることで、track 変更track 、バージョン間のパフォーマンスを比較したり、より良い結果を得るためにデータを継続的に改善したりすることが容易になります。

図1.Ultralytics Platform内でデータセットの画像を表示する例(出典

この記事では、Ultralytics 、より信頼性の高いコンピュータビジョンモデルを構築するために、データセットのtrack、比較、改善をどのように支援するかについて詳しく解説します。さっそく始めましょう! 

コンピュータビジョンにおけるデータセット管理の重要性

コンピュータビジョンモデルの性能は、そのモデルが学習に使用したデータと密接に関連しています。モデルの精度、つまり予測が正しくなる頻度は、アルゴリズムだけでなく、データセットが実世界の状況をどれだけ適切に反映しているかにも左右されます。 

簡単に言えば、モデルはデータから直接パターンを学習するため、データセットに不備や偏り、不整合があると、予測結果に影響を及ぼす可能性があります。つまり、データの質が低い場合や、アノテーションに誤りがある場合、あるいは照明条件、被写体の角度、背景、遮蔽の程度といった現実世界の画像の多様性が十分に網羅されていない場合、たとえモデルアーキテクチャ自体が優れていても、精度が大幅に低下する恐れがあります。

これは、事前学習済みのモデルを新しいデータや更新されたデータを用いてさらに学習させ、特定のユースケースや環境により適応させる「モデルの微調整」を行う場合にも当てはまります。モデルの精度はデータに大きく依存するため、そのデータを適切に管理することが不可欠となります。 

データセットの管理には、データの整理、ラベル付け、および継続的な更新が含まれ、これによりデータの正確性と有用性が維持されます。これにより、特に新しいデータを用いてモデルの再学習や微調整を行う際、時間の経過とともにパフォーマンスを向上させることが容易になります。

データセットの品質が実環境での信頼性に与える影響

セキュリティ監視システムなどのコンピュータビジョンの活用事例は、適切なデータ管理が不可欠である理由を如実に示しています。これらのシステムは、さまざまな照明環境、カメラの角度、混雑度、部分的な遮蔽など、実環境における多様な条件下でも確実に機能する必要があります。

学習データがこうしたバリエーションを網羅していない場合や、さまざまなシーンや状況における物体の外観の多様性に欠ける場合、モデルはdetect 正確にdetect できなくなる可能性があります。例えば、主に照明が十分で物が少ないシーンで学習されたモデルは、薄暗い環境や混雑した場所では性能が低下する可能性があります。セキュリティシステムにおいて、これはイベントの見逃しや誤検知につながる恐れがあります。

これを防ぐためには、データセットを単にクリーンで正確にラベル付けされた状態に保つだけでなく、バランスが取れており、継続的に更新されるように管理することが重要です。つまり、データ内の欠落を特定し、状況の変化に応じて新しい例を追加し、異なるクラスや環境が均等に反映されるようにする必要があります。 

より完全で体系的なデータセットがあれば、モデルは現実世界の変動性に対処しやすくなり、より信頼性の高い予測を生成できるようになります。

データセット管理の重要なポイント

では、データセット管理とは具体的にどのようなものなのでしょうか?それは、モデル開発プロセス全体を通じてデータを効果的に活用できるよう、データの整理、ラベル付け、および維持管理を行うことを指します。

例えば、データの整理には、データセットの構造化や、トレーニングセット、検証セット、テストセットへの分割が含まれます。トレーニングセットはモデルの学習に使用され、検証セットは開発中のパフォーマンスを監視し、調整を行うための指針として使用され、テストセットは、最終的なモデルがこれまで見たことのないデータに対してどれほど良好に動作するかを評価するために使用されます。

一方、ラベリングとは、クラスラベル、バウンディングボックス、セグメンテーションマスクなどの詳細情報を画像に付与する作業を指します。モデルはこれらの注釈から学習するため、精度と一貫性は、モデルが有意義なパターンを学習し、信頼性の高い予測を行う上で極めて重要です。

さらに、データセットの維持管理には、継続的なデータの確認と更新が含まれます。これには、アノテーションの誤りの修正、質の低いデータや重複データの削除、および欠落しているケースや変化した状況をカバーするための新しい例の追加などが含まれます。 

より広く言えば、データセットの管理は継続的なプロセスです。モデルの評価が行われ、新しいデータが収集されるにつれて、実世界の状況やエッジケースを反映させるためにデータセットを更新する必要があります。こうした更新を追跡し、異なるバージョンを比較することで、チームはパフォーマンスの向上要因や、さらなる変更が必要な箇所を把握できるようになります。

Ultralytics によるデータセットの管理

Ultralytics 、単一の環境内でデータセットを管理するための体系的なワークフローを提供し、データの前処理からエクスポートに至るまでの全プロセスを網羅しています。このプラットフォームは、個人開発者からチームまで幅広くサポートするように設計されており、単独で作業する場合でも、プロジェクトをまたいで共同作業を行う場合でも、データセットを一貫して管理しやすくなります。

各段階は、モデル開発のライフサイクル全体を通じて、データセットの整理、処理、活用を簡素化するように設計されています。これらのステップを一元化することで、プラットフォームは作業の分散を防ぎ、ワークフロー全体での一貫性を維持することを容易にします。

次に、主な手順と、プラットフォームがそれぞれの手順をどのようにサポートしているかについて見ていきましょう。

Ultralytics へのデータセットのアップロード

このプラットフォームでのデータセットの利用は柔軟で、データをインポートしたり再利用したりする方法が複数用意されています。独自のデータをアップロードすることもできますし、プラットフォーム上で公開されているデータセットを利用すれば、より迅速に作業を開始できます。また、コミュニティで共有されている既存のデータセットをクローンして、それを基に開発を進めることも可能です。

このプラットフォームのコミュニティ機能により、既存の成果物を簡単に探索・再利用できます。他のユーザーが作成したデータセット(数百万点に及ぶ画像やアノテーションを含む)にアクセスできるため、すべてを自分で収集・ラベル付けする必要がなく、すぐに作業を開始できます。データセットをクローンすると、ワークスペース内にコピーが作成され、オリジナルを保持したまま、そのデータを修正・拡張することができます。

アップロードに関しては、本プラットフォームは単体の画像や動画、およびZIP、TAR、GZ形式などのデータセットアーカイブに対応しています。また、COCO広く利用されているデータセット形式にも対応しているため、追加の変換作業を行うことなく、既存のデータセットやアノテーションを簡単にインポートできます。さらに、プラットフォームからエクスポートしたNDJSONファイルを使用してデータセットをアップロードすることも可能で、プロジェクト間でデータセットをシームレスに再作成・再利用できます。

データがアップロードされると、プラットフォームは構造化されたパイプラインを通じてデータを処理します。これには、ファイル形式やサイズの検証、必要に応じた画像のサイズ変更、アノテーションの解析、およびデータセットの統計情報の生成が含まれます。

例えば、動画はトレーニングに使用できるようフレーム単位に変換され、画像は閲覧や分析が容易になるよう最適化・準備されます。処理が完了すると、データセットはプラットフォーム内でのアノテーション、分析、およびモデルトレーニングにすぐに利用できるようになります。

Ultralytics におけるデータアノテーション

データセットをアップロードすると、プラットフォーム上で直接確認やアノテーションを行うことができます。このプラットフォームには、物体検出、インスタンスセグメンテーション、姿勢推定、方向付きバウンディングボックス(OBB)検出、画像分類など、さまざまなコンピュータビジョンタスクに対応した画像アノテーションツールが組み込まれています。

図2.Ultralytics ラベリングUltralytics の活用(出典

これらのツールを使用して手動でアノテーションを作成することも、SAMスマートアノテーションなどのAI支援機能を利用して作業を効率化することも可能です。SAMを使用すれば、画像と対話しながらマスク、バウンディングボックス、または方向指定ボックスを生成できるため、精度を維持しつつラベリング作業を迅速化できます。

Ultralytics によるデータセットの品質分析

データの準備やアノテーションに加え、信頼性の高いコンピュータビジョンモデルを構築するには、データセットの品質を把握することが不可欠です。クラス分布、アノテーションの品質、データセットの分割、およびさまざまな条件下でのデータの表現方法といった要素を明確に把握できなければ、モデルの性能に影響を与える問題を発見するのは困難です。

Ultralytics 、データセットをより効果的に分析するための機能が組み込まれています。これらの分析結果は、データセットのインターフェース内で、「画像」、「クラス」、「チャート」などのタブを通じて直接確認できます。

[チャート] タブでは、分割分布(トレーニング、検証、テスト)、クラス頻度、および画像内のオブジェクトの出現位置を示すアノテーションヒートマップなど、データセットレベルの統計情報を確認できます。 

[クラス] タブでは、クラスごとのアノテーション数が内訳として表示されるため、クラスの不均衡を容易に把握できます。一方、[画像] タブでは、画像のサイズ、アノテーション数、個々の画像におけるラベルの分布状況など、画像レベルの詳細情報が表示されます。

こうした知見により、クラスの不均衡、シナリオの欠落、データの分布の偏りといった問題を特定しやすくなります。例えば、特定のクラスの例が非常に少ないことや、アノテーションの大部分が画像の特定の領域に集中していることに気づくかもしれません。

データ分析に加え、このプラットフォームはデータセットのキュレーションと拡張にも対応しています。つまり、問題のあるデータを修正または削除してデータセットを精査したり、既存のデータにバリエーションを追加したりすることで、モデルの性能を向上させることができます。これらの改善は、分析結果に基づく知見をもとに、アノテーションの更新、新規データの追加、またはデータセットの分割方法の見直しを行うことで、プラットフォーム内で直接実施可能です。

Ultralytics からのデータセットのエクスポート

データセットの準備と検証が完了したら、それをエクスポートしてさまざまな環境で利用することができます。これにより、ローカル環境やクラウド上でのモデルトレーニング、あるいは他のツールやワークフローなど、お好みの場所でコンピュータビジョンデータを活用する柔軟性が得られます。

Ultralytics 、YOLO、COCO、NDJSONなど、複数のエクスポート形式に対応しており、さまざまなトレーニングワークフローやツールへのデータセットの統合が容易に行えます。

図3.Ultralytics からのデータセットのエクスポート(出典

データセットをエクスポートすると、画像、アノテーション、構造を含め、特定の時点におけるデータの固定されたスナップショットが作成されます。新しいデータの追加、アノテーションの更新、または分割の調整などにより、データセットは頻繁に変更されるため、この機能は有用です。スナップショットをエクスポートすることで、特定のトレーニング実行に使用されたデータセットの正確なバージョンを保存することができます。

これにより、後で結果を再現しやすくなります。なぜなら、同じデータ構成でモデルを再度学習させ、異なるデータセットのバージョン間で性能を比較できるからです。例えば、何が変化したのかを推測するのではなく、新しい画像を追加したり、アノテーションを修正したりすることが、実際にモデルの精度を向上させるかどうかを評価することができます。

エクスポートは非同期で処理され、準備が整い次第、データセットをダウンロードして、ローカル、クラウド、またはオフラインのトレーニング環境で使用することができます。

Ultralytics での反復処理によるデータセットの品質向上

機械学習や深層学習のワークフローでは、実世界のデータは学習時に使用されたデータとは異なることが多いため、デプロイ後もデータセットの管理は継続されます。 

モデルが新しい入力データに直面するにつれ、低照度環境や異なるカメラアングル、被写体の遮蔽、混雑したシーンといった条件の欠落や、アノテーションの誤りといったデータセットの不備がより顕著になり、時間の経過とともにデータを精緻化していく必要が生じます。

データセットを改善する方法はいくつかあります。低照度環境、異なる撮影角度、被写体の遮蔽、混雑したシーンなど、データに不足している条件をカバーするために新しい画像や動画を追加することで、データの盲点を減らすことができます。 

同時に、オブジェクトの正しいラベル付けや正確なバウンディングボックス・マスクなど、アノテーションの正確性と一貫性を確保することで、モデルはより信頼性の高いパターンを学習できるようになります。

これは通常、次のような単純なループに従います。モデルを学習させ、結果を評価し、誤りを特定し、データセットを改善し、再学習を行うという流れです。各ステップは、誤ったアノテーション、データの欠損、あるいは十分に含まれていないケースといった問題点を浮き彫りにするのに役立ちます。

例えば、店舗内のdetect するためのリアルタイム小売棚監視システムを開発しているとしましょう。データセットの初期バージョンには、特定の商品タイプや照明条件、あるいは混雑した棚の配置などが含まれていない可能性があります。評価の過程で、こうした状況下ではモデルがdetect 苦労していることに気づくかもしれません。

パフォーマンスを向上させるには、これらの欠落しているシナリオを網羅する新しい画像を収集し、必要に応じてアノテーションを更新します。このプロセスを継続的に繰り返すことで、実環境下においてモデルの精度と信頼性を高めることができます。

Ultralytics 、データセットの更新とトレーニングおよび評価を連携させることで、このワークフローをサポートします。組み込みの実験追跡機能とパフォーマンス指標により、進捗状況を把握しやすくなり、データセットを継続的に改善することが可能になります。

Ultralytics を使用したデータセットの変更の追跡

モデル開発プロセスの一環として、データセットが時間の経過とともにどのように変化するかについて簡単に説明しました。新しいデータが追加され、アノテーションが精緻化され、クラスが更新されるにつれ、こうした変更track 、データの品質を維持し、モデルの一貫した性能を確保するために不可欠となります。

以下は、データセットの追跡とバージョン管理をサポートUltralytics 主な機能の一部です:

  • データセットのバージョン管理: NDJSONスナップショットとして固定されたデータセットバージョンを作成できます。各バージョンは、特定の時点での画像数、クラス数、アノテーション数、データセットサイズなどの主要な詳細をキャプチャします。これらのバージョンは保存され、後でダウンロードできるため、実験の再現や異なるデータセット状態での結果比較が容易になります。
  • [バージョン] タブ:すべてのデータセットのバージョンは [バージョン] タブに整理されており、ここではバージョン履歴の確認、変更内容の説明の追加、およびデータセットの経時的なtrack ことができます。
  • モデルとの連携: モデルタブには、mAPなどのメトリクスや学習の詳細を含め、データセットで学習されたすべてのモデルが表示されます。データセットのバージョンは学習実行に紐付けられており、データの変更がモデルの性能にどのように影響するかを理解するのに役立ちます。
  • エラータブ: エラータブは、処理中に失敗したファイルを、エラーの詳細と提案とともに強調表示します。これにより、トレーニング前に破損したファイルやサポートされていない形式などの問題を特定し、修正できます。
  • データセットインターフェース(画像とクラスのタブ): これらのビューでは、画像を閲覧し、アノテーションを確認し、クラスラベルを管理し、クラス分布を分析できます。フィルタリング、ソート、未アノテーション画像の特定などの機能により、時間の経過とともにデータセットの品質を監視することが容易になります。
  • 統計とグラフ: 分割分布、クラス頻度、アノテーションヒートマップなどの組み込みデータ視覚化は、データセットの進化に伴うデータ分布の変化をtrackし、不均衡を特定するのに役立ちます。
図4.Ultralytics でのデータセットのクラス分布の分析例(出典

Ultralytics 内でのデータセットとトレーニングおよびデプロイメントの連携

Ultralytics 、AIモデル開発のさまざまな段階を単一のパイプラインに統合します。これにより、生データから本番環境向けのビジョンAIアプリケーションへと至るプロセスが効率化されます。

データセットの準備とアノテーションが完了すると、Ultralytics などのコンピュータビジョンモデルのトレーニングを、プラットフォーム内で直接行うことができます。トレーニング中は、組み込みのダッシュボードを使用して、パフォーマンス指標の監視、track 、およびモデルの学習状況の評価を行うことができます。

図5.Ultralytics におけるモデル学習指標の表示画面(出典

トレーニングが完了すると、ブラウザ上で直接新しい画像を用いてモデルをテストし、予測結果を評価して、本番環境への展開前に改善すべき点を特定することができます。モデルの性能が良好であれば、本番環境に展開することができます。 

このプラットフォームでは、モデルを複数の形式でエクスポートしたり、推論サービスや専用のエンドポイントを通じてデプロイしたりすることができ、さまざまな環境で実行可能です。

導入後は、組み込みの監視ツールにより、使用状況やモデルの挙動に関する指標を含め、track パフォーマンスを長期的にtrack 。これにより、実運用環境におけるビジョンAIシステムの維持管理や改善がより容易になります。

Ultralytics におけるデータセット管理のベストプラクティス

Ultralytics Platformを使用してデータセットを管理する際に留意すべき重要なポイントは以下の通りです:

  • フィルタ機能を使って欠落箇所を見つける:フィルタリングツールを使用して、ラベルが付いていないデータや十分に網羅されていないデータを特定し、アノテーション作業をよりスムーズに進め、カバレッジを向上させます。
  • Fix errors early: トレーニング前に、品質管理のためにエラータブを使用して、アップロードの失敗、ファイルの破損、またはサポートされていない形式を早期に検出します。
  • データセットを継続的に更新する: 新しいデータを追加し、annotationsを修正し、出現するエッジケースを含めることで、データセットを継続的に更新します。これにより、カバレッジが向上し、モデルが実世界のシナリオで確実に機能することが保証されます。
  • データセットの分割を慎重に管理する: トレーニングセット、バリデーションセット、テストセットの間で良好なバランスを確保してください。必要に応じて、分割を手動で再編成したり、自動再配布を使用したりできます。

Ultralytics 詳細については、Ultralytics 公式Ultralytics をご覧ください。

主なポイント

コンピュータビジョンプロジェクトが拡大するにつれ、データセットを効果的に管理することは、モデル開発と同様に重要になってきています。データセット管理に対する体系的なアプローチは、データ品質の向上、ワークフローの効率化、そして長期的なモデル性能の向上に寄与します。

Ultralytics 、データセットの管理、トレーニング、デプロイを単一のワークフローに統合することで、このプロセスを簡素化します。データセット管理に体系的なアプローチを採用することで、チームは複雑さを軽減し、効率を向上させ、よりスケーラブルで信頼性の高いコンピュータビジョンシステムを構築することができます。

成長を続けるコミュニティに参加し、GitHubリポジトリでAIリソースをご覧ください。今すぐビジョンAIを活用した開発を始めるには、ライセンスオプションをご確認ください。ソリューションページをご覧いただければ、農業分野におけるAIが農業をどのように変革しているか、また医療分野におけるビジョンAIが未来をどのように形作っているかをご確認いただけます。

一緒にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。