Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@shunEnshuu

OpenSiv3DとLibTorchでカルピスの判定

これは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
1
Help us understand the problem. What are the problem?