ユーザインタフェース 課題


課題: 画像中の人物部分をアノテーションするユーザインタフェースをデザイン・実装し、ユーザテストを行う。

深層学習の成功が注目を集めているが、学習システムがうまく動くためには訓練データが大量に必要である。 本課題では、その例として、画像中の人物のアノテーションタスクのためのユーザインタフェースを実装してテストする。

サンプルコードを以下で配布するのでそれを元に開発してよい。また、同等のものを作成できるのであれば他の言語等で新たに開発してもかまわない。 インタラクションの例としては、「フリーハンドストロークで囲む」「頂点クリックしてポリラインで囲む」「ブラシで当該部分を塗りつぶす」「関節付きの人型を用意して関節点を設定していく」「カメラの前でポーズをとる」などいろいろと考えられる。できれば、あとから微調整する機能や、UNDO機能なども実装できるとよい。

自分なりにゴールを設定してデザインをすること。たとえば、「なるべく効率よく操作できるようにする」「説明がなくてもできるようにする」「なるべく独創的な工夫をする」「とにかくツールとしての完成度を高める」など。 他の学生との情報交換はかまわないがコードの流用は厳禁とする。

ユーザスタディを行うほか、作成したソフトウェアの動作を説明した文書、およびビデオを作成し、提出する。 講義最終日の発表会で、デモを交えて作ったものを発表する。

配布資料:

  • コード (Processing) 画像を読み込んで、マウスクリックで点を置くことができる。
ユーザテスト
自分の実装したプログラムを実験参加者に操作してもらい、時間を計測する。被験者は自分の他に2人用意してテストを行う(合計3人)。 なるべく情報科学科以外の人が望ましい。

想定としては、「アノテーション作業を依頼された初心者が説明書も読まずに起動して使おうとしている場面」とする。 したがって、実験監督者は実験参加者に対して課題の概要のみ説明し、細かい操作方法については最初は説明しないものとする。

実験参加者には以下のような指示をするものとする。
- いまここに人物の写っている画像があります。
- あなたのタスクは人物が移っている領域をマウス操作でアノテーションすることです。
- 終わったら終わったといってください。
- ではやってみてください。

まずはimage0について、上記以外に細かい説明はしないで、しばらくやらせてみる。 困っていても助けはださないこと。 全然うまくいかないようであれば、途中で終わりにして次にいく。

image0が終わったら(あるいは中断したら),image1に移る。 今回は、まず、やって見せて、使い方を詳しく説明してからやってもらう。 うまくいかなければ助けてもよい。終わったら、image2, image3 で練習する。 練習中はアドバイスしたり質問に答えてよい。

image4-8に対して作業を行う。今回は、困っていても助けは出さないこと。 全然うまくいかないようであれば、途中で終わりにしてよい。

image4-8について、時間を記録し、レポートに含めること。 また、一通り終わったあとにユーザと話をしてコメントをもらう。 テスト結果はこちらで集計するので以下のフォーマットの表がほしい(単位は秒)。

時間
		image4	imge5	image6	image7	image 8
被験者1   	100	200	300	400	500
被験者2   	100	200	300	400	500
開発者   	100	200	300	400	500
平均	   	100	200	300	400	500

時間に加えて、自分で動かした感想や、テストユーザからのコメントや観察結果などを まとめる。

情報科学科以外所属でプログラミングが出来ない学生向けの課題
実装する代わりに、どのようなインタフェースにしたらよいか検討し、インタラクションの内容を説明した図入りの文書を作成する。 (第三者がみて動作を想像することができる/プログラマがみてそのまま実装できるような詳しい仕様書とする)。 さらに、誰か人にお願いして(できればプログラミングができる人)、その人に、自分のデザインしたインタラクションを説明して、 理解できたかどうか確認して、改善案を求めるという作業を行う。 それらをまとめて、レポートとする。

課題構想発表
6/27 の講義時に、課題でどのようなユーザインタフェースを実装するつもりであるかを 簡単に発表する(一人30秒~1分程度)。書画カメラを使うので、各自A4、1枚に説明をまとめてくる。 自分の名前、インタラクションを示す図、開発環境(言語)などを記す。

レポート提出方法
自分のデザインの説明・詳しい操作方法・実験結果(時間や得たコメントなど)・考察、 をまとめたレポート(pdf)、およびプログラム(ソースとバイナリ) をzipファイルにまとめて、氏名・学生番号を明記の上、 下記の提出先までメイルすること。
また、自分のプログラムの動作を映したビデオを撮影し、それも提出する。動作が分かればよいので短めでよい(30秒~1分程度)。 撮影は、スクリーンキャプチャソフト(Bandicam, CamStudioなど)がベストだが、スマホでの画面撮影でもよい。 ビデオはファイルサイズが大きいので、動画共有サービス(Youtube や vimeo など) あるいはファイル共有サービス(google drive, MS one drive, dropboxなど) にアップロードして、URLをレポートに記載する。

提出期限: 7月8日(月)深夜 (厳守)

提出先: igarashi.lab@gmail.com

なるべく早く作業を始めること。 テストには時間がかかるので、一週間前くらいまでには実装を終えるように。 早めに提出してもらえるとありがたい。 不明な点、質問等があれば早めに五十嵐まで。 アップデートがあればこのページに掲示する。

参考資料(既存のアノテーションツールの例)

  1. Label me: https://github.com/wkentaro/labelme
  2. LEAR: https://lear.inrialpes.fr/people/klaeser/software_image_annotation
  3. CVAT: https://github.com/opencv/cvat#computer-vision-annotation-tool-cvat
  4. PixelAnnotationTool: https://github.com/abreheret/PixelAnnotationTool
  5. Microsoft VoTT: https://github.com/Microsoft/VoTT
  6. Playment: https://playment.io/semantic-segmentation-tool/
  7. Labelbox: https://www.labelbox.com/
  8. Hitachi: https://github.com/Hitachi-Automotive-And-Industry-Lab/semantic-segmentation-editor