Pastime Diary

ある人の日常

【最優秀賞】Spajam2019福岡予選参加レポート

何についての記事か

6月1,2日でスマートフォンアプリのハッカソン「Spajam 2019」の福岡予選に参加して来ました。
参加レポートと共に、KPT(良かったことや改善点など)を振り返ります。

f:id:RIREX:20190606213044j:plain

spajam.jp

i.gamebiz.jp

参加レポート

令和最初のSpajamは私にとって3回目の参加でした。前回・前々回とも優秀賞で最優秀賞まであと少しといったところなので、優勝したい思いもありました。
そして今回、ついに最優秀賞を獲得できた要員としては、チームの力の側面がめちゃくちゃ大きいですが、前回の反省を役立てることもできた側面もあると思います。そこで、いつでも振り返られるよう記録としてこの記事に残して置きたいと思います。

0日目
チームメンバーとは作戦会議をするために、開始の前日に集まっていました。私は奈良から、一緒に参加した友人の「のぐたそ」は神戸、「りっち」は東京から集まり、合流したのは22時前。それから博多ラーメンを食べてAirbnbで取った宿に向かいます。


f:id:RIREX:20190606213054j:plain
博多ラーメン?

宿に到着しました。天井が低いです。ある人は2回ぐらい頭をぶつけてました。

f:id:RIREX:20190606165201j:plain
宿の前景

そしてぼちぼち作戦会議を開始。Spajamの2日間のタイムスケジュールを決めたり、GitやSlackのセットアップをして早めに寝ます。と思ったら気づいたら2時?! どうしてこうなった(^◇^)

1日目

AM 8:00
予定通りチームメンバー全員1時間半遅れで起床。。。急ぎ準備をして出発です。
開催場所はLINE Fukuoka(博多駅の隣)。宿から歩いて20分弱といったところです。

f:id:RIREX:20190606213044j:plain

会場に到着後、受付を済ませてしばらく自分たちの場所で待機。周囲には何度も全国進出を果しているチームや、本選経験者、IT企業のエンジニアやデザイナーなどがひしめきあい、混沌とした空気に包まれています。

f:id:RIREX:20190606213258p:plain

午前中はテーマが発表され、参加者全員でアイディアを考える時間です。
テーマは「ペット」でした。会場全体として集まっていたアイディアは、ペットを飼うこと自体大変だから敷居を下げたい。殺処分が多くて問題。ペットボトルもペットにすべき。飼われたい。等、色々な意見がありました。

午前中が終わると、2日目までのハッカソンがいよいよスタートします。早速チームで飯を食べに行きます。

f:id:RIREX:20190606165202j:plain
おかゆと担々


昼食後、道端でMonsterが配られていたので受け取ります。幸いでした。
ここからはそそくさにアイディアを確定して開発を始めたいところです。しかし、アイディア決めは簡単ではありません。
テーマに沿って、新規性があり、需要があり、かつ1日で実装・プレゼンまでできるもの。Hmm...

f:id:RIREX:20190606165146j:plain

私たちのチーム「NemuinGO」でもいくつかの意見が出ていましたが、最終的には犬の鳴き声から気持ちを分析し、飼い主に通知するアプリを作るということで方針が一致しました。私の実家で犬を飼っていて、吠えることが悩みだと感じていたことから出たアイディアです。好都合なことに、実際に犬のお困りごとランキングの1位は吠えることのようです。

PM 5:00
アイディアはまとまったので、実装に使えそうなAPIの検証をしていきます。

今回の技術的に検証しないといけないのは以下の項目。

・犬の鳴き声認識
・通知処理
・複数端末の連携処理


まず、通知処理をりっちが担当し、私とのぐたそで犬の鳴き声の認識を実装します。
ちなみに会場に犬を連れてくることはできないので、犬のCVは私がやりますw

のぐたそは、マイク入力から音量を取得する処理をしっかりと完成させていました。
吠える声の認識ですが、当初は人間同様APIの使用を考えていましたが、犬に適用すると考えると現実的ではないですし、波形を適当に閾値処理するだけでも簡単な認識はできそうです。
最終的には次のようにして3種類の吠える声(わん、わんわんわん、わおーーーーーーーーーーーん)を認識していました。
Step1 マイクで拾った音のdBを取得
Step2 波形を平滑化
Step3 平滑化した波形が-35dBを超えている時間で鳴き声の種類を判定

f:id:RIREX:20190606213344p:plain
横軸:時間,縦軸:音量(dB)

PM8:00
公式の定めた1日目の開発終了時刻。会場には残れないため、出発します。

f:id:RIREX:20190606165154j:plain
そして再びラーメン

PM9:30
宿に戻り、再び開発再開です。
Firebaseを用いた通知周りのほとんどをりっちが実装していたので、あとはこれを実際にスマホで動くようにしたりしてました。
この間、のぐたそはスライドを、りっちはデザインの作成を開始したりしていました。

AM 4:30
通知処理がひと段落したので一旦仮眠を取ります。みんなまだ起きてるのに申し訳ない.... (でも仮眠は大事です!)


2日目
AM 6:30
起床し、とっておいたMonsterを解放。最後の実装に取り掛かります。
Firebase Realtime Databaseを用いて、遠隔操作で音楽データを再生する処理を実装してきます。チュートリアルや実装例が多く、助かりました。

AM 8:30
遠隔操作での音楽再生処理がひと段落し、デザインの実装に入ります。

AM 9:30
2日間お世話になった宿に別れを告げて、会場に向かいます。

AM 9:50
会場のビルに到着。タクシーで向かったので昨日とは打って変わって、余裕があります。スタバでコーヒーを買って最後の戦いに備えます。

AM 10:00
会場に入り、のぐたそはスライドの仕上げ、りっちは技術仕様書の作成、僕は最後の調整とスパートをかけます。

AM 12:30
発表順も決まります。3番目!良いポジションです。

AM 13:30
いよいよハッカソン終了&プレゼン開始です!開発も無事終えて、プレゼンの練習もして、あとは臨むだけ!

プレゼンは機材のトラブルもなく、チームメンバーもスムーズに発表を終えました。
審査員の前で私が犬役をするデモも何とか?問題なくできたようです。

他のチームの発表も非常に練られていて、流石だなぁと思いながら見ていました。ただ、機材トラブルが多く勿体無かったように思います。
あと、個人的に次のスライドがつぼでした...

f:id:RIREX:20190606165152j:plain

こういった絵心が欲しい・・・!


そして結果発表です。優秀賞2つ、最優秀賞1つが発表されます。
鳴き声の解析、複数端末での連携、飼い主の悩みを解決するアイディアを取り込んだ私たちのチーム。優秀賞以上は取れたのではないかと期待します。


1つ目の優秀賞が発表されます。
チーム名:凸凹~Dekoboko~
アプリ名:BOTTLE PET
ペットボトルをペットにして、環境問題にも訴えている教育的に有益なアイディアが盛り込まれていたところが評価されたとのことでした。ちなみにチーム名の凸凹~Dekoboko~は色々な年齢やキャリアの人が集まっているからとのことで、このチームをまとめて結果を出すのは凄いことだと思いました。。。


そして2つ目の優秀賞が発表されます。
チーム名:やさしいP
アプリ名:身近なペット

細菌をペットにしようというコンセプトのアプリ。コンテスト期間中に菌の繁殖している写真をラベリングして機械学習をかけて判定できるようにするところまで実装したそうです。参加者全員、生物分野の方でプログラムを勉強して1週間目だとか、、凄すぎます。。。他分野(今回だと生物分野)を掛け合わせることも大切だなと思いました。


この時点で、残りは最優秀賞しかありません。
そして発表の瞬間、審査員と目が合います。私たちのチーム名が呼ばれ優勝が決まります。

あとで聞いた話ですが、審査員が付けた得点は並んでいたようですので、辛勝だったようです。

f:id:RIREX:20190606215813j:plain

それでも初の全国進出。チームに感謝しかありません。本当に誰一人がかけても、なし得なかったことだと思います。
日本一を取れるように、大会までの間も、アクティブにものづくりをして、経験を積みたいと思います。

ありがとうございました。

                                        • -

以下、簡単なKPTです

                                        • -

Keep
・事前に集まって準備をしていた

・開発のゴールを決めることができた (アイディアがブレなかった)


Problem&Try
・アイディアの出し方、決め方が具体的でない
→ これ非常に難しい。良い案があれば教えてください....

・不要な開発が入った
→ 完成に向けて、最優先以外のAPIは後回しにする