TetsuakiBaba / ofxOpenCvDnnSegmentation

ofxOpenCvDnnSegmentation is an realtime segmentation addon for openframeworks, which uses opencv dnn modules.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ofxOpenCvDnnSegmentation

Description

ofxOpenCvDnnSegmentation is an realtime segmentation addon for openframeworks, which uses opencv dnn modules.

OpenCV v.3.3.1 or upper includes some dnn modules in their own package. Therefore I designed ofxOpenCvDnnSegmentation with OpenCV v.3.3.1 or upper version. It works with ENET or FCN network.

sample gif sample gif

Usage

See Examples for more details. You can find how to get each class detected segmentation with ofPolyline.

void setup()
{
    ofImage img;
    img.load(ofToDataPath("sample.jpg"));
    segmentation.setup(ofToDataPath("dnn/enet-model-best.net"),ofToDataPath("dnn/classlist.txt"));
    segmentation.update(img.getPixels());
}
void draw()
{
    ofBackground(0);
    segmentation.draw(0,0,ofGetWidth(), ofGetHeight());
}

Install

1. Clone ofxOpenCvDnnSegmentation to your of/addon directory

$ git clone https://github.com/TetsuakiBaba/ofxOpenCvDnnSegmentation.git

2. Download OpenCV.framework to ofxOpenCvDnnSegmentation/libs directory.

$ curl -O http://tetsuakibaba.jp/tmp/opencv2.framework.zip
$ unzip opencv2.framework.zip

Or you may build your own opencv.framework from opencv source. ( https://tetsuakibaba.jp/ws/doku.php?id=opencv_dnn:opencv2.framework )

Getting Started with Examples/single_image_or_video.

1. Download models

$ sh getModels.sh

2. Update single_image_or_video with the projectGenerator. Please be sure to include ofxOpenCvDnnSegmentation and ofxCv

3. Run

Compatibility

Sample Images

ENET results, Inference time: around 70[ms]

sample02 sample03

FCN Result. Inference time: around 1,600[ms]

sample04

Licence

Author

TetsuakiBaba

Reference

  1. https://docs.opencv.org/3.4/d4/d88/samples_2dnn_2segmentation_8cpp-example.html
  2. ENET
  3. FCN

About

ofxOpenCvDnnSegmentation is an realtime segmentation addon for openframeworks, which uses opencv dnn modules.

License:MIT License


Languages

Language:C++ 83.5%Language:Makefile 11.4%Language:Shell 5.1%