2016年3月13日日曜日

LSI設計コンテストで受賞しました(大賞とは言ってない)

LSI設計コンテストに参加してきたので報告

LSIコンテスト

沖縄県で開かれ,日本の大学だけでなくアジアの大学からも参加者がいる,
CPU(など)の処理系の技術を競い合うコンテストに参加しました.
http://www.lsi-contest.com/

去年,先輩が「三角関数出力処理系」のコースで参加しました.
自分も大会に駆けつけ,先輩の活動を目にしていました.

先輩が頑張っていたように,自分も頑張ろうと,
心に誓いいざ迎えた開発期間は大変でした.
そう,地獄の(ほぼ)ワンオペが待ち構えていたのです.

今回は大変だったことを4つほど紹介します.

大変だと思ったことその1 : めっちゃソフトウェアっぽい開発

LSIコンテストは,名前から分かる通りハードウェア系のコンテストです.
歴代のタイトルを見ても分かる通り,
「三角関数出力処理系」「RSA暗号復号化」「ディジタルFM受信機」
など,いかにもハード寄りで楽しそう!
そう思っていた時期が私にもありました.

今回のタイトルは「人体検出及びテンプレートマッチング」
最初見て,むっちゃきつそうだと感じました.

307kバイトのメモリを自分で作って,
メモリアドレッシングドライバを自分で書いて……
ハードウェアだけでソフトウェアが無意識のうちにハードウェアにさせている処理と同じ事させようとしたらアカン(技術不足)
まさかソフトウェア系で来るとは思ってませんでした(慢心)

大変だったことその2 : ワンオペ開発

三人の内,二人が自練に通いました.
うち一人は宿を提供してくれ,もう一人は論文にのせる図を書いてくれました.
開発は自分一人です.論文作成と当日の発表も一人でしたツラァ

図を書いてくれた人も最初は一緒に手法を考えたりしたのですが,
途中から自練の合宿に行きました.
この人が合宿へ向かったあとから手法を思いついたので,さあ大変.
まさかのワンオペ開発始まります.

大変だったことその3 : 肌色検知

開発できる時間が3日しかなく
とりあえず,「人体検出なら肌色を検出しよう!」となりました.
さっそくRGBからHSVへ変換する式を見つけてきました.

除算器と乗算器が必須で,回路規模が大きくなり
日数が少ない開発期間ではとても厳しいことに……

仕方なくHSVへの変換を諦めて,RGBの比較だけで肌色を検出する回路を作りました.
思いついたが最後,二時間の地獄が待っていました.

肌色と認識させる範囲がとてもとてもシビアでした.
素直にHSVを使うべきだったと思いながら,二時間ずっと範囲調整を失敗しては訂正失敗しては訂正を繰り返しました.

大変だったことその4 : 孤独な戦いを強いられているんだ!

論文を書くのも発表資料を作るのも当日の発表も一人でした.
他のメンバーはふたりとも隔地にいるので,
しかたなく一人で論文を書き(先生に大いなるサポートをいただきながら)
発表資料を,コンテスト前夜に作り,ほぼ練習無しで当日発表し,
見事賞状をもらえました.

なぜ人は過ちを繰り返すのか

めっちゃ短い開発期間・スライドもほぼ前日に作った・練習を積んでいないのでとても辛い
どこかで似たような経験しましたね.そうですプロコンです.

短期間で頑張ったつもりでも,やはり他の開発チームに比べたらただの間に合わせでしかなく,
賞がもらえただけでもありがたい,といった心境です.

来年度の抱負

正直に話すと,今回の結果はダメダメだと思います.
もっと勉強してもっと力をつけて,来年も参加して上位入賞したいです.

今日からまた勉強頑張ります!