2021年12月5日日曜日

Image Classificationにおける元画像の大きさと精度(accuracy)との関係について

今までもPyTorchやfast.aiを使ってImage Classificationを行ってきました。

1つ気になったのが、trainingに使う画像が大きいと、それだけデータ量も多いのだから精度も良くなるのではと言う単純な思いです。そこで確認してみました。

テストの条件は、

・データセットはcifar-10。cifar-10はライブラリーにもありますが、ここでは一度cifar-10をpng形式の画像データに変換したものを使いました。

・fast.aiを使ってresnet18でfine-tuningする。

・DataLoaderは簡単に下記のようにしました。この設定を取敢えずnormal設定とします。
画像サイズは、元の32,64,96,128,224の7種類で検証

 dls=ImageDataLoaders.from_folder(
     path, 
     train='train',
     valid='val',
     bs = 64,
     item_tfms=Resize(160), ⇒ここでサイズを32~224に変更する
     batch_tfms=aug_transforms(),
     seed=123
)

cifar10の32pixのデータ画像



【結果】

32pixの例
epochtrain_lossvalid_lossaccuracytime
01.1776621.0656850.62360001:40
10.9391810.8558660.70190001:42
20.8141380.7357280.74920001:42
30.7176460.6443040.78090001:41
40.6269320.6063300.79260001:42
50.6031020.5930750.80050001:42
60.5150810.5544300.81100001:42
70.4881680.5541700.81190001:43
80.4398750.5499190.81670001:43
90.4493610.5468510.81690001:44




























32~224pixでtrainingした結果は次の通りでした。

Image sizenormalp設定のaccuracy
320.8169
640.8983
960.9334
1280.9435
1600.9483
2240.9483








●当初予想したように画像サイズが大きくなればaccuracyも高まることが確認されました。
ただそれもサイズが128pix以上ではほぼフラットになっています。

0 件のコメント:

コメントを投稿