(57)【要約】      （修正有）【課題】指文字等の画像認識の精度を向上させる学習装置、認識装置、学習プログラム及び認識プログラムを提供する。【解決手段】学習装置１１において、予め設定されたＣＧキャラクタモデルの形状、姿勢、及び動作のうち、少なくとも１つの情報を含むモーションデータとを用いて、ＣＧキャラクタモデルに対応する人物のＣＧ距離画像を生成する距離画像生成手段２４と、モーションデータに含まれるＣＧキャラクタモデルの位置情報に基づき、距離画像生成手段２４により得られるＣＧ距離画像からＣＧキャラクタモデルの所定の領域を抽出する領域抽出手段２５と、領域抽出手段２５により得られる所定の領域に含まれる濃淡情報を入力とし、入力した該濃淡情報から所定の領域に対する正解データを出力するニューラルネットワーク学習手段２６と、を有する。【選択図】図１
2017037424.tif 000002
【特許請求の範囲】
【請求項１】
予め設定されたＣＧキャラクタモデルの形状、姿勢、及び動作のうち、少なくとも１つの情報を含むモーションデータとを用いて、前記ＣＧキャラクタモデルに対応する人物のＣＧ距離画像を生成する距離画像生成手段と、
前記モーションデータに含まれるＣＧキャラクタモデルの位置情報に基づき、前記距離画像生成手段により得られるＣＧ距離画像から前記ＣＧキャラクタモデルの所定の領域を抽出する領域抽出手段と、
前記領域抽出手段により得られる所定の領域に含まれる濃淡情報を入力とし、入力した該濃淡情報から前記所定の領域に対する正解データを出力するニューラルネットワークを学習する学習手段とを有することを特徴とする学習装置。
【請求項２】
前記距離画像生成手段は、
前記モーションデータに含まれる前記ＣＧキャラクタモデルの関節部分の位置又は角度に関するパラメータを変更することで、複数の異なる前記ＣＧ距離画像を生成することを特徴とする請求項１に記載の学習装置。
【請求項３】
前記学習手段は、
前記所定の領域として手指領域を含むＣＧ距離画像の各画素の濃淡情報を入力とし、入力した該濃淡情報から前記所定の領域に対する指文字の正解データを出力するニューラルネットワークを学習することを特徴とする請求項１又は２に記載の学習装置。
【請求項４】
請求項１乃至３の何れか１項に記載の学習装置から得られるニューラルネットワークを用いて、前記所定の領域の認識を行う認識装置において、
距離画像カメラから撮影された人物を含む距離画像を取得する画像取得手段と、
前記画像取得手段により得られる距離画像から所定の領域を抽出する領域抽出手段と、
前記領域抽出手段により得られる所定の領域に含まれる各画素の濃淡情報を、前記ニューラルネットワークに入力して前記所定の領域に対応する指文字の認識を行う認識手段とを有することを特徴とする認識装置。
【請求項５】
前記領域抽出手段により抽出された所定の領域の距離画像に対する濃度変換及び画像サイズの調整を行う画像処理手段とを有することを特徴とする請求項４に記載の認識装置。
【請求項６】
コンピュータを、請求項１乃至３の何れか１項に記載の学習装置として機能させるための学習プログラム。
【請求項７】
コンピュータを、請求項４又は５に記載の認識装置として機能させるための認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、認識装置、学習プログラム、及び認識プログラムに関し、特に、指文字等の画像認識の精度を向上させるための学習装置、認識装置、学習プログラム、及び認識プログラムに関する。
【背景技術】
【０００２】
従来では、カメラ等の撮像手段で被写体である手等の物体を撮影し、その撮影画像に含まれる手の形状から指文字を認識する手法が存在する（例えば、非特許文献１〜３参照）。
【０００３】
非特許文献１の手法では、所定の指や手首に所定の色を付けた手袋を着用し、その手袋を着用した手を撮影することで、指位置を高精度に認識する。また、非特許文献２の手法では、多数の距離画像を学習データとして入力し、入力した学習データを主成分分析して指文字を認識する。また、非特許文献３の手法では、距離画像カメラで撮影した距離画像を用いて、距離による手領域の抽出したり、ＨＯＧ（Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ）特徴等を用いることにより、指文字を認識する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】菅谷隆浩他、「可視光カメラとカラー手袋を用いた手話認識手法に関する基本検討」、ヒューマンインタフェースシンポジウム２０１４．
【非特許文献２】中島文香他、「ｋｉｎｅｃｔ（登録商標）を用いた距離画像による指文字認識システム」、一般社団法人電子情報通信学会、ＨＣＧシンポジウム２０１４．
【非特許文献３】井上誠喜他、「距離情報を用いた手話単語モーション認識に関する一検討」、社団法人映像情報メディア学会技術報告、ＩＴＥ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  Ｖｏｌ．３６，Ｎｏ．９、２０１２年２月２１日．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した非特許文献１の手法では、予め所定の色の付いた手袋用意したり、指文字認識時に着用する必要がある。また、ユーザの手のサイズに合った手袋の用意や、色情報と指情報とを対応付けた情報の管理等が必要となるため、非常に手間がかかってしまう。
【０００６】
また、非特許文献２の手法では、距離画像を用いて手指領域を抽出しているが、学習用画像の収集が問題となる。例えば、カラー画像であっても、距離画像であっても、大量の画像を撮影するための作業や労力が大きい。例えば、手の形状は、操作する人だけでなく、手の向きや指の僅かな曲げの違いで見た目が大きく変化する。また、特定の人や特定の条件で作成された画像群だけでは、汎用性やロバスト性に問題を生じる。
【０００７】
また、非特許文献３の手法は、ＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）技術を使うことにより、教師用の画像撮影が不要で簡便に指文字認識を行えるが、手の向きや指の曲げ具合等が管理者毎に設定が異なるため、指文字認識の精度に大きく影響してしまう。
【０００８】
本発明は、上述した問題点に鑑みなされたものであり、指文字等の画像認識の精度を向上させるための学習装置、認識装置、学習プログラム、及び認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
【００１０】
一つの態様として、本発明における学習装置は、予め設定されたＣＧキャラクタモデルの形状、姿勢、及び動作のうち、少なくとも１つの情報を含むモーションデータとを用いて、前記ＣＧキャラクタモデルに対応する人物のＣＧ距離画像を生成する距離画像生成手段と、前記モーションデータに含まれるＣＧキャラクタモデルの位置情報に基づき、前記距離画像生成手段により得られるＣＧ距離画像から前記ＣＧキャラクタモデルの所定の領域を抽出する領域抽出手段と、前記領域抽出手段により得られる所定の領域に含まれる濃淡情報を入力とし、入力した該濃淡情報から前記所定の領域に対する正解データを出力するニューラルネットワークを学習する学習手段とを有する。
【００１１】
また、一つの態様として、本発明における認識装置は、上述した学習装置から得られるニューラルネットワークを用いて、前記所定の領域の認識を行う認識装置において、距離画像カメラから撮影された人物を含む距離画像を取得する画像取得手段と、前記画像取得手段により得られる距離画像から所定の領域を抽出する領域抽出手段と、前記領域抽出手段により得られる所定の領域に含まれる各画素の濃淡情報を、前記ニューラルネットワークに入力して前記所定の領域に対応する指文字の認識を行う認識手段とを有する。
【００１２】
また、一つの態様として、本発明における学習プログラムは、コンピュータを、上述した学習装置として機能させる。また、一つの態様として、本発明における認識プログラムは、コンピュータを、上述した認識装置として機能させる。
【発明の効果】
【００１３】
本発明によれば、画像認識の精度を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態における指文字認識システムの概略構成の一例を示す図である。
【図２】本実施形態における指文字認識処理の一例を示すフローチャートである。
【図３】学習処理の一例を示すフローチャートである。
【図４】手指画像取得処理の一例を示すフローチャートである。
【図５】本実施形態における指文字認識処理の具体例を説明するための図である。
【図６】モーションデータの一例を示す図（その１）である。
【図７】モーションデータの一例を示す図（その２）である。
【図８】ニューラルネットワークを用いた文字認識処理の具体例を説明するための図である。
【発明を実施するための形態】
【００１５】
以下に、本発明における学習装置、認識装置、学習プログラム、及び認識プログラムを好適に実施した形態について、図面を用いて詳細に説明する。
【００１６】
＜指文字認識システムの概略構成例＞
まず本実施形態における指文字認識システムの概略構成例について、図を用いて説明する。図１は、本実施形態における指文字認識システムの概略構成の一例を示す図である。図１の例に示す指文字認識システム１０は、学習装置１１と、認識装置１２とを有し、学習装置１１と、認識装置１２とは、例えばインターネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信ネットワーク１３を介してデータの送受信が可能な状態で接続されている。
【００１７】
指文字認識システム１０は、例えば被写体の手指を撮影した画像から、画像処理を使って手話等の指文字の認識を行う。また、指文字認識システム１０では、対象者（被写体）に器具等を装着する必要なく、簡便な構成で手指モーション（指文字）の認識を実現する。
【００１８】
学習装置１１は、予め認識対象の物体（例えば、人物の手等）の形状、姿勢、及び動作のうち、少なくとも１つの情報を含むモーションデータを登録しておき、登録されたモーションデータのパラメータ等を変更することにより、多量のＣＧ距離画像を生成する。また、本発明では、生成したＣＧ距離画像を用いて学習したニューラルネットワークを用意する。ニューラルネットワークは、入力値から出力値を予測することに使用されるものであり、予め入力値の実績値と出力値の実績値とを学習しておくことで、新たな入力値に対して、出力値を推定することができる。本実施形態では、例えば、距離画像を入力値とし、指文字を出力値とするニューラルネットワークを用意するが、これに限定されるものではない。また、本実施形態では、上述した入力値と出力値とを関連付けた他の学習モデルやデータベースを有していてもよい。
【００１９】
また、認識装置１２は、学習装置１１で学習されたニューラルネットワークを、通信ネットワーク１３を介して取得する。また、認識装置１２は、距離画像カメラ等で撮影された距離画像を、取得したニューラルネットワークに入力して指文字認識を行う。
【００２０】
これにより、対象者（被写体）に特別の器具を装着させることなく、簡便かつ高精度に指文字等の手指モーションの認識を行う。
【００２１】
なお、図１に示す指文字認識システム１０では、学習装置１１と、認識装置１２とが別々に設けられているが、これに限定されるものではなく、一体の装置構成（例えば、指文字認識装置）として設けられていてもよい。また、図１に示す指文字認識システム１０は、学習装置１１と、認識装置１２とが１対１の関係で構成されているが、これに限定されるものではなく、例えばＭ対Ｎ（Ｍ，Ｎは、１以上の整数）で構成されていてもよい。次に、上述した学習装置１１及び認識装置１２の具体的な機能構成例について、説明する。
【００２２】
＜学習装置１１の機能構成例＞
学習装置１１は、入力手段２１と、出力手段２２と、モーションデータ管理手段２３と、距離画像生成手段２４と、領域抽出手段（学習用領域抽出手段）２５と、学習手段の一例としてのニューラルネットワーク学習手段２６と、記憶手段２７と、送受信手段２８とを有する。
【００２３】
入力手段２１は、本実施形態における指文字認識用のニューラルネットワークの学習処理を行うための各種入力（例えば、学習処理の開始や終了、各種設定情報の入力）等を受け付ける。入力手段２１は、例えば学習装置１１がＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の汎用のコンピュータであれば、キーボードやマウス等のポインティングデバイスである。また、学習装置１１が、タブレット端末やスマートフォン等であれば、タッチパネル等である。また、入力手段２１は、例えば音声等により上述した入力が可能なマイク等の音声入力デバイスであってもよい。
【００２４】
出力手段２２は、入力手段２１により入力された内容や、入力内容に基づいて実行された内容等の出力を行う。出力手段２２は、例えばディスプレイやスピーカ等である。出力手段２２は、入力手段２１と一体型のタッチパネルであってもよい。
【００２５】
モーションデータ管理手段２３は、予め設定されたＣＧキャラクタモデルと、そのＣＧキャラクタモデルの各関節部分等を動作させるためのモーションデータとを記憶手段２７に記憶して管理する。なお、モーションデータは、モーション対象のＣＧキャラクタの体全体に関する形状、姿勢、動作等を示すモーションキャプチャデータであってもよく、体の一部（例えば手や指等）に関する形状、姿勢、動作等を示すモーションキャプチャデータであってもよい。また、ＣＧキャラクタは、撮影するカメラ（撮像手段）の画角等によっても見え方が変わるため、モーションデータ内に、そのＣＧキャラクタを撮影するカメラの画角等のカメラデータを含めてもよい。
【００２６】
距離画像生成手段２４は、予め記憶手段２７に記憶されたＣＧキャラクタモデルに対応するモーションデータに基づいて、ＣＧによる人物の距離画像（ＣＧ距離画像）を生成する。なお、距離画像生成手段２４は、全身のＣＧキャラクタモデルに対するＣＧ距離画像でもよく、手指領域を含む一部の領域（例えば、上半身等）のＣＧ距離画像のみを生成してもよい。
【００２７】
また、距離画像生成手段２４は、モーションデータに含まれるパラメータ等を変更することで、複数の距離画像を生成する。例えば、距離画像生成手段２４は、カメラ方向に対してＣＧキャラクタモデルの手首の関節部分の角度又は位置に関するパラメータを、所定角度回転させたり位置を変更させた手指領域を生成する。また、距離画像生成手段２４は、所定の指の関節部分の角度又は位置に関するパラメータを所定角度曲げたり、位置を変更させた複数の手指領域を生成してもよい。また、距離画像生成手段２４は、上述したカメラパラメータを変更させた複数の手指領域を生成してもよい。これにより、複数の異なるＣＧ距離画像を容易に生成することができる。
【００２８】
領域抽出手段２５は、モーションデータに含まれるＣＧキャラクタモデルの位置情報に基づき、閾値処理や位置（座標）判定処理を行い、人物のＣＧ距離画像からＣＧキャラクタモデルの所定の領域（例えば、手指領域）を抽出する。なお、領域抽出手段２５は、所定の画像サイズの手指領域画像を抽出する。これは、例えば認識装置１２等で実際に距離画像カメラを用いて得られる被写体の指文字の認識画像と同じ大きさにすることで、指文字等の認識精度を向上させるためである。
【００２９】
ニューラルネットワーク学習手段２６は、複数のＣＧ手指領域の距離画像から抽出される手指領域の情報を学習データとして学習し、ニューラルネットワークを構築する。なお、ＣＧの手指領域の距離画像は、例えば、１２８×１２８画素等のように所定の画素サイズに統一することが好ましいが、サイズの大きさ等については、これに限定されるものではない。
【００３０】
記憶手段２７は、本実施形態における学習処理において、必要な各種情報を記憶する。具体的には、記憶手段２７は、本実施形態における学習処理に必要なデータ（例えば、ＣＧキャラクタモデル、モーションデータ等）や、学習処理を実行するための各種プログラム（アプリケーション、ソフトウェア等）、各種設定情報等を記憶する。また、記憶手段２７は、学習したニューラルネットワーク、実行経過や実行結果（履歴情報）、エラー情報、ユーザ情報等を記憶する。記憶手段２７に記憶される情報は、例えば通信ネットワーク１３を介して接続される他の装置に記憶させてもよい。
【００３１】
送受信手段２８は、通信ネットワーク１３を介して認識装置１２等の外部装置とデータの送受信を行うための通信手段である。送受信手段２８は、上述したニューラルネットワークや、学習処理を実行するための実行プログラムや実行結果等の情報を、通信ネットワーク１３を介して外部装置から取得したり、外部装置に出力してもよい。
【００３２】
上述したように学習装置１１は、予め高品質に取得したモーションデータを用いて人物距離画像を生成した後、手指領域を抽出する。また、学習装置１１は、上述した複数の教師用距離画像を用いてニューラルネットワークを学習する。また、学習装置１１は、例えば手の向きや指の曲げる角度や各指間の広がり幅の違う教師用距離画像をＣＧを用いて学習する。ＣＧを用いることで、複数の教師用距離画像を容易に生成することができる。
【００３３】
＜認識装置１２の機能構成例＞
認識装置１２は、入力手段３１と、出力手段３２と、画像取得手段３３と、領域抽出手段（認識用領域抽出手段）３４と、画像処理手段３５と、認識手段の一例としての指文字認識手段３６と、記憶手段３７と、送受信手段３８とを有する。
【００３４】
入力手段３１は、本実施形態における指文字認識処理を行うための各種入力（例えば、認識処理の開始や終了、各種設定情報の入力）等を受け付ける。入力手段３１は、例えば認識装置１２がＰＣ等の汎用のコンピュータであれば、キーボードやマウス等のポインティングデバイスである。また、認識装置１２が、タブレット端末やスマートフォン等であれば、タッチパネル等である。また、入力手段３１は、例えば音声等により上述した入力が可能なマイク等の音声入力デバイスであってもよい。
【００３５】
出力手段３２は、入力手段３１により入力された内容や、入力内容に基づいて実行された内容等の出力を行う。出力手段３２は、例えばディスプレイやスピーカ等である。
【００３６】
画像取得手段３３は、距離画像カメラ等の撮像手段により撮影された実際の人物（被写体）の距離画像を取得する。画像取得手段３３は、距離画像カメラ等の撮像手段であってもよく、外部の撮像手段により撮影された距離画像を通信ネットワーク１３を用いて取得してもよい。
【００３７】
領域抽出手段３４は、画像取得手段３３により取得した人物距離画像に対して、ローパスフィルタやメディアンフィルタ等による画像中のノイズを除去するノイズ処理を行う。また、領域抽出手段３４は、距離画像カメラから得られる人物距離画像に含まれる各部の距離情報（例えば、距離に対応する濃淡情報等）に基づき、人物距離画像から手指部分の画像を取得する。なお、領域抽出手段３４は、予め所定の距離に対応する闘値を設定しておき、その閾値による手前の距離（カメラに近い距離）部分を抽出する。また、領域抽出手段３４は、手指部分の画像に対して、学習装置１１の領域抽出手段２５で抽出した画像サイズ（例えば、１２８×１２８画素等）に合わせて画像の調整を行い、手指領域画像を抽出する。
【００３８】
また、領域抽出手段３４は、学習装置１１においてＣＧ距離画像からＣＧキャラクタモデルの手指領域を抽出した処理と同じ処理を行って、人物距離画像から手指領域を抽出することで、それぞれの手指領域の類似性を高めることができ、例えば指文字等の認識精度を向上させることができる。
【００３９】
画像処理手段３５は、領域抽出手段３４により得られた手指画像に対して明るさレベルの補正を行う。なお、画像処理手段３５は、例えば学習装置１１におけるＣＧ距離画像と同じ明るさになるように明るさレベルを補正したり、領域抽出手段３４により得られた複数の手指画像間での明るさの違いをなくすことで、指文字認識の精度を向上させることができる。
【００４０】
指文字認識手段３６は、送受信手段３８により通信ネットワーク１３を介して、学習装置１１から取得した学習済みのニューラルネットワークに対して、画像処理手段３５により得られる距離画像の情報を入力し、指文字等の認識結果を取得する。
【００４１】
記憶手段３７は、本実施形態における認識処理において、必要な各種情報を記憶する。具体的には、記憶手段３７は、学習装置１１から得られる学習データ（例えば、ニューラルネットワーク等）や認識処理を実行するための各種プログラム（アプリケーション、ソフトウェア等）、各種設定情報等を記憶する。また、記憶手段３７は、実行経過や実行結果（履歴情報）、エラー情報、ユーザ情報等を記憶してもよい。記憶手段３７に記憶される情報は、例えば通信ネットワーク１３を介して接続される他の装置等から取得してもよい。
【００４２】
送受信手段３８は、通信ネットワーク１３を介して認識装置１２等の外部装置とデータの送受信を行うための通信手段である。送受信手段３８は、上述したニューラルネットワークや、学習処理を実行するための実行プログラムや実行結果等の情報を、通信ネットワーク１３を介して外部装置から取得したり、外部装置に出力してもよい。
【００４３】
上述したように認識装置は、ＣＧを用いた指文字認識用（教師用距離画像）のニューラルネットワークを用いて、実際に距離画像カメラを用いて得られる被写体の指文字の認識を高精度に行うことができる。
【００４４】
＜指文字認識処理＞
次に、本実施形態の指文字認識システム１０における指文字認識処理の一例について、フローチャートを用いて説明する。図２は、本実施形態における指文字認識処理の一例を示すフローチャートである。図２の例において、学習装置１１は、予め蓄積されたＣＧキャラクタモデルと、そのモデルの形状、姿勢、及び動作等のうち、少なくとも１つの情報を含むモーションデータとを用いた学習処理を行う（Ｓ０１）。Ｓ０１の学習処理の詳細については、後述する。
【００４５】
次に、認識装置１２は、距離画像カメラ等を用いて実際に撮影された人物（被写体）の距離画像から手指画像取得処理を行う（Ｓ０２）。Ｓ０２の手指画像取得処理の詳細については、後述する。なお、上述したＳ０１の学習処理とＳ０２以降の認識処理とは、連続して行う必要はなく、Ｓ０２以降の処理の実行時に、Ｓ０１の処理結果のニューラルネットワークが使用できればよい。
【００４６】
次に、認識装置１２は、Ｓ０２の処理で得られた手指画像から指文字認識を行い（Ｓ０３）、その認識結果を出力する（Ｓ０４）。次に、認識装置１２は、処理を終了するか否かを判断し（Ｓ０５）、終了しない場合（Ｓ０５において、ＮＯ）、Ｓ０２の処理に戻る。また、Ｓ０５の処理において、ユーザ等からの終了動作や、取得した全ての手指画像に対して判定が終了した場合（Ｓ０５において、ＹＥＳ）、処理を終了する。
【００４７】
＜Ｓ０１：学習処理＞
図３は、学習処理の一例を示すフローチャートである。なお、図３（Ａ）は、学習処理のフローチャートを示し、図３（Ｂ）は、処理の一部を補足するための画像例である。
【００４８】
図３の例において、学習装置１１は、記憶手段２７等からＣＧキャラクタモデルに対応するモーションデータを取得する（Ｓ１１）。次に、学習装置１１は、モーションデータを変更し（Ｓ１２）、ＣＧ距離画像を生成する（Ｓ１３）。Ｓ１２及びＳ１３の処理では、例えばモーションデータ管理手段２３で予め管理されているモーションデータを用いて、ＣＧキャラクタモデルに対する人物距離画像（ＣＧ距離画像）を生成する。例えば、通常のモーションデータは、標準の「気をつけ」の姿勢から指文字動作を行い、また標準の姿勢に戻る一連の動きを収録している。そこで、本実施形態では、そのモーションデータに含まれる関節の動き情報から指文字動作時のタイミングを判定し、その指文字動作時におけるＣＧキャラクタモデルの全身や上半身等の距離画像（図３（Ｂ）に示すＣＧ距離画像４１）を生成する。
【００４９】
また、ＣＧキャラクタモデルは、骨格及び骨格の動きに従って滑らかに変形する皮膚情報を有する。また、モーションデータは、各関節（ジョイント）の角度データが記録されている。骨格は、各関節位置と関節角度とを持ち、モーションデータに従って関節角度が変化し、骨格が回転する。
【００５０】
そこで、本実施形態では、例えば右手首（ＲｉｇｈｔＷｒｉｓｔ）のジョイント（関節）部分のＸ軸周りの回転を、例えば＋５度ずつ変更した距離画像を生成する。この変更により、手指領域の距離画像の見た目が変化する。
【００５１】
なお、上述の例では、ＣＧキャラクタのジョイントのＸ軸を基準に回転させたが、Ｙ軸又はＺ軸を基準にしてもよく、ＸＹＺ軸のうち複数の軸方向に回転させてもよい。また、上述の例では、ＣＧキャラクタのジョイントの角度を変更したが、これに限定されるものではなく、例えば指の曲げ具合（曲げ角度）や各指間の広がり幅等を変更してもよい。距離画像生成手段２４は、このような変更を手首や指の関節のパラメータを変える処理を複数回行い、複数のＣＧ距離画像を生成する。
【００５２】
また、距離画像生成手段２４は、生成したＣＧ距離画像を２次元的に歪ませてもよい。例えば、距離画像生成手段２４は、画像中の手指領域に対し、輝度の変更、回転、拡大／縮小、及び平行移動のうち、少なくとも１つをランダムに行ったり、各画素について、画素位置に揺らぎを与えたりすることで、歪みを伴うＣＧ距離画像を生成してもよい。ここで、処理前後の画素の位置を（ｘ，ｙ）、（ｘ'，ｙ'）とすると、以下の式を用いて歪みを与えることができるが、これに限定されるものではない。
（ｘ'，ｙ'）＝（ｘ＋α＊ｒａｎｄｏｍ（０，１），ｙ＋α＊ｒａｎｄｏｍ（０，１））
ここで、αは定数を示し、ｒａｎｄｏｍは、乱数を発生する関数を示す。
【００５３】
次に、領域抽出手段２５は、手指部分の領域を生成する。一般に距離画像では、手前が暗く、奥に行くほど明るくなる特徴がある。例えば、手話の動作（モーション）では、手指部分は身体の前にある。そのため、手指部分は、周囲の明るさと比較して比較的暗い領域となる。そこで、領域抽出手段２５は、予め所定の距離に対応する闘値を設定しておき、その閾値による手前の距離（カメラに近い距離）部分の切り出しを行う（Ｓ１４）。例えば、図３（Ｂ）に示すＣＧキャラクタモデルを撮影したＣＧ距離画像４１において、例えば疑似的にカメラから１ｍの距離にＣＧキャラクタモデルを立たせて、その位置から手話を行った場合、手指部分はＣＧキャラクタモデルの体より前に出る。そのため、領域抽出手段２５は、１ｍ未満にある物体を切り出し、切り出した領域を手指部分として抽出する（Ｓ１５）。なお、手指部分の抽出手法については、これに限定されるものではない。
【００５４】
なお、Ｓ１５の処理では、例えば手指領域が画像中央であり、且つ画像の上辺に手指領域の端が接するようトリミング処理（手指領域の抽出）を行い、図３（Ｂ）の例に示す手指領域画像４２を抽出する。なお、領域抽出手段２５は、手指領域画像４２において、手指領域が画像の中央になるように配置したり、画像の上辺に手指領域の端部が接するように配置してもよい。上述した手指領域の抽出は、例えばパラメータ等により指や手首の各関節（ジョイント）を変えながら所定数になるまで行う。また、異なる指文字形状についても同様の処理を行う。
【００５５】
次に、ニューラルネットワーク学習手段２６は、Ｓ１５の処理で得られた手指領域の抽出結果を用いてニューラルネットワークの学習を行う（Ｓ１６）。学習したニューラルネットワークは、例えば記憶手段２７に記憶されたり、認識装置１２に出力される。なお、モーションデータで得られる手指の距離画像は、例えば所定の指文字形状がなされた正解データである。したがって、ニューラルネットワークも指文字の認識結果が出力可能なニューラルネットワークが構築されることになる。
【００５６】
ここで、処理を終了するか否かを判断し（Ｓ１７）、処理を終了しない場合（Ｓ１７において、ＮＯ）、Ｓ１１の処理に戻り処理を継続する。この場合の処理は、Ｓ１１により新たなモーションデータを取得して上述したニューラルネットワークの学習を行うが、これに限定されるものではない。また、Ｓ１７の処理において、ユーザ指示等により処理を終了する場合（Ｓ１７において、ＹＥＳ）、学習処理を終了する。
【００５７】
これにより、本実施形態では、１つのＣＧモーションデータから、同一の指文字に対して、カメラ方向を基準にして、指の位置や角度等の見え方の異なる複数の手指領域を抽出することができる。
【００５８】
＜Ｓ０２：手指画像取得処理の一例＞
次に、上述したＳ０２の手指画像取得処理の一例について、フローチャートを用いて説明する。図４は、手指画像取得処理の一例を示すフローチャートである。なお、図４（Ａ）は、手指画像取得処理のフローチャートを示し、図４（Ｂ）は、処理の一部を補足するための画像例である。
【００５９】
図４の例において、認識装置１２は、画像取得手段３３により、距離画像カメラによる実際の人物距離画像を取得し（Ｓ２１）、取得した画像に対するノイズ除去を行う（Ｓ２２）。ここで、Ｓ２１の処理で取得した人物距離画像は、学習処理時のＣＧとは異なり、距離画像カメラを使った実際の撮影により行う。そのため、画像内には、画素の一部にノイズ等が含んでいる場合がある。そこで、距離画像カメラにより得られた人物距離画像（例えば、図４（Ｂ）に示す人物距離画像５１）に対し、Ｓ２２のノイズ除去処理を行う。Ｓ２２の処理では、一般的なローパスフィルタやメディアンフィルタ等によりノイズ除去を行うことができるが、これに限定されるものではない。
【００６０】
次に、領域抽出手段３４は、上述した学習処理で行った処理（例えば、Ｓ１４及びＳ１５の処理）と同様に、Ｓ２２の処理で得られた画像に対して、カメラからの距離等に基づく同一の閾値等による領域の切り出しを行い（Ｓ２３）、切り出した領域から手指領域（例えば、図４（Ｂ）に示す手指領域５２）を抽出する（Ｓ２４）。なお、Ｓ２４の処理では、手指領域の大きさが異なる可能性があるため、特定の指文字、例えば全ての指を伸ばす「て」の指文字で大きさが合うようにサイズ調整を行う。
【００６１】
次に、画像処理手段３５は、学習装置１１におけるニューラルネットワークの学習時に入力したＣＧ距離画像と同じ明るさ（濃淡）になるように濃度変換処理を行う（Ｓ２５）。Ｓ２５の処理において、画像処理手段３５は、例えば予め手指領域の明るさの閾値を設定しておき、その明るさの閾値の範囲内になるように濃度を調整して手指領域（例えば、図４（Ｂ）に示す手指領域５３）を取得するが、これに限定されるものではない。次に、画像処理手段３５は、得られた手指画像を出力する（Ｓ２６）。
【００６２】
＜本実施形態における指文字認識の具体例＞
次に、本実施形態における指文字認識の具体例について、図を用いて説明する。図５は、本実施形態における指文字認識処理の具体例を説明するための図である。本実施形態における指文字認識処理は、まず、手指部分を対象に高品質に得られた手話に対応する指文字のモーションデータを用いて生成したＣＧ距離画像を教師画像（教師用データ）としてニューラルネットワークを学習する。
【００６３】
本実施形態では、学習装置１１が、図５に示すようにＣＧキャラクタモデル６１と、ＣＧキャラクタモデル６１に対応するモーションデータ６２とを用いてニューラルネットワーク学習６３を行う。なお、学習に用いられるＣＧキャラクタモデル６１は、一人に限定されるものではなく複数人でもよい。
【００６４】
図５の（Ａ）は、ＣＧキャラクタ６１ａの表面データ例を示し、図５の（Ｂ）は、（Ａ）のＣＧキャラクタ６１ａに対応する頂点とＣＧキャラクタの骨との関係を示している。
【００６５】
ＣＧキャラクタ６１ａは、図５の（Ｂ）に示すようにポリゴン６１ｂの集合で表される。なお、ポリゴン６１ｂは、一例として四角形の集合として表されているが、これに限定されるものではなく、三角形でもよい。また、各四角形は、４つの頂点から構成され、それらの頂点は、図５の（Ｂ）のように表すことができる。
【００６６】
例えば、ＣＧキャラクタ６１ａは、図５の（Ｂ）に示すように、体の中心にボーン（骨格）６１ｃがあり、そのボーン６１ｃが回転し、それに応じて頂点が移動することにより、姿勢、動作（モーション）等が生成される。
【００６７】
なお、ＣＧキャラクタ６１ａの形状、姿勢、動作は、例えばモーションキャプチャと呼ばれる技術を利用することができる。モーションキャプチャでは、実際の人の動きを複数のカメラを使って取得し、その取得したデータや人体の移動の軌跡から各ボーンの回転量を取得する。つまり、ＣＧキャラクタ６１ａを自然に動作させるために、ＣＧキャラクタ６１ａのボーン６１ｃの動きを基準とし、そのボーン６１ｃの動きに合わせて図５の（Ａ）に示す皮膚表面の動きを制御することで、滑らかで自然な動きを実現させている。
【００６８】
なお、図５の（Ａ）に示すような表面データの貼り付けは、専用のスキニング手法やその編集ツール等を用いて、ＣＧキャラクタの動作の生成において、例えばＣＧキャラクタ６１ａのボーン６１ｃ等に対して、皮膚や衣服との関係付け（スキニング）等が行われる。
【００６９】
ここで、図６、図７は、モーションデータの一例を示す図（その１，その２）である。なお、図６，図７の例では、説明の便宜上、行番号（１）〜（７４）を付して説明している。また、図６，図７の例では、１つの手話単語に対するＢＶＨファイルの一例を示しているが、使用できるファイル形式は、これに限定されるものではない。。本実施形態では、手話単語毎に対応するＢＶＨファイルが存在する。
【００７０】
ここで、ＢＶＨファイル形式とは、Ｂｉｏｖｉｓｉｏｎ社が提唱したモーションデータのファイルフォーマットである。ＢＶＨファイルは、テキスト形式で記述することができる。また、ＸＹＺ各軸の扱い（例えば、どの軸が鉛直方向に対応するか等）については、任意に設定することができる。また、ＢＶＨファイルは、関節ノードに関する情報を記述し、その後に関節回転量を記述する。関節回転量は、オイラー角で記述する。
【００７１】
また、ＢＶＨファイルは、例えば、ＣＧキャラクタのスケルトン階層構造を記述するＨＩＥＲＡＲＣＨＹ部（（１）〜（６８）行目）と、動作データを記述するＭＯＴＩＯＮ部（（６９）〜（７４）行目）の２つの部から構成される。
【００７２】
図６の例において、最初の部分「ＲＯＯＴ  Ｈｉｐｓ」（（２）行目）で、ＣＧキャラクタの大本となる身体のパーツがＨｉｐｓという名前で定義される。その２行下のＯＦＦＳＥＴ（（４）行目）で、Ｈｉｐｓの位置を座標（絶対座標）で定義する。その次の行（（５）行目）で、Ｈｉｐｓは、６つのパラメータを持つことを表している（ＣＨＡＮＮＥＬＳ  ６）。ここでは、三次元（Ｘ，Ｙ，Ｚ）方向の絶対位置情報（Ｘｐｏｓｉｔｉｏｎ，Ｙｐｏｓｉｔｉｏｎ，Ｚｐｏｓｉｔｉｏｎ）と、それぞれの回転角情報（曲がり角度）（Ｘｒｏｔａｔｉｏｎ，Ｙｒｏｔａｔｉｏｎ，Ｚｒｏｔａｔｉｏｎ）とを示す。
【００７３】
また、ＨＩＥＲＡＲＣＨＹ部の「ＯＦＦＳＥＴ」で定義しているのは、Ｘ，Ｙ，Ｚの絶対位置の初期値で、回転角は、全て０を初期値としている。その次の行の「ＪＯＩＮＴ  ＲｉｇｈｔＨｉｐ」で、Ｈｉｐｓから連結する次の関節「ＲｉｇｈｔＨｉｐ」を定義している。
【００７４】
その２行下のＯＦＦＳＥＴ（（８）行目）では、連結元であるＨｉｐからの相対位置を定義している。また、その次の行で、「ＲｉｇｈｔＨｉｐ」もＨｉｐｓと同じ６つのパラメータを持つことを定義している。
【００７５】
以下、「ＲｉｇｈｔＨｉｐ」と同様の設定方法で、体中の関節について定義する。例えば、手話では、ＣＧキャラクタを１１２個の関節を持つデータとして定義しており、図６，図７の例では、右の肩（（２７）行目）、肘（（３１）行目）、前腕（（３５）行目））、手首（（３９）行目）、指（親指の根本、第１関節、第２関節、指先）（（４３）〜（６１）行目）等の各関節に対する設定例が示されている。本実施形態では、例えば手話等のモーションを高品質に記録するため、各指に対する関節ノードの情報を有する。
【００７６】
また、図７の（６９）行目以降に示すように、後半部分は、「ＭＯＴＩＯＮ」という記述から始まる。（７０）行目のＦｒａｍｅｓ：３２１は、これ以降、１つの単語を手話で表現するための３２１フレーム分の動作データがあることを示している。また、（７１）行目のＦｒａｍｅ  Ｔｉｍｅは、各フレームの持続時間を表す。図７の例では、０．０１６６６６７という値が設定されているが、これは１／６０秒の値に相当し、１秒間に６０コマのモーションデータを持っていることを表している。
【００７７】
それ以降の行では、前半部分で定義した全てのパラメータの１フレーム毎の値を格納している。各行が「関節数」×「各関節の持つパラメータ数」の要素を有する。例えば、関節数が１１２あり、各関節が６つのパラメータを持つ場合には、１１２×６＝６７２のパラメータ数を有することになる。
【００７８】
各パラメータは、スペース区切りの各数値が、それぞれ先頭からＨｉｐｓのＸｐｏｓｉｔｉｏｎ，ＨｉｐｓのＹｐｏｓｉｔｉｏｎ，ＨｉｐｓのＺｐｏｓｉｔｉｏｎ，ＨｉｐｓのＺｒｏｔａｔｉｏｎ，ＨｉｐｓのＸｒｏｔａｔｉｏｎ，ＨｉｐｓのＹｒｏｔａｔｉｏｎ，ＲｉｇｈｔＨｉｐのＸｐｏｓｉｔｉｏｎ，ＲｉｇｈｔＨｉｐのＹｐｏｓｉｔｉｏｎ，ＲｉｇｈｔＨｉｐのＺｐｏｓｉｔｉｏｎ・・・と並ぶことになる。なお、モーションデータファイルの例としては、これに限定されるものではない。
【００７９】
なお、本実施形態では、指文字を形成する手指部分を変更（変形）等を行う場合、例えば右手部分の各関節（例えば、右肩、右肘、右手首）のパラメータの調整を行う。
【００８０】
このように、本実施形態では、ＣＧキャラクタモデル６１と、ＣＧキャラクタモデル６１に対応するモーションデータ６２の位置情報と、それぞれの回転角情報とから、ＣＧ距離画像を生成することができ、それぞれの関節部分に対する角度や位置のパラメータ（例えば、回転角情報、位置座標情報）を変更することで、学習用のＣＧ距離画像を容易に複数生成することができる。
【００８１】
なお、本実施形態では、ニューラルネットワーク学習６３として、図５の（Ｃ）の例に示すように、（あ）〜（お）等の指文字（例えば、（あ）〜（ん）の４６文字）が認識結果として抽出されるようなニューラルネットワークを学習するが、これに限定されるものではなく、例えば認識対象として「あ」〜「ん」の指文字（46文字）である。い。また、ニューラルネットワーク学習６３では、モーションデータ６２を使って手指の一部の見た目の形状を変更し、同一の指文字に対する異なる複数のＣＧ距離画像を用いて学習を行う。
【００８２】
次に、認識装置１２は、図５に示すように、実際の人物を対象に距離画像取得６４を行い、得られた距離画像から手指領域抽出６５を行う。距離画像取得６４で取得される画像は、例えば図５の（Ｄ）に示す画像６４ａである。また、手指領域抽出６５により抽出される手指抽出画像は、例えば図５（Ｅ）に示す手指画像６５ａである。この画像は、例えば、１２８×１２８画素等のように所定の画像サイズに変換され、また濃度変換により、学習データや複数の距離画像同士における誤差が生じないように、予め設定された濃度（濃淡）に調整を行う。
【００８３】
上述した調整により得られた画像６５ａを用いて、ニューラルネットワーク学習６３で学習済みのニューラルネットワークに入力して、ニューラルネットワークによる指文字認識６６を行う。
【００８４】
図８は、ニューラルネットワークを用いた文字認識処理の具体例を説明するための図である。本実施形態では、ニューラルネットワークの一例として「Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ（深層学習）」を用い、更に「Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ」の一例である畳み込みニューラルネットワーク（ＣＮＮ：Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）を用いるが、これに限定されるものではない。
【００８５】
ＣＮＮは、畳み込み層（Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ）、プーリング層（Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ）、全結合層（Ｆｕｌｌｙ  Ｃｏｎｎｅｃｅｄ  Ｌａｙｅｒ）等の層から構成される。ＣＮＮでは、畳み込み層、プーリング層の組み合わせを任意の回数繰り返し、得られた結果を全結合層に入力して最終的な出力結果を取得する。
【００８６】
図８（Ａ）の例では、最下層から上層に向かって入出力を繰り返すニューロンを示している。また、図８（Ａ）に示すニューラルネットワークでは、手指抽出画像の各画素全部（例えば、１２８×１２８画素）の濃淡情報（明るさ情報、輝度情報）を入力とする。つまり、図８（Ａ）の例に示すニューラルネットワークでは、手指領域抽出６５で得られた手指画像の１×１画素目から１×２画素目、１×３画素目、…等のように、１画素毎に濃淡（明るさ、輝度）情報を最下層のニューロンに入力し、その結果から最もらしい指文字の認識結果を、最上位のニューロンの結果から出力する。なお、図８（Ａ）に示すニューラルネットワークの例では、畳み込み層、プーリング層の組み合わせを５回、全結合層を３層重ね、最終的に４６文字に対応した４６個の出力を行うこととするが、これに限定されるものではない。また、入力する距離画像の画素数については、１２８×１２８画素に限定されるものではなく、例えば２５６×２５６画素等でもよい。実際に距離画像カメラで撮影して得られる手指画像の大きさに応じて任意に設定することができる。
【００８７】
ニューラルネットワークには、例えば図８（Ｂ）に示すように、「あ」の指文字に対して、パラメータにより見た目の角度等が異なる複数の指文字（図８（Ｂ）の例では、（あ１）〜（あ４））が学習されている。これらは全て（あ）に属している。
【００８８】
これらの情報を入力した場合、図８（Ａ）に示す最上層の「あ」に該当するニューロンの出力が最も高い値（理想的には、１．０）となり、残りのニューロンからは低い値（理想的には、０．０）が出力される。また、同様に（い）を入力した場合には、同様の最上位層のニューロンは、（い）に該当するニューロンの位置から最も高い値が出力され、それ以外は低い値が出力される。他の文字に対しても同様に、対応するニューロンの位置から高い値が出力されるようにニューラルネットワークを学習しておく。
【００８９】
これにより、撮影画像の指の形状に近い指文字の認識を行うことができる。なお、図５の例では、認識結果により、指文字の（う）が出力される。
【００９０】
＜本実施形態の応用例＞
上述したように、本実施形態の文字認識を行うことで、例えば距離画像等から指文字を行うことができる。なお、上述した指文字認識は、片手からの指文字認識の手法を示したがこれに限定されるものではなく、例えば画像に含まれる両手に対する指文字認識を行ってもよい。また、左右の手の認識結果から、例えば奈良の大仏の手話（ポーズ）から「奈良」を認識する等、手話の固定訳の認識を行ってもよい。
【００９１】
更に、本実施形態では、時系列に複数の指文字を認識することで、例えば「アの指文字」＋「ワの指文字」から「阿波」等の連語の指文字を認識するようにしてもよい。更に、本実施形態では、手指の動作を時系列で認識することで、例えば「幸せ」等の漢字手話等を認識することもできる。
【００９２】
更に、本実施形態の応用例として、手指領域の認識に限定されずに、人物全体がどのような姿勢をしているか等の認識や、人物を時系列で認識し、その結果から人物の動き（モーション）を認識してもよい。
【００９３】
＜実行プログラム＞
ここで、上述した指文字認識システム１０における学習装置１１及び認識装置１２は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性の記憶媒体、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性の記憶媒体、マウスやキーボード、ポインティングデバイス等の入力装置、ＣＧキャラクタモデルやモーションデータ、ＣＧ距離画像、人物距離画像等の各種画像、抽出した手指画像、指文字の認識結果等の各種データを表示する表示部、並びに外部と通信するためのインタフェースを備えたコンピュータによって構成することができる。
【００９４】
したがって、指文字認識システム１０が有する各機能は、これらの機能を記述したプログラム等をＣＰＵに実行させることによりそれぞれ実現可能となる。また、これらのプログラムは、磁気ディスク（フロッピィーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記録媒体に格納して頒布することもできる。
【００９５】
つまり、上述した各構成における処理をコンピュータに実行させるための実行プログラム（例えば、学習プログラム、認識プログラム、各プログラムを統合した指文字認識プログラム）を生成し、例えば、汎用のパーソナルコンピュータやサーバ、タブレット端末等に、生成したプログラムをインストールすることにより、ハードウェア資源とソフトウェアとが協働して本実施形態における学習処理、認識処理（指文字認識処理）、等を実現することができる。
【００９６】
上述したように本発明によれば、指文字等の画像認識の精度を向上させることができる。例えば、本実施形態によれば、学習処理において、ＣＧを用いてニューラルネットワークの学習に必要な画像を大量に効率よく生成できる。また、認識処理において、ＣＧで生成した距離画像と距離画像カメラ等を用いて撮影する距離画像の見た目が近くなり、精度の高い認識を行うことができる。また、本実施形態では、安価な距離画像カメラを利用して、高品質な指文字認識を簡便に行うことができる。
【００９７】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。また、上述した各実施形態の一部又は全部を組み合わせることも可能である。
【符号の説明】
【００９８】
１０  指文字認識システム
１１  学習装置
１２  認識装置
１３  通信ネットワーク
２１，３１  入力手段
２２，３２  出力手段
２３  モーションデータ管理手段
２４  距離画像生成手段
２５  領域抽出手段（学習用領域抽出手段）
２６  ニューラルネットワーク学習手段（学習手段）
２７，３７  記憶手段
２８，３８  送受信手段
３３  画像取得手段
３４  領域抽出手段（認識用領域抽出手段）
３５  画像処理手段
３６  指文字認識手段（認識手段）
４１  ＣＧ距離画像
４２  手指領域画像
５１  人物距離画像
５２，５３  手指領域
６１  ＣＧキャラクタモデル
６２  モーションデータ
６３  ニューラルネットワーク学習
６４  距離画像取得
６５  手指領域抽出
６６  指文字認識
【図１】
2017037424.tif 000003
【図２】
2017037424.tif 000004
【図３】
2017037424.tif 000005
【図４】
2017037424.tif 000006
【図６】
2017037424.tif 000007
【図７】
2017037424.tif 000008
【図８】
2017037424.tif 000009
【図５】
2017037424.tif 000010