® ó Ø C¶îgt| 6¯we- · 11 H 1 · Mac OS X, Processing, LeapMotion, JINS MEME 1.1 Mac OS X Mac...
Transcript of ® ó Ø C¶îgt| 6¯we- · 11 H 1 · Mac OS X, Processing, LeapMotion, JINS MEME 1.1 Mac OS X Mac...
-
「知能情報学実験及び演習」
— LeapMotion および JINS MEME を用いた実験 —
知能情報学部 渡邊 栄治
2019 年度
-
3
目 次
第 1章 Mac OS X, Processing, LeapMotion, JINS MEME 11
1.1 Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 LeapMotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 JINS MEME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
第 2章 Processing 13
2.1 課題-A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 課題-B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 課題-C1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 課題-G3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 課題-G4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 課題-G7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7 課題-G8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
第 3章 LeapMotion 17
3.1 課題-D: examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 課題-E: examples の改良 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 課題-F: 簡単な課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 課題-G1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5 課題-G2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
第 4章 JINS MEME 19
4.1 App (iOS 用) の動作確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 簡単な動作の分析 (準備) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 簡単な動作の分析 (動作とデータの関係) . . . . . . . . . . . . . . . . . . . 23
-
5
はじめに
概要
本実験では,LeapMotion (モーションコントローラー) および JINS MEME (メガネ型
ウェアラブルデバイス) を用いた実験を行う.
具体的には,(i) Processing 言語の復習,(ii) Processing 言語を用いた画像処理,(iii)
LeapMotion による指の動きの検出,(iv) JINS MEME を用いた視線や動作の検出および検
出されたデータの分析を行う.
実験構成
実験構成は以下の通りである.
• 1, 2週目:Processing 言語,LeapMotion による指の検出
• 3, 4, 5週目:JINS MEME による視線や動作の検出
成績評価
以下の項目に基づいて,総合的に評価する.
• 出席状況 (40点):
• レポート (60点):できるだけ説明文があれば better.
6
レポート提出
• 提出回数:1 回 (最終週が終わってから,まとめて提出して下さい).
• 提出期限:最終回終了後の水曜日 17:00
• 提出方法:
– 送信先 Address: [email protected] (渡邊)
– 件名 (Subject):「知能情報学実験及び演習」 (渡邊担当分)
– 送信元: できるだけ,[email protected] を用いて下さい.
• 提出内容 (レポート+プログラム):
– レポート (表紙+本文):
∗ 使用ソフト:Word, PowerPoint, Excel, LATEX.∗ 表紙:タイトル,学籍番号,氏名,提出日付∗ 本文:実行結果,理解できた/できなかった箇所,苦労した箇所など.
– プログラム:
– ファイルサイズが大きい場合 (3 MB 以上):USB で提出して下さい.
– ファイルが多数の場合:全ての file を 一つの folder に入れて,圧縮して下さい.
ProgramReport
Archive
-
7
LATEX(電子組版ソフトウェア) によるレポートの作成
1. 概要:LaTeX 入門, https://texwiki.texjp.org/?LaTeX入門, 2017.
2. フォルダ report-sample にある report-sample.tex を report-sample.pdf に変換
Terminal で実行して下さい� �cd を用いて,report-sample に移動して下さい.
platex report-sample.tex
platex report-sample.tex
platex report-sample.tex
dvipdfmx -d 5 -p a4 report-sample.dvi� �
8
report-sample.tex
bababababababababababababababababab
%
\documentclass[12pt]{jarticle}
%
\usepackage{amsmath,amssymb}
...
%
% ------------------------------------- %
\title{\bf 「知能情報学実験及び演習」(渡邊担当分)}\author{\bf 学籍番号 氏名}\date{\bf \today}
\begin{document}
\maketitle
%
\section{第 1 週}...
この資料は,\LaTeX~\cite{ref:LaTeX}, \cite{ref:LaTeX-Wiki}%
\subsection{箇条書き}%
\subsection{数式}\begin{equation}
C_n = n + C_{\frac{n}{2}} + C_{n/2}
\label{eqn:01}
\end{equation}
%
%
\subsection{図}比較回数を,図~\ref{fig:01} に示す.%
\begin{figure}[hbtp]
\begin{center}
\begin{tabular}{cc}
\includegraphics[width=0.45\textwidth]{fig-c.eps}&
...
\end{center}
\caption{比較回数}\label{fig:01}
\end{figure}
%
\begin{thebibliography}{99}
\bibitem{ref:LaTeX}
\LaTeX, {\tt https://ja.wikipedia.org/wiki/LaTeX}, 2017.
\end{thebibliography}
%
\end{document}
-
9
report-sample.pdf
( )
29 12 26
1 1
LATEX [1], [2]1
1.1
1.1.1 ( )
•
•
–
–
•
1.1.2 ( )
1.
2.
(a)
(b)
3.
1.2
Cn (1)
Cn = n+ Cn2 + Cn/2 (1)
1 TEX [3],[4] (Prof. Knuth)TEX Knuth “The Art
of Computer Programming” Shell Sort O(n1.25)
1
10
1.3
1 1 1
1 1 1
1:
(i) (ii) (iii)
bubble 21 12 21 0 21 21
selection 21 6 21 6 21 6
insertion 15 12 6 0 21 21
1.4
1 1 1
1 1
100
102
104
106
108
100
1010
Complexity
n2
n1.5
n1.25
n log n
n: number of data
100
102
104
106
108
100
1010
Complexity
n2
n1.5
n1.25
n log n
n: number of data
(a) (b)
1:
[1] LATEX, https://ja.wikipedia.org/wiki/LaTeX, 2017.
[2] LaTeX , https://texwiki.texjp.org/?LaTeX , 2017.
[3] TEX, https://ja.wikipedia.org/wiki/TeX, 2017.
[4] Prof. Donald E. Knuth, http://www-cs-faculty.stanford.edu/~knuth/, 2017.
2
-
11
第1章 Mac OS X, Processing,LeapMotion, JINS MEME
1.1 Mac OS X
• Mac OS の操作 (login/logout/shutdown など)
• login-ID: ise-xxx (研究室内のみ有効)
• Tips:
– Launchpad:application の起動.
– システム環境設定:mouse の設定等.
– 画面のキャプチャー (静止画):Command + Shift 4
– 画面のキャプチャー (動画): quicktime を利用.
• USB の取り外し: ゴミ箱に入れる or 右クリックで取り出し
• terminal: コマンドの実行等
• Emacs: プログラムの編集,ファイル内容の確認
12 第 1章 Mac OS X, Processing, LeapMotion, JINS MEME
1.2 Processing
• 概要:
– 電子アートとビジュアルデザインのためのプログラミング言語.
– 2008年に,MIT メディアラボが開発 (https://processing.org).
• 動作確認:
– Application folder の Processing を起動.
– 円を表示 (size(400, 200); ellipse(100, 100, 60, 60);
1.3 LeapMotion
• 概要:
– 赤外線照射 LED により,指や手の動きを検出 (トラッキング速度:100 [fps]).
– 2012年に,Leap Motion 社 (https://www.leapmotion.com) が開発.
• 動作確認:
– Application folder の サーバプログラム LeapMotion を起動.
– タスクバー (最上部) の Visualizer を実行.
1.4 JINS MEME
• 概要:
– 視線および体の動きの検出 (Sampling rate: 20 [Hz] 程度).
– 2012 年に,JINS 社 (https://jins-meme.com/ja/) が開発.
• demo:
– JINS 社の Web https://jins-meme.com/ja/ により説明.
-
13
第2章 Processing
動作確認
• Processing 3.4を利用して下さい (*.pdeに対して,右クリックを行い,Processing-3.4を選択).
• 01-Processing/draw_object:物体を表示し,物体とマウス位置との距離を求める.距離が短い場合は,物体色を変更する.
(a) 距離 > 10 (b) 距離 ≤ 10
図 2.1: 実行結果 (一例)
• draw_line:マウスをドラッグしている間,直線を描画する.
図 2.2: 実行結果 (一例)
14 第 2章 Processing
2.1 課題-A
• Processing 3.4 を利用して下さい.
• draw_object と draw_line を組み合わせて,「物体を v マウスでクリックし,マウスの移動 (マウスドラッグ) に伴い,物体を移動する」機能を実現しなさい.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
図 2.3: 実行結果 (kadaiA の kadaiA.mp4) も参照して下さい)
2.2 課題-B
• Processing 3.4 を利用して下さい.
• draw_object と draw_line を組合わせて,「移動するマウス (ドラッグ時のみ) の位置に物体を追従させる」機能を実現しなさい (kadaiB/kadaiB.mp4).
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
2.3 課題-C1
• Processing 3.4 を利用して下さい.
• draw_object と draw_line を組み合わせて,「直線上に移動する物体にマウスを近づけると物体の色が変わる」機能を実現しなさい (kadaiC1/kadaiC1.mp4).
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
-
2.4. 課題-G3 15
2.4 課題-G3
1. Processing 3.4 を使用してください.
2. kadaiG3 は,画像を表示するプログラムです.動作を確認して下さい.
3. kadaiG3 を改良して,mouse を click した場合,雲を追加するようにしなさい.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
2.5 課題-G4
1. Processing 3.4 を使用してください.
2. kadaiG4 は,画像を表示するプログラムです.動作を確認して下さい.
3. kadaiG4 を改良して,キー入力があった場合のみ,mouse の位置に雲を追加するよう
にしなさい.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
2.6 課題-G7
1. Processing 3.4 を使用してください.
2. kadaiG7 は,動画像を表示するプログラムです.動作を確認して下さい.
3. kadaiG7 を改良して,mouse を click した場合,雲を追加するようにしなさい.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
2.7 課題-G8
1. Processing 3.4 を使用してください.
2. kadaiG8 は,動画像を表示するプログラムです.動作を確認して下さい.
3. kadaiG8 を改良して,マウスをドラッグしている間,直線を描画するようにしなさい.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
-
17
第3章 LeapMotion
注意
• Processing 2.2.1 を利用して下さい.
– *.pde に対して,右クリックを行い,Processing-2.2.1 を選択して下さい.
準備
• Application にあるサーバプログラム LeapMotion を起動.
• タスクバー (最上部) の Visualizer を実行.
• 02-LeapMotion/finger_position (人差し指の位置を検出し表示) を実行.
3.1 課題-D: examples
1. フォルダ 02-LeapMotion/examples にある以下の exmample を実行しなさい (提出
物:「各プログラムの機能」,「実行結果 (画面のキャプチャ)」).
• active_fingers,• finger_to_pvector,• gesture_recognition,• velocity_graph.
2. 関数 leap.getTip, leap.getFingerList の機能を説明しなさい.
18 第 3章 LeapMotion
3.2 課題-E: examples の改良
• フォルダ 02-LeapMotion/examples にある例 velocity_graph を,指の横方向の動きに対応するように変更しなさい.ただし,古いバージョンの Processing を使用
して下さい.pde file を右クリックして,下に表示される Processing を選択して下さ
い.課題-E も同様です.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
3.3 課題-F: 簡単な課題
•「物体付近に人差し指を移動させて物体を把握し,さらに,人差し指の移動に伴い,物体を移動する」機能を持つプログラムを作成しなさい (LeapMotion/finger_position
などを参考にして下さい.また,実行例は,図 2.3 を参照のこと).
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
3.4 課題-G1
• kadaiG1.pde を,マウスではなく指の動きを利用するように改良して下さい.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
3.5 課題-G2
• 課題-G1 を利用して,「モグラ叩き風ゲーム」や「神経衰弱風ゲーム」を (仕様は各自で決めて下さい) を作成して下さい.
• 提出物:「プログラムと説明」,「実行結果 (画面のキャプチャ)」.
-
19
第4章 JINS MEME
概要 (第3週:4.1,第4,5週:4.2, 4.3)
• JINS MEME の App (iOS 用) の動作確認
• JINS MEME を用いた簡単な動作の分析 (準備,動作とデータの関係)
20 第 4章 JINS MEME
4.1 App (iOS 用) の動作確認
1. 図 4.1 に示した App (OFFICE, TAIKAN, RUN, ZEN, WALK, 姿勢チェック,JINS
PAINT) の動作確認を行って下さい1.
2. 各 App の機能を文章や図を用いてまとめなさい.なお,動作しない場合や動作内容
が不明な場合は,その旨をまとめて下さい.
図 4.1: JINS MEME 用 App
1配布する iPod (可能であれば,iPhone) との bluetooth 接続が必要です.
-
4.2. 簡単な動作の分析 (準備) 21
4.2 簡単な動作の分析 (準備)
1. 図 4.1 に示した App (Logger2) を利用する (iPod と bluetooth 接続が必要).
2. iTunes を用いて,iPod 内部のデータを保存する.
(a) iTunes による確認と保存 (JINSMEME DEVELOPER)
(b) *rt.csv を利用
図 4.2: Logger (JINS MEME App) のデータを取得
2https://itunes.apple.com/jp/app/ロガー-for-jinsmeme/id1131541983?mt=8
22 第 4章 JINS MEME
3. Excel により確認する.各項目については,表 4.1 と表 4.2 を参照して下さい.
図 4.3: Logger (JINS MEME App) のデータの確認
4. gnuplot により各項目のグラフを作成して下さい.� �// 画面の初期化 (x いち いち)set terminal x11
// a.txt の 2 列目を横軸,3 列目を縦軸としたグラフ (折れ線+点 lp)plot "a.txt" using 2:3 w lp
// 横軸の範囲を aaa, bbb とする.縦軸は,yrangeset xrange [aaa:bbb]
// 縦横比を設定する.set size ratio aaaa
// 出力先を画面ではなく,tgif 形式とする.set terminal tgif
// file 名を test.obj とする (後で,tgif で編集できるように).set output "test.obj"
// グラフを "test.obj" に保存する.replot
// gnuplot を終了.quit または q� �
-
4.3. 簡単な動作の分析 (動作とデータの関係) 23
4.3 簡単な動作の分析 (動作とデータの関係)
1. 分析する動作 (本を読む,文章を書く,スマホを操作する,歩く,座る,走る,横に
なる,何もしないなど) を決めて,Logger により視線や動作に関するデータを記録
しなさい.
2. 視線や動作に関するデータを gnuplot により表示しなさい.
3. gnuplot により作成したグラフを基にして,「動作」と「視線や動作に関するデータ」
の関係を明確にしなさい.
— – — – — – — – — – — – — – — – — – — – — – — – —
24 第 4章 JINS MEME
表 4.1: リアルタイムモードで取得できるデータ (1/2)
名前 説明
eyeMoveUp
視線が上に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
eyeMoveDown
視線が下に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
eyeMoveLeft
視線が左に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
eyeMoveRight
視線が右に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
blinkSpeed まばたきのスピード(Millisecond)
blinkStrength まばたきの強さ(一般的に、50~200の間におさまります。)
walking かかとを地面についたかどうか。それを検出するとtrueになる
roll 姿勢を表す角度のうちのロール要素を示す度
pitch 姿勢を表す角度のうちのピッチ要素を示す度
yaw 姿勢を表す角度のうちのヨー要素を示す度
accX加速度のX軸の値。-128 ~ 127 の12bitの浮動小数点 (FW1.0.7の場合、8bitの整数値となります)
accY加速度のY軸の値。-128 ~ 127 の12bitの浮動小数点 (FW1.0.7の場合、8bitの整数値となります)
データとイベント - JINS MEME DEVELOPER DOCUM... https://jins-meme.github.io/sdkdoc/ios/data-and-event...
3 / 4 2018/11/19 11:16
-
4.3. 簡単な動作の分析 (動作とデータの関係) 25
表 4.2: リアルタイムモードで取得できるデータ (2/2)
名前 説明
eyeMoveUp
視線が上に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
eyeMoveDown
視線が下に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
eyeMoveLeft
視線が左に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
eyeMoveRight
視線が右に動いたかどうかを示す整数値0:なし1:移動検知ー小2:移動検知ー中3:移動検知ー大4:移動検知ー特大 (FW1.0.7のみ)
blinkSpeed まばたきのスピード(Millisecond)
blinkStrength まばたきの強さ(一般的に、50~200の間におさまります。)
walking かかとを地面についたかどうか。それを検出するとtrueになる
roll 姿勢を表す角度のうちのロール要素を示す度
pitch 姿勢を表す角度のうちのピッチ要素を示す度
yaw 姿勢を表す角度のうちのヨー要素を示す度
accX加速度のX軸の値。-128 ~ 127 の12bitの浮動小数点 (FW1.0.7の場合、8bitの整数値となります)
accY加速度のY軸の値。-128 ~ 127 の12bitの浮動小数点 (FW1.0.7の場合、8bitの整数値となります)
データとイベント - JINS MEME DEVELOPER DOCUM... https://jins-meme.github.io/sdkdoc/ios/data-and-event...
3 / 4 2018/11/19 11:16
名前 説明
accZ加速度のZ軸の値。-128 ~ 127 の12bitの浮動小数点 (FW1.0.7の場合、8bitの整数値となります)
noiseStatus 顔電位のノイズ状況を表すboolean値
fitError
JINS MEMEがきちんと装着されているかどうかを示す整数値。0:エラーなし1:左鼻パッドエラー2:右鼻パッドエラー3:ブリッジエラー
powerLeft
電池残量を表す整数値0:充電中1:低電圧2:Lv23:Lv34:Lv45:満充電
JINS MEMEへのコマンドの実行結果はMemeResponseクラスを通じて提供されます。
イベント イベントコード
データ送信開始(リアルタイムモード) 0x02
データ送信停止(リアルタイムモード) 0x04
データとイベント - JINS MEME DEVELOPER DOCUM... https://jins-meme.github.io/sdkdoc/ios/data-and-event...
4 / 4 2018/11/19 11:16