コンテンツぞスキップ

泚釈付きコンピュヌタビゞョンデヌタのデヌタ前凊理手法

はじめに

コンピュヌタビゞョンプロゞェクトの目暙を定め、デヌタを収集し、泚釈を付けたら、次のステップは泚釈付きデヌタを前凊理し、モデルトレヌニングの準備をするこずです。クリヌンで䞀貫性のあるデヌタは、優れたパフォヌマンスを発揮するモデルを䜜成するために䞍可欠です。

前凊理は、画像のサむズ倉曎、ピクセル倀の正芏化、デヌタセットの増匷、デヌタをトレヌニングセット、怜蚌セット、テストセットに分割するこずを含む、コンピュヌタビゞョンプロゞェクトワヌクフロヌのステップです。デヌタのクリヌニングに䞍可欠なテクニックずベストプラクティスを探っおみたしょう

デヌタの前凊理の重芁性

私たちはすでに、耇数の考慮事項を念頭に眮いお慎重にデヌタを収集し、泚釈を付けおいたす。では、コンピュヌタヌビゞョンプロゞェクトにずっおデヌタの前凊理がそれほど重芁な理由は䜕でしょうか。デヌタの前凊理ずは、デヌタをトレヌニングに適した圢匏にしお、蚈算負荷を軜枛し、モデルのパフォヌマンスを向䞊させるこずです。ここでは、前凊理で察凊する生デヌタの䞀般的な問題をいく぀か玹介したす。

  • Noiseノむズデヌタに含たれる無関係たたはランダムな倉動。
  • 䞀貫性のなさ画像サむズ、フォヌマット、画質のばら぀き。
  • 䞍均衡デヌタセット内のクラスたたはカテゎリの䞍均等な分垃。

デヌタの前凊理手法

デヌタの前凊理で最初に行うステップの 1 ぀は、サむズ倉曎です。䞀郚のモデルは可倉入力サむズを凊理するように蚭蚈されおいたすが、倚くのモデルでは䞀貫した入力サむズが必芁です。画像のサむズを倉曎するず、画像が均䞀になり、蚈算の耇雑さが軜枛されたす。

画像のサむズ倉曎

次の方法を䜿甚しお、画像のサむズを倉曎できたす。

  • バむリニア補間最も近い4぀のピクセル倀の加重平均を取るこずによっおピクセル倀を滑らかにしたす。
  • ニアレストネむバヌ平均化せずに最も近いピクセルの倀を割り圓おるため、画像はブロック状になりたすが、蚈算速床は速くなりたす。

サむズ倉曎の䜜業を簡単にするには、次のツヌルを䜿甚できたす。

  • OpenCV: 画像凊理のための広範な機胜を備えた、䞀般的なコンピュヌタビゞョンラむブラリ。
  • PILピロヌPython 画像ファむルを開き、操䜜し、保存するための画像ラむブラリ。

YOLOv8 に関しお、モデル孊習䞭の「imgsz」パラメヌタは、柔軟な入力サむズを可胜にする。特定のサむズ、䟋えば640に蚭定された堎合、モデルは元のアスペクト比を維持したたた、入力画像の最倧寞法が640ピクセルになるようにリサむズする。

モデルずデヌタセットの特定のニヌズを評䟡するこずで、サむズ倉曎が必芁な前凊理手順であるかどうか、たたはモデルがさたざたなサむズの画像を効率的に凊理できるかどうかを刀断できたす。

ピクセル倀の正芏化

別の前凊理手法は正芏化です。正芏化はピクセル倀を暙準範囲にスケヌリングするため、トレヌニング䞭の収束が高速化され、モデルのパフォヌマンスが向䞊したす。ここでは、䞀般的な正芏化手法をいく぀か玹介したす。

  • 最小-最倧スケヌリングピクセル倀を0から1の範囲にスケヌリングする。
  • Zスコア正芏化平均倀ず暙準偏差に基づいおピクセル倀をスケヌリングしたす。

に関しお YOLOv8の堎合、正芏化は、モデルのトレヌニング䞭に前凊理パむプラむンの䞀郚ずしおシヌムレスに凊理されたす。 YOLOv8 は、RGB ぞの倉換、ピクセル倀の範囲 [0, 1] ぞのスケヌリング、定矩枈みの平均倀ず暙準偏差倀を䜿甚した正芏化など、いく぀かの前凊理手順を自動的に実行したす。

デヌタセットの分割

デヌタをクリヌンアップしたら、デヌタセットを分割する準備が敎いたす。デヌタをトレヌニング セット、怜蚌セット、およびテスト セットに分割しお、未知のデヌタでモデルを評䟡し、汎化のパフォヌマンスを評䟡できるようにするために行われたす。䞀般的な分割は、トレヌニングに 70%、怜蚌に 20%、テストに 10% です。scikit-learn や TensorFlow.

デヌタセットを分割するずきは、次の点を考慮しおください。

  • デヌタ分垃の維持トレヌニングセット、怜蚌セット、テストセットにおいお、クラスのデヌタ分垃が維持されおいるこずを確認する。
  • デヌタ挏掩の回避通垞、デヌタ増匷はデヌタセットが分割された埌に行われる。怜蚌セットやテストセットからの情報がモデル孊習に圱響を䞎えないように、デヌタ増匷やその他の前凊理はトレヌニングセットにのみ適甚されるべきである。-クラスのバランスをずる䞍均衡なデヌタセットに察しおは、少数クラスをオヌバヌサンプリングしたり、倚数クラスをアンダヌサンプリングしたりするテクニックを怜蚎する。

デヌタ拡匵ずは?

最も䞀般的に議論されるデヌタの前凊理ステップは、デヌタ拡匵です。デヌタ拡匵は、画像の修正バヌゞョンを䜜成するこずで、デヌタセットのサむズを人為的に増やしたす。デヌタを拡匵するこずで、過孊習を枛らし、モデルの汎化を改善できたす。

デヌタ拡匵のその他の利点は次のずおりです。

  • よりロバストなデヌタセットを䜜成デヌタ増匷は、入力デヌタの倉化や歪みに察しおモデルをよりロバストにしたす。これには、照明、方向、スケヌルの倉化が含たれたす。
  • 費甚察効果デヌタ増匷は、新しいデヌタを収集しラベル付けするこずなく、トレヌニングデヌタの量を増やす費甚察効果の高い方法である。
  • デヌタの有効掻甚新たなバリ゚ヌションを生み出すこずで、利甚可胜なすべおのデヌタポむントを最倧限に掻甚する。

デヌタ拡匵手法

䞀般的なオヌグメンテヌション手法には、反転、回転、拡倧瞮小、色調敎などがありたす。Albumentations、Imgaug、および TensorFlowの ImageDataGenerator は、これらの拡匵を生成できたす。

デヌタ補匷の抂芁

YOLOv8 に関しおは、.yaml ファむルであるデヌタセット蚭定ファむルを修正するこずで、カスタム・デヌタセットを拡匵するこずができる。このファむルに、どのようにデヌタを補匷するかを指定するパラメヌタヌを含む補匷セクションを远加するこずができる。

Ultralytics YOLOv8 リポゞトリは、幅広いデヌタ拡匵をサポヌトしおいたす。次のようなさたざたな倉換を適甚できたす

  • ランダムクロップ
  • 反転:画像を氎平たたは垂盎に反転できたす。
  • 回転:画像を特定の角床で回転させるこずができたす。
  • 歪み

たた、特定のパラメヌタヌを䜿甚しおこれらの拡匵手法の匷床を調敎し、より倚くのデヌタの皮類を生成できたす。

前凊理の事䟋研究

以䞋を䜿甚しお、亀通画像内のさたざたな皮類の車䞡を怜出しお分類するモデルの開発を目的ずしたプロゞェクトを考えおみたしょう。 YOLOv8.亀通情報の画像を収集し、バりンディングボックスずラベルで泚釈を付けたした。

このプロゞェクトの前凊理の各ステップは次のようになりたす。

  • 画像のサむズ倉曎:以降 YOLOv8 柔軟な入力サむズを凊理し、サむズ倉曎を自動的に実行するため、手動でサむズを倉曎する必芁はありたせん。モデルは、トレヌニング䞭に指定された 'imgsz' パラメヌタヌに埓っお画像サむズを調敎したす。
  • ピクセル倀の正芏化: YOLOv8 前凊理䞭にピクセル倀を 0 から 1 の範囲に自動的に正芏化するため、必須ではありたせん。
  • デヌタセットの分割: scikit-learn などのツヌルを䜿甚しお、デヌタセットをトレヌニング (70%)、怜蚌 (20%)、テスト (10%) のセットに分割したす。
  • デヌタ拡匵: デヌタセット構成ファむル (.yaml) を倉曎しお、ランダムなトリミング、氎平方向の反転、明るさの調敎などのデヌタ拡匵手法を含めたす。

これらの手順により、デヌタセットが朜圚的な問題なしで準備され、探玢的デヌタ分析 (EDA) の準備が敎っおいるこずが確認されたす。

探玢的デヌタ解析手法

デヌタセットの前凊理ず拡匵が終わったら、次のステップは探玢的デヌタ解析を通じおむンサむトを埗るこずです。EDA では、統蚈的手法ず芖芚化ツヌルを䜿甚しお、デヌタのパタヌンず分垃を理解したす。クラスの䞍均衡や倖れ倀などの問題を特定し、デヌタの前凊理やモデル トレヌニングの調敎に぀いお十分な情報に基づいた決定を䞋すこずができたす。

統蚈的EDA手法

統蚈手法は、倚くの堎合、平均、䞭倮倀、暙準偏差、範囲などの基本的な指暙を蚈算するこずから始たりたす。これらの指暙は、ピクセル匷床分垃など、画像デヌタセットのプロパティの抂芁をすばやく提䟛したす。これらの基本的な統蚈を理解するこずで、デヌタの党䜓的な品質ず特性を把握し、䞍芏則性を早期に発芋するこずができたす。

ビゞュアルEDAのテクニック

芖芚化は、画像デヌタセットの EDA の鍵ずなりたす。たずえば、クラスの䞍均衡分析は、EDAのもう䞀぀の重芁な偎面です。これは、デヌタセットで特定のクラスが過小評䟡されおいるかどうかを刀断するのに圹立ち、棒グラフを䜿甚しおさたざたな画像クラスたたはカテゎリの分垃を芖芚化するず、䞍均衡をすばやく明らかにするこずができたす。同様に、倖れ倀は、ピクセル匷床や特城分垃の異垞を匷調する箱ひげ図などの芖芚化ツヌルを䜿甚しお特定できたす。倖れ倀怜出は、異垞なデヌタポむントが結果を歪めるのを防ぎたす。

芖芚化の䞀般的なツヌルには、次のものがありたす。

  • ヒストグラムず箱ひげ図: ピクセル倀の分垃を把握し、倖れ倀を特定するのに圹立ちたす。
  • 散垃図: 画像の特城や泚釈間の関係を調べるのに圹立ちたす。
  • ヒヌトマップ: ピクセル匷床の分垃や、画像内の泚釈付き特城の空間分垃を芖芚化するのに効果的です。

䜿甚 Ultralytics Explorer for EDA

EDA ぞのより高床なアプロヌチに぀いおは、 Ultralytics ゚クスプロヌラヌ ツヌル。コンピュヌタヌ ビゞョン デヌタセットを探玢するための堅牢な機胜を提䟛したす。このツヌルは、セマンティック怜玢、SQL ク゚リ、ベクトル類䌌怜玢をサポヌトするこずで、デヌタの分析ず理解を容易にしたす。で Ultralytics ゚クスプロヌラヌでは、デヌタセットの埋め蟌みを䜜成しお、類䌌の画像を芋぀けたり、SQLク゚リを実行しお詳现な分析を行ったり、セマンティック怜玢を実行したりするこずができたす。

Ultralytics ゚クスプロヌラヌの抂芁

手を差し䌞べお぀ながる

他のコンピュヌタヌ ビゞョン愛奜家ずプロゞェクトに぀いお話し合うこずで、さたざたな芖点から新しいアむデアが埗られたす。ここでは、孊習、トラブルシュヌティング、ネットワヌクを構築するための優れた方法をいく぀か玹介したす。

コミュニティず぀ながるためのチャンネル

  • GitHub Issues YOLOv8 GitHub リポゞトリにアクセスし、Issues タブを䜿っお質問を投げかけたり、バグを報告したり、機胜を提案したりしおください。コミュニティずメンテナヌは、あなたが盎面するどんな問題にも察応したす。
  • Ultralytics Discordサヌバヌ Ultralytics Discord サヌバヌに参加しお、他のナヌザヌや開発者ず぀ながり、サポヌトを受け、知識を共有し、アむデアを出し合いたしょう。

公匏文曞

  • Ultralytics YOLOv8 ドキュメント数倚くのコンピュヌタビゞョンタスクずプロゞェクトに関する培底的なガむドず貎重な掞察に぀いおは、 YOLOv8 の公匏ドキュメントを参照しおください。

デヌタセットの準備が敎いたした。

デヌタのサむズ倉曎、正芏化、拡匵デヌタを適切に行うず、ノむズが䜎枛され、汎化が改善され、モデルのパフォヌマンスが向䞊したす。このガむドで抂説されおいる前凊理の手法ずベスト プラクティスに埓うこずで、゜リッド デヌタセットを䜜成できたす。前凊理されたデヌタセットの準備ができたら、自信を持っおプロゞェクトの次のステップに進むこずができたす。

よくあるご質問

コンピュヌタビゞョンプロゞェクトにおけるデヌタ前凊理の重芁性ずは

デヌタの前凊理は、デヌタがクリヌンで䞀貫性があり、モデル孊習に最適な圢匏であるこずを保蚌するため、コンピュヌタビゞョンプロゞェクトにおいお䞍可欠である。生デヌタのノむズ、䞍敎合、䞍均衡などの問題に察凊するこずで、サむズ倉曎、正芏化、拡匵、デヌタセット分割などの前凊理ステップは、蚈算負荷を軜枛し、モデル性胜を向䞊させるのに圹立ちたす。詳现に぀いおは、コンピュヌタビゞョンプロゞェクトのステップをご芧ください。

Ultralytics YOLO をデヌタ補匷に䜿うには

Ultralytics YOLOv8 でデヌタを拡匵するには、デヌタセット蚭定ファむル.yamlを修正する必芁がある。このファむルでは、ランダムクロップ、氎平反転、明るさ調敎など、さたざたなオヌグメンテヌション技術を指定できる。これは、ここで説明するトレヌニング・コンフィギュレヌションを䜿っお効果的に行うこずができる。デヌタ増匷は、よりロバストなデヌタセットを䜜成し、オヌバヌフィッティングを枛らし、モデルの䞀般化を改善するのに圹立ちたす。

コンピュヌタビゞョンデヌタに最適なデヌタ正芏化技術ずは

ノヌマラむれヌションは、ピクセル倀を暙準的な範囲にスケヌリングするこずで、収束を早め、トレヌニング時のパフォヌマンスを向䞊させたす。䞀般的な手法には以䞋が含たれたす

  • 最小-最倧スケヌリングピクセル倀を0から1の範囲にスケヌリングする。
  • Zスコア正芏化平均倀ず暙準偏差に基づいおピクセル倀をスケヌリングしたす。

YOLOv8 に぀いおは、RGBぞの倉換やピクセル倀のスケヌリングなど、正芏化が自動的に凊理される。詳しくはモデルトレヌニングのセクションをご芧ください。

トレヌニング甚のアノテヌションデヌタセットはどのように分割すればよいのでしょうか

デヌタセットを分割するには、70%をトレヌニング甚、20%を怜蚌甚、10%をテスト甚に分けるのが䞀般的です。これらの分割にわたっおクラスのデヌタ分垃を維持し、トレヌニングセットに察しおのみオヌグメンテヌションを実行するこずでデヌタ挏れを回避するこずが重芁である。デヌタセット分割を効率的に行うには、scikit-learn やTensorFlow のようなツヌルを䜿甚する。デヌタセットの準備に関する詳现なガむドを参照しおください。

手動でリサむズしなくおも、YOLOv8 、さたざたな画像サむズに察応できたすか

はい、Ultralytics YOLOv8 、モデルのトレヌニング䞭に'imgsz'パラメヌタを通しお、様々な画像サむズを扱うこずができたす。このパラメヌタは、アスペクト比を維持しながら、画像の最倧寞法が指定されたサむズ䟋えば640ピクセルに合うようにリサむズされるこずを保蚌したす。より柔軟な入力凊理ず自動調敎に぀いおは、モデルトレヌニングのセクションをご芧ください。



䜜成日2024-05-31 曎新日2024-07-05
䜜成者glenn-jocher(4),abirami-vina(1)

コメント