以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態に係るイメージ処理方法は、以下で説明される電子機器および/またはサーバのようなコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の一実施形態に係るイメージ処理方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してイメージ処理方法をコンピュータに実行させるためにコンピュータ読み取り可能な記憶媒体に記録されてよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器1(110)の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器1(110)は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することができる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワーク、などを含むネットワークトポロジのうちの任意の1つ以上を含んでよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して、命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、サーバ150は、複数の電子機器110、120、130、140においてインストールされて実行されるコンピュータプログラムであるアプリケーションを通じて、該当のアプリケーションが目的とするサービス(一例として、本実施形態に係るイメージ処理のためのサービスの他にも、情報提供サービス、メッセージングサービス、メールサービス、コンテンツ送信サービスなど)を第1サービスとして複数の電子機器110、120、130、140に提供してよい。他の例として、サーバ160は、上述したアプリケーションのインストールおよび実行のためのファイルを複数の電子機器110、120、130、140に配布するサービスを第2サービスとして提供してよい。
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図2では、電子機器に対する例として電子機器1(110)の内部構成およびサーバ150の内部構成について説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器1(110)またはサーバ150と同一または類似の内部構成を有してよい。
電子機器1(110)およびサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、コンピュータ読み取り可能な記憶媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記憶装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記憶装置は、メモリ211、221とは区分される別の永続的記憶装置として電子機器1(110)やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電子機器1(110)においてインストールされて実行されるブラウザや特定のサービスの提供のために電子機器1(110)にインストールされたアプリケーションなどのためのコード)が記録されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータ読み取り可能な記憶媒体からロードされてよい。このような別のコンピュータ読み取り可能な記憶媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記憶媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記憶媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるコンピュータプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記憶装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信モジュール213、223は、ネットワーク170を介して電子機器1(110)とサーバ150とが互いに通信するための機能を提供してもよいし、電子機器1(110)および/またはサーバ150が他の電子機器(一例として、電子機器2(120))または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器1(110)のプロセッサ212がメモリ211のような記憶装置に記録されたプログラムコードにしたがって生成した要求が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器1(110)の通信モジュール213を通じて電子機器1(110)に受信されてよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器1(110)がさらに含むことのできる記憶媒体(上述した永続的記憶装置)に記録されてよい。
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードやマウスなどの装置を、出力装置は、ディスプレイやスピーカなどの装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器1(110)と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150に接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器1(110)のプロセッサ212がメモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。
また、他の実施形態において、電子機器1(110)およびサーバ150は、図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器1(110)がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が、電子機器1(110)にさらに含まれるように実現されてよい。
図3は、本発明の一実施形態における、イメージ処理システムの実行環境の例を示した図である。図3は、電子機器1(110)が、カメラモジュール310、OCR認識エンジン320、バーコード認識エンジン330、およびQRコード認識エンジン340を含み、サーバ150が、イメージ検索エンジン350およびディテクトアニメーション生成エンジン360を含む例を示している。実施形態によって、ディテクトアニメーション生成エンジン360は、電子機器1(110)に含まれてもよい。
各エンジン320~360は、ソフトウェアモジュールの形態で実現されてよい。例えば、電子機器1(110)が含むOCR認識エンジン320、バーコード認識エンジン330、およびQRコード認識エンジン340は、電子機器1(110)においてインストールされて実行されるアプリケーションが提供する機能的表現であってよい。この場合、電子機器1(110)のプロセッサ212は、アプリケーションのコードにしたがって、OCR認識エンジン320、バーコード認識エンジン330、およびQRコード認識エンジン340による動作を実行してよい。同じように、サーバ150が含むイメージ検索エンジン350およびディテクトアニメーション生成エンジン360も、ソフトウェアモジュールの形態で実現されてよく、サーバ150において実行されるコンピュータプログラムが提供する機能的表現であってよい。この場合、サーバ150のプロセッサ222は、コンピュータプログラムのコードにしたがってイメージ検索エンジン350およびディテクトアニメーション生成エンジン360による動作を実行してよい。
OCR認識エンジン320は、イメージ内から1つ以上の文字および/または数字を認識してよい。
バーコード認識エンジン330は、イメージ内からバーコードを認識してよい。
QRコード認識エンジン340は、イメージ内からQRコードを認識してよい。
イメージ検索エンジン350は、イメージの入力を受け、該当のイメージと関連する多様な検索結果(イメージやテキストなど)を返還してよい。
ディテクトアニメーション生成エンジン360は、イメージ内からオブジェクトを探索する過程を視覚的に表現するためのディテクトアニメーションを生成して提供してよい。このようなディテクトアニメーションは、検索結果が出るまでの待機時間にユーザの興味を誘発し、検索結果の表示が遅くないような印象を与えるための効果として活用されてよい。
電子機器1(110)が本実施形態に係るイメージ処理モードに入った場合、電子機器1(110)は、カメラモジュール310を実行させてよく、ユーザからの特別な入力がなくても、カメラモジュール310によって連続的にキャプチャされるイメージストリームを、OCR認識エンジン320、バーコード認識エンジン330、およびQRコード認識エンジン340の入力として伝達してよい。このとき、OCR認識エンジン320、バーコード認識エンジン330、およびQRコード認識エンジン340それぞれは、入力されたイメージストリームのイメージ(フレーム)を順に分析し、それぞれ該当するオブジェクト(文字、数字、バーコード、QRコードなど)をイメージ内から認識してよい。
上述のように、OCR認識エンジン320は、イメージストリームが含むイメージを順に分析することでイメージ内に含まれる文字および/または数字の認識を試行してよく、認識された文字および/または数字を返還してよい。この場合、電子機器1(110)は、返還された文字および/または数字を画面に表示してよく、表示された文字および/または数字と関連のある追加情報や追加機能を提供してよい。例えば、第1言語の文字が認識された場合、電子機器1(110)は、認識された第1言語の文字を他の言語の文字に翻訳することができる翻訳機能へのアクセスのためのユーザインタフェースを提供してよい。他の例として、電子機器1(110)は、返還された文字および/または数字をキーワードとして利用する検索機能へのアクセスのためのユーザインタフェースを提供してよい。さらに他の例として、電子機器1(110)は、返還された文字および/または数字をキーワードとして自動的に検索を行い、その検索結果を提供してもよい。
バーコード認識エンジン330は、イメージストリームが含むイメージを順に分析することでイメージ内に含まれるバーコードの認識を試行してよく、認識されたバーコードに関する情報を返還してよい。この場合、電子機器1(110)は、返還された情報と関連のある追加情報や追加機能を提供してよい。例えば、電子機器1(110)は、返還されたバーコードに関する情報に基づいて該当のバーコードに対応する情報(一例として、バーコードに対応する書籍やワインなどに関する情報)を検索し、その検索結果を追加情報として提供してよい。他の例として、電子機器1(110)は、バーコードに対応する情報へのアクセスのためのユーザインタフェースを提供してもよい。
QRコード認識エンジン340は、イメージストリームが含むイメージを順に分析することでイメージ内に含まれるQRコードの認識を試行してよく、認識されたQRコードに関する情報を返還してよい。この場合、電子機器1(110)は、返還された情報と関連のある追加情報や追加機能を提供してよい。バーコードの場合と同じように、電子機器1(110)は、認識されたQRコードに対応する情報(一例として、QRコードが含むURLに対応する情報)を追加情報として提供してもよいし、または、認識されたQRコードに対応する情報へのアクセスのためのユーザインタフェースを提供してもよい。
このように、電子機器1(110)がイメージ処理モードに入った場合、電子機器1(110)は、ユーザからの特別な入力がなくてもカメラモジュール310を実行させ、カメラモジュール310において提供されるイメージストリームのイメージそれぞれから文字、数字、バーコード、QRコードなどのようなオブジェクトを自動的に探索し、探索されたオブジェクトと関連のある追加情報や追加機能が自動的に提供されるようにすることが可能となる。
一方、電子機器1(110)は、ユーザの撮影ボタンの選択(一例として、タッチスクリーン環境においてタッチスクリーンに表示された撮影ボタンの領域をユーザが指でタッチ)のように、予め設定されたユーザインタフェースにおいてユーザ入力の発生をモニタリングしてよい。図3において、過程370は、ユーザ入力の発生をモニタリングし、ユーザ入力が発生した場合には、ユーザ入力にしたがって、キャプチャされたイメージがサーバ150に伝達される例を示している。より具体的な例として、図2を参照しながら説明したように、電子機器1(110)は、通信モジュール213を利用してネットワーク170を介してキャプチャされたイメージをサーバ150に送信してよく、サーバ150は、ネットワーク170を介して送信されたキャプチャされたイメージを、通信モジュール223を利用して受信してよい。
サーバ150は、伝達されたイメージを、イメージ検索エンジン350とディテクトアニメーション生成エンジン360にそれぞれ提供してよい。
上述のように、イメージ検索エンジン350は、電子機器1(110)でキャプチャされて、伝達されたイメージを入力として受信し、該当のイメージと関連のある多様な検索結果を返還してよい。例えば、イメージ検索エンジン350は、該当のイメージが含むオブジェクトを認識し、認識されたオブジェクトと関連するイメージや文書、テキストなどを検索して返還してよい。より具体的な例として、イメージに含まれた子犬を認識し、この子犬の種類が「レトリーバー」と分析された場合、「レトリーバー」と関連のあるイメージや文書などの検索結果を生成および返還してよい。サーバ150は、返還された検索結果を、ネットワーク170を介して電子機器1(110)に送信してよく、電子機器1(110)では、該当の検索結果をユーザに提供してよい。実施形態によって、電子機器1(110)は、イメージだけではなく、イメージをキャプチャするときの時間と電子機器1(110)の現在置、電子機器1(110)のユーザ情報などをサーバ150に追加で送信してもよい。この場合、サーバ150は、位置、時間、ユーザ情報のうちの少なくとも1つにさらに基づいて検索結果を提供してよい。例えば、イメージと関連する多様な検索結果のうち、ユーザの現在位置と関連のある検索結果や時間と関連のある検索結果が、検索結果の表示において優先順位を取得してよい。
ディテクトアニメーション生成エンジン360は、電子機器1(110)でキャプチャされて伝達されたイメージを入力として受け、該当のイメージ内からオブジェクトを探索する過程を視覚的に表現するためのディテクトアニメーションを生成してよい。この場合にも、サーバ150は、生成されたディテクトアニメーションを、ネットワーク170を介して電子機器1(110)に送信してよく、電子機器1(110)においてディテクトアニメーションを予め設定された時間にわたって該当のイメージと関連付けて表示することにより、電子機器1(110)のユーザが検索結果(上述したイメージ検索エンジン350において返還され、サーバ150から電子機器1(110)に提供される検索結果)が出るまでの待機時間に該当のユーザの興味を誘発し、検索結果の表示が遅くないような印象を与えるための効果として活用されてよい。このようなディテクトアニメーションは、基本的に、イメージから探索しようとするオブジェクトと関連する位置の複数の点と、このような点を連結する線とで構成されてよく、点の表現と点を連結する線の表現がアニメーション効果として表示されてよい。また、実施形態によって、点と線の太さや大きさ、明るさ、色などを変化させて追加的なアニメーション効果を与えてもよい。さらに、点と点を連結する線からなる面を互いに異なる色で表示して立体感を与えてもよく、または点を連結する線を曲線処理する実施形態が考慮されてもよい。このようなディテクトアニメーションについては、以下でより詳しく説明する。
図4および図5は、本発明の一実施形態における、OCR認識によって追加情報または追加機能を提供する例を示した図である。
図4は、電子機器1(110)の画面例410~440を示している。第1画面例410は、図3を参照しながら説明したように、カメラモジュール310においてキャプチャされたイメージストリームがOCR認識エンジン320に自動的に伝達され、OCR認識エンジン320においてリアルタイムで文字が認識された例を示している。
このとき、第2画面例420では、認識の完了にともない、認識された文字の色が変更されてイメージ上に表示され、T(TEXT)文字認識ボタンが表示された例を示している。
また、第3画面例430は、T文字認識ボタンの選択にともない、認識された文字に対するコピー、翻訳、読み取りなどのように、認識された文字と関連する機能が提供された例を示している。例えば、コピー機能は、認識された文字をクリップボードにコピーするための機能であってよい。また、翻訳機能は、認識された第1言語の文字を第2言語の文字に翻訳するための機能であってよい。さらに、読み取り機能は、認識された第1文字を読み上げる機能であってよく、第1文字に該当するオーディオを生成して出力する機能であってよい。
第4画面例440は、ユーザによる翻訳機能の選択にともない、認識された第1言語の文字が第2言語の文字に翻訳されて表示された例を示している。このとき、第4画面例440に表示された詳細を見る機能は、認識された第1言語の文字に対する言語辞書の検索結果や、認識された第1言語の文字をキーワードとして利用した検索結果などのように、追加コンテンツを提供するか別途の翻訳結果ページに移動するための機能であってよい。また、認識が正確になされなかったり翻訳結果が納得のいく結果でなかったりする場合には、手書き認識機能ボタンを利用して文字を直接書いて検索を実行するための手書き検索機能がさらに提供されてもよい。
図4の実施形態では、認識された文字全体に対して追加機能を提供する例について説明したが、実施形態によって、認識された文字のうちから一部を選択し、選択された一部の文字に対して該当の追加機能が提供されてもよい。
図5は、電子機器1(110)の画面例510~530を示している。このとき、第1画面例510は、テキスト(文字および/または数字)の認識前にイメージが画面に表示された例を示している。
また、第2画面例520は、テキストの認識にともない、該当のテキストがイメージ内において表示されている位置と類似の位置に、認識されたテキストを表示する例を示している。
また、第3画面例530は、認識されたテキストをユーザが見やすいように再構成して、表示した例を示している。このとき、第3画面例530では、認識されたテキストがより適切に表現されるように、イメージが暗く処理された例を示している。さらに、第3画面例530では、認識されたテキストと関連してコピー機能、翻訳機能、および読み取り機能のような追加機能が提供された例を説明している。
このとき、第2画面例520と第3画面例530で表示されるテキストは、色の変化のようなアニメーション効果や、テキストが表示されるフレームの2次元から3次元への変化などのようなアニメーション効果とともに表示されてもよい。
図6~8は、本発明の一実施形態における、認識された文字数によってフォントサイズを調節する例を示した図である。
図6は、認識された文字数が1~6文字である場合に、認識されたテキストを80pxサイズで表示する例を示している。
また、図7は、認識された文字数が7~40文字である場合に、認識されたテキストを60pxサイズで表示する例を示している。
さらに、図8は、認識された文字数が41文字以上である場合に、認識されたテキストを40pxサイズで表示する例を示している。
このように、電子機器1(110)は、認識されたテキストを表示するにあたり、イメージから認識されたテキストの文字数によってフォントサイズを自動的に調節して表示することが可能となる。
図9は、本発明の一実施形態における、バーコード認識によって追加機能を提供する例を示した図である。
図9は、電子機器1(110)の画面例910および920を示している。第1画面例910は、バーコードが含まれたイメージが表示された例を示しており、第2画面例920は、バーコード認識エンジン330によるバーコードの認識にともない、バーコードボタンが表示された例を示している。ユーザが表示されたバーコードボタンを選択した場合、該当のバーコードに該当する製品情報(一例として、書籍情報やワイン情報など)が提供されてよい。
図10は、本発明の一実施形態における、QRコード認識によって追加機能を提供する例を示した図である。
図10は、電子機器1(110)の画面例1010および1020を示している。第1画面例1010は、QRコードが含まれたイメージが表示された例を示しており、第2画面例1020は、QRコード認識エンジン340によるQRコードの認識にともない、QRコードボタンが表示された例を示している。ユーザが表示されたQRコードボタンを選択した場合、該当のQRコードが含むURLのページがランディングされてよい。
図11~15は、本発明の一実施形態における、イメージ検索結果を提供する例を示した図である。
図11は、電子機器1(110)の画面例1110~1130を示している。第1画面例1110は、イメージが表示された例を示しており、第2画面例1120は、イメージ内からオブジェクトが探索される例を示している。このとき、ユーザが撮影ボタンを押すことにともない、イメージがサーバ150に送信されてよく、サーバ150では、イメージ検索エンジン350およびディテクトアニメーション生成エンジン360においてイメージ検索とディテクトアニメーションの生成が行われてよい。第2画面例1120は、複数の点と点を連結する線とで構成されるディテクトアニメーションがサーバ150から提供されて画面に表示されることにより、犬(dog)の顔を探索していることを視覚的にユーザに知らせる例を示している。また、第3画面例1130は、探索されたオブジェクトと関連のあるテキスト情報(関連キーワード)として「子犬」と「ラブラドルレトリバー」が表示され、イメージのイメージ検索結果がさらに表示された例を示している。このようなテキスト情報とイメージ検索結果は、サーバ150から提供されてよい。このとき、探索されたオブジェクトと関連のあるテキスト情報として表示された「子犬」または「ラブラドルレトリバー」が表示された領域がユーザによって選択された場合、該当のテキスト情報をキーワードとして利用したテキスト検索結果がユーザに提供されてよい。また、イメージ検索結果それぞれがユーザによって選択された場合、該当の検索結果に相応するページがランディングされてよい。
図12は、電子機器1(110)の画面例1210~1240を示している。第1画面例1210は、イメージが表示された例を示しており、第2画面例1220と第3画面例1230は、複数の点と、点を連結する線とで構成されるディテクトアニメーションが表示されることにより、魚を探索していることを視覚的にユーザに知らせる過程の例を示している。また、第3画面例1240は、探索されたオブジェクトと関連のあるテキスト情報(関連キーワード)として「観賞魚」と「アジアアロワナ」が表示され、イメージのイメージ検索結果がさらに表示された例を示している。この場合にも、探索されたオブジェクトと関連のあるテキスト情報として表示された「観賞魚」または「アジアアロワナ」が表示された領域がユーザによって選択された場合、該当のテキスト情報をキーワードとして利用したテキスト検索結果がユーザに提供されてよい。また、イメージ検索結果それぞれがユーザによって選択された場合、該当の検索結果に相応するページがランディングされてよい。
図13~15も、図11および図12と同じように、イメージ検索結果を提供する過程の例を示している。図13は、花を外郭線に沿ってディテクトしてオブジェクトを認識してディテクトアニメーションとイメージ検索結果を提供する過程を、図14は、猫の顔を外郭線に沿ってディテクトしてオブジェクトを認識してディテクトアニメーションとイメージ検索結果を提供する過程を、図15は、エッフェル塔を外郭線に沿ってディテクトしてオブジェクトを認識してディテクトアニメーションとイメージ検索結果を提供する過程を、それぞれ示している。
図16は、本発明の一実施形態における、イメージ検索結果を提供する例を示した図であり、図17は、本発明の一実施形態における、主要カラーを抽出して彩度を制限する例を示した図である。図16は、イメージの主要カラーをオートピック技術によって抽出し、抽出された主要カラーを関連キーワードやイメージ検索結果の表示に活用する例を示している。このとき、テキストの視認性を考慮した上で、HSB(Hue-Saturation-Brightness)値で彩度(S)や明度(B)の数値を50~70%範囲に制限して活用してよい。図17は、カラーピッカー(color picker)によって主要カラーを抽出し、彩度の数値を50%に制限した例を現示している。
図18~20は、本発明の一実施形態における、イメージ検索結果を提供する例を示した図である。図18~20は、「人物_国内」、「人物_グループ」、「人物_海外」、「百科_動物」、「百科_名画」、「百科_ワイン」、「名所」、「地域」、「国内_プレース」などのような多様な類型によって予めデザインされたテンプレートとして、イメージ検索結果のうちの特定の検索結果を正解型カードの形態で実現して提供する例を示している。この場合にも、テキストの視認性を考慮した上で、HSB(Hue-Saturation-Brightness)値で彩度や明度の数値を50~70%範囲に制限して活用してよい。
図21~24は、本発明の一実施形態における、ディテクトアニメーションを表示する例を示した図である。
ディテクトアニメーションの生成方法は、以下のとおりである。例えば、上述したディテクトアニメーション生成エンジン360によってディテクトアニメーション生成方法が実行されてよい。
(1)前処理過程:グレースケール、ブロー、エッジディテクションなどのように、イメージ探索で要求される前処理を実行する過程。
(2)オブジェクト探索(Object Detection):入力された映像内からオブジェクトを検索し、該当のオブジェクトを含むバウンディングボックス(bounding box)を生成する過程。オブジェクトの検索には一般的に周知のオブジェクト探索技術が活用されてよく、生成されたバウンディングボックスの領域に対して次の過程が実行されてよい。
(3)オブジェクトの輪郭線から意味のある特徴点を抽出する過程。一例として、FASTアルゴリズムを使用して予め設定された数(一例として、約数百個)の特徴点が抽出されてよい。
(4)抽出された特徴点の凸包(convex hull)を生成する過程。一例として、該当の特徴点をすべて含むブロック多角形が凸包として生成されてよく、このような凸包の生成は、周知のアルゴリズムを使用して生成されてよい。
(5)凸包を構成する点が予め定められた数(一例として、6個)に及ばない場合、追加段階を行いながら必要な個数になるまで点を追加する過程。一例として、凸包をなす2つの点の中間から最も近い特徴点を選択し、凸包を構成するための点として活用してよい。
(6)上述した(4)および(5)で選択された複数の点で外郭線をなす複数の点(外郭点)を構成し、外郭点中心座標(中心点)を計算する過程。一例として、各座標の(X値の平均、Y値の平均)の点を中心点として計算してよい。
(7)各外郭点に対し、外郭点と中心点との間の中間値と最も近い特徴点を選択する過程。
(8)内部に線を追加しようとする場合に(6)および(7)段階を繰り返す過程。一段階の線だけを連結する場合には省略されてよい。
(9)点の座標とアニメーションの順序を返還するか、または生成されたアニメーションを返還する過程。
このような(1)~(9)の過程によるディテクトアニメーションの生成過程は、一実施形態として、デザインによって多様な形態に変形させて生成してもよい。
例えば、図21では、5個の点で構成される凸包とデブス(depth)3の点を連結した三角形構造のディテクトアニメーションを示している。より詳細に、図21は、凸包であるオブジェクトの輪郭に五角形ドットを形成して連結し、デブス2ドットを形成して五角形ドットと連結し、デブス2ドットの左右を連結し、デブス3ドットである中心点を形成してデブス2ドットとデブス3ドットを上下連結することにより、ディテクトアニメーションの形態を生成する例を示している。このとき、デブス2ドットが五角形ドットの連結線の中心と中心点(デブス3ドット)を連結した線の1/3地点に形成される例を示している。
また、図22では、9個の点で構成される凸包とデブス3の点を連結した三角形と四角形構造のディテクトアニメーションを示している。このような図22では、輪郭ドット(凸包を構成する9個の点)から中心ドット(中心点)までの直線上で色差が予め設定された差以上の座標(一例として、輪郭ドットの開始点RGB値のうち、B値で20以上の差がある位置)にドットを表示し、同じデブスのドット同士は左右を連結し、上下デブスのドットの間には最も近くの距離のドットを連結することにより、ディテクトアニメーションの形態を生成する例を示している。
さらに、図23および図24では、三角形構造の色を相違させることによって立体感を与え、同時に透明度を調節する例を示している。言い換えれば、図23よりも図24において、三角形構造における透明度がより高まった例を示している。
図25は、本発明の一実施形態における、ディテクトアニメーションの例を示した図である。図25は、図15を参照しながら説明したエッフェル塔に対するディテクトアニメーションが、単なるイメージの形態ではなく、図25において順に示した絵のように複数の点と点を連結する線との表示を繰り返すことにより、このようなディテクトアニメーションが、検索結果が出るまでの間にユーザの興味を誘発し、検索結果の表示が遅れていないような印象を与えるための効果として活用されることを示している。このとき、ディテクトアニメーションは、上述のように、点と線の太さや大きさ、明るさ、色などを変化させることによって追加的なアニメーション効果を与えてもよく、図23と図24で説明したように、三角形構造や四角形構造に互いに異なる色を適用することによって立体感を与えてもよく、または色の透明度を調節してイメージが表示される程度を決定してもよい。
図26は、本発明の一実施形態における、イメージ処理方法の例を示したフローチャートである。本実施形態に係るイメージ処理方法は、上述した電子機器1(110)のようなコンピュータ装置によって実行されてよい。例えば、電子機器1(110)のプロセッサ212は、メモリ211が含むオペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ212は、電子機器1(110)に記録されたコードが提供する制御命令にしたがって電子機器1(110)が図26のイメージ処理方法に含まれる段階2610~2640を実行するように電子機器1(110)を制御してよい。
段階2610で、コンピュータ装置は、イメージ処理モードに入ったことに応答してカメラモジュールを実行させてよい。一例として、コンピュータ装置にインストールされたアプリケーションは、イメージ処理モードに入るためのユーザインタフェースをユーザに提供してよい。ユーザのユーザインタフェースに対する入力が発生した場合、コンピュータ装置は、発生した入力にしたがって入ったイメージ処理モードにおいてカメラモジュールを実行させてよい。
段階2620で、コンピュータ装置は、実行するカメラモジュールにおいて連続的にイメージのストリームの入力を受けて順に画面に表示してよい。例えば、スマートフォンでカメラが実行される場合にカメラに入力されてスマートフォンの画面にリアルタイムで表示される映像が、このようなイメージのストリームに対応してよい。
段階2630で、コンピュータ装置は、入力されたイメージのストリームを認識エンジンに伝達してよい。カメラモジュールは、持続的に、リアルタイムで入力されるイメージのストリームを認識エンジンに伝達してよく、認識エンジンは、イメージのストリームを分析して認識エンジンが目的とする認識結果を生成してよい。例えば、図3の実施形態では、電子機器1(110)がOCR認識エンジン320のようなテキスト認識エンジンやバーコード認識エンジン330、およびQRコード認識エンジン340のようなイメージコード認識エンジンを含む例について説明した。
段階2640で、コンピュータ装置は、入力されたイメージのストリームに対して認識エンジンによって認識された認識結果が存在する場合、入力されたイメージのストリームを認識結果として表示中の画面上にさらに順に表示してよい。例えば、認識エンジンは、認識結果として入力されたイメージが含むテキストを認識するテキスト認識エンジンを含んでよい。
このとき、テキスト認識エンジンによって認識された認識結果が存在する場合、段階2640で、コンピュータ装置は、入力されたイメージから認識されたテキスト領域の位置に基づいて認識されたテキストの表示位置を動的に調節してよい。例えば、図4の第1画面例410は、イメージにおいてテキストが含まれた領域の位置に、認識されたテキストが表示された例を示している。他の例として、図5の第2画面例520でも、テキストの認識にともない、該当のテキストのイメージ内における位置と類似の位置に、認識されたテキストを表示する例を説明している。例えば、スマートフォンのようなコンピュータ装置をユーザの手で振動させることによって入力されたイメージにおいて同じテキスト領域の位置が持続的に変更されてもよい。この場合、コンピュータ装置は、テキスト領域の位置が変更されることによってテキスト領域の位置を追跡し、追跡された位置に認識されたテキストが表示されるようにテキストの表示位置を動的に調節してよい。
また、段階2640で、コンピュータ装置は、入力されたイメージのストリームを表示中の画面上に前記認識されたテキストを順に表示し、入力されたイメージのうちでテキストが認識されたイメージにおけるテキスト領域の位置に基づき、認識されたテキストの表示位置を決定してよい。例えば、コンピュータ装置は、上述のように、テキスト領域の位置が変更されることによって認識されたテキストの表示位置を動的に調節し、テキストの認識が最終的に完了すれば、最終的にテキストが認識された位置に認識されたテキストを表示してよい。この場合には、入力されたイメージにおいてテキスト領域の位置が持続的に変更されてよく、またはテキストがない他のイメージが持続的に入力される場合にも、認識されたテキストの表示位置は固定されてよい。
また、コンピュータ装置は、入力されたイメージのストリームに対して認識されたテキストに対するユーザ確認のためのユーザインタフェースを、入力されたイメージのストリームを表示中の画面上にさらに順に表示してもよい。例えば、テキスト認識エンジンによってテキストの認識が最終的に完了した後、コンピュータ装置は、最終的に認識されたテキストに対してユーザの確認を受ける過程を処理してよい。例えば、図4の第2画面420は、文字認識ボタンのように、認識されたテキストの確認をユーザから受けるためのユーザインタフェースを表示した例を示している。このとき、コンピュータ装置の画面には、依然としてイメージのストリームがリアルタイムで表示中であってよい。
このとき、認識されたテキストの確認をユーザから受けるためのユーザインタフェースでユーザ確認が発生したとき、コンピュータ装置は、入力されたイメージのうちでテキストが表示されたイメージを画面に表示してよい。例えば、コンピュータ装置は、入力されたイメージのうちの第1イメージにおいてユーザから確認を受けたテキストが認識されると、イメージのストリームを画面に表示する代わりに、既に表示された第1イメージを画面に表示してよい。また、コンピュータ装置は、画面に表示されたイメージ上に認識されたテキストのコピーのためのユーザインタフェース、および認識されたテキストの翻訳のためのユーザインタフェースのうちの少なくとも1つをさらに表示してよい。例えば、図4および図5は、「コピー」ボタンおよび「翻訳」ボタンのように、認識されたテキストのコピーと翻訳のためのユーザインタフェースが表示された例を示している。
また、コンピュータ装置は、認識されたテキストの文字数によって認識されたテキストのサイズを動的に変更して画面に表示してもよい。例えば、図6~8では、認識されたテキストにおける文字数の増加にともない、認識されたテキストのサイズを動的に減らしながら画面に表示する例について説明した。
また、他の例として、認識エンジンは、入力されたイメージが含むイメージコードを認識するためのイメージコード認識エンジンを含んでもよい。この場合、コンピュータ装置は、段階2640で、画面に順に表示されるイメージにおいて認識されたイメージコードに対応するページへのリンクを認識結果として入力されたイメージのストリームを、表示中の画面上にさらに順に表示してよい。例えば、図9では、認識されたバーコードに対応するページへのリンクを「バーコード」ボタンとして表示した例を示しており、図10では、認識されたQRコードに対応するページへのリンクを「QRコード」ボタンとして表示した例を示している。
実施形態によって、認識エンジンは、テキスト認識エンジンとイメージコード認識エンジンとともに複数の認識エンジンを含んでもよく、この場合、カメラモジュールにおいて入力されるイメージのストリームは、複数の認識エンジンそれぞれに入力されてよい。
上述した段階2610~2640は、カメラによるユーザの撮影がなされる前に、カメラに入力されたイメージのストリームに基づいてコンピュータ装置が自動的にテキストやイメージコードなどを認識して関連情報を表示する実施形態について説明している。言い換えれば、イメージ処理モードに入ったことに応答し、ユーザが撮影ボタンを押して特定の時点のイメージを選択しなくても、入力されたイメージのストリーム全体を分析することによってテキストやイメージコードの認識結果を自動的に提供することができる。
一方、ユーザが撮影ボタンを押して特定のイメージが選択された場合、コンピュータ装置は、上述した実施形態とは異なる機能をユーザに提供してよい。
図27は、本発明の一実施形態における、イメージ処理方法の他の例を示した図である。本実施形態に係るイメージ処理方法も、上述した電子機器1(110)のようなコンピュータ装置によって実行されてよい。このとき、図27の段階2710~2750は、図26の段階2620以後、撮影入力が発生する場合に実行されてよく、図27の段階が実行される場合、段階2630および段階2640は省略されてもよい。
段階2710で、コンピュータ装置は、入力されたイメージのストリームを順に表示しているときに撮影入力が発生した場合、撮影入力の発生時点と関連するイメージをキャプチャして画面に表示してよい。このような段階2710は、ユーザによる撮影入力の発生によって写真を撮影する過程を意味してよい。
段階2720で、コンピュータ装置は、キャプチャされたイメージをサーバに送信してよい。一例として、サーバは、上述したサーバ150のようなコンピュータ装置に対応してよく、キャプチャされたイメージは、ネットワーク170を介してサーバに送信されてよい。
段階2730で、コンピュータ装置は、送信されたイメージが含むオブジェクトのディテクトアニメーションをサーバから受信してよい。一例として、ディテクトアニメーションは、オブジェクトの輪郭線のうちから抽出される複数の特徴点を複数の特徴点が抽出されたイメージ上の位置に表示し、表示された特徴点のうちの少なくとも一部の特徴点を線で連結するアニメーションを含んでよい。
段階2740で、コンピュータ装置は、ディテクトアニメーションをオブジェクトと関連付けて画面に表示してよい。ディテクトアニメーションをオブジェクトと関連付けて画面に表示する例については、図11~15、図21~25を参照しながら説明したとおりである。
段階2750で、コンピュータ装置は、送信されたイメージのイメージ分析結果をサーバから受信し、画面に表示されたイメージと関連付けて表示してよい。イメージ分析結果は、イメージが含むオブジェクトの種類および/または名称を含んでよく、オブジェクトと関連してサーバで検索されたイメージ、文書、テキストのうちの少なくとも1つをさらに含んでよい。
図28は、本発明の一実施形態における、イメージ処理方法のさらに他の例を示した図である。本実施形態に係るイメージ処理方法は、上述したサーバ150のようなコンピュータ装置によって実行されてよい。例えば、サーバ150のプロセッサ222は、メモリ221が含むオペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ222は、サーバ150に記録されたコードが提供する制御命令にしたがってサーバ150が図28のイメージ処理方法に含まれる段階2810~2850を実行するようにサーバ150を制御してよい。
段階2810で、コンピュータ装置は、電子機器のカメラモジュールにおいてキャプチャされたイメージを、ネットワークを介して受信してよい。ここで、電子機器は、上述した電子機器1(110)に対応してよく、受信されるイメージは、図27の段階2720で送信されたイメージに対応してよい。言い換えれば、電子機器1(110)がユーザの撮影入力の発生によってキャプチャされたイメージを、ネットワーク170を介して送信すると、サーバ150が段階2810で該当のイメージを受信してよい。
段階2820で、コンピュータ装置は、受信されたイメージが含むオブジェクトのディテクトアニメーションを生成してよい。上述のように、ディテクトアニメーションは、オブジェクトの輪郭線のうちから抽出される複数の特徴点を複数の特徴点が抽出されたイメージ上の位置に表示し、表示される特徴点のうちの少なくとも一部の特徴点を線で連結するアニメーションを含んでよい。
段階2830で、コンピュータ装置は、生成されたディテクトアニメーションを電子機器に送信してよい。この場合、図27の段階2730を参照しながら説明したように、電子機器は、ディテクトアニメーションを受信し、段階2740のように、受信されたディテクトアニメーションをオブジェクトと関連付けて画面に表示してよい。
段階2840で、コンピュータ装置は、受信されたイメージのイメージ検索結果を生成してよい。イメージ検索結果は、イメージに含まれたオブジェクトの種類および/または名称を含んでよく、オブジェクトと関連して検索されたイメージ、文書、および/または、テキストをさらに含んでよい。
段階2850で、コンピュータ装置は、生成されたイメージ検索結果を電子機器に送信してよい。このとき、オブジェクトの種類および/または名称は、電子機器のカメラに入力されたイメージとオーバーラップさせて電子機器の画面に表示されてよい。また、検索されたイメージ、文書、および/または、テキストは、対応するページへのリンクを含み、電子機器のカメラモジュールに入力されたイメージと関連付けて電子機器の画面にさらに表示されてよい。例えば、図12は、「観賞魚」と「アジアアロワナ」のように認識されたオブジェクトの種類や名称を表示し、イメージによるインターネット検索の追加的な結果として、イメージ、文書、および/または、テキストをイメージと関連付けて表示する例を示している。
また、コンピュータ装置は、受信されたイメージが含むオブジェクトと関連して検索された情報の類型によって類型別に予めデザインされたテンプレートとして検索された情報をカードの形態で実現し、電子機器に提供してもよい。例えば、図18~20は、情報の類型(人物_国内、人物_グループ、人物_海外、百科_動物、百科_名画、百科_ワイン、名所、地域、国内_プレースなど)それぞれに対して予めデザインされたテンプレートが存在し、検索された情報の類型によって該当の類型のテンプレートとして検索された情報がカードの形態で実現されて提供される例について説明している。
このとき、電子機器で表示されたオブジェクトの種類および/または名称が選択(一例として、タッチスクリーン環境においてユーザがオブジェクトの種類および/または名称が表示された領域を指でタッチ)した場合、このような選択にともない、電子機器で発生する信号がネットワークを介してサーバに伝達されてよい。この場合、コンピュータ装置は、該当の信号を受信してよく、信号の受信に応答してオブジェクトの種類または名称をキーワードとして利用してテキスト検索結果を生成してよい。また、コンピュータ装置は、生成されたテキスト検索結果を電子機器に提供してよい。言い換えれば、電子機器のユーザは、イメージのイメージ検索結果に加え、イメージから得られたテキストのテキスト検索結果を順に提供することが可能となる。
図29は、本発明の一実施形態における、ディテクトアニメーションを生成する方法の例を示したフローチャートである。本実施形態の方法が含む段階2910~2950は、図28の段階2820に含まれて実行されてよい。
段階2910で、コンピュータ装置は、受信されたイメージが含むオブジェクトを探索してよい。例えば、コンピュータ装置は、受信されたイメージにグレースケール、ブロー、エッジディテクションなどのようなイメージ探索に要求される前処理を実行した後、イメージ内からオブジェクトを検索し、該当のオブジェクトを含むバウンディングボックス(bounding box)を生成してよい。このようなオブジェクトの検索には、一般的に周知のオブジェクト探索技術が活用されてよい。
段階2920で、コンピュータ装置は、オブジェクトの輪郭線から複数の特徴点を抽出してよい。一例として、FAST(Feature from Accelerated Segment Test)アルゴリズムを使用して予め設定された数(一例として、約数百個)の特徴点が抽出されてよい。
段階2930で、コンピュータ装置は、抽出された特徴点の凸包(convex hull)を生成してよい。一例として、凸包アルゴリズムを使用して抽出された特徴点から凸包が生成されてよい。凸包を構成するための点が予め定義された数に及ばない場合、特徴点を追加でさらに抽出してもよい。
段階2940で、コンピュータ装置は、抽出された特徴点のうち、前記凸包を構成する予め定められた数の外郭点の中心座標に基づいて中心点を計算してよい。例えば、凸包を構成する外郭点の座標に対して(X座標値の平均、Y座標値の平均)の点を中心的として計算してよい。
段階2950で、コンピュータ装置は、オブジェクトの特徴点のうち、外郭点それぞれと中心点との間の中心値に最も近い特徴点を選択してよい。選択された特徴点を外郭点として再び利用して中心点を求め、外郭点と中心点との間の特徴点を再び選択することにより、内部の線を追加してもよい。例えば、図21では、5つの点で構成される凸包とデブス3の点を連結することで三角形構造のディテクトアニメーションが形成される例を示している。
生成されたディテクトアニメーションは、図28の段階2830のように電子機器に送信されてよく、図27の段階2740のように電子機器でオブジェクトと関連付けて電子機器の画面に表示してよい。このとき、コンピュータ装置は、外郭点、中心点、および最も近い特徴点を含む選択点の座標に関する情報と選択点を線で連結する順序に関する情報を、ディテクトアニメーションとして電子機器に送信してよい。この場合、電子機器では、選択点の座標に関する情報に基づいて線を表示し、前記順序に関する情報に基づいて選択点を線で連結するアニメーションを画面に表示してよい。また、コンピュータ装置は、選択点を前記順序にしたがって連結するアニメーション自体をディテクトアニメーションとして電子機器に送信してもよい。この場合、電子機器は、オブジェクトと関連付けて該当のアニメーションを再生することにより、ディテクトアニメーションを表示してよい。
このようなディテクトアニメーションは、ユーザにイメージ処理結果を提供する過程において、ユーザが検索要求したイメージのオブジェクトに対して分析がなされていることを示すことにより、イメージ検索結果が出るまでの待機時間にユーザの興味を誘発し、検索結果の表示が遅れていないような印象を与えることができる。
図30は、本発明の一実施形態における、プレース認識によって追加情報を提供する例を示した図である。図30は、電子機器1(110)の画面例3010および3020を示している。第1画面例3010は、店の看板のように特定のプレース(place)を識別することのできる情報(一例として、商号のようなテキストや特定の商号に対応するイラストなど)がイメージに表示された例を示している。例えば、カメラモジュール310によってキャプチャされたイメージストリームがOCR認識エンジン320に自動的に伝達され、OCR認識エンジン320においてリアルタイムで文字を認識する場合が考えられる。このとき、電子機器1(110)は、アプリケーションの制御にしたがって、認識された文字が特定のプレースを識別するための情報であるかを決定してよい。認識された文字が特定のプレースを識別するための情報であると判断された場合、電子機器1(110)は、認識された文字または第1画面例3010に示されたイメージをサーバ150に送信してよい。このとき、サーバ150は、より正確なプレース識別子を認知し、プレースのメタデータ(一例として、店の場合、商号、業種、説明など)を抽出して電子機器1(110)に送信してよい。このとき、第2画面例3020は、サーバ150から提供されたプレースのメタデータが画面に上端通知バー3021の形態で表示された例を示している。このとき、上端通知バー3021には、該当のプレースと関連のあるURLへのリンクが設定されてよい。一方、電子機器1(110)は、アプリケーションの制御にしたがって第1画面例3010に示されたイメージを分析し、該当のイメージが特定のプレースのイメージであるかを決定してもよい。言い換えれば、電子機器1(110)は、イメージを大略的に分析して特定のプレースに対するイメージであるか否かだけを判断し、より正確なプレースの識別子はサーバ150において抽出されるように、該当のイメージをサーバ150に送信してよい。
図31は、本発明の一実施形態における、イメージコードの認識によって追加情報を提供する例を示した図である。図10では、電子機器1(110)におけるQRコードの認識にともない、QRコードボタンが表示され、表示されたQRコードボタンをユーザが選択した場合、該当のQRコードが含むURLのページがランディングされる例について説明した。図31の実施形態において、第1画面例3110は、QRコードが含まれたイメージが表示された例を示している。このとき、第2画面例3120は、QRコード認識エンジン340によるQRコードの認識にともない、認識されたQRコードが含むURLのメタデータをサーバ150から取得して上端通知バー3121の形態で表示する例を示している。このとき、上端通知バー3121には、QRコードが含むURLへのリンクが設定されてよい。QRコードだけでなく、バーコードに対しても、関連する商品のメタデータをサーバ150から取得して上端通知バーの形態で表示してよい。このとき、該当の上端通知バーに設定されるリンクは、関連する商品の購入と関連のあるページであってよい。
一方、上端通知バーに表示されるメタデータは、イメージコードに含まれたURLによって提供されるページに含まれる情報であり、URL、動画、イメージ、説明などのような多様な情報を含んでよい。
このように、本発明の実施形態によると、カメラによって連続的にキャプチャされる映像ストリームの少なくとも1つのフレームと関連する有意義な情報、および/または有意義な情報と関連のあるユーザインタフェースを提供することが可能となる。
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記憶媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記憶媒体に記録されてよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記憶媒体または格納媒体が挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。