最近はカメラ製品のAI環境を測定するために、何か物体検出のモデルがないか、試してみました。こちらは沢山の物体検出手法の中のRetinaNetという有名モデルを使いました。
最初にgoogle colabでkeras のRetinaNetのサンプルを借りました。今回の目的と言ったら、データ訓練がされたRetinaNetを製品環境向けのデータフォーマットに転換することです。なので、データ訓練が終わったら、保存と再利用するのは大事です。
普段、kerasで書くモデルファイルなら、model.save()とkeras.models.load_model()だけで簡単にできますが、近年、色々な新しいモデルが出てきましたが、それらは既有なモデル構造の上に、何か斬新な構造をくわえたり、直したりしたために複雑な構造になり、元の方法が適用されなくなりました。それらは、「Custom objects」と呼ばれました。RetinaNetはその中の一つです。
これから大枠なプロセスを説明いたします。
まず、google colabでRetinaNetのサンプルコードを書いて、データ訓練を行うようにします。
通常通り、予測したら、こうなります。
毎回データ訓練が終わった後、kerasの保存方法を使います。
その後、モデルのロード方法については、把握している中でkerasとtensorflowの方法を試してみました。画像の中の、上の行はkeras、下の行はtensorflowのロード方法です。
試しに調べたところ、実際に、訓練されたモデルを再利用するとしたら、Keras-RetinaNet のopen source中に.h5ファイルに保存する方法が一番有望だそうですが。今回はRetinaNet を例にして、モデルを保存・ロードする方法について書きました。次回の記事があれば、また続けましょう。御覧いただきありがとうございます。