高専プロコンとComputer Vision

この記事はComputer Vision Advent Calendar 2012の12/6の記事兼sakanazensen先輩への誕生日プレゼントとして書かれました.

高専プロコンとは

全国高等専門学校プログラミングコンテスト(ぜんこくこうとうせんもんがっこう─、プロコン)は、高等専門学校連合会の主催するプログラミングコンテストである。 高等専門学校のプログラミングの学習意欲向上のため、高専の教員が中心となって開催されている。(Wikipediaより引用)

高専プロコン公式Webページ:全国高等専門学校プログラミングコンテスト - Official Site

つまるところ,全国の高専生が自分たちが持っているアイデアと技術を結集させて作るプログラミング(アプリケーション)のコンテストです.

毎年,

  • 与えられた抽象的なテーマをもとにシステムを作成する"課題部門"
  • 自分たちの好きなテーマをもとにシステムを作成する"自由部門"
  • 出題された具体的な課題を解くシステムを作成する"競技部門"

の3つの部門に分けられて開催されています.

高専プロコンとComputer Vision

僕はこの高専プロコンとComputer Visionは切っても切れない関係にあると思います.
高専プロコンは(競技部門を除き)実生活に役に立つ便利なアプリケーションの開発を求められます.
そしてComputer Visionの技術には以下のような特徴があると思います.

  1. 画像,動画は人に対してわかりやすく情報を伝えることができ,人はよくその保存を行う
  2. Webカメラなどの機器を用いてデータを入力することはアプリケーションを利用するユーザにとっては手軽だが,その中には多くの情報が含まれる

以上の理由から,Computer Visionの技術は実用的なアプリケーションを作るのに向いている→高専プロコンで利用されやすいという結論を導くことができます.

実際に僕が参加した過去4回の大会のうち,Computer Visionが関係している(と思う...)を数えてみました.

(現在集計中.blue_jamの頑張りにご期待ください)

(「Computer Visionを利用しているアプリケーションが多いことがわかると思います.」とここに書きたい.)


また,高専プロコンは「今何が情報業界で流行っているか」を表すものだとも思います.流行っている技術は多く利用されすいです.(入賞するかどうかは別として)
次の表に,何年の大会にどのような技術が多く使われているか,よく目につくかをまとめてみました.(資料が提出されるのが5月なので,その年の上半期に流行っている技術だと思ってください)

技術
2012 スマートフォン,タブレット端末,SNSKinect
2011 スマートフォンKinect
2010 AR
2009 AR

(私見を多分に含みます.提出された資料がテキストデータで全部取得できれば解析をするんですが.)


高専プロコンにおけるComputer Visionの課題

しかしながら,流行っている技術というものは"高専生から見て"です.前向きにとっても,"その学校のプロコン担当の先生から見て"です.先端を行っている技術とは遠く離れたものでしょう.


高専生が実装できる画像処理などの技術は高がしれています.(うちの学校でComputer Vision関係をやるのって最高学年の5年生=大学2年なんだぜ.プログラミングを高1からやってるわりにレベル低すぎだろ.)

今年の競技部門はテーブルに置いてあるサイコロを1.5メートルぐらい離れた位置から数えるお題で,実質 超音波,レーザー,Kinect不可だったのですが,決勝の時点で残っていたチームが(実質)人力しかいなかったらしいです.もうこんなのプロコンじゃねえだろ,どこにプログラミング関係してんだよ,優勝チームとか通行人の数数えるカウンタを使ってやってたぞ.大体ルールがおかしいんだよ,人力ありにするとか馬鹿じゃねぇの,(自主規制)

そこで,Computer Visionの道を突き進む人達には次のことをお願いしたいです.

  • 布教して!
    • TwitterとかのSNSでもっとフォロワーを増やして(bot見たいになっちゃっうのがいやだったらアカウントを別に作ってでも...)Computer Visionについて熱い思いを思う存分語りまくってください.
    • 毒舌な妹botが流行っているのでComputer Visionの毒舌な妹botでも作ってみてください.
    • 卒業した学校の先生(高専に限らず,高校のコンピュータ部顧問でも大学の先生でもいいので)に,「今こんな技術が流行ってるんですよ!学生さんにやらせてみたらどうですか!?」と連絡しまくってください.
    • プロコンに参加している(していた)人(SNSやってる人はプロコン関係者であることを書いていることが多い)に「今こんな(ry」といいまくってください.(スパムと間違われないように注意)
    • プロコンに参加している人と仲良くなったら積極的に「技術相談にのるよ」と申し出る.(余裕があればでいいので...)
    • パイプができたら勉強会にどんどん誘おう(学生なので資金面が問題だが...)
    • Computer Vision入門のサイトなりメーリングリストなりがあればいいんだけど(チラッ
    • 近くで高専プロコンがあったら是非行ってみてください.(来年は北海道orz)
  • 新しい論文読んで感想をブログに書くときに次の要素を書いてくれるとすごくうれしい(特に英語の論文.高専生は英語が比較的苦手であるので)
    • どのようなアプローチなのか
    • どのような風に使えるのか
    • 実装がどれぐらい難しいのか(自分の感覚,予想でいいです.)
    • 精度がどれぐらいあるのか(大雑把でいいです.)
    • 関係がありそうな論文(わかる範囲で.日本語だとなおよい.)
  • 大量のサイコロを有効に使う方法を考えてください.
    • プロコンのせいで数百単位で買ったのにあまってて困ってます.

こうすることで高専生がより情報をキャッチし,学ぶことができる機会が増えると信じています.


技術はすそ野が広いほど全体のレベルが上がるものだと思います.
「コンピュータ+カメラ(写真でも何でも)でこんなすごいことができてるんだ!」「この技術はComputer Visionのおかげで成り立っているんだよ!」という情報は技術好きの心を刺激することでしょう.


勉強は若いうちから始めた方が身につきやすいという説もあります.
情報系高専生は(一般的な高校生と比べれば比較的)コンピュータに興味が豊富な人達です.
その中でプロコンに参加する人達は特に技術に関心がある人達でしょう.
高専生という名の技術者の卵にComputer Visionの素晴らしさを伝えてやってください.その中から日本(大げさに言うと世界?)におけるComputer Visionの第一人者が出てくるかもしれません.

いかがですか?若者に技術を伝えることの素晴らしさがわかっていただけたでしょうか.


わかっていただけた方は手始めにComputer Vision入門者へお勧めの本,ブログ(記事),Webページをここの記事のコメントでも,私へのリプライでもいいので紹介してください.

入門者といってもせいぜいフィルタとか,ラベリングのアルゴリズムとかが理解できてるぐらいです.
CUDA関係もいいですよ.最近興味をもつことがあったので環境だけはそろっています.
Computer Vision関係の論文で出てくる学術用語,数学用語,記号とかが独特で困っています.そんな奴におすすめな数学書とかもうれしいです.



最後まで読んでくれた方にお願いです.
「サイコロ数えるのに手動でやったやつに負けるのかよ.情けないな.俺がやったらもっといい方法使うぜ.」と思ったら,高専プロコン第23回有明大会 募集要項→一式(pdf注意)→競技部門ルールを読んでください.
やっぱこの方法が使えると思ったらこっそりblue_jamに教えてください.
実装してComputer Vision界からの刺客ということで見せつけてくるので.(プログラミングも手伝ってくれると嬉しいかな.)