® ó Ø C¶îgt| 6¯we- · 11 H 1 · Mac OS X, Processing, LeapMotion, JINS MEME 1.1 Mac OS X Mac...

13
「知能情報学実験及び演習」 — LeapMotion および JINS MEME を用いた実験 知能情報学部 渡邊 栄治 2019 年度

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