時間があったらハッカソン/ #ウィンターハッカソン に参加しました
こんばんわ。yamaです。
もう年末ですね。
先日の12/26,27に行われたウィンターハッカソンに、Cos5yearのメンバーで参加しました。
以前参加した「サマーハッカソン」「オータムハッカソン」と同じシリーズのサポーターズさんとVOYAGE GROUPさん主催のハッカソンです。
お題付きのハッカソン
今回、今まで参加した中ではじめてのお題付きのハッカソンでした。(今までフリーテーマだけだったのが驚き)お題は、「年末年始に楽しめるもの」というお題でした。
以前オータムハッカソンで優勝してしまっているので、今回は入賞はきついだろうということで、いつもとは嗜好を変えて「面白開発」や「無駄開発」、「技術の無駄遣い」を積極的にやっていこうという話になりました。
年末何をするという話をメンバーとしていて、だいたいゲームしているという結論になって一時はアイデアの煮詰まりかけたのですが、初詣や紅白などのキーワードから発展させて、「書き初めめんどい」という話になって、いい線なのではという話になり、アイデアを膨らませていきました。
作ったもの
今回作ったのは、入力した文字から、書道を書いているGIFを自動生成して今年の抱負を書き初めできる「HouFoooo」です。
由来は、「今年の抱負を豊富にしたい」という願いからです。
(諸事情あって、短い文字なら実行できると思います。「日」など)
仕組み
技術としては、Vue.jsのフレームワークのQuasar.js(おそらくハッカソンでちゃちゃっと作るのに向いている)と、PythonのOpenCV、Pillowなどです。インフラやホスティングはGCPのCloud FunctionsやFirebase Hostingなどを使っています。
また、今回は、書道の書き順生成にCycleGANを使って、それっぽいアニメーションを生成しています。
精度としては、書き順というところまではいきませんが、書いている感じは出せているのかなっていう感じです。機械学習を社会実装するのは難しいと感じました。
反省点
・時間が全くなかった
今回、全員が開発に入れたのが1日あったかないかぐらいだでした。1日を3営業日にする裏技を使いましたが、なかなかきついので、もっと時間を確保して参加したいです。アイデア会議や方向性会議も最初の方向決めるのみで、直前の1週間は全くできなかったので、そこは重かったです。
一番驚いたのは、朝4時にツイートしたら三浦さんからのいいねの通知が来て、一番驚きました笑
・GIF画像が特殊だった
今回、時間はそこまでかからないと思っていたのですが、案外GIFをcloud Functionsで処理するのがサーバーレス環境特有の難しさがありました。
GIFを保存する時、バッファに保存してそれをストレージにアップロードする形なのですが、そこでメモリをたくさん食ってしまって大変でした。画像であれば、だいたいなんとかなるのですが、動画となると処理の仕方をもっと考えるべきだったと思います。
・画像データのスクレイピングのミスの発覚が直前だった。
今回、書道の画像をスクレイピングで自動的に取得しているのですが、その過程でうまく取得できていなかったので、使える文字に制限が出てしまいました。「猪突猛進」とか「判断が遅い」とかデモで見せたかったですね。
バックエンドの機能
デプロイしたサイトそこそこ処理が重かったり弱々サーバーなので、colabで機能だけ抜き出したものを公開します。
https://colab.research.google.com/drive/1GCnFqgXlJgvFeDU_9vl9xqoIsHi4JeAn?usp=sharing
今年を振り返って
今年は、挑戦の年だったのかなと思います。コロナで部活が全くできなくて(おそらく山籠りしてたのでは…)
それが、ノリでハッカソン参加してみて視野は広くなったなと感じました。
来年はいい感じになるかな。
(スクランブル交差点のど真ん中にカラスがキョトンとしてる映像がゴールデンタイムに流れることはもうないでしょう)
良いお年を!