見出し画像

結婚式でLINE Botと画像解析を使った余興をしました

先日、結婚式を挙げました。
その中で、ゲストから写真をたくさん送ってもらうためにLINE Botを使った余興をしたので、その内容をご紹介します。

どんなものを作ったか

結婚式の専用LINEアカウントに撮影した写真を送ると、「幸せそうな写真かどうか」を判定、スコア付けする仕組みを作りました。

最終的にこのスコアでランキングを作り、スコアが最も高い写真を投稿したゲストは披露宴の中盤で表彰し、お菓子をプレゼントしました。多くの方に楽しんでいただけたので、やってよかったなと思っています。

ここからは、企画のいきさつ工夫したところ技術的な仕組み結果について順にご紹介します。

なお、このnoteは弊社の社内LT大会で発表した内容を再構成したものです。

* 2018/12/1 追記 ----
本記事と同様の企画を結婚式等で行いたい方は、お手伝いすることが可能ですので、 Twitter でお声がけください。
---------------------

企画のいきさつ

結婚式でなにかやりたい!と思ったきっかけは、2017年のiOSDCで@motokieeさんが発表した「結婚式を支えた技術」というセッションでした。私がゲストとして参列した友人の結婚式でも確かに写真はLINEのアルバムでしか送らなかったので、写真を共有するという取り組みは新鮮でした。

また、この企画そのものにも元ネタがあり、式の準備中に見つけたKokuhaku Inc.さんのnoteを参考、というかほぼ丸パクリした内容になっています。

より気軽に楽しんでもらうために工夫したこと

元ネタの企画を参考にさせていただきつつ、自分なりに工夫したり、逆に断念したりしたことをいくつかご紹介します。

1 - より気軽に参加してもらうために
2 - 笑顔以外の指標でのスコア付け
3 - 共有された写真のその後

1 - より気軽に参加してもらうために

今回は、結婚式用のLINE@(いわゆる公式アカウント)を作成し、ゲストの皆さんに友だち登録してもらう形を取りました。

参加者のLINEグループを作ってそこにチャットボットを参加させる形でもよかったのですが、見ず知らずの人と同じLINEグループへの参加に抵抗感を覚えるゲストもいると考えたためです。

もっとも、そもそもゲスト全員のLINEアカウントを知らなかったのでグループへ招待できなかったとか、任意参加にしたかった(参加しなかったことがほかのゲストにバレないように)とか、そういう理由もあります。

2 - 笑顔以外の指標でのスコア付け

今回、写真からの顔の抽出および分析には Amazon Rekognition という素敵なサービスを利用しました。APIに画像を投げると機械学習でいい感じに分析した結果が返ってきます。写真の奥の方にいる人の顔も認識するくらいなので、精度はかなり良いと思います。

顔の分析では人数や位置などのほかに「笑顔かどうか」が信頼度(0~100%)とともに取得できます。最初はこの信頼度をもとにスコアをつけようと思ったのですが、実際に使ってみると、それなりに笑顔で写っていれば信頼度が99%を超えてしまうことがわかりました。

そこで、今回は笑顔度ではなく、感情の分析結果からスコアを計算することにしました。Amazon Rekognitionでは7種類の感情が信頼度とともに識別できます。

- ポジティブな「HAPPY」が検出された場合は信頼度に応じてスコアをプラス
- それ以外の感情が検出された場合、感情のネガティブさと信頼度に応じてスコアをマイナス

するように設定。表情によってある程度点数にばらつきが出るようにしました。そのほか、3人以上の場合は一番低いスコアを除外して平均するなど、複数人でもある程度スコアが出やすいように調整しています。

なお、このあたりのスコアの条件は、ゲストにもやんわりと伝えています。機械学習などという表現を使うとびっくりする方もいらっしゃるので、スコア付けはLINEに潜り込んだ "Neko" がやってくれていることにしました。

調整不足だった点として、奥に写り込んでしまった人のスコアが含まれることがあったので、写真の中に極端に違う大きさの顔が抽出された場合、小さい方は除外するなどの対応をしても良かったかなと思います。

3 - 共有された写真のその後

共有された写真は、ほかのゲストが撮影した分も含めて、Webサイト上で閲覧できるようにしました。このWebサイトはLINEログインで入れるようになっており、結婚式アカウントを友だちに追加していないとログインできないようになっています。

本当は写真に点数をつけて投げ返したかったのですが、時間の都合で断念。その代わり、どの写真にどんなスコアが付いているか、また結婚式後に写真を見返すときにも使えるようにしました。

ちなみに、式終了後、zipファイルで写真をアップロードする機能も追加しました。デジカメで撮影されていた方が参加しにくい点は今後の課題です。

技術的な仕組み

LINE Bot部分およびWebサービスはレンタルサーバーでLaravelのアプリケーションを動かしていますが、画像の格納・分析部分は一応サーバーレス構成になっています。

Laravelでは、アップロードされたファイルをとても簡単にS3へ配置することが可能です(ファイルストレージ)。S3への配置をトリガーにLambdaが実行され、サムネイルの生成と写真の分析を行います。分析結果はアプリケーションに用意したWebhookに通知され、スコアの計算と結果通知が行われます。

ちなみに料金ですが、Rekognitionは無料枠で収まったため、AWSについてはCloudFrontの金額だけで済みました。結婚式は何かとお金がかかりますから、これはありがたいです。

どのくらい楽しんでもらえたか

LINEの友だち登録率は60%程度でした。ガラケーの方やLINEを使っていない方などもいらっしゃいましたが、思っていたよりも登録していただけたかなと思っています。

ちなみに、登録した方のうち3割くらいが当日の席次表に載せた告知を見て、それ以外の方は招待状に同封したQRコードから登録していただきました。

当日の写真は、2次会以降の写真も含めて当日だけで300枚以上集まりました。後日投稿されたものを合わせると、現在は400枚を超える写真が投稿されています。新郎新婦の写真だけでなく、ゲスト同士で撮影した写真も多く、いろいろな写真を見れて嬉しかったです。

LINEを使うことで気軽に参加でき、Messaging APIとAmazon Rekognitionを組み合わせることで楽しい企画を作ることができました。

最後に

最後に、私と同じように自分の式で技術的な余興を考えている方へ。
仕組み、UIやUXなどを考えると思わず余興の準備にのめり込んでしまいがちですが、それ以外の事務的な準備やアナログな準備もかなりの量があります。そちらを疎かにすると式が終わってから後悔しますので、お嫁さんに負担をかけすぎないようにどうか気をつけてください。ちなみに私は、前日まで調整やデプロイ作業をしていたため、ついに妻から「先にスピーチの内容を考えろ」と怒られました。

当然ながら、当日はスマホを更衣室などに預けることが多いでしょうし、非常に忙しいのでなにかあっても当日の修正はほぼ不可能ですので、技術が強いゲストの方に協力をお願いしておくとよいです。何よりも時間に余裕を持って準備されることをおすすめします。どうぞお気をつけください。

これからも仕事とプライベートの両方で、いろいろな人を笑顔にできるようなものづくりをしていけるように頑張ります。ちなみに、企画は他の方から拝借しておりますし、技術的にもさほど高度なことはしていませんが、もし詳しい話を聞きたい方がいましたら Twitter などでお声がけください。

この記事が気に入ったらサポートをしてみませんか?