はじめに
こんにちは.HCIの研究をしている大学院生の若林と申します.
今回はヒューマンコンピュータインタラクション論文紹介 Advent Calendar 2015の24日目の記事としてUIST2015から論文を紹介したいと思います.
紹介するのは『cLuster: Smart Clustering of Free-Hand Sketches on Large Interactive Surfaces』という論文です.
フリーハンドで描いた絵や文字のクラスタ化を支援したよという内容の研究です.
動画はこちらです.
概要
さて,フリーハンドで描いたものをクラスタ化するにはどうすればいいでしょうか.
まず,著者らはDelayeらの研究に着目しました.
これは絵や文字のストローク(一つの線)間において,距離や長さなど8つの特徴量を元に値を決め,しきい値以下なら同じクラスタにすることでクラスタ化する手法です.
またそれぞれの特徴量に対し重み係数をかけるのですが,その重み係数を訓練データを元に学習します.
d_c(s,t) = \sum_{i=1}^n w_i d_i(s,t)
sとtはストローク,iはそれぞれの特徴量,$w_i$は特徴量に対する重み係数,$d_i$は特徴量の値です.
この$d_c(s,t)$としきい値を使って,クラスタ化していくわけですね.
しかし,Delayeらの手法は構造毎にしきい値や重み係数を学習し直しているため,訓練データを毎回集める必要があります.
予備実験
予備実験として著者らは,フリーハンドで壁面ディスプレイに描かれたものを2年間にわたって収集し,それらを9種類に分類しました.
これを訓練データとしてDelayeらの手法に用いることで,学習し直さなくてもクラスタ化できるよう試みました.
クラスタ化
そして著者らは,先程分類した9種類から"Global"と"Categories"を除いた7種類を訓練データに用いました.
その際,Delayeらの式を拡張し,7種類のカテゴリ毎に重み係数を計算しました.
このカテゴリ毎の値を線形結合した値を使ってクラスタ化を行います.
d_c(s,t) = \sum_{j=1}^p \alpha_j d_j(s,t)
sとtはストローク,jはそれぞれのカテゴリ,$\alpha_j$はカテゴリに対する係数,$d_j$は前式で出る値です.
さらに著者らは,最初のクラスタをマニュアルで決定させ,そのクラスタの情報を元にリアルタイムでしきい値と$\alpha_j$を算出することでクラスタ化の精度を上げました.
評価実験
著者らは,クラスタを修正する機能も実装しています.
評価実験ではクラスタ化した後,どれだけ修正を要したかをカウントしました.
修正回数の平均値は2.76回(SD=2.70)でした.
インタラクション
著者らはクラスタ化した後の,様々なインタラクションも実装しています.
タップ選択の拡張
タップした時は一つのクラスタが選択され,その後フリックした方向のクラスタとマージする.
スプリングモード
バブルモード
まとめ
かなり色々なことをやっている論文ですが,一番重要なポイントは最初のクラスタをユーザに選択させ,それを元にクラスタ化を行えるようにアルゴリズムを拡張したところです.
アルゴリズムもですが,スケッチのカテゴリ化も先行研究を参考,拡張して行っています.
しっかりと他研究と比較,検討しながら書かれている論文でとても参考になりました.
応用事例として様々なインタラクションを付与したところは,UISTぽいなーなんて思いました.