1

公立はこだて未来大学 2012 年度 システム情報科学実習
グループ報告書
Future University Hakodate 2012 System Information Science Practice
Group Report
プロジェクト名
画像技術を利用したアプリケーションの設計開発
Project Name
Development of the application that uses imaging technology
グループ名
グループ A
Group Name
Group A
プロジェクト番号/Project No.
19
プロジェクトリーダ/Project Leader
1010203
内藤優貴
Yuki Naito
グループリーダ/Group Leader
1010203
内藤優貴
Yuki Naito
グループメンバ/Group Member
1010007
北みさと
Misato Kita
1010024
朝妻詩乃
Shino Asatsuma
1010078
苗加悠貴
Yuki Noka
1010121
野波淳里
Junri Nonami
1010140
谷岡翔馬
Shoma Tanioka
1010187
森理美
1010194
金子真二郎
1010197
小林俊樹
Toshiki Kobayashi
1010203
内藤優貴
Yuki Naito
1010204
中村慎弥
Shinya Nakamura
Satomi Mori
Shinjiro Kaneko
指導教員
川嶋稔夫 寺沢憲吾
Advisor
Toshio Kawashima Kengo Terasawa
提出日
2013 年 1 月 16 日
Date of Submission
July 16, 2013
-2-
概要
本プロジェクトでは、ヒトの「見る」行為に面白さを付加する装置の開発を目的としている。
はじめに、テーマを決定するためにメンバー全員での話し合いを行った。「画像技術を利用す
ることで出来る面白いもの」について各自アイディアを出し合い、持ち寄られたアイディアを
一つ一つ吟味した。その結果、「『見る』行為に面白さを付加する装置の開発」というテーマが
設定された。テーマ設定後は、実際にどのような成果物を作るのか、ということについての話
し合いが行われた。そこで決定した成果物のイメージや仕様に基づいて、前期の成果物として
最終成果物のプロトタイプを開発した。このプロトタイプでは、8 個の Web カメラを用いる
ことによってユーザーは水平 360 度の視界を得ることができる。また、機能の一つとして視界
に特殊な効果を与えるもの(エフェクト)がある。これによって普段とは違った景色を見るこ
とができる。後期の活動では、プロトタイプをもとに最終成果物を開発した。Web カメラの個
数を 26 個に増やした。これにより、なめらかなほぼ全方位の視界を実現した。エフェクト機
能の数も増えた。また、すべてのハードウェアを身に付けることによって自由に歩き回れるよ
うになった。これらの改良によって、より楽しめるようになった。
キーワード
画像技術, 「見る」, 面白さ, 水平 360 度の視界
(※文責: 内藤優貴)
-i-
Abstract
In this project, our most important goal is that we develop the machine that adds
interasts to “seeing”. First, we had a discussion about the decision of a theme. We
conceived of the ideas about “interesting things that using imaging technology”, and
examined those ideas. As a result, we set the theme of “The machine that adds interests
to “seeing””. After determining the theme, we discussed about what device to develop.
We determine the outline and specifications of the deliverables. We have developed a
device based on it. As the product of the first semester, we developed the prototype
of the final product. By using eight web cameras, user can get a view of 360 degrees.
In addition, as one of the functions, there is a function that gives a special effect to a
view. Thereby user can see a different view from the usual one. In the second semester,
we developed the final product based on the prototype. We increased web cameras in
number to 26 sets. By this, we realized the smooth field of view of all the directions.
We increased the number of effect functions. Moreover, by attaching all the hardwares
to the body, user can walk around. By these improvement, user came to be able to
enjoy more.
Keyword
Imaging Technology, “seeing”, Interest, View of 360 degrees
(※文責: 内藤優貴)
- ii -
目次
導入
1
1.1
背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
目的決定に至るまでのプロセス . . . . . . . . . . . . . . . . . . . . . . . .
1
第1章
1.2.1
第2章
本プロジェクトの概要
10
2.1
目標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2
課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.3
課題の分担 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
課題解決のプロセス
11
プロトタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.1
ハードウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.1.2
プログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
最終成果物 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.2.1
ハードウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2.2
プログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
第3章
3.1
3.2
第4章
4.1
4.2
発表
82
中間発表会 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
4.1.1
ポスター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
4.1.2
スライド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
4.1.3
発表の準備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
4.1.4
役割分担 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
4.1.5
発表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
4.1.6
片付け . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4.1.7
発表評価シート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4.1.8
反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
最終発表会 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
4.2.1
ポスター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
4.2.2
スライド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4.2.3
発表の準備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
4.2.4
役割分担 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
4.2.5
発表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
4.2.6
片付け . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
4.2.7
発表評価シート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
4.2.8
反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
4.2.9
今後の予定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
- iii -
第5章
5.1
5.2
まとめ
100
前期の活動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.1
前期の反省点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.2
後期への課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
後期の活動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2.1
後期の反省点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2.2
今後の展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
参考文献
104
- iv -
Development of the application that uses imaging technology
第1章
1.1
導入
背景
近年、科学技術の発展とともに画像や映像処理の技術が目覚ましく発達している。3D 映像やホ
ログラムを見せる技術だけでなく、画像や映像を情報として処理し、コンピューターに認識させる
技術も研究が進んでいる。その中で画像処理に関するプログラミングライブラリの一般への普及
や、プロジェクターやカメラの小型化、低価格化等も急速に進み、画像技術はより身近なものと
なってきている。本プロジェクトでは、頭部の周囲に複数台の Web カメラを設置し、それらから
取り込んだ映像をヘッドマウントディスプレイに投影するような装置を作製する。また、複数の
Web カメラから取り込んだ映像にユーザーが意識的に干渉できるようなインターフェースも合わ
せて作製する。それにより、日常的に行なっている「見る」という行為を変化させ、現実ではでき
ないことを実現し、未知の体験をすることを目指す。
(※文責: 谷岡翔馬)
1.2
目的
本プロジェクトは、人の「見る」行為に面白さを付加する装置の開発を目的としている。人が日
常生活で知覚している周囲の環境を、少し変わった形で「見る」ことにより面白さを生み出し、そ
れを体験する装置の開発を行う。また、この装置を実現することによって画像処理やコンピュータ
ビジョンに関するプログラミング知識などの専門的な技術や知識の習得を行う。
これらの目的を達成するため、コンピュータビジョン向けライブラリである openCV を中心と
したプログラム設計を行う。
(※文責: 野波淳里)
1.2.1
目的決定に至るまでのプロセス
本プロジェクトは例年、画像技術を用いたアプリケーションの設計開発を基盤に活動を行ってお
り、今年度はエンターテイメント性の高いインタラクティブなアプリケーションの設計開発という
方向性でテーマを考えた。私たちはエンターテイメント性に着目し、画像技術を用いて面白いもの
を作ることを仮テーマとして活動を始めた。仮テーマ決定後には画像技術を用いた先行事例を調査
し、それらを踏まえて画像技術を用いた面白いと思える案を出し合った。
先行事例の調査では、顔認証システムによるセキュリティやホログラムを用いた映像再生システ
ム、プロジェクションマッピングなど、様々な場面で用いられている画像技術の事例に着目した。
プロジェクションマッピングとは、建物や大型の建造物に対して映像を投影し、空間と映像を合成
することによって、新しい空間演出をするエンターテイメントのことである。近年では 2011 年に
東京駅で「TOKYO HIKARI VISION」として、プロジェクションマッピングによる演出が大き
な話題を呼んだ。また、調査を行った先行事例の中には「ビックリハウス」のように、画像技術を
Group Report of 2012 SISP
-1-
Group Number 19
Development of the application that uses imaging technology
用いずに「見る」行為によって面白さを生み出しているものも発見した。この事例を踏まえて、私
たちは「見え方」や「見せ方」によっても面白さを生み出すことができるのではないかと考え、面
白いと思えるものの提案を行った。
先行事例の調査から分析した結論を踏まえて、画像技術を用いた面白いと思えるものを考えた。
人間の動作に合わせた視覚エフェクトを付加するスクリーンや音声処理と組み合わせたアミューズ
メントの提案など、「見る」行為を他の技術を関連付けた案や「見る」行為そのものに面白さを付
加する案などが挙げられた。またこのとき、プロジェクトメンバーが特に面白いと思った案をピッ
クアップし、それらの面白さについて分析し考察を行った。視界を傾けることで壁を歩くことを疑
似体験する装置や、他者の視界を覗いたり操作する装置などの案について考察を行った結果、普段
は見たり体験することのできない、非日常的なことが面白いのではないかという結論を出した。
以上の結論から私たちは、現実ではできないことや未知のできごとなどの非日常的なことを「見
え方」や「見せ方」を変えて実体験することができたら面白いのではないかと考え、目的を決定し
た。また、人の「見る」行為に近い状態を再現することができるヘッドマウントディスプレイと軽
量な web カメラを用いて装置の開発を行った。
(※文責: 野波淳里)
装置開発に利用した既製品
「見る」行為に面白さを付加する装置の開発をするにあたって,プログラミングによるソフトウェ
ア面と,映像を出力するハードウェア面の 2 つを主として作成した.しかし,全てを初めから開発
することは困難であるため,いくつかの既製品を利用した.利用した既製品についての説明を以下
に記載する.
(※文責: 野波淳里)
OpenCV
本プロジェクトでは目的の装置を開発するにあたって、オープンソースのコンピュータビジョン
向けライブラリである OpenCV(Open Source Computer Vision) を利用した。OpenCV は 1999
年からインテル社によって開発され、現在は Willow Garage が開発を行っている。2012 年 7 月 4
日にはバージョン 2.4.2 が発表された。OpenCV には、コンピュータビジョンに必要な各種数学関
数や描画関数、動画像処理用関数、物体検出などのパターン認識関数、カメラ位置や姿勢の検出な
どのカメラキャリブレーション関数、画像の読み込みや保存、表示、ビデオ入出力などのインター
フェース用関数など、画像処理に必要な関数がまとめられており、以下の処理を行うことができる。
• 画像処理(Image Processing)
– 勾配、エッジ、コーナー(Gradients, Edges and Corners)
– サンプリング、補間、幾何変換(Sampling, Interpolation and Geometrical Transforms)
– モルフォロジー演算(Morphological Operations)
– フィルタと色変換(Filters and Color Conversion)
– ピラミッドとその応用(Pyramids and the Applications)
– 画像分割、領域結合、輪郭検出(Image Segmentation, Connected Components and
Contour Retrieval)
– 画像と形状のモーメント(Image and Contour Moments)
Group Report of 2012 SISP
-2-
Group Number 19
Development of the application that uses imaging technology
– 特殊な画像変換(Special Image Transforms)
– ヒストグラム(Histograms)
– マッチング(Matching)
• 構造解析(Structural Analysis)
– 輪郭処理(Contour Processing)
– 計算幾何(Computational Geometry)
– 平面細分割(Planar Subdivisions)
• モーション解析と物体追跡(Motion Analysis and Object Tracking)
– 背景統計量の累積(Accumulation of Background Statistics)
– モーションテンプレート(Motion Templates)
– 物体追跡(Object Tracking)
– オプティカルフロー(Optical Flow)
– 推定器(Estimators)
• パターン認識(Pattern Recognition)
– 物体検出(Object Detection)
• カメラキャリブレーションと 3 次元再構成(Camera Calibration and 3D Reconstruction)
– カメラキャリブレーション(Camera Calibration)
– 姿勢推定(Pose Estimation)
– エピポーラ幾何(Epipolar Geometry)
• 機械学習(Machine Learning)
– 単純ベイズ分類器 (Naive Bayes Classifier)
– k 近傍法 (K Nearest Neighbors)
– サポートベクターマシン (SVM)
– 決定木 (Decision Trees)
– ブースティング (Boosting)
– ランダムツリー (Random Trees)
– EM アルゴリズム (Expectation-Maximization)
– ニューラルネットワーク (Neural Networks)
• ユーザーインタフェース(User Interface)
– シンプル GUI(Simple GUI)
– 画像の読み込みと保存(Loading and Saving Images)
– ビデオ入出力(Video I/O)
なお、本プロジェクトでは C++ に openCV を用いてプログラムを設計し、装置の開発を行った。
(※文責: 野波淳里)
用いた関数
OpenCV の機能として、画像処理についての関数を上記に記載したが、その中でも本プロジェク
トで用いた関数について説明する。I++ では画像処理についての関数だけでなく、カメラデバイ
スの管理やメモリ管理、機械学習などを用いており、全体において利用した関数を以下で説明する。
Group Report of 2012 SISP
-3-
Group Number 19
Development of the application that uses imaging technology
画像処理(Image Processing)
画像処理関数は、主に画像の特徴の検出や画素値への直接的な操作を行う関数である。また、複
数の画像に対して結合や分割などの処理も行うことができる。これによって画像を処理するだけで
なく、画像処理を施すことによって異なる処理を簡易的にすることも可能であり、そのための前処
理として使われることもある。
勾配、エッジ、コーナー(Gradients, Edges and Corners)
画像の勾配を確認することによってエッジやコーナーを検出し、それによってオブジェクトやテ
クスチャの端を検出することができる。画像ブロックの最小固有値の算出や固有ベクトルの計算な
ど、エッジやコーナーを検出するために必要となる処理だけでなく、検出されたコーナー位置の高
精度化などもできる。これによってオブジェクトの検出や認識、輪郭追跡などの処理を行いやすく
することができ、そのための前処理としても使われる。
サンプリング、補間、幾何変換(Sampling, Interpolation and Geometrical Transforms)
この関数では、2 次元画像の様々な幾何学変換を画像処理として行う。これによって画像の内容
は変更せずにピクセルグリッドのみを変形し、マッピングすることができる。例えば、OpenCV
ではアフィン変換によって画像を拡大や縮小、回転、移動させることができる。しかし画像を縮小
や回転、移動させたときには画像境界よりも外の画素値を表示しなければならなくなってしまう場
合がある。このようなときにサンプリングや補間処理を施し、画像の最も外側の画素値が外側無限
遠まで伸びていると仮定して画像の隙間を埋めることができる。
モルフォロジー演算(Morphological Operations)
モルフォロジーとは、2 値画像または濃淡画像からの特徴抽出を目的とした集合的操作からな
る対象図形の変形手法の理論体系である。OpenCV にはモルフォロジー演算の基本演算や、モル
フォロジー演算によるエッジ検出、トップハット変換、ブラックハット変換の関数が用意されてい
る。これによって画像のノイズ除去や平滑化、形状記述、テクスチャ解析、細線化などの処理をす
ることができる。
フィルタと色変換(Filters and Color Conversion)
OpenCV では、二次元マトリックス (フィルタ、カーネル) と、画像の処理対象領域の画素値と
の畳み込み演算によって実現される空間フィルタ処理ができる。これは画像勾配を求める微分フィ
ルタ処理の一部である。ガウシアンフィルタやブラーフィルタなどによって画素値を平滑化し、画
像を滑らかにすることができる。
ピラミッドとその応用(Pyramids and the Applications)
画像ピラミッドは解像度の異なる画像群から構成され、画像の拡大縮小表示やマッチングなどの
処理に用いられる。画像の拡大縮小表示や処理の高速化のために、加工元の画像を低解像度画像と
してガウスフィルタなどの処理を大まかに行い、徐々に精度を上げていくために使われる。マッチ
ング処理についても同様に、低解像度画像に対する荒い探索や構成を行い、徐々に高精度化させる
ことができる。
Group Report of 2012 SISP
-4-
Group Number 19
Development of the application that uses imaging technology
画像分割、領域結合、輪郭検出(Image Segmentation, Connected Components and
Contour Retrieval)
画像の特徴から、画像の分割や結合などを可能とする。画像をセグメント化することによって画
像を分割及び結合し、ひとつの画像で部分的な加工処理をすることができる。この関数は 2 値画像
を用いて輪郭を検出するだけでなく、その輪郭の内部を置き換えることもできる。その他にも画像
ピラミッドを用いてセグメント化を行うことなどもできる。
ヒストグラム(Histograms)
画像処理におけるヒストグラムとは、輝度値がどのように分布しているかをグラフで表したもの
である。画像の輝度値を均一化することによって明るさや濃さを調整することができる。また、輝
度値を画像の特徴検出の前処理として使うことによってマッチング処理などの処理の補助を行うこ
ともできる。近年ではデジタルカメラなどにもヒストグラムを表示する機能があるものもある。
マッチング(Matching)
マッチングは画像内にあるオブジェクトの特徴からオブジェクトを特定することである。マッチ
ングの方法には複数あり、OpenCV ではテンプレートマッチングだけでなく、重み付き点分布間
の最小コスト距離の計算、形状比較によるマッチングができる。
構造解析(Structural Analysis)
構造解析関数は、画像の構造を解析するための計算処理や画像分割、輪郭処理を行う関数であ
る。これによって画像内において範囲の検出や指定をし、画像処理を施すことができる。
輪郭処理(Contour Processing)
輪郭処理では輪郭の抽出だけではなく、抽出した輪郭内の面積の計算や複数の輪郭の比較、二分
木による輪郭復元などができる。また、輪郭の周囲長または曲線の長さを計算することもできる。
計算幾何(Computational Geometry)
OpenCV では点列の凸包を求めるという基本的な凸包問題やポリゴンで表される領域内に点が
含まれるか否かを調べる点位置決定問題など基本的な計算幾何問題を解く関数が用意されている。
また、矩形を包含する矩形の計算、点列に対する線のフィッティングを行う関数なども用意されて
いる。
平面細分割(Planar Subdivisions)
平面細分割とは、重複しない小領域 (細分割面) で全平面を細分化することである。全ての細分
割に対して、面と点 (細分割頂点) の役割を入れ替えた双対細分割も存在し、元の再分割の頂点は
面として扱われている。なお、OpenCV ではドロネーのアルゴリズムを用いて平面を三角形に細
分化している。これは平面の 3 次元区分変換やモーフィング、平面上の点の高速な位置同定、特殊
なグラフ(NNG や RNG)の生成などに利用される。
Group Report of 2012 SISP
-5-
Group Number 19
Development of the application that uses imaging technology
モーション解析と物体追跡(Motion Analysis and Object Tracking)
モーション解析と物体追跡の関数では動画像に対して画像処理を行うためにオブジェクトの動
きや勾配の変化を解析する。人物などの姿勢、サイズ、中心の解析だけでなく、画素値におけるフ
ロー計算なども行う。
背景統計量の累積(Accumulation of Background Statistics)
OpenCV では背景差分を、背景画像の時間的な変化を考慮した動的背景更新によるロバストな
注目物体の検出手法によって算出している。このとき、背景の画素値であるかどうかを判別するた
めに背景領域画素の輝度をモデル化している。これによって、背景からのオブジェクト切り抜き
や、それによる指定範囲における画像処理が可能となる。
モーションテンプレート(Motion Templates)
モーション履歴画像からマスク処理を行い、オブジェクトのモーション方向、モーション角度を
計算する。これを用いて、物体追跡やオブジェクトの移動予測ができる。
物体追跡(Object Tracking)
これは、モーションテンプレートを用いることによって実現可能とされる処理である。また、物
体を追跡する際に描画する矩形及び円形についての描画設定も行う。
オプティカルフロー(Optical Flow)
オプティカルフローとは、連続した時間の画像列を利用して画像の速度場を求め、それをベク
トル集合で表現したものである。オプティカルフローには勾配法やブロックマッチング法があり、
OpenCV では両方の処理方法における演算が可能である。
勾配法は、輝度の時間と輝度勾配の拘束方程式を用いてフローを求めるため高速に計算をするこ
とができるが、誤差が発生しやすくなる。これに対してブロックマッチング法は、画像中にあるブ
ロックをテンプレートとしてマッチング処理を行ってフローを求める。そのため、計算時間が勾配
法よりもかかってしまう。
推定器(Estimators)
OpenCV には推定器としてパーティクルフィルタが実装されている。パーティクルフィルタは
時系列フィルタの一種で、モンテカルロ法によって最適解を用いる。リサンプリングを行ってパー
ティクルを撒き、パーティクルの状態方程式に基づいて移動速度を予測し、それによって重み付け
を行う。この結果から状態を推定している。
パターン認識(Pattern Recognition)
OpenCV では、パターン認識として物体検出をすることができる。認識できる物体の一例とし
て、顔や目などがある。顔や目などの検出する物体については、OpenCV 内に学習ファイルが内
蔵されており、入力された画像と比較して認識を行う。
Group Report of 2012 SISP
-6-
Group Number 19
Development of the application that uses imaging technology
物体検出(Object Detection)
パターン認識の一例として挙げた顔認識では顔認識用の学習ファイルと画像を比較し、顔を検出
する。このときの検出には弱分類器のカスケードを用いている。これは、基本分類器として特徴の
入力と決定木を作り、それらを複合させてステージ分類器を作る。これによって最終的なカスケー
ドを構成し、認識時に入力される画像は、カスケードの各ステージにおいて評価され、それら全て
のステージをパスすれば、その部分画像は検出したい物体を含んでいるとされる。
カメラキャリブレーションと 3 次元再構成(Camera Calibration and 3D Reconstruction)
OpenCV では、カメラデバイスを管理する関数にパラメータをあてることでカメラキャリブ
レーションを行うだけでなく、3 次元座点などのシーンビューを構成することができる。
カメラキャリブレーション(Camera Calibration)
カメラキャリブレーションとはカメラデバイスごとに存在する、レンズの歪みや焦点距離などの
特性を求めることである。カメラの特性を知ることによって入力された画像の歪みを計算によって
修正し、画像の調整を行う。
機械学習(Machine Learning)
OpenCV では、パターンを自分で学習させることができる。以下に表記する方法によって必要
なデータを用意して OpenCV に学習させることで、特定の物体を検出させることができる。
単純ベイズ分類器 (Naive Bayes Classifier)
単純ベイズ分類器は、各クラスの特徴ベクトルが正規分布する事を仮定した分類モデルでによっ
て学習をする方法である。全体的なデータ分布関数は 1 クラスに対して 1 成分の混合ガウス分布
で表現できると仮定し、学習データを用いて各クラスの平均ベクトルと共分散行列を推定及び予測
を行う。
k 近傍法 (K Nearest Neighbors)
k 近傍法では、予測のために与えられたベクトルの近傍にある既知の応答を用いて特徴ベクトル
を調べるという方法で学習する。最初に学習用データを全て取り込んだ後に新たに追加されるデー
タの応答を適当な数の近傍を分析及び予測する。
サポートベクターマシン (SVM)
サポートベクターマシンでは、カーネル関数を用いて特徴ベクトルを高次元空間にマップし、こ
の空間における最適な線形分離関数を形成させる。このとき、OpenCV では高次元空間マッピン
グが陽に定義されない代わりに、超空間における二点間距離などが必要となる。
決定木 (Decision Trees)
OpenCV は決定木によって画像内の特徴予測や学習を行うことができる。予測手続きは、最初
にルートノードから開始して葉に到達することで入力特徴ベクトルに対する応答を得る。この処理
はある変数の値を基に、葉ではない各ノードから左あるいは右に分岐して進む。入力された離散変
数が取りうる値の有限集合の内、ある値の部分集合に属するかが調べられ、それによってまた左か
Group Report of 2012 SISP
-7-
Group Number 19
Development of the application that uses imaging technology
右に進んでいく。このように処理を進めて葉ノードに到達すると、そのノードの値が予測の出力値
となる。
決定木による学習は、ルートノードを分岐させることで役割を果たしている。各ノードにおい
て、ある基準に基づき、最適な決定規則が求められる。学習データにおける第一分岐の結果に類似
した代理分岐を作成し、それを用いて再び左右のノードへと分類する。この処理は再帰的に行わ
れ、特定の条件を満たすことで分岐を終了し、それによって学習をする。
ブースティング (Boosting)
ブースティングは、弱い分類器の能力を組み合わせることで学習を実現している。分類器のひと
つひとつを見ると計算コストの小さいものを組み合わせ、それによって強力な分類器を構成して
いる。これは、シンプルベクターマシンなどの単一の強力な分類器よりも良い性能を示すことも
ある。
ランダムツリー (Random Trees)
ランダムツリーは決定木を集めたものであり、その決定木の全ての木によって分類を行い、最も
多く選ばれたノードからクラスラベルを出力する。集めた集合木は同じパラメータで学習されてい
るが、そこで使われるデータはブーストラップ法と呼ばれる統計的推論によって元の学習データ
から生成されている。そのため、パラメータは同じであってもデータは木によって異なることにな
る。また、学習のためのデータは同じ個数のベクトルを元の集合からランダムに選択し、選択され
た部分集合によって学習を行う。
EM アルゴリズム (Expectation-Maximization)
EM アルゴリズムは、混合数が指定された混合ガウス分布に基づいて多変量の確率密度関数のパ
ラメータを推定する学習方法である。EM アルゴリズムの特徴として反復計算によって結果を算出
する方法が挙げられる。混合分布パラメータの推定値を用いてサンプルが分布内に属する確率を求
める第 1 ステップと、求められた確率から混合分布パラメータの推定値を最大化する第 2 ステップ
によって結果が出力される。
ニューラルネットワーク (Neural Networks)
OpenCV にはフィードフォワードのニューラルネットワークが用意されている。これは多層構
造のパーセプトロンであり、入力層と出力層の間に任意の個数の中間層が存在する。入力層と中間
層、中間層と出力層はそれぞれ一方向につながっており、各層において入力された値に重みなどを
加えた合計値が次の層の適合位置に出力される。これによってデータを計算によって振り分け、そ
の結果を元に学習を行う。
ユーザーインタフェース(User Interface)
ユーザーインタフェースはコンピュータなどの機械と、その機械の利用者間での情報を交換する
ためのインタフェースである。OpenCV においては、ウィンドウの表示や破棄などのメモリ管理
から画像の入出力など、カメラデバイスとの連携に関する処理を行う。本プロジェクトにおいて
ユーザーインタフェースの関数はプログラムを組むにあたって基盤となっている。
Group Report of 2012 SISP
-8-
Group Number 19
Development of the application that uses imaging technology
シンプル GUI(Simple GUI)
シンプル GUI 関数では、ウィンドウメモリの確保やウィンドウメモリの破棄、ウィンドウの
表示を主に行う。また、ウィンドウのリサイズや移動、画像の描画、マウスのコールバック処理、
キーイベント処理などができる。
画像の読み込みと保存(Loading and Saving Images)
この関数ではコンピュータなどで用意された画像の読み込みや、入力されている画像をコン
ピュータ内に保存する処理を行う。画像を読み込むことによって、指定された画像ファイルポイン
タを返し、プログラム上で入力画像として識別し、OpenCV の画像処理を施すことができる。こ
のとき、8 ビットカラーやグレースケールなどを事前に指定して読み込むこともできる。
画像の保存では、8 ビット 1 チャンネルまたは 8 ビット 3 チャンネルで画像を指定したファイル
に保存することができる。そのため、フォーマットやチャンネルなどは保存する前に画像を加工す
る処理を加える必要がある。また、画像フォーマットは拡張子によって決定される。
ビデオ入出力(Video I/O)
OpenCV では、この関数を用いることでプログラムによる動画の入出力ができる。Web カメラ
で撮影した動画像を入力動画像として処理を行うなど、カメラデバイスとのやり取りを主に管理し
ている。ビデオキャプチャ構造体を生成し、カメラデバイスに合わせてポインタを返すことによっ
て処理を実現している。また、ビデオの 1 フレームを返すこともでき、スクリーンショットとして
ビデオの一部を保存することもできる。
ビデオを出力する際には、ビデオライタ構造体という構造体を生成し、フレームごとに構造体に
格納をしていく。これはビデオキャプチャ構造体からフレームを取り出す処理とは逆の手順を行う
ことと類似している。
(※文責: 野波淳里)
ヘッドマウントディスプレイ HMZ-T1
本プロジェクトで設計した装置には SONY より 2011 年 11 月 11 日に発売されたヘッドマウン
トディスプレイ、HMZ-T1 を使用した。HMZ-T1 は広視野角 45 度の実現と人の視野特性に基づ
くシールディング構造を取り入れており、本プロジェクトの目的である、人の「見る」行為に近付
けることができるのではないかと考え、HMZ-T1 を使用した。また色再現性や動画応答性にも長
けていることから、目的の達成に適していると考えた。
(※文責: 野波淳里)
Web カメラ
目的とする画像処理を加えるにあたって、映像を一度コンピュータに取り込む必要があったた
め、Web カメラを使用した。また、ここで用いる Web カメラは人間の視界の役割を果たすため、
目の高さに設置する必要があった。そのため比較的軽量な Web カメラを用意し、装置に固定した。
現在は web カメラの種類を統一することができていないため、これから統一化をはかる。
(※文責: 野波淳里)
Group Report of 2012 SISP
-9-
Group Number 19
Development of the application that uses imaging technology
第 2 章 本プロジェクトの概要
2.1
目標
本プロジェクトの目標は、本プロジェクトがテーマとして掲げた、「見る」行為に面白さを付加
する装置の開発である。この装置は、人が普段見ている視界を操作・加工したり、人が普段見るこ
とにできない左右、背後、真上まで視界を広げることによって、人の「見る」という行為に面白さ
を付加することができる装置である。
(※文責: 小林俊樹)
2.2
課題
本プロジェクトの目標を達成するに当たっての課題は、以下の通りである。
・周囲の映像を取り込み、装置のユーザーの視界に映し出すデバイスの作成
カメラなどを用いて、周囲の映像を取り込み、さらにユーザーの視界に映し出すデバイス
を作成する。ユーザーの視界に映し出す際は、なるべくユーザーの普段の視界に近く、違和
感の無い形で映し出すことが望まれる。また、装置を使用しながら、歩いたり、別の作業が
出来るといった形が望まれる。
・動画をリアルタイムに制御・加工・表示するプログラムの構築
デバイスから取り込んだ映像に様々な加工を施し、映し出すためのプログラムを構築す
る。また、ユーザーが自分の意思でそれらを制御するための機構も取り入れる。
(※文責: 小林俊樹)
2.3
課題の分担
装置開発のすべての作業に全員が関わったほうがいいとのアドバイスを担当教員より受け、メン
バーもそれぞれが色々な経験をしてみたいとの意見で一致した。そのため、積極的に関わる分野に
違いはあったものの、特別にグループを分けるということはせずにメンバー全体で情報を共有しな
がら成果物の製作を進めた。また前期で行われた話し合いの場で発言するメンバーが偏ってしまう
ということが後期の初めのスケジュール決定の時に指摘された。そのため後期では、話し合いを行
う際にのみ 5 人の小グループに分かれることでメンバー全員の積極的な発言を促すようにした。ポ
スターおよび最終発表で使用するスライドの製作には、中間発表の時と同じくそれぞれ一人ずつの
担当者を決め、手の空いているメンバーがいればそれぞれの製作をサポートするというように取り
組んだ。
(※文責: 谷岡翔馬)
Group Report of 2012 SISP
- 10 -
Group Number 19
Development of the application that uses imaging technology
第3章
3.1
課題解決のプロセス
プロトタイプ
前期はプロトタイプとして、ヘッドマウントディスプレイの周辺に 8 個の Web カメラを装着し
た装置を開発し、これを「I++」と名付けた。I++ という名前には、「私たちが想像した面白さ」
を意味する “Interesting” と “Imagination” という 2 つの「I」を、目 (視界) を意味する “Eye” に
付加する、という意味が込められている。
プロトタイプでは、8 個の Web カメラを切り替えることで、水平 360 度の視界を実現している。
これにより、頭を動かさなくとも後方や横、斜め後方などを見ることが可能となっている。前方以
外の映像を見ながら移動した場合、前方に障害物があったとしても回避することが難しいため、前
方確認用として小さなウィンドウを視界の右下に表示出来るようにした。
Web カメラを切り替えたとき、現在見ている映像の方向を確認出来るように、Web カメラと同
じ個数の三角形を用いて映像を取得している Web カメラの位置を表現し、視界の右上に表示した。
Web カメラを切り替えて様々な方向の映像を見ることが出来るだけでなく、映像自体に変化を
与えることも可能となっている。映像を拡大縮小、回転させることもでき、更に、映像に 2 値化や
ネガポジ反転といった特殊な効果を施すことで、白黒の視界や色の反転した視界を体験することが
出来る。
Web カメラの切り替え、映像の拡大縮小などの各操作はゲームのコントローラーを用いて行う。
以下にプロトタイプの外装を示す。(図 3.1)
図 3.1
プロトタイプ
(※文責: 森理美)
Group Report of 2012 SISP
- 11 -
Group Number 19
Development of the application that uses imaging technology
3.1.1
ハードウェア
ハードウェア 改良のプロセス
(1) ハードウェア作成が決定
プロジェクトのテーマが決定し、360 度の映像を取得することが決定した。360 度の映像
を取得するため、多くの Web カメラを頭の周りに固定する必要があった。6 月 22 日 (金)
には Web カメラを 4 個つなげてヘッドマウントディスプレイで表示することが決まった。
そこで考えなければならないことがいくつか出てきた。
決めなければならないこと
• Web カメラと Web カメラの間は何 cm にするべきか
• Web カメラの固定の方法
• ヘッドマウントディスプレイとどのように接続するのか
• パソコンと Web カメラのつなぎ方
(2)Web カメラの分解
今後 Web カメラを増やしていくことを考えると、できるだけ、軽くコンパクトな Web カ
メラにする必要があると思われた。こそで、比較的小さい Web カメラを購入し分解した。
Web カメラの分解では、まず Web カメラを支えている土台部分をはずした。その後、基盤
がむき出しの状態にまで Web カメラを分解した。しかし、基盤をむき出しにしたことで、
Web カメラは壊れてしまった。配線が傷つき、ピント調節ができなくなったのである。ま
た、熱を持ってしまうという問題も生じた。Web カメラを分解したことで、故障してしまっ
た失敗を踏まえ、その後は Web カメラを小さくする際は土台部分を取り外すのみにした。
ここで、Web カメラの「基盤をむき出しにしてはいけない」ということが分かった。
(3) ハードウェアの仕様変更
その後のプログラミングとの調整で Web カメラの数を 4 個から 8 個に増やすことが決定
した。これにより、8 個の Web カメラを水平に等間隔に固定しなければならなくなった。
(4)8 個の Web カメラを固定
8 個の Web カメラを頭に固定するには、何をもちいるべきか話し合いを行った。この話
し合いでは、
「厚紙に Web カメラを固定する」
「プラスチックダンボールに Web カメラを固
定する」「ヘルメットに Web カメラを固定する」「帽子に Web カメラを固定する」「ゴムバ
ンドに Web カメラを固定する」「バンダナに Web カメラを固定する」などのアイディアが
出された。また、何を用いて Web カメラを取り付けるかについても話し合った。そこでは
「粘土を用いて固定する」「接着剤を用いて固定する」「糸を用いて固定する」「テープを用い
て固定する」などのアイディアが出された。これらのアイディアを元に、ダイソーに買い物
に行き、ざまざまな材料を購入し、プロトタイプの作成を行った。
・厚紙に Web カメラを固定
まずはじめに厚紙に Web カメラを固定した。しかし、すぐに Web カメラが傾いて
Group Report of 2012 SISP
- 12 -
Group Number 19
Development of the application that uses imaging technology
しまい、厚紙では Web カメラの重さを支えきれないことが分かった。
・プラスチックダンボールに Web カメラを固定
次にプラスチックダンボールで Web カメラの固定をした。まず、ダンボールの線に
あわせて、切り込みをいれ、Web カメラのケーブルを入れようとした。しかし、ケーブ
ルを入れたものの、Web カメラの固定ができないということがわかった。また、プラ
スチックダンボールは加工が難しく、うまく頭に合わせた形に変えることができなかっ
た。
・帽子に Web カメラを固定
次に、帽子に Web カメラを固定することにした。ここでは 2 種類の帽子で試してみ
た。麦わら帽子と、キャップを用いた。
(i) 麦わら帽子に Web カメラを固定
はじめに、「麦わら帽子」に Web カメラの固定を試みた。「麦わら帽子」のツバ
の部分は必要ないため、網目をほどき取り除いた。そして、この「麦わら帽子」を
様々な人がかぶってみた。すると、帽子が小さすぎて入らない人がいた。そこで、
「麦わら帽子」を使う案は却下された。ここで、頭のサイズに関係なくかぶれる帽
子が必要だということがわかった。
(ii) キャップに Web カメラを固定
「麦わら帽子」では頭の大きさを調節できないという問題が生じたため、次に頭
の大きさを調節できる「キャップ」を使用した。「キャップ」の加工では、はじめに
必要ないツバの部分を取り除いた。このとき、形がいびつにならないよう、縫い目
の部分をほどいてツバを取り外した。また 8 個の Web カメラを固定するため、ゴ
ムを使用することにした。ゴムは太さ 2cm ほどのものを用いた。ある人のヘッド
マウントディスプレイをかぶった時点での頭の周囲を測ると、83cm であった。そ
こであらかじめ、83cm のゴムに等間隔に 8 個の穴を開けておいた。この穴の長さ
はおよそ 1.5cm であった。等間隔に 1.5cm ほどの穴を 8 個開けたゴムを帽子に縫
い付けた(図 3.2)
ゴムに空けた穴には USB ケーブルを差し込んだ。この「キャップ」は、通常後
ろにくる、長さの調節できる部分を前にしてかぶった。また、長く残したゴム部分
はヘッドマウントディスプレイに固定した。そして、まず Web カメラを 1 台固定
して、実際にかぶってみた(図 3.3)。
後頭部に 1 台の Web カメラを固定したときは、しっかりと Web カメラが固定
できているように思えた。そこで、次はカメラの数を増やしてもう一度かぶってみ
た。すると人それぞれ頭のサイズが異なるため、ゴムが伸び、Web カメラが等間
隔でなくなってしまった。また、ヘッドマウントディスプレイと固定した際、Web
カメラの向きを固定することが難しかった。Web カメラが上や下を向いてしまう
という問題が生じた(図 3.4)。
このように、Web カメラを正面に向けることは難しく、キャップにゴムを縫い
つけ、Web カメラを固定する方法での固定は難しいことが分かった。
Group Report of 2012 SISP
- 13 -
Group Number 19
Development of the application that uses imaging technology
図 3.2
図 3.3
Group Report of 2012 SISP
帽子にゴムを縫い付けた様子
帽子にカメラ 1 台を固定
- 14 -
Group Number 19
Development of the application that uses imaging technology
図 3.4
帽子にカメラを複数台固定
(※文責: 北みさと)
ハードウェア 改良案
複数のプロセスを経て、ヘッドマウントディスプレイとカメラを固定する前に Web カメラ間の
間隔や向きを固定する必要があると考えられた。そこで、材料から検討することとなった。
材料の決定
人の頭のサイズがそれぞれで異なるということから、多くの人が装着できるように伸縮性
のあるゴムを選択していた。しかし、ゴムを利用すると Web カメラの向きを水平に固定す
ることが難しいということを受け、伸縮性がなく且つ全ての Web カメラを水平線上に取り
付けられるものを利用することとした。そこで、この条件を満たすものとして革製のベルト
が用いられた。ベルトであればある程度の強度があるので、Web カメラを取り付けるため
の穴を開けたとしても、Web カメラを水平に保つことができるのではないかと考えた。
頭のサイズが人によって異なることについては、固定の仕方を工夫することで対処するも
のとして、今回は最初からベルトの大きさを決めてしまい、ヘッドマウントディスプレイを
装着した後、その上から Web カメラのついたベルトを被る形とした。
使用する Web カメラについては、全ての Web カメラを統一することが出来なかったの
で、画素数のみ一定値以上でそろえ、大きさなどはバラバラのまま使用した。
Web カメラを分解する際、既に分解したものの一部が基盤を剥き出しの状態にしたため
に不具合が生じてしまったことから、不具合による影響を最小限に抑えるため、他の Web
カメラは土台を外す程度に留めた。
(2)Web カメラの固定
実際にヘッドマウントディスプレイを装着した人に何もつけていないベルトを被せ、少し
余裕がある大きさで固定した。その際、ベルトの余った部分と金具は取り除き、定めた位置
で端を縫い合わせた。
円形で固定したベルトに Web カメラを取り付けるため、ゴムに開けたときと同じように、
Group Report of 2012 SISP
- 15 -
Group Number 19
Development of the application that uses imaging technology
等間隔の穴を 8 箇所開けた。このとき、Web カメラの形状がそれぞれ異なっていたため、
はめ込むことで固定出来そうであればその大きさに合わせた穴を、それ以外のものはベルト
の強度を保つために、USB が通るぐらいの最小限の大きさの穴を開けた。はめ込む形にす
るとベルトの一部が細くなり、強度に不安があったが、Web カメラをはめ込んでも亀裂な
どが入らなかったことから、千切れる恐れはないと判断した。
8 個の Web カメラを全て通してセロハンテープなどで仮固定し、実際にヘッドマウント
ディスプレイと組み合わせて使用したところ、Web カメラの位置は固定されたが、額とヘッ
ドマウントディスプレイの隙間から入ってくる光が新たな問題として浮上した。この光があ
ることで、ヘッドマウントディスプレイに映る映像が見え難くなることや、光の量によって
は眩しさを感じる可能性があるとして、解決すべきものであると判断した。
この問題への対処として、布を利用して上の隙間を覆ってしまう方法がとられた。実際に
ヘッドマウントディスプレイを装着している人の、光が差し込むところに布をあてて大まか
なサイズを決めた。光をより遮断するために布を二重にし、それをベルトに縫い付けて固定
した。このとき、Web カメラを通す穴も塞がってしまったので、ベルトに開けた穴に合わ
せて布にも穴を開け、そこから Web カメラを通すようにした。このようにして、可能な限
り光を遮断することに成功した。また、装着したヘッドマウントディスプレイの下から入り
込む光についても、上部を覆うことでわずかながら抑えている。
Web カメラの付いたベルトを、ヘッドマウントディスプレイの上から被った際に、Web
カメラの向きがずれてしまい意図しない方向を向く Web カメラもあったため、しっかりと
ベルトに固定する必要があった。前段階でベルトに開けた穴にはめ込む形で固定した Web
カメラは問題なかったが、それ以外の USB だけを通して本体はセロハンテープで固定して
いた Web カメラを、ワイヤーを紙と接着剤を用いてベルトに固定した。後々の微調整が可
能なように、Web カメラ本体に直接接着剤をつけるのではなく、ベルトと Web カメラそれ
ぞれに紙を付け、その紙同士を接着剤で固定した。
Web カメラが統一されていなかったために、前方の Web カメラだけ形状が異なり、ま
た、サイズが大きく、そこに重心がかかることで、使用しているうちに下に傾きやすくなっ
ていた。そこで、Web カメラから取り除いた土台に付属していたアームをヘッドマウント
ディスプレイにテープで固定し、そのアームを利用して前方の Web カメラを支えるように
することで、下向きになることを防いだ。これにより、前方の Web カメラを水平な位置を
保つことが出来た。
ヘッドマウントディスプレイとベルトの固定については、前頭部は光を遮断する布が頭に
覆い被さるようになっており、また、前述の通りアームで前方の Web カメラを支える形に
したため、Web カメラの位置が下がることはなかった。しかし、後方は頭を動かしたとき
に、Web カメラの重さにより下がってしまう可能性や、前方に引っ張られて Web カメラ
が上向きになる可能性があった。そのような Web カメラが下がってしまったり、上向きに
なってしまうことによる位置のずれを防ぐため、ヘッドマウントディスプレイについてい
る、ヘッドマウントディスプレイを頭部に固定するためのバンドに毛糸をつけ、Web カメ
ラのついたベルトを被ってから、後方の Web カメラに毛糸を括り付けて固定するようにし
た。そうすることで、全ての Web カメラを水平位置に固定することができた。
(3) ケーブルのまとめ方
Group Report of 2012 SISP
- 16 -
Group Number 19
Development of the application that uses imaging technology
この段階では、ケーブルは Web カメラの位置からただ伸びているだけなので、手や頭を
動かすときの障害になっていた。そこで、前方と斜め前方向の Web カメラのケーブルを左
右に分け、ベルトの内側に沿わせてまとめることとした。まとめたケーブルの上から所々
に小さな布を被せてベルトと固定し、ベルトの内側で絡まることがないように工夫をした。
更に後方の Web カメラのケーブルと一まとめすることで、コントローラーで操作する際、
ケーブルに引っかからないようにした。これにより、ケーブル同士が絡まることも防いでい
る。
キャリーバッグ用の幅の広いベルトに布を袋状に縫いつけ、そこに Web カメラとコント
ローラーのケーブルが接続されている USB ハブを入れて背負う形にし、非常に狭い範囲で
はあるが、歩行を可能とした。
実際に装着したときの様子を図 3.5 に示す。この図にあるように、Web カメラのケーブ
ルは全て後ろにあり、他に一本だけ伸びているケーブルはヘッドマウントディスプレイのも
のである。このケーブルは USB ハブではなく、別に接続する必要があったため、Web カメ
ラと共にまとめずそのままにした。
図 3.5 I++ を装着した様子
(※文責: 森理美)
3.1.2
プログラム
画像を Web カメラから取り込み、画像処理を経てヘッドマウントディスプレイに投影するため
のプログラムを制作した。OpenCV の使用が目的達成への近道であると判断し、言語として C++
と OpenCV ライブラリを使用した。
Group Report of 2012 SISP
- 17 -
Group Number 19
Development of the application that uses imaging technology
(※文責: 苗加悠貴)
プログラムの流れ
I++ の周囲についている Web カメラから画像を読み込み、読み込んだ画像に対して画像処理を
加え、フルスクリーンで表示する、という手順でプログラムは処理を行う。プログラムは起動時に
まず Web カメラから画像を読み込み構造体に格納する。次にプログラムは画像をアフィン変換す
る。アフィン変換を行うことによって画像の基本的な変形である拡大・縮小・回転・平面移動が可
能となる。フィルタ処理をオンにしている場合、画像にフィルタ処理がなされる。これにより視覚
的に特殊な効果を付加する事ができる。フィルタ処理の詳細については後述する。処理がなされた
画像はフルスクリーンで PC 上に表示され、それをヘッドマウントディスプレイに投影する。上記
処理をループさせることにより、リアルタイムで視界が反映されるようになっている。
(※文責: 苗加悠貴)
OpenCV の基本的な考え方
以降のプログラムの説明がわかりやすいよう、OpenCV における画像の基本的な考え方について
先に補足する。OpenCV で画像処理を行う場合、画像の情報はすべて IplImage という構造体(正
確にはそのポインタ)に格納され、その上で処理される。格納のパターンは様々で、cvLoadImage
関数で外部から画像を読み込む、cvCreateImage 関数で新しい画像を作成する、cvCloneImage 関
数で他の IplImage のデータをコピーする、などの方法がある。こうして格納された画像のデータ
を様々な方法で加工・変更し、そこから一般の画像ファイルに出力したり、ウィンドウに表示した
り、というのが OpenCV の主な流れとなる。
なお、この IplImage は、中身が画像の情報そのものであること、またその分のメモリ領域を確
保するということから、単に画像や、画像の領域として扱われる事が多い。以下に何度か現れる、
画像、領域といった単語が、およそこのデータを指している事を先述しておく。
(※文責: 金子真二郎)
プログラムに実装した機能
完成したプロトタイプにて実装した各種機能について紹介する。前述したように、I++ では画
像処理を利用した様々な機能を実装した。これにより、ヘッドマウントディスプレイに投影する映
像に多様な変化を加えている。以下、それら各機能の概要、及び実装するために用いた処理方法に
ついて説明する。
(※文責: 金子真二郎)
・拡大縮小、回転、平行移動
拡大縮小は、文字通り表示する映像を拡大、縮小する機能である。回転も同様に、Web カ
メラの映像をある点を中心に回転して表示する。また、平行移動は、画面上に表示されてい
る映像の位置を上下左右に移動する機能である。
これらの機能には、アフィン変換という処理を使用した(図 3.6)
。アフィン変換とは、拡
大縮小、回転、平行移動などの画像処理を、3 × 3 の行列を使ってまとめて行う変換手法で
ある。OpenCV には、アフィン変換を行うための 2 つの関数が用意されている。一方は、2
Group Report of 2012 SISP
- 18 -
Group Number 19
Development of the application that uses imaging technology
つの三角形の 3 点の座標を引数として、一方の三角形からもう一方の三角形にアフィン変換
するための変換行列を返す cvGetAffineTransform 関数、もう一方は、その変換行列に従っ
て画像をアフィン変換する cvWarpAffine 関数である。簡単に説明すると、ある三角形を別
の三角形にするための計算を、そのまま変換したい画像に当ててやる、という仕組みであ
る。これら 2 つの関数を併用することで、アフィン変換による拡大縮小、回転、平行移動の
機能を実装した。
また、拡大縮小の手法として、cvResize 関数を使う方法も存在した。この関数は、入力画
像と出力画像を引数とし、出力画像のサイズに正確に合うよう入力画像のサイズを変更して
出力画像にコピーする、という処理を行う。この機能では、アフィン変換の方が他の処理も
同時に行うことが可能で有効だったため使用しなかった。しかし、後述する小窓表示などに
おいて、画像のサイズを合わせた上でコピーするという性質上使い勝手がよく、重宝する関
数であった。
図 3.6
アフィン変換による拡大縮小、回転、平行移動
(※文責: 金子真二郎)
・小窓表示
小窓表示は、映像表示領域上の一部に別な映像を表示する機能、即ち 1 つの画面に複数の
映像を表示する機能である(図 3.7)
。元々は多方向を同時に見るための機能だったが、プロ
トタイプにおいては、常に正面のカメラの映像を表示しておくために使用した。
この機能の実装には、OpenCV の ROI(Region Of Interest)を利用した。ROI を用い
ると、ある指定した座標の領域を 1 つの画像領域として処理することができる。これにより
指定した領域に、先述した cvResize 関数で画像をコピーすることによって、1 つの領域上に
複数の画像を表示した。
また、小窓の表示位置を移動できるよう実装した際に、ウィンドウの領域からはみ出よう
とすると不具合が発生した。これを解決するため、入力画像を 1 画素ずつ指定した領域にコ
ピーする関数を作成して対応した。しかし、最終的に小窓は固定する形になり、こちらの方
が若干処理が重たかったため、ROI の手法を採用した。
Group Report of 2012 SISP
- 19 -
Group Number 19
Development of the application that uses imaging technology
(※文責: 金子真二郎)
図 3.7 ROI による小窓表示
・カメラ切替
映像を取得する Web カメラを切り替える機能である。頭部の周囲に設置した 8 つの Web
カメラのうちどの Web カメラから映像を取得するか切り替えることで、任意の Web カメ
ラからの映像を表示することができる。I++ では、360 度の視界を得ることを一つの目標と
していたため、それを実現するために実装した。
この機能では、各 Web カメラに引数を与え、映像を取得するカメラを切り替えるように
した。それぞれ Web カメラに引数を与えるために、videoInput ライブラリの listDevices
関数を使用した。また、一つの USB ポートからは一度に 2 台の Web カメラの映像しか取
得できなかったため、上述した小窓表示のための前方の Web カメラと、切替により指定さ
れた Web カメラの 2 台から映像を取得するように設定した。その他、現在見ている方向が
分かったほうが良いとの意見があったため、図形描画を利用して、現在映像を取得している
Web カメラの方向を画面右上に表示した(図 3.8)。
(※文責: 金子真二郎)
・エフェクト
映像に特殊な視覚効果を加える機能である。この機能は、OpenCV の関数として用意さ
れたフィルタ処理によって実装した。プロトタイプでは、グロー、エッジ抽出 (1)、エッジ
抽出 (2)、ネガポジ、2 値化の 5 種類のエフェクトを実装した。ユーザーは、これらのエフェ
クトを任意に選択して利用することができる。以下、実装した各エフェクトと、その処理方
法について説明する。
Group Report of 2012 SISP
- 20 -
Group Number 19
Development of the application that uses imaging technology
図 3.8 カメラ方向表示
図 3.9
元画像
グロー
グローは、発光しているような効果を付加するエフェクトである(図 3.10)。このエ
フェクトでは、cvSmooth 関数を利用して画像にぼかしを加え、ぼかした画像の RGB
値を cvAdd 関数を用いてオリジナルの画像に加算する、という処理を行う。これによ
り、物体の輪郭に光芒が発生したように見せることが出来る。
図 3.10
グロー
エッジ抽出 (1)
エッジ抽出 (1) は、物体の輪郭を抽出して強調表示するエフェクトである。このエ
フェクトは、cvCvtColor 関数によって画像をグレースケールに変換した後、cvSobel 関
数によって x 方向、y 方向に微分した画像をそれぞれ生成する。生成した画像を cvAdd
Group Report of 2012 SISP
- 21 -
Group Number 19
Development of the application that uses imaging technology
関数を用いて足し合わせ、xy 方向に微分した画像とすることで、輪郭を強調した画像
を得ることができる。
エッジ抽出 (2)
エッジ抽出 (2) は、エッジ抽出 (1) よりさらに輪郭を強調して表示するエフェクトで
ある(図 3.57)。このエフェクトは、画像をグレースケールに変換した後、cvCanny 関
数を使用してエッジの抽出を行う。cvCanny 関数はキャニー法と呼ばれるアルゴリズ
ムを利用したもので、輪郭の検出、輪郭の連続の判定に閾値を設定し、それに従って処
理を行う。
図 3.11
エッジ抽出 (2)
ネガポジ
ネガポジは、画像の色を反転して表示するエフェクトである(図 3.58)。このエフェ
クトは、cvNot 関数により画像の RGB 値を反転して表示する。
図 3.12 ネガポジ
2 値化
2 値化は、画像を黒と白の 2 色に変換して表示するエフェクトである(図 3.13)。
このエフェクトでは、cvCvtColor 関数で画像をグレースケールに変換したのち、
cvThreshold 関数を適用する。これにより、明度が閾値以上である部分は白に、閾値以
下である部分は黒に変換される。
(※文責: 金子真二郎)
Group Report of 2012 SISP
- 22 -
Group Number 19
Development of the application that uses imaging technology
図 3.13
2 値化
・各機能の操作
ここまで説明した各種機能について、キーボードやゲームコントローラーによる操作を可
能とした。キーボード操作は、あるキーを入力すると対応する変数の値が変化し、それに
伴って各機能が動作する、という方法で実装した。例えば、
「1」キーを入力すると拡縮処理
用に用意した変数 size の値が増加し、それに応じてアフィン変換用の行列が変化して画像
が拡大される。また逆に、
「2」キーを入力すると size の値が減少し、画像が縮小される、と
いった仕組みである。
コントローラー操作については、JoyToKey というシェアウェアソフトの試用版を利用
した。このソフトには、PC に接続したゲームコントローラーのボタン入力をキーボードの
キーに対応させるという機能がある。これにより、あるボタンを入力することでキーボード
の対応するキーを入力したと認識させ、キーボード操作と同様の操作をコントローラーで
行うことができるよう実装した。最終的に、容易性、携帯性、遊戯性などを考慮し、コント
ローラーによる操作を採用した。
(※文責: 金子真二郎)
プログラムに実装しなかった機能
ここまで紹介したプロトタイプに実装した機能の他、開発はしたが最終的に不要だったため使わ
なかった機能がいくつか存在する。最終成果物の開発に関わるものや、今後の改善に利用する可能
性もあるため、参考として報告しておく。
(※文責: 金子真二郎)
・マウスによる操作
プロトタイプではコントローラー入力(及びその基となるキーボード入力)によって行っ
た操作を、マウスの操作でもできるよう実装した。具体的には、左クリックを押しながら
ポインタ移動することで映像位置の平行移動、右クリックを押しながら移動で拡大縮小や
回転、左クリックを押しながら右クリックでカメラ切替、といった具合である。実装には、
cvSetMouseCallback 関数を利用した。この関数は、指定したウィンドウ上でマウスのアク
ション(ポインタ移動、クリックなど)があった場合、mouse 関数(任意)を呼び出すとい
う機能を持っている。mouse 関数にはマウスの座標やアクションの内容が引数として送ら
れ、それに応じた処理を行うよう設定できる。
マウス操作の開発は、I++ の操作デバイスの理想として考えていた、目の前の空中で指
Group Report of 2012 SISP
- 23 -
Group Number 19
Development of the application that uses imaging technology
をタッチパネルのように滑らせることで操作する、という手法を想定して行った。今回の
I++ ではこの空中操作には着手しなかったが、今後実装する場合には、このマウス操作を応
用した座標処理やタスク管理が必要になると思われる。
(※文責: 金子真二郎)
・画像の連結
複数の画像を上下・左右に連結して表示する機能である。開発時には、2 つの Web カメ
ラの映像を左右に連結して表示できるよう実装した。この機能の実装には、小窓表示と同じ
方法を利用した。即ち、まず画像 2 つ分の広さの画像領域を用意し、ROI で位置を指定して
それぞれの画像を貼り付ける、という方法である(図 3.14)。
プロトタイプでは映像を取得する Web カメラを切り替えることで 360 度の視界を実現し
たが、最終的には複数の Web カメラの映像を繋ぎ合わせ、1 つのシームレスな映像とする
方法で実現することを想定していた。その際に利用することを考え、この画像連結の機能を
開発した。後述するが、最終成果物では実際にこの手法を用いて 360 度の視界の実装を行
なっている。
図 3.14 画像連結の例
(※文責: 金子真二郎)
3.2
最終成果物
後期では、前期に開発したプロトタイプで得た反省点などをもとに、新たに最終成果物を開発し
た。(図 3.15)
最終成果物では、頭の周囲につける Web カメラを 26 個に増やした。アクリル材質のボウルに
Web カメラを固定し、それを頭に被るような形にした。また、頭に被ったときにしっかりと固定
されるように、ヘルメットをボウルに固定して利用した。こうして頭の周囲に取り付けられた 26
Group Report of 2012 SISP
- 24 -
Group Number 19
Development of the application that uses imaging technology
個の Web カメラから得られる一つ一つの画像を、一枚の画像になめらかに結合することで、なめ
らかな水平 360 度の視界を実現した。隣り合った画像同士の重なりあう部分を切り落とし、重み付
きの透過で 2 つの画像を繋げた。これによって、多少の違和感はあるものの上手く画像を結合させ
ることができた。
プロトタイプでは OpenCV の基本的な処理を利用した簡単なエフェクトが多かったが、最終成
果物では、顔認識技術などのより高度な技術を使い、様々な新エフェクトを開発した。
最終成果物では、ノートパソコンやヘッドマウントディスプレイのプロセッサーなどの様々な機
材を使用している。これらの機材を箱(おかもち)に収納して、それを背中に背負い身に付けるこ
とができるようにした。これによって、I++ を使用しながらの移動が容易になった。
図 3.15 成果物「I++」
(※文責: 内藤優貴)
3.2.1
ハードウェア
Web カメラ
(1)Web カメラに決定
360 度の視界を実現するため、何を用いて映像を取得するか話し合った。後期の活動で
も、映像をリアルタイムで取得する必要があった。そして映像をリアルタイムで取得でき、
比較的小さく、安価で大量に購入できる、Web カメラを用いることとなった。
Group Report of 2012 SISP
- 25 -
Group Number 19
Development of the application that uses imaging technology
(2) 前期の反省
前期に作成したプロトタイプには 8 個の Web カメラを使用した。この 8 個の Web カメ
ラはプロジェクト内で持っていた人が持ち寄り、足らないものは購入した。そのため、8 個
の Web カメラの種類がほとんど異なり、見た目がよくなかった。また、カメラ同士の性能
も異なるため、映像の映り方が異なるという問題があった。この問題点を踏まえ、後期では
Web カメラの種類を統一し、早めに注文することが決定した。
(3)Web カメラ選び
後期では Web カメラの数を大幅に増やすことになった。10 月 3 日 (水) に Web カメラ
は 29 個使用することが決まり、予備も含め 30 個購入することが決定した。そこで、すぐに
Web カメラ選びを行った。ここで、カメラ選びに失敗すると、成果物に大きく影響が出る
可能性があったため、慎重に検討した。Web カメラを選ぶ際次のことに注意した。
注意点
• Web カメラのサイズが小さい
• フレームレートは 30fps
• 画角は 30 度以上
また、できるだけ取り入れたい条件として次のものも検討した。
検討項目
• Web カメラのレンズの真後ろから USB ケーブルが出ている
• Web カメラの色はブラック
・Microsoft LifeCam HD-3000V2
上述した条件を踏まえ最初に見つけた Web カメラが「Microsoft LifeCam HD-
3000V2」 (図 3.16) である。
図 3.16 Microsoft LifeCam HD-3000V2[2]
この「Microsoft LifeCam HD-3000V2」は、大きさが [縦×横×高さ] が [39 × 45 ×
93mm] であった。高さは下の土台部分を取り除くことで小さく出来ると思われた。ま
た、フレームレートが 30fps であった。画角はインターネットで調べても出てこなかっ
たため、直接メーカーにお問い合わせたところ、68.5 度であった。これは画角 30 度の
Group Report of 2012 SISP
- 26 -
Group Number 19
Development of the application that uses imaging technology
倍と広かった。このように 3 つの条件を全て満たしていた。また、画素数は 400 万画素
程度だった。文字認識などを行う可能性があったため、画素数はあまり低くないものを
選ぶことになった。そして、10 月 10 日 (水) に「Microsoft LifeCam HD-3000V2」を購
入することが決定した。「Microsoft LifeCam HD-3000V2」のインターネットでの表示
価格は 2380 円だった。しかし、10 月 12 日 (金) に「Microsoft LifeCam HD-3000V2」
はすでに製造中止になった商品であったため、30 個の大量注文が出来ないことが判明
した。このため、他の Web カメラを探すこととなった。
・401-CMS003SV
次に見つけた Web カメラが「401-CMS003SV」(図 3.17)である。
図 3.17 401-CMS003SV [3]
この「401-CMS003SV」は、大きさが [縦×横×高さ] が [22 × 43 × 29mm] であっ
た。「Microsoft LifeCam HD-3000V2」のような下の台もなく、サイズも小さいので取
り付け易いと思われた。またフレームレートは 30fps であった。ここでも、画角はイン
ターネットでは調べることができなかったため、メーカーに電話で問い合わせた。その
結果、画角は 60°であった。よって 3 つ注意点の条件を全て満たしていた。また、USB
ケーブルが巻き取り式のため、必要ない部分を短くできるという利点があった。USB
ケーブルは頭の前と後ろで必要な長さが全く異なるので、巻き取り式はとても便利だろ
うと考えた。画素数は 130 万画素程度だった。はじめは 400 万画素必要と考えていた
が、画素数の低いものを使って実験をした。そして話し合いを行った結果、画素数が大
きいとデータ量が多くなり、Web カメラを制御する際、コンピュータの処理が重たく
なってしまうという問題があると言う結論にいたった。そして、130 万画素でも十分映
像はきれいに見えることも確認できたため、画素数は低くても大丈夫だと結論が出た。
そこで「Microsoft LifeCam HD-3000V2」の 400 万画素よりも画素数の低い 130 万画
素のこの「401-CMS003SV」の Web カメラに決定した。「401-CMS003SV」のインター
ネットでの表示価格は 1280 円だった。しかし、10 月 15 日 (月) に「401-CMS003SV」
はインターネットでしか販売していない商品のため、大学では買えないとのことで、注
文できないことが判明した。このため、また他の Web カメラを探すこととなった。
・BSW13K10H
Group Report of 2012 SISP
- 27 -
Group Number 19
Development of the application that uses imaging technology
最後に決定した Web カメラが BUFFALO の「BSW13K10H」(図 3.18) である。
図 3.18 BUFFALO BSW13K10H [4]
「BSW13K10H」の大きさは [60 × 40 × 54mm] であった。前に注文した 2 つの
Web カメラと比べると、少し大きくなってしまった。また、USB ケーブルが Web カ
メラのレンズの真後ろから出ていないデザインのものであった。しかし、フレームレー
トが 30fps で画角も 30 度以上あった。このため 3 つの注意点の条件を満たしていると
判断した。また、画素数は 130 万画素である。「BSW13K10H」のインターネットでの
表示価格は 1480 円であった。そして 10 月 15 日に「BSW13K10H」を 30 個購入する
ことが決定した。
このようなプロセスを経て、i++ には 29 個の「BSW13K10H」を使うこととなった。
(4)Web カメラの小型化
10 月 31 日 (水) に発注していた 30 個の Web カメラが届いた。Web カメラはできるだ
け小さくするため、すぐにスタンド部分を取り外した(図 3.19)。また、カメラの裏側につ
いていたシールを全てはずし、接着剤がつきやすくなるよう工夫した。
図 3.19
スタンド部分を取り外した Web カメラ
(※文責: 北みさと)
デザイン決定の流れ
(1) デザイン決定においての前提事項
29 個の Web カメラを固定し、歩き回るためにはどのようなデザインにするべきか、話し
合いを行った。ここで、特に重要視したのは以下の点である。
重要視した点
• Web カメラがしっかりと固定できること
Group Report of 2012 SISP
- 28 -
Group Number 19
Development of the application that uses imaging technology
• 配線を奇麗に見せること (簡略化)
• ノートパソコンなどの機材を持ち運べること
• 電源がとれる程度に歩き回れること
• かっこよくしたい
(2) 背中に背負う「箱」のデザイン・アイディア出し
上述した項目を踏まえ、10 月 3 日 (水曜日) からデザインのアイディアを出していった多
くの機材が必要な中で、歩き回ることを可能にするには、どうしたらよいのか、話し合いを
行った。そしてノートパソコン、ヘッドマウントディスプレイの電源、USB ハブを箱に収
納し、背中に背負うことで、歩き回ることができるようにしたいと考えた。
Web カメラを 29 個使用する予定があった。そのため、頭から 29 本の USB ケーブルが
延びてくる。この USB ケーブルをノートパソコンに接続するため、背中に背負う箱には、
USB ケーブルを通す穴が必要と考えられた。また、ノートパソコンを操作するための穴も
必要であった。よって、USB ケーブルと通す小さめの穴と、ノートパソコンの操作を行う
ための大きめの穴の計 2 つの穴を開ける必要があった。このような箱を見つけるか、作る必
要があると考え、イメージする箱のデザインの案を書いていった。(図 3.20)
図 3.20
箱のデザイン案
はじめはあまり深く考えず、様々な箱のアイディアを出していった。ここで出たアイディ
アには以下のものがあった。
箱のアイディア
• ポスト
• 農家などで使われる竹かご
• アクリル板を加工
• バケツを加工
Group Report of 2012 SISP
- 29 -
Group Number 19
Development of the application that uses imaging technology
• プラスチックの収納ボックス
• 出前などに用いられるおかもち
ポストには、郵便を入れるための上部の穴と、郵便を取り出すための下部の穴があるもの
が多い。そのため、USB ケーブルと通す小さめの穴と、ノートパソコンの操作を行うため
の大きめの穴をあけなくても、もともと穴が開いているというメリットが考えられた。
箱のアイディアの検証
上述したさまざまな箱を用いて、ノートパソコン、ヘッドマウントディスプレイの電
源、USB ハブを持ち運ぶことができるかどうか検証するべく、10 月 4 日 (木曜日) に
ホーマックへ行った。ホーマックではプラスチックの収納ボックスや、動物のお出かけ
バックなど、実際にさまざまな「箱」を見てみた。しかし、ホーマックではちょうど良
いサイズのものがみつけられなかった。アイディアに出ていた「ポスト」をホーマック
で確認したが、ポストは大きさも小さく、値段も高いことから、検討し直すこととなっ
た。
(3) ホーマックでの材料探し
ホーマックでは背中に背負う「箱」探しのほかに、Web カメラを固定するために使えそう
なものや、USB ケーブルをまとめるために使えそうなものも確認した。この日、ホーマッ
クで見つけた、今後使えそうなものは以下の通りである。
材料
• TOYO ヘルメット 1680 円
• アルミダクト 75mm × 4m 948 円
• EM VC 用ホース 1580 円
(4) カメラを固定するもののデザイン・アイディア出し
29 台の Web カメラを顔の周囲に固定するためのデザインも決めなければならなかった。
そこで、Web カメラを固定する方法のデザインのアイディアを 10 月 5 日 (金曜日) から出
し始めた。
Web カメラを固定する方法のアイディア
・円柱状のものに Web カメラを固定
マジシャンがかぶっている、円柱状のハットに型紙をいれ、Web カメラを固定
するアイディアや、大きめのバケツに穴を空け、Web カメラを固定するアイディ
ア、アクリル板を円柱状に加工し、Web カメラを固定するアイディアが出された。
・作業用ヘルメットと円柱状のものを組み合わせて Web カメラを固定
ヘルメットと バケツの底を取り除き加工したものを組み合わせ、Web カメラを
固定するアイディア、ヘルメットと干し野菜用ネットを組合せ、Web カメラを固
定するアイディア、ヘルメットとアクリル板を円柱状に加工したものに Web カメ
ラを固定するアイディアなどが出された(図 3.21)。
Group Report of 2012 SISP
- 30 -
Group Number 19
Development of the application that uses imaging technology
図 3.21
ヘルメットと円柱状のものの組合せ
・バイク用フルフェイスのヘルメットに Web カメラを固定
バイク用のフルフェイスのヘルメットに直接穴を開け、Web カメラを固定する
アイディアが出された(図 3.22)。
図 3.22
ヘルメットと円柱状のものの組合せ
・針金と塩化ビニルに Web カメラを固定
細長く加工した塩化ビニルに Web カメラを固定し、針金で頭の大きさごとに調
節して固定するアイディアが出された。
・ドーム状のものに Web カメラを固定
ボウルに穴を開け、Web カメラを固定するアイディアや、発泡スチロールを加
工しドーム状にして Web カメラを固定するアイディアが出された。
Group Report of 2012 SISP
- 31 -
Group Number 19
Development of the application that uses imaging technology
Web カメラを固定する際、目線の高さの Web カメラは平行に固定し、目線よりも上
に固定する Web カメラは斜め上を向いた状態で固定する必要があった。このため、円
柱状のものに Web カメラを固定する方法では、斜め上を向かせて Web カメラを固定
することが困難であると考えられた。このため、ヘルメットとバケツを組合せて、Web
カメラを固定するアイディアに決まりそうになった。まず、バケツ部分に目線の位置の
Web カメラを固定し、ヘルメット部分に斜め上を向いた状態の Web カメラを固定で
きないかどうか考えた。 そこで、10 月 10 日 (水曜日) にバケツに穴を開け、Web カ
メラを固定することができるかどうか、工房にお話を伺いに行った。その結果、バケツ
を切ったり、穴を開けると、バケツが破損してしまう可能性があると指摘を受けた。ま
た、バケツにカメラを固定することは難しいとの意見もいただいた。そこで、アイディ
アを考え直すこととなった。
そして、次に考えられたのがボウルに穴を開け、Web カメラを固定する方法である。
ここで、まずボウルに穴をあけることができるのかどうか、試すため、ダイソーでボ
ウルを購入し、穴あけ作業を行った。ここで、1 つのモデルが完成した(図 3.23)(図
3.24)。
図 3.23 モデル (被った様子)
Group Report of 2012 SISP
- 32 -
Group Number 19
Development of the application that uses imaging technology
図 3.24 モデル (内側)
ダイソーに売っていたボウルでは、大きさに限りがあった。そのため、ヘッドマウン
トディスプレイを被り、目線を覆う大きさのボウルでのモデルの作成はできなかった。
しかし、ボウルに穴を開け、頭に被ることができたため、デザインをボウルを用いて
Web カメラに固定するものに決定した。
(5) 全体のデザイン決定
ボウルから伸びる USB ケーブルはアルミダクトと通して首もとを通し、背中に背負う
「箱」に入れることで、たくさんのケーブルが見えて汚いという前期での課題を克服するこ
とにした。背中に背負う「箱」はおかもちを加工することに決定した。このようにして、全
体のデザインを考えていった。こうして、10 月 24 日 (水曜日) にデザインが最終的に決定
した(図 3.25)。
図 3.25 デザイン図 (決定)
このデザインをもとに、今後製作が行われていった。
Group Report of 2012 SISP
- 33 -
Group Number 19
Development of the application that uses imaging technology
(※文責: 北みさと)
Web カメラをボウルに取り付ける際の配置
(1)Web カメラ配置予定
Web カメラを購入する際、Web カメラを 4 段にすることが決まった。当初、下から 1 段
目に 12 個、2 段目に 12 個、3 段目に 4 個、4 段目 (てっぺん) に 1 個の Web カメラを固定
する予定だった(図 3.26)。
図 3.26 Web カメラの配置予定図
(2) ボウルの決定
10 月 24 日 (水) に、高級アクリル用品メーカーのグッチーニのボウル (グッチーニ ボー
ル PRO RGTH703 0860.2100 35cm) で直径が 35cm のボウルを購入することが決定
した(図 3.27)。
図 3.27 グッチーニのボウル
(3)Web カメラの配置図作成の試み
購入するボウルが決定してから、届くまでにはしばらく時間がかかった。そのため、ボウ
ルに Web カメラを 29 個固定する際の Web カメラの配置図を書くことにした。しかし、ボ
ウルの大きさは、一番大きい部分の直径しか分からなかったため、正確な設計図を作成する
ことはできなかった。インターネットに掲載されていたボウルの写真から、縦と横の比率
をおおよそで計算した。縦の長さを 18.5cm と仮定し、下から 1 段目と 2 段目と 3 段目の
Web カメラの間隔を 6cm ずつとして設計図を書こうと試みたが、ボウルの形は正確な球で
Group Report of 2012 SISP
- 34 -
Group Number 19
Development of the application that uses imaging technology
はない為、カメラを 360 度に配置する際の、2 段目と 3 段目の円周が分からないという問題
が生じた。よって、ボウルが手元にない状態での設計図の作成は諦めた。
(4)Web カメラの配置場所決定
11 月 9 日 (金) にボウルが届いた。ボウルが届いたので、すぐにメジャーを用いて細かな
寸法を測った。
Web カメラ配置・縦の間隔
ボウルには淵があり、カメラを固定する際の障害物になっていた。よって、淵を避け
る形で、淵の上部分からカメラを置くことにした。ボウルの淵の上から、ボウルの底ま
での縦の長さが 19.5cm であった。そこで、下から 1 段目と 2 段目と 3 段目の Web カ
メラの縦の間隔は 6.5cm にすることにした。
Web カメラ配置・横の間隔
・円周
縦の位置関係が決まると、次はカメラを固定する場所の円周を測った。まず、下
段のボウルの淵の上部分の円周は 110cm であった。次に、この下段部分から 6.5cm
上の 2 段目部分のボウルの円周は 100cm であった。2 段目部分よりも 6.5cm 上の
3 段目部分のボウルの円周は 80cm であった。
・Web カメラを配置する数の決定
円周を測り、当初の予定の 1 段目に 12 個、2 段目に 12 個、3 段目に 4 個の Web
カメラを配置する際の隣り合う Web カメラと Web カメラの間のスペースの大き
さを計算した。Web カメラのサイズは横幅 6cm あった。よって、1 段目の隣り合
う Web カメラと Web カメラの間のスペースの長さは 3.16cm であった。また、2
段目の隣り合う Web カメラと Web カメラの間のスペースの長さは 2.3cm であっ
た。そして、3 段目の隣り合う Web カメラと Web カメラの間のスペースの長さは
14cm であった。
このように、1 段目に 12 個、2 段目に 12 個、3 段目に 4 個の Web カメラを置く
方法の場合、2 段目の隣り合う Web カメラと Web カメラの間のスペースはとても
狭く、3 段目の隣り合う Web カメラと Web カメラの間のスペースは大きすぎるこ
とが分かった。そのため、1 段目に配置する Web カメラの個数は 12 個のままで、
2 段目に配置する Web カメラは 8 個に減らし、3 段目に配置する Web カメラは 6
個に増やして設置することにした。
1 段目に 12 個の Web カメラを配置したとき、隣り合う Web カメラと Web カ
メラの間のスペースの長さは 3.16cm である。また、2 段目に 8 個の Web カメラを
配置したとき、隣り合う Web カメラと Web カメラの間のスペースの長さは 6.5cm
である。そして、3 段目に 6 個の Web カメラを配置したとき、隣り合う Web カメ
ラと Web カメラの間のスペースの長さは 7.3cm である。このように、2 段目と 3
段目の隣り合う Web カメラと Web カメラの間のスペースが同じくらいの大きさ
になった。よって、Web カメラは 1 段目に 12 個、2 段目に 8 個、3 段目に 6 個配
Group Report of 2012 SISP
- 35 -
Group Number 19
Development of the application that uses imaging technology
置することで決定した。
(5)Web カメラの配置場所を書き込み
カメラを配置する場所が決まったため、油性マジックを使って、実際にカメラを固定
する場所に印をつける作業に入った。
・縦の間隔
まず、メジャーを使ってボウルの底から 4.5cm、6.5cm、11cm、13cm、17.5cm、
19.5cm の位置を測り、たくさんの印をつけて、球面上に円を書いた。この印は、
Web カメラの縦の大きさが 2cm だったため、カメラを配置する円周が分かりやす
く見えるようにするためにつけた。
・横の間隔
縦の位置関係が分かりやすくなったので、次は隣り合う Web カメラと Web カ
メラの間のスペースの距離を測りはじめた。
下段
下から 1 段目正面の Web カメラを置く場所を決め、Web カメラの形を書き
込んだ。そして、正面の Web カメラの端から、3.16cm 間を開け 2 個目のカ
メラの形を書いた。このように 12 個の Web カメラの形を書き込み、1 段目の
Web カメラの配置の印を書き上げた。
中段
2 段目の Web カメラの配置の印を書き始めた。2 段目も正面の Web カメ
ラから書いた。正面の Web カメラは 1 段目の真上に位置するよう書いた。そ
して、正面の Web カメラの端から 6.5cm 間を開け 2 個目の Web カメラの形
を書いた。このようにして、8 個の Web カメラの形を書いた。
上段
一番上の段の Web カメラの配置の印を書き初めた。一番上の段も正面の
Web カメラから書き始めた。正面の Web カメラは 1 段目と 2 段目の真上に
位置するよう書いた。そして、正面の Web カメラの端から 7.3cm 間を開け 2
個目の Web カメラの形を書いた。このようにして、6 個の Web カメラの形を
書いた。また、ボウルの底の真ん中に 1 つ、カメラの形の印をつけた。こうし
て、27 個の Web カメラの配置場所が決定した。
・USB ケーブルを通す穴
Web カメラの配置する場所が決まると、次は USB ケーブルを通す穴を開ける
場所の印をつけ始めた。USB ケーブルを通す穴は縦 1cm、横 2cm の大きさの穴に
した。カメラの端から 1cm の位置に印をつけた(図 3.28)。
・ボルトを通す穴
Web カメラをボウルに固定するとき、ボルトとナットを使うことになった。
Web カメラにボルトと接着剤で取り付け、ボウルの穴にボルトを通しナットでと
めるという固定の仕方である。よって、ボウルにボルトを通す穴もあけなければな
らなくなった。ボルトは Web カメラのレンズの真裏に固定した。そのため、ボウ
Group Report of 2012 SISP
- 36 -
Group Number 19
Development of the application that uses imaging technology
図 3.28 USB ケーブルを通す穴の印
ルにあける穴はレンズの真裏にあたる部分にあけなければならなかった。レンズは
右端から 1cm 離れた位置にあったため、ボウルのカメラの印の右端から 1cm、縦
は 1cm の位置に 5mm の印をつけた。このようにして 27 個、全ての穴をあなをあ
けるべき場所の印をつけた(図 3.29) 。
図 3.29 穴を開ける場所の印をつけ穴あけを行った
(※文責: 北みさと)
バックパック
ノートパソコン、周辺機器などを収納するバックパック部分に使用する材質、構造、大きさなど
については、以下のような条件を満たすことが必要であると考えられた。
(1) 箱型であること。
(2) ノートパソコン、その他の周辺機器が入る大きさであること。
(3) 加工がしやすいこと。
(4) 重量が少ないこと。
(5) 頑丈であること。
Group Report of 2012 SISP
- 37 -
Group Number 19
Development of the application that uses imaging technology
(6) 熱効率が良いこと。
(7) 外観が良いこと。
また、上記の条件の設定については以下のような理由が挙げられた。
(1) の箱型であることについては、中にノートパソコンを入れることができる構造になっている
ことが必要であり、さらに、ノートパソコンという精密機械を安全に収納するために、底面が平ら
であることが必要だと考えられたためであった。
(2) のノートパソコン、その他の周辺機器が入る大きさであることについては、NEC の LaVie
L LL750/HS というノートパソコン(幅 382mm 奥行き 270mm 高さ 332mm)が入り、さらにそ
の他の周辺機器(電源タップ、ノートパソコンの電源アダプタ、USB ハブ 3 つ、USB ハブの電源
アダプタ 3 つ、ヘッドマウントディスプレイのプロセッサー部分)も収納することができるだけの
大きさが必要であると考えられたためであった。
(3) 加工がしやすいことについては、ノートパソコンから排出される熱を逃がすため、ケーブル
を通すためなどに穴を開け、安全のためと形を整えるために切断面のとがった部分を削って丸くす
る必要があると考えたためであった。また、使用する材質によっては板状の素材を箱型に組み立て
るなどの作業が必要になる場合もあるため、その場合は箱型にするための接着、あるいは曲げなど
の加工の必要があると考えられたためであった。
(4) の重量が少ないことについては、ユーザーへの負担を減らすためになるべく重量を少なくし
たほうが望ましいと考えられたため。
(5) の頑丈であることについては、中にノートパソコンなどのある程度の重量のもの (参考とし
てノートパソコンは約 3 キログラム、その他周辺機器を含めると 5∼6 キログラム程度) を入れて
も底が抜けない、形が変わらない必要があると考えたためであった。
(6) の熱効率が良いことについては、中にノートパソコン、ヘッドマウントディスプレイのプロ
セッサー、USB ハブ、電源アダプタなどを起動状態で収納するために多量の熱が発生すると考え
られ、排熱穴だけでは排出しきれない熱が内部にこもってしまうのを熱を外部に逃がすことで緩和
するためになるべく熱効率が良いことが望ましいと考えたためであった。
(7) の外観が良いことについては、外から見ている人の興味を引き、関心を持ってもらうために、
頭部の部分も含めた全体的なデザインを工夫する必要があると考えたためであった。具体的には、
近未来をイメージしたスマートでメカニカルなものを目指したいと考えた。
また、バックパックの材質の候補について、以下のような案が挙げられた。
• 木
• アクリル
• アルミ
挙げられたバックアップの材質の候補について、上記の 7 つの条件を元にどの材質がふさわしい
かを検討した。
・木について
木は上記の 7 つの条件のうち、(3) 加工がしやすいこと、(5) 頑丈であることの二つの条件
を満たしており、またそのほかの条件についても、(1) 箱型であることについては、木特有
の加工性のよさと頑丈さにより木の板を釘、金具を使用して箱型に組み立てることでクリア
できると考えられ、(2) ノートパソコン、その他の周辺機器が入る大きさであることについ
ては、組み立ての際に大きな木の板を使用することでクリアできると考えられた。しかし、
木の性質として、箱型に組み立てた際に中に重量のあるものを入れても壊れたり変形したり
Group Report of 2012 SISP
- 38 -
Group Number 19
Development of the application that uses imaging technology
せずに安定する程度の頑丈さを備えるためにはある程度の厚みのある素材を使用することが
必要となるので、その場合、(4) 重量が少ないことについてはクリアすることができない。
(4) 重量が少ないことについては、最終的な成果物をユーザーが使用した際にユーザーへの
負担を減らすという点、また子供や女性など比較的非力なユーザーでも使用することができ
るようにしたいという点の非常に重要な 2 点において、欠かすことのできない条件となるた
め、必ずクリアしなければならない。このため、バックパックの材質についての候補として
挙げられた木については候補からはずすこととなった。
・アクリルについて
アクリルは上記の 7 つ条件のうち、(3) 加工がしやすいこと、(4) 重量が少ないこと、(7)
外観が良いことの 3 つの条件を満たしていると考えられた。しかし、アクリルについて調
査を進めると、(3) 加工がしやすいことと (5) 頑丈であることについて問題があることがわ
かった。アクリルは穴あけ、削りといった加工は比較的容易であり、曲げや接着といった加
工も可能なので、板状のアルミ板を箱型に組み立てることによって (1) 箱型であることを満
たし、さらに使用するアクリル板の大きさを調整することによって (2) ノートパソコン、そ
の他の周辺機器が入る大きさであることも満たすと考えられたが、接着加工によって箱型に
組み立てた場合、接着の強さが中に入れるノートパソコンなどの重量に耐えられない可能性
があった。さらに、接着加工をせずに箱型を実現させる代案がなかった。また、重量の少な
い、比較的薄いアクリル板を使用すると、中にノートパソコンなどを入れた際の耐久性にも
問題がある可能性があった。このため、バックパックの材質についての候補として挙げられ
たアクリルについては候補からはずすこととなった。
・アルミについて
アルミは上記の 7 つの条件のうち、(3) 加工がしやすいこと、(4) 重量が少ないこと、(5)
頑丈であること、(6) 熱効率が良いこと、(7) 外観が良いことの 5 つの条件を満たしている
と考えられた。しかし、さらに細かい調査をしていくにしたがって (3) 加工がしやすいこと
については問題があることがわかった。アルミは穴あけ、削りなどの加工については可能だ
が、板状のアルミを箱型に組み立てるのは難しいことが判明した。それにより、(1) 箱型で
あることを満たすことができないと考えられた。(1) 箱型であることについては、中にノー
トパソコンとそのほかの周辺機器を収納したものを背負うという装置の構造上はずすことの
できない必須の条件であり、これを満たさないためにアルミについてもバックパックの材質
の候補から外れると考えられた。しかし、調査の結果、はじめから箱型に加工済みのアルミ
製おかもち存在することがわかった。このアルミ製おかもちを使用することにより、(1) 箱
型であることについてはクリアできた。しかし、市販されているアルミ製おかもちを調査し
た結果、(2) ノートパソコン、その他の周辺機器が入る大きさであることを満たすアルミ製
おかもちが存在しないことがわかった。具体的には、高さ、もしくは奥行きが足りないもの
しかなかった。高さが足りないものについては、絶対条件である (2) ノートパソコン、その
他の周辺機器が入る大きさであることを満たすことができなくなるので採用することはでき
ないが、奥行きが足りないものについては、ノートパソコンの先がおかもちから少しはみ出
すという問題を解決することにより採用できると考えられた。そこで、ノートパソコンと周
辺機器をおかもちの中に収納した後に、おかもちのふたを閉めずに開けたままで運用するこ
とにより、ノートパソコンの先がはみ出すスペースを確保できると考えた。しかし、ふたを
閉めないままでは運用中にノートパソコンや周辺機器がおかもちから落下してしまう危険が
でてきた。この問題は、おかもち内のノートパソコン、その他周辺機器をおかもちと固定
Group Report of 2012 SISP
- 39 -
Group Number 19
Development of the application that uses imaging technology
し、落下しないように予防することで解決できると考えた。以上の理由により、バックパッ
ク部分の材質、構造、大きさについてはアルミ製おかもち (横幅 475mm、奥行き 250mm、
高さ 420mm) を採用することにした。
図 3.30 おかもち
次に、おかもちを背負うために必要な構造について検討した。この問題については 2 本のベルト
をおかもちの背部に取り付け、それをそれぞれ左右の肩に背負うことで解決した。ベルトを採用し
た理由については、おかもちに開けた穴に通すだけなので取り付けが容易、多数の穴により長さを
調節することで、背負うときに背負いやすくなり、使用するユーザー個々人にとって最適な長さに
調節することができるようになるなどの利点があると考えたためであった。
また、頭部のパーツとバックパック部分の間に多数の Web カメラの USB ケーブルが見えてし
まうのは、デザイン面で見栄えが悪くなってしまうのではという意見が出た。この問題には、Web
カメラの USB ケーブルをアルミダクトに通すことによって、USB ケーブルを覆い隠して外から見
えなくするという解決案を用いることで対処した。アルミダクトを用いた理由については、すべて
の USB ケーブルを覆い隠すことのできる太さ、おかもちと同じアルミ製なので統一感が生まれる
という見た目のデザイン性の良さ、USB ケーブルを通すときに短くすることで作業をやりやすく
し、運用時は長くすることで USB ケーブルを覆い隠すことができる伸縮性といったものが挙げら
れた。
(※文責: 小林俊樹)
Group Report of 2012 SISP
- 40 -
Group Number 19
Development of the application that uses imaging technology
図 3.31
ベルト
図 3.32
ダクト
ボウル
頭部に使用するためのボウルについて、どのようなものを採用するかという条件について検討し
たところ、以下のような事項が挙がった。
(1) 直径がヘッドマウントディスプレイを覆えるくらいに大きいこと。
(2) 頭にかぶった際に目線を覆えるくらいの深さがあること。
(3) 穴あけ、削りなどの加工ができること。
(4) 外観が良いこと。
(5) 接着剤が使用できること。
上記のそれぞれの条件を設定した理由については、以下のようなものが挙げられた。
(1) 直径がヘッドマウントディスプレイを覆えるくらいに大きいことについては、人間の頭部に
ヘッドマウントディスプレイを付けた状態の頭の周り 360 度に Web カメラを取り付けるために、
Group Report of 2012 SISP
- 41 -
Group Number 19
Development of the application that uses imaging technology
ボウルでヘッドマウントディスプレイの周囲を覆い、そのボウルに Web カメラを取り付ける必要
があるためであった。直径についてのより具体的な数値を出すべく実際にヘッドマウントディスプ
レイを付けた状態の頭部の大きさを測ってみた結果、最低でも直径は 30cm 以上必要だということ
がわかった。また、余裕を持つためにも少し大きめのほうが良いとの意見も出た。
(2) 頭にかぶった際に目線を覆えるくらいの深さがあることについては、目線の位置から頭頂部
まで均等に 3 段階の高さに Web カメラを取り付ける必要があり、ボウルを頭にかぶった際に目線
の位置までボウルが降りてくるだけの深さが必要であるためであった。こちらも実際に具体的な
数値を出すべく測ってみたところ、最低でも深さは 15cm 以上は必要だということがわかった。ま
た、こちらについても余裕を持つために少し大きめが良いとの意見が出た。
(3) 穴あけ、削りなどの加工ができることについては、ボウルには電動ドリルなどで穴をあけ、
その穴を鑢などで削ることで穴を広げ、Web カメラの USB ケーブルを通せる大きさ、形に整える
必要があるためであった。
(4) 外観が良いことについては、外から見ている人の興味を引き、関心を持ってもらうために、
頭部の部分も含めた全体的なデザインを工夫する必要があると考えたためであった。具体的には、
近未来をイメージしたスマートでメカニカルなものを目指したいと考えた。
(5) 接着剤が使用できることについては、ボウルに Web カメラを取り付ける際に接着剤を使用
する予定であったため、接着剤を使用することができる材質が望ましいと考えたためであった。
上記の条件に合うボウルを探した結果、装置の頭部部分については、グッチーニアクリルボウル
(直径 35cm 深さ 18.5cm)を使用することに決定した。このボウルを採用した理由については、直
径 35cm という点で上記 (1) 直径がヘッドマウントディスプレイを覆えるくらいに大きいこととい
う条件を、深さ 18.5cm という点で (2) 頭にかぶった際に目線を覆えるくらいの深さがあることと
いう条件を満たしており、さらにアクリルという材質ゆえの加工性のよさという点で (3) 穴あけ、
削りなどの加工ができること、(5) 接着剤が使用できることという条件を満たし、さらに、アクリ
ルの透明感のあるボディに WEB カメラのような機械的なものを合わせることによって、(4) 外観
が良いことの条件についてもクリアできると考えたためであった。また、何らかの理由によりアク
リルが使えなかった場合や、穴あけなどの失敗の際に取り返しがつかない作業を失敗してしまった
場合などの予備として、材料特性がアクリルに近い、ポリカーボネート性のボウルも用意すること
とした。こちらについても、上記の(1)∼(5)までの条件を満たしており、さらに、ポリカー
ボネートはアクリルよりも耐熱性が高いという利点があった。しかし、アクリルはポリカーボネー
トに比べて透明性が高い、傷がつきにくいなどの利点があり、耐熱性についてもアクリルの耐熱性
でも運用には十分だと思われたため、装置にはアクリル性のボウルを使用し、ポリカーボネート性
のボウルは予備とすることとなった。
(※文責: 小林俊樹)
接着剤
Web カメラをボウルに接着するための接着剤については、以下のような条件を満たすことが必
要であると考えられた。
(1) アクリルと Web カメラのプラスチック部分を接着できること。
(2) ボルトと Web カメラのプラスチック部分を接着できること。
上記のそれぞれの条件を設定した理由については、以下のようなものが挙げられた。
Group Report of 2012 SISP
- 42 -
Group Number 19
Development of the application that uses imaging technology
図 3.33
アクリルボウル
(1) アクリルと Web カメラのプラスチック部分を接着できることについては、アクリルボウル
に Web カメラの背部のプラスチック部分を直接接着することにより Web カメラを取り付ける方
法が良いのではないかという意見が出たためであった。
(2) ボルトと Web カメラのプラスチック部分を接着できることについては、当初は (1) の方法
でボウルと Web カメラを接着する予定であったが、Web カメラのプログラム担当者から Web カ
メラをボウルに接着後も Web カメラの角度を調節することができるようにして欲しいとの要望が
あったために新しいボルトの接着方法を模索した結果、必要となった条件であった。具体的には、
Web カメラの背部のプラスチック部分とボルトを接着し、そのボルトをアクリルボウルにあけた
穴にナットを用いて固定することによって、接着後もボルトとナットを緩めることにより角度調節
できる構造にするという意見が出た。
上記の条件を満たす接着剤については、当初は (1) アクリルと Web カメラのプラスチック部分
を接着できることという条件を満たすアクリルサンデーという接着剤を使用する予定であったが、
Web カメラのプログラム担当者の意見を尊重し、(1) アクリルと Web カメラのプラスチック部分
を接着できること、(2) ボルトと Web カメラのプラスチック部分を接着できることの両方の条件
を満たす、セメダインスーパー X という接着剤という意見が出た。また、アルミダクトとおかも
ちを接着する際にも使用できるという利点もあるとの指摘も出たため、使用する接着剤はセメダイ
ンスーパー X という接着剤に決定した。
図 3.34
Group Report of 2012 SISP
接着剤
- 43 -
Group Number 19
Development of the application that uses imaging technology
(※文責: 小林俊樹)
おかもちの設計
おかもちの加工についての設計の方針として、以下のようなものが挙げられた。
(1) 排熱のための穴をあける。
(2) ベルト固定のための穴をあける。
(3) おかもちの内部に開いた状態のノートパソコンとその他の周辺機器を収納する。
(4) 内部に設置するノートパソコンとその他の周辺機器を固定するための機構を取り付ける。
(5)Web カメラの USB ケーブルを通すための穴をあける。
(6) アルミダクトを固定する。
(7) ノートパソコンの背面からの USB ケーブル、電源アダプタのケーブルを保護する機構を取
り付ける。
また、このような方針を策定した理由については以下のようなものが挙げられた。
(1) 排熱のための穴をあけるということについては、中に収納する予定のノートパソコンが発す
る熱がおかもちの内部にこもらないようにするために、ノートパソコンの排熱穴と重なる位置に排
熱穴をあける必要があるためであった。
(2) ベルト固定のための穴をあけるということについては、おかもちに穴をあけ、そこから内部
にベルトを通して内部からアルミテープで固定するという方法でベルトを固定するために必要であ
るためであった。
(3) おかもちの内部にノートパソコンとその他の周辺機器を収納することについては、おかもち
の底部にノートパソコンを開いた状態で収納することにより、いつでもノートパソコンを通じてプ
ログラムの起動・書き換え、装置の操作が出来るような構造にするためであり、また周辺機器を内
部にすべて収納することでバックパックから伸びるコード類を電源コード一本に集約することで装
置を使用した状態での運動・歩行になるべく支障をきたさない構造にすることが出来るためであっ
た。周辺機器はおかもちに元々付属していた、おかもち内部の空間を仕切ることが出来る木の板に
固定し、その板をおかもち内部の空間の上部に取り付けることで、開いた状態のノートパソコンの
上方に収納することとした。板をおかもち内部上方の空間にに取り付ける方法については、おかも
ち内部に元々ついている、仕切り板を取り付けるための溝を利用することとした。また、固定には
瞬間接着剤、両面テープを使用する。その際、非常に限られた空間である、仕切り板上のスペース
を有効に利用するために、配置の際の周辺機器同士の位置関係も工夫する必要があると考えられ
た。ここで収納が必要な周辺機器とは、電源タップ、ノートパソコンの電源アダプタ、USB ハブ 3
つ、USB ハブの電源アダプタ 3 つ、ヘッドマウントディスプレイのプロセッサー部分のことであ
る。
(4) 内部に設置するノートパソコンとその他の周辺機器を固定するための機構を取り付けること
については、その機構としておかもちに穴をあけそこから針金を通し、その針金でノートパソコン
を固定するという方法を採用した。また、その他の周辺機器についても同様に、周辺機器が固定さ
れているおかもち内部の空間を仕切るための木の板をおかもち内部から落ちないように針金で固定
する。具体的には、木の仕切り板とおかもちの双方に穴を開け、その二つの穴に針金を通して固定
するという方法を採用した。これにより、ノートパソコンとその他の周辺機器のおかもちからの落
下を防ぐことが出来ると考えたためであった。さらに針金を緩めることでノートパソコンと周辺機
器をと固定した板をおかもちから取り外すことが出来ることにより、完成後にもいつでも取り外し
て分解、メンテナンスなどが容易に出来るという効果も見込めるためであった。
Group Report of 2012 SISP
- 44 -
Group Number 19
Development of the application that uses imaging technology
(5)Web カメラの USB ケーブルを通すための穴をあけることについては、頭部のボウルに取り
付ける Web カメラからおかもち内部の USB ハブまで伸ばす USB ケーブルを通すための穴が必要
なためである。また、Web カメラの台数が多いので USB ケーブルの本数も多くなり、そのため穴
の大きさもある程度大きくする必要があるという意見が出た。
(6) アルミダクトを固定するということについては、Web カメラの USB ケーブルを覆って隠す
ことで、見た目を良くしデザイン性を上げるという目的のためであった。また、アルミダクトはお
かもちの上部にあける予定の Web カメラの USB ケーブルを通す穴の周りに取り付けることとし
た。そのため、穴の直径はアルミダクトの直径と同じになるようにあけることとした。
(7) ノートパソコンの背面からの USB ケーブル、電源アダプタのケーブルを保護する機構を取
り付けることについては、装置の使用中に装置がゆれることにより、ノートパソコンが後ろに動き、
ノートパソコンの裏から伸びている USB ケーブルと電源アダプタのケーブルがおかもちの内部の
壁にぶつかることによるケーブル類の故障を防ぐために取り付ける必要があった。具体的には、お
かもちとノートパソコンの間に木片を入れることで解決した。その木片には、おかもちに元々付属
していた内部の空間を仕切るための木の板のあまりを加工してを使用することとした。木片は接着
剤、もしくは両面テープでおかもち内に固定することとした。
また、上記の方針に従って以下ような設計図を作成した。
図 3.35 設計図 (1)
(※文責: 小林俊樹)
ボウルの穴あけ作業
頭に被るボウルだが、これにはいくつかの穴を開ける必要があった。それぞれ、Web カメラを
取り付けるためのボルト穴と USB ケーブルを通すための配線の穴、また、ボウルとヘルメットを
固定するための穴である。
Group Report of 2012 SISP
- 45 -
Group Number 19
Development of the application that uses imaging technology
図 3.36
設計図 (2)
まず、Web カメラを取り付けるためのボルト穴だが、電動ドリルを使いボルトに合わせた直径
5mm の穴を開けた。ボルトの大きさに穴を合わせることでカメラをしっかりと固定することがで
きた。
次に、USB ケーブルを通すための配線の穴だが、これは縦 1cm ×横 2cm の穴を開けた。これ
は USB ケーブルの端子が通るような大きさである。この穴は電動ドリルで大まかに穴を開けた後
細い金ヤスリを使い所定の大きさに削って整えた。
最後に、ボウルとヘルメットを固定するための穴だが、これも Web カメラを取り付けるための
ボルト穴と同じく、電動ドリルで直径 5mm の穴を開けた。そしてボルトとナットを用いてヘル
メットとボウルを固定した。これによってヘルメットを被ることで、ボウルを頭に固定でき、頭周
囲にカメラを取り付けることができた。
しかし、ヘルメットとボウルの接合部分の強度の問題で、頭を傾けたり激しく動かしたりすると
接合部分が破損してしまうのではないかという可能性が考えられた。そこでボルト頭とボウルの
間、ボウルとヘルメットの間、ヘルメットとナットの間にそれぞれワッシャーの役割を果たすアル
ミ板を挟めた。これによって強度の問題は解決された。
(※文責: 内藤優貴)
Group Report of 2012 SISP
- 46 -
Group Number 19
Development of the application that uses imaging technology
おかもちの穴あけ作業
ノートパソコンなどを入れて背中に背負うおかもちだが、いくつかの穴を開ける必要があった。
それぞれ、背中に背負うためのベルトを通すための穴、おかもちの中に搭載しているノートパソコ
ンの排熱とコンセントを通す配線用の穴、頭のボウルからの USB ケーブルを通すための配線用の
穴である。
まず、ベルトを通すための穴だが、電動ドリルと糸のこを使いベルトが余裕を持って通るほどの
大きさの穴を開けた。穴のふちはヤスリで削りなめらかに整えた後にアルミテープで覆い、怪我を
しないように安全性にも気をつけた。
次に、ノートパソコンの排熱用兼コンセントを通すための穴だが、これもベルトを通すための穴
と同様に電動ドリルと糸のこを使い穴を開け、やすりとアルミテープを使い穴のふちを整えた。な
お穴の大きさは縦 2cm ×横 7cm 程である。
最後に、頭のボウルからの USB ケーブルを通すための穴だが、これは直径 7cm 程の円形の穴
を開けた。はじめは電動ドリルと糸のこを使って穴を開けようと考えていたのだが円形であるた
め糸のこを使うことが難しく、電動ドリルで円形のふちに穴を開けていき繰り抜いた。その後ヤス
リでで整えた。また、この穴にはアルミダクトを接着剤とアルミテープを使い取り付け、その中に
USB ケーブルを通すようにした。
(※文責: 内藤優貴)
おかもちに収納する周辺機器
背中に背負うおかもちにはいくつもの周辺機器を収納している。ノートパソコン・ヘッドマウン
トディスプレイのプロセッサー・電源タップ・USB ハブである。これらを収納するにあたって、収
納はできるものの USB ケーブルや電源アダプタのケーブルなどが非常に乱雑な状態になってしま
うという問題が起こった。そこでヘッドマウントディスプレイのプロセッサー・USB ハブ・ノー
トパソコンやその他の機器の電源アダプタ・電源タップを一つの板(ボード)に固定して収納でき
るようにした。ビニールテープを使って機器をボードに固定し、結束バンドを使いケーブル類をま
とめあげた。これによって乱雑だったものをすっきりと収納でき、また配線系のトラブルも起こら
なくなった。(図 3.37)
(※文責: 内藤優貴)
3.2.2
プログラム
本項では、私達が作成した I++ を動かしているプログラムを紹介する。私たちは前期に引き続
き、複数のカメラから画像を取り込み、画像処理を行ったのちにヘッドマウントディスプレイに投
影するプログラムの作成を行った。前期作成したプログラムを改良しながら最終成果物の作成を行
うことに決定したので、言語は前期に引き続き C++ と OpenCV ライブラリを使用した。後期の
活動では前期に作成したプログラムを改良しやすいように編集した後、前期に課題として指摘され
ていた画像を取り込むカメラの切り替えの高速化や高度な技術を用いたエフェクトの開発を行っ
た。また、画像を取り込むカメラの台数を増やすことも決定したので、それに合わせて前期のプロ
グラムを改変する作業も行った。
Group Report of 2012 SISP
- 47 -
Group Number 19
Development of the application that uses imaging technology
図 3.37 おかもちに収納する周辺機器
(※文責: 苗加悠貴)
プログラムの流れ
I++ は頭の周囲に固定されている Web カメラから画像を読み込み、コンピュータ内で画像処理
を加えてヘッドマウントディスプレイに画像を出力している。このプログラムは起動時に接続した
Web カメラを全て確認し、それぞれの Web カメラに番号を割り当てて配列に格納する。次に、プ
ログラムはコンピュータに読み込む Web カメラ 2 つを選択し、それぞれの画像をコンピュータに
取り込む。取り込んだ 2 つの画像を連結させることで 1 つの画像にする。また、画像をコンピュー
タに取り込んで連結させた後に、画像処理を加えている。
以上の流れをプログラムのループ処理によって繰り返し、映像としてヘッドマウントディスプレ
イにフルスクリーンで表示している。プログラムの終了時にはコンピュータ内に格納していた画像
データを全て破棄し、終了する。
(※文責: 野波淳里)
用いた技術
本項では、私達が目標とする表現を実現するために学んだり、開発した技術の中で特に OpenCV
に元々備わっている機能ではないものを紹介する。これらの技術の多くは後の項で紹介するエフェ
Group Report of 2012 SISP
- 48 -
Group Number 19
Development of the application that uses imaging technology
クトと呼ばれる視覚効果のために開発されたものだが、一方で映像投影の部分でも使われているも
のもある。
(※文責: 谷岡翔馬)
・アルファブレンド
アルファブレンドとは不透明度(アルファ)のシミュレートに基づいて 2 枚の画像を合成
する方法である。
ふつうの画像は [R,G,B] の 3 チャンネルからなっているが、アルファチャンネル(不透
明度)をもつ画像は不透明度の情報をもち、チャンネルも [R,G,B,A] の 4 チャンネルであ
る A は RGB 同様に 0 255 の値をとり、A=255 の場合は RGB の値がそのまま反映され、
A=0 の場合は RGB の値は反映されず透明であるかのように扱われる。OpenCV ではアル
ファチャンネルのある画像もといアルファ合成を扱うことはできないため、アルファ合成を
行う関数を作成した。関数は前面の画像,背面の画像、マット画像を引数とし、合成結果の
画像を戻り値とする。アルファ合成の計算式は、背面の画像の画素の明るさを b、前面の画
像を f、マット画像を m として、次のように規定される。
合成結果 = f*alpha/255 + b * (255 - m)/255;
OpenCV では画像データとして IplImage 構造体を使用しているが、IplImage 内の配列
imageData[] には、三原色それぞれの明るさを表す変数が R-G-B チャンネルの順で格納さ
れている。for ループを用いて全てのチャンネルの画素に対して前述の計算を適応すること
により、アルファ合成を行う。
(※文責: 苗加悠貴)
・シームレス化
シームレスと私達が呼んでいる技術は、2 つの Web カメラから取り込んだ画像を重み付
き透過を用いて違和感なく繋げるというものである。
この技術を開発する上で参考にしたのが、前述したアルファブレンド関数である。2 つの
画素を乗算合成することによって、2 つの画像の境界線をぼやけさせながら違和感なく繋げ
ることを実現している。以下の図 3.38 から図 3.40 はハサミの画像を例とし、擬似的にシー
ムレス化したものである。
シームレス化の関数の中では、最終的にヘッドマウントディスプレイに投影する画像の配
列に 2 つの Web カメラから取り込んだ画像の画素値を代入する操作を行なっている。左右
にどの程度動かすかを決めている変数 gap を受け取り、その値から境界線の x 座標を定め、
境界線の左右ある程度の幅のみでアルファ合成を行なっている。また、変数 gap の値の変化
によって擬似的に視界が左右に移動しているように見せるための処理もシームレス化の関数
内で行なっている。例えば左へ視界を動かす場合は境界線を右へずらし、それに合わせて合
成する 2 つの Web カメラから取り込んだ画像から抽出する画素値を、ずらした幅分だけ右
にずらし合成するといった処理だ。また重み付き透過を用いた合成により、境界線から右側
ヘ行くほど左側の画像の画素が薄く合成され、また逆に境界線から左側へ行くほど右側の画
像の画素が薄く合成されている。これにより、より自然な形で 2 つの映像を合成することを
Group Report of 2012 SISP
- 49 -
Group Number 19
Development of the application that uses imaging technology
図 3.38 シームレス化する左側の画像
図 3.39 シームレス化する右側の画像
図 3.40
Group Report of 2012 SISP
シームレス化した画像
- 50 -
Group Number 19
Development of the application that uses imaging technology
可能にしている。
ヘッドマウントディスプレイに映像を投影する部分のシステム開発ということで、2 つの
Web カメラから取り込んだ画像をどのように重ね合わせるかという点を試行錯誤した。ま
ず重ねあわせずに普通に両端を繋げたところ、視界としてはどうしても違和感が出てしまっ
たので、ある程度の幅を持たせ重ね合わせるという案を思いついた。その後、まずは余裕を
もたせた幅分を切り落とし 2 つの画像を繋げた。その結果、ある程度自然な画像になったの
だがやはりぶつ切りな印象が残ってしまった。そこでどうにか自然に繋げられないか考えて
いたところ、並行して進められていたアルファブレンド関数の開発によって重み付き透過の
案を思いつき、今の自然なシームレス化を可能とするに至った。また今回は実装には至らな
かったが、物を認識しそこを起点に重ね合わせる幅を決定する機能を付加すればより精度の
高いシームレス化が実現できると思われる。
(※文責: 谷岡翔馬)
・顔認識
顔認識には、あまり調査時間をかけずに済むということから、開発に利用している
OpenCV2.4.2 に含まれている分類器を用いることとした。この分類器はブースティングと
いう学習手法を用いて、Haar-Like 特徴と顔の有無の関係を学習し、顔認識を行う分類器で
ある。
ブースティングによる学習は、単純な特徴を検出する検出力の弱い分類器を複数組み合わ
せることで、検出力の強い分類器を作成するという考え方に基づいて行われている。個々の
特徴は、検出に対する重要度に応じて重みが与えられて使用され、OpenCV では学習の誤
認識率に適応した重みを決定論的に調整することのできる Adaboost アルゴリズムが利用で
きる。
Haar-Like 特徴とは、4 種類の Edge 特徴、8 種類の Line 特徴、2 種類の Center-surround
特徴といった、計 14 種類のパターンを水平方向、垂直方向にスケーリングした特徴である。
探索領域の任意の位置に Haar-Like 特徴を置き、白い領域を正、黒い領域を負として両領域
の輝度値の合計を計算し、これを特徴量としている。例えば、目の周辺で特徴量を算出して
顔認識を行う場合、水平方向の Edge 特徴では目の位置の輝度値は低く鼻の位置の輝度値は
高いため、鼻の特徴量は他の位置に比べて大きくなり、同じく水平方向の Line 特徴では目
の位置で輝度値が低くなり、鼻の位置で輝度値が高くなるため、大きな特徴量が得られる。
24 × 24 ピクセルの探索領域に対しては、特徴の種類と位置の組み合わせで約 12 万通り
のパターンが考えられ、そのうちの適切ないくつかを Adaboost が利用するようになってい
る。しかし、単純な輝度値の差を利用しているため、1 つにまとまっている特徴の検出には
向いているが、横顔のように輪郭が複雑となる状況では特徴領域の矩形に背景が入ってしま
うため、横顔を検出する、といったことにはあまり向いていない。そこで、I++ の処理で
は、正面を向いた顔の認識をメインとして考えた。
実際に顔認識を行った結果を図 3.41 に示す。正面を向いている顔を対象とし、Haar-Like
特徴に基づき顔と認識されたところの範囲を指定し、指定された位置に赤い四角形を描くよ
うにした。
OpenCV の物体検出では、段階的に処理を行うカスケード構造の分類器が使用されてお
り、初めの段階では、少ない特徴からなる弱い分類器により高速で大まかに対象物を含む画
像の検出が行われる。この時に検出対象ではないと判断された部分は、それ以降の検出処理
Group Report of 2012 SISP
- 51 -
Group Number 19
Development of the application that uses imaging technology
図 3.41 顔認識実行結果
には使用されないようになっている。
検出処理が進むにつれて多くの特徴からなる強い分類器により、低速で正確な検出が行わ
れる。そうすることで、背景などの容易に検出対象ではないと判断できる対象に対して、処
理に時間のかかる強い分類器での検出処理を行わないように工夫されている。こうした工夫
により、高速な処理が実現されている。
しかし、そのような工夫を施された分類器を用いても、I++ では全体的に動作が遅くなっ
てしまうという欠点があった。1 フレーム分の画像に対し、遅いときでは、顔認識を行い認
識された箇所に処理を加えるという一連の流れに 2、3 秒ほどかかってしまうこともあった
ため、より自然な視界を実現するためには、遅くとも 1 フレーム当たり 1 秒以下に処理時間
を短縮する必要があった。
処理の中でどの部分に一番時間がかかるのか計測したところ、OpenCV の物体検出に利
用される、画像中から対象となるオブジェクトを検出する cvHaarDetectObjects という関
数の部分であるということが分かったが、その関数に手を加えるためには関数の中のプログ
ラムを理解し改変する時間が必要であった。しかし、限られた時間の中では、関数に手をつ
けるよりも他のところに何らかの工夫を施した方が短い時間で出来るように考えられた。そ
こで、処理時間を短縮する方法として、以下の 4 つの方法について検討した。
• (1)OpenMP を用いる方法
• (2) インテル スレッド・ビルディング・ブロックを用いる方法
• (3) マルチスレッド処理を用いる方法
• (4) 顔認識を行う画像を限定する方法
(1)OpenMP を用いる方法
始めに、OpenMP を実装する方法について検討した。OpenMP を用いることの利点とし
て、実装が容易であるということが挙げられる。OpenMP は「#pragma」から始まる、プ
ラグマ・ディレクティブと呼ばれるコンパイラへの命令文を記述することで並列化を行っ
ているので、コンパイラが OpenMP をサポートしていない場合はコメントと見なされるた
め、書き直す必要がない。そして、コメントと見なされた場合には並列処理は行われず逐次
処理が行われるので、プログラムに影響することもないため、修正にかかる時間も少ないと
考え、この方法を実装した状態での検証を行った。
Group Report of 2012 SISP
- 52 -
Group Number 19
Development of the application that uses imaging technology
しかし、OpenMP を導入するにあたり、新たに環境設定をする必要があることがわかっ
た。Microsoft Visual C++ 2010 Professional などでは OpenMP がサポートされている
が、開発に利用している Express Edition では OpenMP をサポートしていないことがわ
かった。現在の環境で導入する方法について調査を行ったところ、Microsoft 社が提供して
いる Windows SDK for Windows Server 2008 and .NET Framework 3.5 の develop tool
に含まれている Virtual C++ のコンパイラをインストールすると利用できるということが
わかり、追加でパッケージをインストールし、環境を整えて検証を行った。
実験的に OpenMP を用いて簡単な計算を行うプログラムを作成したところ、リリース
構成でビルドすると問題無く実行することができ、OpenMP を用いないときと比較すると
処理速度が改善されていたが、デバッグ構成ではプログラムを実行することが出来なかっ
た。この問題について調査したところ、デバッグ構成でビルドするためには、追加でイン
ストールした Virtual C++ のコンパイラの他、にマニフェストファイルやデバッグ専用
の OpenMP ライブラリといった追加ファイルが必要であるという結果が得られた。更に、
デバッグ専用のライブラリについては上述した Windows SDK for Windows Server 2008
and .NET Framework 3.5 には含まれていないため、別途パッケージのインストールが必
要であることも分かった。
プログラムの開発も進んでいる状況で、複数のファイルやパッケージを追加して環境を整
え直すことはリスクが大きい考えられたので、OpenMP を用いる方法は実装せず、別の方
法について検討することとした。
(2) インテル スレッド・ビルディング・ブロックを用いる方法
次に、スレッド・ビルディング・ブロックという方法を用いた。スレッド・ビルディング・
ブロックは標準 C++ コードを利用しているので、特別な言語やコンパイラを必要とせず、
システムの負荷などに応じて、柔軟に性能や機能を向上させられるような並列プログラミン
グをサポートするライブラリである。OpenMP では並列処理がビルトイン型に制限されて
いたが、スレッド・ビルディング・ブロックはその短所を克服したものになっているので、
OpenMP に比べて自由度が高くなっている。
スレッド・ビルディング・ブロックを用いる利点として、タスクの役割を記述することで
自動的にスレッドにスケジューリングされるため、スレッドの生成や終了を明示的に管理す
る必要がないことや、他の OpenMP のような他のスレッドパッケージとの互換性を確保し
ていることが挙げられる。
マルチスレッド処理などのようにスレッドを記述せず、タスクを記述することで処理を軽
く済ませることを可能としている。タスクとスレッドの処理速度を比較すると、Linux 環境
ではタスクの開始と終了はスレッドの開始と終了よりも 18 倍速く処理され、Windows 環境
ではその比率が 100 倍になる。そのため、処理速度の改善を目的としたこの課題にとって、
処理が軽いことは大きな利点であった。また、Windows などのネイティブスレッドを使用
するときはパフォーマンスやスレッドのスケジュール管理などをしなければならないため、
非効率的なプログラムになる可能性もあるが、スレッド・ビルディング・ブロックのように
タスク記述をすることで、パッケージのランタイムライブラリが効率的に各スレッドにタス
クを割り当ててくれる。それにより、ネイティブスレッドを使用するよりも容易にパフォー
マンスに優れ、同時に性能や機能が向上させられるような並列処理を施すことができる。
もう一つの利点として、他のスレッドパッケージとの互換性を確保しているということが
Group Report of 2012 SISP
- 53 -
Group Number 19
Development of the application that uses imaging technology
あり、プログラム中のどこかで OpenMP やスレッド処理などを利用したとしても、競合す
ることなく利用できる。今後他の方法での実装を行う可能性が無いとは言い切れなかったの
で、この点についても利点であると考えられた。
OpenMP と同様に、スレッド・ビルディング・ブロックを用いて簡単なプログラムを作
成したところ、スレッド・ビルディング・ブロックを用いないプログラムよりも動作が速
かったため、顔認識の処理速度を改善するという課題に対し、有効であると考えた。しか
し、実際に顔認識を行うプログラムに実装したところ、ソリューションをビルドしていると
きにエラーが発生したため、実行することができなかった。このエラーについて調査をする
と、Linux 環境では正しく実行することができるが、Windows 環境において正しく実行さ
れないというバグによるエラーだという結果が得られた。I++ 自体の開発環境が Windows
だったため、他の実装方法で実現することやエラーを無くす方法について考えたが、このエ
ラーへの対処には時間がかかると思われたので、スレッド・ビルディング・ブロックを用い
る方法は現時点では不可能とし、別の方法に切り替えることとした。
(3) マルチスレッド処理を用いる方法
次に検討した方法は、Windows が標準でサポートしているマルチスレッドを用いる方法
である。それぞれのスレッドに任意の作業を割り当てることで並行した処理を行うことが可
能であり、今回は、カメラから取得した画像への顔認識と次に顔認識を行う画像を取得する
ことを並行して行うようにした。
マルチスレッドを実装して実行したところ、この方法でも処理速度の改善は見られなかっ
た。顔認識と並行して画像を取得していても、根本的な顔認識を行うところの速度が改善す
るような方法は実装していなかったため、処理速度の改善には繋がらなかった。その逆に、
メインではカメラから画像を取得する処理だけを行い、別のスレッドで取得した画像に顔認
識を行う方法も試したが、顔認識に時間がかかってしまい、メインが停止している時間が多
く、結果的に処理時間は変わらなかった。
カメラからの画像を取得するところ、もしくは顔認識という、どちらかを並列処理で行う
のではなく、画像を取得して顔認識を行うという一連の流れを並列的に行う方法についても
検証した。メインの処理で画像を取得し、顔認識を行っている間に別のスレッドでも画像を
取得し顔認識を行うように実装したが、これも顔認識にかかる時間が一定ではないため、時
間がかかる場合とかからない場合で差が出来てしまい、メインまたは別のスレッドでの処理
が停止する時間を無くすことが出来ず、処理速度の改善にはならなかった。
(4) 顔認識を行う画像を限定する方法
最後に、今まで行ってきた並列処理を用いた方法ではなく、顔認識を行う画像を限定する
ことで処理速度を改善する方法について検討した。
従来の方法ではカメラから 1 秒間に 30 フレームの画像を取得しており、その取得したフ
レームすべてに顔認識を行っていたため、1 回 1 回の処理が間に合わず、全体的な処理速度
が遅くなっていた。そのため、2 フレーム毎、3 フレーム毎、5 フレーム毎、10 フレーム毎
に顔認識を行う方法を考え、それぞれの処理速度について検証した。各フレームをこのよう
に設定した理由としては、全体が 30 フレームなので顔認識を行う画像と、行わない画像と
の全体量でのバランスや、検証を通して調整することで、このような値になった。
まず初めに、2 フレーム毎に顔認識を行う方法を試した。しかし、この方法では一度顔認
Group Report of 2012 SISP
- 54 -
Group Number 19
Development of the application that uses imaging technology
識を行ってから次に顔認識を行うまでの間に顔認識を行わないフレームが 1 フレーム分しか
なかったため、顔認識を行わない画像を取得している間にその前画像での処理を終えること
ができず、結果として従来の処理方法と同じような状態になってしまったため、処理速度あ
まりは改善することができなかった。
次に 2 フレームでは処理が追いつかなかったことから、10 フレーム毎に顔認識を行う方
法を試した。すると、映像ではエフェクトがかかっているのに実際の映像では認識されるよ
うなものが無いなど、映像自体に違和感が生じてしまった。また、処理に時間がかかるとこ
ろとかからないところに時間差が生じることで、処理を行っている時間が目立ってしまい、
一時停止と再生を繰り返しているような、映像として違和感があるものとなってしまった。
次に 5 フレーム毎に顔認識を行う方法を試した。すると、10 フレーム毎に設定したとき
ほどではないものの、やはり I++ で見られる映像と実際の映像にずれが生じてしまったり、
映像としても不自然なものになってしまった。
最後に 2 フレームでは早すぎ、5 フレーム、10 フレームでは遅すぎるという結果から、3
フレーム毎に顔認識を行う方法を試した。すると、処理速度も違和感がなく、また、映像と
しても違和感なく顔認識を行うことができた。このとき、画像を加工してから、次のフレー
ムで新たに認識し加工するまでの間も加工された処理が継続するようにした。これにより、
実際に顔認識を行っているのは一瞬であるにも関わらず、連続して顔認識を行っているよう
に見せている。
また、並列化や顔認識を行う画像の制限といった方法以外に、少しでも処理速度を改善さ
せる手段はないかと考えた。そこで、画像中で顔認識を行う関数の引数や顔認識を行う範
囲、画像の持つ情報に注目して画像そのものを変更する手段も試みた。
一番時間がかかっているとされた、カスケード分類器を用いる際の cvHaarDetectObjects
関数については、引数を工夫することで処理速度の改善に努めた。その手段として、こ
の関数の第 6 引数にあたる処理モードに CV HAAR DO CANNY PRUNING を指定し、
Canny のエッジ検出器を用いることとした。この検出器は、ある画像領域内にエッジが少
なすぎたり多すぎた場合には探索しているオブジェクトを含むことができないので、そのよ
うな領域を破棄するために用いられる。特定の閾値が顔検出用に調整されており、枝刈りに
よって処理速度が向上する。また、第 5 引数にある min neighbors の値として 2 を指定す
ることで、オブジェクトを構成する近傍矩形の最小数を 1 としている。そうすることで、こ
の値よりも少ない矩形しか含まないグループは全て破棄されるようになっている。
データ量を削減する方法として、画像をグレースケール化する方法を実装した。カメラか
ら取得された時点では、24 ビットフルカラーの画像だが、グレースケール化することによ
り、8 ビットのモノクロ画像へ変換するようにした。これにより、色情報が黒か白になるの
で、データ量が RGB カラーの 3 分の 1 になる。
変換した画像を元の画像サイズである 640 × 480 ピクセルから縮小することで、画像全
体として、顔認識の行う範囲を狭めた。縮小率として、初めに 2 分の 1 サイズの画像で処理
を行ったところ処理時間があまり変わらず、4 分の 1 にしたところ、顔認識の精度が低下し
てしまった。このような結果から、縮小率を 3 分の 1 に設定したところ認識精度もあまり低
下せず、処理時間もあまりかからなかった。このような工夫を施すことにより、わずかなが
ら処理時間を改善することが出来た。
Group Report of 2012 SISP
- 55 -
Group Number 19
Development of the application that uses imaging technology
処理速度の改善結果
表 3.1 は、顔認識を用いない場合と、顔認識を用いた場合の処理速度改善前、改善後のそ
れぞれの処理速度をまとめたものである。このとき用いた映像では顔認識の対象は 1 人とし
た。各処理時間については、単位をミリセカンドとし、1 フレーム当たりにかかった平均処
理時間、最遅処理時間、最速処理時間を求めた。
処理速度改善後は 3 フレーム毎に顔認識の処理を行っているので、フレーム間の顔認識の
行われていないフレームが最速処理時間となっている。そのため、顔認識を用いない場合と
ほぼ同じ時間になる。顔認識の行われているフレームとそうでないフレームの時間差に関し
ても約 0.17 秒しかないため、顔認識を行う度に映像が止まって見えることもない。
処理速度を改善する前では、最も処理時間がかかったときで約 2 秒ほどかかっているが、
処理速度を改善することで約 0.2 秒まで短縮することができた。また、平均処理時間につい
て、処理速度改善前と比較すると半分以下の時間で処理できるようになっている。顔認識を
用いない場合と比較するとまだ処理時間がかかっているが、速度は改善されたと考えられ
る。
表 3.2 は、表 3.1 と同様に 1 フレーム当たりにかかった平均処理時間と最遅処理時間、最
速処理時間を求め、顔認識を用いない場合と、処理速度改善前、改善後のそれぞれの処理速
度をまとめたものである。単位はミリセカンドで示している。このとき用いた映像では、顔
認識の対象を複数人とした。
顔認識の対象を複数とした場合でも、処理速度に改善が見られる。
顔認識の対象が 1 人の場合と比較すると、処理速度改善後の平均処理時間、最遅処理時
間、最速処理時間の処理時間は遅くなっているが、同じ複数人を対象としている処理速度改
善前と比較すると、処理速度はおよそ 2 倍になっている。
全体的に見ると、処理速度改善後は 3 フレームに 1 回顔認識を行っているので、平均処理
時間が短縮されるのは当然だが、最遅処理時間を見ると処理を行う画像を制限する方法以外
の方法も処理速度改善に繋がっているといえる。顔認識を用いた場合の最遅処理時間は、画
像の中で顔認識を行っているときの処理時間なので、その時間が処理時間改善前と改善後で
差が出ているので、その分処理速度が改善されていると考えられる。
表 3.1
処理方法
対象が 1 人の場合の処理速度
平均処理時間 (ms)
最遅処理時間 (ms)
最速処理時間 (ms)
15
30
10
処理速度改善前
1131
10507
993
処理速度改善後
64
180
10
平均処理時間 (ms)
最遅処理時間 (ms)
最速処理時間 (ms)
18
27
16
処理速度改善前
1706
2291
1536
処理速度改善後
84
235
17
顔認識を用いない場合
表 3.2
処理方法
顔認識を用いない場合
対象が複数の場合の処理速度
(※文責: 森理美)
Group Report of 2012 SISP
- 56 -
Group Number 19
Development of the application that uses imaging technology
・モザイク化
このプログラムには、顔認識技術などによって指定された座標を元にしてモザイクタイル
を作る関数を作り、実装している。この関数は、元にした座標から画像を一定数でタイル状
に分割し、各タイル内の画素値をレッド・グリーン・ブルーそれぞれの平均値を算出して矩
形内に描画する。また、入力画像、タイル化する範囲の左端 x 座標、タイル化する範囲の左
端 y 座標、タイル化する範囲の横幅、タイル化する範囲のたて幅、モザイクタイルのサイズ
を引数として指定し、加工した画像を出力画像としてヘッドマウントディスプレイに出力し
ている。
タイル化する範囲を変化させることで、出力画像全体や特定の範囲にモザイクをかけるこ
とができる。これによって顔認識モザイクやドットアニメーションなどのエフェクトを実現
しており、エフェクトをかける前処理などにも用いている。
(※文責: 野波淳里)
・画素の上書き
プログラムの顔認識技術によって得た座標を元に、ヘッドマウントディスプレイに出力さ
れる画像に新しい画像を上書きする関数を実装している。この関数では、入力画像とは別に
用意した画像の各画素値を読み込み、出力画像の指定した座標の対応する箇所の画素値に上
書きする。なお、用意した画像は出力画像で指定した範囲の大きさに合わせて拡大・縮小し
ている。
このプログラムで用意した画像は透過 png として保存されており、特定の形のみを上書
きしている。このとき関数内では、レッド・グリーン・ブルーの画素値だけではなく透明度
を示すαチャンネルの値も読み取っており、透明な部分は透明な状態で出力画像に描画され
る。また、画像の加工と透過 png の作成には GIMP を利用している。
以下に用意した画像と出力画像の例を掲載する。
図 3.42
用意した画像 1
(※文責: 野波淳里)
・オーバーレイ
オーバーレイとは画像の合成方法の一種である。合成効果の厳密な解説については割愛す
るが、背面の画像に対して前面の画像の色味を強く引き立たせる効果がある。OpenCV の
ライブラリには用意されていない合成方法であるため、今回はオーバーレイ合成を行う関数
Group Report of 2012 SISP
- 57 -
Group Number 19
Development of the application that uses imaging technology
図 3.43 用意した画像 2
Group Report of 2012 SISP
図 3.44
出力画像 1
図 3.45
出力画像 2
- 58 -
Group Number 19
Development of the application that uses imaging technology
を作成した。関数は前面の画像、背面の画像を引数とし、合成結果の画像を戻り値とする。
オーバーレイ合成の計算式は、背面の画像の画素の明るさを b、前面の画像を f として、次
のように規定される。
if(b ¡ 128)
合成結果 = b * f * 2 / 255;
else
合成結果 = 2 * (b + f - b * f / 255) - 255;
アルファブレンド同様に、for ループで全てのチャンネルの画素に対して前述の計算を適
応することにより、オーバーレイ合成を行う。
(※文責: 苗加悠貴)
プログラムで実装した機能
前述したように、I++ では OpenCV を用いて画像処理を利用した機能を実装している。これに
より、Web カメラより取り込んだ映像にユーザーが様々な変化を加えてヘッドマウントディスプ
レイに投影することで驚きや楽しさを得ることができる。以下、実装した各種機能について紹介す
る。また、併せて各機能の実装に用いた処理方法についても説明する。
(※文責: 谷岡翔馬)
・ユーザーインターフェース
入力デバイスによる操作
ユーザーが外部の入力機器を用いて I++ を操作するための機能である。今回は、マ
ウスを利用した操作と、キーボード、及びそれを応用したゲームコントローラーによる
操作の両方から開発を進め、最終的にはプロトタイプと同様にゲームコントローラーに
よる操作を使用した。
まず、マウス操作の開発過程について紹介する。マウスでの操作は、基本的にはプ
ロトタイプで作成した、マウスのボタンをクリックしたままカーソルを動かすことで
表示画像の移動、拡大縮小などを行う、という処理を利用した。ただしそれに加え、
Windows や Mac といった OS において一般的に利用されているメニューバーの実装を
考えていた。これは図 3.46 のように、画面上部にメニューバーを表示させ、クリック、
もしくはマウスオーバーによって各メニューを展開する仕組みである(画像は開発途中
のものであるためメニューの項目が無い)。これにより、ユーザーが慣れ親しんだ形の
使いやすいインターフェースの実装が可能であった。
しかし、最終的に I++ ではマウス操作は使用しなかった。その理由は、今回の I++
の課題の一つであった「容易に歩き回りながら使用できるようにする」という要件と
マッチしなかったためである。プログラムの開発は一般的な外付けマウスを前提とし
て行ったが、有線、無線を問わず、マウスは持ち運びながらの操作には向いていなかっ
た。またこの際、リングマウスを利用して操作するという案も上がった。リングマウス
Group Report of 2012 SISP
- 59 -
Group Number 19
Development of the application that uses imaging technology
図 3.46 メニューバー
とは、指に装着できるサイズのリング型のタッチパッドで、片手の手元だけで簡単に操
作できるというものである(図 3.47)。しかし、実際に購入して使用してみたところ、
その操作には若干の慣れが必要であること、またドラッグ&ドロップなどの操作が自由
にできないことなどが判明し、I++ での利用には難があることがわかった。このよう
な検討の結果、マウス操作の開発はやめ、コントローラーでの操作を利用することに決
定した。
図 3.47 リングマウス
次に、実際に使用したコントローラー操作について説明する。こちらもマウス操作
と同様に、プロトタイプで作成した処理を基に開発を行った。即ち、キーボード入力に
より画像操作の処理を行うよう設定し、JoyToKey を用いてコントローラー入力をキー
ボードに対応させる、という手法である。今回行った工夫として、コントローラー操作
を行うことを考慮して、初めからキーボード入力の配置をコントローラーのボタン配置
に模した形で設定した。これにより、どのキーがどのボタンに対応するかをわかりやす
くし、開発・設定をスムーズに行うことができた。
また、今回の I++ では、操作マニュアルを表示する機能を追加した。これは、画面
上にコントローラーの操作説明の画像(図 3.48)を表示させる機能である。プロトタイ
プでは事前にどのボタンがどんな操作に対応しているかを知っておく必要があったが、
Group Report of 2012 SISP
- 60 -
Group Number 19
Development of the application that uses imaging technology
この機能によって、ユーザーがいつでも気軽に操作方法を確認することを可能とした。
なお、このマニュアル画像の表示には、プロトタイプの小窓表示の機能で紹介した ROI
と cvResize 関数による処理を利用している。
図 3.48
操作マニュアル画像
(※文責: 金子真二郎)
エフェクトメニューウィンドウ
エフェクトを選択するためのメニューウィンドウを表示する機能である(図 3.49)。
プロトタイプでのエフェクト選択は、設定したキーを押すことで 1 つずつエフェクトを
回していく仕様になっていた。しかし、現在選択しているエフェクトがわかりにくい、
選択がスムーズに行えないなどの問題があり、また今回は実装したエフェクトの数が倍
増したことから、方法を改善する必要があった。そこで、それらの問題を解決するため
に利用したのがこのメニューウィンドウのシステムである。なお、先の[入力デバイス
による操作]の項で述べたメニューバーはマウス操作に対応したシステムだったのに対
し、こちらのエフェクトメニューはコントローラ操作に合わせて作成したシステムと
なっている。
メニューウィンドウは図 3.49 のようになっており、現在実行されているエフェクト
を青色、選択するためのカーソルを赤色、その他のエフェクトを白色で表している。コ
ントローラーの十字キーでカーソルを移動し、決定ボタンで実行するエフェクトを選択
することができる。また、各エフェクトがどのようなものかユーザーが理解しやすいよ
うに、カーソルを合わせたエフェクトについて下に簡単な説明を表示している。その
他、視界の妨げにならないようウィンドウ枠は透過表示する、右下にエフェクト一覧の
総ページ数と現在開いているページ番号を表示する、と言った細かい工夫も行なってい
る。このエフェクトメニューウィンドウによって、体験したいエフェクトをよりわかり
やすく、より容易に選択することができるようになった。
(※文責: 金子真二郎)
Group Report of 2012 SISP
- 61 -
Group Number 19
Development of the application that uses imaging technology
図 3.49
エフェクトメニューウィンドウ
アフィン変換による画面操作
プロトタイプでも紹介した、アフィン変換による処理(拡大縮小、回転、平行移動)
について説明する。まず、拡大縮小の機能については、プロトタイプと同様に行うこと
ができる。加えて、拡縮比率を変更した際に、現在の倍率を示すバーを表示する機能を
追加した(図 3.50)。これにより、現在見ている視界がどの程度拡大・縮小されている
のかがわかりやすくなっている。
図 3.50 拡縮倍率バー
次に回転だが、この機能は今回は削除している。理由としては、I++ を使用する上で
の危険性を考慮したためである。前述したように、今回の開発テーマの 1 つに「歩き回
れるようにする」というものがあった。その上で、周りの様子が見えにくくなるエフェ
Group Report of 2012 SISP
- 62 -
Group Number 19
Development of the application that uses imaging technology
クトと視界の回転を組み合わせるのは些か危険なのではないか、という考えに至り、回
転の機能は除くこととなった。
平行移動の機能は、上下方向の移動に関してはプロトタイプと同様の動作を残してい
る。左右方向の移動については、後述するカメラ制御と共に処理しているため、アフィ
ン変換では行う必要がなくなった。
(※文責: 金子真二郎)
・Web カメラの制御・処理
映像投影・視界移動
本項では、Web カメラから取り込んだ画像をヘッドマウントディスプレイに投影す
る部分の処理、および視界の移動方法について説明する。基本的に投影は、隣合う 2 つ
の Web カメラから得た画像をシームレス関数によって結合させて行なっている。視界
移動は、画像を取り込む Web カメラの変更とシームレス関数によって結合した画像か
ら投影する領域を変化させることによって実現している。
(※文責: 谷岡翔馬)
Web カメラの認識
ヘッドマウントディスプレイに投影する画像は、2 つの Web カメラから取り込んだ
映像をシームレス化関数によって結合して作られている。本項では、プログラム内でど
のように 26 個の Web カメラを認識・管理し、ヘッドマウントディスプレイへ投影を行
なっているかを紹介する。
まず、I++ に接続された計 26 個のそれぞれの Web カメラに videoInput ライブラリ
によって 0 から 25 までの数字が割り振られる。次に、割り振られた数字はカメラの配
置に関係なくバラバラな順なので、新たに定義した 26 個の配列に順番通りになるよう
に割り振られた数字を代入していく。そして I++ では Web カメラが 3 段に分けて設
置されているので、それぞれの段数ごとの個数でループ処理を行う。具体的には配列番
号が 0 から 11 は 1 段目、12 から 19 は 2 段目、20 から 25 は 3 段目といった具合だ。
このループ処理を行うことにより、シームレス化関数に渡す 2 つの Web カメラを表す
数字を簡単に指定することを可能にしている。
前期の中間発表時点でのプロトタイプは、視界を移動させる際には画像を取り込む
Web カメラを切り替えるという手法をとっていた。なので後期の活動では、いかに効
率良く画像を取り込む 2 つの Web カメラを選択できるか、ということを焦点に本シス
テムを設計した。シームレス化関数に渡す引数の型等が間違っていると正常に動作しな
くなってしまうので、定義された仕様通りにシステム設計が行われているかを逐一確認
するようにした。それでも誤動作が多々起きてしまったので、定義された仕様通りに
きっちりと開発を行うことの重要性を痛感することができた。
(※文責: 谷岡翔馬)
左右移動
本項では、I++ の肝となる水平 360 度の自然な視界を実現している左右移動につい
て紹介する。
左右移動は主に、シームレス化関数に左右にどの程度動かすかを決めている変数 gap
を渡すことで実現されている。左側へ動かす場合は負の gap の値が、右側へ動かす場合
は正の gap の値がそれぞれ渡され、gap の値の変動によって Web カメラから取り込ん
Group Report of 2012 SISP
- 63 -
Group Number 19
Development of the application that uses imaging technology
だ 2 つの画像の境界線と重ねあわせた画像の投影する領域が変化する。これによって擬
似的に視界が移動しているように表現している。またシームレス化は常に 2 つの Web
カメラから取り込んだ画像にのみ行われているので、2 つの Web カメラの視野領域を
超えた際には、一度両方の Web カメラからのキャプチャを破棄して、超えた視野領域
を映すことができる Web カメラを選択しキャプチャを始める、というような処理も行
なっている。
前期の中間発表時点でのプロトタイプは、視界を移動させる際には画像を取り込む
Web カメラを切り替えるという手法をとっていた。なので後期の活動では、いかに自
然な形での視界の移動を実現できるか、ということを焦点に本システムを設計した。本
システムは、シームレス化関数で行われる左右移動の処理や右側への移動と左側への
移動の異なる挙動の制御等の膨大な量のトライ・アンド・エラーによって形作られてい
る。シームレス化関数では、Web カメラから取り込んだ 2 つの画像の投影する領域を
変化させることで、擬似的に視界が移動しているように表現しているが、重ね合わせる
幅や一度の移動で動く画素数によって意図していない挙動になってしまう場合が多々
あった。また、左右にどの程度動かすかを決めている変数 gap が左側へ動かす場合と
右側へ動かす場合とで符号が異なっていたため、それについてもそれぞれの場合につい
て分けてプログラミングをしながらも違和感のない挙動になるように努めた。このよう
に、少しずつプログラムを変更しながらトライ・アンド・エラーを繰り返すことで、目
的の挙動をプログラム上で表現することの大変さを実感することができた。現時点では
2 つの Web カメラの視野領域を超えるたびに 2 つとも Web カメラを再読み込みしてい
るが、片方のカメラは再読み込みをせずに再利用することができれば視野領域の切り替
えを高速化することができると思われる。
(※文責: 谷岡翔馬)
段数切替
今回の最終成果物である I++ では、計 26 個の Web カメラを 3 段に分けて設置して
いる。これによって水平 360 度の視界だけでなくある程度斜め上方の視界も確保する
ことに成功している。本項では、その 3 段に分けて設置した Web カメラをどのように
して切り替えているかについて紹介する。
最終成果物である I++ には、1 段目が 12 個の Web カメラ、2 段目が 8 個の Web カ
メラ、3 段目が 6 個の Web カメラの全 3 段計 26 個の Web カメラが設置されている。
ヘッドマウントディスプレイに映像を投影する Web カメラの段数の切り替えは、フラ
グ変数の値を変化させることによって行われている。対応しているボタンを押すだけ
で、上方あるいは下方の視界を手軽に楽しむことができるようになっている。またユー
ザーに違和感なく上方あるいは下方の視界を楽しんでもらうために、段数の切り替え時
に見ている方向がずれないように、キャプチャする Web カメラを決定するシステムを
導入している。これは、現在キャプチャを行なっている Web カメラを表している変数
と、左右にどの程度動かすかを決めている変数 gap の値によって、フラグ変数を変化さ
せる際にキャプチャを新たに始める Web カメラを決定するようなシステムである。
Web カメラを 3 段に分けて設置しようという案が決定した際に、どうすれば見てい
る方向をずらさずに段数を切り替えることができるかを話合った。そこで現在キャプ
チャを行なっている Web カメラを表している変数と、左右にどの程度動かすかを決め
ている変数 gap の値によって、フラグ変数を変化させる際にキャプチャを新たに始め
Group Report of 2012 SISP
- 64 -
Group Number 19
Development of the application that uses imaging technology
る Web カメラを決定するシステムを開発することを決定した。また、今回は実装まで
至らなかったが段数を切り替える方式ではなく、上述したシームレス化の関数によって
上下の繋ぎ合わせも行うと、より自然な視界を実現できると思われる。
(※文責: 谷岡翔馬)
方向表示
最終成果物である I++ は視界を左右や上下に移動させて使用するケースが多いので、
現在自分がどの方向を向いているのかを見失いがちになってしまう。本項では、そのよ
うな理由から導入された現在見ている方向をユーザーにわかりやすく提示している方向
表示の機能について紹介する。
方向の表示は画面右上の 2 つの円で表されている。青い中抜きされた円はユーザー自
身の頭部を表しており、その円周上にある黄色い小さな円で現在ヘッドマウントディス
プレイに投影されている映像がどの方向の Web カメラから取り込んでいる画像である
かを示している。これによりユーザーは相対的に自身がどの方向を向いているかを知る
ことができる、という機能となっている。
図 3.51 方向表示
前期の中間発表時のプロトタイプにも同様に方向を表示する機能が存在したが、プロ
トタイプの時点では視界の移動は Web カメラを切り替えるという手法をとっていた。
そのため、方向の表示を切り替えるのは視界を切り替える時と同じタイミングで行えば
良かった。しかし後期の最終成果物では、視界の移動はシームレス化を行い左右に移動
させるというものだった。そのため左右への移動を行うたびに少しずつ黄色い円を動か
すようにプログラムを変える必要があった。そこで前項の段数切り替えと同じように、
現在キャプチャを行なっている Web カメラを表している変数と、左右にどの程度動か
すかを決めている変数 gap の値によって黄色い円を動かすような現在のシステムを開
発した。また段数を切り替える上で Web カメラの個数が段毎に違っていたため、段数
を切り替えてもきちんと動作するように段毎に場合分けを行い、一度の左右移動で動く
黄色い円の幅を調整している。
(※文責: 谷岡翔馬)
Group Report of 2012 SISP
- 65 -
Group Number 19
Development of the application that uses imaging technology
・エフェクト
本項では、私達が開発を行ったエフェクトとその実装方法、およびそれによってどのよう
な効果が得られるかを紹介する。エフェクトとは、Web カメラより取り込んだ映像にプロ
グラムを用いて視覚効果を加えることによって、ユーザーに様々な驚きや楽しさを提供する
ことを目的として開発されたものである。前期の中間発表で OpenCV の基本的な関数を用
いたエフェクトしかないという指摘を受けたので、後期は複雑な技術を用いたエフェクトの
開発に注力した。また、後期の活動の中で私達が最も時間をかけた部分であり、目的を定め
それを実現するために試行錯誤をして様々な技術を考え、身につけるきっかけとなった活動
である。
(※文責: 谷岡翔馬)
左右反転
左右反転エフェクトは、画像の中央を基点として画像を左右方向に反転させるエフェ
クトである。
本エフェクトは OpenCV のライブラリの 1 つである cvFlip():モード 1 を使用して実
装している。
本エフェクトは、メンバーが OpenCV に慣れるために前期に作成したもので、鏡写し
の世界を表現するために作成が行われた。最終成果物に本エフェクトを実装した理由
は、実際に I++ を装着して本エフェクトを使用したところ視界が新鮮で面白いという
意見が多数出たためである。本エフェクトでは単純な処理しか行なっていないが、それ
でも新鮮さや面白さといったものが得られるということを実感することができたエフェ
クトである。
図 3.52 左右反転
(※文責: 苗加悠貴)
上下反転
上下反転エフェクトは、画像の中央を基点として画像を上下方向に反転させるエフェ
クトである。
本エフェクトは OpenCV のライブラリの 1 つである cvFlip():モード-1 を使用して実
装している。
Group Report of 2012 SISP
- 66 -
Group Number 19
Development of the application that uses imaging technology
本エフェクトは、メンバーが OpenCV に慣れるために前期に作成したもので、天井を
歩くというキーワードを基に作成が行われた。前期では画像全体を 180 度回転させる
ことによって実現していたが、プログラム全体の編集作業中にメンバー内で無駄な処理
は省いたほうがよいという意見で一致したため、OpenCV ライブラリに元々搭載され
ている cvFlip():を使用した。
図 3.53 上下反転
(※文責: 苗加悠貴)
シンメトリー
シンメトリーエフェクトは、入力画像を元に縦軸を中心とした左右対称の画像をつく
り出すエフェクトである。
本エフェクトでは初期化時に cvRectangle を用いて画面の左半分を埋める長方形のマ
スクを生成している。このマスクは鏡像を作る際にマットとなるものであり、左右反転
した画像をこのマスクで切り抜くことにより右半分の鏡像を生成している。左右反転は
cvFlip():モード 1 を使用し、マスクを参照し合成する方法としては cvCopy() を利用し
ている。
本エフェクトは、顔だけを左右対称にするというアイデアを基にして作成されており、
最終的には顔認識を用いて顔面にのみマスクを適用するように運用を予定していた。そ
の前段階として画面全体のシンメトリー化を行ったが、実際に I++ を装着して本エ
フェクトを使用したところ、想像以上に画面全体のシンメトリー化から面白い効果を得
ることができたので、本エフェクト単体での実装となった。また、単体で実装すること
になったため、顔面のみをシンメトリー化することの優先順位が下がったため、開発期
間の関係で顔のみにマスクをかける方法を研究するには至らなかった。
(※文責: 苗加悠貴)
モノクロ
モノクロエフェクトは、入力画像から色を抜きグレースケールとして出力するエフェ
クトである。
本エフェクトでは、cvCvtColor():RGB2GRAY を用いて画像をグレースケールに変
換している。この関数は RGB の値から輝度をとり、輝度を明るさ(グレー)に変換す
るものである。しかし入力が RGB の 3 チャンネル、出力が明るさの 1 チャンネルのみ
Group Report of 2012 SISP
- 67 -
Group Number 19
Development of the application that uses imaging technology
図 3.54 シンメトリー
ではフォーマット上支障をきたすため、cvCvtColor():GRAY2RGB を用いてフォー
マットのみ RGB の 3 チャンネルにして返している。
本エフェクトは、メンバーが OpenCV に慣れるために前期に作成したもので、画像に
わかりやすい変化を与えたいという発想で開発が行われたエフェクトである。また本エ
フェクトで使用されているグレースケール化の関数は他のエフェクトでも多用されてお
り、グレースケール化の試験的運用という意味合いも大きかった。
図 3.55 モノクロ
(※文責: 苗加悠貴)
2 値化
2 値化エフェクトは、画像の色の値を白または黒の 2 値化するエフェクトである。
本エフェクトは、cvCvtColor():RGB2GRAY を用いて画像をグレースケールに変換
したのちに、cvThreshold() を用いて 2 値化を行っている。2 値化の閾値の判定には複
数の方法があるが、今回は閾値決定方法に大津の手法を使用した。モノクロと同様に
cvCvtColor():GRAY2RGB を用いて 3 チャンネル化して返している。
本エフェクトは、メンバーが OpenCV ライブラリに慣れてきたので用意されている関
Group Report of 2012 SISP
- 68 -
Group Number 19
Development of the application that uses imaging technology
数を用いてエフェクトを色々作ってみようということで作成されたうちの一つである。
前項のような単純な関数一つとは違い、メンバーが自身で関数の使い方を調べ実装方法
を試行錯誤し実装することができた、メンバーの成長を表しているエフェクトである。
そのため、エフェクトの名前をつける際にモノクロとイメージが被ってしまい 2 値化と
硬い印象を受ける名前になってしまったが、それでも実装するに至った思い入れの深い
エフェクトとなっている。
図 3.56
2 値化
(※文責: 苗加悠貴)
エッジ検出
エッジ検出エフェクトは、画像内からエッジ部分を検出し、黒字に白い線で検出部分
を表示するエフェクトである。
本エフェクトは、モノクロエフェクトと同様に cvCvtcolor():RGB2GRAY と cvCvt-
color():GRAY2RGB を用いて、その間でエッジ検出の実質的な処理を行なっている。
エッジ検出・表示には cvCanny() を使用している。cvCanny() は Canny アルゴリズ
ムを利用したエッジ検出用の関数である。cvCanny は画像の入出力のほかに 2 つのパ
ラメータを引数としてあり、1 つめの引数がエッジ同士の接続に用いられ、2 つめの引
数は強いエッジの初期検出のために用いている。
本エフェクトは開発と同時期に行われていた画像工学の授業でエッジ検出をする課題が
あったため、課題に使用したものを流用して開発を行ったエフェクトである。本成果物
である I++ は公立はこだて未来大学内でよく使用されるため、近代的な内装となって
いる公立はこだて未来大学構内をエッジ検出エフェクトを使用して見るととても近代感
が際立った映像をみることができた。
(※文責: 苗加悠貴)
ネガポジ
ネガポジエフェクトは、画像の色を反転するエフェクトである。
本エフェクトでは、画素のビットを反転することにより色を反転している。例えば白
(255,255,255) は黒 (0,0,0) に変換され、暗い赤 (200,0,0) は明るいシアン (55,255,255)
に変換される。本エフェクトは cvNot() 関数を使用することにより実装している。
本エフェクトは、メンバーが OpenCV に慣れるために前期に作成したもので、画像に
Group Report of 2012 SISP
- 69 -
Group Number 19
Development of the application that uses imaging technology
図 3.57
エッジ検出
わかりやすい変化を与えたいという発想で開発が行われたエフェクトである。実際に
I++ で本エフェクトを使用したところ、最も面白い効果を得られたのが外の風景を見
ている時で、空の色や草木の色が反転している様はセンセーショナルな映像だった。
図 3.58 ネガポジ
(※文責: 苗加悠貴)
カラーレトロ
カラーレトロエフェクトでは、Web カメラから入力された画像のレッド・グリーン・
ブルーの値のレッド成分を強調し、さらに画像の色調を極端にするような操作を行なっ
ている。これによってユーザーは、普段見ている視界を赤みがかったレトロ調の視界で
楽しむことができる。
このエフェクトを実現するために、まず全ての画素においてレッド・グリーン・ブ
ルーの値を取り出し、レッドの値には 30、グリーンの値には 10、ブルーの値には 5 を
足す操作を行なっている。この操作により赤を強調した表現を可能としている。またそ
れぞれの画素について値を足した後、レッド・グリーン・ブルーのそれぞれの値につい
て 64 未満であれば 0 に、64 以上 128 未満であれば 64 に、128 以上 192 未満であれば
Group Report of 2012 SISP
- 70 -
Group Number 19
Development of the application that uses imaging technology
128 に、192 以上 256 未満であれば 192 に、256 以上であれば 256 にという操作を行
なっている。この操作によって色調のバリエーションを減らし、色を極端にすることで
レトロ感を演出している。
このエフェクトは、モノクロではないレトロ調を表現したいという案を基に開発を
行った。元の画像のレッド・グリーン・ブルーの値にプラスする値は、プロジェクトメ
ンバーにレビューをもらいながら様々な値を実際に試しながら決定した。またこのエ
フェクトを開発するにあたって、実際には用いられなかったが画像全体を 2 値化してか
ら R レッド・グリーン・ブルーの値を操作するという手法や、ぼかしなどのフィルタ
をかける手法等様々な手法を学び試行錯誤した。このエフェクトを使うことによって、
夕暮れ時のような視界を得ることができ、どことなくアンニュイな気分に浸ることがで
きる。
図 3.59 カラーレトロエフェクト
(※文責: 谷岡翔馬)
ドットアニメーション
ドットアニメーションエフェクトでは、Web カメラから入力された画像の色調を極
端にし、画像全体にモザイクをかける操作を行なっている。これによってユーザーは、
ファミコンの中の世界に迷い込んだような視界を楽しむことができる。
このエフェクトでは、まず画像全体にモザイク化の関数を使用してファミコンドット
模様を表現している。そして前項のカラーレトロエフェクトと同じく画像の全ての画
素においてレッド・グリーン・ブルーの値を取り出し、レッド・グリーン・ブルーのそ
れぞれの値について 64 未満であれば 0 に、64 以上 128 未満であれば 64 に、128 以上
192 未満であれば 128 に、192 以上 256 未満であれば 192 に、256 以上であれば 256 に
という操作を行なっている。色調のバリエーションを減らすことで、色の数が少なく極
端なファミコンの世界を再現している。
このエフェクトは、どのようなエフェクトを開発するかという話し合いの中で出た
ゲームの中にいるような視界というキーワードを基に開発を行った。このエフェクトで
最も重要な部分は、RGB 値を範囲を決め極端な値にすることだ。レッド・グリーン・
ブルーの値を何段階にするかや値の範囲については、メンバー内で意見を出し合いなが
ら試行錯誤し上記の値に決定した。このエフェクトではモザイク化を行いファミコンの
Group Report of 2012 SISP
- 71 -
Group Number 19
Development of the application that uses imaging technology
世界を表現しているが、モザイク化を行わないエフェクトもプロジェクトメンバーの中
で好評だった。そのため、この手法を用いて何かできないかと考えたところ、前項のカ
ラーレトロエフェクトの案に至った。
図 3.60 ドットアニメーションエフェクト
(※文責: 谷岡翔馬)
グロー
画像が発光しているかのように加工するエフェクトである。まず画像を複製し、複製
した画像に対して cvSmooth() を使用し平滑化を行う。次に 2 つの画像を cvAdd() を
用いて加算合成という方法で合成する。cvAdd() は画素の RGB の値を単純に加算する
ものであり、加算合成の計算式は、背面の画像の画素を b(b1,b2,b3)、前面の画像の画
素を f(f1,f2,f3) として、次のように規定される。
合成結果 = b + f = (b1+f1, b2+f2, b3+f3)
また、単純に加算合成するだけでは白飛び(画素の値が [255,255,255] に達すること)を
する箇所が増えてしまうおそれがあるため、平滑化した画像に対して cvConvertScale()
を用いて画素値の減衰を行ない、それから加算合成を行なっている。
(※文責: 苗加悠貴)
残像
画像に残像のような効果を与えるエフェクトである。I++ では while ループを用い
ることにより表示する画像を更新しているが、表示した画像をコピーし 1 ループの間だ
け保持し重ねることにより、残像のような効果をつくり出している。手順として、まず
1 ループ前の画像と現在の入力画像をオーバーレイ合成し出力する。ここで、出力画像
を 1 ループ前の画像の変数に格納することにより、次回のループ以降もオーバーレイ合
成により像がしばらく残り続けるようになっている。
(※文責: 苗加悠貴)
ヘブン状態
画像に幸せな演出を加えるエフェクトである。入力画像に対して予め用意した虹色の
グラデーション画像をオーバーレイ合成し、さらにその上から光の画像を cvAdd() に
Group Report of 2012 SISP
- 72 -
Group Number 19
Development of the application that uses imaging technology
図 3.61
グロー
図 3.62 残像
て加算合成している。光がスクロールする演出は変数によって制御されている。
(※文責: 苗加悠貴)
顔認識モザイク
顔認識モザイクエフェクトは Web カメラから入力された画像の中から人間の顔を認
識し、顔にモザイクをかけるという効果を与える。これによってユーザーは自分が見た
人の顔にモザイクがかかっている視界を楽しむことができる。
モザイクをかける処理にはモザイク化の関数を用いており、15 ピクセル四方のタイ
ルを指定範囲に並べている。また、このエフェクト内にループ処理を加えることによっ
て 1 度に複数の顔を認識してモザイクをかけることができる。この処理の流れは他の顔
認識を用いたエフェクトのベースとしても利用しており、実装できるエフェクトの幅を
広げている。
このエフェクトは顔認識を用いた面白いエフェクトとしてプロジェクトメンバー内で
話し合った際に出た案を実装している。普段見ている風景でも、人の顔だけ見ることが
できない状態にすることで普段とは異なる風景を楽しむことができる。また、顔がモザ
イクによって隠されている状態の相手と会話をすることも、普段とは異なる体験として
Group Report of 2012 SISP
- 73 -
Group Number 19
Development of the application that uses imaging technology
図 3.63
ヘブン状態
ユーザーを楽しませている。
図 3.64 顔認識モザイク
(※文責: 野波淳里)
顔ぼかし
顔ぼかしエフェクトは Web カメラから入力された画像の中から人間の顔を認識し、
顔をぼやかすという効果を与える。エフェクトの内容は顔認識モザイクと似ているが、
ぼかしをかけることによってモザイクとは異なる視界を楽しむことができる。
このエフェクトは顔認識によって得た座標を元に円形のマスク画像を描画し、マスク
内に画像処理をしている。マスク画像を顔認識の結果に合わせて作成することによっ
て、認識した顔を追跡するようにエフェクトをかけている。マスク処理は特定の部分の
みに変化を加える際に用いることができる。これによって直接画素を変化させる処理以
外の効果を与えることができる。
このエフェクトは、顔認識によって座標を得ることができることを活かすことができ
る案として、顔だけにエフェクトをかける一般的な例として実装した。顔認識モザイク
Group Report of 2012 SISP
- 74 -
Group Number 19
Development of the application that uses imaging technology
とは異なる方法で実装しており、マスク内に加える画像処理の種類を変更することに
よって、多様な効果をユーザーに与えることができる。他にマスク内の処理の例とし
て、顔だけを上下反転させるものや、顔の位置だけを移動させるものも考えられる。
図 3.65 顔ぼかし
(※文責: 野波淳里)
顔に花
顔に花エフェクトは Web カメラから入力された画像の中から人間の顔を認識し、顔
の周囲に花が咲くという効果を与える。認識した顔の座標から画像を上書きする場所を
指定し、用意した花の画像を画素値の上書きによって描画する。
このエフェクトでは最初に、顔認識によって得た座標から顔の中心の座標を算出して
いる。これによって上書きする花の画像の位置を決定し、画素値を上書きする関数に
よって画像を描画する。花の画像は輪を描くように花が配置されており、花々が顔を
囲い込むように描画している。また、花の画像はフリー素材を Web 上からダウンロー
ドしたものを加工・合成し利用している。認識した顔の大きさや形には個人差があるた
め、算出された描画位置の調整や上書きする際の画像サイズの調節には特に力を入れて
取り組んで実装した。
このエフェクトは「見る」ことに面白さを付加する機能の内、ほのぼのとした気持ち
になることをテーマとして開発された。プロジェクトメンバーが話し合った結果、ほの
ぼのとした様子を表現するには花が多く用いられている場合が多いと考え、このエフェ
クトを実装した。現在は画素値の上書きによる静止画の描画のみになっているが、動い
ている花などの動画も同時に合成できるようになると、よりテーマに近いものになると
考えられる。
(※文責: 野波淳里)
天使化
天使化エフェクトは Web カメラから入力された画像の中から人間の顔を認識し、頭
の上に天使の輪を描画するという効果を与える。認識した顔の座標から頭の位置を算出
し、用意した天使の輪の画像を画素値の上書きによって描画する。
Group Report of 2012 SISP
- 75 -
Group Number 19
Development of the application that uses imaging technology
図 3.66
顔に花
このエフェクトでは最初に、顔認識によって得た座標から顔の中心の座標と頭の上の
座標を算出し、対応する位置に天使の輪の画像を描画している。また、天使の輪の描画
には画素値を上書きする関数を用いている。顔に花エフェクト同様、認識した顔にある
個人差を考慮した結果、顔の中心から顔の大きさだけ上の位置に画像を描画すると大半
の人に対して適切な位置に描画されることがわかった。
このエフェクトは奇跡や神秘的なエフェクトとして開発された。いつも会話している
友人が天使になるという普段よりも神秘的な体験は、ユーザーに面白さを感じてもらえ
ると考え実装した、現在は天使の輪の画像を単純に描画しているだけだが、残像エフェ
クトなどと組み合わせることでより天使の輪に近いものを作ることも可能であると考え
られる。
図 3.67
天使化
(※文責: 野波淳里)
・最終成果物で使用している外部ライブラリ
プロトタイプは OpenCV ライブラリと VideoInput ライブラリを利用してプログラ
Group Report of 2012 SISP
- 76 -
Group Number 19
Development of the application that uses imaging technology
ムを制御していたが、成果物を製作するにあたって VideoInput ライブラリの代わりに
DirectShow ライブラリを使うことを検討した。DirectShow ライブラリを用いる利点とし
て、動作の軽量化、並列化処理の簡易化などが挙げられる。また、DirectShow ライブラリ
を使うにあたってカメラ制御をより簡易化することができる EWCLIB ライブラリを利用し
た。しかし最終的な成果物では DirectShow ライブラリと EWCLIB ライブラリではなく、
プロトタイプと同様に VideoInput ライブラリを用いて製作を行った。
(※文責: 野波淳里)
DirectShow
DirectShow とはマイクロソフトによるメディアファイルまたはストリームに対する
様々な操作を行うマルチメディアフレームワークと API である。DirectShow は 1996
年 3 月より前身が開発されており、1997 年から DirectShow として開発が進められて
いる。多数のプログラミング言語で共通のインターフェースを公開し、拡張性も高い
ものとなっている。メディアに関して再生・記録など幅広い操作を行えるようになって
いる。
DirectShow では大きなマルチメディアタスク(映像・音声再生など)をフィルタの
並びへ小さく分割して取り扱うことができる。後期の活動では、その中の以下の要素を
用いることでプログラムの軽量化や並列化処理を実現しようと取り組んだ。
• ソースフィルタファイルから読み込むなど、データストリームを提供する。
• 変換フィルタ他のフィルタの出力を受け取り、変換を行う。
• レンダフィルタレンダリング処理を行う。
(※文責: 野波淳里)
EWCLIB
EWCLIB ライブラリは DirectShow ライブラリによるカメラ画像入出力をより簡易
的に行うためのライブラリである。
• デバイス起動・画像入力・画像出力の関数が用意されている
• 複数カメラの同時接続に対応している
• カメラ毎に解像度、フレームレートの設定ができる
• 明るさ、コントラスト、ホワイトバランス等の取得・設定ができる
• 画像の更新確認、サンプル時刻の取得、フレームバッファの変更ができる
(※文責: 野波淳里)
VideoInput ライブラリ
VideoInput ライブラリはビデオキャプチャを簡単に行うことができるライブラリで
ある。OpenCV 内にもビデオキャプチャに関する機能は見られるが、複数の Web カメ
ラを同時に扱うと動作が不安定になることがあるため、Videoinput ライブラリを用い
て安定した Web カメラ制御を実現した。VideoInput ライブラリはフリーで配布され
ているライブラリであり、プログラム内でインポートするだけで導入することができ
る。また、VideoInput ライブラリには以下の特徴がある。
• VideoInput ライブラリだけでも制御ができる
Group Report of 2012 SISP
- 77 -
Group Number 19
Development of the application that uses imaging technology
• 複数のカメラデバイスから画像を取得できる
• 多くのビデオキャプチャ装置をサポートしている
(※文責: 野波淳里)
実装には至らなかった技術・エフェクト
本項では、様々なエフェクトを開発・実装する中で技術的な理由や方向性の違いにより、成果物
に実装するには至らなかったエフェクトやアイデアを紹介する。方向性の違いとは、私達が思い描
く面白さにそぐわないという意味である。実際に開発が行われたエフェクトはメンバー全員で意見
を出し合い、より面白いものにすることができないか検討が行われ成果物に至っている。本項で紹
介するのは、目標に技術が追いつかず期間内に仕上げられなかったものや、検討の結果今ひとつ面
白さが足りていないのではないかとされたものである。またアイデアという形になるまでには至ら
なかったが、私達が興味を持って調べた技術についても紹介する。
(※文責: 谷岡翔馬)
・ノイズ
追加のエフェクトとして、時間差を用いて画像の一部にタイムラグのような乱れをライン
状もしくはノイズのように生じさせるエフェクトを考えた。このエフェクトの実装方法とし
て、OpenCV の関数を用いて画像間の差分をとる方法と、画像の上に数フレーム前の画像
を重ねる方法について検証した。
初めは、人が動くなどして映像に変化があった部分にエフェクトがかかるようにすること
を想定していたため、OpenCV の関数を利用して、1 フレーム毎の画像間の差分をとる方法
を試した。そうすることで、細かなノイズを生じさせることができるのではないかと考え、
1 フレーム毎に設定した。画像間の差分をとるときには、cvSub 関数を用いた。
cvSub 関数では二つの配列の要素ごとの減算を行うので、第 1 引数に 1 フレーム前の画
像、第 2 引数に現在の画像を指定し、第 1 引数の画像の配列から第 2 引数の画像の配列を引
いたものを第 3 引数に指定した変数へ画像として出力するようにした。しかし 1 フレーム
毎だとフレーム間の差をほとんど判別することができず、映像に目立った変化は与えられな
かった。
他にも 5 フレーム毎など、フレーム数を変更して何パターンか試したが、意図していたよ
うな映像の一部に乱れを生じさせるものではなく、映像全体にズレが生じることになり、残
像エフェクトと同じような結果になってしまった。そのため、この方法では実装出来ないと
判断した。
別の方法を考えたとき、映像の一部に変化を生じさせるということから、顔認識で用いた
技術を応用する方法について検討した。OpenCV の分類器には正面を向いた顔以外にも目
や口、全身を認識することができる 21 種類の学習済みデータが備わっていたので、その中
の全身を認識するためのデータを利用することで、人物がいると認識された箇所にだけ効果
を与えられるのではないかと考えた。
画像間の差分を取る処理を行ったときの結果から、5 フレーム差での画像の変化を与える
ようにした。画像を格納する配列を 5 フレーム分用意し、その中に取得した画像を順に格納
するようにした。フレームをカウントする変数をおき、その変数を添え字として、取得した
画像のコピーを用意した配列に格納するようにした。そうすることで、配列に格納してある
画像を呼び出すことにより時間差のある画像が利用できるようになる。
Group Report of 2012 SISP
- 78 -
Group Number 19
Development of the application that uses imaging technology
他のエフェクトで用いられている、画像を重ねる技術を利用して 6 フレーム目で 0 番目の
配列に格納されている画像、つまり 1 フレーム目を重ねることで、差のある画像を生じさせ
た。このとき、画像の上に画像を重ねるだけではなく、分類器を利用して人物を認識し、そ
の位置を指定することで、画像全体ではなく特定の場所に変化を与えることとした。
範囲を指定し、その場所に画像を重ねるだけではただ一部の画像を入れ替えただけに見え
るので、重ねる画像も該当範囲の中で分割することで、現在の画像と数フレーム前の画像が
交互になるようにした。いくつかのパターンを試したが、5 等分にした場合でも 20 等分に
した場合でも、目立って処理が遅く感じることはなかった。
この方法を使うことにより、タイムラグのようなライン状の乱れを映像に与えることが出
来た。
ノイズのようにタイムラグを生じさせる方法としては、モザイク処理を応用することがで
きると考える。モザイク処理は範囲が固定されているが、その範囲をランダムに与えること
で、モザイクがかかる部分とかからない部分が疎らになり、モザイクのかかった部分がノイ
ズのように見えるのではないかと考えたが、実際に実験するには至らなかった。
OpenCV で物体検出を行う際、カスケード分類器を読み込む関数にバグがあり、このエ
フェクトを開発している最中にもそのバグによるエラーが発生した。発生したエラーは、分
類器を読み込んで変数に置き換える際、cvLoad 関数を用いるようにしていたが、プログラ
ムの中でこの cvLoad 関数を使用する前に、別の cv 関数を呼んでいなければエラーになる
というものであった。今回は時間の関係上発生したエラーに対処することができず、このエ
フェクトを成果発表までに I++ へ実装することはできなかったが、時間差を利用したこの
エフェクトを追加することで、時間の経過を視覚化した映像を見ることができると考えら
れる。
(※文責: 森理美)
・セピア
セピアエフェクトは Web カメラから入力された画像をセピア色の画像にしようという発
想によって製作が行われた。本エフェクトはユーザーが普段見ている視界を、古い映写機で
映しだしているような視界にすることを目標としていた。
このエフェクトでは、画像全体をグレースケール化した後、画像のレッド・グリーン・ブ
ルーの値を操作することで画像全体をセピア色にする表現を可能にしている。具体的には画
像のレッド成分を増加させ、ブルー成分を減少させることでセピア色を表現している。
このレッド・グリーン・ブルーの値を操作する手法は、前述したカラーレトロエフェクトや
ドットアニメーションエフェクトで使われているものである。セピアエフェクトを製作する
過程で、レッド・グリーン・ブルーの値を操作する手法を学ぶことが出来たのでこれらのエ
フェクトの案が生まれ完成するに至っている。ただ、Web カメラから取り込んだ映像をセ
ピアにすることはできたが、映写機で映しだした際に現れるノイズが上手く表現できなかっ
たため成果物に実装するには至らなかった。このセピアエフェクトを製作している際に問題
になったのは、ノイズの画像を透過合成する方法が分からないことだった。最終的にはプロ
ジェクト内でアルファブレンドの技術を確立することができたため、この技術を用いれば実
装することができると考えられる。
(※文責: 谷岡翔馬)
Group Report of 2012 SISP
- 79 -
Group Number 19
Development of the application that uses imaging technology
図 3.68 セピアエフェクトのイメージ
・色弱
色弱エフェクトは RGB の値を直接操作する手法を学んだ後に生まれたエフェクトアイデ
アの一つで、色弱者の視界を体験してみたいという発想によるものであった。
エフェクトの構想を練る作業は行われたが、私達が考えていた楽しさからは外れた表現で
はないかという意見が挙がり、製作および実装の作業は行われなかった。本エフェクトが完
成されれば、色弱者にも優しい配色デザインであるカラーユニバーサルデザインの作成に一
役買うことができるのではないだろうか。
(※文責: 谷岡翔馬)
・AR/VR 技術
I++ は「見る」ことに面白さを付加するという目的を持って開発を行った装置である。
AR/VR 技術は見えないものを CG 技術を用いて見えるようにするという技術なので、本
成果物と親和性が高く色々なアイデアが出された。例えば普段見ている景色をロールプレ
イングゲームのダンジョンのように変えてしまい探検している気分を味わうというものや、
I++ を使っているユーザーのみが見える文字を書くことができる落書きツールにするとい
うような案である。本技術を元に出された案は普段とは違った体験をするためのツールとし
て I++ を使用するというものであった。残念ながら本技術を習得するには時間が足りない
という判断が成されたため、技術研究の初期段階で断念してしまったが、またこのような装
置を製作する機会があれば取り組みたい。
(※文責: 谷岡翔馬)
光学迷彩
プロジェクト活動初期にメンバーが興味を持った技術を報告する場で、光学迷彩の技術が紹
介された。本技術はある物体を様々な手法で透過させる技術で、ある物体に映像を投影して
背景と同化させる映像投影型の手法に興味を持って研究を進めた。本技術は他人に自分を見
Group Report of 2012 SISP
- 80 -
Group Number 19
Development of the application that uses imaging technology
せるというコンセプトのため、自分が見て楽しむという I++ のコンセプトからは外れてし
まっていたため具体的なアイデアの実装は見送られた。しかし、ある物体の上に映像を投影
するという考え方は上述したノイズエフェクトに継承されており、全く別の用途として使わ
れている手法でも応用することによって新しいアイデアに生かすことができるということを
学ぶことができた。
(※文責: 苗加悠貴)
・人の動作の検出
I++ のユーザビリティを向上させるために、ユーザーの動作を検出しそれに I++ を連
動させるという案が出された。具体的には、スマートフォンなどのタッチスクリーンで使用
されているフリック入力を検出することで画面の左右移動を実現しようという案や、画面を
殴る、めくる、紙を丸めると言った動作を検出し画面を初期状態にするという案である。ま
た、プロジェクト活動初期にもキネクトで動作を検出する技術がメンバーから報告され、エ
アギターやリアル格闘ゲームというようなアイデアが出された。エアギターはキネクトで動
作を検出し音をだすのはもちろん、ヘッドマウントディスプレイに観客を映し巧さや盛り上
がりに応じて観客を沸き立たせたり静まらせたりするような案である。またリアル格闘ゲー
ムはパンチやキックなどの動きに応じて対戦相手にダメージを与えたり、波動拳を出したり
するものである。様々なアイデアが出されたが、予算や習得すべき技術を考慮した結果、本
成果物である I++ に取り入れるには至らなかったが、本技術を用いればアイデアの幅が広
がると思われる。
(※文責: 谷岡翔馬)
後期の取り組み
後期からは顔認識技術などを用いたエフェクトの追加やカメラデバイス制御の改善を中心とし
て活動を行った。これは前期にプロトタイプとして製作した装置よりも Web カメラやエフェクト
の数を多くすることになるため、最初にプログラムの環境面の見直しを行った。プログラムの環境
面の見直しをした結果、DirectShow ライブラリと EWCLIB ライブラリの機能を用いることで動
作の軽量化、顔認識技術との連携、並列化処理の簡易化、デバイス制御の改善が実現可能だったた
め、この 2 つのライブラリの導入を行った。
顔認識技術は OpenCV に備わっている機能だが、顔を認識するための学習ファイルが膨大
なものであるため、そのまま使用すると動作が不安定になってしまう問題があった。この問題に
対して、DirectShow ライブラリと EWCLIB ライブラリによって Web カメラの入出力を行い、
OpenCV は画像処理のみを行うようにすることによって動作の軽量化・高速化を図った。しかし、
以上の方法でも動作の軽量化には限界があったため、これに代わる方法で動作の高速化を行った。
またプロトタイプでは VideoInput ライブラリを用いて Web カメラを認識・制御していたが、
複数の Web カメラを USB ハブで接続するたびにポート番号が変更されてしまうという問題が
あった。この問題に対して DirectShow ライブラリを用いることでポート番号から制御して、カメ
ラデバイスの認識・制御の改善を進めた。しかし USB ハブを制御するにあたって新しいプラット
フォームを導入する必要があり、環境面が複雑になってしまうことから実行を断念した。
以上の理由から、DirectShow ライブラリと EWCLIB ライブラリの導入をせずに、VideoInput
ライブラリと OpenCV の機能を工夫して使うことによって、後期の目標を達成できるように取り
Group Report of 2012 SISP
- 81 -
Group Number 19
Development of the application that uses imaging technology
図 3.69
リアル格闘ゲーム
組んだ。
(※文責: 野波淳里)
Group Report of 2012 SISP
- 82 -
Group Number 19
Development of the application that uses imaging technology
第4章
4.1
4.1.1
発表
中間発表会
ポスター
ポスターは全部で、2 枚作成した。1 枚はメインポスターとしプロジェクト全体の流れをまとめ、
もう 1 枚はサブポスターとして成果物についてくわしく説明をまとめた。メインポスターは成果物
の概要、成果物の説明、プロジェクトの進行過程を主に文章を使って、説明しているポスターとし
た。私たちのプロジェクトは面白いものを作ることが大事だと考えているので、楽しさが伝わるよ
うに笑顔で成果物を使っている写真を用いた。サブポスターは主に写真や図を使うことで、成果物
の説明をポスターにまとめた。成果物の説明として、8つの Web カメラを使ってどのように見え
ているかの説明、映像の縮小拡大についての説明、4つのエフェクトについての説明、コントロー
ラーによる操作方法を主に写真を使うことによって説明した。サブポスターの最後には今後の課題
をまとめた。
(※文責: 中村慎弥)
4.1.2
スライド
中間発表会の際、13 ページのスライドを用意した。スライドの製作にあたっては極力読ませず、
見せるようなものになるように意識した。具体的に画像や動画を用いて説明した。文章を掲載する
際は短い文章で伝わるように意識した。また、プロジェクト内でのみ通じる言葉が何点かあったの
で、その言葉を発表を聞いている人にわかるような言葉に置き換えて表記した。
スライドの内容は、1 ページにタイトルの書かれた表紙、2 ページにテーマ、3 ページから 7 ペー
ジまでがテーマを決定するまでのプロセス、8 ページでテーマの説明、9 ページで成果物の写真と
名前の由来、10 ページでプロトタイプの説明、11 ページでプロトタイプの見える仕組みの説明、
12 ページで成果物の完成目標、13 ページで今後のスケジュールとなっていた。
テーマ決定までのプロセスで「びっくりハウス」の説明があった。びっくりハウスとは遊園地な
どにあるアトラクションの1種で、乗客の周囲の風景を回転させることにより文字やあたかも乗客
自身が回転しているかのように錯覚させるものなのだが、画像で見せるよりも実際に映像で見せた
ほうが判りやすかったため、動画を埋め込んだ。
名前の由来では I++ の文字の I と 2 つの+についての説明を判りやすくなるように図のような形
式で表記した。(図 4.3)
各ページで意識したことは必要最低限の情報のみを掲載することである。書き過ぎではプレゼン
をする意味がないし、内容不足ではプレゼンターの負担を増やしてしまいかねない。適度な情報量
を心がけた。また必要以上の情報は掲載しないようにした。結果として、白地の背景に文字と画像
を掲載しただけの至極シンプルなスライドが出来上がった。
9 ページと 10 ページの間にデモンストレーションに移る案内のスライドを作成し、デモンスト
Group Report of 2012 SISP
- 83 -
Group Number 19
Development of the application that uses imaging technology
図 4.1
中間発表でのメインポスター
レーションに滑らかに意向できるように工夫した。
成果物の完成目標のページでは完成目標を達成するとどのようなことが可能になるかを図を交え
て説明すること具体的に理解してもらおうとした。(図 4.4)
今後のスケジュールのページでは何月までに何をするかが一目見て判るような表記をした。(図
4.5)
(※文責: 朝妻詩乃)
4.1.3
発表の準備
本番の 1 週間前にスライドの手直しを行った。スライドを教室のスクリーンに映してみて文字サ
イズが小さいことが判明した。また、全体を通して画像の量が少ない、文章が長いとの指摘を受け
た。これを元に、本番用のスライドを作り上げた。本番の 1 週間ほど前から発表練習を始めた。発
表練習ではメンバーの目の前でプレゼンとデモンストレーションを通しで行った。練習は全員が最
Group Report of 2012 SISP
- 84 -
Group Number 19
Development of the application that uses imaging technology
図 4.2
中間発表でのサブポスター
低 10 回は行った。発表以外のメンバーは発表者の表情や仕草、声量などをチェックし、発表者は
指摘された部分を直しながら何度も練習を行うことで発表の質を高めていった。発表当日のアン
ケート用紙は 100 部準備をしておいた。
発表会場は 1 階プレゼンテーションベイだった。大学からイーゼル、長机、アンケート回収箱な
どを、教員からプロジェクターとスクリーンを借りて設営を行った。ポスターは大学から借りた指
定の額縁に入れることになっていた。ポスターの大きさが A1 だったため、額縁に入れるときは 2
人 1 組で行い、ポスターが折れることのないように注意を払った。円形の会場で他のプロジェクト
チーム 2 チームと共用だったため、円の中心から外側に向かって発表するような会場作りをした。
中心にスクリーンとプロジェクターを設置し、スクリーン向かって右側の壁に各ポスター、長机、
その上にデモンストレーション映像を流すディスプレイ、アンケート回収箱、アンケート用紙記入
用のボールペンを準備した。足元には装置やプロジェクターの電源ケーブルがあり、引っかかって
Group Report of 2012 SISP
- 85 -
Group Number 19
Development of the application that uses imaging technology
図 4.3 I++ の名前の由来
図 4.4
完成目標のページ
転倒する恐れがあったため、テープで床に固定し、安全面に考慮した。本番で装置が上手く作動せ
ず、デモンストレーションが行えなかった場合に備えて、ディスプレイで流していた映像を前もっ
てパソコンに入れておき、万が一の場合はスクリーンにデモ映像を流せるように不足の事態に備え
た。
発表本番前には通しで練習を行い、機材の設置場所や安全面の確認を行い、万全の状態で発表に
臨んだ。発表前にスクリーン前に来ていただいた方には事前にアンケート用紙と筆記用具を渡し、
アンケートを書いてもらえるようにした。
(※文責: 朝妻詩乃)
Group Report of 2012 SISP
- 86 -
Group Number 19
Development of the application that uses imaging technology
図 4.5 スケジュールの表記
4.1.4
役割分担
メンバーで発表時の役割分担をした。まず、発表は前半と後半の 2 部に別れており、前半と後
半とでメンバーを半分に分けた。このメンバー分けは前半、後半にそれぞれハードウェア担当者、
ソフトウェア担当者がバランスよく含まれるように構成した。前半を朝妻詩乃、金子真二郎、北み
さと、小林俊樹、内藤優貴で、後半を中村慎弥、谷岡翔馬、苗加悠貴、野波淳里、森理美が担当し
た。役割はプレゼンター、装置のデモンストレーション、アンケート配布、アンケート回収、質疑
応答の受け答えだった。プレゼンター、装置のデモンストレーション、アンケート配布、アンケー
ト回収に関しては事前にどの回で誰がどの役割を担当するかを決めておいた。前半、後半の各メン
バーで役割を発表するごとにローテーションし、全員が複数の役割を担当した。質疑応答に関して
は答えられる者が適宜回答した。メンバー分けで前半、後半にそれぞれハードウェア担当者、ソフ
トウェア担当者がバランスよく含まれるように構成した理由はどの様な質問が来ても答えられるよ
うにするためだった。
(※文責: 朝妻詩乃)
4.1.5
発表
発表はスライドでの説明に装置のデモンストレーション、装置の機能についての動画を交えて
行った。
(図 4.6)
スライドではまずテーマを提示し、テーマ決定に至るプロセスを説明した。その後、装置の由来
を説明し、装置のデモンストレーションを行った。デモンストレーションではプロジェクトメン
バーの一人が装置を装着して操作し、もう一人が説明を担当した。操作画面の説明、カメラの操作
説明をした後にエフェクトを数種類実演した。その際、装置による画像はスクリーンに投影し、聴
衆に見えるようにした。デモンストレーション後に、装置の仕組み、機能をスライドと動画を用い
て説明をし、今後の課題、スケジュールを提示した。デモンストレーション後に装置についての説
Group Report of 2012 SISP
- 87 -
Group Number 19
Development of the application that uses imaging technology
図 4.6 発表の様子
明をした理由は物を見てからの方が理解しやすいと考えたためであった。発表終了後に質疑応答の
時間を設けた。
発表の際、面白い装置であることをアピールするためにプレゼンターは笑顔ではきはきと話し
た。
前半の発表終了後、後半のメンバーが来たときには前半の発表での反省点を伝え、質疑応答の際
にどのような質問があったのか情報共有を行い、発表に備えた。
(※文責: 朝妻詩乃)
4.1.6
片付け
発表終了後はメンバーが速やかに会場に集合し、スクリーン、プロジェクター、イーゼル、ポス
ター、長机などの撤退作業を行い、返却作業を行った。発表終了から 10 分ほどで作業は終了した。
終了後、回収したアンケート用紙を各発表回毎に分け、それをなるべく平等になるように分け、メ
ンバーに配布し、集計作業の準備をした。
(※文責: 朝妻詩乃)
4.1.7
発表評価シート
評価人数は表 4.1、発表方法についての点数は表 4.2、発表内容についての点数は表 4.3 の通り
だった。
評価人数についてはプロジェクト学習を実際にやっている学部 3 年生が一番多かった。その他に
多かったのは学部 4 年生が次に多く、去年自分がやっていたプロジェクトを見に来る人や今年はど
のようなプロジェクトをやっているのかを見に来る人がいるのか二番目に多いのは 4 年生であっ
た。講義とプロジェクト学習の中間発表会の時間が重なってしまったのか残りの学年は全て同じよ
うな人数となっている。発表方法については実演やデモの映像を使用していてわかりやすいとい
Group Report of 2012 SISP
- 88 -
Group Number 19
Development of the application that uses imaging technology
う意見が多かった。発表内容については成果物が完全に完成してもなにがしたいのかわからない
などの意見があったが、成果物の手作り感がよいだったり面白さがちゃんと伝わるなどの意見も
あった。
発表方法の点数としては最高点は 10 点、最低点は 5 点だった。コメントを見ると、声が小さく
て、もっと大きい声で発表したほうがいいというコメントが多かったが、発表の説明がわかりやす
いや伝えることがまとまっていてよかったなどのポジティブな意見が多かった。デモ映像や実演に
関してのコメントも多くあり、デモ映像があることで分かりやすい説明になっているというコメン
トや、面白さが伝わったというコメントがあった。実演に関しては、実演をすることによって面白
いやわかりやすいというコメントがあったので、面白さを直接伝えられたり、説明を円滑にすすめ
るために大事な役割を担ったとコメントを見て思った。実演やデモ映像による発表は見てる人の興
味をもってくることができると思うので、この発表の仕方はとても効果的だった。
発表内容の点数としては最高点は 10 点、最低点は 5 点だった。コメントを見ると、今後の展望
として、面白いものを作って終わってしまいそうや、この成果物が社会の役に立つのかという疑問
のコメントがあったが、興味を持ってくれている人は私達が作成した成果物に対して、面白いやエ
フェクト機能がすごいや今後の展開に期待してくれている人がいた。I++ の発想が Great という
コメントもあった。確かに面白いものができてそれでおしまいではなく、それがどのように発展し
ていくかをプロジェクトメンバーで話し合う必要があると思われる。
(※文責: 中村慎弥)
表 4.1
評価人数
B1
B2
B3
B4
M1
M2
教員
一般
合計
5人
4人
39 人
12 人
2人
4人
8人
3人
73 人
表 4.2 発表方法の点数
平均点
最高点
最低点
7.94
10
5
図 4.7 発表方法の点数の人数の分布図
4.1.8
反省
発表の反省点として 3 点挙げられた。1 点目スライドの文字の大きさが挙げられる。文字サイズ
は準備の時点で教員から指摘されており元のスライドに比べて大きくしていたが、それでも実際に
Group Report of 2012 SISP
- 89 -
Group Number 19
Development of the application that uses imaging technology
表 4.3
発表内容の点数
平均点
最高点
最低点
7.65
10
5
図 4.8
発表内容の点数の分布図
会場で投影して見てみると小さく感じた。本番前の練習で気がついたが、直す時間がなかった。最
終発表会では時間にゆとりを持って事前確認を行う必要がある。2 点目質疑応答の対応についてで
ある。誰でも答えられるようなメンバー構成にしていたが、いざ質問されると同じメンバーばかり
が回答していた。これでは参加していたメンバーが限られていたかのように受け取られる可能性が
あった。より満遍なく回答する必要があった。3 点目は服装についてである。発表当日の服装は特
に統一はせずに私服だった。しかし「私服があまりにラフすぎる」との意見をもらった。最終発表
会では服装を検討する必要があった。
(※文責: 朝妻詩乃)
4.2
4.2.1
最終発表会
ポスター
最終発表会で用いるポスターは全部で 4 枚作成した。
メインポスターは面白さを全面に出せるように I++ を使って楽しんでる様子の写真を大きく使
い「これは面白いものなのだ」ということを伝えられるように作成した。その他に I++ の概要と
ハードウェアとソフトウェアの簡単な説明を記載した。説明のタイトルは全てキャッチフレーズを
使い、ポスターの内容がわかりやすくし、また、興味を持たせるように作成した。
サブポスターは 3 枚。それぞれハードウェアのポスターとソフトウェアのポスターと I++ のイ
メージポスターを作成した。サブポスターでは、メインポスターでは説明しきれていないことを詳
しく説明した。
ハードウェアのポスターでは、ノートパソコンや USB ハブなどをしまうおかもちや Web カメ
ラをとりつけたボウルがとても手がこんでいてとてもかっこいいものとなったので、それらを目一
杯に見せたいと考えた。おかもちを使ったバックパックの紹介では中身の周辺機器をまとめたボー
ドや前から見たところ、後ろから見たところまで細かく紹介するように作成した。ボウルの部分も
たくさんカメラがついてるということをアピールするように紹介した。また、I++ には欠かせな
いヘッドマウントディスプレイも重要だと考え、この部分も紹介した。ハードウェアでは実際に装
着している姿も大切だと考えたので、ユーザーが実際に使用している姿を後ろから見た写真、前方
Group Report of 2012 SISP
- 90 -
Group Number 19
Development of the application that uses imaging technology
から見た写真も載せた。
ソフトウェアのポスターでは、16 種類のエフェクトと 20 個以上使った Web カメラでどのよ
うな仕組みで映像を見ているのかを詳しく説明した。Web カメラを通して見える映像の仕組みは
実際に使っている技術を図と文章を用いて説明した。16 種類のエフェクトはひとつひとつ画像と
キャッチフレーズとエフェクトの説明を書くという方法でポスターに載せた。文章よりも画像で説
明したほうがわかりやすいと他のメンバーと話あった結果わかったので画像を見せるのをメインで
文章はそれを補うということでエフェクトの説明とした。
イメージポスターでは、他の 3 枚のポスターとは一見違うポスターを使うことによって一つの商
品を売り出すようにしたいと考え、1 枚だけ全面にイメージ画像を表示し、成果物の名前とキャッ
チフレーズだけを載せた。ポスターの画像が今まで見たことのない視界を I++ を使えば見ること
ができ、面白いということを表しているような画像なのでそれにあわせて、キャッチフレーズもそ
れに合わせたようなものにした。
(※文責: 中村慎弥)
4.2.2
スライド
最終発表会の際、10 ページのスライドを用意した。
製作の際、プレゼンターの話す内容を補うような内容になるように心がけた。そのためスライド
には全てを掲載するのではなく、最低限必要なことしか掲載せず、シンプルに内容をまとめた。中
間発表会の時と同様、読むのではなく見て判るスライドにしたかったのでイラストを積極的に使用
した。しかしイラストだけを掲載した、読まずに見るスライドではあるが見てもよく判らないスラ
イドにはならないように注意した。中間発表会のスライドは白地に文字、イラストが並んでいるだ
けの素っ気無いデザインで活動内容をただ伝えるだけのスライドだった。最終発表会のスライドで
は装置の面白い雰囲気が見ているだけで伝わるように背景を明るい色をベースにデザインした。
スライドの内容は、1 ページに表紙、2 ページにコンセプト、3 ページにプロセス、4 ページに装
置についての説明、5 ページに装置の仕様説明、6 ページに装置の仕組みについて、7 ページにエ
フェクトと呼ばれる特殊効果の一覧、テーマの説明、8 ページにデモンストレーションの案内、9
ページで成果物の達成点の説明、10 ページで装置の今後についての説明とした。
表紙は次の発表の合間までスクリーンに表示しておく看板の役割もあったため、見た人に「これ
は何だろう」と思わせるような工夫をした。具体的には装置を背負った人物のシルエットに噴出し
をつけ、噴出し内にタイトルなどを表記した。あたかも人物が話している絵の様に仕上げた。(図
4.9)
コンセプトのページではコンセプトの 1 文を画面の中心に配置し、注目してもらえるようにし
た。(図 4.10)
プロセスのページでは与えられたテーマをシルエットの噴出し内に表記することでミッションを
与えられているような遊び心を演出した。(図 4.11)
装置の仕様についての説明のページでは I++ ではどの様にして視界を実現しているか、どの様
にして視界に面白さを付加しているのかを判りやすい文章で短くまとめると共に、ヘッドマウント
ディスプレイを目にしたことのある人が少ないと考え、ヘッドマウントディスプレイの画像を掲載
した。
(図 4.12)
Group Report of 2012 SISP
- 91 -
Group Number 19
Development of the application that uses imaging technology
図 4.9
表紙
図 4.10 コンセプトのページ
装置の仕組みのページでは装置を背負った人物のシルエット図を拡大しどの順番で何を行って視
界を作っているのかをわかりやすく説明した。(図 4.13)
エフェクトのページでは全てのエフェクトの説明を掲載するとページが多くなってしまうこと
と、見ている人が全て読むことは出来ないと考え、エフェクトの実行画面の一覧を掲載するだけに
し、詳細が書かれているポスターを見てもらえるように促した。(図 4.14)
達成点のページでは達成した事柄がぱっと見ただけでわかるようにアイコンを掲載し、その右隣
に短い文章を表記した。アイコンは堅苦しくないデフォルメしたものを製作した。(図 4.15)
各ページには明るい青の枠をつけ明るさを演出した。
Group Report of 2012 SISP
- 92 -
Group Number 19
Development of the application that uses imaging technology
図 4.11 プロセスのページ
図 4.12 仕様のページ
(※文責: 朝妻詩乃)
4.2.3
発表の準備
本番の 1 週間前にスライドの手直しを行った。最初に製作したスライドでは出来なかったことが
多く書かれており、実際に出来たことが伝わってこないとの指摘を受けた。スライドの改訂版では
装置で出来ること、達成できたことを強く推すような内容に書き換えた。発表練習は本番の 3 日前
から行った。これはぎりぎりまで装置の調整及びデモンストレーション映像の製作を行っていたた
めである。プレゼンターは繰り返し発表の内容を確認し、その他のメンバーがその様子を見て訂正
箇所を指摘し、より良い発表になるように練習をした。プレゼンター以外のメンバーは装置を最低
1 度は装着してデモンストレーションを行い、動きの確認をした。装置の装着は単独では不可能で
あり、3 人の手伝いが必要だった。それにかかる時間を確認し、本番では限られた時間内に装置の
Group Report of 2012 SISP
- 93 -
Group Number 19
Development of the application that uses imaging technology
図 4.13 仕組みのページ
図 4.14 エフェクトのページ
着脱が出来るように練習した。発表当日のアンケート用紙は 100 部準備をしておいた。
一部メンバーは facebook などに装置の写真をアップし、発表会の告知をしていた。
発表当日の服装は白いシャツにカーディガン、下は派手ではないズボンと統一した。これは前期
で服装の指摘をされたためである。しかし本プロジェクトはスーツを着て発表するような堅苦しい
ものではなく面白さをアピールしたいため、フォーマルな服装は控えたかった。そこで、ある程度
フォーマルさを取り入れつつ、しかしフォーマルではない服装を目指した結果、シャツとカーディ
ガン、ズボンの組み合わせとなった。なお、カーディガンの色は指定せず、各自好きな色の物を着
用した。
発表会場は1階プレゼンテーションベイだった。使用した機材は大学から借りたイーゼル、長
机、アンケート回収箱など、教員から事前に借りていたプロジェクターとスクリーンだった。ポス
ターは大学から借りた指定の額縁に入れることになっていた。ポスターの大きさが A1 だったた
め、額縁に入れるときは 2 人 1 組で行い、ポスターが折れることのないように注意を払った。プレ
Group Report of 2012 SISP
- 94 -
Group Number 19
Development of the application that uses imaging technology
図 4.15
達成点のページ
ゼンテーションベイは3つのプロジェクトチームで共用だったため、プレゼンテーションベイの真
ん中から外側に向けて発表を行えるような配置をし、聴衆にはプレゼンテーションベイの階段及び
その周囲から見てもらうことを想定した。スクリーンとプロジェクターを中心に設置し、スクリー
ンを正面に見たときに向かって左側に I++ のイメージポスターを、右側に説明のポスター、長机
を設置し、デモ映像を流すディスプレイとアンケート回収箱を設置した。これは左側からの方が人
の流れが多かったことに目を付け、たまたまふらっと歩いてきた人に興味を持ってもらうことが目
的だった。右側にデモンストレーション映像用のディスプレイと説明のポスターを設置した理由と
してはイメージポスターで興味を持った人がそのままの流れで I++ についての情報を得られるよ
うにするためである。またそのポスターを発表後に眺めてからアンケートを書いてもらえるように
アンケート回収箱を右側に設置した。右側に壁があったため、立ち止まって見やすかったことも理
由として挙げられる。
装置の実演で歩く必要があったため、プロジェクターや装置の電源ケーブルが床にある状態では
危険と判断し、テープで床にケーブルを固定し、安全面に考慮して会場作りを行った。
発表 5 分前には装置を装着し、プレゼンターも最終確認を終え、いつでも発表を始められるよう
にしていた。発表前にスクリーン前に来ていただいた方には事前にアンケート用紙と筆記用具を渡
し、アンケートを書いてもらえるようにした。
(※文責: 朝妻詩乃)
4.2.4
役割分担
メンバーで発表時の役割分担をした。まず、発表は前半と後半の 2 部に別れており、前半と後半
とでメンバーを半分に分けた。前半を朝妻詩乃、金子真二郎、小林俊樹、内藤優貴、中村慎弥で、
後半を北みさと、谷岡翔馬、苗加悠貴、野波淳里、森理美で担当した。次に前半、後半のメンバー
の中でスライドで発表行うプレゼンターの役割を 2 名とその他の仕事を担当する 3 名を決めた。前
半ではプレゼンターは 金子真二郎と内藤優貴、その他の担当が朝妻詩乃、小林俊樹、中村慎弥、後
半ではプレゼンターは北みさとと森理美、その他の担当が谷岡翔馬、苗加悠貴、野波淳里だった。
Group Report of 2012 SISP
- 95 -
Group Number 19
Development of the application that uses imaging technology
その他の仕事の担当者はデモンストレーションで装置を装着して実演する、アンケート用紙及び筆
記具の配布と回収、デモンストレーション時にエフェクトの効果が判りやすい場所に座り、装置を
付けた人間の視界に入る、などの仕事を 3 人内でローテーションして行った。
(※文責: 朝妻詩乃)
4.2.5
発表
プレゼンターの 4 人は各担当の発表全 3 回の発表を行った。これは同じ人間が話した方が話に
一貫性があると考えたためである。プレゼンター以外の人間は1度デモンストレーションとして装
置を装着して発表に参加した。(図 4.16)
図 4.16
発表の様子
発表はプレゼンターがスライドを用いてコンセプト、装置の説明、エフェクトの説明をした。そ
の後、装置のデモンストレーションを行った。スライドの説明中、装置を装着した人間はスライド
の横にマネキンとして立っており、スライドの内容で装置に関しての説明があるときは説明してい
る部位を指すなどして、具体的に理解してもらえるように心がけた。デモンストレーションでは装
置を装着して歩く、エフェクトをかけた視界を見せるなどをした。エフェクトは左右対称や上下反
転など、装置をつけて動かなくとも普段の視界とは明らかに違いが判るものを選択した。その後に
今回のプロジェクトの達成点や展望を話し、質疑応答の時間を設けた。質疑応答ではプレゼンター
の2人が回答を担当した。質疑応答がプレゼンターの 2 人だけだった理由としては、発表の際に話
していたのが 2 人だけであり、装置をつけている人間はデモンストレーション以外ではマネキンの
役割だったため、突然話すのは不自然であると判断したためである。また、直に質問者の顔を見ず
に話すのは失礼に当たると考えたためである。発表に携わっていない 2 人は発表の最中に聴衆側に
居たため、質疑応答になってプレゼンターと同じ場に出てくるのは不自然であったし、アンケート
用紙の回収をする必要があったため、今回は質疑応答に対応しなかった。発表終了後、装置を装着
していた人間は速やかに装置を外し、次に装置を装着する担当と交代した。また、装置を装着して
いなかった 2 人は会場の状態をプレゼンターと装置を装着する人に伝え、声量、デモンストレー
Group Report of 2012 SISP
- 96 -
Group Number 19
Development of the application that uses imaging technology
ションでの見る場所などを調整した。前半の発表終了後、後半のメンバーが来たときには前半の発
表での反省点を伝え、質疑応答の際にどのような質問があったのか情報共有を行い、発表に備えた。
(※文責: 朝妻詩乃)
4.2.6
片付け
発表終了後、スクリーン、プロジェクター、イーゼル、ポスター、長机などの撤退作業を行い、
返却作業を行った。また、装置を片付ける前に会場に残っていた装置を試したいと言っていた人に
装置を装着して体験をしてもらった。
体験者は 2 人だった。19 歳の男性と 20 歳の女性の女性だった。装着してみて 2 人とも「重い」
と言っていたので装置の重量に関しては改善する必要がある。しかし、実際に使用してみての感想
は 2 人とも「面白い」とのことだった。(図 4.17)
図 4.17 装置を体験している様子
使い始めは操作に慣れるまでどうして良いかわからず、立ち止まってエフェクトを試すだけだった
が、時間が経つにつれてエフェクトをかけた視界のまま歩き始めた。彼らの周囲にはプロジェクト
のメンバーや友人がおり、Web カメラの死角を利用するなどして遊んでいた。エフェクトの中で
も好評だったのは左右を反転させるエフェクトだった。パッと見は普段と変化がないように見える
が動いてみると左右の入れ替わりによる違和感を覚える。周囲の人間に声をかけられてもすぐにそ
の人間を見つけることが出来ないことが面白いようだった。装置の片付けが終わってから、回収し
たアンケート用紙の分別作業を行い、集計作業のときに作業がしやすいようにしておいた。
(※文責: 朝妻詩乃)
4.2.7
発表評価シート
最終発表を見ていただいた方の人数は全員で 89 人で中間発表会より 16 人増えたという結果
となった。学部生 1 年は 10 人、2 年は 20 人、3 年は 33 人、4 年は 10 人。院生の 1 年は 1 人、2
年は 2 人、先生は 6 人、外部は 3 人、学年未記入の人が 6 人という結果となった。一番増えた学
Group Report of 2012 SISP
- 97 -
Group Number 19
Development of the application that uses imaging technology
年は学部の 2 年だということがわかった。来年は自分たちがやるプロジェクト学習なのでそれに向
けてどのようなプロジェクトがあるのかを見に来た学部 2 年の人が多かったのではないかと考え
た。次に学部 1 年の人数も 5 人から 10 人に増えていた。大きく変わった人数はこの二学年くらい
であった。この二学年が多くなったので全体の人数が増えたのだと考えられる。
今回の発表技能の最低点数は 3 点で最高点数は 10 点で平均点数は 7.56 点であった。発表内容の
最低点数は 1 点で最高点数は 10 点で平均点数は 7.14 点であった。中間の発表会より平均点が両方
とも下がったという結果となった。最低点数が明らかに減っているので今回は平均点数が両方とも
下がったと思われる。
発表技能のコメントについてだが「デモがよかった」や「実演がありわかりやすかった」という
コメントが多数あった。やはり実際に成果物を用いてプレゼンテーションすることは効果的であっ
たとわかった。仕様上プロジェクターに映しながら実際にヘッドマウントディスプレイにも映像を
映すということができていなかったので、もしできたらもっとよいプレゼンテーションができたと
思われる。
「デモがあったおかげか、発表がわかりやすい」というコメントが多かった。「声が小さ
い」というコメントも多数あった。プレゼンテーションをするときにたくさんのプロジェクトが発
表しているのでそれも想定した発表練習をすればよかったのではと考えられる。その他「発表者の
表情がよい」や「聴衆に向かって話していたので聞き取りやすかった」などの表情や発表の仕方が
よいとコメントしてくれた方がいた。発表を聞いている人からすればちゃんと顔を見ていい表情の
ほうが聞き取りやすいということがこのコメントからわかった。なによりこのプロジェクトは面白
いものを作ったということが重要なのでいい表情で発表できたことはとてもプラスだったのではな
いかと考えられる。点数を低くつけている人が書いたコメントについては「声が小さい」などだっ
たのでもっと発表練習をしたほうがよかったのではないかと考えられる。だが点数が低くても「ポ
スターがかっこいい」や「ムービーがよい」などコメントしているため全部が全部その人にとって
マイナスなイメージではなかったと考えられる。
発表内容のコメントについてだが「実際に使ってみたい」や「非常におもしろい成果物でした」
など楽しそうだったり、面白い成果物だといった私達が思っている面白さが伝わった人がたくさん
いた印象であった。その反面「I++ の実用性がわからない」や「面白さということがちゃんと定義
付けされていないためどこが面白いのがわからない」などといったコメントがあったが定義付けを
していないのは確かであるがその中でも面白さが伝わらないような発表をした私達にも問題があっ
たのではないかと考えられる。だが私達のプロジェクトでいう面白さはみんな一致していると考え
ているのでその面白さを言葉で表しきれていなかったのも問題であると考えられる。「なぜ 360 度
の視界にこだわったのか?」「360 度見えるメリットがわからない」など私達は 360 度の視界が面
白いと考えこの機能を開発したのだが、その面白さが伝えきれなかったのはとても残念だった。
(※文責: 中村慎弥)
表 4.4
評価人数
B1
B2
B3
B4
M1
M2
教員
一般
学年未記入
合計
10 人
20 人
33 人
10 人
1人
2人
6人
3人
6人
91 人
Group Report of 2012 SISP
- 98 -
Group Number 19
Development of the application that uses imaging technology
表 4.5 発表技能の点数
平均点
最高点
最低点
7.56
10
3
表 4.6 発表内容の点数
4.2.8
平均点
最高点
最低点
7.14
10
1
反省
発表の反省点として、2 点挙げられる。1 点目は装置の体験である。発表終了後に 2 人に体験
してもらったが、体験したほうが面白さがよくわかったという感想をもらった。説明を聞き、デモ
ンストレーションを見るだけでは見た目の面白そうな雰囲気はわかるが、内容の面白さは伝わらな
かったとのコメントをもらった。発表時間内では体験をしてもらう時間を確保することが出来な
かったため、今回はスライドとデモンストレーションでしか伝えることが出来なかった。プロジェ
クトメンバーしか装置をつけて体験をしていなかったため、実際にプロジェクトのことを知らな
い人が装置を使っても面白いのかということを調査していなかった。質疑応答の場面でも「この装
置は誰が付けても面白いと感じるのだろうか」という意見があった。発表内で体験をしてもらうこ
とは出来ないにせよ、事前に被験者を何人か募って装置を試してもらい、面白いかそうではないの
か、面白い場合は何が面白いのか、面白くないのであれば何が面白いのかを訊ね、データを取り、
具体的な数字で複数の人間が面白いと証言したため、この装置は面白い、ということを説明した方
が面白いという説得力があったであろう。2 点目はアンケート用紙が足りない事態が発生したこと
だ。アンケート用紙は前半の発表ではは足りたものの、後半 2 回目の発表で足りなくなり、急遽増
刷をした。なんとか間に合ったものの、もう少し余裕を持った枚数を準備しておくべきだった。
(※文責: 朝妻詩乃)
4.2.9
今後の予定
2013 年 2 月に秋葉原で行われる学外向けの発表会に参加をする予定である。この発表会に向け
てすべき事として 2 点挙げられる。
1 点目は面白さの評価データを取ることである。反省点で挙がっていたように、実際にこの装置は
面白いのかと言うことが可視化されていないため、いくら私たちが「面白い」と言っても見ている
人にとっては説得力に欠ける。2 月の発表会までにプロジェクトメンバー以外の人間を何人か被験
者として集め、装置を装着してもらい、実際に使用してもらう必要がある。調査の際には面白いか
どうかのアンケートをとり、どこが面白いのかを明確にすることによって面白さをより具体的に推
すことが可能となる。また、被験者に許可を取り、装置を使用している様子を動画におさめ、発表
会で流すのも面白さを伝える手段として有効であると考える。実際に使っている人間の生のリアク
ションを見せることにより、体験をしていない人でも共感を得られるのではないかと考えるためで
ある。今後、計画を立て、早めに実行に移したい。
Group Report of 2012 SISP
- 99 -
Group Number 19
Development of the application that uses imaging technology
2 点目は装置を安全に運ぶ方法を考えることである。装置は頭に被る部分と背中に背負う部分の
大きく 2 つに分けられるが、頭の装置に場合、360 度に Web カメラが付いているため、Web カメ
ラに考慮して包装する必要がある。運んでいる最中に Web カメラ本体や Web カメラのケーブル
を壊してしまっては視界に支障が出てしまうため厳重に包装する必要がある。背負う部分で慎重に
扱う必要のある部分はおかもち内の中板に設置した USB ハブやヘッドマウントディスプレイの電
源などである。包装の際には緩衝材を巻きつけるなどして対策を施す。それ以外の部分はおかもち
そのものであり、外側に取り付けたものはあるにせよ、そこまで気を払う必要はないので注意さえ
していれば大丈夫である。
発表会にはプロジェクトから 2 人の代表者が参加する。本プロジェクトからは内藤優貴、中村慎
弥の 2 人が参加する予定である。内藤優貴は本プロジェクトのプロジェクトリーダーであり、プロ
ジェクト内の誰よりもプロジェクトの隅々まで知り尽くしているため是非とも参加すべきとのプ
ロジェクトメンバーの後押しがあり参加することが決定した。中村慎弥はポスターデザイン、ハー
ドウェアの企画を担当していたが、ポスターを製作をするにあたってソフトウェア担当者、ハード
ウェア担当者と密に情報共有をしていたため、プロジェクト全体に対する知識が他のメンバーに比
べ詳しいため、参加が決定した。
発表日当日には上記の 2 人の他にも現場に駆けつけられるプロジェクトメンバーは駆けつけ、発
表の手伝いをすることとなっている。
(※文責: 朝妻詩乃)
Group Report of 2012 SISP
- 100 -
Group Number 19
Development of the application that uses imaging technology
第5章
まとめ
前期の活動
5.1
はじめに、私たちは「画像技術を利用したアプリケーションの設計開発」というテーマのもとに
このプロジェクトに集まった。しかし、明確な目的やテーマが決まっていなかったので、このプロ
ジェクトで 1 年間かけて取り組むテーマについて話し合った。今回の方向性として「エンターテイ
メント性の高いインタラクティブなアプリケーションの設計開発」ということが提示されていたた
め、”画像技術を利用して何か面白いものができないだろうか”ということを考えた。
そこで、”画像技術とはどのようなものか”、”画像技術が利用されている事例にはどんなものが
あるのか”などを各自で調査し、それらを踏まえて「画像技術を利用することでできる面白いもの」
のアイディアを出し合い、吟味した。その結果、「『見る』行為に面白さを付加する装置の開発」と
いうテーマを設定した。
テーマ決定後は、実際にどのような成果物を作るのかを話し合い、成果物のイメージや仕様を決
定した。
その後は、実際に開発を始めた。プログラミングでは、簡単な基礎部分から開発していき少しず
つ技術の習得をおこなった。また、機能の細かい仕様などの検討を行いながら開発した。ハード
ウェアの開発では、細かな調整を何度も試行錯誤しながら開発した。
これらの開発の結果、前期の成果物として最終的な成果物の基本的な機能だけを実装したプロト
タイプを開発することができた。
(※文責: 内藤優貴)
5.1.1
前期の反省点
前期の活動の反省点としては以下のようなことが挙げられる。
・話し合いの際の発言者の偏り
前期は、自分たちがどのようなテーマをもとにどのようなものを作りたいかといったテー
マ決定についてや、成果物の仕様や機能に関することなど多くの時間話し合いを行った。し
かし、その話し合いの際の頻繁に発言する人とあまり発言しない人との発言量の差が大き
かった。そのため意見の反映の量に偏りができてしまったかもしれない。
・不十分だったスケジュール管理
各工程にかかる時間を楽観的に見積もってしまい、期限間近になってから急いで取り組む
ということが起きてしまった。メンバー皆で遅くまで活動したり休日に自主的に集まって活
動したりしなければ期日までに間に合わないような状況になってしまった。そのため期日を
遅れることはなかったものの、余裕を持って作業に取り組むができなかったりした。また、
担当教員にも迷惑をかけてしまった。
(※文責: 内藤優貴)
Group Report of 2012 SISP
- 101 -
Group Number 19
Development of the application that uses imaging technology
5.1.2
後期への課題
前期の活動を踏まえた上で後期の活動への課題としては、前期の反省点の改善、プロトタイプの
改良・最終成果物の完成が挙げられる。
(※文責: 内藤優貴)
前期の反省点の改善
節 5.1.1 で挙げた前期の反省点を踏まえ後期ではそのようなことがないように取り組む。
話し合いの際の発言者の偏りについては、発言の少ない人に対して進行係が積極的に意見を聞き
だすようにする。今まで発言の少なかったメンバーの意見を引き出すことで見落としていたことが
見つかったりするかもしれない。
スケジュール管理に関しては、各工程の要する時間をより慎重に見積もり、余裕を持ったスケ
ジュールを立てようにする。予定よりも作業に時間がかかったりトラブルがおきたりしても対応で
きるようなくらいの余裕を持たせるようにする。
(※文責: 内藤優貴)
プロトタイプの改良・最終成果物の完成
前期の成果物として開発したプロトタイプだが問題点がいくつかあるため、後期はそれらを改良
し最終的な成果物を完成させる。
・ハードウェア
現在のハードウェアはヘッドマウントディスプレイと 8 個の Web カメラを頭に装着す
る。ハードウェア自体が重たいため、これではユーザーの首への負担が大きくなってしま
う。そのためハードウェアの軽量化を検討しなければならない。また、装置から伸びるケー
ブルをノートパソコンと接続していなければならないため、ユーザーの動きが大きく制限さ
れてしまう。この問題を改善し、自由に動き回ることができるようにさせる。
また、Web カメラの数を増やす、もしくは全方位カメラを用いるなどして、水平 360 度だ
けでなく真上などを含めた、更なる視野の拡張も目標とする。
・プログラム
現段階ではカメラ切り替えの際に少し時間がかかってしまうが、もっと快適に使えるよう
にカメラ切り替えの速度を早くする。
他には、もっとたくさんのエフェクトを開発することも目標である。現段階では OpenCV
の基本的な処理を用いた簡単なものがいくつかあるだけなので、今後はアイディアを出し合
いより面白いものを作る。
(※文責: 内藤優貴)
Group Report of 2012 SISP
- 102 -
Group Number 19
Development of the application that uses imaging technology
後期の活動
5.2
5.2.1
後期の反省点
後期の活動の反省点としては以下のようなことが挙げられる。
・スケジュール通りにできなかった
前期でも反省点として挙げられたスケジュール管理であったが後期でも思うようにスケ
ジュール通りに成果物の作成が進まなかった。その原因としては成果物を作成する際に必要
となるものの決定と注文が少し遅かったのではないかと考えられる。そのためプログラミン
グの方ができてきても、ハードウェアのほうが完成していなかったりでなかなか成果物を一
つの形にすることに時間がかかった。ポスター作成についても成果物の完成に合わせてポス
ターの素材となる写真や画像が必要となるため必然的にポスター完成が遅れるということに
もつながったと考えられる。成果物を作成する際に必要となる材料はハードウェアには必要
不可欠なものでその材料が届かないとハードウェアを作る人がする仕事が減るなどの問題も
起きた。そのときにみんなプログラミングが同じようにできるとハードウェアの担当の人た
ちも仕事が減ることなく開発ができたかもしれない。
・プロジェクト内での面白さの定義が曖昧だった
プロジェクト内での面白さというものはみんな同じイメージで成果物を完成させたと考え
られるが、いざ発表のときにプロジェクト内での面白さで完結していて面白さの定義がしっ
かりしていないと初めて I++ を見る人からしたらどこが面白いのか?ということが伝わり
づらかったということがわかった。プロジェクト内での面白さというもののイメージは同じ
だったのでその定義付けをしっかりしたら発表のとき初めて I++ を見た人にも面白さとい
うものが伝わりより I++ が面白さに追求したものだということがわかるのではないかと考
える。その定義付けをする話し合いをしないといけなかったのかもしれない。
(※文責: 中村慎弥)
5.2.2
今後の展望
装置には現段階で頭の周囲に取り付けられた 26 台の Web カメラを切り替えることによって周
囲 360 度を見る、視界にエフェクトをかけて普段見ることの出来ない視界を見る、接続されたコン
トローラーによって視界を操作することが出来る。当初の目的はおおむね達成されており、残る問
題は Web カメラ装置の画像の切替速度の向上及び画質の向上、装置自体の軽量化、小型化、コー
ドレス化、直感的操作の実現が挙げられる。
Web カメラの画像速度の切替及び画質の向上にはより良い性能の Web カメラを使用すること
で可能になると考えられる。今回は予算の関係上、比較的安価な Web カメラを使用した。
装置の軽量化及び小型化、コードレス化についてだが、現在の装置では歩行は可能であるが走
る、跳ねるなどの激しい動きは不可能に近い。小型化、軽量化、コードレス化が実現し、激しい動
きをすることが可能となると、装置の使用場面は広がると考えられる。ただ装着して歩くだけでは
Group Report of 2012 SISP
- 103 -
Group Number 19
Development of the application that uses imaging technology
なく、鬼ごっこをするなど現存の遊びやスポーツと組み合わせることで新たな面白い体験が出来る
であろう。まず、頭に装着している Web カメラのついた被り物を再検討する必要がある。当初、
ヘルメットに Web カメラを取り付ける案があったのだが、Web カメラを取り付けるには頭との間
にある程度の隙間が必要となるためにヘルメットの上にボウルを被り、そのボウルに取り付けるか
たちになった。大きなボウルは見た目以上に重さがある。より軽いボウルに取り付けるか、はたま
た帽子のような布製のもの、あるいはその他の軽い材質のもので頭の周りにある程度の隙間を確保
することが出来るものに取り付けることが考えられる。帽子のように柔らかな素材の場合は使用中
に Web カメラが動く可能性があるので Web カメラを固定する方法を考えなくてはならない。
次に、背負っているハードウェア収納器についてだが、現在はおかもちにノートパソコン及び
USB ハブなど必要な機材を収納し、背負うことで移動を可能としている。しかしながら機器を収
納したおかもちは重く 10∼20 分も背負っているとユーザーに疲れが出てきてしまう。ノートパソ
コンの軽量化をしたいところだが、今回 26 台の Web カメラを同時に動かすためにそれが可能で
あろうスペックのノートパソコンにしたところ、今回の重量になってしまった。よってノートパソ
コンの重さを改善するには高いスペックでありながら小型、軽量のノートパソコンを探すか、Web
カメラを変更する必要がある。USB ハブやヘッドマウントディズプレイの電源などをおかもちの
内部上に取り付けているのだが、これもそれなりの重さがある。電源が重さを占めているため、改
善方法としては電源を小型化することで軽量化を図ることが出来そうである。将来的にそれぞれの
機器の小型化が進むことで別の装着方法が可能となる可能性もある。
コードレス化については、ヘッドマウントディスプレイの電源がコンセントによるものなので、
充電式の電源を搭載することで実現可能である。
直感的操作の実現は kinect のような操作の実装により、両手の自由が利き、日常生活で装置を使
用したら面白い体験が出来るのではないか、と考えたが、kinect を使用する場合、動ける範囲に制
限が出来てしまうため、今回は実装を見送った。Kinect 以外での実装方法を模索したい。
現在挙がっている問題を解決する他に別の機能を追加することによっても面白さを付加すること
が出来る。例えば装置をネットワーク接続することで今まで以上に装置に面白さを付加することが
出来ると考えられる。他人と視界を共有することで自分の知らない景色に出会うことが出来たり、
自分と身長が異なる人と視界を入れ替えることで普段の自分とは異なる目線での視界を味わうこと
がネットワーク接続によって可能となる。他人の視界を操作することによって視界を操作された側
は予測不可能な視界を見ることが出来る。
Kinect のようなモーションキャプチャーを利用することで目の前の人がパンチの仕草をしたら
拳から炎が出てくるような効果をかけることが可能なる。ネットワーク接続と組み合わせて友人と
現実世界で普段、画面の中でする格闘ゲームとは異なった面白い体験をすることが出来るであろ
う。
このようにこの装置「I++」にはまだまだ色んな可能性が秘められている。面白さの探求をこれ
からも続けていきたい。
(※文責: 中村慎弥)
Group Report of 2012 SISP
- 104 -
Group Number 19
Development of the application that uses imaging technology
参考文献
[1] Garya Bradski, Adrian Kaehler, 松田晃一. 詳解 OpenCV-コンピュータビジョンライブラリ
を使った画像処理・認識, オーム社, 2009.
[2] James Reinders, インテル スレッディング・ビルディング・ブロック—マルチコア時代の
C++ 並列プログラミング, オライリー・ジャパン, 2008.
[3] 奈良先端科学技術大学院大学OpenCVプログラミングブック制作チーム , OpenCV プログラ
ミングブック, 毎日コミュニケーションズ, 2009.
[4] Junichi IDO, OpenCV.jp, http://opencv.jp/, (参照 2012-12-26).
[5] Microsoft Corporation, msdn, http://msdn.microsoft.com/ja-jp/, (参照 2012-12-26).
Group Report of 2012 SISP
- 105 -
Group Number 19