現在CNNを用いて画像の分類について学習しています。
使用しているフレームワークはkerasです。
データ数はかなり少なく、正常画像100枚、異常画像100枚の計200枚です。
訓練データ:140枚(正常:70枚、異常:70枚)
検証データ:40枚(正常:20枚、異常:20枚)
テストデータ:20枚(正常:10枚、異常:10枚)
上記のようにデータの割り振りを行いました。
評価指標は現段階では正解率のみを確認しています。
①画像の水増しなどをせず最低限の前処理のみで作成したモデルと
②ドロップアウト層の追加や画像の水増しを行ったモデルで比較したのですが、後者のモデルの方が大幅に悪くなってしまいました(①のモデルも良くありませんが・・・)
②のモデルの水増しに関しては以下のようにweb上の記事などを参考にして設定しました。
python
1train_datagen = ImageDataGenerator( 2 rescale=1./255, 3 rotation_range=40, #画像をランダムに回転させる 4 width_shift_range=0.2, #画像を水平または垂直にランダムに水平移動させる範囲 5 height_shift_range=0.2, 6 shear_range=0.2, #等積変形をランダムに適用 7 zoom_range=0.2, #図形の内側をランダムにズーム 8 horizontal_flip=True, #画像の半分を水平方向にランダムに反転 9)
今回使用した画像は装置内のカメラで定点撮影されたものになります
ここで一つ疑問なのですが、定点撮影された画像に対して回転などを加えてしまうと品質の悪いデータが作られてしまっているのかなと感じます。
データが少ないなど理由はいくつかあると思うのですが精度が落ちている原因は上記のような水増しが影響しているのでしょうか?
まだ知識が浅くいくつかパラメータを指定してみたという状態なのですが、画像を水増しする項目の選定方法や、各パラメータの値の決め方など、一般的な知識やアプローチの考え方を教えて頂きたいです。
漠然としすぎているかと思いますがどのように進めていくか行き詰ってしまい苦戦しています。
初歩的な質問ですがアドバイス宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー