opencv_dnn:samples:segmentation

Semantic Segmentation

ここではOpenCVに実装された,領域分割(Semantic Segmentation)に関して使い方を解説します. object detectionでは短径領域(四角い領域)を使って,「どこになにがあるか?」を教えてくれる ものでしたが,segmentationは分割を指し,例えば下記のような出力をします.「どこになにがあるか?」 という問は変わりませんが,これがより詳細になり,「どのあたりになにがあるか?」までがわかるように なります.

https://wiki.tum.de/display/lfdv/Image+Semantic+Segmentation

OpenCVで確認できるセグメンテーションの手法として,下記の2つが利用できるのを確認しました.

https://github.com/shelhamer/fcn.berkeleyvision.org に一通りの情報がまとまっています.このページではFCN-32s PASCAL を使ってみます.FCN-32s PASCALへのリンクをたどり次のサイトにいくといろいろデータもらえます.

$ ./example_dnn_segmentation --classes=pascal-classes.txt  --config=fcn8s-heavy-pascal.prototxt  --model=fcn8s-heavy-pascal.caffemodel  --width=500 --height=500 --rgb  --mean=1

高速で動作可能な領域分割です.https://www.pyimagesearch.com/2018/09/03/semantic-segmentation-with-opencv-and-deep-learning/ も参考にすると良いでしょう.

$ ./example_dnn_segmentation enet --zoo=../../dnn/models.yml --classes=categories.txt --model=Enet-model-best.net  --width=1024 --height=512 --rgb --mean=1 

Enetを学習させるには下記のEnet作者による github ページを参照しましょう。

  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/pages/opencv_dnn/samples/segmentation.txt
  • 最終更新: 2019/07/30 09:54
  • by baba