AI(DETR:Detection Transformerモデル)による物体検知

python活用 python

Pythonで画像認識してみたいです。

このような要望にお応えします。

今回は、DETR(Detection Transformer)の学習済みモデルを用いた物体検知をします。
下記のサイトを参考にさせていただきました。

  • https://github.com/facebookresearch/detr
  • https://ai.facebook.com/research/publications/end-to-end-object-detection-with-transformers
  • https://medium.com/lsc-psd/%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86%E3%81%AE%E5%B7%A8%E7%8D%A3-transformer-%E3%81%AEself-attention-layer%E7%B4%B9%E4%BB%8B-a04dc999efc5

DETR(Detection Transformerについて

DETRは、自然言語処理の分野で有名なtransformerを物体検知に使用したモデルです。

transformerについては、以下のページがわかりやすいと思います。

  • https://medium.com/lsc-psd/%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86%E3%81%AE%E5%B7%A8%E7%8D%A3-transformer-%E3%81%AEself-attention-layer%E7%B4%B9%E4%BB%8B-a04dc999efc5

DETRのモデル、学習方法については、公式の論文を参照ください。

  • https://ai.facebook.com/research/publications/end-to-end-object-detection-with-transformers

今回は、下記で公開されている学習済みDETRモデルを用いて人物画像生成をします。

  • https://github.com/facebookresearch/detr

Google Colaboratoryの準備

・Googleのアカウントを作成します。
・Googleドライブにアクセスし、「新規」→「その他」から「Google Colaboratory」の順でクリックします。そうすると、Colaboratoryが起動します。

・Colaboratoryが起動したら、以下のコマンドをCoalboratoryのセルに入力し実行します。
そうすることで、Googleドライブをマウントします。

・実行後、認証コードの入力が促されます。このとき、「Go to this URL in a browser」が指しているURLにアクセスしgoogleアカウントを選択すると、認証コードが表示されますので、それをコピーしenterを押します。これでGoogleドライブのマウントが完了します。

DETR学習済みモデルの準備

Google Colaboratoryの「ランタイム」→「ランタイムのタイプ変更」でGPUを選択します。

ツールをダウンロードする場所に移動します。

本記事では、マイドライブにツールをダウンロードします。

gitからツールをダウンロードします。

ダウンロードしたフォルダまで移動します。

画像データを格納するdataフォルダと物体検知の結果を保存するresultsフォルダを作成します。

DETR学習済みモデルをダウンロードします。

DETRのモデルを定義します。詳しくは、DETRのgithubを参照ください。

これで、モデルの定義は完了です。

以下のPythonスクリプトでdataフォルダ内の画像を読み込み、物体検知した結果をresultsフォルダに保存することができます。

出力結果

出力結果は、以下になります。

どうでしょうか? 様々な要素が混じる複雑な画像に対して実施してみるのもいいかもしれません。

タイトルとURLをコピーしました