(57)【特許請求の範囲】
【請求項１】
機械学習により生成された処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化することで得られる暗号化モデル情報を記憶する記憶部と、
前記暗号鍵に対応する復号鍵を含んで難読化された処理プログラムを実行するプロセッサと、を備え、前記プロセッサにより前記処理プログラムが実行されると、
前記復号鍵を用いて前記暗号化モデル情報から前記モデル情報を復号する復号部と、
前記モデル情報を前記処理モデルに適用し、前記処理モデルに基づいて処理を実行する処理部と、
を発現する、処理装置。
【請求項２】
前記記憶部は、さらに、前記処理プログラムの実行を許可する装置を特定するライセンス情報を記憶し、前記プロセッサにより前記処理プログラムが実行されると、
前記処理装置の識別情報を前記ライセンス情報と照合し、該照合結果に基づいて前記処理部の機能を有効化又は無効化する制御部をさらに発現する、請求項１に記載の処理装置。
【請求項３】
前記処理部は、前記処理を実行することで、文書画像が入力されると該文書画像の読取項目に記載された情報を読み取り、該読み取り結果を出力する、請求項１又は２に記載の処理装置。
【請求項４】
訓練データの入力を受け付ける入力部と、
暗号鍵を含んで難読化された学習プログラムを実行するプロセッサと、を備え、前記プロセッサにより前記学習プログラムが実行されると、
前記訓練データを適用して処理モデルを機械学習により生成する学習部と、
前記処理モデルに含まれるモデル情報を、前記暗号鍵を用いて暗号化して暗号化モデル情報を生成する暗号部と、
を発現する、学習装置。
【請求項５】
前記学習プログラムの実行を許可する装置を特定するライセンス情報を記憶する記憶部をさらに備え、前記プロセッサにより前記学習プログラムが実行されると、
前記学習装置の識別情報を前記ライセンス情報と照合し、該照合結果に基づいて前記学習部の機能を有効化又は無効化する制御部をさらに発現する、請求項４に記載の学習装置。
【請求項６】
前記プロセッサにより前記学習プログラムが実行されると、
前記学習部による前記処理モデルの機械学習に先立って、前記訓練データを検証する検証部をさらに発現する、請求項４又は５に記載の学習装置。
【請求項７】
前記訓練データは、文書画像及び該文書画像の読取項目に記載された情報に対応する正解データを含む、
請求項４から６のいずれか一項に記載の学習装置。
【請求項８】
前記暗号化モデル情報を記憶する記憶部をさらに備え、
前記暗号部は、生成した前記暗号化モデル情報を前記記憶部に記憶する、請求項４から７のいずれか一項に記載の学習装置。
【請求項９】
モデル情報を暗号化するための暗号鍵に対応する復号鍵を含んで難読化された処理プログラムであって、プロセッサによって実行されると、処理装置に、
前記復号鍵を用いて、機械学習により生成された処理モデルに含まれる前記モデル情報を、前記暗号鍵を用いて暗号化することで得られた暗号化モデル情報から前記モデル情報を復号する段階と、
前記処理モデル及び前記モデル情報に基づいて処理を実行する段階と、
を実行させる処理プログラム。
【請求項１０】
前記処理を実行する段階では、文書画像が入力されると該文書画像の読取項目に記載された情報を読み取り、該読み取り結果を出力する、請求項９に記載の処理プログラム。
【請求項１１】
暗号鍵を含んで難読化された学習プログラムであって、プロセッサによって実行されると、学習装置に、
訓練データを適用して処理モデルを機械学習により生成する段階と、
前記処理モデルに含まれるモデル情報を、前記暗号鍵を用いて暗号化して暗号化モデル情報を生成する段階と、
を実行させる学習プログラム。
【請求項１２】
前記訓練データは、文書画像及び該文書画像の読取項目に記載された情報に対応する正解データを含む、
請求項１１に記載の学習プログラム。
【請求項１３】
モデル情報を暗号化するための暗号鍵に対応する復号鍵を含んで難読化された処理プログラムにより実行される処理方法であって、処理装置のプロセッサにより、
前記復号鍵を用いて、機械学習により生成された処理モデルに含まれる前記モデル情報を、前記暗号鍵を用いて暗号化することで得られた暗号化モデル情報から前記モデル情報を復号し、
前記処理モデル及び前記モデル情報に基づいて処理を実行する、
処理方法。
【請求項１４】
暗号鍵を含んで難読化された学習プログラムにより実行される学習方法であって、学習装置のプロセッサにより、
訓練データを適用して処理モデルを機械学習により生成し、
前記処理モデルに含まれるモデル情報を、前記暗号鍵を用いて暗号化して暗号化モデル情報を生成する、学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置、学習装置、処理プログラム、及び学習プログラムに関する。
【背景技術】
【０００２】
従来、インターネットに接続された帳票内表構造認識システムが知られている。例えば、特許文献１には、帳票内の文字列を含む行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を機械学習して生成された認識モデルを有する装置が開示されている。
特許文献１  特開２０１８−００５４６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上述した形態のシステムでは、帳票画像内の記載情報を読み取る推論モデルは、サーバ端末上で訓練データを用いて機械学習することにより生成される。しかしながら、ユーザは、セキュリティの観点から、ユーザ環境内に配置されたユーザ端末上で推論モデルを生成し、それを用いて帳票画像内の記載情報を読み取る、所謂オンプレミスでのシステム運用を望む場合がある。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、機械学習により生成された処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化することで得られる暗号化モデル情報を記憶する記憶部と、暗号鍵に対応する復号鍵を含んで難読化された処理プログラムを実行するプロセッサと、を備え、プロセッサにより処理プログラムが実行されると、復号鍵を用いて暗号化モデル情報からモデル情報を復号する復号部と、モデル情報を処理モデルに適用し、処理モデルに基づいて処理を実行する処理部と、を発現する、処理装置が提供される。
【０００５】
本発明の第２の態様においては、訓練データの入力を受け付ける入力部と、暗号鍵を含んで難読化された学習プログラムを実行するプロセッサと、を備え、プロセッサにより学習プログラムが実行されると、訓練データを適用して処理モデルを機械学習により生成する学習部と、処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化して暗号化モデル情報を生成する暗号部と、を発現する、学習装置が提供される。
【０００６】
本発明の第３の態様においては、モデル情報を暗号化するための暗号鍵に対応する復号鍵を含んで難読化された処理プログラムであって、プロセッサによって実行されると、処理装置に、復号鍵を用いて、機械学習により生成された処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化することで得られた暗号化モデル情報からモデル情報を復号する段階と、処理モデル及びモデル情報に基づいて処理を実行する段階と、を実行させる処理プログラムが提供される。
【０００７】
本発明の第４の態様においては、暗号鍵を含んで難読化された学習プログラムであって、プロセッサによって実行されると、学習装置に、訓練データを適用して処理モデルを機械学習により生成する段階と、処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化して暗号化モデル情報を生成する段階と、を実行させる学習プログラムが提供される。
【０００８】
本発明の第５の態様においては、モデル情報を暗号化するための暗号鍵に対応する復号鍵を含んで難読化された処理プログラムにより実行される処理方法であって、処理装置のプロセッサにより、復号鍵を用いて、機械学習により生成された処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化することで得られた暗号化モデル情報からモデル情報を復号し、処理モデル及び前記モデル情報に基づいて処理を実行する、処理方法が提供される。
【０００９】
本発明の第６の態様においては、暗号鍵を含んで難読化された学習プログラムにより実行される学習方法であって、学習装置のプロセッサにより、訓練データを適用して処理モデルを機械学習により生成し、処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化して暗号化モデル情報を生成する、学習方法が提供される。
【００１０】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る学習装置の構成を示す。
【図２】本実施形態に係る学習装置の機能構成を示す。
【図３】本実施形態に係る学習装置による機械学習の手順を示す。
【図４】本実施形態に係る処理装置の構成を示す。
【図５】本実施形態に係る処理装置の機能構成を示す。
【図６】本実施形態に係る処理装置による画像認識処理の手順を示す。
【図７】本実施形態に係るコンピュータの構成の一例を示す。
【発明を実施するための形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、本実施形態に係る学習装置１０の構成を示す。学習装置１０は、ユーザが所有するパーソナルコンピュータ等のコンピュータ装置であり、学習プログラムを実行することにより、機械学習により画像認識処理のための処理モデルを生成する。学習装置１０は、ネットワークから隔離されたユーザ環境内に配置され、所謂オンプレミスで使用される。
【００１４】
なお、学習プログラム（暗号鍵を含む）は、管理者が、これを格納した記憶デバイスを郵送等の手段によりユーザに送付し、ユーザが、受け取った学習プログラムを学習装置１０にインストールすることで、後述する記憶部１４に記憶される。
【００１５】
なお、学習プログラムは、プログラムコード内に処理モデルを暗号化するための暗号鍵を含んで難読化されている。ここで、暗号化とは、暗号鍵を用いてデータを別のデータに変換する処理をいい、ＰＧＰのような商用ツールに限らずオープンソースソフトウェア（ＯＳＳ）を含め一般に利用可能なソフトウェアを利用することができる。一例として、暗号鍵及び復号鍵として同一（共通）の鍵を使用する共通鍵暗号方式を採用してよい。また、難読化とは、プログラムコードを読み取り難い形式に加工することをいい、Dotfuscatorのような商用ツールに限らずオープンソースソフトウェア（ＯＳＳ）を含め一般に利用可能なソフトウェアを利用することができる。また、暗号鍵を含んでプログラムコードの全体を難読化するに限らず、暗号鍵が含まれるプログラムコードの一部分を難読化してもよく、それにより、暗号鍵を読み取り難くするだけでなく、プログラムコード内の暗号鍵が含まれる位置を特定し難くすることができる。
【００１６】
学習装置１０は、プロセッサ（ＣＰＵ及び／又はＧＰＵ）１１、入力部１２、及び記憶部１４を有する。
【００１７】
プロセッサ１１は、学習プログラムを実行することにより、コンピュータ装置に学習機能を発現させる。学習機能を発現した学習装置１０の機能構成については後述する。
【００１８】
入力部１２は、訓練データの入力を受け付けるユニットである。訓練データは、帳票画像（文書画像とも呼ぶ）及びその読取項目に記載された情報に対応する正解データのセットである。入力部１２は、スキャナ、キーボード、ＣＤ−ＲＯＭドライブ等の入力デバイスを有し、例えば、ユーザが、訓練用の帳票をスキャナで読み取って画像データ化することで学習用の帳票画像を作成し、自らその帳票の記載情報を読み取ってキーボードを介して入力することで正解データを作成する。なお、後述するように、処理モデルとして畳み込みリカレントニューラルネットワーク（ＣＲＮＮ）を採用する場合、学習用の帳票画像において、文字の読取方向のマージンの大きさは任意であってよい。作成された画像データ及び正解データは訓練データとして記憶部１４又はＣＤ−ＲＯＭ等の記憶媒体に記憶され、学習時に学習部１５により訓練データが記憶部１４等から読み出されて使用される。なお、ここでは訓練データは帳票画像から作成されているが、訓練データは任意の文書を示す文書画像から作成されるものでもよい。
【００１９】
記憶部１４は、メモリのような一時記憶デバイス、ハードディスクドライブ（ＨＤＤ）のような記憶デバイスを含み、学習プログラム、暗号化モデル情報、暗号鍵、訓練データ、その他、学習装置１０のライセンス情報を記憶する。ここで、暗号鍵は、学習プログラムの起動に伴い難読化されたプログラムコード内から読み出されてメモリ等の一時記憶デバイスに一時記憶され、学習プログラムの停止によりメモリから消去される。
【００２０】
なお、学習装置１０は、ネットワークを介して外部装置と相互に通信する通信部を含んでもよい。斯かる場合、学習プログラムが起動された際にそれに応じてネットワーク接続をオフするなどして通信部の機能を無効化することにより、ユーザ環境内に孤立した装置として運用するのが好ましい。
【００２１】
図２に、本実施形態に係る学習装置１０（プロセッサ１１）により学習プログラムを起動することにより発現する機能構成を示す。学習装置１０は、学習部１５、暗号部１６、制御部１７、及び検証部１８を含む。
【００２２】
学習部１５は、訓練データを適用して処理モデルを機械学習により生成する。処理モデルは、例えば住所のように都道府県、市町村、及び番地の複数種類の情報が系統的に含まれる記載情報を読み取るのに好適な畳み込みリカレントニューラルネットワーク（ＣＲＮＮ）で構成することができる。処理モデルの構成を表すモデル構成情報、例えば中間層の数、入力層、中間層、及び出力層のそれぞれのユニット数、ユニットの結合などの情報は、学習プログラムのプログラムコード内で一意に定められているとする。斯かる場合、学習部１５は、記憶部１４から訓練データを読み出し、これに含まれる学習用の帳票画像を適用し、正解データを教師データとして各結合に対する活性化関数の重み等、処理モデルに組み込まれるパラメータを学習する。生成した処理モデルは、暗号部１６に送信される。
【００２３】
暗号部１６は、学習部１５により生成された処理モデルに含まれるモデル情報を暗号化する。ここで、モデル情報は、処理モデルに組み込まれるパラメータの情報を含む。暗号部１６は、記憶部１４に記憶された暗号鍵を用いてモデル情報を暗号化して暗号化モデル情報を生成し、これを記憶部１４に記憶する。
【００２４】
なお、処理モデルの構成を表すモデル構成情報及び処理モデルに組み込まれるパラメータ情報をモデル情報に含め、暗号部１６はこのモデル情報を暗号化して暗号化モデル情報を生成してもよい。モデル情報にモデル構成情報を含めることで、学習装置１０により、処理装置２０に使用させる処理モデルを任意に構成することができる。
【００２５】
制御部１７は、学習装置１０の識別情報を読み取ってライセンス情報と照合し、その結果に基づいて学習部１５の機能を有効化又は無効化する。ここで、ライセンス情報は、学習プログラムの実行が許可された装置を特定する情報であり、学習プログラムの起動に先立って、ユーザが学習装置１０の識別情報を電子メール等の手段により管理者に通知し、管理者が学習装置１０に対して学習プログラムの実行を許可するか否かを判断して発行されるものである。具体的には、コンピュータ装置によりライセンス情報が生成され、それを格納した記憶デバイスが郵送等の手段によりユーザに送付される。そして、ユーザは受け取ったライセンス情報を学習装置１０の記憶部１４内の予め定められたパスに保存する。学習装置１０の識別情報として、例えばＭＡＣアドレスのような製造番号を採用することができる。
【００２６】
制御部１７は、記憶部１４からライセンス情報を読み出し、これを用いて学習装置１０の識別情報を照合する。制御部１７は、学習装置１０に対してライセンスが発行されていると判断すると学習部１５の機能を有効化し、発行されていないと判断すると学習部１５の機能を無効化する。それにより、管理者により事前にライセンスが発行され、学習プログラムの実行が許可されている学習装置１０のみで機械学習を実行できるよう、制限することができる。
【００２７】
検証部１８は、学習部１５による処理モデルを生成する機械学習に先立って、訓練データを検証し、予め定められたルールに従ってエラー又は警告を出力するとともに対応処置をとる。表１にルール及び対応処置の一例を示す。
【表１】
0006804074.tif 000002
【００２８】
検証部１８は、訓練データを検証し、ルール１から３に該当する場合にはモニタ等にエラーを出力して学習プログラムの実行を停止し、ルール４から７に該当する場合にはモニタ等に警告を表示し、学習プログラムの実行は継続する。学習部１５による処理モデルを生成する機械学習は、通常、数時間から数日を要するところ、検証部１８により訓練データを検証することでエラーの原因を事前に修正し、訓練データのエラーによる機械学習の途中停止を防止することができる。
【００２９】
図３に、本実施形態に係る学習装置１０による処理の手順Ｓ１２０を示す。ユーザが、学習装置１０上で学習プログラムを起動することで、機械学習のフローが開始する。このとき、難読化された学習プログラムから暗号鍵が読み出されて記憶部１４に一時記憶される。なお、先述のとおり、学習プログラムは、事前に学習装置１０にインストールされ、ライセンス情報は、記憶部１４に保存されている。
【００３０】
ステップＳ１２２では、制御部１７によりライセンスを照合する。制御部１７は、学習装置１０の識別情報を読み取り、記憶部１４に保存されたライセンス情報と照合する。制御部１７は、ライセンス情報より学習装置１０に対して学習プログラムの実行が許可されていると判断される場合（ライセンス発行済の場合）、次のステップＳ１２４に進む。学習装置１０に対して学習プログラムの実行が許可されていないと判断される場合（ライセンス情報が保存されていない場合も含めてライセンス未発行の場合）、学習プログラムを停止して、後続のステップ、特に機械学習を実行するステップＳ１２８を無効化する。
【００３１】
ステップＳ１２４では、入力部１２により訓練データの入力を受け付ける。先述のとおり、ユーザが、入力部１２が有する入力デバイスを用いて学習用の帳票画像及び正解データを作成する。入力部１２は、作成されたこれらのデータを訓練データとして記憶部１４又はＣＤ−ＲＯＭ等の記憶媒体に記憶する。
【００３２】
ステップＳ１２６では、検証部１８により訓練データを検証する。検証部１８は、記憶部１４等から訓練データを読み出し、表１に示したルール及び対応処置に従ってエラー又は警告を出力するとともに対応処置をとる。訓練データがエラーに該当しないと判断される場合（警告の場合も含む）、次のステップＳ１２８に進む。なお、訓練データが警告に該当する場合、検証部１８はその警告の内容をモニタ等に表示する。訓練データがエラーに該当すると判断される場合、検証部１８は、そのエラーの内容をモニタ等に表示して、学習プログラムを停止する。ユーザは、その内容を確認して訓練データを修正し、再度学習プログラムを実行することで、訓練データのエラーによる機械学習の途中停止を防止することができる。
【００３３】
ステップＳ１２８では、学習部１５により、訓練データを適用して処理モデルを機械学習により生成する。処理モデルは、一例として畳み込みリカレントニューラルネットワーク（ＣＲＮＮ）により構築することができる。処理モデルの構成を表すモデル構成情報は、学習プログラムのプログラムコード内で一意に定められているとする。斯かる場合、学習部１５は、記憶部１４等から訓練データを読み出し、これに含まれる学習用の帳票画像を適用し、正解データを教師データとして各結合に対する活性化関数の重み等、処理モデルに組み込まれるパラメータを学習する。
【００３４】
ステップＳ１３０では、暗号部１６により、学習部１５により生成された処理モデルに含まれるモデル情報を暗号化する。ここで、モデル情報は、処理モデルに組み込まれるパラメータの情報を含む。暗号部１６は、記憶部１４に記憶された暗号鍵を用いてモデル情報を暗号化して暗号化モデル情報を生成する。
【００３５】
なお、処理モデルの構成を表すモデル構成情報及び処理モデルに組み込まれるパラメータ情報をモデル情報に含め、暗号部１６はこのモデル情報を暗号化して暗号化モデル情報を生成してもよい。モデル情報にモデル構成情報を含めることで、学習装置１０により、処理装置２０に使用させる処理モデルを任意に構成することができる。
【００３６】
ステップＳ１３２では、暗号部１６により、生成した暗号化モデル情報を記憶部１４に記憶する。これにより、学習装置１０による処理が終了する。
【００３７】
なお、特に学習装置１０がネットワークを介して外部装置と相互に通信する通信部を含む場合、学習装置１０は、学習プログラムを起動した後、ネットワーク接続がオフされていることで通信部の機能が無効化されていることを確認し、確認できた場合にのみステップＳ１２２に進むものとしてもよい。
【００３８】
本実施形態に係る学習装置１０は、訓練データの入力を受け付ける入力部１２、暗号鍵を含んで難読化された学習プログラムを実行するプロセッサ１１を備える。学習装置１０のプロセッサ１１により学習プログラムが実行されると、訓練データを適用して処理モデルを機械学習により生成する学習部１５、処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化して暗号化モデル情報を生成する暗号部１６をプロセッサ１１に発現する。本実施形態では、学習装置１０に処理モデルを機械学習により生成させる学習プログラムが、学習モデルに含まれるモデル情報を暗号化して暗号化モデル情報を生成するための暗号鍵を含んで難読化されている。そのため、学習装置１０を用いて機械学習を実行するユーザに学習プログラムとともに暗号鍵を提供しながらも、オンプレミスで、学習プログラム及びモデル情報をユーザに読み取られることなく、学習プログラムを実行させることができる。そして、機械学習により生成される処理モデルに含まれるモデル情報を出力することが可能となる。
【００３９】
また、本実施形態に係る学習装置１０によれば、帳票画像及びこれに対応する正解データを含む訓練データを用いることで、学習部１５が、帳票画像を適用し、正解データを教師データとして処理モデルを機械学習により生成する。これにより、帳票画像に記載された個人情報等の情報を読み取る機械学習を、ネットワークから閉じたユーザ環境内（つまり、オンプレミス）で実行することができる。換言すると、個人情報の漏洩等に対するセキュリティを維持した上で、帳票画像に記載された個人情報等を読み取るための処理モデルを生成できる。
【００４０】
図４は、本実施形態に係る処理装置２０の構成を示す。処理装置２０は、ユーザが所有するパーソナルコンピュータ等のコンピュータ装置であり、処理プログラムを実行することにより、処理モデルに基づいて画像認識処理を実行する。処理装置２０は、ネットワークから隔離されたユーザ環境内に配置され、所謂オンプレミスで使用される。処理装置２０は、学習装置１０と同一の装置で実現されるものであってもよい。
【００４１】
なお、処理プログラム（復号鍵を含む）は、管理者が、これを格納した記憶デバイスを郵送等の手段によりユーザに送付し、ユーザが、受け取った処理プログラムを処理装置２０にインストールすることで、後述する記憶部２４に記憶される。
【００４２】
処理プログラムは、プログラムコード内に暗号化された処理モデルを復号するための復号鍵を含んで難読化されている。共通鍵暗号方式では、復号鍵は対応する暗号鍵と同一（共通）である。また、復号鍵を含んでプログラムコードの全体を難読化するに限らず、復号鍵が含まれるプログラムコードの一部分を難読化してもよく、それにより、復号鍵を読み取り難くするだけでなく、プログラムコード内の復号鍵が含まれる位置を特定し難くすることができる。
【００４３】
処理装置２０は、プロセッサ（ＣＰＵ及び／又はＧＰＵ）２１、入力部２２、及び記憶部２４を有する。
【００４４】
プロセッサ２１は、処理プログラムを実行することにより、コンピュータ装置に画像認識処理機能を発現させる。画像認識処理機能を発現した処理装置２０の機能構成については後述する。
【００４５】
入力部２２は、画像認識処理する帳票画像の入力を受け付けるユニットである。入力部２２は、例えば、スキャナを有し、ユーザがこれを用いて帳票を読み取って画像データ化することで帳票画像を作成する。または、ＣＤ−ＲＯＭ等の記憶媒体に記憶された帳票画像を読み取ってもよい。入力部２２は、作成された帳票画像を記憶部２４に記憶するとともに後述する処理部２６に送信する。また、入力部２２は、学習装置１０により生成された暗号化モデル情報の入力を受け付ける。
【００４６】
記憶部２４は、メモリのような一時記憶デバイス、ハードディスクドライブ（ＨＤＤ）のような記憶デバイスを含み、処理プログラム、暗号化モデル情報、復号鍵、その他、処理装置２０のライセンス情報を記憶する。暗号化モデル情報は、学習装置１０による機械学習により生成された処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化することで得られる。ここで、復号鍵は、処理プログラムの起動に伴い難読化されたプログラムコード内から読み出されてメモリ等の一時記憶デバイスに一時記憶され、処理プログラムの停止によりメモリから消去される。
【００４７】
なお、処理装置２０は、ネットワークを介して外部装置と相互に通信する通信部を含んでもよい。斯かる場合、処理プログラムが起動された際にそれに応じてネットワーク接続をオフするなどして通信部の機能を無効化することにより、ユーザ環境内に孤立した装置として運用するのが好ましい。また、処理装置２０は、１台に限らず複数台設け、それぞれにおいて学習装置１０により生成した処理モデルを用いて画像認識処理を実行してもよい。
【００４８】
図５に、本実施形態に係る処理装置２０（プロセッサ２１）により処理プログラムを起動することにより発現する機能構成を示す。処理装置２０は、復号部２５、処理部２６、及び制御部２７を含む。
【００４９】
復号部２５は、暗号化モデル情報からモデル情報を復号する。ここで、モデル情報は、処理モデルに組み込まれるパラメータの情報を含む。復号部２５は、記憶部２４に記憶された復号鍵を用いて暗号化モデル情報からモデル情報を復号し、これを記憶部２４に記憶する。
【００５０】
処理部２６は、モデル情報を処理モデルに適用し、処理モデルに基づいて画像認識処理を実行する。処理モデルは、一例として畳み込みリカレントニューラルネットワーク（ＣＲＮＮ）により構成することができる。処理モデルの構成を表すモデル構成情報は、学習プログラムのプログラムコード内で一意に定められているとする。斯かる場合、処理部２６は、モデル情報に含まれるパラメータ情報を処理モデルに適用して各結合に対する活性化関数の重み等のパラメータを組み込み、その処理モデルに基づいて画像認識処理を実行する。処理部２６は、帳票画像が入力されるとその読取項目に記載された情報を読み取り、読み取り結果を記憶部２４に出力する又はモニタ等に表示する。
【００５１】
なお、処理モデルの構成を表すモデル構成情報及び処理モデルに組み込まれるパラメータ情報がモデル情報に含まれてもよい。斯かる場合、処理部２６は、モデル構成情報に基づいて処理モデルを構築し、パラメータ情報を構築された処理モデルに適用し、その処理モデルに基づいて画像認識処理を実行する。
【００５２】
制御部２７は、処理装置２０の識別情報を読み取ってライセンス情報と照合し、その結果に基づいて処理部２６の機能を有効化又は無効化する。ここで、ライセンス情報は、処理プログラムの実行が許可された装置を特定する情報であり、処理プログラムの起動に先立って、ユーザが処理装置２０の識別情報を電子メール等の手段により管理者に通知し、管理者が処理装置２０に対して処理プログラムの実行を許可するか否かを判断して発行されるものである。具体的には、コンピュータ装置によりライセンス情報が生成され、それを格納した記憶デバイスが郵送等の手段によりユーザに送付される。そして、ユーザは受け取ったライセンス情報を処理装置２０の記憶部２４内の予め定められたパスに保存する。処理装置２０の識別情報として、例えばＭＡＣアドレスのような製造番号を採用することができる。
【００５３】
制御部２７は、記憶部２４からライセンス情報を読み出し、これを用いて処理装置２０の識別情報を照合する。制御部２７は、処理装置２０に対してライセンスが発行されていると判断すると処理部２６の機能を有効化し、発行されていないと判断すると処理部２６の機能を無効化する。それにより、管理者により事前にライセンスが発行され、処理プログラムの実行が許可されている処理装置２０のみで処理を実行できるよう、制限することができる。
【００５４】
図６に、本実施形態に係る処理装置２０による画像認識処理の手順Ｓ２２０を示す。ユーザが、処理装置２０上で処理プログラムを起動することで、画像認識処理のフローが開始する。このとき、難読化された処理プログラムから復号鍵が読み出されて記憶部２４に一時記憶される。なお、先述のとおり、処理プログラムは、事前に処理装置２０にインストールされ、ライセンス情報は、記憶部２４に保存されている。
【００５５】
ステップＳ２２２では、制御部２７によりライセンスを照合する。制御部２７は、処理装置２０の識別情報を読み取り、記憶部２４に保存されたライセンス情報と照合する。制御部２７は、ライセンス情報より処理装置２０に対して処理プログラムの実行が許可されていると判断される場合（ライセンス発行済の場合）、次のステップＳ２２４に進む。制御部２７は、処理装置２０に対して学習プログラムの実行が許可されていないと判断される場合（ライセンス情報が保存されていない場合も含めてライセンス未発行の場合）、処理プログラムを停止して、後続のステップ、特に画像認識処理を実行するステップＳ２３０を無効化する。
【００５６】
ステップＳ２２４では、入力部２２により暗号化モデル情報の入力を受け付ける。ユーザは、記憶デバイスを用いるなどして、学習装置１０の記憶部１４に記憶された暗号化モデル情報を処理装置２０に転送する。入力部２２はこれを受信して、復号部２５に送信する。
【００５７】
ステップＳ２２６では、復号部２５により、暗号化モデル情報からモデル情報を復号する。ここで、モデル情報は、処理モデルに組み込まれるパラメータの情報を含む。復号部２５は、記憶部２４に記憶された復号鍵を用いて、暗号化モデル情報からモデル情報を復号する。なお、処理モデルの構成を表すモデル構成情報は、処理プログラムのプログラムコード内で一意に定められているとする。斯かる場合、復号部２５は、モデル情報に含まれるパラメータ情報を処理モデルに適用して各結合に対する活性化関数の重み等のパラメータを組み込み、処理モデルを構築する。
【００５８】
なお、処理モデルの構成を表すモデル構成情報及び処理モデルに組み込まれるパラメータ情報がモデル情報に含まれてもよい。モデル情報にモデル構成情報が含まれることで、学習装置１０により、処理装置２０に使用させる処理モデルを任意に構成することができる。
【００５９】
ステップＳ２２８では、入力部２２より画像認識処理する帳票画像が入力されたか否かが判断される。例えば、ユーザがスキャナを用いて帳票を読み取って画像データ化することで帳票画像が作成されて入力される。また、例えばＣＤ−ＲＯＭ等の記憶媒体に記憶された帳票画像を読み取ることで、帳票画像が入力される。帳票画像が入力されたと判断されるまでステップＳ２２８を繰り返し、帳票画像が入力されたと判断されることで次のステップＳ２３０に進む。
【００６０】
ステップＳ２３０では、処理部２６により、処理モデル及びモデル情報に基づいて画像認識処理を実行する。それにより、帳票画像の読取項目に記載された情報が読み取られる。
【００６１】
ステップＳ２３２では、ステップＳ２３０で読み取られた帳票画像の読取項目の情報が記憶部２４に出力される又はモニタ等に表示される。
【００６２】
ステップＳ２２８に戻り、帳票画像が入力される都度、画像認識処理及びその読取結果の出力（ステップＳ２３０〜Ｓ２３２）が繰り返される。ユーザにより処理装置２０上で処理プログラムが停止されることで、フローが終了する。
【００６３】
なお、特に処理装置２０がネットワークを介して外部装置と相互に通信する通信部を含む場合、処理装置２０は、処理プログラムを起動した後、ネットワーク接続がオフされていることで通信部の機能が無効化されていることを確認し、確認できた場合にのみステップＳ２２２に進むものとしてもよい。
【００６４】
本実施形態に係る処理装置２０は、機械学習により生成された処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化することで得られる暗号化モデル情報を記憶する記憶部２４と、暗号鍵に対応する復号鍵を含んで難読化された処理プログラムを実行するプロセッサ２１とを備える。処理装置２０のプロセッサ２１により処理プログラムが実行されると、復号鍵を用いて暗号化モデル情報からモデル情報を復号する復号部２５、モデル情報を処理モデルに適用し、処理モデルに基づいて画像認識処理を実行する処理部２６をプロセッサ２１に発現する。本実施形態では、モデル情報を処理モデルに適用し、処理モデルに基づいて画像認識処理を実行させる処理プログラムが、暗号化モデル情報からモデル情報を復号するための復号鍵を含んで難読化されている。そのため、処理装置２０を用いて処理を実行するユーザに処理プログラムとともに復号鍵を提供しながらも、オンプレミスで、処理プログラム及びモデル情報をユーザに読み取られることなく、モデル情報を処理モデルに適用して処理を実行させることが可能となる。
【００６５】
また、本実施形態に係る処理装置２０によれば、処理部２６は、帳票画像が入力されるとこの読取項目に記載された情報を読み取り、その読み取り結果を出力する。これにより、帳票画像に記載された個人情報等の情報を読み取る処理を、ネットワークから閉じたユーザ環境内（つまり、オンプレミス）で実行することができる。換言すると、個人情報の漏洩等に対するセキュリティを維持した上で、帳票画像に記載された個人情報等を読み取る処理を実行できる。
【００６６】
なお、本実施形態に係る学習装置１０及び処理装置２０は、帳票画像の記載情報を読み取る画像認識処理において機械学習を適用して処理モデルを生成し、これに含まれるモデル情報を暗号化して画像認識処理に利用する装置とした。これは、個人情報が含まれる帳票画像を扱う場合にオンプレミスでの運用が望まれるための一例である。したがって。画像認識処理に限らず、音声認識処理等の任意の処理において、機械学習を適用して処理モデルを生成し、これに含まれるモデル情報を暗号化してその処理に利用する装置としてよい。
【００６７】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、（１）操作が実行されるプロセスの段階または（２）操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および／またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび／またはアナログハードウェア回路を含んでよく、集積回路（ＩＣ）および／またはディスクリート回路を含んでよい。プログラマブル回路は、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理ＮＡＮＤ、論理ＮＯＲ、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【００６８】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー（登録商標）ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（ＲＴＭ）ディスク、メモリスティック、集積回路カード等が含まれてよい。
【００６９】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ、ＪＡＶＡ（登録商標）、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、１または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【００７０】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク（ＬＡＮ）、インターネット等のようなワイドエリアネットワーク（ＷＡＮ）を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【００７１】
図７は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ２２００の例を示す。コンピュータ２２００にインストールされたプログラムは、コンピュータ２２００に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の１または複数のセクションとして機能させることができ、または当該操作または当該１または複数のセクションを実行させることができ、および／またはコンピュータ２２００に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ２２００に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、ＣＰＵ２２１２によって実行されてよい。
【００７２】
本実施形態によるコンピュータ２２００は、ＣＰＵ２２１２、ＲＡＭ２２１４、グラフィックコントローラ２２１６、およびディスプレイデバイス２２１８を含み、それらはホストコントローラ２２１０によって相互に接続されている。コンピュータ２２００はまた、通信インタフェース２２２２、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６、およびＩＣカードドライブのような入／出力ユニットを含み、それらは入／出力コントローラ２２２０を介してホストコントローラ２２１０に接続されている。コンピュータはまた、ＲＯＭ２２３０およびキーボード２２４２のようなレガシの入／出力ユニットを含み、それらは入／出力チップ２２４０を介して入／出力コントローラ２２２０に接続されている。
【００７３】
ＣＰＵ２２１２は、ＲＯＭ２２３０およびＲＡＭ２２１４内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ２２１６は、ＲＡＭ２２１４内に提供されるフレームバッファ等またはそれ自体の中にＣＰＵ２２１２によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス２２１８上に表示されるようにする。
【００７４】
通信インタフェース２２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ２２２４は、コンピュータ２２００内のＣＰＵ２２１２によって使用されるプログラムおよびデータを格納する。ＤＶＤ−ＲＯＭドライブ２２２６は、プログラムまたはデータをＤＶＤ−ＲＯＭ２２０１から読み取り、ハードディスクドライブ２２２４にＲＡＭ２２１４を介してプログラムまたはデータを提供する。ＩＣカードドライブは、プログラムおよびデータをＩＣカードから読み取り、および／またはプログラムおよびデータをＩＣカードに書き込む。
【００７５】
ＲＯＭ２２３０はその中に、アクティブ化時にコンピュータ２２００によって実行されるブートプログラム等、および／またはコンピュータ２２００のハードウェアに依存するプログラムを格納する。入／出力チップ２２４０はまた、様々な入／出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入／出力コントローラ２２２０に接続してよい。
【００７６】
プログラムが、ＤＶＤ−ＲＯＭ２２０１またはＩＣカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ２２２４、ＲＡＭ２２１４、またはＲＯＭ２２３０にインストールされ、ＣＰＵ２２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ２２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ２２００の使用に従い情報の操作または処理を実現することによって構成されてよい。
【００７７】
例えば、通信がコンピュータ２２００および外部デバイス間で実行される場合、ＣＰＵ２２１２は、ＲＡＭ２２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース２２２２に対し、通信処理を命令してよい。通信インタフェース２２２２は、ＣＰＵ２２１２の制御下、ＲＡＭ２２１４、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭ２２０１、またはＩＣカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【００７８】
また、ＣＰＵ２２１２は、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６（ＤＶＤ−ＲＯＭ２２０１）、ＩＣカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がＲＡＭ２２１４に読み取られるようにし、ＲＡＭ２２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ２２１２は次に、処理されたデータを外部記録媒体にライトバックする。
【００７９】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。ＣＰＵ２２１２は、ＲＡＭ２２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索／置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ２２１４に対しライトバックする。また、ＣＰＵ２２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ２２１２は、第１の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、それにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【００８０】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ２２００上またはコンピュータ２２００近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはＲＡＭのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ２２００に提供する。
【００８１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００８２】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００８３】
１０…学習装置、１１…プロセッサ、１２…入力部、１４…記憶部、１５…学習部、１６…暗号部、１７…制御部、１８…検証部、２０…処理装置、２１…プロセッサ、２２…入力部、２４…記憶部、２５…復号部、２６…処理部、２７…制御部、２２００…コンピュータ、２２０１…ＤＶＤ−ＲＯＭ、２２１０…ホストコントローラ、２２１４…ＲＡＭ、２２１６…グラフィックコントローラ、２２１８…ディスプレイデバイス、２２２０…入／出力コントローラ、２２２２…通信インタフェース、２２２４…ハードディスクドライブ、２２２６…ＤＶＤ−ＲＯＭドライブ、２２４０…入／出力チップ、２２４２…キーボード。
【要約】      （修正有）【課題】ユーザ環境内に配置されたユーザ端末上で起動される機械学習プログラム及び生成される機械学習モデルから、開発した技術が漏洩しないプログラムを提供する。【解決手段】学習装置１０は、訓練データの入力を受け付ける入力部１２、暗号鍵を含んで難読化された学習プログラムを実行するプロセッサ１１を備える。プロセッサにより学習プログラムが実行されると、訓練データを適用して処理モデルを機械学習により生成し、処理モデルに含まれるモデル情報を、暗号鍵を用いて暗号化して暗号化モデル情報を生成する暗号部を発現する。【効果】学習装置を用いて機械学習を実行するユーザに学習プログラムとともに暗号鍵を提供しながらも、オンプレミスで、学習プログラム及びモデル情報をユーザに読み取られることなく、学習プログラムを実行し、機械学習により生成される処理モデルに含まれるモデル情報を出力することが可能となる。【選択図】図１【図１】
0006804074.tif 000003
【図２】
0006804074.tif 000004
【図３】
0006804074.tif 000005
【図４】
0006804074.tif 000006
【図５】
0006804074.tif 000007
【図６】
0006804074.tif 000008
【図７】
0006804074.tif 000009