ChocoballDetector:チョコボールを自動計測するWebサービス
概要
- 統計をとるためには多数のデータが必要
- でも、チョコボールの計測は意外と時間を使うしメンドイ
- ということで、個数を自動で計測するwebサービスを作った(以前作った、Faster-RCNNでカウントする仕組みをwebサービス化したもの)
- アクセスはこちら:ChocoballDetector
目次
はじめに
当ブログのメインコンテンツは、ピーナツ味のチョコボールの計測です。
重さを測ったり、個数を数えたりしているのですが、従来、それらは全て手動で行われています。
ということで、ずいぶん前に以下の記事をアップしました。
chocolate-ball.hatenablog.com
一般物体認識の仕組みを利用してチョコボールの個数を自動計測するというものでした。
しかし、作ったは良いものの、ぶっちゃけた話、実用していません。 なぜなら、写真を撮ってPCに送って計算させるという手間が単純に面倒だったから。。。
スマホアプリにするか、webアプリにして、スマホで撮影した写真をそのまま計測したい!
ということで、webアプリ作ってみました。
実はまだ問題あってスマホ撮影した写真のサイズ問題で実戦投入できてない(汗)
システム構成
全体概要は以下の通りです。こんな書き方であってるのかわからないけど。。。
(webアプリとか初めて作るんで許してください)
GCEにインスタンスを立ててます。
推定エンジンは、以前の記事と一緒で、chainer CVを使っています。 NNモデルはFaster-RCNNを使っていて、チョコボール画像にアノテーションつけたもので学習しています。
推定エンジンにつなげるためのAPIはFlaskで書いています。 サーバでHTMLを生成していて、CSSはBootstrapを使っています。
webサーバにはnginxを使っています。
クライアントのwebブラウザから、写真をPOSTして貰えれば、個数を自動計測します。 結果は、バウンディングボックスをつけた画像とチョコボールの個数を数値で返してきます。
実装
ソースはgithubにあげています。
プルリク受け付けてますよー。
詳しい方、お願いします〜。
ドメインの取得も初めてやってみたんですが、
お名前.comでドメイン取りました。
.jpドメインって高いんですね。
トップレベル・ドメインでの値段の違いが知れてよかった。
以下のURLにアクセスいただければ、試すことができます。操作方法は次章。
操作方法
ChocoballDetectorにアクセス
ブラウザからアクセスすると、以下の画面にたどり着きます。
写真を撮る
個数を計測したいチョコボールの写真を撮りましょう。 写真が無い場合、webに落ちてる画像でもなんでも良いです。
写真を選択してUpload
結果を確認しよう
Uploadすると、画面に何も変化はありませんが、計算してます。
だいたい30秒くらいかかると思います。
プログレスバーが出たりとか、必要だと思うのですが、私の技術不足でまだ実装できてません。
今後実装進めていきます。
結果は、上記の通りで、検出画像と個数が表示されます。
検出画像(中央右)は、チョコボールの箱とチョコボールを検出し、それぞれ赤枠で検出している部分を示します。
チョコボールの赤枠の数が下の方に表示されています。
そこそこ検出できるんですが、固まっていたり、照明が暗かったりすると検出ミスが多くなるようです。
サンプル画像を使って試す
ここまで操作方法説明してきましたが、チョコボール画像をすぐに用意できる方はなかなかいないのかなと思いますので、
サンプル画像用意してます。
アプリ上部のメニューからGalleryに移動してください。
気になったサンプル画像の下にある「これで試す」ボタンを押下していただくと、 30秒位で結果が返ってきます。
終わりに
ということで、チョコボールの個数計測アプリをwebアプリとして公開してみました。
これまではサーバで動作するデータ分析系のコードくらいしか書いたことが無く、
今回初めてwebアプリを作って公開するというチャレンジをしてみました。
なので、いろいろと実用に耐えられない点はいろいろあります。まぁ言い訳なんですけどね。
今後改良を続けていって、他のデータもインタラクティブに閲覧できるようにするつもりです。
というわけで、今後もご期待いただけたら幸いです。
参考文献
深層学習(機械学習プロフェッショナルシリーズ)
- 作者: 岡谷貴之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (13件) を見る
ChainerCV — ChainerCV 0.11.0 documentation
chainercvの公式ドキュメント。とりあえあずこれを見れば動かせるようになりますGitHub - chainer/chainercv: ChainerCV: a Library for Deep Learning in Computer Vision
chainercvの公式Githttp://flask.pocoo.org/
flaskのドキュメントhttps://getbootstrap.com/
bootstrapのドキュメント