34

現在、腐ったオレンジと食用オレンジを外観に基づいて区別するためのプログラムを作成しようとしています。これを行うために、私は畳み込みニューラルネットワークを使って腐ったオレンジとノーマルオレンジを訓練することを計画しています。いくつかの検索の後、私は約1つのデータベースしか見つけることができませんでした。黒い背景に150個の腐ったオレンジと150個のノーマルオレンジ(http://www.cofilab.com/downloads/)。明らかに、機械学習モデルでは、90%以上の精度を達成するためには少なくとも数千のオレンジが必要です。しかし、これらの150個のオレンジを何らかの方法で変更して、さらに多くのオレンジ色の写真を作成できますか?変更することで、私は柑橘系の果実に異なるオレンジの色合いを加えて「異なるオレンジ」にすることを意味します。これはニューラルネットワークを訓練する効果的な方法でしょうか?ニューラルネットワークを訓練するために訓練された画像を変更する

答えて

7

それはあなたが持っている日付の数を増やすために非常に良い方法ですを作成することができます。あなたがすることはあなたのデータに依存します。たとえば、センサから取得したデータを訓練する場合、訓練データにノイズを追加して、データセットを増やすことができます。結局のところ、センサーからのノイズが後で出ることが予想されます。

画像でトレーニングすると仮定すると、これらのテクニックを使用する手段を提供する非常に優れたgithubリポジトリがあります。このPythonライブラリは、機械学習プロジェクトの画像を増やすのに役立ちます。これは、入力画像のセットを、少し大きく変更された新しいセットに変換します。 リンク:https://github.com/aleju/imgaug

特長:

  • 最も標準的な増強技術利用できます。

  • 技術は イメージのイメージとキーポイント/ランドマークの両方に適用できます。増補シーケンスを 実験の開始時に1回定義してから、何度も適用してください。

  • 各増強のための柔軟な確率的範囲を定義する。 「 各画像を-45〜45度の値で回転する」または「 画像を正規分布N(0、5.0)からサンプリングした値だけ回転する」。

  • は簡単に、正確に同じ方法 (例えば、画像およびそのヒートマップ)の画像の異なるバッチを増強 に決定論的値にすべての確率的範囲に変換します。

enter image description here

2

これは確かにあなたのデータセットを増やすための良い方法です。たとえば、画像にガウスぼかしを適用することができます。それらはぼやけてしまいますが、オリジナルとは異なります。あなたも画像を反転することができます。あるいは最後に、新しい画像を探し、引用されたテクニックを適用します。

3

あなたが探しているものがデータ増強です。あなたのケースでは、別のことを行うことができます:あなたはガウスぼかしを使用することができると言われているよう

  1. は、わずかに異なる画像を取得するためにフィルタを適用します。

  2. オレンジを切り、別の背景に置きます。

  3. さまざまなスケールファクターでオレンジをスケールします。

  4. 画像を回転します。

  5. 合成腐敗オレンジを作ります。

  6. 上記のさまざまな組み合わせをすべて混ぜてください。この種の増強によって、簡単に千種類の異なるオレンジを作り出すことができます。

私は12.000画像のデータセットでそのような何かをしたと私は630.000サンプル

0

データの増強は本当に良いトレーニングセットを後押しするための方法が、まだそれがオーバーフィットする可能性与えられた自分自身で終了する深いネットワーク側を訓練するのに十分ではありません。あなたは、imagenetデータセットで訓練され、あなたの問題のためにそれを微調整するような、あらかじめ訓練されたモデルをとるドメイン適応を見なければなりません。ユースケースを分類するために必要なパラメータだけを学習する必要があるため、比較的少ないトレーニングデータで適切な精度を達成することができます。私はこのテクニックで分類のデモを開催しましたhere。あなたのデータセットを使って試してみましょう。このデモでは、アップロードするデータセットの事前追加モデルとデータ拡張を扱います。

関連する問題