Help us understand the problem. What is going on with this article?

OpenSiv3DとLibTorchでカルピスの判定

More than 1 year has passed since last update.

これは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日前)

データセット

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした