Intelligence本記事では、Transfinerと呼ばれる機会学習手法を用いて、インスタンスセグメンテーションを行う方法をご紹介します。SysCV/transfinerTransfiner概要Transfinerは、Transformerベースのインスタンスセグメンテーション手法です。Transfinerでは、画像領域をQuadtreeとして表現します。Transformerに入力しています。Quadtreeに表現されているようにエラーが発生しやすいツリーノードを自己修復することで、マスクの品質を向上させています。Cityscapes)で従来手法を上回る予測精度を示したとされています。Segmentation詳細はこちらの論文をご参照ください。本記事では上記手法を用いて、インスタンスセグメンテーションを行っていきます。デモ(Colaboratory)それでは、実際に動かしながらインスタンスセグメンテーションを行っていきます。ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。Colaboratoryで開くこともできます。このデモはPythonで実装しています。Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。環境セットアップそれではセットアップしていきます。Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。初めにGithubからソースコードを取得します。https://github.com/SysCV/transfiner.git次にライブラリをインストールします。/dev/null最後にライブラリをインポートします。files以上で環境セットアップは完了です。Driveからダウンロードします。quiet=False)インスタンスセグメンテーションそれではインスタンスセグメンテーションを行います。初めに、レポジトリに格納されているテストイメージを入力します。以下では、sample_imgs配下の画像すべてにインスタンスセグメンテーションを実行しています。./pretrained_model/output_3x_transfiner_r50.pth出力結果は以下の通りです。iPythonImageiPythonImage('/content/transfiner/vis_coco_r50_sample/000000360661.jpg')その他の予測結果は以下の通りです。テスト画像のセットアップ続いて任意の画像を入力していみます。本記事ではぱくたそ様の画像を使用させていただきます。demo/sample_imgs/test1.jpg任意の画像をインスタンスセグメンテーション用意した画像をインスタンスセグメンテーションします。./pretrained_model/output_3x_transfiner_r50.pthiPythonImage('/content/transfiner/vis_coco_r50_sample/test1.jpg')出力結果は以下の通りです。机やパソコンの検出がやや甘いですが、人物は精細に検出できています。何を正確に検出したいかによって追加の学習が必要そうです。まとめ本記事では、Transfinerと呼ばれる機械学習手法を用いて、任意の画像をインスタンスセグメンテーションを行う方法をご紹介しました。本手法は検出するオブジェクト形状が複雑な場合や、隣接している場合に効果を発揮すると考えられます。本記事では、機械学習を動かすことにフォーカスしてご紹介しました。学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。*このブログについてホームサイトマップTeDokologyTeDokology。