本記事では、Transfinerと呼ばれる機会学習手法を用いて、インスタンスセグメンテーションを行う方法をご紹介します。
![]() |
出典: SysCV/transfiner |
Transfiner
概要
Transfinerは、Transformerベースのインスタンスセグメンテーション手法です。
Transfinerでは、画像領域をQuadtreeとして表現します。
RoIピラミッド状のIncoherent
RegionsにQuadtreeを構築し、3段階のツリーから得られるSequential Quadtree
NodesをQuadtree Transformerに入力しています。
Quadtreeに表現されているようにエラーが発生しやすいツリーノードを自己修復することで、マスクの品質を向上させています。
この方法によりTransfinerでは、3つのベンチマーク(COCO, BDD100K,
Cityscapes)で従来手法を上回る予測精度を示したとされています。
![]() |
出典: Mask Transfiner for High-Quality Instance Segmentation |
詳細はこちらの論文をご参照ください。
本記事では上記手法を用いて、インスタンスセグメンテーションを行っていきます。
デモ(Colaboratory)
それでは、実際に動かしながらインスタンスセグメンテーションを行っていきます。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
また、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
初めにGithubからソースコードを取得します。
次にライブラリをインストールします。
最後にライブラリをインポートします。
以上で環境セットアップは完了です。
学習済みモデルのセットアップ
学習済みモデルをGoogle Driveからダウンロードします。
インスタンスセグメンテーション
それではインスタンスセグメンテーションを行います。
初めに、レポジトリに格納されているテストイメージを入力します。
以下では、sample_imgs配下の画像すべてにインスタンスセグメンテーションを実行しています。
出力結果は以下の通りです。
その他の予測結果は以下の通りです。
テスト画像のセットアップ
続いて任意の画像を入力していみます。
本記事ではぱくたそ様の画像を使用させていただきます。
任意の画像をインスタンスセグメンテーション
用意した画像をインスタンスセグメンテーションします。
出力結果は以下の通りです。
机やパソコンの検出がやや甘いですが、人物は精細に検出できています。
何を正確に検出したいかによって追加の学習が必要そうです。
まとめ
本記事では、Transfinerと呼ばれる機械学習手法を用いて、任意の画像をインスタンスセグメンテーションを行う方法をご紹介しました。
本手法は検出するオブジェクト形状が複雑な場合や、隣接している場合に効果を発揮すると考えられます。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. 論文 - Mask Transfiner for High-Quality Instance Segmentation
0 件のコメント :
コメントを投稿