2023年度インタラクションデザイン演習実習Ⅰ
このページは東京都立大学にて開講している、2024年度インタラクションデザイン演習実習Ⅰにおける授業補助教材です。
ユーザとモノをつなぐ対話設計であるインタラクションデザインに関する体系的知識及び実践的基礎技術を身に付けることを目標とする.近年の論文からいくつかのトピックを議論し,最先端の研究分野をフォローできるための知識を獲得し,それらを実際に再現するために必要な技術要素を同時に身に付けることを目標とする.
論文読解1:The smart floor: a mechanism for natural user identification and tracking
Robert J. Orr and Gregory D. Abowd. 2000. The smart floor a mechanism for natural user identification and tracking. In CHI '00 Extended Abstracts on Human Factors in Computing Systems (CHI EA '00). ACM, New York, NY, USA, 275-276. DOI=10.1145/633292.633453 http://doi.acm.org/10.1145/633292.633453
2ページの英文ショートペーパーです.ロードセルを利用したシンプルなユーザ識別装置に関する報告です.識別にはユークリッド距離を 利用しています.なお,ウェブで検索をするとフルペーパーも見つかるので,詳細はそっちで確認することをおすすめします.ユーザが歩いた際における圧力や時間,力の分散などを特徴量として学習済みの特徴量をf,入力データをf'(ダッシュ)とした場合,次のような計算で距離を求めると,様々な学習済みデータとどの程度入力データがことなるのかを計算できるようになります. 本講義でのもっとも基本的で重要な考え方なので,しっかり理解しましょう.
* Nearest Neighbor参考ページ:インタラクションデザインの為のパターン認識入門
スケッチ練習
以下の動画を再現するスケッチを記述せよ。
ヒント:200個のランダム座標、drawingContextを利用して影は自動で描画している。NN法で学習したユークリッド距離計算を用いて一定の近さにいるオブジェクトに対して線を描画している。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.9.0/p5.js"></script> <title>p5.js Sample</title> </head> <body> <script> var points = []; // Your p5.js code goes here function setup() { createCanvas(400, 400); const numCoordinates = 200; points = generateRandomCoordinates(numCoordinates); // drawingContextを利用して線に影をつける drawingContext.shadowOffsetX = 5; drawingContext.shadowOffsetY = 5; drawingContext.shadowBlur = 2; drawingContext.shadowColor = 'rgba(0, 0, 0, 0.5)'; } function generateRandomCoordinates(numCoordinates) { const coordinates = []; const min = 0; // 最小値 const max = 400; // 最大値 for (let i = 0; i < numCoordinates; i++) { const x = Math.floor(Math.random() * (max - min) + min); const y = Math.floor(Math.random() * (max - min) + min); coordinates.push({ x, y }); } return coordinates; } function draw() { background(255); // それぞれのpointsを線で結ぶ for (let i = 0; i < points.length - 1; i++) { const p1 = points[i]; const p2 = points[i + 1]; // 先の細さを設定 strokeWeight(1); stroke(100); line(p1.x, p1.y, p2.x, p2.y); points[i].x += random(-1, 1); points[i].y += random(-1, 1); // points[i]の座標を制限する points[i].x = constrain(points[i].x, 0, 400); points[i].y = constrain(points[i].y, 0, 400); } } </script> </body> </html>
論文読解2:手軽な指文字学習支援のためのブラウザゲーム:ゆびもじタイピング
宮崎 優子 馬場 哲晃
概要聴覚障がい者のコミュニケーションツールには,単語を手の形や位置,動きで表現する手話と,日 本語かなを手の形や動きに対応させた指文字がある.指文字は手話表現にない固有名詞や名前を表現する ときに使われ,手話初心者にとって手話を覚えていなくても指文字を覚えれば単語を綴ることができる. したがって,指文字をスムーズに綴れることは,手話初心者にとって聴覚障がい者との円滑なコミュニ ケーションへの第一歩と言える.手話の学習方法としては対面で講師から学ぶ方法が主であるが,これは 学習者にとって時間的・金銭的コストがかかる.一方で,学習者が単独で手話を学ぶには,本や DVD を 使った方法があるが,これらは指文字を一字ずつ覚えることはできても,実際に指文字を使うときのよう な単語を綴りながらの指文字練習は紙面やコンテンツ数の制約により,限界があった.そこで本研究では 学習者に単語を提示し,学習者がその単語を指文字で綴ることで指文字学習定着および技能向上を目的と するタイピングゲームを制作する.このゲームはブラウザゲームとして実装・公開することによって,イ ンターネット環境と Web カメラの搭載された PC のみで学習者の手軽な指文字学習を可能にする.
スケッチ練習
下の動画を参照して、同じことを実現するプログラムをスケッチせよ。
論文読解3: 学習者の匿名音声干渉を利用したオンライン授業の実施と考察
- 論文データ:11_13.pdf
- 著者:馬場哲晃
- Covid-19によって,多くの教育機関がオンライン授業への対応を余儀なくされた.対面授業とオンライン授業の比較は多くの研究がなされる一方で,オンライン授業では様々なデジタルツールの活用がなされる等,多様な取り組み方法が継続的に実践・検討されている.本稿では,著者が2020年度から開発を開始した音声リアクション・コメント読み上げ共有システムCommentableに対し,学習者による匿名の音声干渉(本稿では特に音声による学生と教員間のインタラクションを指す)機能を利用することで,一部授業では音声なしよりも音声付き投稿が多用されたことや,投稿ログとアンケート結果から授業への参画度向上が示されたことを報告する.一方で,音声干渉機能は200人規模の授業には不向きであるほか,小規模,中規模授業であっても教師および学習者同士が協調し本機能を活用する必要があることがアンケート結果から示された.
NeuralNet Challenge
ここではまずは実際にNeuralNetを自分でコーディングし,その振る舞いを理解した後に楽しいサンプルを触っていきます.
- 【お薦め】ニューロンを位置からコーディングして、一つのニューロンからなるパーセプトロンを自分で実装してみるDaniel
ml5.js
機械学習をjsで利用可能なライブラリml5に関してDanielがいくつかの動画を挙げてくれています。
- 【例】ビデオ画像を10×10のサイズに小さくして、実際に画像識別を実装するDaniel
- ML5 Beginners Guide: The Coding Train(Danielによるml5jsの実践動画集)
授業では1つ目の動画を実際にたどりながらニューラルネットの基本原則を理解します。
Teachable Machine
実際に自分でニューラルネットを設計して実装していくのもよいですが、すでにGoogleによって超すごいフレームワークが提供されています。その名はTeachable Machineです。まずは以下の動画で実際になにを行うかをみて、自分でもやってみます。先で述べたml5.jsライブラリを利用して、training自体を簡単にできるようにまとめたものだと思ってください。
- Teachable Machine: https://teachablemachine.withgoogle.com
- Image Classification: https://www.youtube.com/watch?v=kwcillcWOg0
- Sound Classification: https://www.youtube.com/watch?v=TOrVsLklltM
Reference
Deep Learningに興味をもって基本的なことや背景などをもう少し知りたい人には下記の書籍をオススメします
jsを少し詳しく学ぼう
この回では、jsを利用して最終課題をコーディングしていく際、もう少しプログラミングそのものに焦点を充てて学習をしておいたほうが良いかと思います。基本的なjsの文法をさらったのち、実用的なプログラミングで役立つ機能を学習します。