2月に参加したハッカテンで開発した家族写真撮影システムについてのまとめです。
「ハッカテン」とは?
ハッカテンは読売テレビの企画で、「オープン・イノベーション」が生み出す無限大の可能性を追究する特別番組で、大阪城と海遊館を舞台に、企画から現地でプロトタイプの発表までを追ったドキュメンタリー番組です。
「ハッカテン」や僕が参加したチームの企画である「おおさかな大学」の全体像については、公式サイトやチームリーダーの記事もご覧ください。5/8まで見逃し配信実施中です。
開発のきっかけ
「きれいな家族写真を撮影してあげたい」という海遊館の方の思いが開発のきっかけです。
館内は展示のために照明が抑えられており、またフラッシュ撮影禁止であるため人物が暗くなりがちです。
その課題を解決するために、人物と水槽を別々に撮影し合成するシステムを考えました。
使用した機材
- OLYMPUS AIR A01
- ヒューマンビジョンコンボ家族目線
- Raspberry Pi 2
人物と水槽を別々のカメラで同時に撮影するという仕組みが必要であったため、SDKが公開されている OLYMPUS AIR A01 を利用しました。
また、普通に撮影するよりも笑顔の検出をきっかけに撮影をした方が面白いのではと思い、家族目線と組み合わせています。
機材の貸し出しをしていただいたオリンパス様、オムロン様、ヤフー様(myThingsハンズオン用Raspberry Piセット一式)、栄和様(ダンボ&IoTバッテリー)、改めてお礼申し上げます。
仕組み
家族目線の笑顔検知をトリガーに2台のOLYMPUS AIRで写真を撮影し、その写真を合成します。
2枚の写真はOpenCVを使ってクロマキー合成しました。
人物撮影用と水槽撮影用機材が離れた場所にあり、同一ネットワークにできなかったため、Firebaseを使ってイベントの通知を行っています。
開発にあたり悩んだこと
今回の開発で一番悩んだのは、「どうやって2枚の写真を合成するか?」という部分です。
色々と調べていたところ、ガチャピンが消えたというニュースを見つけクロマキー合成を使うこととしました。
【放送事故】生番組のクロマキー合成でガチャピンが消える珍事発生!!
今回はクロマキー合成を使いましたが、撮影用機材の準備、設営が必要なので別の方法で合成できないかと考えています。
ハードウェア制御については、OLYMPUS Air, 家族目線共にサンプルが充実しており、それをベースに開発したため、ほとんど苦労することなく開発できました。自分で書いたコードは全部で300行もないはずです。
開発とは全然関係ないですが、校歌のレコーディングもなかなか大変でした。
本番当日
テザリングや自宅WiFiでは問題なく稼働していましたが、当日用に調達したモバイルWiFiルータ経由でRaspberry PiからFirebaseやAWSへ接続することができませんでした。
もう少し時間をかければ解決できたと思うのですが、他の準備もあったので調査を打ち切り、水槽側カメラでのトラブルに備えて事前撮影しておいた水槽写真と合成することで対応しました。
感想
家族写真撮影については、本番当日に水槽側システムが使えないという状態になりましたが、「おおさかな大学」に参加していただいたお客様には、用意したコンテンツを楽しんでいただくことができ嬉しく感じています。
当日オペレーションの重要性、電源とネットワークがないとほとんど何もできないということを身をもって学ぶことができました。
現地確認の為に何度も館内をご案内してくだたった海遊館の皆様、撮影・機材調達、その他色々とお世話になった読売テレビの皆様、そして企画から開発まで1ヶ月を共にしたチームの皆様、ありがとうございました。