LoginSignup
9
2

More than 5 years have passed since last update.

OpenSiv3DとLibTorchでカルピスの判定

Last updated at Posted at 2018-12-09

これはSiv3D Advent Calendar 201810日目の記事です。

はじめに

カルピス美味しいですよね。そこで今回はカルピスのボトルの写真から味の判定をするアプリケーションを作りました。

LibTorch+OpenSiv3D

LibTorchはPyTorchのC++ APIです。これを使えば、C++でDeep Leaningができます。OpenSiv3Dから、LibTorchを呼び出してあげることで、簡単にDeep Learningを使用したアプリケーションを作れます。(簡単に作れるとは言ってない

OpenSiv3D側

GUIと画像の前処理を請け負っています。

LibTorch側

PyTorchで作ったモデルを読み込んで、OpenSiv3Dから渡された画像から、カルピスの味を判定しています。

制作したアプリケーション

ウィンドウに画像ファイルをドラッグアンドドロップすると、勝手に判別するようになっています。
Screenshot from 2018-12-09 20-06-06.png
カルピス北海道はまあまあ美味しいですね。
Screenshot from 2018-12-09 20-06-30.png
自分は普通のカルピスが一番好きです。
Screenshot from 2018-12-09 20-06-51.png
カルピスの写っていない画像も判別するようにしました。

ソースコード

本記事で作成したアプリケーションのソースをあげときます。
https://github.com/MurakamiShun/CALPIS

奮闘記

そう簡単にできたら、困ってませんよwww

ABIのバージョンとCMakeファイル

まず、OpenSiv3DはC++17準拠で書かれています。
またLibTorchはC++11準拠で書かれているのですが、ABIのバージョンが古いため、そのままコンパイルするとOpenSiv3D側のコンパイルが通らないという問題があます。このABIのバージョンを_GLIBCXX_USE_CXX11_ABIで指定する必要があります。しかし、このフラグがLibTorchのCMakeファイルに書かれいるため、一度無効化して、LibTorchを使用しているcppファイルで再度宣言してあげる必要があります。これに気づくのにかなりの時間を要してしまいました。

PyTorch1.0の正式リリース

この記事を書いている途中にPyTorch1.0が正式リリースされました。これが12/8日のことでした。



オゥ...書きなおすか...(投稿2日前)

データセット

カルピスの画像って少ないんですね...
苦労しました。

9
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2