【Jetson Nano】SegNetを使ったセマンティックセグメンテーション
はじめに
前回の続きです↓
うーん、セマンティックセグメンテーションとはなんぞや・・・
セマンティックセグメンテーションとは
こちらのページがわかりやすかったので引用させていただきます。
セマンティック セグメンテーション (Semantic Segmentation) は、画像内の全画素にラベルやカテゴリを関連付けるディープラーニング (Deep Learning) のアルゴリズムです。特徴的なカテゴリを形成する画素の集まりを認識するために使用されます。
なるほどわからん状態ですが、こちらの画像を見るとなんとなく理解できました。
このように人物の画素をなんらかの方法でぺたぺたアノテーションすることで「背景」と「人物」の2つのクラスに分割することができるとのこと。ちなみにカテゴリは2つに限らないので、この画像で言うと「空」「海」にも分割することができる。
画素レベルで分類できるので、バウンディングボックスに収まる必要がある物体検出よりも不規則な形状のものを検出することができます。
別バージョン pic.twitter.com/u4tWznnHNi
— ki (@ijiwarunahello_) May 4, 2021
その分、アノテーションが難しそうなのは容易に想像できますね、、、
なんとなく理解できたので、デモに移っていきましょう🏃♀️
デモでやること
- 様々なデータセットを使った画像のセグメント化
Cityscapes
DeepScene
Multi-Human Parsing(MHP)
Pascal VOC
SUN RGB-D
- ライブカメラを使ったセグメント化
様々なデータセットを使ったセグメント化
それぞれに対応したシーンの画像を用意しましょう。もちろんあらかじめ用意されている画像を使うのもありです。
データセット名 | 概要 | 備考 |
---|---|---|
Cityscapes | ストリートシーン | Cityscapes Dataset – Semantic Understanding of Urban Street Scenes |
DeepScene | オフロードシーン | DeepScene |
Multi-Human Parsing(MHP) | 四肢や衣服を分類 | MHP:Multi-Human Parsing |
Pascal VOC | 様々な人、動物、車両、および家庭用オブジェクト | The PASCAL Visual Object Classes Homepage |
SUN RGB-D | オフィスや家庭でよく見る屋内のオブジェクトやシーン | SUN RGB-D: A RGB-D Scene Understanding Benchmark Suite |
スクリプトは例の如く、以下の場所に格納されています(ソースからビルドした場合)
jetson-inference/build/aarch64/bin
Cityscapes
./segnet --network=fcn-resnet18-cityscapes scene.jpg output.jpg
夜だったから空がうまく認識されてない?
DeepScene
./segnet --network=fcn-resnet18-deepscene scene.jpg output.jpg
もっと茶色っぽい地面だったら上手く分類できたかも
Multi-Human Parsing (MHP)
./segnet --network=fcn-resnet18-mhp scene.jpg output.jpg
いい感じに分類
Pascal VOC
./segnet --network=fcn-resnet18-voc scene.jpg output.jpg
これもいい感じだが、なぜか前足の先が「horse」になってる
SUN RGB-D
./segnet --network=fcn-resnet18-sun scene.jpg output.jpg
これもいい感じ ソファか椅子かの葛藤が見える
ライブカメラを使ったセグメント化
これも引数にカメラのタイプを指定することで起動できます。
# MHP ./segnet --network=fcn-resnet18-mhp /dev/video0 # SUN ./segnet --network=fcn-resnet18-sun /dev/video0 # DeepScene ./segnet --network=fcn-resnet18-deepscene /dev/video0
最後に
このセマンティックセグメンテーションを活用することで、色々なシーンで色々なものを分類・認識させることができます。
今後機会があれば自前のデータを用意して、オリジナルのデータセットを作成していきたいです。