GoogleのObject Detection APIのチュートリアルをやってみる
チュートリアル動かしただけのクソメモですわ。
GoogleがTersorFlowで物体検出するためのAPI(ってほどキレイに整備されてる感じしないけど)を公開してた。
https://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html
チュートリアルのjupyterではSSDというアルゴリズムを動かしていた。
既にKerasやCaffeなんかでの実装も公開されてる。
ディープラーニングな物体検出の歴史(ってもここ数年の話だけど)については下記を見るとよさげ。
http://tech-blog.abeja.asia/entry/object-detection-summary
SSDは精度、処理速度ともにイイカンジなアルゴリズムっぽいですね。
スゴい。
基本的には必要なライブラリインストールして、チュートリアルのjupyter notebook立ち上げてrun all
したら終わり。
当方、にわかDockerファンなのでDockerでやった。
まず、ソースコードとってきて…
1 |
git clone https://github.com/tensorflow/models.git |
次のようなDockerfileを用意する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
FROM python RUN apt-get update && \ apt-get install -y \ protobuf-compiler RUN pip install \ tensorflow \ pillow \ lxml \ jupyter \ matplotlib EXPOSE 8888 CMD bash -c "cd /hoge && protoc object_detection/protos/*.proto --python_out=. && jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --notebook-dir=/hoge" |
で、buildしてrunですわ。
1 2 |
docker build . -t [任意のタグ名] docker run -it --rm -p 8888:8888 -v $PWD:/hoge [任意のタグ名] |
これでjupyter notebookが立ち上がるはず。
object_detection_tutorial.ipynbを開いてrun all
してしばらく待つと…
あら、かわいい。
ちゃんとビーグル氏が検出されてますね。
test_imagesってフォルダがあるので好きな画像入れて物体検出させてみましょう。
こんな画像で試してみると…
ちょいちょい間違いはありますが、なかなかいいかんじですね。
このチュートリアルの内容はTensorFlowで作成済みのモデルを使って物体検出させてるだけです。
画像を配列化したり、検出した物体にラベル名を付与したりするヘルパーコードを定義したり、読み込んだりしているため、パッと見は煩雑な感じですがやってることは超シンプル。
『物体検出してXXXしたい』っていう要求もTensorFlowとモデルを用意すれば即対応可能です。
ただ、作成済みのモデルは検出できる物体の種類が決まってます。
なので、独自の物体検出(例えば…こんにゃくゼリーを検出したい、とか)をしたい場合はデータセット作って学習させる必要があります。
その辺の学習周りをわりとスムーズに実現できるようなAPI(?)もあるっぽいです。
独自データセットの学習やってみたい。
336px
336px
関連記事
-
-
MacでKerasを使えるようにする
Ke …
-
-
deepdreamしてみたい
ht …
- PREV
- Mastodonインスタンス(お一人様用)を作り方メモ
- NEXT
- 夏こそニットという選択