画像内のオブジェクト検出のための ML データを探索および視覚化する方法

画像内のオブジェクト検出のための ML データを探索および視覚化する方法

近年、機械学習データ(MLデータ)を深く理解する必要性に対する認識が高まっています。しかし、大規模なデータセットの検出には多くの人的資源と物的資源が必要になることが多いため、コンピュータービジョンの分野での広範な応用にはさらなる開発が必要です。

通常、オブジェクト検出 (コンピューター ビジョンのサブセット) では、境界ボックスを定義することによって画像内のオブジェクトが特定されます。境界ボックスは、オブジェクトを識別するだけでなく、そのコンテキスト、サイズ、シーン内の他の要素との関係も理解します。同時に、クラスの分布、オブジェクト サイズの多様性、クラスが出現する一般的な環境を包括的に理解することで、評価およびデバッグ中にトレーニング モデルのエラー パターンを発見し、より的を絞った方法で追加のトレーニング データを選択できるようになります。

実際には、私は次のようなアプローチを取ることが多いです。

  • 事前トレーニング済みモデルまたは基本モデルの拡張機能を活用して、データに構造を追加します。たとえば、さまざまな画像埋め込みを作成し、t-SNE や UMAP などの次元削減技術を適用します。これらはすべて類似性マップを生成できるため、データの参照が容易になります。さらに、検出に事前トレーニング済みのモデルを使用すると、コンテキストの抽出も容易になります。
  • このような構造を統計と統合し、生データの確認機能を備えた視覚化ツールを使用します。

以下では、 Renumics Spotlight を使用してインタラクティブなオブジェクト検出の視覚化を作成する方法について説明します。例として、次のことを試してみます:

  • 画像内の人物検出器の視覚化を構築します。
  • 視覚化には、データの探索を容易にするための類似性マップ、フィルター、統計が含まれます。
  • Ground Truth と Ultralytics YOLOv8 検出による各画像の詳細な確認。

Renumics Spotlight でのターゲットの視覚化。出典: 著者作成

COCOデータセットの人間の画像をダウンロードする

まず、次のコマンドを使用して必要なパッケージをインストールします。

 !pip install fiftyone ultralytics renumics-spotlight

FiftyOne の再開可能なダウンロード機能を使用すると、COCO データセットからさまざまな画像をダウンロードできます。簡単なパラメータ設定で、1 人以上の人物が写っている画像 1,000 枚をダウンロードできます。具体的なコードは次のとおりです。

 importpandasaspd importnumpyasnp importfiftyone.zooasfoz # 从COCO 数据集中下载1000 张带人的图像dataset = foz.load_zoo_dataset( "coco-2017"、 split="validation"、 label_types=[ "detections"、 ], classes=["person"]、 max_samples=1000、 dataset_name="coco-2017-person-1k-validations"、 )

次に、次のコードを使用できます。

 def xywh_too_xyxyn(bbox): "" convert from xywh to xyxyn format """ return[bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3]].行= [] fori, samplein enumerate(dataset): labels = [detection.labelfordetectioninsample.ground_truth.detections] bboxs = [... bboxs = [ xywh_too_xyxyn(detection.bounding_box) fordetectioninsample.ground_truth.detections ] bboxs_persons = [bboxforbbox, labelin zip(bboxs, labels)iflabel =="person"] 行。 row.append([sample.filepath, labels, bboxs, bboxs_persons]) df = pd.DataFrame(row, columns=["filepath","categories", "bboxs", "bboxs_persons"]) df["major_category"] = df["categories"].apply( lambdax:max(set(x) -set(["person"]), key=x.count) if len(set(x)) >1 else "only person"。 )

画像内の人物のコンテキストを指定するために、ファイル パス、境界ボックス カテゴリ、境界ボックス、境界ボックスに含まれる人物、メイン カテゴリ (人物は存在しますが) などの列を含む Pandas DataFrame としてデータを準備します。

これを Spotlight で視覚化できます。

 From renumics import spotlight spotlight.show(df)

インスペクター ビューの [ビューの追加] ボタンを使用し、境界ビューで bboxs_persons とファイルパスを選択すると、画像に対応する境界ボックスが表示されます。

豊富なデータを埋め込む

データを構造化するには、さまざまな基本モデルの画像埋め込み(つまり、高密度ベクトル表現)を使用できます。これを行うには、画像の 2D 類似性マップを提供する UMAP や t-SNE などの次元削減技術を使用して、画像全体の Vision Transformer (ViT) 埋め込みをデータセットの構造に適用します。さらに、事前トレーニング済みのオブジェクト検出器の出力を使用してデータを構造化し、含まれるオブジェクトのサイズや数でデータを分類することもできます。 COCO データセットはすでにこの情報を提供しているので、直接使用できます。

Spotlight にはgoogle/vit-base-patch16-224-in21k (ViT) モデルと UMAP のサポートが統合されているため、ファイル パスを使用してさまざまな埋め込みを作成すると、自動的に適用されます。

 spotlight.show(df, embed=["filepath"])

上記のコードを使用すると、Spotlight はさまざまな埋め込みを計算し、UMAP を適用して結果を類似度マップに表示します。その中で、異なる色は主要なカテゴリを表します。これに基づいて、類似性マップを使用してデータを探索できます。

YOLOv8の事前トレーニングの結果

オブジェクトを素早く識別できるUltralytics YOLOv8 は、高度なオブジェクト検出モデルです。高速画像処理用に設計されており、特に大量のデータに適用すると、ユーザーが長時間待機する必要がなくなり、さまざまなリアルタイム検出タスクに適しています。

これを行うには、まず事前トレーニング済みのモデルを読み込みます。

 From ultralytics import YOLO detection_model = YOLO("yolov8n.pt")

さまざまなテストを実行します。

 detections = [] forfilepathindf["filepath"].tolist(): detection = detection_model(filepath)[0] detections.append( { "yolo_bboxs":[np.array(box.xyxyn.tolist())[0]forboxindetection.boxes]、 "yolo_conf_persons": np.mean([ np.array(box.conf.tolist())[0]. forboxindetection.boxes ifdetection.names[int(box.cls)] =="person"]), np.mean( ]), "yolo_bboxs_persons":[ np.array(box.xyxyn.tolist())[0] forboxindetection.boxes ifdetection.names[int(box.cls)] =="person ], "yolo_categories": np.array( [np.array(detection.names[int(box.cls)])forboxindetection.boxes], "yolo_categories": np.array( ), } ) df_yolo = pd.DataFrame(detections)

12GB の GeForce RTX 4070 Ti では、上記のプロセスは 20 秒以内に完了します。その後、結果を DataFrame にラップし、Spotlight を使用して視覚化できます。次のコードを参照してください。

 df_merged = pd.concat([df, df_yolo], axis=1) spotlight.show(df_merged, embed=["filepath"])

次に、Spotlight はさまざまな埋め込みを再度計算し、類似度グラフに UMAP を適用して結果を表示します。ただし今回は、検出されたオブジェクトに対するモデルの信頼レベルを選択し、類似度グラフを使用して信頼度の低いクラスター間での検索をナビゲートできます。結局のところ、これらの画像のモデルは不明であるため、通常は多少類似しています。

もちろん、上記の簡単な分析は、このようなモデルが以下のシナリオで体系的な問題に遭遇することも示しています。

  • 列車が巨大なため、車両の外に立っている人は非常に小さく見える。
  • バスなどの大型車両では、乗員はほとんど見えません
  • 誰かが飛行機の外に立っている
  • 人間の手や指で撮影した食べ物のクローズアップ画像

これらの問題が実際に人物検出の目標に影響を与えるかどうかを判断できます。影響を与える場合は、データセットに追加のトレーニング データを追加して、これらの特定のシナリオでモデルのパフォーマンスを最適化することを検討する必要があります。

まとめ

要約すると、Spotlight などの事前トレーニング済みモデルとツールを使用すると、オブジェクト検出の視覚化プロセスが容易になり、データ サイエンスのワークフローが強化されます。独自のデータを使用して上記のコードを試して実験することができます。

翻訳者紹介

51CTO コミュニティの編集者である Julian Chen 氏は、IT プロジェクトの実装で 10 年以上の経験があります。社内外のリソースとリスクの管理に長けており、ネットワークと情報セキュリティの知識と経験の普及に重点を置いています。

原題: 画像内の物体検出のための ML データの探索と視覚化の方法、著者: Markus Stoll

リンク: https://itnext.io/how-to-explore-and-visualize-ml-data-for-object-detection-in-images-88e074f46361.

<<: 

>>:  LLaVA オープンソース モデルに基づくビデオチャット アシスタントの構築

ブログ    
ブログ    

推薦する

...

...

ジェミニはソラの動画がAI生成だと一目でわかるのか?数百万のトークンのコンテキスト機能がGPT-4を圧倒

Google Gemini 1.5 が、その見出しをさらった「犯人」であるSoraと出会ったら何が起...

TF Learn: Scikit-learn と TensorFlow をベースにしたディープラーニング ツール

[51CTO.comより引用] 海外のデータサイエンス市場に詳しい人なら誰でも、2017年に海外のデ...

製造業におけるAI: インテリジェントロボットには次の4つの機能が必要です

インテリジェントロボットはインテリジェント製品の代表的なものです。知能ロボットには、少なくとも以下の...

AIエージェント、起動!復旦 NLP チームが 86 ページのレビューを発表: インテリジェント社会はすぐそこ

9 月 19 日、Jim Fan は Fudan NLP チームからの LLM ベースのエージェント...

ついに、データ、情報、アルゴリズム、統計、確率、データマイニングをわかりやすく説明してくれる人がいました!

[[282346]]データとは何かデータとは何でしょうか? これは私たちがほとんど無視する質問にな...

4Paradigm、ビジネス担当者がAIアプリケーションを開発できるようにする新しいAIプラットフォームツールをリリース

9月18日、2018年世界人工知能会議中。 Fourth Paradigm は、自動機械学習プラット...

1つのコマンドでChatGPTがさらに強力になります

GPT を使用する過程で、AI にニーズをより明確に理解させる方法が重要です。今日は、GPT をあな...

マイクロソフトがAIコンテンツレビューツール「Azure AI Content Safety」を正式にリリース

10月18日、マイクロソフトは健全で調和のとれたコミュニティ環境を作り、写真やテキスト内の偏見、憎悪...

...

北科不動産はグラフ技術の導入を推進し、不動産サービスエコシステムの好循環を推進しています。

【51CTO.comオリジナル記事】 [[286886]]最近、北京グローバル金融センターで北科不...

...

インテリジェントな世界は加速していますが、真の人工知能 (AI) から私たちはどれくらい離れているのでしょうか?

人工知能は新しい概念でもなければ、単なる仕掛けでもありません。何十年も前から提案されてきました。真の...

...