プログラミングと機械学習のメモ
日付: カテゴリ: Kaggle
遅くなりましたが、これの実装版です。
すべてはここに詰まっています。なぜかサブミットエラーが出ていますが、実際にカーネルを動かせば動きます。
https://www.kaggle.com/shingo405/kuzushizi-recog-sample細かな説明はカーネルに書いてあるので、大まかな説明をします。
何度も言うように、前半部はほとんど次のカーネルそのままです。
https://www.kaggle.com/kmat2019/centernet-keypoint-detector
centernetはオブジェクト認識の手法の一つですが、他のFaster RCNNやSSD、Yoloは4つの頂点を求めるのに対し、centernetは中心点と縦横の長さを予測します。文字認識にとって、中心がどこにあるか分かってしまえば文字の検出は楽になるため、centernetの方が精度がよかったと私は思っています。
今後、Pytorchを使用してFaster RCNNやSSD、centernetを解説したいとも思っていますので、オブジェクト認識についての記事を投稿する予定です。カーネルよくわからなかった方は、次回以降の記事も参考にしてください。
後半部は、Pytorchによる4200クラスの文字分類です。pnasnet5largeはめちゃくちゃ重くてkernelで回しきれなかったため、今回はresnetで実装しています。グレースケール処理や、出現頻度による文字の偏りをなくす処理等も実装しています。
画像分類の手法はいろいろ出回っていますが、オブジェクト認識のコードってみんなあまり書いていませんよね。オブジェクト認識についてまたブログを書いていければなと思っています。
また、画像認識においても前処理はすごい大事ですので、かならず行うようにしましょう。