unotoviveのメモ

あくあまで個人の見解です。

LabMart(のシステム)を作った話

この記事はCPS Lab Advent Calendarの8日目の記事です。

adventar.org

7日目の記事はこちら

dattiren.hatenablog.com

 

 

さて、本題に入ります。時間が無かったので使いまわしの資料ベースで話を進めたいと思います。

f:id:unotovive:20181208220951j:plain

おとべです。CPSLabの新B3として配属されました🎉

f:id:unotovive:20181208220959j:plain

f:id:unotovive:20181208221011j:plain

まずはLabMartって何ぞやという所ですね、簡単に言うとこちらです。↓

f:id:unotovive:20181208221019j:plain

一度は見たことある人が多いのではないでしょうか。

そうです。野菜の無人販売です。

LabMartとは研究室内でお菓子や飲み物などを無人販売するというアイデアのもと始まったプロジェクト(?)です。

f:id:unotovive:20181208221027j:plain

 

実際のLabMartがこちら↓

f:id:unotovive:20181208221035j:plain

結構いろいろな商品がそろっています。

お菓子や飲み物の無人販売というのはとても便利で私も結構な頻度で利用しています。

 

しかし

f:id:unotovive:20181208221043j:plain

このような問題がUXを低下させているなと感じました。

 

私たちは自称実学尊重✨の素晴らしい大学生なので、

f:id:unotovive:20181208221051j:plain

というわけで、現状を打破するシステムを開発した(ている)ので今回はその話です。

 

f:id:unotovive:20181208221058j:plain

まずは目指すもの、これは明確に挙がっていた現状の不便な点の改善のみです。

余計な機能を実装するよりも求める結果にまず第一に近づくことが大事です。永遠に終わらなくなってしまうからね

f:id:unotovive:20181208221106j:plain

明解!

 

続いてこれを元に実際にどのような機能の、システムを実装するかを考えます。

f:id:unotovive:20181208221113j:plain

今回はどちらかというと「ユーザー:購入者🏪」に重点をおいて考えています。

ピっ💳てやってピース✌すればお菓子が買えるの、便利じゃありませんか?

 

f:id:unotovive:20181208221119j:plain

というわけで実装をするにあたっての技術選定からです。

僕はVue しか書けない が書けるのでフロントはVueにしました。また顔認証で使うかなーとおおざっぱな理由でElectronアプリケーションとして開発しました。

バックエンドはラズパイでExpressです。

顔認証はPythonとかOpenCVとか凄そうですね、ちょっとよくわかりません。

f:id:unotovive:20181208221126j:plain

具体的に一つ一つ見ていきます。

まずは顔認証

f:id:unotovive:20181208221145j:plain

はい、未知の世界でした。

というのも今回は僕一人で開発しているのではなく、機械学習オタクに顔認証の実装をすべてやってもらいました。

となりで開発していたのですが未知の領域すぎてちんぷんかんぷんでした😿。そのうち勉強してみたいなとは思います。

 

続いてバックエンド。

f:id:unotovive:20181208221153j:plain

ラズベリーパイって普通にUbuntuとかと同じノリで使えるかなとか思っていたのですが、CPU等の関係で簡単にはインストールできないソフトが存在したりで結構苦労しました。

 

f:id:unotovive:20181208221201j:plain

『結局APIとして実装(要件等)』

↑は?って感じですね。

具体的には「Electronが起動しているのと同じPC内でFlaskのAPIサーバーが立っており、そこにhttp.get('localhost:3000/fay')的なhttpリクエストを送ると、受け取ったFlaskがカメラを立ち上げて顔を認識し、その結果をレスポンスで返す」、という訳の分からない実装になっています。何も考えずに始めたツケが回てってきましたね、、、ここは要改善です。

 

f:id:unotovive:20181208221211j:plain

です。じつは12月6日に開催されたドリコムエンジニア総選挙というイベントでこれを発表しました。それに間に合わせるために、期限付き限界開発となりました。

 

f:id:unotovive:20181208221217j:plain

登壇資料を使っているのでデモとか書いてありますがこれは記事なのでデモはありません。

ピッ→顔認証→決済までの流れを動画にとってみたのでご覧ください。

www.youtube.com

金額を押して決済ページに移動する瞬間にロードが入っているのがわかりますでしょうか。あれ、あの瞬間に顔を認識してユーザーを判別しているのです。はやい!!機械学習すごい!!

 

というわけで(色々と問題点が残るものの)大まかな形を実装することが出来ました。

 

せっかくなので設置もしました。

f:id:unotovive:20181208221242j:plain

このPC二度とつかいたくないですね。Surfaceもう一台買ってください。

 

最後にまとめです。

f:id:unotovive:20181208221300j:plain

f:id:unotovive:20181208221307j:plainf:id:unotovive:20181208221253j:plain

これが実現したことで当初の目的だった手ぶらで素早く決済が現実のものとなりました。

 

f:id:unotovive:20181208221314j:plain

今の現状だと顔「写真」とかでも認識できてしまうのでセキュリティガバガバですね、そのあたりや実際にシステムとして運用するための決済(チャージ)の部分等を改善していけたらなと思います。

 

 

f:id:unotovive:20181208221321j:plain

お昼寝をした後の進捗はとても出るので開発する際はお昼寝をしましょう。

 

以上になります。