今回は、カナザワオープンイノベーションハッカソン #ma_2017 金沢予選に参加してきたのでどんな感じか紹介します。
タイムテーブルなどはこちらから
カナザワオープンイノベーションハッカソン #ma_2017 金沢予選
1日目
インプット、技術プレゼン
始めにインプット、技術プレゼンがありました。
この時間にテクニカルサポート企業がAPIのプレゼンをします。
個人的には、ニフティクラウド mobile backendが気になりました。
アイデアソン&チーム決め
次にアイデアソンです。
下記のような流れで行いました。
- 特定のキーワードにあったアイデアを付箋に書く
- ↑を何回か繰り返す
- 同じ机の人と共有する
- キーワード無しで自由にアイデアを考える
- 同じ机の人と共有する
- いくつかのアイデアを捨てる
- 同じ机の人とアイデアを膨らませる
- 決めた1つのアイデアをアイデアシートに書く
次に各アイデアシートを見合って自分のものと似ているな~とか思った人は★をアイデアシートに書きます。
自分のアイデアに自信がある人はアイデアシートを持ってチームメンバーを集めます。
自分は、喰う席レーダーというアプリを開発するチームに入りました。
喰う席レーダーとは
喰う席レーダーとはお店の込み具合がリアルタイムでわかるアプリです。
製作タイム
昼ごはんを食べ終わったらいよいよ製作タイムです。
最初はMESHでやろうと考えていましたが、サーバーへの送信間隔が1秒からのみしか設定できないし、人がいるかいないかの検知しかできないので2人一緒に入ってきた場合などは1人と認識してしまう可能性もあるため、使わないことにしました。
そしたら、カメラで人数を認識しようという話になり、カメラからの顔認識した人数で混雑状況を表示することになりました。
顔認識にはMicrosoftのFace APIを使用しました。
サーバー作成担当になったのでサーバーと顔認識、人数保存のプログラムを作りました。
顔認識は下記のURLを参考にして作成し、顔ごとに割り当てられる「face id」が何個あるかによって人数をカウントするようにしました。
Face API PHP Quick Starts
ここで、少し困ったことが。
Face APIのAPI Keyを正しく入力しているのにAPI Keyが正しくないと怒られます。
実はFace APIを設定したリージョンによってURLが違うんですね。
Face API - V1.0
↑のドキュメントにリージョンごとのURLが記載されています。
今回設定したのは東アジアなのでURLを変更すると顔認識ができました。
次にカメラ側から送られてきた画像をサーバーにアップロードして、顔認識をかけて人数をテキストファイルに保存するという処理を書きました。
時間がなくてMySQLに保存などはやっていません。
あと、デザイナーさんにWebページのテンプレートを作ってもらいました。
ある程度の処理を書き終わったら、チームでお店の混み具合の画像も表示させようという話になりました。
ということで、処理をちょっと変更。
顔認識解析後の画像を破棄せずに保存するように変更しました。
1日目はこんな感じで終了しました。
2日目
製作タイム
2日目は製作タイムから始まります。
まず、カメラとサーバーの連携から始めました。
最初はOpenCVで撮影→POSTで送信というのを考えていたのですができませんでした。
最終的にはこうなりました。
fswebcamで撮影→curlでPOST送信。
知らなかったんですがLinuxではfswebcamという便利なコマンドがあるんですね。
教えてくださった方ありがとうございます。
fswebcamでの撮影は簡単に出来ましたが、curlでのファイルのPOST送信がなかなかできません。
サーバーのログを見るとPOSTは来ているのですが、400 Bad requestを返しています。
ネットでいろいろ調べたらサンプルがあってそのサンプルのnameなどを変更するとファイルが送信できました。
とりあえずプロトタイプは完成しました。
その後、画像にモザイクを入れて肖像権の問題を解決しようという話になり、画像にモザイクを入れるサンプルプログラムを教えてもらいました。
が、
プログラムを手動で動かすとモザイクをかけられるのですが、解析プログラムからincludeすると動きません。
ファイルの場所なども考えましたが、どう試しても動くことはありませんでした。謎です。
2日目の製作タイムはここで終わりました。
発表 & タッチ&トライ
喰う席レーダーの発表では最後の一言を言うことになりました。結構緊張しました。
最後の一言は「サーバー側をやってみましたが、たくさんのAPIなどが触れてよかったです。ありがとうございました。」的なことを言いました。
そして各チームの発表を聞きました。
その次はタッチ&トライです。いろんなチームのアプリを実際に試すことができる時間です。
「すてきにホームページ」と「アイデア × ジンコウチノウ = ・・・」というアプリを見ました。
懇親会
ちょっと軽食を食べたり、名刺を交換したりしました。
https://twitter.com/fukusaka291/status/922038283919441920
うまかったです。
そして企業賞と最優秀賞(準決勝への進出権)の発表がありました。
喰う席レーダーは選ばれませんでしたが、とても楽しかったです。
終わりに
めっちゃ楽しかったです。
いろんな知らなかったAPIやサンプルを教えてもらってよかったです。
やっぱり、ハッカソンって楽しいなぁと思いました。