20
課題研究発表会 要旨集 1 Web カメラを使用したタッチスクリーンの作成 2 LED ドットマトリクスを用いた画像表示の研究 3 スクリプト言語の開発 4 3D 画像処理を利用したロボットの自動制御 5 音声特徴比較システムの開発 6 H8 マイコン上で動作する OS の製作 7 ネットワークを介したリアルタイム画像合成 8 重心動揺計の研究 9 FPGA による IC 作成 平成 22 年 10 月 7 日 東京工業大学附属科学技術高等学校 情報システム分野

課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

課題研究発表会 要旨集

1 Web カメラを使用したタッチスクリーンの作成

2 LED ドットマトリクスを用いた画像表示の研究

3 スクリプト言語の開発

4 3D 画像処理を利用したロボットの自動制御

5 音声特徴比較システムの開発

6 H8 マイコン上で動作する OS の製作

7 ネットワークを介したリアルタイム画像合成

8 重心動揺計の研究

9 FPGA による IC 作成

平成 22 年 10 月 7 日

東京工業大学附属科学技術高等学校 情報システム分野

Page 2: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成
Page 3: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 Web カメラを使用したタッチスクリーンの作成

発表者氏名 浅野拓也 場生松健太 羽生凌太 松田暁

指導教員 西澤吉郎

背景・目的

ここ数年,タッチパネルを使用した製品が増えてきている。我々はタッチパネルを複数

人で操作できないかと考え,課題研究の題材にする事に決めた。また,タッチパネルのみ

ならず,人間にとって使いやすいユーザインタフェース,使っていて楽しい,便利だと感

じさせるユーザエクスペリエンスを提供したいと思ったのでその点についても研究するこ

とにした。

理論

FTIR(Frustrated Total InternalReflection)パネルを使ってマルチタッチスクリーンを

作成する。FTIR パネルとは,ア

クリル板の側面から赤外線 LED

を照射すると,アクリル板内部で

赤外線が全反射を起こし外部に漏

れないが,指でアクリル板を触る

ことにより屈折率を変化させ触れ

たところのみ赤外線が漏れるとい

うパネルである。図 1,2 参照。

FTIR パネルから赤外線が漏れている様子を赤外線カメラで読み取り,光っている点か

ら指の触れている座標を取得する。これをマルチタッチライブラリと呼ぶことにした。

UI(ユーザインタフェース )は使用する環境により

最適化されるべきだと考えた。

そのため,独自の UI を実現するためのをフレー

ムワークを開発することにした。これを UI フレー

ムワークと呼ぶことにした。

使っていて楽しい,便利だと感じさせるための工

夫として,自作のハードウェアで現実世界と仮想空

間をより密接なものにする。このようなアプローチ

図 1.FTIR の仕組み

図 2.FTIR している手のひら

Page 4: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

のことを,FR(Fused Reality)と呼ぶことにした。

AR(Augmented Reality:拡張現実 )技術を使

いマーカーを読み取りタッチスクリーンと UI

を組合せる。

方法と結果

複数の人間が同時に操作するので,筐体のタッ

チ面は大きなデザインにした。図 3 参照。

FTIR パネルに使用する赤外線 LED アレイが

一列だと光量が足りず上手くタッチを認識することができなかったので,二列にすること

により光量を増やしタッチの認識精度を上げた。

マルチタッチタッチを認識する為に,OpenCV を使用した。

UI フレームワークは OpenGL を使用して開発した。写真,ボタン,スイッチ,警告文表

示など様々な UI を提供することができる。

FR については,Arduino + 3 軸加速度センサーを使用し,加速度や振動で操作できるよ

うにした。

AR を使用したマーカー検出だが,技術的な問題で完成させることができなかった。

考察

マルチタッチの認識についてだが,タッチの検出の精度が思いのほか悪かった。これは,

FTIR するために赤外線を使用しているため,暗い環境でないとアクリル板外部からの赤

外線がカメラに写り込んでしまいノイズとなってしまったからだと考えられる。

タッチの座標が安定しなかった。これは,アクリル板から漏れ出す光の量が少ないため

だと考えられる。取得する座標の平均値を計算することにより解決できると考えられる。

UI フレームワークは当初の目標を達成することができた。

マルチタッチスクリーンを作成するという点では,多少なりとも不具合はあるが成功し

たと言える。

参考文献

アラン・ケイ,Alan Curtis Kay 著,鶴岡雄二 翻訳,アスキー 出版,1992

iPhone SDK アプリケーション開発ガイド Jonathan Zdziarski 著,近藤誠 監訳,武舎広

幸,武舎るみ 訳,2009

詳解 OpenCV Gray Bradski,Adrain Kaehler 著,松田晃一 訳 2009

図 3.筺体の写真

Page 5: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 LED ドットマトリックスを用いた画像表示の研究

発表者氏名 間崎厚稀 水越俊希 南貴由樹

指導教員 都留裕貴 増田泰治

背景・目的

LED をより自由に表現させて光らせるための方法を考察することを目的とした電子回

路と ,そこにデータを送るためのソフトを作成する。

理論

使用したLEDドットマトリクスの回路図を図1に示す。

図1 回路図

パソコンからUSBケーブルを用いて以下の信号を送る。sin1(縦データ ),sin2(LED1 横

データ ),sin3(LED2 横データ ),CLOCK(0→1 でデータの読み込みを行う),LATCH(1 でデ

ータを保持 ,0 でデータを出力 ),STROBE(0 で点灯 ,1 で消灯 ,使用しないでも動く )。

それぞれの入力信号は16回に分けて送り込まれ ,sin1 は ,8ビットシフトレジスタによ

って LED1,LED2 のどこの1列を点灯させるかの信号として記憶される。 sin2,sin3 は1

6ビット定電流 LED ドライバによって指定された列のどこを点灯させるかの信号として

記憶される。

LATCH 信号が0になったとき ,その記憶されたデータに沿って縦データが8ch高電圧

ソースドライバから ,横データが16ビット定電流 LED ドライバからそれぞれ出力信号と

Page 6: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

してLEDドットマトリクスへ送り込まれる。以後 ,この動作を繰り返すことで32×16

の LED ドットマトリクスを点灯させることができる。

また ,VisualC++を用いて作製した画像処理用のソフトでは ,フォルダ内の画像データをプ

ログラムで読み込み ,画像データの読み込み ,RGB 値・輝度・明度・色相のグラフ表示 ,色の

反転・モノクロ化 ,送信するデータのイメージ画像の表示 ,閾値処理の各処理を行わせ ,その

結果を表示させている。

方法と結果

作成されたプログラム (画像を解析したプログラム )をハードに転送し ,ドットマトリク

スを点灯させた。図2に実際にソフトを用いた元の画像 ,図3に送信データイメージ処理の

画像 ,図4に RGB 濃度ヒストグラムを示す。解析画像には主に Windows のサンプルピク

チャを用いた。

図2 元の画像 図3 送信データのイメージ画像 図4 RGB 濃度ヒストグラム

その結果 ,速度は遅いが任意の点を光らせることには成功した。図5 ,図6は実物のハー

ドである。

考察 図5 ハード 図6 中身

現在 ,速度が遅い理由は USB ポートからのデータ送信方法では , 1 出力あたり,2 秒

/(16*(2*16+1)) = 3.8[ms]と ,動作が遅いためであると考えている。そのため ,動作がより早

いパラレルポート(100kB/s)を用いてデータを送信することを考えている。

参考文献

井上誠喜 八木伸行 林正樹 中須英輔 三谷公二 奥井誠人 共著:

C 言語で学ぶ実践画像処理 オーム社

Page 7: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 スクリプト言語の開発

発表者氏名 河村まりや 芝岡謙太朗 渋谷健太 菱沼和弘 別所健太

指導教員 近藤千香

背景・目的

コンピュータが普及する今日においては,その利用者やソフトウエアも伴って多様化し

ている。そこで,我々は手軽に記述し,また各種ソフトウエアに組み込む事が可能な簡易

プログラミング言語,即ちスクリプト言語の重要性に着目した。

上記の背景に基づき,我々は,①スクリプト言語を製作するために必要な機能,理論,

手法を研究し開発する,②理想的な言語文法を研究する,③以上の研究成果に基づき,実

際に独自のスクリプト言語「¢言語」を製作する,ことを課題研究として取り組んだ。

理論

①コンピュータは人間が記述したソースコードを直接理

解することは出来ない為,実行のためには解析作業が必要と

なる。言語処理系の場合は,その性質からデータの入力(フ

ァイルストリーム),文字列処理,解析情報の整理(データ構

造)の手法が極めて重要となる。 よって我々は,これらを言

語処理系開発の基礎と判断し,独自のライブラリであるkrcorlibを開発した。

②,③¢言語は,Java言語に代表されるような中間コー

ド型の実行形式を取っている。これは本来の計算処理とは関係

のないプログラムを解釈する作業を予め行うことでより効率よ

く処理を行うことが可能であると考えられるからである。この

仕組みを実現する為に,我々は中間コード生成器であるIMD

と実行環境であるALiCEを開発した図1。IMDに関しては,

入力文字列を解釈可能な最小単位,即ち字句(単語)に分解す

る字句解析器と,字句を組み立て,その意味を解釈可能な状態にする構文解析器,そして

実際に意味を解釈し,中間コードを生成するコード生成器から成り立つ図2。

方法と結果

C言語標準関数ライブラリ(以下,C標準)とkrcorlib(以下,成果)との機

能比較を表1に示す。なお,成果はC++上に実装されていて,表には該当機能が実装さ

図1 : 動作の流れ

図2:IMD

Page 8: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

れているクラス名を示した。順に比較を

していくと,Stream逆戻しは,確

かにC標準にも実装されているのだが,

1文字しか戻せないなど制約がある。し

かし,成果では動的メモリ確保により,

メモリが許す限りで逆戻しが可能である。

字句の抽出と等価数値変換は,成果では

同一クラスから呼び出せ,C標準よりも

より詳細な字句抽出が可能である。具体

的にはC標準では1+1は分割されない

が,成果では1/+/1と分割されると言うようなことである。スタック,可変長文字列,

ツリー構造表現,連想配列に関してはC言語ではクラスを実装できない為に比較不能であ

るが,例えば成果の連想配列クラスである dtBuilder はそのまま中間コードの定数テーブ

ルを出力可能であるといった,言語処理系開発に特化した仕様となっている。

考察

現状の理論及び実装によると,①連続する同演算子の構文解析の動作,②字句解析器の

柔軟性,③IMD,ALiCE及び構成ソフトウエアの接続性,利便性に問題がある。①

は正しく動作するアルゴリズムを開発することにより,②,③はソフトウエアのユーザー

インターフェースを初めとする機能の再構成を実施することにより問題解決をする予定で

ある。

参考文献

1),林晴比古:明快入門コンパイラ・インタプリタ開発,ソフトバンククリエイティ

ブ(2010年)

2),前橋和弥:スクリプト言語をゼロから作ろう,日経BP社,(『日経ソフトウエア 2

010年8月号』より)

3),徳田雄洋:コンパイラの基礎,サイエンス社,(2006年)

4),川俣晶:C言語で作るCPUエミュレータ,日経BP社,(『日経ソフトウエア 2

009年2月号』より)

5),青木峰郎:ふつうのLinuxプログラミング,ソフトバンククリエイティブ,(2

005年)

表1:機能比較

項目 C 標準 krcorlib

Stream 逆戻し ungetc(3) streamReader

字句の抽出 strtok(3) tokenizer

等価数値変換 atoi(3) tokenizer

スタック × stack

可変長文字列 × stringBuilder

ツリー構造表現 × syntaxTree

連想配列 × dtBuilder

Page 9: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 3D 画像処理を利用したロボットの自動制御

発表者氏名 安藤駿 大澤正彦 河野杏那 清水翔吾 細井理央 山下雄大

指導教員 増田泰治

背景・目的

機械システム分野の専門と思われがちなロボットを,あえて情報システム分野で作成す

ることで,情報システム分野だからこそできるロボットの製作を目指す。ロボットに 3D 画

像処理を組み合わせ,ロボットが見ている映像を立体的に人間が見ることができたら,より

正確な遠隔操作ができ,奥行きも考慮した自動制御が可能になると考えた。

そこで本研究では,「3D 画像処理を実装した新たな遠隔操作型ロボット」と「自動制御」

の 2 つをテーマとした。

理論

3D 画像処理では, ステレオグラム,アナグリフ,フレームシーケンシャル方式という 3 つ

の 3D の手法を検討した。これらの手法に共通することは,左右の目に異なる画像を見せる

ことである。人間は,右目と左目で別々に像を捉

えているため,それぞれの目に映る像には微妙

にズレが生じている。このズレのことを視差と

呼ぶが,この視差によって像を立体的に見るこ

とができる。

自動制御では, 2 台のカメラを用いて取得し

た画像を解析し,目標物の特定の色を識別,そし

て目標物の中心座標や状態を取得する。さらに

精度を上げるため,テンプレートマッチング方式を導入する。これは目標物のテンプレート

をあらかじめ記憶させ,それとの類似度の高いものを目標物として検知するものである。

PC からのシリアル信号を Arduino が読み取り,無線送受信機を制御し,ロボット側に搭載

されたもう 1 つの Arduino を使うことで,ロボットを制御する。(図 1)

方法と結果

3D 画像処理では,アナグリフという手法を用いたプログラムの作成に取り組んだ。初め

は Java で開発を進めていたが,カメラ 2 台を同時起動するのが困難だったため,C++に変更

し開発を進めた。その結果,画像を加工・合成するプログラムとカメラ 2 台を同時起動させ

図 1 全体の概要

Page 10: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

るプログラムが完成し,リアルタイムで 3D 画像処理を施した映像を見ることが可能となっ

た。また,フレームシーケンシャル方式の 3D システム

の構築にも取り組んだが、未完成である。

自動制御では,画像解析のプログラムを作成した。自

動制御の正確性を向上させるため「高速だが不安定で

あるもの」から「低速であるが安定であるもの」に変

更すべきであると考え,テンプレートマッチング方式

という方法を採用した。

製作した GUI では,ロボットの手動操作や画像の保存などができるようになった。さらに,

アナグリフとフレームシーケンシャル方式の画像の表示を切り替える機能を加えようと考

えていたが,後者が完成しなかったためそれを行うことができなかった(図 2)。また,無線

式 Webカメラを用いようとしていたが,通信速度が遅く,リアルタイムでの 3D表示が困難だ

ったため,有線カメラのままで製作を進めた。

考察

3D 画像処理では,アナグリフを用いたプログラムが完成した。フレームシーケンシャル

方式で用いた LCD シャッターは,当初 Arduino で制御しようとしたが,高速なクロック周波

数が必要となったため, Arduino を SH-2A マイコンへと移行した。これは LCD シャッター

の制御において,電子デバイスの性能の違いが著しく表れる点だと思う。

自動制御では,画像解析のプログラムを作成したが,そのプログラムを用いたロボットの

動作確認を行っていない。速度と正確性のどちらを優先するかは,あらゆる解析手法を検証

し,適したアルゴリズムを自分たちなりに見つけることができた。

実機本体では,問題点として送信機から信号を送り,それが動作に反映されるまで時間が

かかるという点があげられた。これは,スピードアップコンデンサを用いることで解決でき

ると考えた。本研究では,実機を作る前に試作機で動作をシミュレートしたことによって,

段階的に研究を進めることができ,様々な問題点や方向性を見つけることができた。

参考文献

1),Massimo Banzi:Arduino をはじめよう,株式会社オーム社,2010 年 2 月 16 日

2),CQ 出版社:Interface 2010 年 6 月号,CQ 出版社,2010 年 6 月 1 日

3),奈良先端科学技術大学院大学 OpenCV プログラミングブック制作チーム

:OpenCV プログラミングブック,毎日コミュニケーションズ,2009 年 7 月 21 日

図 2 GUI 画面

Page 11: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 音声特徴比較システムの開発

発表者氏名 浅子卓亨 桑原悠太 木立寛也 西田侑央 本多隼也

指導教員 仲道嘉夫

背景・目的

フーリエ変換を,大好きな音楽に適用して何か面白い研究が出来ないか考えた。その結

果,歌の上手さを科学的に理解することを目的とし,音声特徴比較システムを開発し,サ

ンプルデータの収集及び統計を行った。

理論

・ボーカルキャンセリング (中央減衰処理 )

多くの音楽では,ボーカル音声は左右の出力で同じ音

が流れる。一方,楽器音は左右の出力で違う音が流れる。

このことを利用して,ボーカル音声を減衰処理する (右図

1 参照 )。

・FFT(Fast Fourier Transform:高速フーリエ変換 ) 図 1.ボーカルキャンセリング

音を解析する方法としてフーリエ (※図はイメージである )

変換がある。フーリエ変換は音程,

すなわち周波数を解析する方法であ

り,「全ての波は sin 波と cos 波で表

すことができる」という理論に基づ

いている (図 2 参照 )。周期性を利用

して重複計算を省いて,フーリエ変

換を高速化したのが FFT である。 図 2.FFT(高速フーリエ変換 )

・標準偏差

標準偏差は散らばり具合を表す数であり,偏差値の計算に用いられる。偏差値は集団の

平均値からどれだけ離れているかを示した値である。尚,実装したプログラムでは 100 点

が出る様に得点調整し,平均値を本来の 50 ではなく 70 として利用している。

・比較アルゴリズム

音階判定,音階変化判定,声量判定,抑揚判定の 4 つの手法を用いた。音階判定は一番

強い周波数成分の音階を取得し,音階で比較する手法である。音階変化判定は音階の差分

Page 12: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

の正負で比較する手法である。声量判定はマイク入力時のパワーの平均値で比較する手法

である。抑揚判定はマイク入力時のパワーの変化の度合いで比較する手法である。

方法と結果

作成したシステムの動作画面を図 3 に示す。システム

の大まかな流れは次の通りである。

1. ボーカルキャンセリングを行い,原曲から伴奏を抽

出する。

2. 伴奏を再生し,同時にマイク入力を録音する。

3. FFT で各音のスペクトルを算出する。 図 3.システム GUI

4. 原曲のボーカル音声スペクトルと録音音声スペクトルとを比較し,標準偏差,偏差値

を用いて採点する。

当初,原曲からボーカル音声を抽出しようと試みた。しかし,原曲から抽出した伴奏を

減算したところ,ボーカル音声を上手く抽出できなかった。その理由は伴奏の半分が原曲

の逆位相になっていたためである。そこで新たな比較方法として,ボーカル音声スペクト

ルを抽出することにした。原曲と伴奏の周波数スペクトルの差を求めることにより,ボー

カル音声スペクトルの抽出に成功した。ボーカル音声以外の中央音源が含まれる曲等,ボ

ーカル音声スペクトルの抽出が上手くいかない曲もある。また,音階判定は周波数の差分

で行っていたが,12 音階の判定を行うことによりオクターブ判定を可能にした。標準偏差,

偏差値を利用して,採点を実装した。実際にこのプログラムが出した順位と班員が付けた

順位を比較すると,上位及び下位層のデータの種類が概ね一致しており,ほぼ成功した。

考察

ボーカル音声を綺麗に消せる曲は得点が高くなる傾向がみられた。これは,ボーカルキ

ャンセリングで中央音源に楽器音が含まれている等の影響が考えられる。従って,楽器音

をなるべく排除するためボーカルキャンセリングアルゴリズムを改善するか,楽器音が含

まれていても正しい結果が出る様に比較アルゴリズムを改善する必要があると考えている。

参考文献

1.青木直史 :C 言語ではじめる音のプログラミング,オーム社, (2008 年 )

2.北山洋幸 :WAV プログラミング C 言語で学ぶ音響効果,カットシステム, (2008 年 )

3.田辺義和 :Windows サウンドプログラミング,翔泳社, (2001 年 )

4.フーリエ変換 : http://luckypool.hp.infoseek.co.jp/Fourie/

Page 13: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 H8 マイコン上で動作する OS の製作

発表者氏名 坂本恭太郎 川上大樹 志田匠 廣田拓

指導教員 仲道嘉夫

背景・目的

OS(Operating System)の仕組みを学ぶことにより,過去の情報の授業で取り扱った様々

な知識を活用し,それらの理解を更に深める。しかし一般に知られている OS(汎用 OS)は規

模が大きく,機能も多いため非常に難解だった。そこで機能を限定し,入出力ハードウェ

アがシンプルなマイコンボードをターゲットとした組み込み OS を製作することにした。

理論

何をもって OS とするかは諸説あるが,今回は基本的な機能として「シェル」,「ファイ

ルシステム」,「ローダ」,「マルチタスク管理」を挙げ,この機能を持つプログラムを OS

と定義する。これらによってハードウェアの抽象化を行い,ハードウェアに対して統一的

なアクセス方法を提供する。

「シェル」とは OS の各機能をユーザが操作するためのソフトウェア的な対話型インタ

ーフェースであり,Windows におけるコマンドプロンプト等がこれに該当する。

「ファイルシステム」とは二次記憶装置にデータをファイルやディレクトリとして保

存・管理する機能である。今回は SD カードをターゲットとして設計を行った。

「ローダ」とは外部からプログラムデータを読み込み,それを実行するプログラムのこ

とである。

「マルチタスク管理」とは複数のプログラムを同時実行・管理するための機能である。

処理時間を短く区切り CPU に各プログラムを順番に実行させることでユーザ側にあたかも

複数のプログラムが同時に実行されているかのように感じさせるものである。

方法と結果

ハードウェアはマルツ電波製の学習用 H8SX/1655 マイコンボードを使用した。それには

タッチパネル,USB シリアルインターフェイス,SD カードスロット等の入出力デバイスが

搭載されている。

使用言語は H8SX のアセンブリ言語及び C を用い,ソースファイルを Cygwin 上で GNU の

クロスコンパイラを用いてビルドを行った。

Page 14: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

図1:シェルの動作例

「シェル」については文字表示ができ,ファ

イルシステムを利用することでファイル名の一

覧等,表示することができた(図1参照)。

「ファイルシステム」についてはディレクトリ

の作成と移動,現在のディレクトリに存在する

ファイル名の取得ができた。このファイルシス

テムは固定長のメモリを「ブロック」として扱っ

ている。

「ローダ」については PC から USB ケーブルを介してデータを受信し,メモリ上に展開

することまで出来た。

「マルチタスク管理」についてはあらかじめタスク数を 16 個に固定したバージョンが

完成した。クロック割り込みによるタスク切り替えを行っている。

考察

ELF 実行形式ファイルはエントリポイントがデータの先頭でないため,実行するために

はメモリ上にロードするだけでなく ELF ファイルを解析してエントリポイントを発見する

必要がある。よって現在は実行ができないので,それを完成させることが第一優先課題と

なる。「マルチタスク管理」については,新たに実行するタスクを追加・削除する機能が実

装できていないので,完成させる必要がある。それらが完成すれば,各機能は完全ではない

ものの単独で動作する段階までできている。したがって,これらを統合することでプログ

ラムのロード,シェルからファイルシステムへのアクセス,マルチタスク実行の一連の動作

ができる簡単な OS が完成する。将来的に SD カードに大容量のものを用いるときは,ファ

イルシステムのインデックスの格納方法を現在の線形方法からハッシュテーブルを使用し

た方法に変える必要がある。これはフラグメンテーションを防ぐためである。

参考文献

1):「 H8SX/1655 グ ル ー プハードウェアマニュアル」ルネサステクノロジ発行

(2009/9/10)

2 ):「 H8SX/1655 グ ル ー プソフトウェアマニュアル」ルネサステクノロジ発行

(2009/9/10)

3)山崎尊永 著:「今すぐ使える H8 マイコン基盤」CQ 出版発行(2010/4/1)

Page 15: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

図1 イメージ図

課題名 ネットワークを介したリアルタイム画像合成

発表者氏名 小峰駿汰 野中一輝 日高敬介 平田雄輝 平山修矢 山﨑弘貴

指導教員 石川幸治

背景・目的

私たちは,日頃 Skype 等のコミュニケーションツールを利用していて,まだ便利な機能

を追加できると不満に思っていたので,より便利な技

術を付加して人と通信できる機能を作ろうと思いこの

テーマを選んだ。この研究は,「遠くにいる人同士が,

同じ背景画像に Web カメラから取り込んだ双方の画像

をリアルタイムで合成し,通信すること」を目指す。

このソフトを使えば,遠くに離れている人とも擬似

的に手を繋ぐことや合成された後の背景を自由に設定

することで,通信者同士がスタイリッシュな空間でコ

ミュニケーションを取ることができる。この機能のイ

メージ図を図1に示す。

理論

各自のカメラから取り込んだ画像を,画像処

理を行うことで人間を抽出する。ネットワーク

を介して画像処理後の画像を合成し送受信する。

方法と結果

制作段階では,画像処理とネットワークを二

つの班でそれぞれ制作し,最終的に二つを統合した。画像

処理は人物を抽出すること,ネットワークは画像を送受信

することを目標とした。

●画像処理について

人物を抽出するための方法として背景差分法というも

のを使用している。背景差分とは初めに RGB(色の成分)

の平均をとって背景をグレースケールに変換し,現在の

図2 背景差分の過程

図3 仮想空間へのお絵かき

Page 16: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

画像(背景を取り除きたい画像)とグレースケールとの差の絶対値を二値化処理するもの

である。その過程を示すと図2のようになる。①のように背景を記憶しておき,②のよう

な時は,③のように背景が差分される。また,特定の色を認識することで,図3のように,

仮想空間に絵を描くこともできる。

●ネットワークについて

通信方法は TCP/IP 方式(ソケット通信)とした。これは,ソケットと呼ばれるデータの通

り道を通信者間でつなげることで,通信する方法である。この方式を使い,画像の送受信

を高速で繰り返すことで,あたかも動画を通信しているようにする。

さらに,2者間の通信をスムーズに開始できるようにするために,現在誰が参加している

かがわかるロビーを設置した。ロビーは(図4)のように多人数でチャットをすることがで

き,気に入った相手とそのままメインの

画像合成チャットにつなぐことができる

ものである。これはメインの画像合成チ

ャットでも使われているソケット通信を

多重に並行して行うことで実現した。

また,GUI もすべて自分たちで制作し

た。これにより,ありがちな簡素な GUI

より見栄えがよく,使いたくなるような

デザインにすることができた。

開発言語はネットワーク側の開発の容易さを考慮し,JAVA を採用した。

考察

自分たちが想定した通りのソフトができあがった。動作もスムーズであり,ラグもほと

んどない。「チャット」や「音声会話」はもちろんのこと,より便利な機能として,「動画

通信」をつけることができた。目標であった遠くの人と握手しているように見せることも

可能である。以上より,目標に沿ったコミュニケーションツールが完成したと考えた。

参考文献

1),小高 知宏 著:基礎からわかる TCP/IP Java ネットワークプログラミング第 2 版,オ

ーム社,2002 年 9 月

2),プロブラミング USB カメラを JAVA で制御 - 男のソーイング,

http://totomo.ddo.jp/095.htm

図4 ロビー

Page 17: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 重心動揺計の研究

発表者氏名 安齋浩樹 齋藤正朋 中田倭

指導教員 石川幸治

背景・目的

重心動揺計とは¹⁾,直立姿勢時における足底圧の垂直作用力を変換器で検出し,足圧中

心の動揺を電気信号変化として出力する足圧検出装置である。めまい・平衡障害を体の重

心の動きとして捉え,揺れの速さ・方向性・集中度合をコンピュータ解析することで,症

状の客観評価をおこなうとともに,病巣診断にも役立つ。

しかし,市販の重心動揺計は非常に高価である²⁾という欠点があるので,この研究では

大幅なコスト削減を目指しバランス Wii ボード³⁾を用いて重心動揺計を制作する。実際に

接骨院で使うことを考えているため,利用者の要望を取り入れながらパソコン上でバラン

ス Wii ボードを安価な重心動揺計として使える

ようにする研究を行う。バランス Wii ボードと

パソコンは Bluetooth を使って接続する。そし

てパソコンに入力された電圧値から重心の座標

位置を算出し表示するソフトを開発することが,

主な研究内容である。システム概略図を図1に

示す。

理論

重心の軌跡を表示するために,重心の位置を座標として求める。バランス Wii ボードは

四隅に1つずつセンサ(ストレンゲージ)が付いていて,それぞれの荷重に応じた電圧値

を計測している。それぞれが取得した電圧値を V1~V4 としセンサ間の縦の距離を d,横

の距離を wとすると座標を求める式は次のようになる。

PC バランス Wii ボード

図1 システム概略図

Bluetooth

重心動揺計ソフ

Page 18: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

方法と結果

プ ロ グ ラ ミ ン グ に 使 用 し た 言 語 は

VisualC#である。プログラミングによって

取得した値を右の図3のように出力させた。

上のグラフは x-y グラフで,重心移動の軌

跡を示したものである。下のグラフは

x-t,y-t グラフで (t は時間 [s]) ,横軸に時間

をとり,x,y それぞれの動きを縦軸として

いる。

考察

利用者の要望した機能は,回転運動負荷

時の真円度を表示すること,圧力分布を 3D

で表示すること,最大 5 分間で自動的に停

止するようにすることなどである。5 分間で停止させることは,1 分間に 100 個のデータ

が通信されることを利用して,簡単に実現した。

圧力分布を 3D で表示することについては,まずバランス Wii ボードでは圧力分布はと

れないので,データの数で 3D 表示することにした。しかし,3D 表示するために必要なデ

ータ数が足りないことが判明したため,この機能は実装できなかった。

真円度については,今回は 3 種類の円を用意した。3 つの円はそれぞれ,原点を中心と

し原点からの距離の平均を半径とした円,x,y 座標それぞれの平均値を中心としその点か

らの距離の平均を半径とした円,x,y 座標それぞれの最大値と最小値との中点を中心とし

その点からの距離の平均を半径とした円である。3 種類の円を用意したのは,利用者の要

望が曖昧であったからで,今後具体的な話し合いをし機能を充実させていく予定である。

参考文献

1)「重心動揺計」 http://www.geocities.jp/biomentaljp/index.htm

2)「ヒューテック」 http://www.hu-tech.co.jp/contents/main.htm

3)「Wii Fit」 http://www.nintendo.co.jp/wii/rfnj/balance/index.html

Page 19: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

課題名 FPGA による IC 作成

発表者氏名 川端雅晶 鈴木涼太 永久保絢子 西松大輝 保坂謙史郎

指導教員 西澤吉郎

背景・目的

近年,FPGA(Field Programmable Gate Array)と呼ばれる自由に論理回路を構成できる

半導体素子が普及し,安価かつ高性能・大容量な品種を入手できるようになった。

大規模な論理回路の代表格である CPU(Central Processing Unit)とその周辺回路を集

積した SoPC(System-on-Programmable-Chip)の設計と実装を通し, HDL(Hardware

Description Language:ハードウェア記述言語 )による回路設計技術の習得と計算機システ

ムの基礎部分への理解を深める。

理論

FPGA 内には,LUT(Look Up Table)と FF(Flip-Flop)が内蔵されている。

LUT は入力の組み合わせに対応する出力の表を書き込むことが可能な素子であり,適切

な対応表を作成し,書き込むことにより任意の組み合わせ回路を実現できる。

FF は入力の状態を記憶できる素子であり,これを用いると前回の状態に依存した結果

を出力する順序回路を実現できる。論理回路は順序回路と組み合わせ回路から成るので理

論的には全ての論理回路を実現できることになる。

方法と結果

表 1 に FPGA に実装した論理回路の仕様を示す。

表 1 実装した論理回路の仕様 CPU 部

最高動作周波数 60[MHz](Spartan-3E XC3S250E の場合 ) 命令セット 16[bit]固定長の RISC 指向独自命令セット メモリ 8192×16[bit] (16[KiB]) (FPGA 内蔵ブロック RAM を使用 ) バス幅 データバス 16[bit ],アドレスバス 16[bit] 汎用レジスタ数 16[個 ](うち 3[個 ]はアドレス指定用レジスタとの兼用 ) 使用言語 Veri log HDL 使用素子 Spar tan-3 XC3S200(Dig ilent 社製評価ボードに搭載 )

Spar tan-3E XC3S250E(MieruPC 社製 FPGACard に搭載 ) 周辺回路部

搭載回路 DC モータ制御用 PWM 信号発生回路,サーボモータ制御用 PWM 信号発生回路, DUALSHOCK 2 コントローラインターフェース, 8[bit]ΔΣ 方式 DAC,汎用出力, タイマモジュール

(詳細は WEB サイト (http://tyel.dip.jp/cpu/)に記載 )

Page 20: 課題研究発表会 要旨集 - 東京工業大学附属 ...ics/Kaken/synopsis/2010.pdf · 課題研究発表会 要旨集 1 Webカメラを使用したタッチスクリーンの作成

P

P /

最初に CPU の命令セットの設計から行った。複雑な命令セットは命令デコード回路の

増大につながると考え,RISC(Reduced Instruction Set Computer)指向の 16[bit]固定長

命令セットとした。当初は 4[クロック /命令 ]で処理するよう実装していたが,回路を見直

した結果 3[クロック /命令 ]での実装となった。CPU 部の開発が終了した後,各種周辺機能

の開発と演算性能の測定を行った。ユークリッドの互除法に基づいて最大公約数を求める

プログラムを開発し,1 秒間の実行回数を測

定した。比較対象として Atmel 社の AVR

ATTiny2313 と Microchip Technology 社の

PIC 16F88 を用意し,同じ演算処理を実行し

た。その結果を表 2 に示す。

また,SoPC を用いた機器として,制御に PWM(Pulse Width Modulation:パルス幅変調 )

信号が必要なサーボモータを複数搭載したロボットを製作した。主な仕様を表 3,写真を

図 1 に示す。

考察

今回,開発した CPU が PIC の約 4 倍の処理能力を示したのは,命令セットやアーキテ

クチャに起因する,同一の処理を行う際の所要命令数やクロック数の差が表れた結果であ

ると考える。AVR に性能が及ばなかったのは,AVR がパイプラインによりほぼ全ての命令

を 1 クロックないし 2 クロックで実行するためであると考える。

参考文献

David A.Patterson,John L.Hennessy 著,成田光彰訳 :コンピュータの構成と設計 ハー

ドウェアとソフトウェアのインターフェース 第 3 版 (上)・ (下 ),日経 BP 社

「プレイステーション・PAD/メモリ・インターフェースの解析」

(http://www.kaele.com/~kashima/games/ps_jpn.txt)

表 3 ロボットの仕様 寸法 (W×D×H) 約 220×600×80[mm](リセット時 ) 重さ 約 1.2[kg] サーボモータの個数 9[個 ] (MiniStudio RB995) モータの個数 2[個 ] (マブチモータ RE-260) 手足の数 足 :2 手 :1 自由度 足 :3 手 :1 腕 :2 制御方法 コントローラ (SONY DUALSHOCK 2) 電源 外部電源より 5[V]DC を供給

表 2 1 秒間あたりの実行回数の測定結果 CPU 1 秒間あたりの実行回数 [回 /秒 ] PIC16F88 17720

自作 CPU 71600

AVR ATTiny2313 124800

図 1 ロボットとコントローラの写真