semantic segmentation
はじめに
こんにちは。はんぺんです。
表題通りdeep lab v3使ってsmantic segmentation試してみて、動画を生成してみました。
例のごとく実装はPythonです。
semantic segmentationとは?
semantic segmentationは画像を画素レベルで把握することです。つまり、画像を形成するピクセルレベルでそれが何かを分類してしまうというものです。
説明より実際にみていただいた方がイメージがつくと思います。
こちらは運転の動画をsemantic segmentationを使ってピクセルごとに分類した動画になります。
赤が人間、青が車、ピンクが歩道などといったように、動画のフレーム(画像)ごとに分類を行うというものです。
では実際にsemantic segmentationを使って動画を生成してみようと思います。
例のごとくPythonで書いていきます。
Deep lab v3の使い方
ソースコードの取得
ソースコードはhttps://github.com/tensorflow/modelsに上がっています。
cloneするなりダウンロードするなりして使えるようにしてください。
そして肝心のdeep labのソースコードはhttps://github.com/tensorflow/models/tree/master/research/deeplabにあります。
ソースコード
ソースコードは以上になります。
読み込んだ画像を次々に変換して、最終的に動画を生成しています。
デモとしてテニスの動画を変換してみました。
以前にPython使ってテニスボールのトラッキングをやってみたで使った動画に対して、Semantic segmentationを使ってみました。
できた動画がこちらになります。
奥のプレーヤーは小さすぎて認識できておりません。
また、審判と審判台をセットで人間として認識したりと、一部認識性能に問題はあります。
しかし、手前のプレーヤーは十分人間と認識できております。
さいごに
いかがでしたでしょうか。
今回はdeep lab v3のソースコードを使って画像を変換し、動画を生成してみました。
今の所semantic segmentationが大活躍するような事例はあまり聞いたことがありませんが、使い方によっては非常に活躍しそうな技術であると考えております。
例えば、人だけでなく人が着ている服までも分類できるようになれば、画像から服の種類を割り出して流行を分析したりなど、アパレルの分野で大いに使えそうではないかと考えております。
面白そうなので、今後やってみたいです。
それでは失礼いたします。
参考
最強のSemantic Segmentation、Deep lab v3 plus
Google、画像をピクセル単位で把握し各オブジェクトに割り当てるセマンティックセグメンテーションCNNモデル「DeepLab-v3」オープンソース発表
本記事のソースコード
コメントを残す