OpenCV/OpenGLによる映像処理(3年後期実験課題)

2016年度の優秀作品

Amazon Image Search 栗田 啓大 くん

説明:本のカバー画像から作者とタイトルを取得し,その本をAmazon.comで検索するシステムです。

TAのコメント:本の著者名やタイトルなどの検索に有用な語句を精度良く抜き出すための工夫や,1つのウェブアプリケーションとしての完成度の高さが高い評価を得ました。発表では,映像に写った本の認識から検索まで行われる様子を実際に披露してくれました。

写真の遠近感強調 小杉 哲 くん

説明:画像のぼけ具合から奥行きを推定し,それを利用してぼけを強調することで遠近感をつけるプログラムです。スマートフォンで実行できることを目指して高速化を試みました。

TAのコメント:平滑化前後でのエッジの鈍り具合の変化を利用した,独自の奥行き推定アルゴリズムを組んでくれました。ノイズ除去や補間などの細かい部分についても計算時間を減らす工夫がなされており,通常よりも短時間での遠近感強調が可能な完成度の高い作品となっていました。

音声の視覚的表現 田中 大揮 くん

説明:音声を取り込んで,その周波数に応じた波をカメラ映像に映し出します。 波は検出した口から立っているように見えます。また,ランダムに出力される音声に対して同じ高さの声を出す音痴矯正ゲームもあります。

TAのコメント:より正確に口から波紋を出すために,位置推定による口の検出精度の向上や丸みのある波の表現を行ってくれました。また,声のピッチによって波の波長を変えるなど,音声の視覚化のための工夫も見られました。発表では自分で声を出してデモをしていたのも印象的でした。

花火シミュレーション 加藤 尚輝 くん

説明:OpenGLのalpha値の混合処理を利用した花火のシミュレーションです。打ち上げスケジュールを入力したり,キーボード操作で花火を打ち上げることもできます。

TAのコメント:実際の花火に近づくよう,飛散する火花の球面均等配置や色の混合処理,重力の再現といった様々な工夫がなされていました。数種類の花火が実装されており,見た目にも非常に綺麗な花火シミュレーションになっていました。

DARUMA 競技だるまさんがころんだ 横瀬 哲也 くん

説明:子供遊び「だるまさんがころんだ」で問題になりがち(?)な,「鬼ではない人(=子)が動いたか,動いていないか」を定量的に測定して表示するプログラムです。2つのカメラを使用し,一方は鬼の顔を撮影して「鬼が振り返ったかどうか」を顔認識の手法を用いて判定します。もう一方のカメラは子を撮影し,「子がどこにいるか」および「子がどれだけ動いたか」を背景差分と輪郭検出を併用して判定しています。

TAのコメント:しばしば喧嘩の種になる「動いた」「動いていない」を,検出した顔領域を用いた独自の判定手法によって定量評価していました。発表時には鬼の振り返り映像を予め用意しており,一人でも「だるまさんがころんだ」を遊べるようにしてデモを行っていたのが印象的でした。

Aircraft in the cave 関根 歩 くん

説明:謎の飛行物体VICを操作し,おちてくる岩を避けながら洞窟の奥を目指します。時間と共に洞窟は狭くなっていくので,できる限り早く進みましょう。軌跡を蓄積バッファで表現し,壁や岩をパーリンノイズで表現しました。また,人のみた感じに合うようにライトや判定をうまく配置しました。結果として岩の隙間をダッシュで抜けるのが楽しくなっています。

TAのコメント:蓄積バッファによる残像の表現や,奥の方ほど暗く見えるような光源設定など,よりグラフィックが綺麗に見えるような工夫が凝らされていました。また,パーリンノイズによる地形生成や当たり判定の調整など,ゲームのリアリティ向上にもこだわって作ってくれました。

立体ピクロス自動解答機 三橋 遼 くん

説明:立体ピクロスの3面のヒントが与えられたら,答えを探してくれます。その探索の様子を,モデルを表示しながら見せてくれるアプリケーションです。

TAのコメント:パズルのソルバーを実装し,答えの形が現れるまで順に解かれていく様子を示してくれました。ブロックが徐々に透明化されて消えていくなど,演出面においても工夫が見られました。発表時には自作の問題が解かれていく様子が綺麗に映し出されており,とても好評でした。

putting master 中村 朋生 くん

説明:パター練習の補助をするアプリです。カップとボールとの距離の計測とパターの成功・失敗判定を自動で行います。その際,ボールの軌跡と成功・失敗数のカウントを記録して表示・保存します。

TAのコメント:円検出によるボールの追跡が上手くいかない問題に対し,色情報やフレーム間差分を利用する工夫によって解決していました。他にも,画面から得られる情報を上手く生かし,独自のアルゴリズムによる状態判別や距離計測を行った努力が評価されました。

typereader 坪田 亘記 くん

説明:キーボードの文字入力を,入力時の画像から判断するプログラムです。入力された文字とその時の画像をデータとして集め,それを用いて機械学習を行い,入力された文字を画像から予測できるようにします。全く同じ環境でのみそれなり(約80%)に動作します。

TAのコメント:学習画像に対して平滑化,縮小などの前処理を施すことで,SVMの学習時間の短縮を図る工夫が評価されました。発表時にも,学習データの採取,SVMの学習,リアルタイムな入力キー予測までの一連の流れを見せてくれました。

The Typewriter 山口 紗穂 さん

説明:リズムゲームとタイピングゲームの要素をあわせ持ったゲームです。曲に合わせて表示される文章をタイピングします。

TAのコメント:音楽と画面の同期や,キー入力のタイミング判定・正誤判定など,リズムゲームとタイピングゲームを両立するための実装をしっかり行ってくれました。また,複数音を同時に鳴らす工夫としてマルチスレッドでの処理も実装されていました。

2015年度の優秀作品

3Dスタイリッシュ弾幕シューティングゲーム 河村 圭悟 くん

説明:3Dの弾幕シューティングゲームです。多くの敵弾をできるだけ処理落ちなく管理できるよう工夫しています。3Dであることを活かしたゲームづくりを心がけたつもりです。

TAのコメント:大量の弾を処理できるデータ構造を考慮したためゲームのコントロールがスムーズで,グラフィックも非常に綺麗で,完成度の高さに驚かされました。発表の時には,作品のどこで何を頑張ったかが伝わってきました。

演奏位置のリアルタイム推定 大川 達也 くん

説明:バイオリン奏者の映像から検出した弓と右手の動きを,譜面データと照合し,現在の曲中の位置とテンポを推定する。この推定結果に合わせて音声データを調整し再生する。弓の検出にあたっては,空間的なパターンを重みとして畳み込んだ積分値を放射状に探索して最大となる位置を用いています。また,右手の検出には,弓に沿った領域で同様の探索を行っています。全てをリアルタイムで行うので,奏者に合わせてBGMを流したり,別の音源をアフレコすることができます。リアルタイムなのに「アフ」レコ。いかがでしょう?

TAのコメント:独自の形状モデルによるバイオリンの弓領域の検出や手の動きを用いた演奏箇所の推定など,多くの部分に工夫がみられました。発表ではバイオリンの生演奏を用いたデモがあり,非常に印象的でした。

雷描画シミュレーション 江口 知弘 くん

説明:雷のメカニズムである絶縁破壊をシミュレーションすることでリヒテンベルク図形を描画します。

TAのコメント:雷を確率的にシミュレーションする作品です。独自のアルゴリズムで,雷光が形から色まで綺麗に描画されました。方向によって確率を変化させることにより雷光に指向性を与え,自然感を増やしつつ三次元に拡張するといった工夫がありました。

ペーパークラフトビューアー 齋藤雄太 くん

説明:ペーパークラフトの展開図の画像から,自動で完成形の画像を表示する

TAのコメント:はじめは複雑なモデルにも対応できるようにと取り組んでいましたが,「まずはシンプルなモデルで確実にできるように」と方向転換したのが非常に良かったと思います。それでもいくつか難しい課題が出てきたのですが,それを一つ一つ解決していった姿勢が印象的でした。

G-Buffer によるスクリーンスペースエフェクト 平井 健太朗 くん

説明:G-Bufferに書きだした情報を元にした遅延シェーディングやアンビエントオクルージョン,リフレクションなどの各種スクリーンスペースエフェクトにより,リアルタイムで高い画面効果を演出しています。

TAのコメント:遅延シェーディングやアンビエントアクルージョン,リフレクション,ライトブルームなどを自作のライブラリを用いてリアルタイムで綺麗な画面効果を実現できてます。完成度だけでなく,技術的にも非常に高く評価されました。

Diceoon 根本 卓 くん

説明:サイコロの目の数を数え,その位置・大きさに応じて図形を描いていくスプラトゥーン風陣取りゲーム。

TAのコメント:サイコロの目の数を画像から自動判別するプログラムです。カメラとサイコロの位置関係によっては横の面が映り込んでしまうという課題に対し,モルフォロジーを用いて解決に取り組んでくれました。非常に良いチャレンジだったと思います。

ホッケーゲーム 高田 祐樹 くん

説明:OpenGLを用いて3Dホッケーゲームを作成した。一人用で,ホッケーの玉をぶつけて色を薄くしていき真っ白にして消すことがクリアの条件となる。

TAのコメント:ホッケーゲームは題材としてよく使われていますが,3Dに拡張したのは面白かったです。玉の速度,合体,反射の判定やフィールドを傾ける機能など多くの工夫が見受けられました。ゲームの完成度としても高く評価されました。

バーチャルきぐるみ 水谷 陽太 くん

説明:体に色のついたマーカーを取り付けるとカメラがそれを認識し,撮影された人と同じポーズを取った3Dモデルが表示されます。

TAのコメント:画像処理による身体状態の推定とそれに基づく3Dモデルの構築,さらにそれを用いたアプリケーション制作まで幅広く取り組んでくれました。デモも楽しいものとなっており,全体として非常にまとまりのよい作品でした。

Perlinノイズによるボクセルワールド 鈴木 諒 くん

説明:OpenGLとGLUTを用いて,Minecraftのような立方体(Voxel)で形成された世界を歩き回ることができるゲームを作りました。2次元のPerlinノイズをハイトマップとみなして地形を生成し,さらに時間軸を加えた3次元のPerlinノイズにより波打つ海面を表現しています。また,動作を軽くするため,ボクセルの不要な面を除去するなど効率的に描画する方法を複数実装しました。

TAのコメント:パーリンノイズといったリアリティテクスチャを作成方法をよく理解し,それを用いて地形や波を描画した作品で,結果も非常に綺麗でした。描画の効率化も考慮し,様々な工夫を凝らして計算量を驚くほど減らせたことも高く評価されました。

Text detection 小穴 智大 くん

説明:画像を入力として,その中のテキストを抽出する。

TAのコメント:近年の文献を参考にしながら,いくつかの技術を組み合わせてテキスト抽出を実装していた点が高い評価を得ました。アルゴリズムを組み合わせることで精度が上がっていく様子が明確に表現されていました。

2014年度の優秀作品

流体の表現 小川 徹 くん

説明:SPH法による流体のシミュレーションです。液面をマーチングキューブ法で計算し, GLSLを使って屈折を考えたレンダリングを行っています。

TAのコメント:流体のダイナミクスとレンダリングの双方をリアルタイムで実現したことに加え,混色まで綺麗に表現したことが,技術的に非常に高く評価されました。

再現!手書き立体からの擬似3D空間 石見 和也 くん

説明:球を操って擬似3D空間を体験できる作品です。手書きの擬似3D物体との当たり判定や,物体の裏に隠れてしまう様子などをも再現することで,あたかもそこに3D空間があるかのように表現しています。

TAのコメント:手書き絵が,2Dのまま奥行きを持つ」というコンセプトが面白かったです。元の絵の絵「絵らしさ」を損なわないまま,その絵の中に世界が広がっていく様子がイメージできました。

FaceConnect ?顔でつながるSNS? 大坪 篤史 くん

説明:二人で一緒に写真を撮り,両方の顔を認証することが友達申請の代わりとなるSNSです。「友達申請のためには一緒に自撮りをするのが必須」という制約を付けることで,日常の出会いを促進させます。node.jsとsocket.ioでのサーバ・クライアント間のリアルタイム双方向通信に,opencvの顔認識(Haar分類器)・人物判別(local binary pattern histogram)を組み込んで作りました。

TAのコメント:コンセプトのユニークさに加えて,画像処理とwebプログラミングを組み合わせて完成度の高いアプリケーションを作り上げた点が総合的に高く評価されました。

L-system による植物のCG作成 小野寺 尚人 くん

説明:L-system を用いた,樹木のモデリングツールです。単純な生成規則と確率的変化を組み合わせることで,様々なオブジェクトを作ることができます。

TAのコメント:非常にリアルな樹木がランダムに生成されていく様子は,見ていて感動でした。木は様々なシーンで必要になる上に種類が多いので,自動生成は非常に嬉しいと思います。

サイトスワップ自動判別器+シミュレータ 宮田 圭介 くん

説明:カメラの前で色のついたボールでジャグリングをすることによって,OpenCVによってそのサイトスワップを自動で判別し,OpenGLでそれをシミュレートしてくれます。

TAのコメント:ジャグリングという独自性のある点に着目した作品でした。プログラムの方もボールの動きを認識し,結果から人間の動きのシミュレーションもできていて,使ってみたいと思わされました。

sudokuMan ヴー バン タン くん

説明:数独の枠が入っている画像から数独の枠を抽出し,数字を認識して数独の問題を解くというアプリです。直接画像で認識するのと,カメラで画像をキャッチして認識するのという二つのやり方があります。カメラで認識を行う場合,’r’キーを押してキャッチした画像を認識します。事前にニューラルネットワークを学習させたので,params.xmlからモデルをロードすれば良いです。再学習を行う場合は,NEED_PROCESSINGとNEED_TRAININGを1にセットして,画像の前処理とモデルの学習を自動的に行います。

TAのコメント:数字を認識するというよく扱われる問題ですが,ニューラルネットワークを用いてしっかりと認識している点が面白かったです。画像の認識から解答を出すまでを実現できています。

棋譜取りくん 谷合 廣紀 くん

説明:自動で将棋の棋譜をとってくれるプログラムです。入力画像から盤面位置を推定し,その盤面に対して駒の画像でテンプレートマッチングを行い駒の位置を推定します。

TAのコメント:カメラから将棋の盤面を認識する,実用的なアプリです。マス目を利用したキャリブレーションとテンプレートマッチングの技法を適切に用い,デモでは正確な動作を見せてくれました。

aMAZIng grace 勝元 甫 くん

説明:どこか不思議な雰囲気,複雑に入り組んだ通路。数多くの階段で階層を移動しゴールを目指す,グラフィカルな探索型3D迷路ゲーム。かつてのウィンドウズのスクリーンセーバー「3D迷路」のイメージを元に「階層移動の有る3D迷路」を製作し,グラフィックやオリジナルのゲーム要素,そして多大なるパズルへのこだわりを追加した作品となります。

TAのコメント:グラフィック,サウンド,プログラム全て含めたゲームとしての完成度の高さに驚かされました。カメラの動き等,3Dプログラムの細かい部分もよく作り込まれています。

魔法陣作り 斎藤 僚介 くん

説明:魔法陣を生成,発動できるアプリケーションです。キーを押すごとに新しい図形を対称に配置することで魔法陣のような図形を生成します。できた魔法陣は上昇や回転,振動をさせたり描画した線からパーティクルを発生させたりすることで,実際に魔術が発動した気分を味わえます。

TAのコメント:魔法陣や手動で作ると意外と面倒なので,ぜひゲーム作りで使いたいと感じました。陣に合ったエフェクトが生成される点もナイスです。

「お一人様」に優しいプリクラ機 稲田 弥鶴 くん

説明:一人でも楽しめる,一人だから楽しめる。そんなプリクラアプリケーションを目指しています。

TAのコメント:ネタアプリとしての完成度とツボを抑えたプレゼンテーションが素晴らしく,会場は爆笑でした。きっとプリクラ界に新たなブームを巻き起こせるでしょう。

2013年度の優秀作品

OpenCVでボケ近似 クーメリ アカキ ヨハンネス くん

説明:単純なblurとは異なる”ボケ”(bokeh)を近似的に表現するアプリケーションです。OpenGLのdepth bufferをレンズからの距離として利用し,ボケのかかり具合を変化させています。

TAのコメント:ピントのずれに起因するボケの原理を理解してシミュレートした点だけでなく,リアルタイムで各種パラメータを操作できる完成度の高いデモや伝わりやすいプレゼンなど,総合的に高い評価を得ました。

不思議なルーム ナムスライジャブ ビャンバジャブ くん

説明:頭を動かしても画像がそれに反応して実際画面の後ろに立体物があるかのように見えます。また右クリックでメニューから"Do Harlem Shake"とすると部屋が"Harlem Shake"します。またをそれを止めたり,再生したりすることが出来ます。

TAのコメント:単純な顔認識によるヘッドトラッキングとそれによるカメラ位置の操作だけでなく,実世界における画面の見え方まで考慮した透視投影を行っている点が評価されました。

Easy Composer 西田 典起 くん

説明:カメラで写した楽譜を認識して,演奏・録音します。カメラでの撮影は連続して行うことが可能で,気に入った小節を好きなところに挟んだり順番を変えたりして遊ぶことができます。

TAのコメント:4分音符・2分音符・休符など,性質の異なる音符を識別するために,テンプレートマッチング,色識別,機械学習といった様々な方法でトライした経過が見て取れました。楽譜すべてを無理に1つの手法で読み取るのではなく,それぞれの手法で得意な種類の音符を読むようにしているのがスマートです。

画像電卓 シュ カイ くん

説明:数字や符号を認識し,計算し答えを返すアップリケーション。ビデオカメラで式を取って,キーボードで“Y”と押すと答えが出る。最低限の計算ができる。

TAのコメント:ブラー,エッジ検出,モルフォロジー変換によるノイズ除去に始まり,交点とその位置から数字を判別する独自のアルゴリズムなど,随所に創意工夫を見受けられました。簡単な足し引きではあるものの,実演ではきちんと電卓が動作していました。

テクスチャによる現実加工プログラム 李 尭希 くん

説明:テクスチャ画像を用いて写真や動画に書きこんで遊ぶプログラム。クリックした箇所の周辺領域のマスクを自動的に生成し,好きなテクスチャを重畳することができます。

TAのコメント:ペイントソフトに実装されているような自動範囲選択,いわゆる「マジックワンド」の機能を実装し,カメラからの映像にも適用できるようにした作品です。エッジ抽出による方法と色の似た領域を取る方法の両方で範囲選択に成功しています。

高速なオプティカルフローアルゴリズムの提案 伏見 遼平 くん

説明:立体視に応用することを目指し,高速なオプティカルフローアルゴリズムを提案しました。

TAのコメント:他のアルゴリズムとの比較を行い,利点,欠点を明らかにしながら提案手法を説明する態度がとてもよかったと思います。多くの部分を自身で実装していたのも印象的でした。

CV beat 小野 裕也 くん

説明:スクリーンに現れるノートを音楽に合わせてタッチする,体感型リズムゲームです。 矩形抽出によってスクリーンの範囲を取得し,HSV色空間の色相を使って肌色=手の領域を認識しています。

TAのコメント:スクリーン領域抽出や手の検出を既存の関数をうまく活用して効率的に実装しつつ,フレーム描画間隔を一定にして音ズレを防止するなどきちんと音楽ゲームとして成立させるための工夫が感じられました。自らスクリーンの前に立っての体を張ったデモが印象的でした。

透明マント 興梠 智紀 くん

説明:指定した範囲の色が透明になるというコンセプトです。

TAのコメント:ただ単に決め打ちでマスクするだけではなく,RGBをHSVに変換し,マスクする色相を調節できるようにすることで任意のマントを透明マントにすることができるようにする,モルフォロジー変換によるノイズ除去を行う,といった数多くの工夫がありました。

三次元迷路 原田 和紀 くん

説明:高さ・重力のある迷路を自動生成し,プレイヤーを操作して動きまわったり,コンピュータにゴールを目指させたりするソフトウェアです。

TAのコメント:今回は迷路を題材としたものが三作品ありましたが,その中でも,迷路を立体的に拡張し,カメラワークについて工夫がなされていた本作品が高く評価されました。多くのノンプレイヤーキャラクターが三次元迷路を一斉に探索する様は壮観です。

RED MAGIC 武藤 将生 くん

説明:OepnCVでの色認識,OpenGLでの2Dパーティクル描画,OepnGLのGLSLでの画面生成を組み合わせたメディアアート作品。赤いもの(設定により変更可能)をカメラの前で動かし続けることで音楽が流れるとともに,現実世界を覆う「結界」が晴れていく。

TAのコメント:シェーダを用いて,高級な3D描画に成功した作品です。多くの作品が二週間という短い期間もあって,外見のブラッシュアップを疎かにしがちななか,その努力が高く評価されました。

2012年度の優秀作品

同時翻訳アプリ 荒巻 祐治 くん

説明:カメラで認識した画像から文字を抜き出し,それを他の言語に変換したうえで,元の画像に重ねて表示するアプリケーションです。カメラからの画像の取得と,最終結果の表示にOpenCVの機能を利用しています。文字を抽出するところと,結果に日本語を含めるところに苦労しました。

TAのコメント:外部の文字認識ライブラリを用いた作品ですが,ただ文字を認識するだけでなく,翻訳して付加表示する機能まで備えたことで,実用性のあるARアプリの好例として評価されました。AR研究者である先生からも高評価でした。

流体と剛体の物理シュミレーション 輿石 誠 くん

説明:波動方程式を利用した流体と剛体の物理シュミレーションで,剛体と流体,剛体と剛体の衝突する様子が見れます。流体面にOpenCVでとりこんだ画像や,カメラでキャプチャした動画をテクスチャマッピングしてそれらが歪む様子も見れます。またトラックバーによる流速や粘性など詳細なパラメータの設定も可能です。

TAのコメント:波動計算の高速化や剛体シミュレーションなどの高度な内容を含み,結果も非常に綺麗でした。時間を持て余していたようなので,いろいろ無茶な注文をしたら,次の回にはできていたので驚きました。

3Dゲームフィールドメーカー 高橋 一成 くん

説明:OpenGLを使った,3Dゲーム用のマップ制作ソフトです。3D空間でキャラクターを操作して,任意の位置に樹木,ネギ,病院などのオブジェクトを配置することができます。特に樹木は力を入れたオブジェクトで,独自のアルゴリズムによって再帰的に生成されます。乱数を使って枝の本数,角度,葉の位置などをを調整しているので,同じ木は2つとできません。

TAのコメント:3Dモデルの高度な操作や描画はもちろんのこと,起動直後のメニュー画面の動作までよく作りこまれており,完成度の高さが評価されました。よくゲームに出てくる“にゅる”っとした動きはシグモイド関数だったんですね,勉強になりました。

OpenCV・GLを用いたゲームの視覚的効果に関する指向的試行 前田 嵩樹 くん

説明:OpenCV・GLを用いてゲームを作成する際のゲームのエフェクトや背景について工夫を行った。また,カメラからキャプチャした映像を用いたゲームのシステムを構築した。

TAのコメント:某市販ゲームの魔法エフェクトを彷彿させる非常に美しい3Dエフェクトを見せてくれました。また,背景描画も,手前は濃く,遠くの物体は薄く表示することで遠近感にも工夫を凝らしており,個々の要素の質の高さを評価しました。

シャバドゥビタッチヘンシーン!! 山本 紘暉 くん

説明:仮面ライダーウィザードの変身シーンを再現。実際に自分に変身画像を重ねて楽しむ。ベルトの声も出してくれる。

TAのコメント:プロジェクタを用いた派手な変身アプリですが,実際のスクリーンとカメラからの画像座標との位置合わせなど,地味な部分もしっかり工夫して実装したところが評価されました。また,変身がキマったときのドヤ顔が印象的でした。

PTAMでどこでもMMD on Linux 稲原 宗能 くん

説明:PTAMを用いて特徴点さえあればどこにでも3Dモデル(MMD)を置けて,音楽(wavファイル)と一緒に踊ってくれるアプリケーション。

TAのコメント:コンピュータビジョンを研究している人でなければ知らないようなPTAMと呼ばれる手法(ツール)をしっかり使いこなし,キャラクターのアニメーション表示まで行った点が評価されました。

人体モデルの姿勢制御 吉橋 亮太 くん

説明:関節をもった人体ポリゴンモデルの姿勢を動かすことができます。またWebカメラを使い,カラーマーカー追跡によるモーションキャプチャのようなこともできます。

TAのコメント:人体モデルのアニメーションに用いられたボーンやスキンメッシュと呼ばれるテクニックをはじめ,クォータニオンや,2つのカメラを用いた奥行き推定など,難しい技術や概念をよく理解し,一からすべて自分で実装した点を高く評価しました。全課題を3日で終わらせてしまったことにも驚きです。

VRFPS~ファントム・バレット~ 平木 剛史 くん

説明:現実空間を3DマッピングしたVR空間で,実際に体を動かして操作する3Dシューティングゲームです。XtionProLiveを用いて得た,深度情報とRGB情報をもとに,VR空間を実現しています。VR空間は実際に撮影した映像を使用でき,リアリティは抜群です。また,骨格認識を用いて,人間の動作を検出し,VR空間上での動作に反映することで,インタラクティブなインターフェースを実現しています。

TAのコメント:近年Kinectなどの奥行きセンサーを用いた研究が盛んですが,学生実験にまでその潮流が到来したことを実感する作品でした。一方で,デバイスの目新しさのみに頼らず,ボーンを用いたアクション認識など,“骨のある”仕事が評価されました。

RHYTHMIC NOTES 宇田 川祐志 くん

説明:主にOpenGLを用いて作った,3Dの音楽ゲーム。上から降ってくるノートに合わせてタイミングよくキーボードを叩くだけの,操作が簡単なゲームです。

TAのコメント:ベーシックなリズムゲームを,巧みな3D描画でクールに仕上げ,観客のハートを鷲掴みにしました。ゲームロジックの実装に終わらず,全体のビジュアルにもこだわって美しく仕上げた点を評価しました。

3D Explorer 川本 貴史 くん

説明:3D Explorerはディレクトリ構造を3Dで表示し,視覚的にディレクトリ構造を理解するための自己満ソフトです。

TAのコメント:いままでのゲームやCGエフェクト,ARアプリなどとは異なり,OSのシステム面を扱ったアプリケーションは斬新であり,3DCGによる可視化もエレガントな仕上がりでした。

2011年度の優秀作品

パネキット風工作シミュレータ 前田 一樹 くん

説明:板状のパーツを組み合わせてラジコンを作る物理エンジン付き工作シミュレータです。慣性テンソルと運動量保存則を用いてそれなりにリアルな挙動を実現しました。タイヤを使用した車やジェットエンジンを使用した飛行機等が製作可能です。

TAのコメント:シミュレータの概観, 内部で行われている物理演算, 全てにおいて, 商品のような完成度の高さです。

テレイドスコープ 小林 諭 くん

説明:Webカメラの映像をもとに万華鏡のような写像パターンを生成するアプリケーションです。写像の回転や拡大・縮小を直感的なマウス操作で行うことが可能です。また, 正三角形と正方形の2種類の図形を元とするパターンが描画できます。OpenCVの関数を用いず画素データを直接参照し, また再帰による効率的なアルゴリズムを用いることで高速な描画を実現しています。

TAのコメント:関数を用いない, 独自の描写手法がきれいな模様を生み出します。次にどういった模様ができるのか, 見ている人をワクワクさせます。

ルービックキューブシミュレータ 亀甲 博貴 くん

説明:OpenGLで描画される, 中央の1つを除いた26個の立方体から成る3×3×3ルービックキューブのシミュレータです。キーボードの入力で視点移動とキューブの回転ができる他, LBL(LayerByLayer)法と呼ばれる解法を用いて6面完成を行ないます。またWebカメラから実物のルービックキューブの色を認識し, シミュレータ上で再現します。

TAのコメント:高度な演算を行い, さらに, 実物のルービックキューブを用いることで, コンピュータ内で閉じることなく, 実世界をも巻き込んだシミュレータになっています。カラフルなルービックキューブがくるくる回る様子は, 見ていてとても鮮やかです。

Galaxy 岩田 児太郎 くん

説明:星の数, 塵の量, 全体の横幅や奥行き, 渦巻きの程度, 配色をパラメトリックに指定することによって, インタラクティブにいろいろな形の銀河を生成し眺めることができるプログラムです。1万を超えるパーティクルを使って描画しているおかげで, 見た目に自然な銀河が再現できたのではないかと思います。

TAのコメント:膨大な数のパーティクルを用いて描かれた, 完成度の高い美しい銀河からは, OpenGLの高度な描写技術が伺えます。

パーティクル 高松 幸広 くん

説明:OpenGLを主に用いて, パーティクルの飛び散る様子を描いた映像作品です。小さな正方形を3次元空間上に最大1000個描画し, 次のフレームにどこに移動するかを一つ一つ計算して描画しています。立方体の内側に視点を置き, 内側にテクスチャを張ることでつなぎ目のあまり見えない背景を作り, その中でパーティクルが飛び散る様子を再現しました。マウスの左ドラッグで視点移動し, 右ドラッグでズームイン/アウトすることができるようになっています。また, 自動で視点が動いて, より映像作品として楽しめるような工夫をしました。YouTube

TAのコメント:綺麗なパーティクルの描写に加え, 多様な機能を付け加え, それらをより一層美しく見せようとする姿勢から, 作品に対する熱い想いが伝わります。

OpenGL/CVを用いたARTool 田中 晋太郎 くん

説明:実現したかったことは, マーカーを認識し, マーカーによって座標系を定義, その座標系に3Dオブジェクトを描画できるようにするということです。ポイントは, 四角形の抽出, 透視投影変換行列の計算と, ある程度のフレームレートを実現するためのマルチスレッド化です。時間がなくてスクリーンショットではあんまり粋な3Dオブジェクトを描画していませんが, 某初音さん等のモデリングデータを読みこませれば手のひらを歩かせることも可能です。

TAのコメント:マーカーを使ったARをOpenCVで実装したものです。AR実現のための行列計算をしっかり行っていて完成度が高かったことや処理を高速化するためにマルチスレッド化をするなどの工夫が見られた点が評価されました。

立方体の取り扱い 中村 新芽 くん

説明:3D物体の動き全般を扱うためのクラスの作成をしました。物体から見て前方方向への移動, 視点から見て奥への移動, 元座標軸のz軸回りの回転や視点からみて縦回転など, 移動, 回転を物体の姿勢によらず自由に行えるメソッドを持たせました。発表用の作品というよりは習作に近いです。発表では地面との衝突を簡略化した計算で行って立方体が地面で飛び跳ねる様子を見せました。

TAのコメント:物体ごとの細かな操作を直観的に行えるものになっており, デモの見せ方も良くできていました。物体をマウスクリックで扱う手法も用いており, 全体的な完成度が高かったのが評価ポイントです。

ウェブカメラでカメラを動かすFPS 後藤 正太郎 くん

説明:ウェブカメラを動かすことでゲーム内のカメラを直感的に操作できる3Dシューティングゲームです。1フレーム毎にウェブカメラから画像を取得し,現在の画像と直前の画像を比較してオプティカルフロー(画像間で同一物体がどのように動いたかを表すベクトル量)を求めます。これをウェブカメラの角度変化とみなし,その値に合わせてゲーム内のカメラの角度をリアルタイムに動かしています。

TAのコメント:カメラより得られた画像からオプティカルフローを取得し, それをゲームの入力に用いるという直観的な操作方法とゲームとしてのクオリティも高かったことが評価されました。

動画スタンプ 小林 尚生 くん

説明:動画をスタンプのように板に張り付けるというものです。カメラから取得した画像ををテクスチャとして用いています。スタンプの動きの部分にも力を入れました。張り付けられた動画は, 張り付けられた後も動くようにしています。

TAのコメント:動画をスタンプにするというユニークな作品で, 実験で学習した動画処理やテクスチャマッピングをうまく組み合わせている点が評価ポイントです。

Cover the Numbers 槙 佑馬 くん

説明:プロジェクタによりスクリーンに投影された数字を手でタッチして消していくアプリケーションです。カメラとスクリーンの位置合わせをして, カメラから取得した画像に対して肌色認識を用いて人間の手の位置を取得しています。

TAのコメント:プロジェクタに映した画像に手で触れて操作するという, 実世界とコンピュータとの連携をうまく実現したところが評価されました。

2010年度の優秀作品

背景差分法による拡張現実アプリ集 木下 僚 くん

説明:Webカメラで撮った映像をOpenCVを用いて加工・出力する拡張現実感アプリです。神隠し(急に消えてしまう「神隠し」にあったような効果を得ることができます)/迷彩(あらかじめ撮影した写真の一部を手を使って消すことができます)/タイムリープ(3秒前の過去と現在が混ざった不思議な映像を作り出します)/ノイズ(動いているものがノイズとして表示されます)。これらの映像を得るベースになっているのは,背景差分法をはじめとする画像差分計算です。背景差分法やコマ間の差分計算をOpenCV組み込みの関数を用いずに自分で実装し,高速でなめらかな処理を行うことができました。

TAのコメント:木下くんは6つのARアプリケーションを作ってくれましたが,ここではその内の4つを紹介しています。使用している技術は背景差分処理とスーパーインポーズだけと言ってもいいのですが,背景差分処理の高速化を行うなど,基礎的な部分で頑張ってくれたことが違和感の無いアプリケーションの実現につながり,高い評価を得ました。またデモが非常にうまく,特に「タイムリープ」では,過去の自分にジャンケンで勝つというデモをタイミングバッチリに行ってくれました。

3Dシューティングゲーム 板持 貴之 くん

説明:キーボードで画面中央に映っている自機を操作し,弾を撃って敵を倒す3Dシューティングゲームもどきです。GLSLを用いてシャドウマッピングを行っています。これにより,映っている球体そのものの陰影だけでなく,足場などの物体が地面に落とす影も描画できています。また,ビルボーディング技術を用い,敵キャラの体力を示すバーが常にカメラの方向を向くように描画しています。

TAのコメント:OpenGLには影(落ち影)を表現することができないという欠点があります。その欠点を見つけ出し,それを解決するためにGLSLに挑戦してくれたことが,高い評価になっています。ゲーム自体の表示の仕方にも工夫が施されており,完成度の高いゲームになっているんじゃないかと思います。

ボールと影 天野 宗佑 くん

説明:Webカメラで取り込んだ画像を色情報で2値化し,当たり判定を作ることで,画面中を跳ね回るボールにあたかも触れているかのような感覚を得られる拡張現実感アプリケーションです。画像の2値化やボールの反射の仕方を工夫することで,見た目にも綺麗で楽しいアプリケーションとなっています。

TAのコメント:Webカメラで取り込んだ画像を処理し,仮想のボールに触れることができるアプリケーションです。シンプルな2値化画像とカラフルなボールからなる映像のセンスが良いため,高い評価になっています。落ちてきたボールを手ですくったり,指で輪を作ることでボールを閉じ込めるなど,デモの面白さも印象的でした。

Street View 片岡 拓朗 くん

説明:特殊な機材やGPSを使わずに,Webカメラの動画とプログラミングだけでGoogle ストリートビューのようなアプリケーションを作りました。OpenCVのテンプレートマッチングを利用してフレーム間の移動距離を推定し,動画から適当な間隔でフレームを切り出します。これに,手作業による間引きを加えて風景画像とします。この画像をキー操作に応じて順次読み込むことで,ストリートビューを実現しました。前進・後退・右折・左折時にはアニメーションを付け,動きをわかりやすくしました。

TAのコメント:Googleストリートビューを自分で実装してしまおうというチャレンジ精神と,それを実現するための工夫が評価されました。さながら3DダンジョンRPGのように,2号館の廊下を徘徊することができます。完全に自動で風景画像をつくるためには,2号館のような真っ白な壁の廊下ではなく,情報量が多くテンプレートマッチングしやすい廊下を選ぶ必要があります。

擬似タッチディスプレイ 毛利 圭佑 くん

説明:PCのディスプレイをカメラで撮影することで,普通のスクリーンをタッチスクリーンのように使うことができるプログラムです。OpenCVを用いて,ディスプレイに特定の画像を表示し,ディスプレイの座標系とカメラの座標系の対応をとります。そこに肌色領域の凸領域の輪郭の角度変化から抽出した指先の座標を組み合わせる事で,指先の位置とスクリーン上の点を対応させています。

TAのコメント:画像処理を用いて擬似的なタッチディスプレイにしようというアプリケーションです。座標系の位置合わせや,色検出以外の手法も組み合わせた指先検出など,調査や工夫をしっかりと行っていることから高い評価を得ました。このようなタイプのアプリケーションでは棒の先に色のついたマーカーを付けるなどして,指示している場所を検出しやすくするというのが定番ですが,肌色で指を検出した後に,曲率を用いて指先を検出するという工夫をしています。

Change Face 山田 剛史 くん

説明:ライブラリを最適化したり,処理内容を工夫することで,キャプチャ,顔検知といった,処理負荷の重い処理を,2つのカメラ映像に対してリアルタイムに行い,2つの映像の顔を交換しています。顔検知に成功した場合,次のフレームの探索範囲を絞り込んだり,処理の重いフレームと軽いフレームを用意してバランスを取ったり,同期する必要のない処理を非同期に行うなどして,処理負荷を軽減しています。カメラ同士の顔の交換のみならず,アニメーション内の顔とカメラの顔の交換,といったこともできるので,キャラクターになりきることもできます。

TAのコメント:2つの映像中の顔を入れ替えるというアプリケーションです。その機能自体ももちろん面白いのですが,最も評価された点は処理の高速化です。顔検出やカメラ画像の取得などの遅い処理を高速化するために,最新のLinuxカーネルを導入したり,並列分散処理をOpenMPを用いて実装するなど,ソフトウェア,システムレベルでの最適化が非常に優れていました。

22.5°系折紙シミュレータ 西村 光平 くん

説明:単純な命令列から折紙を折る過程をシミュレートする作品です。多数のノードとポリゴンにより1枚の紙を構成し,ノードの移動から折り線を計算してポリゴンを更新します。z座標の設定により,紙の重なりと影をそれらしく演出しています。

TAのコメント:折紙のシミュレータをOpenGLを用いて作成しています。折紙をシミュレートしようというアイディアと,ソフトウェアとしての使いやすさを意識した作り込みが評価されました。ボタンひとつでワイヤフレームの状態に切り替えられるなど,バックグラウンドで何を行っているかが分かりやすい形でデモをしてくれたのも良かったです。

絶対に勝てないジャンケン 佐藤 和博 くん

説明:カメラに向かってじゃんけんをし,コンピュータに必ず負けてしまうゲームです。キャプチャした画像をHSV色空間に変換後,H成分が肌色に相当する画素を抽出,ラベリング処理によって隣接画素をグループ化し面積最大のものを手領域と判断します。続いて,手領域を囲みこむ凸包の面積と,凸包内の肌色部分面積との比率及び,凸包の縦横比などを用いて,グー・チョキ・パーの判別をしています。

TAのコメント:手がジャンケンのどれを表しているのかを自動的に識別するアプリケーションです。手の形状識別自体は,実験中に参考資料として配布するOpenCVの参考書のサンプルとして挙げられているものですが,問題点を見つけ出しそれを改良した点が評価されました。具体的には,カメラで撮影される手の向きに制約を設けることで,凸包の縦横比を識別に有用な特徴として導入しています。このように,ちょっとした制約をつけることでも認識精度が向上することがあります。

Orchestra4U 谷合 竜典 くん

説明:体の動きに応じて音楽の音量操作を行うことで,誰でも気軽にオーケストラの指揮を体感できるようにしたシステムです。音楽的知識は一切不要で,カメラの前で音楽に合わせて思うままに指揮を振るだけで,その動きの激しさに応じて演奏の音量がリアルタイムに変わります。曲も音楽CDから抽出したファイルなど,好きな曲を自由に指定できます。激しさ検出はOpenCVによる差分画像,表示はOpenGLの2次元描画などで,使用した機能の1つ1つは基本的なものばかりですが,アイディアの実現に向かって,いくつかの問題に対して解決方法を模索しながら,1つのシステムとして形にするところに苦労しました。

TAのコメント:画像処理に音声処理を組み合わせたアプリケーションです。出力音声の大きさを制御するために,カメラからの入力を用いています。個々の要素で適切な工夫を行っており,アプリケーション全体の完成度の高さが評価を得ました。また,本人が非常に楽しそうに,デモを熱演してくれたのも印象的でした。

マウスでマウス 垣内 紀明 くん

説明:カメラの前で口を動かすことでマウスポインタを操作できるアプリケーションです。カメラで撮影した画像の画素のRGB値から唇の赤紫色を検出し,その領域の重心を求めて口の位置として認識します。口の移動をマウスポインタの移動に対応させているほか,舌を出す動作をマウスの左ボタンを押す動作に対応させているので,左クリックやドラッグ&ドロップもできます。

TAのコメント:口や舌をマウス代わりに使おうという斬新なインタフェースです。肌に対してわずかに青い唇や舌を検出するため,照明条件がやや厳しかったのですが,口で移動, 舌でクリックという基本動作の割り振りがインタフェースとしてよく工夫されていた点が評価されました。

2009年度の優秀作品

UFO 大垣 慶介 くん

説明:特徴点追跡アルゴリズムを利用することで,画像中の同一物体がどのように動いたのか(オプティカルフロー)を求めることができます。ノートPCにUSBカメラを固定し,事前に撮影した画像と比較することで,オプティカルフローを求めます。オプティカルフローからノートPCがどの程度傾いているのかを推定し,それに応じた処理を行うことで,傾きセンサと同様の機能を実現しています。

TAのコメント:ノートPCを傾けることで,画面に表示されるUFOの動きを制御するゲームです。傾きセンサを搭載しないノートPCで,カメラ入力だけを手掛かりに傾きを推定している点が評価されました。

ハンバーガーイーター 森 功 くん

説明:OpenCVを用いてカメラからの画像を取り組み,Haar分類器でプレイヤの顔を特定して,口の位置を検出しています。そこに,OpenGLで作成したハンバーガーの3Dオブジェクトを用意し,テクスチャ機能を使ってプレイヤのレイヤーとハンバーガーのレイヤーを合成しています。

TAのコメント:画面の中を飛んでくるハンバーガーを自分の口でキャッチするゲームです。一生懸命口をあけてカメラの前を動き回る滑稽さが評価されました。

keysic 河野 一歩 くん

説明:各文字の画像ファイルをテクスチャとしてブロックを生成しし,落ちてくるブロックとキー入力とのタイミングをOpenGLのキー入力関数を用いて計っています。キーを打つタイミングによって,Exellent/Good/Badの点数が与えられています。

TAのコメント:上から落ちてくるブロックのタイミングに合わせてキーボードを打ち込むことで,ピアノのように楽曲を演奏できる音楽ゲームです。音を扱った唯一の作品として評価されました。

残像 大津 恭平 くん

説明:カメラで撮影した画像の各画素の輝度値の変化から前景領域を抽出し,前景の過去数フレーム分を現在の画像に重ね描きすることで,残像表現を実現しています。

TAのコメント:実空間における動きが残像を伴って画面に表示される作品です。VFX映画のような遊び心のある映像効果が評価されました。

カメラ目線 加藤 由訓 くん

説明:OpenCVには様々な識別器が収録されています。ここでは,目の検出機能を用いて,画像中から目の位置を求め,そこにあらかじめ用意しておいたカメラ目線の画像を重ね描きしています。

TAのコメント:カメラに写っている人が,実際にはどこを見ていても,必ずカメラ目線になってしまうという作品です。自分の顔が勝手に書き換えられる楽しさが評価されました。

Solar System Simulator 甲斐 常伸 くん

説明:OpenGLのテクスチャマッピング機能を活用し,適切な視点計算でこれを実現しています。

TAのコメント:太陽系の惑星の自転や公転,地軸の傾きをシミュレートして配置し,それを自由な視点から眺めたり,一つの惑星を自動的に追尾することを可能にした作品です。美しい完成度の高い映像が評価されました。

Fractal 河野 瑛 くん

説明:OpenGLで多角形を描くのと同様にマンデルプロ集合やジュリア集合を複素平面上に描くことにより,フラクタルを生成しています。

TAのコメント:フラクタル図形を描きだす作品です。フラクタルとは,部分と全体が自己相似な図形のことで,拡大しても同じような形が現れる図形です。美しい映像が評価されました。

指でお絵描き 中村 真也 くん

説明:カメラで撮影した画像中の赤の成分が強い領域を肌色として検出し,そのライブ画像上に指先の軌跡を重ね描きしています。指先と肌領域の重心との距離から,指を伸ばして描くモードと,手を握って描かないモードを切り替えています。

TAのコメント:指先の描く軌跡で実空間中に落書きをしているような体験ができる作品です。シンプルな処理によって,遅延のない直観的な操作を実現している点が評価されました。

Magic Slider 中島 直哉 くん

説明:OpenGLライブラリが提供するキー入力・マウス操作による画面操作と,OpenCVライブラリを使った物体追跡による遠隔操作を実現しています。物体追跡には特定領域の色の分布を用いる手法を使っています。

TAのコメント:マウス・キーボード・遠隔操作の複数の操作に対応できるスライダーインタフェースです。多機能な実装が評価されました。

ロボット 佐々木 達哉 くん

説明:ロボットの各部位を行列によって階層構造化して表現することで,体の姿勢・向きを制御しています。行列演算を深く理解することで,このように3次元オブジェクトの構造的な制御が可能になります。

TAのコメント:ロボットの姿勢を制御して表示する作品です。複雑な構造をきちんと扱った点が評価されました。