AI(学習済みHRNetモデル)による画像認識技法「画像セグメンテーション」

python

画像認識が行いたいです。

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

機械学習、深層学習を中心としたAI技術が注目を集めています。
その応用先の1つとして画像認識が挙げられます。

画像認識のタスクとしては、大きく以下のものがあります。

  • 画像分類・・・画像中の物体があらかじめ定義したカテゴリ内でどのカテゴリに属するのかを求める。
  • 物体検知(画像検出)・・・画像中の物体の位置とカテゴリを検出する。
  • 画像セグメンテーション・・・画像中の画素単位で物体のカテゴリを求める。

今回は、画像認識タスクのひとつである画像セグメンテーションを行います。

以下を参考にさせていただきました。

  • https://github.com/mseg-dataset/mseg-semantic
  • https://github.com/leoxiaobin/deep-high-resolution-net.pytorch
  • https://www.jstage.jst.go.jp/article/jrsj/35/3/35_35_180/_pdf

画像セグメンテーションについて

画像セグメンテーションは、Semantic Segmentation と呼ばれるように、画像全体や画像の一部の検出ではなく画素単位でラベル付けしていきます。

画像セグメンテーションのモデルは様々提案されていますが、今回は学習済みHRNetモデルで画像セグメンテーションを行います。
HRNet(高解像度ネットワーク)は、プロセス全体を通して高解像度の表現を維持します。高解像度から低解像度の畳み込みストリームを並列に接続し、解像度を超えて情報を繰り返し交換することにより実現しています。人間の姿勢推定、セマンティックセグメンテーション、オブジェクト検出を含む幅広いアプリケーションで利用されています。

以下のツールを使用します。

  • https://github.com/mseg-dataset/mseg-semantic

ざっくりとソースコードを確認しました。

デフォルトでは、学習済みHRNetモデルを用いて画像セグメンテーションを行います。

default_config_360.yamlより抜粋。

inference_task.pyでモデルの定義と学習済みパラメータの設定をしているようです。

inference_task.pyのこちらで画像セグメンテーションを実施しているようです。
画像、動画のどちらのデータにも対応されているみたいです。

それでは、画像セグメンテーションを行います。

Google Colaboratoryの準備

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

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

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

画像セグメンテーションツールの準備

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

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

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

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

ツール実行に必要なライブラリをインストールします。

マイドライブに戻ります。

引き続きツール実行に必要なソフトウェアをダウンロードします。

必要なライブラリをインストールします。

引き続きツール実行に必要なソフトウェアをダウンロードします。

必要なライブラリをインストールします。

学習済みパラメータをダウンロードします。

必要なライブラリをインストールします。(インストール済みであれば、実施しなくてもいいと思います。)

マイドライブに戻ります。

これで準備完了です。

以下のプログラムを実行することで画像セグメンテーションを実施することができます。

出力結果表示処理を定義しています。

こちらでモデルと入力画像を指定して実行しています。

動画を入力したい場合も上記と同様にできます。

出力結果

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

出力例1

出力例2

出力例3

出力例4

出力例5

このツールにより画像セグメンテーションを気軽に試すことができますので使用してみてはいかがでしょうか。

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