1

画像のサイズはこのタスクのモデルを訓練するためにどのように影響しますか?TensorFlow画像の認識、画像のサイズ

私の現在のトレーニングセットは2880 X 1800の画像を保持していますが、これは訓練するには大きすぎるかもしれないと心配しています。合計で私のサンプルサイズは約200〜500画像になります。

これは、私のモデルを訓練する際に、より多くのリソース(GPU、RAM、Distribution)が必要なことを意味しますか?

これが大きすぎる場合は、どのようにサイズを変更する必要がありますか? - 私はより正確な精度のためにできるだけ実写写真の解像度を模倣したいと思っています。

編集:あなたが訓練するためのGPUを使用している場合

私も画像ファイル

答えて

1

メモリと処理の要件は、画像のピクセルサイズに比例します。これが効率的に処理するには大きすぎるかどうかは、ハードウェアの制約と使用可能な時間によって異なります。

画像のサイズ変更に関しては答えはありません。有用ではない情報を削除しながらアルゴリズムからデータを学ぶために必要な情報を最もよく保存する方法を検討する必要があります。入力画像のサイズを小さくすることは、必ずしも精度の点でマイナスになるとは限りません。

手書き数字ここ

画像のサイズがかなり減少し、正しく識別するために必要なすべての構造情報を保持することができ:2例を考えてみましょう。 MNIST data setを見ると、これらの画像は28×28の解像度で配信され、99.7%+ accuracyと識別されます。

樹種

は、個々の葉が種を識別するのに役立つ可能性が木々のイメージのセットを想像してみて識別。ここでは、画像サイズを小さくすると、葉の形状の細かいディテールがモデルに有害な影響を与えることがわかりますが、イメージのサイズ変更ではなく、きれいな作物(個々の葉を保存する)で同様の結果が得られることがあります。この場合、同じ画像から複数の作物を作成すると、結果が大幅に改善されるように、トレーニング用の拡張データセットが得られます(可能な場合は、トレーニングセットが非常に小さいため、考慮する必要があります)

深い学習モデルは、多くの画像分類タスクで人間レベルの結果を達成しています。自分の画像を識別するのに苦労すると、アルゴリズムを訓練する可能性は低くなります。これは、適切かもしれないスケーリングのレベルを考慮する場合、しばしば有用な出発点です。

1

ためTFRecord形式を使用されるだろう、これはデフあなたのトレーニング時間に影響を与えます。 TensorflowはほとんどのGPU割り当てを行いますので、心配する必要はありません。しかし、大きな写真では、あなたのデータセットは小さくても、長い訓練時間を経験するでしょう。データを増強することを検討する必要があります。

あなたはデータの拡大を使ってサイズ変更を補完することができます。同じサイズでサイズを変更してから、反射と平行移動を行います(幾何学的な動きと同様に)

1

イメージが大きすぎると、畳み込み出力をメモリに保存する必要があるため、トレーニングを開始する前にGPUのメモリが不足することがあります。 。そのような場合は、メモリ消費量を削減するために、次のもののいくつかの操作を行うことができます。

  • 画像
  • のサイズを変更
  • バッチサイズを減らすが、あなたのイメージのサイズを変更するには

モデルの複雑さを軽減多くのスクリプトはGoogle検索で1つだけ離れていますが、あなたのケースでは1440で900を追加することはおそらくスィートスポットです。

1

高解像度の画像は、トレーニング時間が長くなり、メモリー消費量(主にGPUメモリー)が増加します。

あなたの具体的な仕事によっては、安定した学習のために、GPUに32または64のような適切なバッチサイズを合わせるためにイメージサイズを小さくすることができます。

あなたの精度は、トレーニングセットのサイズによって大きく左右されます。そのため、画像サイズの代わりに、500〜1000枚のサンプル画像を見たいと思うかもしれません。 SSD - Single Shot MultiBox Detectorのような最近の出版物は、PascalVOCデータセットで72%のmAPのような高精度値を達成します.300x300の画像解像度を使用する「のみ」です。

サイズ変更と拡張:たとえば、SSDは縦横比に関係なく、入力画像をすべて300x300にスケーリングするだけです。怪我をすることはありません。また、ミラーリング、翻訳などでデータを増やすこともできます(ただし、Tensorflowには組み込みメソッドがあると仮定しています)。