ホームページ >テクノロジー周辺機器 >AI >画像 AI プロジェクト用のデータセットを準備する 7 つのステップ

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ

WBOY
WBOY転載
2023-09-26 23:45:04963ブラウズ

翻訳者| ##データセットが機械学習プロジェクトで最も見落とされている部分である可能性があることに気づいたでしょうか。ほとんどの人にとって、データセットは、すぐにまとめられるかダウンロードされる既製の画像のコレクションにすぎません。実際、データセットは画像ベースの人工知能 (AI) プロジェクトの基礎です。高精度の達成を目指す機械学習プロジェクトでは、バランスの取れた適切に構造化されたデータセットを作成および管理することが重要です。

# ただし、データセットの作成は、何百もの画像を収集するほど簡単ではありません。 AIプロジェクトを始めようとすると、さまざまな隠れた危険に遭遇する可能性があります。以下では、データセットのサイズ、データの欠落の可能性、データセットのデータベースへの変換の重要性について洞察を得るために、独自のデータセットを作成するために実行できる 7 つの一般的な手順について説明します。

#注: これらの手順は主に、画像データセットを含むオブジェクト検出および分類プロジェクトに適用されます。 NLP

やグラフィックス プロジェクトなど、他のプロジェクト タイプでは、別のアプローチが必要です。

手順

1: 画像サイズ

通常、ニューラル ネットワークは特定のサイズの画像のみを処理でき、しきい値を超える画像は強制的に縮小されます。これは、データセットを使用する前に、適切なニューラル ネットワークを選択し、それに応じて画像のサイズを変更する必要があることを意味します

ご存じのとおり、画像のサイズを縮小すると、精度が大幅に低下したり、画像上の小さなオブジェクトが消えたりする可能性があり、認識プロセス全体に損害を与えます。以下に示すように、防犯カメラで撮影された画像からナンバー プレートの番号を検出する必要がありますが、ナンバー プレートは画像全体のほんの一部にすぎません。したがって、ニューラル ネットワークが画像を縮小すると、ナンバー プレート番号が小さすぎて認識できない可能性があります。下の図では、ネットワークが使用できる画像サイズを理解できれば、適切なデータセット画像をトリミングするのに役立ちます。

ほとんどのニューラル ネットワークが処理できる画像サイズは、

Yolo のように比較的小さいですが、 v5x6

などの最新のニューラル ネットワークは、より大きな解像度の画像を処理できます。たとえば、Yolo v5x

s

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ6

は、最大 1280 ピクセルの画像を処理できます。ワイドなイメージ。

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ

#ステップ 2:あなたの環境# #を理解する#ニューラル ネットワークが動作中に認識する必要がある実際の画像をデータ セットが正確に反映できるようにするには、次の点に注意する必要があります。データセットの収集: カメラの種類、スマートフォンカメラまたはセキュリティカメラ

画像のサイズカメラの設置場所(屋内か屋外か)

気象条件 (光、雨、霧、雪など)

    #ニューラル ネットワークが処理している実際の画像を明確に理解することで、対象となるオブジェクトを正確に反映するデータ セットを作成できます。そして彼らの環境。
  1. Google から一般的な画像を収集することは、大規模なデータセットを組み立てる最も簡単かつ迅速な方法と考えられるかもしれません。しかし、この方法では高精度の要求を達成することが実際には困難です。以下に示すように、Google や写真データベースの画像は、実際のカメラで撮影した画像と比較して「美化」されることがよくあります
  2. Aデータセットが「美しすぎる」と、テストの精度が高くなる可能性があります。これは、ニューラル ネットワークがテスト データ (データセットから精製された画像のコレクション) 上でのみ良好に機能するが、現実世界の状況ではパフォーマンスが低下し、精度が低下することを意味します。
  3. ステップ 3
:

形式とコメント

注意する必要があるもう 1 つの重要な側面は、画像の形式です。プロジェクトを開始する前に、選択したフレームワークがサポートする形式と、画像がこれらの要件を満たせるかどうかを確認してください。現在のフレームワークは複数の画像形式をサポートできますが、

.jfif

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ などの形式には依然として問題があります。

注釈データを使用して、境界ボックス、ファイル名、および使用できるさまざまな構造を指定できます。一般に、ニューラル ネットワークとフレームワークが異なれば、必要なアノテーション方法も異なります。境界ボックスの位置を含む絶対座標を必要とするもの、相対座標を必要とするもの、各画像に注釈付きの個別の .txt ファイルを伴うもの、または 1 つのファイルのみを必要とするものもあります。すべてのコメントが含まれています。ご覧のとおり、データセットに優れた画像が含まれていても、フレームワークがアノテーションを処理できない場合は役に立ちません。

ステップ 4: トレーニングと検証のサブセット

トレーニングの目的で、データセットは通常 2 つのサブセットに分割されます:

  1. #トレーニング サブセット- 画像のセットです。ニューラル ネットワークは、この一連の画像でトレーニングされます。その割合は、画像総数の 70% 80% です。
  2. 検証サブセット- は、トレーニング セット中にニューラル ネットワークがどの程度学習するかを確認するために使用される小さな画像です。その割合は、画像総数の 20% から 30% の間です。

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ

通常、ニューラル ネットワークは、トレーニング サブセットから抽出されたオブジェクトの特徴を使用して、外観を「学習」します。オブジェクトの。つまり、トレーニング期間 (エポック) の後、ニューラル ネットワークは検証サブセット データを調べ、何ができるかを推測しようとします。 "Look " をそれらのオブジェクトに送信します。推測が正しいか間違っているかにかかわらず、その構造により、ニューラル ネットワークはさらに学習することができます。

この方法は広く使用されており、良好な結果が得られることが証明されていますが、データを組み合わせる別のアプローチを採用することを好みます。セットは次のように分かれています。サブセット:

  1. トレーニング サブセット - は画像の総数の ## を占めます # 70%
  2. 検証サブセット
  3. - 画像の総数を考慮 20%
  4. テスト データ セット
  5. - 約。期限が切れている画像の合計数の 10%

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ##このセットには、ニューラル ネットワークがこれまでに見たことのないデータセットの画像が含まれているため、開発者はこのサブセットでモデルをテストして、手動で実行した場合にどの程度うまく機能するか、どの画像で問題があるかを確認できます。言い換えれば、このサブセットは、プロジェクトの開始前にニューラル ネットワークが間違いを犯す可能性のある場所を特定するのに役立ち、それによってプロジェクト開始後の過剰な再トレーニングを回避できます。

Step

5: データ欠落データをマシンのトレーニングに使用する場合学習アルゴリズムには、予測しようとしている情報が正確に含まれているため、データ侵害が発生する可能性があります。以下の図に示すように、画像認識の観点から見ると、トレーニング サブセットと検証サブセット内の同じオブジェクトの写真が非常に似ている場合にデータ漏洩が発生します。明らかに、データの欠落はニューラル ネットワークの品質に非常に悪影響を及ぼします。

本質的に、モデルはトレーニング データ セット内の画像を認識した後、まずその特徴を抽出し、次にその特徴を抽出します。検証データセットを使用して、見たのとまったく同じ (またはよく似た) 画像を見つけます。したがって、モデルは実際に学習していると言うよりも、単にさまざまな情報を記憶していると言った方が適切です。場合によっては、検証データセットでは非常に高い精度 (例: 画像 AI プロジェクト用のデータセットを準備する 7 つのステップ

98%

という高さ) が得られますが、運用環境では精度が非常に低くなります。 最も一般的に使用されるデータセットのセグメント化方法の 1 つは、データをランダムにシャッフルし、上位の

70%

を選択することです。 画像はトレーニング サブセットに配置され、残りの 30% は検証サブセットに配置されます。この方法では、データの欠落が発生しやすいです。以下の図に示すように、当面の優先事項は、データセットからすべての「重複」写真を削除し、両方のサブセットに類似の写真が存在するかどうかを確認することです。

このために、簡単なスクリプトを使用して重複の削除を自動的に実行できます。もちろん、重複のしきい値を調整することもできます。たとえば、完全に重複した画像、または 90% 程度の類似性を持つ画像のみを削除するなどです。一般に、重複コンテンツがより多く削除されるほど、ニューラル ネットワークが生成する精度は高くなります。

#ステップ 6: 大規模なデータセット データベース

##データセットが非常に大きい場合、たとえば、 10million 画像を超え、数十の Forオブジェクト クラスとサブクラスを使用する場合は、データ セット情報を保存するための単純なデータベースを作成することをお勧めします。この背後にある理由は実際には非常に単純です。大規模なデータ セットでは、すべてのデータを追跡するのが困難です。したがって、データを構造化して処理しなければ、データを正確に分析することはできません。

データベースを通じて、データ セットを迅速に診断し、次のことを確認できます。特定のカテゴリ内の画像が少なすぎると、ニューラル ネットワークによる処理が困難になります。オブジェクトを認識する; カテゴリ間の画像の分布が均等ではない; 特定のカテゴリに Google 画像が多すぎるため、そのカテゴリの精度スコアが低くなる、など。

#単純なデータベースを使用すると、次の情報を含めることができます:

    #ファイル名
  1. ファイルパス
  2. コメントデータ
  3. クラス データ
  4. データ ソース (運用環境、Google など)
  5. オブジェクト タイプ、名前、およびその他のオブジェクト関連情報
データベースは、データ セットとデータを収集するために不可欠です。統計データのツール。これは、データセットのバランスがどの程度であるか、および (ニューラル ネットワークの観点から) 各カテゴリに高品質の画像がいくつあるかを迅速かつ簡単に確認するのに役立ちます。以下に視覚化したようなデータを使用すると、データをより迅速に分析し、認識結果と比較して精度の低下の根本原因を見つけることができます

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ

書き直す必要があるのは次のとおりです: 注目に値する問題の 1 つは、精度が低い理由は、画像の数が少ないこと、または特定のカテゴリの Google フォトの割合が高いことが原因である可能性があることです。このようなデータベースを作成すると、実稼働、テスト、モデルの再トレーニングにかかる​​時間を大幅に短縮できます

#Step

7 :Dataset Augmentation 画像の数を増やすために使用される手法として、データ拡張はデータの単純または複雑な変換です。反転やスタイル変換などのプロセスにより、データの有効性を向上させることができます。これに基づいて得られる有効なデータセットは過度のトレーニングを必要としません。以下の画像に示すように、このようなデータ変換は、単に画像を

90 度回転するだけの単純なものもあれば、逆光の写真をシミュレートするために画像に太陽フレアを追加するような複雑なものもあり得ます。またはレンズフレア。

画像 AI プロジェクト用のデータセットを準備する 7 つのステップ 通常、これらの拡張変換は自動化されます。たとえば、データ拡張専用の

Python ライブラリを準備できます。現在、データ拡張には次の 2 種類があります。

事前トレーニング拡張
  1. - トレーニング プロセスの開始 以前は、データが拡張され、トレーニング サブセットに追加されました。もちろん、そのような追加は、前述したデータの欠落を避けるためにデータセットがトレーニングと検証のサブセットに分割された後にのみ行うことができます。 #トレーニング中の機能強化
  2. -
  3. PyTorch# に似たものを使用します。 ## フレームには画像変換テクノロジーが組み込まれています。 データ セットのサイズを 10 倍に増やしても、ニューラル ネットワークの効率が 10 倍になるわけではないことに注意してください。実際、これによりネットワークのパフォーマンスが以前よりも低下する可能性があります。したがって、運用環境に関連する拡張機能のみを使用する必要があります。たとえば、建物に設置されたカメラは、正常に動作しているときは雨にさらされることはありません。したがって、画像に「雨」の強調を追加する必要はまったくありません。

小さな knot

AI をビジネスに応用しようとしている人にとって、データセットは最も興味のない部分です。しかし、データセットが画像認識プロジェクトの重要な部分であることは否定できません。さらに、ほとんどの画像認識プロジェクトでは、データセットの管理と編成にチームが多くの時間を費やすことがよくあります。最後に、データセットを適切に処理して AI プロジェクトから最良の結果を得る方法をまとめます。

  1. 画像のサイズをトリミングまたは調整するニューラル ネットワークの要件を満たすために
  2. ##天候や照明条件に基づいて実際の画像を収集
  3. # ニューラル ネットワークの要件に従ってアノテーションを構築します。
  4. # ネットワークのトレーニングにすべての画像を使用することは避けてください。パーツはテスト用に予約する必要があります
  5. データの欠落を避けるために検証データ セット内の重複した画像を削除してください
  6. データ セットを迅速に診断するためのデータベースを作成します
  7. #画像の数を増やすためにデータ拡張の使用を最小限に抑えます
  8. 翻訳者紹介

ジュリアン・チェン (51CTO コミュニティー編集者) は 10 年以上の経験があります。 IT 経験 プロジェクトの実装経験。内部および外部のリソースとリスクの管理と制御に優れ、ネットワークと情報セキュリティの知識と経験の普及に重点を置いています。

#元のタイトル:

画像ベースの AI プロジェクト用にデータセットを準備する 7 つのステップ by オレグ・ココリン

以上が画像 AI プロジェクト用のデータセットを準備する 7 つのステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。