以下、本発明の実施形態の例を、図面を用いて説明する。
図1は、スマートフォン100とその操作の例を示す図である。図1の例では、スマートフォン100を操作するユーザ160が、電車またはバスなどの交通機関において、つり革170につかまって、片手をふさがれた状況であり、片手163でスマートフォン100を保持している。
ユーザ160は、スマートフォン100を操作するために、顔をスマートフォン100に向けて、目161によりスマートフォン100を見ている。スマートフォン100は、タッチパッド(表示画面)110、カメラ120、カメラ130、サイドボタン140、及びマイク150が設けられており、ユーザ160はタッチパッド110を見ることになる。
カメラ120とカメラ130は、ユーザ160の顔を撮像するものであり、特にユーザ160の目161を撮像する。そして、2個のカメラでの撮像により顔とタッチパッド110との距離を算出し、目161の白目と瞳の位置関係から視線を特定して、タッチパッド110での視点を得るが、これらについては後で更に説明する。
図1に示したスマートフォン100の例では、カメラを2個設けたが、顔とタッチパッド110との距離を他のセンサにより検出できるのであれば、1個であっても良い。例えば、タッチパッド110と同一面のカメラ120の代わりにカメラ120の位置に赤外線または超音波の距離センサを設けて、ユーザ160の顔との距離を測定しても良い。
また、ユーザ160がサングラスを着用しているなど目161の白目と瞳の位置関係を識別しにくく視点を特定しにくい場合は、その代わりに他の入力が利用されてもよい。ただし、ユーザ160の顔そのものがタッチパッド110へ向いているかを判定するために、顔の輪郭、例えば髪の毛と耳で構成される輪郭162が識別されても良い。
図2は、スマートフォン100にアイコン220を表示した例を示す図である。図2の例は、ホーム画面或いは待ち受け画面と呼ばれる表示であり、タッチパッド110にアイコン220が表示されている。なお、アイコン220−1からアイコン220−9までを、いずれのアイコンであるかを特定せずに表す場合、アイコン220と表現し、以下では他の符号も同じ表現とする。
アイコン220−1からアイコン220−9までのそれぞれは、アプリケーションプログラムに対応して予め設定されたアイコンであり、それらの中で選択されたアイコン220に対応するアプリケーションプログラムが実行される。カーソル210は、ユーザ160の視点の位置に表示される。即ち視点をユーザにフィードバックするカーソル位置を示す。
先ずユーザ160の視線は、漠然とタッチパッド110上の一点を捉える。スマートフォン100に着信があり、現在受話状態に移行できない旨を自動的に応答するアプリケーションプログラムの起動アイコンがアイコン220−8であった場合、ユーザ160はカーソル210をアイコン220−8上に合致させるべく視線を移動させる。
そして、スマートフォン100は、アイコン220−8上に視点があることを特定し、サイドボタン140のスイッチオン動作、いわゆる「決定」動作を検出すると、アイコン220−8に対応するアプリケーションプログラムを起動する。これにより、片手操作でのアプリケーション選択及び起動が可能となる。
図1では、つり革170につかまるというユーザ160の行為を例にとったが、荷物を持っている場合、資料を手に持っている場合、或いは子供と手をつないで歩いている場合、片手を怪我している場合など、片手のみによる操作が求められる場面は多く存在し、これらの場合に、以上で説明した操作は有効である。
なお、スマートフォン100は、視点がアイコン220−8上へ移動したことを特定すると、アイコン220−8上へカーソル210を移動するだけではなく、アイコン220−8の表示の色を変更したり、表示のサイズを変更したり、表示の形状を変更したりして、ハイライト表示しても良い。これにより、更に確実にアイコン220−8が選択されていることを、ユーザ160は確認できる。
また、スマートフォン100は、カーソル210を表示せず、視点がいずれかのアイコン220上へ移動したことを特定すると、そのアイコン220の表示の色を変更したり、表示のサイズを変更したり、表示の形状を変更したりしても良い。
また、図2の例では、カーソル210の形状を矢印としたが、視線の狙っている部分を示すという意味を強調するために、丸と十字を組み合わせたターゲットマークなどであっても良い。
以上の説明では、待ち受け画面におけるアプリケーションプログラムの起動の例を説明したが、アプリケーションプログラム実行中の操作についても、以上で説明した操作の処理は利用可能である。例えば、図2に示したアイコン220は電話番号を入力する数字キーであり、電話関係のアプリケーションプログラムを実行中にアイコン220の選択により数字が入力されても良い。
また、例えば留守電機能の利用では、合成音声のメッセージにしたがって数字の入力が求められる場合がある。即ち、タッチパッドから数字が入力可能になる状態と、スマートフォンから発せられる合成音声のメッセージを聞く状態とが重なる場合がある。
これに対して、スマートフォン100はカメラ120、130によりユーザ160の視点により数字キーであるアイコン220が選択されるので、メッセージを聞くために耳がタッチパッド110に接触しても、数字キーであるアイコン220は選択されず、意図しないタッチパッド入力が受け付けられるようなことはない。
また、待ち受け画面またはアプリケーションプログラムを実行中において、スマートフォン100を懐にしまう動作の途中で、タッチパッド110への無意識の接触による意図しない入力が受け付けられることはない。なぜならば、視点によるアイコン220の選択がなく、更にサイドボタン140のスイッチオン動作もなく、ユーザの決定(実行)の意図条件が満たされていないためである。
以上で説明したように、アプリケーションプログラム或いは数字キーの決定という1つの指示を2種類の操作の組み合わせで入力することにより、誤って1種類の操作が発生してしまっても、誤った指示にまでは至らない。
ここでのポイントは、ユーザの顔認識及び視線や視点検知というスマートフォン内蔵の標準となりつつあるカメラ機能さえ備えていれば、比較的容易なソフトウェア処理により誤入力認識防止及び片手操作のみによる使い勝手向上という大きな効果を得ることができる点である。
スマートフォン100で他のアプリケーションプログラムを実行する例を説明する。図3は、スマートフォン100にテキストを表示した例を示す図である。テキストは単語の並びで構成され、例えば単語320−1、単語320−2、単語320−3、単語320−4と順番に、ユーザ160は視点を移動しながら単語320を読み進む。
ここで、ユーザ160が単語320−4をコピーしたい場合、ユーザ160の視点は単語320−4にあり、この視点をスマートフォン100は特定する。そこで、サイドボタン140がスイッチオン動作されながら、マイク150が音声による操作を受け付ける。この音声による操作は、例えば「コピー」である。
これに対して、スマートフォン100は、単語320−4をコピーしてクリップボードに貼り付ける。また、音声による操作は、他の種類の操作であっても良く、テキスト編集のための操作であっても良い。
以上で説明したように、単語320−4の選択とコピーという2つの指示を3種類の操作の組み合わせで入力することにより、誤って1種類の操作が発生してしまっても、誤った指示にまでは至らない。
次に、タブレット端末の例を説明する。図4は、タブレット端末400の表示の例を示す図である。タブレット端末400は、タッチパッド(表示画面)410、カメラ420、カメラ430、決定ボタン440、及びマイク490が設けられており、ユーザはタッチパッド410を見ることになる。
これらは、既に説明したスマートフォン100のタッチパッド110、カメラ120、カメラ130、サイドボタン140、及びマイク150に相当し、カーソル470はカーソル210に相当し、アイコン220を表示してのアプリケーションプログラムの起動や、アプリケーションプログラム実行中の数字の入力は既に説明したとおりであり、テキストを表示しての単語の処理も既に説明したとおりである。
ただし、アイコン220を表示してのアプリケーションプログラムの起動において、決定ボタン440が押し込まれる代わりに、マイク490が音声による操作として「実行」を受け付けても良い。
このような操作による指示は、情報検索でも利用できる。図4の例では、人480−1、人480−2、及び人480−3の3名が被写体となった写真情報において、ユーザが人480−2の人物の情報を知りたい場合、ユーザが視線を人480−2の表示に向けて、カーソル470が人480−2の表示に移動したとき、決定ボタン440を押し込むか、マイク490に向けて「情報検索せよ」と発声する。
これに対して、タブレット端末400は、ユーザの視点を特定してカーソル470を移動し、決定ボタン440が押し込まれるか、マイク490で「情報検索せよ」という音声の操作を受け付けると、視点を特定した位置、即ちカーソル470を表示している位置の画像を顔認識し、タブレット端末400内に記憶された情報或いはインターネット上の情報を検索して、見つかった結果を音声合成で出力するか、タッチパッド410に表示する。
タブレット端末400は、ユーザの視点を特定してカーソル470を移動し、決定ボタン440が押し込まれる操作を受け付けると共に、マイク490で「情報検索せよ」という音声の操作を受け付けると、顔認識しても良い。
情報検索の対象は地図情報であっても良い。図5Aは、タブレット端末400に地図情報を表示する例を示す図である。図5Aに示すタブレット端末400は、図4に示したタブレット端末400に、ダウンボタン450とアップボタン460が追加されている。ダウンボタン450とアップボタン460は、音出力のボリュームの調整に使用されるものであるが、画像のズームの調整にも兼用される。
ユーザが、先ず「アフリカ地図」を表示するよう操作し、図5Aではタッチパッド410にアフリカの地図が表示されている。「アフリカ地図」を表示するための操作は、マイク490へ「アフリカ地図」という音声が入力されても良く、この音声と共に決定ボタン440が押し込まれるか、タッチパッド410の特定領域がタッチされても良い。
そして、ユーザが、アフリカの地図の一部に視点をあわせて、アップボタン460を押すと、これらのユーザの操作に対して、タブレット端末400は、カメラ420とカメラ430で得られたユーザの画像から視点を特定し、視点位置にあわせてカーソル470を表示し、アップボタン460が押されたことを検出すると、図5Bに示すように、視点位置であるカーソル470を中心に地図をズームアップする。
これにより、ユーザは、更に詳細な位置を確認するために見たい部分がズームアップされ、知りたい部分を詳細に観察することができる。
なお、タブレット端末400は、アップボタン460の代わりにダウンボタン450が押されたことを検出すると、視点位置であるカーソル470を中心に地図をズームダウンする。また、アップボタン460或いはダウンボタン450が押されたことを検出すると共に、マイク490で「ズームアップ」或いは「ズームダウン」という音声の操作を受け付けて、地図のズームアップ或いはズームダウンの処理を実行しても良い。
更に、図5Bに示した表示において、タブレット端末400は、決定ボタン440が押されたことを検出すると、視点位置であるカーソル470の地図上で指し示す国を特定し、その特定された国に関する情報を、タブレット端末400内の記憶装置またはインター
ネットから検索して、図5Cに示すようにタッチパッド410に表示する。
ここで、タブレット端末400は、決定ボタン440が押されたことを検出すると共に、マイク490で「詳細情報」という音声の操作を受け付けて、検索の処理と表示の処理を実行しても良い。
地図情報に基づく情報検索では、GPS(Global Positioning System)に基づき、タブレット端末400の位置に応じた地図の表示と周辺情報の検索を可能にしても良い。タブレット端末400は、地図アプリケーションプログラムが起動されると、GPSに基づき現在位置を中心とした地図を表示する。
図6Aは、タブレット端末400に地図情報を表示する例を示す図である。タッチパッド410、カメラ420、カメラ430、決定ボタン440、ダウンボタン450、アップボタン460、カーソル470、及びマイク490は既に説明したとおりである。タッチパッド410には地図をスクロールするための四方向の矢印と現在位置マーク620も表示される。
現在位置マーク620が地図の中心に表示されている状態において、上矢印610に視点があわされて、決定ボタン440が押されると、地図が下へスクロールし、図6Aに示す表示画面が得られる。図6Aでは、地図の下へのスクロールに応じて、現在位置マーク620も下へ移動している。
図6Aに示した表示画面において、ユーザの視点が百貨店630にあわされると、カーソル470が百貨店630を指し示すように表示され、決定ボタン440が押されると、図6Bに示した表示画面となる。これにより、ユーザは、これから行こうとする百貨店の各階の情報を事前に得ることが可能となる。
以下に、視点を特定するためのキャリブレーションと距離測定について、図7と図8を用いて説明する。キャリブレーションが開始されると、図7に示すように、タッチパッド110またはタッチパッド410の表示画面710の中で、先ず表示画面710−1のように中央に点滅するマーク711−1が表示される。
表示画面710−1の表示に対して、カメラ120、カメラ130、カメラ420、或いはカメラ430による撮像画像720−1が取得される。ここで、図8を用いて後で説明するように、2つのカメラ120、130或いはカメラ420、430の視差を利用した、被写体712即ちユーザまでの距離を測定しても良い。撮像画像720−1でのカメラの倍率は、被写体712の上半身が収まる程度で良い。
次に、表示画面710−2のように左下に点滅するマーク711−2が表示される。このとき、「点滅する図形に注目してください」などのメッセージが合成音声で出力されても良い。また、カメラの倍率が上げられて、被写体712の目の部分713がクローズアップされ、撮像画像720−2が取得される。
次に、表示画面710−3のように右上に点滅するマーク711−3が表示される。撮像画像720−2が取得されたカメラの倍率と同じ倍率で、被写体712の目の部分713がクローズアップされた撮像画像720−3が取得され、撮像画像720−2と撮像画像720−3の目のパターンの相関を求める。
即ち、表示画面710の中央から遠い位置へ視線が向う従い、目の輪郭714における黒目や虹彩の位置715は、目の輪郭714の中央から離れるように変位する。表示画面
710の端点(マーク711−2とマーク711−3)を見たときの、目の輪郭714−2に対する黒目や虹彩の位置715−2と、目の輪郭714−3に対する黒目や虹彩の位置715−3との変位を基準として、キャリブレーション後の実際に視点を特定するために新たに得られた撮像画像の変位量の、変位の基準に対する割合から、表示画面の端点からの割合が、視点の位置として算出されても良い。
また、マーク711−2とマーク711−3の間の距離と、撮像画像720−1が取得されたときに測定されたスマートフォン100(或いはタブレット端末400)とユーザ(被写体712)との距離とから、撮像画像720−2と撮像画像720−3の視線の角度が算出され、新たに得られた撮像画像の変位量の、変位の基準に対する割合から、視線の角度の割合が算出され、視線の角度と新たに得られた撮像画像が取得されたときの距離とから視点の位置が算出されても良い。
なお、図7を用いた説明では、片目についての処理を説明したが、両目それぞれに対して処理を行い、平均化するなどしても良い。また、マーク711−1が表示されることなく、マーク711−2とマーク711−3が表示されても良い。更に、マーク711−2とマーク711−3の表示と撮像画像720−2と撮像画像720−3の取得に加えて、表示画面710の左上と右下にもマークが表示され、それぞれの撮像画像が取得されても良い。
図8は、2つのカメラによる距離測定の例を示す図である。顔認識により被写体712の両眼の中心位置である点821が検出され、検出された点821を用いた距離測定について説明する。また、説明を簡単にするために、2つのカメラの中で一方の正面に被写体712であるユーザが正対した状態での距離測定を説明する。
図8では、携帯端末810が被写体712を撮像する位置関係を、z軸の上方向から見たxy平面で示している。携帯端末810は、スマートフォン100或いはタブレット端末400であり、レンズ811、レンズ812、撮像素子813、及び撮像素子814が設けられている。
撮像素子813には、レンズ811を通して、点821を含む被写体712が結像する。ここで、点821は撮像素子813上の点824となる。撮像素子814にも、レンズ812を通して、点821を含む被写体712が結像する。ここで、点821は撮像素子814上の点825となる。
そして、撮像素子813における点824に相当する位置である撮像素子814における点826と、点825の位置の差が視差834に相当する。このように、1つの被写体712を2つのカメラで撮像すると、各カメラの撮像素子813と撮像素子814とでは画像に違いが生じる。
また、点821と点822と点823が形成する大きな三角形と、点823と点826と点825が形成する小さな三角形とには、光学的性質上、相似関係がある。そこで、携帯端末810から被写体712までの長さ831を距離Lとし、レンズ間の長さ832を距離Dとし、焦点距離833を距離Fとし、視差834を距離Sとすると、これらの距離の間には、L:D=F:Sという関係が成立する。
この関係から、距離Lは、L=D×F/Sで表され、例えばD=5cm、F=3mm、S=0.5mmとすると、L=30cmが得られる。携帯端末810であるスマートフォン100或いはタブレット端末400では、2つのカメラそれぞれのレンズの位置と撮像素子の位置との関係は固定であるため、以上のように被写体712と携帯端末810の距
離を算出することが可能となる。
以上で説明したように、被写体であるユーザの目が撮像可能であれば、視点と距離を算出可能であるが、ユーザの個人差により目の開き方や、ユーザと携帯端末との距離のとり方には大きな違いが出る可能性もあるため、目の輪郭と黒目では視点と距離を算出しにくい場合もある。そこで、以下では、めがね型の装置を用いる例を説明する。
図9は、めがね型装置900と携帯端末940の例を示す図である。めがね型装置900は、めがねの形状をしており、鼻と耳が接触してユーザの顔に固定され、カメラ920−1とカメラ920−2を有する。カメラ920は、ユーザの目の近距離に位置するため、目の輪郭と黒目を撮像しやすい。なお、カメラ920は1つであっても良い。
カメラ920とユーザの目との距離は、ユーザの顔の形状の個人差はあるものの、めがね型装置900の形状に応じて、ほぼ一定となり、めがね型装置900の形状が設計されるときに固定値として設定されても良い。
携帯端末940は、スマートフォン100或いはタブレット端末400であり、めがね型装置900と接続コード930で接続され、カメラ920での撮像画像のデータをめがね型装置900から得る。図9では、接続コード930による有線接続の例を示したが、接続コード930が無く、携帯端末940とめがね型装置900とが無線接続されても良い。
携帯端末940は、タッチパッド(表示画面)950、アップボタン960、ダウンボタン970、及び決定ボタン980が設けられ、これらの動作は既に説明したとおりであるが、2つのカメラは設けられなくても良い。ユーザがタッチパッド950を見るために、めがね型装置900のリム910には透明または着色されたレンズがはめ込まれる。
めがね型装置900のリム910−1とリム910−2の一方または両方に液晶スクリーンがはめ込まれても良い。液晶スクリーンにアイコンなどを映し出すために、携帯端末940は接続コード930を介してめがね型装置900へ画像データを出力しても良い。
めがね型装置900に液晶スクリーンがはめ込まれた場合の携帯端末940は、液晶スクリーンに映し出されたアイコンなどへのユーザの視点を算出する。また、この場合の携帯端末940は、タッチパッド950を備えなくても良いし、タッチパッド950に対して小さい或いは解像度の低いタッチパッドであっても良い。
めがね型装置900のツル990−1とツル990−2の一方または両方にイヤフォンを備えても良い。イヤフォンを用いて音で情報をユーザへ伝えるために、携帯端末940は接続コード930を介してめがね型装置900へ合成音声データを出力しても良い。このイヤフォンの代わりに、めがね型装置900はヘッドフォンを備えても良い。ヘッドフォンを備えるために、ユーザの頭上で接触するヘッドバンドを備えても良い。
また、ハンズフリーフォンのようにツル990がマイクを備えても良い。マイクからの音声データを得るために、携帯端末940は接続コード930を介してめがね型装置900から音声データを入力しても良い。
更に、めがね型装置900は、液晶スクリーンがはめ込まれ、アップボタン960、ダウンボタン970、及び決定ボタン980が設けられても良く、携帯端末940の処理をめがね型装置900が実行しても良い。この場合のめがね型装置900は、独立して動作可能であるため、接続コード930が無くても良い。
以上の説明では、カメラを使用してユーザの視点を特定したが、カメラを使用しなくても良い。例えば、スマートフォンが鷲掴みにされた場合、ユーザの手の指が無意識にタッチパッドに接触し、ユーザの意図せぬ入力がなされる場合もあるが、これに対して、カメラを使用せず、図10に示すような操作を検出しても良い。
図10はカメラを使用しない操作の例を示す図である。スマートフォン100は、タッチパッド110、サイドボタン140、及びマイク150が設けられている。カメラは設けられていても良いが、使用されない。視点位置の代わりに、片手164によるタッチパッド110への接触位置を検出し、片手163によるサイドボタン140の押し込まれる動作を検出して、スマートフォン100は、検出された操作に対応する処理を実行する。
また、スマートフォン100は、片手164によるタッチパッド110への接触位置を検出し、サイドボタン140の押し込まれる動作の検出の代わりに、マイク150での音声による操作を検出しても良い。これらにより、タッチパッド110の操作の検出に加えて別の操作の検出も行うことにより、ユーザの意図しない操作を誤検出する可能性を減らすことができる。
以上の説明では、タッチパッド以外の操作を検出したが、タッチパッドの操作の検出で、ユーザの意図しない操作を誤検出する可能性を減らす例を説明する。図11Aは複数の指のタッチを検出するタブレット端末1100の例を示す図である。タブレット端末1100は、タッチパッド(表示画面)1110及びカメラ1120が設けられている。
カメラ1120は、タッチパッド1110を操作する手1140を指まで撮像するようタッチパッド1110側に傾けられて設置され、カメラ1120の撮像光軸はタッチパッド1110の方向に傾き、撮像範囲は画角1130のようにタッチパッド1110の周辺を含む。
タブレット端末1100では、手1140の1本目の指(例えば人差し指)のタッチを検出し、その状態でタッチした指の移動を検出すると、カーソルを移動させる。そして、手1140の2本目の指(例えば親指)により、タッチパッド1110内の実行(決定)ボタンの範囲のタッチを検出すると、1本目の指を検出している位置であるカーソルの位置に対応する動作を実行あるいは決定する。
図11Bは、タブレット端末1100の画面の例を示す図である。アイコン1150−1、アイコン1150−2、アイコン1150−3が、タッチパッド1110に表示されており、アイコン1150それぞれは、アプリケーションプログラム或いはアプリケーションプログラムに対する指示に対応している。
アイコン1160は、実行(決定)ボタンである。例えば、1本目の指でのアイコン1150−1へのタッチを検出している状態で、2本目の指でのアイコン1160へのタッチを検出すると、タブレット端末1100は、アイコン1150−1に対応するアプリケーションプログラムを起動したり、指示に基づく動作を実行したりする。
アイコン1160は、タッチパッド1110に表示されなくても良い。この場合の実行(決定)ボタンの範囲は、アイコン1150以外の領域となる。また、アイコン1160が表示されていない状態で、1本目の指がいずれかのアイコン1150を予め設定された時間以上タッチし続けていることを検出すると、アイコン1160が表示され、アイコン1160への2本目の指のタッチが検出されても良い。
カメラ1120が撮像した画像を分析することにより、タッチパッド1110にタッチしている指の種類が認識される。この指の種類の認識により、2本目の指のタッチが、親指のタッチであると認識した場合は、いわゆるマウスの左クリックとして検出されて、アイコン1150に対応するアプリケーションプログラムが起動されても良い。
また、2本目の指のタッチが、中指のタッチであると認識した場合は、いわゆるマウスの右クリックとして検出されて、アイコン1150に対応するアプリケーションプログラムのメニューが表示されたり、アプリケーションプログラムの情報が表示されたりしても良い。また、1本目の指のタッチが中指で行われた場合には、2本目の指のタッチが人差し指で行われた場合にマウスの左クリックとして検出され、2本目のタッチが薬指で行われた場合にマウスの右クリックとして検出されても良い。
指の種類の認識の結果が、ユーザにわかるようにするため、タッチパッド1110のタッチ部分の周囲を、認識した指の種類に応じた特定の色とする表示にしてもよい。そして、タッチ部分の周囲の色の表示が、カーソルとみなされても良い。これにより、指の種類の認識の誤りにより、誤った指示となる可能性を減らすことができる。
更に、カメラ1120で撮像された手1140の画像が、アイコン1150及びアイコン1160と重畳されてタッチパッド1110に表示されても良い。
次に、カメラにより視点を検出するが、図1などに示したサイドボタン140及び図4に示した決定ボタン440の代わりにタッチパッドを使用する例を説明する。図12Aは、タッチパッド110の一部を特別な領域とするスマートフォン100の例を示す図である。
スマートフォン100は、タッチパッド110、カメラ120、及びカメラ130が設けられている。カメラ120及びカメラ130については既に説明したとおりである。スマートフォン100は、サイドボタンとマイクが設けられていても良いが、ここでは使用されない。スマートフォン100は、タブレット端末400であっても良い。
サイドボタン140及び決定ボタン440の代わりにタッチパッド110を使用するために、サイドボタン140及び決定ボタン440の代わりとなる特別領域1210がタッチパッド110に設定される。特別領域1210は、スマートフォン100が片手で保持された場合に、例えば親指でタッチされる領域である。
ユーザが、スマートフォン100を片手で把持する場合、そのユーザの癖によってその把持する位置が異なり、そのユーザが右利きか左利きかによってもその把持する位置が異なる。そこで、図12Aに示すような特別領域1210−1から特別領域1210−6までに対して、1つの特別領域1210が選択される設定を、スマートフォン100の電源がオンされた後またはリセットされた後に受け付ける。
図12Aにおいて、例えば、特別領域1210−1、1210−3、1210−5は左手で把持された場合用であり、特別領域1210−2、1210−4、1210−6は右手で把持された場合用である。スマートフォン100を把持する手でタッチされる特別領域1210は、タッチパッド110の縁に接する領域であることが望ましい。
図12Bは、特別領域1210−3が選択される設定を受け付けた例である。視点による位置指定は、特別領域1210−3を除くタッチパッド110で有効とし、特別領域1210−3はタッチ専用とする。このため、特別領域1210−3にはアイコン1230は配置されない。
そして、既に説明したように、カメラ120とカメラ130の撮像画像に基づいてユーザの視点が特定され、カーソル210が表示される。視点位置であるカーソル210の位置は、アイコン1230−1からアイコン1230−8の上を移動可能である。
カーソル210が、アイコン1230−6の上に位置したところで、片手1220の親指により特別領域1210−3のタッチされたことが検出されると、アイコン1230−6に対応するアプリケーションが起動されたり、アプリケーションに指示が送られたりする。
なお、特別領域1210−3に「決定」や「タッチ」などを表す文字列または特別なアイコンが表示され、ユーザが特別領域であることを理解できるようにしても良い。
以上で説明した視点または1本目の指による第1の操作と、ボタンや音声による第2の操作などの複数の操作を検出することにより、操作の妥当性を確認し、ユーザの意図に即した動作を実現する。妥当性を確認するための操作は、以上で説明した操作に限定されるものではない。
例えば、カメラを使用しての操作の検出として、視点によるアイコン選択状態が数秒間継続したら、実行または決定にあたり、「よろしければ右目のみを3秒間閉じてください」といったメッセージをユーザに投げかけ、そのとおりの動作が検出されれば、実行または決定の動作に移行するようにしても良い。
また、ユーザがサングラスを装着しており、目以外の入力が必要な場合、例えば***の形で確認するため、「よろしければ、『お』を発音するときの口の形にしてください」といったメッセージをユーザに投げかけ、そのとおりの動作が検出されるか判定されても良い。
操作を検出するためのスマートフォン100或いはタブレット端末400のセンサとしては既に説明したとおりであるが、検出される操作は、入力条件として優先度を持たせても良い。例えば、
(1)視線、視点、或いは目の状況
(2)***の形
(3)音声
(4)スイッチ入力
(5)タッチパッドへのタッチ情報
に対して、予め優先度が設定され、任意に組み合わされても良い。
周辺環境に応じて優先度の高い入力条件または優先度の低い入力条件を、後で説明する入力条件管理部が選択する。例えば、周辺環境として暗い環境であると判定されると、カメラが使用される入力条件は選択されず、優先度の低いスイッチ入力とタッチパッドへのタッチ情報が選択されても良い。
図13は携帯端末810の第1のハードウェア構成の例を示す図である。携帯端末810は既に説明したとおりスマートフォン100或いはタブレット端末400である。カメラ部1301は、カメラ120、130かカメラ420、430などに対応し、タッチパッド表示部1308とタッチパッドセンス部1316は、タッチパッド110かタッチパッド410などに対応する。
マイク部1313は、マイク150かマイク490に対応し、スイッチ入力部1315
は、サイドボタン140か決定ボタン440などに対応する。なお、スマートフォン100本来の電話機能などのハードウェアは、本実施例の説明とは関係ないので省略している。また、アプリケーションプログラムの起動について特に説明する。
カメラ部1301は、2つ以上のカメラの撮像により得た画像情報を顔認識部1302へ出力する。顔認識部1302は、顔認識して、顔部分の特徴を抽出する。また、顔認識部1302は、顔までの距離を算出し、顔を正面に認識できない場合や目を認識できない場合、ユーザへメッセージを出すための動作をしても良い。
視点検出部1303は、目の部分の情報と顔までの距離を顔認識部1302から入力し、視点の位置を算出する。ここで、視点がタッチパッド表示部1308に向けられているかを判定しても良い。そして、視点は絶えず細かな動きを生じる性質があるため、ローパスフィルタ部1304は、細動情報をカットし、視点の情報を視点情報管理部1305へ出力する。
視点情報管理部1305は、タッチパッド表示部1308の画面上のどこに視点があるかを、カーソル表示1307へ出力し、タッチパッド表示部1308を介してユーザにカーソルを表示する。なお、既に説明したようにカーソルの代わりにアイコンのハイライト表示などであっても良い。
一方、視点情報と組みあわされる少なくとも1つ以上の入力としては、マイク部1313から入力され、音声認識部1314を経て解読される音声入力、サイドボタンなどのスイッチ入力部1315からのスイッチ入力、或いはタッチパッドセンス部1316から入力される手指のタッチ入力などがある。
これらの入力と、視点情報管理部1305からの視点入力とがそろうことで、入力条件管理部1309は、アプリケーションプログラム実行部1310へ、入力により特定されるアプリケーションプログラムを起動させる。入力条件管理部1309は、既に説明したとおり、複数の入力が、予め定められた条件を満たすと判定すると、アプリケーションプログラム実行部1310へ指示を出力する。
入力条件管理部1309は、アイコンの表示位置と、アイコンに対応するアプリケーションプログラムの識別情報との対応情報を有し、視点情報管理部1305からの視点入力に応じた識別情報をアプリケーションプログラム実行部1310へ出力しても良い。
あるいは、アプリケーションプログラム実行部1310が、アイコンの表示位置と、アイコンに対応するアプリケーションプログラムの識別情報との対応情報を有し、入力条件管理部1309は、予め定められた条件を満たすと判定すると、視点情報管理部1305からの視点の入力を、アプリケーションプログラム実行部1310へ転送しても良い。
入力条件管理部1309は、タッチパッド110かタッチパッド410などの領域と、アプリケーションプログラムへの指示との対応情報を有し、タッチパッドセンス部1316からのタッチ位置の入力に応じた指示をアプリケーションプログラム実行部1310へ出力しても良い。
入力条件管理部1309は、タッチパッド110かタッチパッド410などの領域として、特別領域1210の情報を複数有し、選択された特別領域1210−3の情報を有しても良く、アイコン1160の決定ボタンの領域を有しても良い。
以上の説明では、入力条件管理部1309を独立した制御部として表したが、アプリケ
ーションプログラム実行部1310の一部であっても良い。最終的にアプリケーションプログラム実行部1310によって、スピーカー部1311がユーザに音声で情報を伝達するか、或いは通信制御部1312に指令を送り通信させても良い。
なお、図7を用いて既に説明したように、カメラで撮像した目の情報と視点とには個人差があることから、キャリブレーション管理部1306は、カメラで撮像した目の情報と視点との関係を管理して、視点情報管理部1305へ出力し、視点情報管理部1305は、その関係に基づいて視点を特定する。
カメラ部1301から視点情報管理部1305までは、顔の代わりに指を認識し、指の位置と種類を特定しても良い。入力条件管理部1309は、視点情報管理部1305からの指の位置と種類の情報を入力としても良く、タッチパッドセンス部1316からの入力を視点情報管理部1305へ転送し、視点情報管理部1305にタッチ位置へカーソルを表示させても良い。
図14は携帯端末810の第2のハードウェア構成の例を示す図である。図13を用いて説明したハードウェアの各部はソフトウェアで実現してもよい。図14に示したハードウェア構成の例は、そのソフトウェアでの実現のためのハードウェア構成の例である。なお、図14に示した携帯端末810のハードウェア構成は、一般的なスマートフォンやタブレット端末のハードウェア構成であっても良い。
プロセッサ1401はメモリ1402に格納されたプログラムを実行し、図14に示した各部とデータをやり取りして、データを処理する。メモリ1402は例えばRAM(Random Access Memory)であり、プログラムとデータが格納される。
ストレージ1403は例えばフラッシュメモリであり、プログラムとデータが格納される。メモリ1402とストレージ1403との間で、プログラムとデータが転送されても良い。通信部1404は接続コード930による有線接続、或いは無線電話回線や無線LAN(Local Area Network)で通信する。
メモリ1402に格納されたアプリケーションプログラムを実行するプロセッサ1401の制御により、通信部1404は送受信する。また、メモリ1402あるいはストレージ1403に格納されるプログラムとデータは、通信部1404により受信されても良い。
入力部1405は、マイク1407などからの入力信号をデータとしてメモリ1402或いはストレージ1403へ格納する。マイク1407は、図1に示したマイク150或いは図4に示したマイク490であり、音声信号を入力する。カメラ1408とカメラ1409のそれぞれは、図1に示したカメラ120とカメラ130或いは図4に示したカメラ420とカメラ430であり、撮像した映像信号を入力する。
出力部1406は、メモリ1402或いはストレージ1403に格納されたデータを信号に変換し、スピーカー1411などへ出力する。タッチパッド1410は、図1に示したタッチパッド110或いは図4に示したタッチパッド410などであり、タッチを検出すると、そのタッチの情報を入力部1405へ出力し、出力部から入力した映像信号にしたがって画面を表示する。
図15は、図14に示した携帯端末810の処理の例を示す図であり、メモリ1402に格納されてプロセッサ1401が実行するプログラムのフローチャートの例である。携帯端末810の電源がオンされる、或いはスリープから解除されると、プロセッサ140
1は処理を開始する。
まず、プロセッサ1401はキャリブレーションが未済であるかを判定する(ステップ1501)。この判定には、例えば、ストレージ1403にキャリブレーションが未済であるか否かのフラグが格納され、そのフラグをプロセッサ1401が読み出して判定しても良い。携帯端末810が製造されたとき、及びリセットされたときには、フラグが未済に設定される。
プロセッサ1401は、ステップ1501において未済である判定した場合、キャリブレーションを実行し(ステップ1502)、未済でないと判定した場合、ステップ1502をスキップする。ステップ1502におけるキャリブレーションの処理内容は、図7と図8を用いて説明したとおりであり、携帯端末810のカメラ1408、1409が有効にされてユーザが撮像される。更にフラグが済に設定される。
プロセッサ1401は、待ち受け画面などとも呼ばれるホーム画面を表示する(ステップ1503)。ホーム画面は、図2に示したように、複数のアプリケーションプログラムそれぞれに対応したアイコンを含み、アイコンが操作されることにより、アプリケーションプログラムが起動される。この時点で、携帯端末810のカメラ部1301或いはカメラ1408、1409が有効にされていない場合は、有効にされる。
プロセッサ1401は、カメラ1408、1409を制御して撮像し、顔認識する(ステップ1504)。この顔認識では、カメラ1408、1409に向いた顔を認識するための処理を実行し、顔を認識した場合は、目の輪郭における黒目や虹彩の位置を認識する。
ステップ1504の顔を認識するための処理を実行した結果として、顔を正面に認識できた場合、顔が携帯端末810に向いているとみなして、プロセッサ1401はステップ1506へ進み、顔を認識できない場合または顔が横を向いていると認識できた場合、顔が携帯端末810に向いていないとみなして、プロセッサ1401は、ステップ1512へ進む。
ステップ1512でプロセッサ1401は、ユーザの注意を促すメッセージ或いはユーザに顔を向けさせるメッセージを出力する。このメッセージはスピーカー1411から出力されても良い。
ステップ1506でプロセッサ1401は、ステップ1504で認識された目の輪郭における黒目や虹彩の位置と、ステップ1502のキャリブレーションで記録された目の輪郭における黒目や虹彩の位置との関係から視点を算出する。カメラ1408とカメラ1409との視差から顔までの距離を算出し、視点の算出に利用しても良い。
プロセッサ1401は、算出された視点の細かな変動により誤検出しないように、ローパスフィルタを適用する(ステップ1507)。例えば、予め設定された時間間隔で撮像された画像から視点が算出され、予め設定された個数の視点が算出されると、それらの視点の位置が平均化されても良い。
プロセッサ1401は、ローパスフィルタの適用された視点に対応する位置へカーソルを表示する(ステップ1508)。視点に対応する位置が、ステップ1503で表示されたホーム画面のアイコンの位置と一致する場合、位置が一致したアイコンは、ハイライト表示されても良い。
プロセッサ1401は、視点により指定されたアイコンを選択する入力があるかを判定する(ステップ1509)。この選択の入力は、例えば図1ではサイドボタン140による入力である。入力が無いと判定されると、視点により指定されたアイコンは、ユーザが単に見ただけの可能性もあるため、プロセッサ1401はステップ1504へ戻る。
選択の入力が有ると判定されると、プロセッサ1401は、その選択の入力が入力条件を満たすかを判定する(ステップ1510)。この入力条件は、優先度のある入力条件として既に説明したとおりであり、予め設定される。例えばサイドボタン140による入力であっても、入力条件を満たさないと判定されると、プロセッサ1401はステップ1512へ進む。
ステップ1512でプロセッサ1401は、入力条件を満たしていない旨のメッセージ或いは入力が妥当でない旨のメッセージを出力する。このメッセージはスピーカー1411から出力されても良い。なお、ステップ1512は、ステップ1505の判定結果で実行しているか、ステップ1510の判定結果で実行しているかを判定しても良い。
ステップ1510で入力条件を満たすと判定されると、プロセッサ1401は、視点により指定されたアイコンに対応するアプリケーションプログラムを実行する(ステップ1511)。アプリケーションプログラムの実行結果としてのメッセージが、スピーカー1411から出力されても良いし、実行によるエラーのメッセージがスピーカー1411から出力されても良い。
プロセッサ1401は、ステップ1511でアプリケーションプログラムが実行された後、またはステップ1512でメッセージが出力された後、未操作が、予め設定された時間経過したかを判定する。予め設定された時間経過したと判定すると、プロセッサ1401は、携帯端末810を例えばスリープ状態に移行させ、フローチャートの処理を終了する。
予め設定された時間が経過する前に操作されたと判定すると、プロセッサ1401はステップ1504へ戻る。なお、ステップ1513の未操作の判定は、独立した判定に限定されるものではなく、ステップ1506或いはステップ1509と連携しても良い。
なお、図15を用いた以上の説明では、視点を使用する例を説明したが、既に説明したように他の入力条件であっても良く、図13を用いて説明した各部の動作をプログラムで実現しても良い。
以上で説明したように、携帯端末は、ユーザの操作による入力に対して、複数の入力条件を判定して動作するため、ユーザの誤操作により誤って動作する可能性を低減できる。
スマートフォンやタブレット端末などの携帯端末に適用でき、ユーザに操作されるコンピュータにも適用できる。