代表的な物体検出手法の一つRetinaNetの保存と導入の探究

  • 2021年9月10日
  • 2021年9月9日
  • lan
lan

最近はカメラ製品の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 を例にして、モデルを保存・ロードする方法について書きました。次回の記事があれば、また続けましょう。御覧いただきありがとうございます。

最新情報をチェックしよう!

lanの最新記事8件