メイドさんとハッカソンしてきた #androidtao

昨日(9/29)の【UEC】Android道ハッカソン【Android】 #AndroidTao : ATNDに行ってきた感想とか。

当日までの話

twitter:@numa08*1android初心者向け勉強会とか開くんだけどどーすか、的な誘いをもらい、4月ぐらいから一応サポート役として計5回ほど参加してた。
ノートPC持ってなかったのでコードは書いてなかったけど。
その頃から「そのうちハッカソンやるか」とか「アキバ支部とやる」みたいなことを言っていて、ふーんまあ俺ノートとかないしって感じだったんだけど、*2結局参加することにした。
ハッカソンとか初めてだったけど緩そうだし元あるアプリの改造ならなんとかなるかな、っていうノリだった。

当日

 atnd側にも知らない人が多かったけどそれ以上にアキバ支部+メイド側の構成が謎だったのでビビりながら会場へ。
会場ついたらメイドさんがプレゼンの練習してた。謎光景。最初にメイドの方々がベースとなるお絵かきアプリで作ったことをプレゼン。美白とかモザイクとか。あれ…普通にすごくね?
 適当に座った席でそのままチーム分けされ、埼玉支部長でもある進藤さんや上の勉強会のとき知り合ったtwitter:@kamedon39 、コンサルなどしているというダンディな雰囲気ただよう入野さん、遅れてtwitter:@7aguchiにメイドのきりさん というチーム。
 僕は、色が赤青しか変更できないみたいだしカラーピッカー乗っけるかーとかスタンプ機能とかかなーと凡アイデアしか持ってなかったので、きりさん中心に案を色々出してもらって、最終的に端末振り振りして福笑い的に顔が崩れる、という楽しげな機能を作ることに。
 顔検出に加速度センサーに、もちろん画像操作と、あまり使ったことがない分野のオンパレードでかなりヒヤヒヤしながら進めていった。
自分が担当したのは撮影した画像から顔検出して各顔パーツを切り出す部分。ところが
 「え…顔検出って顔全体の範囲や各パーツの位置を取れるわけじゃないの…?」
という割とショッキングな事実に、ひとまず目の位置関連は取れるようなので目の位置を動かすのを目指すことにした。
まず目の位置を検出->適当な範囲を目として囲う->範囲の画像コピー->動かす というながれ。
って書くと簡単だけどやってる時は結構必死系だった。
顔検出のテストと称してメイドさんの写真を撮りまくった。そうか今日はこのために(

完成

 目を切り抜く(ぇ とこまで作ったらtwitter:@kamedon39担当のセンサー部分とマージ。振り方によって上下に目を動かす。端末を持って縦に振ると下に落ち、奥に振ると上がっていくという仕様になった。コピーした目画像動かす部分担当は、環境的に厳しい感じだったしマージだるそうだしということで、ぐぐっていた情報を参考に僕がでっち上げた。
 画像は、写真もその上のお絵かきもCanvasに描画してあって、動かした目もこの上に描画したんだけど、このへんは顔検出とかよりもむしろ大変だったかもしれない。
このへんは理解不足でかなり無駄が多くなったんじゃないかと思う。ともかく完成したので良かった。
 プレゼン資料は完全に進藤さんに任せてしまっていて、他にも進行、実装方法の提案、とサポートに徹して頂いて、さすがの役回りという感じで本当に助かった。進藤さん本当にありがとうございました!

プレゼンとか


プレゼンの順番を決めている 左からしおんさん、numa08、きりさん、エリカさん
このへんはたぶんアキバ支部の方で記事に上がるのではないかと思うので軽く。

  1. 主催チーム
    カメラでとった人がニュータイプかわかるらしい。俺はニュータイプだったのだ…
  2. きりチーム
    我々チーム。 なぜかプレゼンで俺が被写体になり謎のゾンビ写真を晒される。 こういう時のメイドさんではぇ…
  3. しおんチーム
    最近話題の添い寝に乗っかり、アラームで添い寝とかできるらしいアプリ。お絵かきはどこへ
  4. エリカチーム
    メイド喫茶でサインしてもらいスタンプがわりになる(予定)。スライドのタイトルはすごいこってた。完成してたら普通によさそうだった。

あとはそれぞれ感想とか言ってひとまず締め。その後片付けながら一緒に撮影的な何かとかしたあとメイドさんは帰って行きましたとさ。
その後体育館前で暗い中ピザという不思議な打ち上げをしてお疲れ様でした。

まとめ

 他の人も言っていたけど、やはり自分でやってると「(簡単に)できそうかどうか」って基準で考えちゃったりするのあるの気をつけたいですね。
今回こういう場で大変そうだなーって実装を時間制限の中で他の人と一緒にやっていくっていうのは新鮮で良かった。
初心者マカーのハッカソンデビューとしては上出来だったと思う。またこういうのでてみたいなーっと。
主催numa08とアキバ支部の方々、メイドのお3方そして各チームもみなさんおつかれさんでしたー!

余談

メイドさんって普通は撮影NGらしい、知らなかった。当日は特別オッケーだったそうで。でも触らないでください、連絡先とか聞かないでくださいとか物騒な世の中だなあと思いましたまる
あとテストと称してメイドさんの写真を撮りまくったと書きましたが、お絵かきアプリ経由でとったこれらの写真はどうもうまく端末に保存されていなようで、呼び出したカメラも行儀の良いアプリだったのか、端末に2重保存等されていないようでした。残念ですね。ちゃんと写真選べばtwitterにあげてもいいという話だったんですがあんまり取れませんでした。
メイドと聞いてビビっていたけどいい意味で普通でとても良かったです
っていうかメイドさんとあんまり交流してないですねはい。きりさん->http://ameblo.jp/kiri-kiririn/page-3.html

技術的なメモ

  • FaceDetectorは目関連しか取れない。ICS以上だともっと出来るらしい。Cameraプレビューの顔検出はいろいろ取れる(今回は使えない)
  • 目を切り取った(正確にはコピーした)あとにその位置を福笑い的に塗りつぶしたかった。今回は単純に
        canvas.drawBitmap(mBackBmp, src, dst, null);

とした。dstは目の範囲の矩形で、srcはその一番下の一列。つまりmBackBmp(顔画像)の目の範囲一番下の一列を引き伸ばして目の部分全部埋める。目が綺麗に取れてると良い感じにのっぺらぼう的になる。Canvas,Rect,Bitmapあたりはもうちょっとちゃんと知っておきたいなー。ごちゃっとしか書けなかった。

  • やんざむさんのColorPickerためしに入れてみたらちっちゃく左によったピッカーが出てきたけど何が問題なのかよくわからなかった。
  • githubにおいておきましたので欲しい方はどうぞ。

*1:去るABC2012Sで、スタッフと称してぶらついていた僕が、「電気通信大学」という非常にざっくりとした団体名(普通○○研とか書くだろ…)で出展していた
彼に「ちょっと何やってんのこれ」的に声をかけたのが最初の縁だった。

*2:いろいろな状況的にいい加減ノートが欲しかったのでMBA11'を購入してnewbieまかーになったので