(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023175861
(43)【公開日】2023-12-12
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
G06F 21/44 20130101AFI20231205BHJP
H04L 67/10 20220101ALI20231205BHJP
【FI】
G06F21/44
H04L67/10
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023161743
(22)【出願日】2023-09-25
(62)【分割の表示】P 2023505807の分割
【原出願日】2022-10-18
(31)【優先権主張番号】P 2021170249
(32)【優先日】2021-10-18
(33)【優先権主張国・地域又は機関】JP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
(71)【出願人】
【識別番号】513190830
【氏名又は名称】Fairy Devices株式会社
(74)【代理人】
【識別番号】100116850
【弁理士】
【氏名又は名称】廣瀬 隆行
(74)【代理人】
【識別番号】100165847
【弁理士】
【氏名又は名称】関 大祐
(72)【発明者】
【氏名】藤野 真人
(72)【発明者】
【氏名】久池井 淳
(72)【発明者】
【氏名】竹崎 雄一郎
(57)【要約】
【課題】複数の端末装置を一括管理するのに適した情報処理システムを提供する。
【解決手段】情報処理システム100は、複数の端末装置10、クライアント装置20、及び一又は複数のサーバ装置を含むクラウド30を備える。クライアント装置又はクラウドは、複数の端末装置の中から特定の端末装置を指定すると共に特定の端末装置に対して所定のプログラムに従った処理を指示する処理指示部と、所定のプログラムを実行するのに必要な認証情報を保持する認証情報記憶部と、処理指示部により指定された特定の端末装置に対し処理指示部により指示されたプログラムに従った処理を行うのに必要な認証情報又はそれに代わる一時情報を提供する認証情報提供部とを有する。特定の端末装置は、認証情報提供部から提供された認証情報又は前記一時情報を利用して、処理指示部からの指示に基づく処理を行う。
【選択図】
図4
【特許請求の範囲】
【請求項1】
複数の端末装置と、クライアント装置と、前記複数の端末装置及び前記クライアント装置に対してネットワークを通じて接続された一又は複数のサーバ装置を含むクラウドとを備える、情報処理システムであって、
前記クライアント装置又は前記クラウドは、
前記複数の端末装置の中から特定の端末装置を指定すると共に、前記特定の端末装置に対して、所定のプログラムに従った処理を指示する処理指示部と、
所定のプログラムを実行するのに必要な認証情報を保持する認証情報記憶部と、
前記処理指示部により指定された前記特定の端末装置に対し、前記処理指示部により指示されたプログラムに従った処理を行うのに必要な若しくは当該処理を行うことが許可されているかを確認するための認証情報、又は、当該認証情報に代わる一時情報を提供する認証情報提供部と、を有し
前記特定の端末装置は、
前記認証情報提供部から提供された前記認証情報又は前記一時情報を利用して、前記処理指示部からの指示に基づく処理を行う
情報処理システム。
【請求項2】
前記クライアント装置又は前記クラウドは、前記プログラムを実行するプログラム実行部をさらに有し、
前記処理指示部は、前記特定の端末装置に対して、前記プログラム実行部が実行した前記プログラムに従った処理を指示し、
前記特定の端末装置は、前記処理指示部からの指示に基づく処理を行う
請求項1に記載の情報処理システム。
【請求項3】
前記プログラムは、処理命令を含むものであり、
前記処理指示部は、前記特定の端末装置に対して、前記処理命令に基づく処理を指示し、
前記特定の端末装置は、前記処理命令に基づく処理を実行する
請求項2に記載の情報処理システム。
【請求項4】
前記プログラムは、Web会議用のアプリケーションプログラムであり、
前記認証情報は、Web会議のホストアカウント用の認証情報とゲストアカウント用の認証情報を含み、
前記処理指示部は、前記複数の端末装置の中からWeb会議のホストアカウントを割り当てる一の端末装置と、当該一の端末装置によってホストされるWeb会議に参加するゲストアカウントを割り当てる他の端末装置を指定する
請求項1又は請求項2に記載の情報処理システム。
【請求項5】
前記一の端末装置のホストアカウントと前記他の端末装置のゲストアカウントは入替え可能である
請求項4に記載の情報処理システム。
【請求項6】
前記処理指示部は、前記端末装置のバッテリー残量又は通信品質に基づいて、前記ホストアカウントを割り当てる前記一の端末装置を指定する
請求項4に記載の情報処理システム。
【請求項7】
前記複数の端末装置には、表示部を有しない端末装置が含まれる
請求項1に記載の情報処理システム。
【請求項8】
前記プログラムは、複数の処理命令を含むものであり、
前記処理指示部は、さらに、前記プログラムに含まれる処理命令ごとに、当該処理命令に基づく処理を行う装置を、前記複数の端末装置、前記複数のサーバ装置、及び前記クライアント装置の中から選定し、
前記処理指示部により選定された前記端末装置、前記サーバ装置、又は前記クライアント装置は、前記処理指示部により指示された処理命令に基づく処理を実行する
請求項1又は請求項2に記載の情報処理システム。
【請求項9】
前記処理指示部は、前記プログラムに含まれる処理命令に基づく処理の少なくとも一部を、前記複数のサーバ装置又は前記クライアント装置に行わせる
請求項1に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムに関する。より具体的には、本発明に係る情報処理システムは、端末装置の遠隔制御に関するものであり、現場の作業員の遠隔支援などに利用される。
【背景技術】
【0002】
従来から、作業者に装着されたウェアラブルデバイスと、このデバイスとインターネットを通じて接続された管理装置を有する遠隔作業支援システムが知られている(例えば特許文献1)。管理装置は、作業者の現場での作業を遠隔で監視したり指示を与えたりする支援者によって操作される。ウェアラブルデバイスにはカメラやポインティングデバイス、マイクが搭載されており、支援者は、管理装置を介してこのウェアラブルデバイスを制御することで、カメラによる撮影画像を確認したり、ポインティングデバイスを通じて作業者に対して指示を送ることができる。
【0003】
また、本願出願人は、小型で多機能な首掛け型のウェアラブルデバイスを提案している(例えば特許文献2)。この首掛け型装置は、カメラや、スピーカ、マイク、ジェスチャーセンサ等の入出力機器を備えており、対話している者同士の会話の録音や解析、カメラによる撮影画像の解析を行うことができる。また、この特許文献2では、首掛け型装置を装着している者の間で音声通話を行うことも提案されており、この首掛け型装置を利用すれば、現場の作業者同士の間で遠隔会議を行うこともできる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-150400号公報
【特許文献2】特開2021-082802号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、従来の遠隔作業支援システムのように、管理装置がインターネットを介してウェアラブルデバイス等の端末装置の制御を行うシステムにおいては、端末装置に実行させる機能ごとに、個別にその機能専用のアプリケーションプログラムを端末装置にインストールしておくことが前提とされていた。例えばカメラの制御や、音声解析、画像解析、Web会議の各機能を実行するにはそれぞれ個別のプログラムが必要となり、端末装置がこれらのプログラムを有しない場合に、管理装置によって端末装置を遠隔制御したとしても、その端末装置に実際にこれらの機能を実行させることができない。このため、端末装置の機能ごとにプログラムを個別に開発する必要があり開発コストがかかるという問題がある。また、端末装置ごとにインストールされているプログラムの種類が異なるということも想定される。この場合、端末装置を個別に制御してプログラムを実行させることが必要であり、複数の端末装置を一括して制御及び管理することが困難になるという問題がある。
【0006】
一方で、端末装置に個別のアプリケーションプログラムを事前に実装させない場合に、そのプログラムを実行するための認証情報をどのように扱うかという問題が発生する。例えば、端末装置で特定のプログラムの実行が必要になった際に、そのプログラムと認証情報を端末装置に送信することとすると、認証処理のセキュリティを保つことができない。また、端末装置に特定のプログラムのみを受け渡し、端末装置を装着するユーザによって認証情報(アカウント名とパスワード)を端末装置に入力することも考えられるが、作業が煩雑となるとともに、パスワードの失念などのリスクもある。
【0007】
また、IoTなどに代表されるサーバクライアント型のシステムにおいては、あるサービスを実現するための処理をサーバ装置と端末装置のどちらで行うかを検討する必要がある。具体例を挙げると、端末装置を利用した遠隔支援サービスや作業映像記録サービスにおいては、端末装置が撮影した映像の中に人の顔や自動車のナンバープレートなどの個人情報が映り込むことがあるため、プライバシーの問題から映像内の所定領域にモザイク処理が行われる。このとき、例えば、モザイク処理を端末装置内で行うのかサーバ装置で行うのかが問題となる。例えばより秘匿性の高い個人情報については端末装置内でモザイク処理を行いサーバ装置にもその個人情報が保存されないように配慮する必要がある。一方で、秘匿性の低い情報については処理能力の高いサーバ装置において一括してモザイク処理を行うほうが効率的である。このように、端末装置が利用される状況や作業場所に応じて処理を行う場所を適宜変更できるようにすることが望まれるが、そのためには通常、処理を行う場所に応じて専用のアプリケーションプログラムを用意しておくことが必要となる。この場合、ある端末装置にはその装置内で撮影画像にモザイク処理を行うプログラムを実装し、別の端末装置には撮影画像をサーバ装置にアップロードしてモザイク処理を行わせるプログラムを実装するといったように、用途ごとに端末装置に実装するプログラムの種類を変えることも考えられる。しかし、端末装置ごとにインストールされているプログラムの種類が異なると、複数の端末装置を一括して制御及び管理することが困難になるという問題があることは、前述したとおりである。
【0008】
本発明は、上記した従来技術の問題点に鑑みて検討されたものであり、上記問題点の少なくとも1つを解決することを目的とする。より具体的には、本発明は、複数の端末装置を一括管理するのに適した情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、情報処理システムに関する。本発明に係る情報処理システムは、複数の端末装置、クライアント装置、及びクラウドを備える。クラウドは、複数の端末装置及びクライアント装置に対してネットワークを通じて接続された一又は複数のサーバ装置を含んで構成されている。本発明において、端末装置の例は、ウェアラブルデバイスである。特に、端末装置は、首掛け型のウェアラブルデバイスであることが好ましい。ただし、端末装置はウェアラブルデバイスに限定されず、例えばカメラやマイク、その他のセンサ(温度センサ、光学センサ等)、モニタ、プロジェクタ、スピーカ、アクチュエータ(モータ等)といった各種の入出力機器を備えたエッジデバイスであってもよい。エッジデバイスの一例は監視カメラである。
【0010】
本発明に係る情報処理システムにおいて、クライアント装置及び/又はクラウドは、処理指示部、認証情報記憶部、及び認証情報提供部を有する。処理指示部は、複数の端末装置の中から特定の端末装置を指定すると共に、特定の端末装置に対して、所定のプログラムに従った処理を指示する。認証情報記憶部は、所定のプログラムを実行するのに必要な認証情報を保持している。認証情報提供部は、処理指示部により指定された特定の端末装置に対し、処理指示部により指示されたプログラムに従った処理を行うのに必要な認証情報又はそれに代わる一時情報(権限許可用のトークン)を提供する。この場合の認証情報等の例は、外部のウェブ会議のサービスを提供する事業者のサーバ装置にアクセスしてログインするための認証情報である。もしくは、認証情報提供部は、処理指示部により指定された特定の端末装置に対し、処理指示部により指示されたプログラムに従った処理を行うことが許可されているかを確認するための認証情報又はそれに代わる一時情報(権限許可用のトークン)を提供する。この場合の認証情報の例は、プログラムに従った特定の処理(例えば撮影画像に対するモザイク処理)を行うことのできる装置が予め制限されている場合に、端末装置にその処理を行う許可が与えられているかどうかを確認するための認証情報である。そして、複数の端末装置のそれぞれは、認証情報提供部から提供された認証情報又は一時情報を利用して、処理指示部からの指示に基づく処理を行う。例えば、端末装置は、ウェブ会議のサービスを提供する外部のサーバ装置にアクセスし、認証情報提供部から提供された認証情報等を利用してウェブ会議に関する処理を実行する。また、例えば、撮影画像に対するモザイク処理を行うことのできる装置が予め制限されている場合に、端末装置は、認証情報提供部から提供された認証情報等を利用してこの処理を行う許可が自己端末に与えられているかどうかを確認し、許可の確認が取れた場合にこの処理を実行する。なお、本発明において、端末装置自体がプログラムを実行する必要はなく、端末装置はクライアント装置又はクラウドで実行されたプログラムに従った処理(すなわち「処理指示部からの指示に基づく処理」)を行えばよい。この場合、端末装置は、プログラムをインストールしておく必要はなく、クライアント装置又はクラウドで実行されたプログラム内の命令に従って呼び出される関数を有していればよい。
【0011】
上記構成のように、クライアント装置又はクラウドにおいて端末装置に行わせる処理を指定し、その処理に必要な認証情報やそれに代わる一時情報を端末装置に提供することで、端末装置自体がアプリケーションプログラムや認証情報を有していなくても、各端末装置において所定の処理(関数)を実行させることが可能となる。これにより、複数の端末装置を一括的に管理して遠隔制御することが容易になる。
【0012】
本発明に係る情報処理システムおいて、クライアント装置又はクラウドは、処理指示により指示されたプログラムを実行するプログラム実行部をさらに有することが好ましい。この場合、クライアント装置又はクラウドの処理指示部は、特定の端末装置に対して、プログラム実行部が実行したプログラムに従った処理を指示する。そして、特定の端末装置は、処理指示部からの指示に基づく処理、言い換えるとプログラム実行部によって実行されたプログラムに従った処理を行うこととなる。つまり、処理指示部により指示されたプログラムは、各端末装置において実行されるのではなく、クライアント装置又はクラウドにおいて実行される。このプログラムには、端末装置内の複数の関数を実行させるための処理命令(関数呼出命令)が含まれている。これにより、端末装置内に予めプログラムをインストールしておかなくても、例えば公知のソフトウェア開発キット(SDK:Software Development Kit)として提供されている多様な関数が端末装置内に保持されていれば、端末装置に対して任意の処理を行わせることができる。なお、詳しくは後述するように、クライアント装置又はクラウドにて実行されたプログラムに応じて、リアルタイムかつ高速に各端末装置にて処理を行わせるために、クラウド及び端末装置にはそれぞれミドルウェアを実装しておくことが有効である。
【0013】
また、クライアント装置又はクラウドが実行するプログラムは、一又は複数の処理命令(関数呼出命令)を含むものである。このため、処理指示部は、特定の端末装置に対して、このプログラムに含まれる処理命令に基づく処理を指示することとなる。この場合、特定の端末装置は、プログラムに含まれる処理命令に基づく処理を実行する。
【0014】
本発明に係る情報処理システムにおいて、プログラムは、Web会議用のアプリケーションプログラムであってもよい。また、認証情報は、Web会議のホストアカウント用の認証情報とゲストアカウント用の認証情報を含むものであってもよい。この場合、処理指示部は、複数の端末装置の中からWeb会議のホストアカウントを割り当てる一の端末装置と、当該一の端末装置によってホストされるWeb会議に参加するゲストアカウントを割り当てる他の端末装置を指定することが好ましい。これにより、複数の端末装置間でWeb会議を開催することが可能となる。すなわち、従来、複数の作業者にそれぞれウェアラブルデバイスを装着させて、このウェアラブルデバイスを通じてWeb会議を開催する場合、それらの端末装置を管理しているサーバ装置又はクライアント装置においてホストを行うことが一般的である。これに対して、本発明によれば、サーバ装置又はクライアント装置がホストを行う必要がなく、特定の端末装置にホストアカウウントを割り当てることが可能となるため、端末装置間でのWeb会議が可能である。
【0015】
本発明に係る情報処理システムにおいて、一の端末装置のホストアカウントと他の端末装置のゲストアカウントは入替え可能であることが好ましい。例えば、Web会議をホストしている端末装置にバッテリー切れが発生しそうな場合や、ネットワーク接続が切れることが事前に分かっている場合(電波強度が一定以下に変化した場合)などに、ホスト権限をさらに別の端末装置に移動させればよい。これにより、端末装置間でのWeb会議を継続することが容易になる。ホストアカウントとゲストアカウントの入れ替えは自動的に行うことができる。
【0016】
本発明に係る情報処理システムにおいて、クライアント装置又はクラウドの処理指示部は、端末装置のバッテリー残量又は通信品質に基づいて、ホストアカウントを割り当てる一の端末装置を自動的に指定することしてもよい。また、当然、クライアント装置又はクラウドの処理指示部は、端末装置のバッテリー残量と通信品質の両方に基づいて、ホストアカウントを割り当てる一の端末装置を自動的に指定することも可能である。例えば、処理支持部は、Web会議を行っている複数の端末装置のうち、最もバッテリー残量が多い端末をホストアカウントに指定することとしてもよいし、最も通話品質が高い端末をホストアカウントに指定することとしてもよい。また、Web会議中に端末装置のバッテリー残量や通話品質に変動があった場合には、ホストアカウントとゲストアカウントを自動的に入れ替えることもできる。なお、「通話品質」とは、複数の端末装置間で行われる通話において、ユーザの会話がよく聞こえる度合いに関連する一又は複数の通話特性を数量化したものである。ここにいう通話特性には、例えば、電波の受信強度などの電気的特性、通信伝送系における周波数特性、及び/又は雑音などの音響特性が含まれる。
【0017】
本発明に係る情報処理システムにおいて、複数の端末装置には、ディスプレイ等の表示部を有しない端末装置が含まれることが好ましい。端末装置が表示部を有しないものである場合、端末装置のユーザは、アプリケーションプログラムの操作などの複雑な操作を行うことが困難となるが、このような端末装置についてこそ、本発明のシステムを利用して、クライアント装置によって端末装置を遠隔操作することが特に有効となる。
【0018】
本発明に係る情報処理システムにおいて、プログラムは、複数の処理命令(関数呼出命令)を含む。処理指示部は、プログラムに含まれる処理命令ごとに、当該処理命令に基づく処理を行う装置を、複数の端末装置、複数のサーバ装置、及び前記クライアント装置の中から選定する。そして、処理指示部により選定された端末装置、サーバ装置、又はクライアント装置は、処理指示部により指示された処理命令に基づく処理(関数)を実行する。これにより、プログラムに応じた処理を実行する場所を、複数の端末装置、サーバ装置、又はクライアント装置の中から、任意又は自動的に指定することができる。従来、プログラムに応じた処理は、そのプログラムがインストールされている装置内ですべて実行することが常識であったが、本発明によれば、プログラムがインストールされているか否かを問わず、処理ごとにその実行場所をある程度任意に選択できるようになる。例えば、処理指示部は、プログラムに含まれる処理命令に基づく処理の少なくとも一部を、複数のサーバ装置又はクライアント装置に行わせることとすればよい。
【発明の効果】
【0019】
本発明によれば、複数の端末装置を一括管理するのに適した情報処理システムを提供することができる。
【図面の簡単な説明】
【0020】
【
図1】
図1は、本発明に係る情報処理システムの全体図を示している。
【
図2】
図2は、端末装置(ウェアラブルデバイス)の一例を示している。
【
図3】
図3は、情報処理システムを構成する端末装置、クライアント装置、及びクラウドのそれぞれについて、ハードウェア要素の一例を示したブロック図である。
【
図4】
図4は、情報処理システムを構成する主なソフトウェア要素の一例を示したブロック図である。
【
図5】
図5は、端末装置間でWeb会議を開催する場合におけるデータや命令の流れの一例を示している。
【
図6】
図6は、情報処理システムに含まれる主なソフトウェア要素の別例を示したブロック図である。
【
図7】
図7は、端末装置が取得した動画データに対してモザイク処理を行う場合の例を示したフロー図である。
【発明を実施するための形態】
【0021】
以下、図面を用いて本発明を実施するための形態について説明する。本発明は、以下に説明する形態に限定されるものではなく、以下の形態から当業者が自明な範囲で適宜変更したものも含む。
【0022】
図1は、本発明の一実施形態に係る情報処理システム100の全体構成を模式的に示している。本実施形態に係る情報処理システム100は、主に複数の作業者が現場で行う作業を支援者がインターネットを介して遠隔で支援するといった用途で好適に用いられる。
【0023】
図1に示されるように、情報処理システム100は、複数の端末装置10と、クライアント装置20と、クラウド30を含む。端末装置10の例は、ウェアラブルデバイスである。ウェアラブルデバイスとしては、例えば首掛け型、眼鏡型、頭部装着型、及び腕時計型など挙げられるが、本実施形態では首掛け型のウェアラブルデバイスを採用している。このような端末装置10は、複数の作業者がそれぞれ一つずつ装着することになる。クライアント装置20としては、汎用的なパーソナルコンピュータ(PC)を利用できる。クライアント装置20は、基本的に複数の端末装置10を装着した作業者を支援するための支援者によって操作される。クラウド30は、インターネットを介して相互に接続された複数のサーバ装置によって構成されている。クラウド30は、複数の端末装置10及びクライアント装置20とインターネットを介して接続されており、クライアント装置20からの制御命令やデータを端末装置10に送信したり、その反対に端末装置10により得られたデータをクライアント装置20に送信するといった中継装置としての機能をも有する。
【0024】
図2は、端末装置10の一例を示した外観斜視図である。また、
図3にも、端末装置10のハードウェア要素の例が示されている。
図2に示されるように、本実施形態における端末装置10は首掛け型のウェアラブルデバイスである。端末装置10は、左腕部と、右腕部と、それらを装着者の首裏にて接続する本体部を備える。端末装置10を装着する際には、本体部を装着者の首裏に接触させ、左腕部と右腕部を装着者の首横から胸部側に向かって垂らすようにして、装置全体を首元に引っ掛ければよい。端末装置10の筐体内には、各種の電子部品が格納されている。
【0025】
左腕部と右腕部には、それぞれ複数の集音部14(マイク)が設けられている。集音部14は、主に装着者の周囲の音や、装着者と対話者の音声を取得することを目的として配置されている。装着者周囲で発生した音を広く集音できるように、集音部14としては、全指向性(無指向性)のマイクロホンを採用することが好ましい。集音部14としては、ダイナミックマイクやコンデンサマイク、MEMS(Micro-Electrical-Mechanical Systems)マイクなど、公知のマイクロホンを採用すればよい。集音部14は、音を電気信号に変換し、その電気信号をアンプ回路によって増幅した上で、A/D変換回路によってデジタル情報に変換して制御部11へと出力する。集音部14によって取得した音信号は、筐体内に設けられた制御部11へ伝達されて所定の解析処理が行われる。
【0026】
左腕部には、撮像部16がさらに設けられている。具体的には、左腕部の先端面に撮像部16が設けられており、この撮像部16によって装着者の正面側の静止画像や動画像を撮影することができる。撮像部16によって取得された画像は、筐体内の制御部11に伝達され画像データとして記憶される。撮像部16としては一般的なデジタルカメラを採用すればよい。撮像部16は、例えば、撮影レンズ、メカシャッター、シャッタードライバ、CCDイメージセンサユニットなどの光電変換素子、光電変換素子から電荷量を読み出し画像データを生成するデジタルシグナルプロセッサ(DSP)、及びICメモリで構成される。撮像部16によって取得された画像データは、制御部11へと供給されて記憶部12に記憶され、所定の画像解析処理が行われたり、あるいは通信部13を介してインターネット経由でクラウドへと送信される。
【0027】
また、左腕部には、操作部15がさらに設けられている。操作部15は、装着者による操作の入力を受け付ける。操作部15としては、公知のスイッチ回路又はタッチパネルなどを採用することができる。操作部15は、例えば音声入力の開始又は停止を指示する操作や、装置の電源のON又はOFFを指示する操作、スピーカの音量の上げ下げを指示する操作、その他端末装置10の機能の実現に必要な操作を受け付ける。操作部15を介して入力された情報は制御部11へと伝達される。
【0028】
右腕部には、非接触型のセンサ部17がさらに設けられている。センサ部17は、主に端末装置10の正面側における装着者の手の動きを検知することを目的として、右腕部の先端面に配置されている。センサ部17の例は、近接センサ又はジェスチャーセンサである。近接センサは、例えば装着者の手指が所定範囲まで近接したことを検知する。近接センサとしては、光学式、超音波式、磁気式、静電容量式、又は温感式などの公知のものを採用できる。ジェスチャーセンサは、例えば装着者の手指の動作や形を検知する。ジェスチャーセンサの例は光学式センサであり、赤外発光LEDから対象物に向けて光を照射し、その反射光の変化を受光素子で捉えることで対象物の動作や形を検出する。センサ部17による検知情報は、制御部11へと伝達され、主に撮像部16の制御に利用される。具体的には、センサ部17の検知情報は、撮像部16起動や、撮影の開始、停止など、主に撮像部16の制御に利用される。例えば、センサ部17は、装着者の手などの物体がそのセンサ部17に近接したことを検知して撮像部16を制御することとしてもよいし、あるいはセンサ部17の検知範囲内で装着者が所定のジェスチャーを行ったことを検知して撮像部16を制御することとしてもよい。なお、本実施形態において、撮像部16とセンサ部17の位置を入れ替えることも可能である。
【0029】
装着者の首裏に位置する本体部の外側(装着者の反対側)には放音部(スピーカ)18が設けられている。本実施形態において、放音部18は、本体部の外側に向かって音を出力するように配置されている。このように、装着者の首裏から真後ろに向かって音を放出することで、この放音部18から出力された音が、装着者の正面前方に存在する対話者に直接的に届きにくくなる。これにより、対話者は、装着者自身が発した音声と端末装置10の放音部18から発せられた音とを区別しやすくなる。放音部18は、電気信号を物理的振動(すなわち音)に変換する音響装置である。放音部18の例は、空気振動により音を装着者に伝達する一般的なスピーカである。また、放音部18としては、装着者の骨を振動させることにより音を装着者に伝達する骨伝導スピーカであってもよい。なお、この場合、放音部18を本体部の内側(装着者側)に設けて、骨伝導スピーカが装着者の首裏の骨(頚椎)に接触するように構成すればよい。
【0030】
左腕部及び右腕部には、それぞれ投光部19がさらに設けられている。各投光部19は、撮像部16の撮影範囲内に光を照射できるように構成されている。投光部19の例は、公知のレーザ光源やプロジェクタである。例えば、投光部19は、レーザ光源から出射されたレーザ光により、装着者の正面側の特定箇所を指示できる。また、レーザ光源から出射されるレーザ光を走査(例えばリサージュ走査)することにより、このレーザ光によって文字や図形を表現することもできる。また、投光部19としては、公知のマイクロプロジェクタを採用し、装着者の正面側に向けて映像光を投影することとしてもよい。また、各投光部19は、筐体内部に設けられた駆動部(アクチュエータ)により、それぞれ独立して光の照射方向を変えることができるように構成されている。
【0031】
端末装置10の制御部11は、この端末装置10が備える他の要素を制御する演算処理を行う。制御部11としては、CPUなどのプロセッサを利用することができる。制御部80は、基本的に、記憶部21に記憶されているプログラム(OSを含む)を読み出してメインメモリに展開し、このプログラムに従って所定の演算処理を実行する。また、制御部80は、プログラムに従った演算結果を記憶部12に適宜書き込んだり読み出したりすることができる。また、詳しくは後述するが、端末装置10の制御部11は、クライアント装置20やクラウド30で実行されたアプリケーションプログラムの命令に従って、記憶部21から所定の関数を読み出し、その関数を実行することにより各種のハードウェア要素を制御したり所定の演算を行うことができる。
【0032】
端末装置10の記憶部12は、制御部11での演算処理等に用いられる情報やその演算結果を記憶するための要素である。記憶部12のストレージ機能は、例えばHDD及びSDDといった不揮発性メモリによって実現できる。また、記憶部12は、制御部11による演算処理の途中経過などを書き込む又は読み出すためのメインメモリとしての機能を有していてもよい。記憶部11のメモリ機能は、RAMやDRAMといった揮発性メモリにより実現できる。また、記憶部11には、それを所持するユーザ固有のID情報が記憶されていてもよい。また、記憶部11には、端末装置10のネットワーク上の識別情報であるIPアドレスが記憶されていてもよい。
【0033】
端末装置10の通信部13は、クラウド上のサーバ装置又は別の端末装置10と無線通信するための要素である。通信部13は、インターネットを介してサーバ装置や別の首掛け型装置と通信を行うために、例えば、3G(W-CDMA)、4G(LTE/LTE-Advanced)、5Gといった公知の移動通信規格や、Wi-Fi(登録商標)等の無線LAN方式で無線通信するための通信モジュールを採用すればよい。また、通信部13は、別の端末装置10と直接的に通信を行うために、Bluetooth(登録商標)やNFC等の方式の近接無線通信用の通信モジュールを採用することもできる。
【0034】
その他、端末装置10は、
図3に示した構成に加えて、ジャイロセンサ、加速度センサ、地磁気センサ、近接センサ、又はGPSセンサなどのセンサ類など、一般的な携帯型情報端末に搭載されているモジュール機器を適宜搭載することができる。
【0035】
図2及び
図3から明らかなように、本実施形態において、端末装置10は、ディスプレイやモニタなどの表示装置を有しない。このため、作業者は、各ハードウェア要素のオン・オフ等の比較的簡単な操作は行うことができるものの、アプリケーションプログラムの操作など、複雑な操作は困難である。このため、このような表示装置を持たない端末装置10については、クライアント装置20によって遠隔操作することが特に有効である。
【0036】
図3は、さらに、クライアント装置20のハードウェア要素も示している。クライアント装置20としては、公知のパーソナルコンピュータ(PC)を利用できる。具体的には、クライアント装置20は、CPU等のプロセッサで構成された制御部21と、不揮発性メモリ及び揮発性メモリを含む記憶部22と、インターネット接続用の通信モジュールで構成された通信部23を含む。また、クライアント装置20は、マウスやキーボードなどの入力装置24と、ディスプレイ等の表示装置25をさらに含む。クライアント装置20は、現場の作業者に対して支援情報を提供する支援者(オペレーター等)によって操作される端末である。これにより、支援者は、遠隔地から現場に居る作業者に対して作業指示等を送ることができる。
【0037】
図3は、さらに、クラウド30のハードウェア要素も示している。本実施形態におけるクラウド30としては、一又は複数のサーバ装置31で構成された公知のクラウドシステムを利用することができる。本発明に係る情報処理システム100では、基本的に、様々な種類のアプリケーションプログラムを保持させたり、特に負荷の大きい処理を実行させたり、あるいは機密性の高い情報を保持させるために、このクラウド30を利用している。これにより、各端末装置10に予め様々なアプリケーションをインストールする手間が省けたり、各端末装置10での処理負荷が分散されたり、機密性の高い情報のセキュリティを保つことができるようになる。
【0038】
また、クラウド30には、データベース32が含まれる。なお、このデータベース32は、情報保存のためのサーバ装置を個別に設けることで構築されたものであってもよいし、各サーバ装置の記憶容量を集約することで仮想的に構築されたものであってもよい。本実施形態において、このデータベース32には、本システム内で利用するアプリケーションプログラムについて、その実行に必要な認証情報が記憶されている。例えば、アプリケーションの実行に、アカウント認証が必要である場合、データベース32には、固有のアカウント名とそのパスワードを記憶しておけばよい。その他、このデータベース32には、アプリケーションの利用に必要な様々なデータを登録しておくことも可能である。また、このデータベース32には、端末装置10の装着者(作業者)に関する情報やクライアント装置20の操作者(支援者)に関する情報を登録することとしてもよい。
【0039】
図4は、本発明に係る情報処理システム100を構成する主なソフトウェア要素を示している。
図4を参照して、情報処理システム100のアーキテクチャの基本について説明を行う。このアーキテクチャは、
図2及び
図3に示した各種ハードウェア、特に端末装置10の制御部11、記憶部12、及び通信部13、クラウド30のサーバ装置31及びデータベース32、クライアント装置20の制御部21、記憶部22、及び通信部23により実現されるものである。
【0040】
本発明に係る情報処理システム100では、基本的に、多様な関数が含まれるSDK等を各端末装置10に導入しておき、クライアント装置20又はクラウド30において実行されたアプリケーションプログラムに従って、各端末装置10において特定の関数を読み出す。これにより、各端末装置10にアプリケーションプログラムをインストールしておかなくても、実質的に各端末装置10においてアプリケーションプログラムに従った処理を行うことができる。なお、「SDK」とは、ソフトウェア開発キットであり、プログラムの実行時に利用される多様な関数をパッケージ化した情報群である。SDKとしては、例えばAndroid SDKや、iOS SDK、Microsoft Windows SDKなど、アプリケーションプログラムの開発者向けに提供されているものを適宜利用することができる。
【0041】
具体的に説明すると、
図4に示されるように、複数の端末装置10のそれぞれには、第1のミドルウェア111とSDK112が設けられる。さらに、各端末装置10には、フォアグラウンド及び/又はバックグラウンドのサービス113が設けられていてもよい。また、クラウド30には、各端末装置10の第1のミドルウェア111と連携する第2のミドルウェア112が設けられている。また、クライアント装置20及び/又はクラウド30には、端末装置10に設置されたSDK112の関数を利用するように設計されたアプリケーションプログラム121,131が設けられている。つまり、これらのアプリケーションプログラム121,131のコードは、SDK112に含まれる関数を呼び出すための処理命令が含まれている。そして、クライアント装置20又はクラウド30においてアプリケーションプログラムが実行されると、その処理命令がクラウド30の第2のミドルウェア132から端末装置10の第1のミドルウェア111に対してリアルタイムかつ高速に送信される。端末装置10の制御部11は、第1のミドルウェア111にて受信した処理命令に従ってSDK112から特定の関数を読み出して実行し、各ハードウェア要素14~19を機能させたり、所定の演算処理(画像処理や音声処理など)を行う。また、端末装置10の制御部11は、第1のミドルウェア111にて受信した処理命令(メッセージ)を、端末内にブロードキャストして適切なサービスを呼び出すことができる。これにより、端末装置10内のSDK112によって提供される機能を、公衆網・閉域網等の通信ネットワーク越しに遠隔操作できるようになる。
【0042】
第1のミドルウェア111と第2のミドルウェア132としては、例えば複数のアプリケーションプログラム又はサービス間において情報の交換を行うためのメッセージングシステムを利用することができる。クラウド30に設けられた第2のミドルウェア132の例はメッセージブローカーであり、各端末装置10に設けられた第1のミドルウェア111の例はサブスクライバーである。この場合、クライアント装置20又はクラウド30内のアプリケーションプログラム121,131を、メッセージの発行元であるパブリッシャーとみなすことができる。つまり、メッセージの発行元をパブリッシャー、メッセージの受信側をサブスクライバー、これらの間においてメッセージの中継を行う機能をメッセージブローカーという。パブリッシャーが発行したメッセージは、メッセージブローカーを経由して、サブスクライバーに配信される。サブスクライバー(第1のミドルウェア111)は、メッセージブローカー(第2のミドルウェア132)から配信された全てのメッセージを受信するのではなく、購読(サブスクリプション)と呼ばれる情報を登録して、受信するメッセージを指定することもできる。つまり、第1のミドルウェア111と第2のミドルウェア132との間では、パブリッシャーからどのサブスクライバー(第1のミドルウェア111)に対してメッセージを送信するかを指定できるだけでなく、サブスクライバー(第1のミドルウェア111)においてどのメッセージを受信するかを指定することも可能である。このようなメッセージングシステムを、Pub/Sub型(発行-購読型)ともいう。
【0043】
また、メッセージの発行元であるクライアント装置20は、例えばRESTと呼ばれる規約(API)に従ったコードにより、クラウド30のアプリケーションプログラム131を呼び出して実行させることができる。REST(REpresentational State Transfer)とは、分散システムにおいて複数のアプリケーションプログラムを連携させるに適した設計原則の一つであり、一般的にはパラメータを指定して特定のURLにHTTPでアクセスすると、XMLやJSONなどで記述されたメッセージが送られてくるようなAPIを指す。このように、クライアント装置20とクラウド30の間の通信規約にREST APIを利用することで、アプリケーションプログラムの実装言語が自由になる。また、REST APIの組み合わせによって一定の処理が実現できるため、ローコード化することもできる。その結果、端末装置10を制御するためのアプリケーションプログラムの開発人口が増えることが期待される
【0044】
図4に示した第1のミドルウェア111と第2のミドルウェア132の間には、大きく分けて3つの通信経路がある。1つ目は、命令の通信経路である。命令は、前述したPub/Sub型のメッセージングシステムを用いて、プッシュ/プル型で非同期的に第2のミドルウェア132から第1のミドルウェア111に対して送信すればよい。非同期命令の処理結果は、ウェブフック等の別経路で通知させてもよい。また、アカウント名とパスワードといった単純な認証情報であれば、この命令の通信経路を介して第1のミドルウェア111に対して送信できる。2つ目は、離散的時系列データの通信経路である。ここにいう離散的時系列データとは、例えばGPS緯度経度情報やバッテリー残量情報、装着・非装着状態、加速度センサ測定結果を解釈した結果としての姿勢情報等、スループットが相対的に小さい時系列データである。これらの離散的時系列データは、同様のメッセージングシステムを介して通信してもよいし、ウェブフック等の経路を利用してもよい。すなわち、2つ目は、1つ目の通信経路と事実上同じ通信経路である。3つ目は、連続的時系列データの通信経路である。連続的時系列データの典型例は、音声データや動画データである。その他にも、連続的時系列データとしては、高頻度に測定されるデータなど、スループットが相対的に大きい時系列データが挙げられる。このような連続的時系列データは、メッセージキューイングシステムが適している通信容量を超過しているため、別途通信経路を準備する必要がある。例えば、WebRTCやHLS(Http Live Streaming)やAmazon Kinesis Video Stream 等の通信経路であり、通信内容に応じて適切な通信方式を選択すればよい。
【0045】
このアーキテクチャを俯瞰すると、OS(Operating System)の概念が拡張されていると捉えることができる。つまり、OSの原義から、「コンピューターシステムを動作させるための基盤となるソフトウェア」という意味と捉えることができる。個別の端末装置10の動作、もしくは複数の端末群の協調動作を行うための基盤となるソフトウェアの界面は、
図4に示した一点鎖線部、すなわちクライアント装置20とクラウド30の間にあると考えることができる。このため、拡張されたOSの概念には、端末装置10とインターネット上のクラウド30が内包されるということである。このことは、開発者(ユーザー)にとって、OSは所与であり、開発対象に含まれない(操作対象である)ということと合わせて考えることで意味を持つ。すなわち、従来であれば、クラウドサービスの構築やインターネット通信プログラムの開発といったところから行う必要があった。しかしそれらがOSの提供機能として開発者に提供されることで、開発者は、インターネットやクラウドサービスの存在を意識せずに、アプリケーションプログラムのみを開発すれば良いということになる。
【0046】
続いて、本発明に係る情報処理システム100のアーキテクチャの実用例について説明する。
【0047】
図5は、アカウトの認証が必要となるアプリケーションプログラムに従った処理を端末装置10において行う場合の例を示している。具体例としては、Web会議用のアプリケーションプログラムが挙げられる。
図5に示した実施形態において、このWeb会議用のアプリケーションプログラム131はクラウド30に実装されている。Web会議用のアプリケーションプログラム131としては、例えばZoom(登録商標)やMicrosoft Teams(登録商標)などが想定される。
【0048】
図5に示した実施形態において、クライアント装置20は、クラウド30に対して、Web会議用のアプリケーションプログラム131の実行指示を行う。クライアント装置20は、そのためのアプリケーションプログラム121を備えている。クライアント装置20のアプリケーションプログラム121は、クラウド30に対する実行指示を行うための専用のプログラムであってもよいし、例えばWebブラウザ等の汎用的なプログラムを利用することとしてもよい。クライアント装置20はこれらのアプリケーションプログラム121を介してクラウド30に対して所定の指示を行うことができる。クラウド30に対する実行指示には、複数の端末装置10のうち、Web会議の参加者となる端末装置10を指定する情報が含まれる。さらに、クラウド30に対する実行指示には、Web会議のホストアカウントを割り当てる端末装置10(a)を特定する情報と、そのWeb会議にゲストアカウントで参加する別の端末装置10(b)を特定する情報が含まれていてもよい。このように、クライアント装置20において、任意の端末装置10に対してWeb会議の開始を指示するとともに、ホストアカウントとゲストアカウントの割り当てを任意に行うことができる。この場合には、クライアント装置20のアプリケーションプログラム121やそれを制御するための制御部21が、特許請求の範囲に記載の「処理指示部」として機能する。
【0049】
また、例えば、Web会議用のアカウントの割り当ては、クラウド30において自動的に行うこともできる。例えば、クラウド30は、クライアント装置20からWeb会議用のアプリケーションプログラム131を受けると、それを起動するとともに、Web会議の参加者として指定された端末装置10の中から、その時点において、例えばネットワーク環境に関する条件とバッテリーに関する条件が最適な端末装置10(a)に対してホストアカウントを割り当てて、それ以外の端末装置10(b)にゲストアカウントを割り当てることとしてもよい。例えば、最もネットワーク環境が良好で、バッテリー残量が多い(もしくは外部電源に接続されている)端末装置10を、ホストに選択することが合理的である。このように、クラウド30において自動的に各端末装置10に対してWeb会議における処理を指示することも可能である。この場合には、クラウド30のアプリケーションプログラム131やそれを制御するためのサーバ装置31が、特許請求の範囲に記載の「処理指示部」として機能する。
【0050】
次に、クラウド30において、Web会議用のアプリケーションプログラム131を実行し、第1の端末装置10(a)にホストアカウント用の処理を行わせ、第2の端末装置10(b)にゲストアカウント用の処理を行わせる。ホストアカウント用の処理を実行するには、認証情報が必要となる。このため、クラウド30から、第1の端末装置10(a)に対して、ホストアカウント用の認証情報が提供される。この認証情報は、Web会議サービスを提供する事業者の外部のサーバ装置にアクセスして、ホストアカウントとしてログインするための認証情報ある。なお、ここにいう外部のサーバ装置は、クラウド30を構成する一つのサーバ装置であるとみなすこともできる。Web会議用のアプリケーションプログラム131において、ホストアカウント用の処理を実行するのに必要となる認証情報は、データベース32に格納されている。認証情報の例は、アカウント名とパスワードの組合せ、もしくは秘密鍵である。このため、本実施形態において、クラウド30のデータベース32が、特許請求の範囲に記載の「認証情報記憶部」として機能する。ただし、この認証情報は、必ずしもクラウド30に保存しておく必要はなく、クライアント装置20に保存されていてもよい。この場合には、この認証情報は、クライアント装置20からクラウド30経由で、第1の端末装置10(a)に提供すればよい。この場合、クライアント装置20の記憶部22が、特許請求の範囲に記載の「認証情報記憶部」として機能する。
【0051】
次に、クラウド30は、Web会議用のアプリケーションプログラム131の実行の結果発生した処理命令や必要なデータを、第2のミドルウェア132を介して、メッセージングシステムにより、各端末装置10(a)(b)に対して送信する。また、その際に、クラウド30は、第1の端末装置10(a)に対しては、ホストアカウント用の処理を行うのに必要となる認証情報をあわせて送信する。なお、クラウド30は、認証情報に代えて、これと代用可能な一時トークンを発行し、第1の端末装置10(a)に送信してもよい。なお、通常、ゲストアカウントの場合には認証情報は不要であるが、ゲストアカウント用の認証情報が必要である場合には、クラウド30は、第2の端末装置10(b)に対しても、ゲストアカウント用の認証情報又はこれに代わる一時トークンを送信する。このため、クラウド30のアプリケーションプログラム131やそれを制御するためのサーバ装置31が、特許請求の範囲に記載の「認証情報提供部」として機能する。
【0052】
第1の端末装置10(a)は、第1のミドルウェア111を介して、クラウド30から処理命令(関数呼出命令)と、必要なデータと、認証情報を受信する。同様に、第1の端末装置10(b)は、第1のミドルウェア111を介して、クラウド30から処理命令(関数呼出命令)と必要なデータを受信する。第1の端末装置10(a)は、クラウド30からの処理命令に応じて、SDK112から特定の関数を読み出して実行する。その際に、所定のデータや認証情報が必要な場合には、これらを関数の実行に利用する。もしくは、第1の端末装置10(a)は、クラウド30からの処理命令を端末内にブロードキャストし、適切なサービス113を呼び出す。例えば、第1の端末装置10(a)は、集音部14と撮像部16と起動させて音声データ及び動画データを取得し、インターネット経由にて第2の端末装置10(b)などに送信する。同様に、第1の端末装置10(a)は、第2の端末装置10(b)からも音声データ及び動画データを受信する。また、第1の端末装置10(a)は、ウェブ会議のサービスを提供する事業者の外部のサーバ装置にアクセスして、ホストアカウントの認証処理を行うことも可能となる。
【0053】
また、第1の端末装置10(a)がWeb会議のホストを行うのに適さない状況となった場合、第1の端末装置10(b)から第2の端末装置10(b)に対してホストアカウント用の認証情報を移動させることも可能である。例えば、第1の端末装置10(a)の電池残量が所定値以下となった場合や、ネットワーク通信の品質が所定条件から外れた場合に、クラウド30は、第1の端末装置10(b)から第2の端末装置10(b)に対して自動的に認証情報を移動させる。これにより、Web会議を安定的に継続することができる。
【0054】
このようにして、クラウド30において実行されたアプリケーションプログラムに従い、各端末装置10内のSDK112に基づく各種機能を通信ネットワーク越しに遠隔操作できるようになる。特に、クラウド30でアプリケーションプログラムを実行して端末装置10内のSDK112の関数を適宜組合せて利用することで、端末装置10内にアプリケーションプログラムがインストールされている場合と実質的に同じ動作を、この端末装置10に行わせる事が可能である。前述した例では、ウェブ会議用のアプリケーションプログラムを挙げたが、本発明はこれに限定されず、様々なプログラムに適用できる。
【0055】
続いて、本発明に係る情報処理システム100のアーキテクチャの別の実用例について説明する。この例では、アプリケーションプログラムに従った処理を行う場所をある程度任意に指定できるようになる。
【0056】
図6に示した実施形態は、基本的なアーキテクチャは
図4に示したものと同じであるが、端末装置10のSDK112及びサービス113と同様に、クラウド30にもSDK133及びサービス134が含まれている。また、クライアント装置20にも、同様にSDK122及びサービス123を組み込むことしてもよい。
【0057】
図6に示したシステム構成において、端末装置10を利用した遠隔支援サービスや作業映像記録サービスを提供することを検討する。前者では、端末装置10により撮影された動画は遠隔支援センター側のクライアント装置20との映像通話として利用され、同時にクラウド30上のサーバ装置に動画データとして保存される。後者では、一旦端末装置10内に動画データが蓄積された後、バッチ的にクラウド30上のサーバ装置に動画データとして転送及び保存される。このようなサービスにおいては、動画データの利用や保存にプライバシーの問題が発生する。このため、動画内の所定領域にモザイク処理を行う必要がある。典型的には、動画に写り込んだ人の顔や、撮影対象物以外の背景に対してモザイク処理が施される。
【0058】
図7は、動画内の顔領域に自動的にモザイク処理を行うアプリケーションプログラムの処理のフローチャートを簡単に示している。具体的には、このアプリケーションプログラムは、端末装置10により動画データを取得する工程(ステップS1)と、動画データから人の顔領域を検出する工程(ステップS2)と、顔領域が検出されたか否かを判定する工程(ステップS3)、顔領域が検出されている場合にその領域に対してモザイク処理を行う工程(ステップS4)と、最終的な動画データを得る工程(ステップS5)を含む。例えば、このフローチャートを関数型プログラミング的に表現したものを
図7の最下段に示している。
【0059】
このプログラムにおいて、「MOVIE_DATA」は、端末装置10において取得された動画データを意味する。また、「GET_MOVIE」は、端末装置10のカメラを起動して動画データを取得する処理(ステップS1)を意味し、「DETECT_FACE」は、顔検出処理(ステップS2)を意味し、「CREATE_MOSAIC」は、顔領域へのモザイク処理(ステップS4)を意味する。また、「i」は、端末装置10のIDであり、「j」は、各処理を実行する場所を示す。
図6に示したシステムにおいて、「GET_MOVIE」は端末装置10でしか実行できない処理であるため、その処理を実行する場所として「i」が割り当てられている。他方で、その他の「DETECT_FACE」及び「CREATE_MOSAIC」の各処理を行う場所は、任意に指定することができる。具体的には、これらの処理は、端末装置10、クライアント端末20、及びクラウド30の中から選択できる。また、クラウド30を構成する多数のサーバ装置31の中から、各処理を実行するサーバ装置31を個別に指定することもできる。例えば、端末装置10を装着した作業者の作業現場(工場敷地内等)に設置されたサーバ装置や、ローカル5Gの通信網におけるMEC(Multi-Access Edge Computing)領域に設置されたサーバ装置など、いわゆるフォグサーバを処理の実行場所として指定することとしてもよい。
【0060】
顔検出処理(ステップS2)と顔領域モザイク処理(ステップS4)について、これをどの場所で実行するか、ということは本質的には任意である。例えば、端末装置10から元の動画データをクラウド30にアップロードした後、クラウド30上のサーバ装置31で集約的に顔検出処理と顔領域モザイク処理を行うことで、端末装置10の処理負荷の軽減とこれらの処理の効率化を図ることができる。ただし、プライバシー保護を最優先に考える場合、端末装置10内で顔検出処理及び顔領域モザイク処理を行って動画データを完成させ、端末装置10から動画データが外に出る時点で、顔領域のモザイク処理が済んでいるという状態とすることが、プライバシー保護の観点からは最も適切な形であるといえる。このように、扱うデータの特性や状況に応じて、どの場所でどの処理を実行するのかを任意に決定することができる。
【0061】
上記した「GET_MOVIE」、「DETECT_FACE」、及び「CREATE_MOSAIC」といった関数を含め、多様な関数を有するSDKを端末装置10だけでなく、クラウド30(あるいはそれを構成するサーバ装置31)や、クライアント装置20にも予め用意しておく。例えばクライアント装置20において、
図7に示したようなプログラムを発行してクラウド30に送信し、クラウド30の第2のミドルウェア132から、端末装置10に対して一括的にメッセージを配信する。各端末装置10は、第1のミドルウェア111によってメッセージを受け取ると、プログラムにおいて指定された関数をSDK112から読み出して実行する。同様に、クラウド30やクライアント装置20自身も、プログラムにおいて指定された関数をSDK133,122から読み出して実行することとなる。このようにして、プログラムを実行する場所を処理内容に応じて簡単に指定できるようになる。
【0062】
ここでは、動画データの顔領域に対してモザイク処理を施す場合を例に挙げて説明を行った。しかし、これはあくまで一例に過ぎず、本発明に係るシステムのアーキテクチャは、様々なアプリケーションプログラムについて、処理内容に応じてプログラムの実行場所をある程度任意に指定できる。
【0063】
また、この例で説明したモザイク処理には、実行可能場所に対する権限が設定されていても良い。例えば、例えば撮影画像に対するモザイク処理を行うことのできる装置を予め制限しておき、端末装置10、クライアント装置20、クラウド30のうち、その実行権限(又は許可)が与えられた装置のみが、このモザイク処理を実行できることしてもよい。この、実行可能場所に対する権限は、認証情報として、クラウド30上のデータベース32に保存しておくことができる。例えば、モザイク処理に実行権限が設定されている場合において、その処理を端末装置10にて行わせることが必要である場合、クラウド30はデータベース32に保存されている認証情報を端末装置10に提供する。これにより、端末装置10は、その認証情報に基づいてモザイク処理を実行できるようになる。
【0064】
以上、本願明細書では、本発明の内容を表現するために、図面を参照しながら本発明の実施形態の説明を行った。ただし、本発明は、上記実施形態に限定されるものではなく、本願明細書に記載された事項に基づいて当業者が自明な変更形態や改良形態を包含するものである。
【符号の説明】
【0065】
10…端末装置 11…制御部
12…記憶部 13…通信部
14…集音部 15…操作部
16…撮像部 17…センサ部
18…放音部 19…投光部
20…クライアント装置 21…制御部
22…記憶部 23…通信部
24…入力部 25…表示部
30…クラウド 31…サーバ装置
32…データベース 100…情報処理システム
111…第1のミドルウェア 112…SDK
113…サービス 121…アプリケーションプログラム
122…SDK 123…サービス
131…アプリケーションプログラム 132…第2のミドルウェア
133…SDK 134…サービス