(57)【要約】      （修正有）【課題】画像中の被写体の認識精度の向上を図ることができる画像認識エンジン連携装置およびプログラムを提供する。【解決手段】画像認識エンジン連携装置２は、画像認識エンジン３，４，５および画像認識エンジン３，４，５とは異なる画像解析手法により画像中の被写体の認識を行う異種エンジンであるバーコード検出エンジン６を含む複数のエンジンへの問い合わせ処理と、問い合わせ処理に応じた認識結果の受け付け処理とを含むエンジン連携処理を実行する連携処理部を有する。連携処理部は、エンジン連携処理を連携シナリオとして管理する。連携シナリオは、被認識結果の信頼性が高いエンジンから順に問い合わせ処理を行う直列型連携処理と、複数のエンジンに同時に問い合わせを処理を行い、最も信頼性の高い認識結果を採用する並列型連携処理と、直列型連携処理と並列型連携処理との組み合わせと、を含む。【選択図】図１
2018181081.tif 000002
【特許請求の範囲】
【請求項１】
画像中の被写体の認識を行う画像認識エンジン、および、前記画像認識エンジンとは異なる画像解析手法により、画像中の被写体の認識を行う異種エンジンを含む複数のエンジンへの、入力画像中の被写体の問い合わせ処理と、前記問い合わせ処理に応じたエンジンによる被写体の認識結果の受け付け処理とを含むエンジン連携処理を実行する連携処理部を有し、
前記連携処理部は、前記エンジン連携処理を連携シナリオとして管理し、
前記連携シナリオは、
被写体の認識結果の信頼性が高いエンジンから順に前記問い合わせ処理を行い、前記信頼性が高いエンジンから認識結果が得られない場合に、他のエンジンに前記問い合わせ処理を行う直列型連携処理と、
前記複数のエンジンに同時に前記問い合わせを処理を行い、前記複数のエンジンの認識結果のうち、最も信頼性の高い認識結果を採用する並列型連携処理と、
前記直列型連携処理と前記並列型連携処理との組み合わせと、を含むことを特徴とする画像認識エンジン連携装置。
【請求項２】
請求項１に記載の画像認識エンジン連携装置において、
前記エンジン連携処理には、画像中の被写体を含むと想定される物体領域を抽出する領域抽出エンジンへの、前記入力画像中の前記物体領域の問い合わせ処理と、前記問い合わせ処理に応じた前記領域抽出エンジンによる前記物体領域の抽出結果の受け付け処理とがさらに含まれ、
前記連携処理部は、前記直列型連携処理において、前記領域抽出エンジンによる前記物体領域の抽出結果に基づき、前記入力された画像をトリミングした画像を前記画像認識エンジンに入力することを特徴とする画像認識エンジン連携装置。
【請求項３】
請求項１または２に記載の画像認識エンジン連携装置において、
前記エンジン連携処理には、画像を撮影する機能を有する利用者端末により前記入力画像が撮影された際の付帯情報を推定する付帯情報推定エンジンへの、前記入力画像の付帯情報の問い合わせ処理と、前記問い合わせ処理に応じた前記付帯情報推定エンジンによる前記画像の付帯情報の推定結果の受け付け処理とがさらに含まれ、
前記連携処理部は、前記並列型連携処理において、前記付帯情報推定エンジンによる前記入力画像の付帯情報の推定結果に基づき、前記複数のエンジンによる認識結果の信頼度に対する重み付けを行い、最も信頼度の高い認識結果を採用することを特徴とする画像認識エンジン連携装置。
【請求項４】
コンピュータを請求項１から３のいずれか一項に記載の画像認識装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のエンジンを連携させて画像中の被写体の認識を行う画像認識エンジン連携装置およびプログラムに関する。
【背景技術】
【０００２】
従来、カメラで撮影した画像（静止画あるいは動画）に対して、事前にデータベースに登録された被写体の画像の画像特徴量などを用いて照合を行うことで、撮影画像に含まれる被写体を特定（認識）する画像認識技術を適用した装置およびプログラム（以下、画像認識エンジンと称する）がある（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「３次元物体をどんな方向から撮影しても高精度に認識・検索し、関連情報を提示する「アングルフリー物体検索技術」を開発〜スマホなどを看板や建物にかざすだけで、観光ナビゲーションサービスを実現〜」、[online]、［平成２９年３月２４日検索］、インターネット＜ＵＲＬ：http://www.ntt.co.jp/news2015/1502/150216a.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した画像認識エンジンを単体で用いる場合、被写体や撮影の条件によっては、被写体の認識に失敗することがある。例えば、事前にデータベースに登録された被写体と画像特徴量が類似しているが異なる被写体を撮影した場合、データベースに登録された被写体と誤認識することがある。
【０００５】
本発明の目的は、上述した課題を解決し、画像中の被写体の認識精度の向上を図ることができる画像認識エンジン連携装置およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係る画像認識エンジン連携装置は、画像中の被写体の認識を行う画像認識エンジン、および、前記画像認識エンジンとは異なる画像解析手法により、画像中の被写体の認識を行う異種エンジンを含む複数のエンジンへの、入力画像中の被写体の問い合わせ処理と、前記問い合わせ処理に応じたエンジンによる被写体の認識結果の受け付け処理とを含むエンジン連携処理を実行する連携処理部を有し、前記連携処理部は、前記エンジン連携処理を連携シナリオとして管理し、前記連携シナリオは、被写体の認識結果の信頼性が高いエンジンから順に前記問い合わせ処理を行い、前記信頼性が高いエンジンから認識結果が得られない場合に、他のエンジンに前記問い合わせ処理を行う直列型連携処理と、前記複数のエンジンに同時に前記問い合わせを処理を行い、前記複数のエンジンの認識結果のうち、最も信頼性の高い認識結果を採用する並列型連携処理と、前記直列型連携処理と前記並列型連携処理との組み合わせと、を含む。
【０００７】
また、上記課題を解決するため、本発明に係るプログラムは、コンピュータを上述した画像認識装置として機能させる。
【発明の効果】
【０００８】
本発明に係る画像認識エンジン連携装置およびプログラムによれば、画像中の被写体の認識精度の向上を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る画像認識エンジン連携装置を含む画像認識システムの構成例を示す図である。
【図２】図１に示す画像認識エンジン連携装置の構成例を示す図である。
【図３】図２に示すＩＤ解決部が用いるＩＤ対応表の一例を示す概念図である。
【図４】図２に示す画像認識エンジン連携装置による、画像認識エンジンとバーコード検出エンジンとの直列型連携処理の一例を示すフローチャートである。
【図５】図２に示す画像認識エンジン連携装置による、画像認識エンジンとバーコード検出エンジンとの並列型連携処理の一例を示すフローチャートである。
【図６】図２に示す画像認識エンジン連携装置による、画像認識エンジンと物体領域抽出エンジンとの直列型連携処理の一例を示すフローチャートである。
【図７】図２に示す画像認識エンジン連携装置による、画像認識エンジンと位置推定エンジンとの並列型連携処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について説明する。
【００１１】
図１は、本発明の一実施形態に係る画像認識エンジン連携装置２を含む画像認識システム１００の構成例を示す図である。
【００１２】
図１に示す画像認識システム１００は、利用者端末１と、画像認識エンジン連携装置２と、画像認識エンジン３，４，５と、バーコード検出エンジン６と、物体領域抽出エンジン７と、位置推定エンジン８とを備える。
【００１３】
利用者端末１は、撮影機能を備えたスマートフォン、携帯電話、タブレット端末などの端末である。また、利用者端末１は、利用者端末１の位置、姿勢など種々の情報を検出する各種のセンサを備えている。
【００１４】
利用者端末１は、利用者の操作などに応じて、画像中の被写体の認識を要求する認識要求を画像認識エンジン連携装置２に送信する。認識要求には、利用者端末１により撮影された画像（静止画あるいは動画を構成するフレーム画像）、利用者端末１が備える各種センサで検出された情報（例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）情報、Ｂｌｕｅｔｏｏｔｈ（登録商標）のビーコンＩＤ、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のＳＳＩＤ（Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）、ジャイロセンサ情報）、後述する画像認識エンジン連携装置２が実行するエンジン連携処理（以下、連携シナリオと称する）を識別する識別子（以下、連携シナリオ名と称する）などが含まれる。
【００１５】
また、利用者端末１は、画像認識エンジン連携装置２から送信されてきた、認識要求に対する回答情報を受信し、利用者に提示する。
【００１６】
画像認識エンジン連携装置２は、利用者端末１から受信した認識要求に基づき、画像認識エンジン３，４，５、バーコード検出エンジン６、物体領域抽出エンジン７および位置推定エンジン８の中の１または複数のエンジンに個別要求を送信する。個別要求には、個別要求の送信先のエンジンが処理を実行するためのコマンド、個別要求の送信先のエンジンが処理を実行するための入力データなどが含まれる。個別要求の送信先が画像認識エンジン３，４，５、バーコード検出エンジン６および物体領域抽出エンジン７である場合には、入力データは、認識要求に含まれる画像である。また、個別要求の送信先が位置推定エンジン８である場合には、入力データは、認識要求に含まれるＧＰＳ情報、ＢｌｕｅｔｏｏｔｈのビーコンＩＤ、無線ＬＡＮのＳＳＩＤなどである。
【００１７】
また、画像認識エンジン連携装置２は、個別要求の送信先のエンジンから個別要求に対する実行結果である個別結果を受信する。画像認識エンジン連携装置２は、受信した個別結果に対して加工処理や判定処理を行い、個別結果を送信してきたエンジンとは別のエンジンに個別要求を送信するか、あるいは、認識要求に対する回答情報を利用者端末１に送信する。
【００１８】
画像認識エンジン３，４，５は、画像認識エンジン連携装置２から受信した個別要求に含まれる画像（入力画像）を用いて画像認識処理を実行し、認識結果を個別結果として画像認識エンジン連携装置２に送信する。画像認識処理とは、入力画像と画像認識エンジン３，４，５の画像データベースに登録された参照画像とに対して、画像解析により抽出した画像特徴量の類似度を計算し、最も類似度の高い参照画像を決定する処理である。画像認識エンジン３，４，５が送信する個別結果には、入力画像との類似度が最も高いと決定した参照画像を示す識別子（以下、被写体ラベルと称する）、入力画像中の被写体の領域を示す四隅座標、認識処理の信頼度を示すスコアなどが含まれる。
【００１９】
画像認識エンジン３は、例えば、商品のパッケージやラベルの画像を蓄積するデータベースである商品画像ＤＢ９に接続し、商品画像ＤＢ９に蓄積された画像を参照画像として画像認識処理を行う。画像認識エンジン４は、例えば、東京駅構内の構内看板の画像を蓄積するデータベースである東京駅構内看板画像ＤＢ１０に接続し、東京駅構内看板画像ＤＢ１０に蓄積された画像を参照画像として画像認識処理を行う。画像認識エンジン５は、例えば、大阪駅構内の構内看板の画像を蓄積するデータベースである大阪駅構内看板画像ＤＢ１１に接続し、大阪駅構内看板画像ＤＢ１１に蓄積された画像を参照画像として画像認識処理を行う。
【００２０】
バーコード検出エンジン６は、画像認識エンジン連携装置２から受信した個別要求に含まれる画像（入力画像）を用いてバーコードの認識処理（バーコード検出処理および検出したバーコードの読み取り処理）を実行し、認識結果を個別結果として画像認識エンジン連携装置２に送信する。バーコード検出エンジン６が送信する個別結果には、入力画像中のバーコードの有無、バーコードが示す文字列（例えば、ＪＡＮ（Ｊａｐａｎｅｓｅ  Ａｒｔｉｃｌｅ  Ｎｕｍｂｅｒ）コード）、入力画像中のバーコードの領域を示す四隅座標などが含まれる。
【００２１】
一般に、バーコードは所定のパターンに従って作成されており、画像認識エンジン３，４，５が行う画像認識処理のように画像特徴量の抽出などを行うことなく、高精度に読取り可能である。そのため、バーコード検出エンジン６の誤読率は、画像認識エンジン３，４，５の誤認識率と比べて低い。したがって、バーコード検出エンジン６は、画像認識エンジン３，４，５よりも認識結果の信頼性が高いエンジンである。すなわち、バーコード検出エンジン６は、画像認識エンジン３，４，５とは異なる画像解析手法により、画像中の被写体（バーコード）の認識を、画像認識エンジン３，４，５よりも高い精度で行うことができる。バーコード検出エンジン６は、画像認識エンジン３，４，５とは異なる画像解析手法により、画像中の被写体の認識を行う異種エンジンの一例である。
【００２２】
物体領域抽出エンジン７は、画像認識エンジン連携装置２から受信した個別要求に含まれる画像（入力画像）を用いて物体領域抽出処理を行い、抽出結果を個別結果として画像認識エンジン連携装置２に送信する。物体領域抽出処理とは、入力画像に対して視覚特性などを利用した画像解析を行い、入力画像中の被写体（物体や人物）を含む可能性が高い（被写体を含むと想定される）領域（以下、物体領域と称する）を抽出する処理である。物体領域抽出エンジン７が送信する個別結果には、入力画像から抽出された個々の被写体を含む物体領域を区別する識別子、個々の物体領域を示す四隅座標などが含まれる。物体領域抽出エンジン７は、領域抽出エンジンの一例である。
【００２３】
位置推定エンジン８は、画像認識エンジン連携装置２から受信した個別要求に含まれるＧＰＳ情報、ＢｌｕｅｔｏｏｔｈのビーコンＩＤ、無線ＬＡＮのＳＳＩＤなどを用いて位置推定処理を行い、推定結果を個別結果として画像認識エンジン連携装置２に送信する。位置推定処理とは、ＧＰＳ情報、ＢｌｕｅｔｏｏｔｈのビーコンＩＤ、無線ＬＡＮのＳＳＩＤなどを用いて利用者端末１が位置する現在地の地名、建物内の区画などを推定する処理である。位置推定エンジン８が送信する個別結果には、利用者端末１が位置する現在地の地名、建物内の区画などを示す情報（地名情報）が含まれる。
【００２４】
なお、位置推定エンジン８は、撮影機能を有する利用者端末１のセンサ情報に基づき、画像が撮影された際の付帯情報（利用者端末１の位置、姿勢、画像が撮影された時間帯、画像が撮影された際の天候など）を推定する付帯情報推定エンジンの一例である。
【００２５】
次に、本実施形態に係る画像認識エンジン連携装置２の構成について、図２を参照して説明する。なお、利用者端末１、画像認識エンジン３，４，５、バーコード検出エンジン６、物体領域抽出エンジン７および位置推定エンジン８の構成は当業者によく知られており、また、本発明と直接関係しないため、説明を省略する。
【００２６】
図２に示す画像認識エンジン連携装置２は、連携処理部１２と、エンジン実行処理部１３とを備える。エンジン実行処理部１３は、画像認識エンジン３，４，５、バーコード検出エンジン６、物体領域抽出エンジン７および位置推定エンジン８それぞれに対応して設けられている。
【００２７】
連携処理部１２は、画像認識エンジン３，４，５および画像認識エンジン３，４，５とは異なる画像解析手法により、画像中の被写体の認識を行う異種エンジンであるバーコード検出エンジン６を含む複数のエンジンへの、入力された画像（入力画像）中の被写体の問い合わせ処理と、問い合わせ処理に応じたエンジンによる被写体の認識結果の受け付け処理とを含むエンジン連携処理を実行する。
【００２８】
具体的には、連携処理部１２は、利用者端末１から認識要求を受信すると、問い合わせ処理として、認識要求に含まれる画像（入力画像）中の被写体の認識を要求するエンジン実行要求を、入力画像中の被写体の認識を要求するエンジンに対応するエンジン実行処理部１３に出力する。また、連携処理部１２は、受け付け処理として、エンジン実行要求の送信先のエンジンによる実行結果であるエンジン実行結果をエンジン実行処理部１３から取得する。
【００２９】
そして、連携処理部１２は、取得したエンジン実行結果に対して加工処理や判定処理を行い、個別結果を送信してきたエンジンとは別のエンジンに対して個別要求を送信するか、あるいは、認識要求に対する回答情報を利用者端末１に送信する。
【００３０】
エンジン実行処理部１３は、連携処理部１２から出力されたエンジン実行要求を個別要求に変換して、対応するエンジンに出力する。また、エンジン実行処理部１３は、対応するエンジンから送信されてきた個別要求を、エンジン実行結果に変換して連携処理部１２に出力する。
【００３１】
次に、連携処理部１２およびエンジン実行処理部１３の構成について説明する。まず、連携処理部１２の構成について説明する。
【００３２】
図２に示す連携処理部１２は、連携制御部１４と、認識要求キャッシュ部１５と、連携シナリオ管理部１６と、エンジン実行結果キャッシュ部１７と、ＩＤ解決部１８とを備える。
【００３３】
認識要求キャッシュ部１５は、利用者端末１から送信されてきた認識要求を記憶する。
【００３４】
連携シナリオ管理部１６は、連携処理部１２が実行するエンジン連携処理の内容を記述（規定）する連携シナリオを管理する。すなわち、連携シナリオ管理部１６は、連携処理部１２が実行するエンジン連携処理を連携シナリオとして管理する。
【００３５】
連携シナリオとしては、例えば、直列型連携処理がある。直列型連携処理とは、被写体の認識結果の信頼性が高いエンジンから順に問い合わせ処理を行い、信頼性の高いエンジンから認識結果が得られない場合に、他のエンジンに問い合わせ処理を行う処理である。また、連携シナリオとしては、例えば、並列型連携処理がある。並列型連携処理とは、複数のエンジンに同時に問い合わせ処理を行い、複数のエンジンの認識結果のうち、最も信頼性の高い認識結果を採用する処理である。
【００３６】
連携シナリオ管理部１６は、連携シナリオ毎に、連携シナリオ名、個別要求の送信先のエンジン、直列型連携処理を行うか、並列型連携処理を行うかなどを記憶している。連携シナリオ管理部１６で管理される連携シナリオは利用者端末１においても既知である。そのため、利用者端末１は、認識を要求する画像などに応じて、実行を要求する連携シナリオの連携シナリオ名を含む認識要求を画像認識エンジン連携装置２に送信することができる。
【００３７】
エンジン実行結果キャッシュ部１７は、エンジン実行処理部１３から出力されたエンジン実行結果を記憶する。
【００３８】
連携制御部１４は、利用者端末１から受信した認識要求を認識要求キャッシュ部１５に記憶させる。また、連携制御部１４は、認識要求に含まれる連携シナリオ名に対応する連携シナリオを連携シナリオ管理部１６から取得する。
【００３９】
連携制御部１４は、連携シナリオ管理部１６から取得した連携シナリオに基づき、エンジン実行要求を出力するエンジン実行処理部１３（個別要求を送信するエンジンに対応するエンジン実行処理部１３）を特定する。そして、連携制御部１４は、受信した認識要求に応じたエンジン実行要求を生成し、エンジン実行要求の出力先として特定したエンジン実行処理部１３に出力する。エンジン実行要求には、認識要求の送信元の利用者端末１を特定する識別子、エンジン実行要求の識別子、エンジン実行要求を出力するエンジン実行処理部１３の名称、認識要求に含まれる画像（利用者端末１が撮影した画像（静止画または動画を構成するフレーム画像））、利用者端末１のセンサで検出された情報などが含まれる。
【００４０】
また、連携制御部１４は、エンジン実行要求の出力に応じて、エンジン実行処理部１３から出力されたエンジン実行結果を取得する。エンジン実行結果には、認識要求の送信元の利用者端末１の識別子、エンジン実行結果の元となったエンジン実行要求の識別子、エンジン実行結果を出力するエンジン実行処理部１３の名称、エンジン実行処理部１３に対応するエンジン内において認識対象を区別するために用いられている識別子やコード（以下、局所ＩＤと称する）、エンジン実行処理部１３に対応するエンジンの個別結果などが含まれる。局所ＩＤとは、例えば、画像認識エンジン３，４，５により認識結果に含まれる被写体ラベル、バーコード検出エンジン６による認識結果に含まれるバーコード文字列などである。
【００４１】
また、連携制御部１４は、エンジン実行結果に含まれる局所ＩＤを用いてＩＤ解決部１８に問い合わせを行い、画像認識エンジン連携装置２において認識する対象を区別するために用いるコード（以下、共通ＩＤと称する）を取得する。そして、連携制御部１４は、受信したエンジン実行要求と、ＩＤ解決部１８から取得した共通ＩＤとを対応付けて、エンジン実行結果キャッシュ部１７に記憶させる。
【００４２】
また、連携制御部１４は、連携シナリオ管理部１６から取得した連携シナリオに基づき、エンジン実行結果の判定処理を行う。判定処理には、利用者端末１に送信する回答情報に採用する認識結果、他のエンジンへの個別要求の送信の要否の判定などが含まれる。また、連携制御部１４は、他のエンジンへの個別要求の入力とするために認識結果を加工する加工処理を行う。また、連携制御部１４は、エンジン実行結果に基づき生成した回答情報を利用者端末１に送信する。
【００４３】
ＩＤ解決部１８は、予め記憶されたＩＤ対応表を用いて、連携制御部１４から問い合わせを受けた局所ＩＤに対応する共通ＩＤを取得し、連携制御部１４に出力する。
【００４４】
図３は、ＩＤ解決部１８が用いるＩＤ対応表の構成例を示す図である。図３に示すように、対応表では、画像認識エンジン３，４，５のエンジン実行結果に含まれる局所ＩＤ（画像認識エンジン３，４，５により認識された商品あるいは看板）、あるいは、バーコード検出エンジン６のエンジン実行結果に含まれる局所ＩＤ（バーコード検出エンジン６により読み取られたバーコード文字列）と、その商品あるいは看板を特定する識別子である共通ＩＤとが対応付けられている。
【００４５】
例えば、バーコードが貼り付けられた商品において、画像認識エンジン３に被写体として商品のラベル画像が登録されている場合、画像認識エンジン３の被写体ラベルと、バーコード検出エンジン６により読み取られるバーコード文字列とに対して、同一の共通ＩＤが設定される。
【００４６】
次に、エンジン実行処理部１３の構成について、図２を再び参照して説明する。
【００４７】
図２に示すエンジン実行処理部１３は、実行制御部１９と、個別要求生成部２０と、個別結果変換部２１とを備える。
【００４８】
実行制御部１９は、連携処理部１２から出力されたエンジン実行要求を取得し、個別要求生成部２０に出力する。また、実行制御部１９は、個別結果変換部２１から出力されたエンジン実行結果を取得し、連携処理部１２に出力する。
【００４９】
個別要求生成部２０は、実行制御部１９から出力されたエンジン実行要求を個別要求に変換し、エンジン実行処理部１３に対応するエンジンに送信する。
【００５０】
個別結果変換部２１は、エンジン実行処理部１３に対応するエンジンから送信されてきた個別結果を受信し、エンジン実行結果に変換して実行制御部１９に出力する。
【００５１】
次に、本実施形態に係る画像認識エンジン連携装置２の動作について、連携制御部１４の動作を中心に説明する。
【００５２】
図４は、画像認識エンジン３とバーコード検出エンジン６との直列型連携処理の一例を示すフローチャートである。
【００５３】
連携制御部１４は、利用者端末１から認識要求を受信すると、受信した認識要求を認識要求キャッシュ部１５に記憶（キャッシュ）させる（ステップＳ１）。なお、図４においては、認識要求には、画像認識エンジン３とバーコード検出エンジン６との直列型連携処理を記述した連携シナリオを示す連携シナリオ名が含まれているものとする。
【００５４】
次に、連携制御部１４は、受信した認識要求に含まれる連携シナリオ名に対応する連携シナリオを連携シナリオ管理部１６から取得する。そして、連携制御部１４は、取得した連携シナリオに基づき、バーコード検出エンジン６に対するエンジン実行要求を認識要求キャッシュ部１５に記憶された認識要求から生成し、バーコード検出エンジン６に対応するエンジン実行処理部１３に出力する（ステップＳ２）。上述したように、バーコード検出エンジン６は、画像認識エンジン３よりも認識結果の信頼性が高いエンジンである。連携制御部１４は、画像認識エンジン３とバーコード検出エンジン６との直列型連携処理においては、信頼性が高いバーコード検出エンジン６に対応するエンジン実行処理部１３からエンジン実行要求を出力する。
【００５５】
バーコード検出エンジン６に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、エンジン実行処理部１３において個別要求に変換され、バーコード検出エンジン６に送信される。そして、個別要求に応じた処理がバーコード検出エンジン６において実行され、実行結果が個別結果として画像認識エンジン連携装置２に送信される。バーコード検出エンジン６から送信された個別結果は、エンジン実行処理部１３においてエンジン実行結果に変換され、連携処理部１２に出力される。
【００５６】
連携制御部１４は、エンジン実行処理部１３から出力されたエンジン実行結果を取得し、エンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる。そして、連携制御部１４は、取得したエンジン実行結果にバーコード文字列が含まれる場合、そのバーコード文字列に対応する共通ＩＤをＩＤ解決部１８から取得し、エンジン実行結果とともにエンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる（ステップＳ３）。
【００５７】
共通ＩＤを取得した場合には、連携制御部１４は、取得した共通ＩＤを用いて回答情報を生成し（ステップＳ４）、後述するステップＳ８の処理に進む。
【００５８】
共通ＩＤを未取得の場合には、連携制御部１４は、画像認識エンジン３に対するエンジン実行要求を認識要求キャッシュ部１５に記憶された認識要求から生成し、画像認識エンジン３に対応するエンジン実行処理部１３に出力する（ステップＳ５）。連携制御部１４は、画像認識エンジン３とバーコード検出エンジン６との直列型連携処理においては、バーコード検出エンジン６から認識結果が得られない場合に、画像認識エンジン３に対応するエンジン実行処理部１３にエンジン実行要求を出力する。
【００５９】
画像認識エンジン３に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、エンジン実行処理部１３において個別要求に変換され、画像認識エンジン３に送信される。そして、個別要求に応じた処理が画像認識エンジン３において実行され、実行結果が個別結果として画像認識エンジン連携装置２に送信される。画像認識エンジン３から送信された個別結果は、エンジン実行処理部１３においてエンジン実行結果に変換され、連携処理部１２に出力される。
【００６０】
連携制御部１４は、エンジン実行処理部１３から出力されたエンジン実行結果を取得し、エンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる。そして、連携制御部１４は、取得したエンジン実行結果に被写体ラベルが含まれる場合、その被写体ラベルに対応する共通ＩＤをＩＤ解決部１８から取得し、エンジン実行結果とともにエンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる（ステップＳ６）。
【００６１】
共通ＩＤを取得した場合には、連携制御部１４は、取得した共通ＩＤから回答情報を生成し（ステップＳ７）。そして、連携制御部１４は、ステップＳ４またはステップＳ７で生成した回答情報を利用者端末１に送信する（ステップＳ８）。なお、連携制御部１４は、ステップＳ７において、エンジン実行結果に被写体ラベルが含まれない場合には、認識結果が無いことを示す回答情報を生成し、利用者端末１に送信する。
【００６２】
上述したように、バーコード検出エンジン６は、画像認識エンジン３よりも認識結果の信頼性が高いエンジンである。図４を参照して説明した画像認識エンジン３とバーコード検出エンジン６との直列型連携処理では、バーコード検出エンジン６のエンジン実行結果から共通ＩＤが得られた場合には、その共通ＩＤを回答情報として採用し、バーコード検出エンジン６のエンジン実行結果から共通ＩＤが得られなかった場合に、画像認識エンジン３のエンジン実行結果から得られた共通ＩＤを回答情報として採用する。そのため、より信頼性の高いエンジンによる認識結果が優先的に回答情報に採用されるので、画像認識エンジン３を単体で用いる場合と比べて、画像中の被写体の認識精度の向上を図ることができる。
【００６３】
図５は、画像認識エンジン３とバーコード検出エンジン６との並列型連携処理の一例を示すフローチャートである。なお、図５において、図４と同様の処理については同じ符号を付し、説明を省略する。また、図５においては、認識要求には、画像認識エンジン３とバーコード検出エンジン６との並列型連携処理を記述した連携シナリオを示す連携シナリオ名が含まれているものとする。
【００６４】
連携制御部１４は、利用者端末１から受信した認識要求に含まれる連携シナリオ名に対応する連携シナリオを連携シナリオ管理部１６から取得する。
【００６５】
連携制御部１４は、取得した連携シナリオに基づき、バーコード検出エンジン６に対するエンジン実行要求を認識要求キャッシュ部１５に記憶された認識要求から生成し、バーコード検出エンジン６に対応するエンジン実行処理部１３に出力する。また、連携制御部１４は、取得した連携シナリオに基づき、画像認識エンジン３に対するエンジン実行要求を認識要求キャッシュ部１５に記憶された認識要求から生成し、画像認識エンジン３に対応するエンジン実行処理部１３に出力する（ステップＳ２ａ）。
【００６６】
バーコード検出エンジン６に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、個別要求に変換され、バーコード検出エンジン６に送信される。また、画像認識エンジン３に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、個別要求に変換され、画像認識エンジン３に送信される。そして、各エンジンにおいて、個別要求に応じた処理が実行され、実行結果が個別結果として画像認識エンジン連携装置２に送信される。バーコード検出エンジン６および画像認識エンジン３から送信された個別結果は、対応するエンジン実行処理部１３においてエンジン実行結果に変換され、連携処理部１２に出力される。
【００６７】
連携制御部１４は、エンジン実行要求を出力した各エンジンのエンジン実行結果を待ち受ける。連携制御部１４は、エンジン実行処理部１３から出力された各エンジンのエンジン実行結果を取得し、エンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる。そして、連携制御部１４は、取得したエンジン実行結果にバーコード文字列あるいは被写体ラベルが含まれる場合、そのバーコード文字列あるいは被写体ラベルに対応する共通ＩＤをＩＤ解決部１８から取得し、エンジン実行結果とともにエンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる（ステップＳ３ａ）。
【００６８】
共通ＩＤを取得した場合には、連携制御部１４は、取得した共通ＩＤから回答情報を生成する。ここで、連携制御部１４は、バーコード検出エンジン６のエンジン実行結果にバーコード文字列が含まれる場合には、そのバーコード文字列に対応する共通ＩＤを用いて回答情報を生成する。また、連携制御部１４は、バーコード検出エンジン６のエンジン実行結果にバーコード文字列が含まれず、画像認識エンジン３のエンジン実行結果に被写体ラベルが含まれる場合には、その被写体ラベルに対応する共通ＩＤを用いて回答情報を生成する（ステップＳ４ａ）。なお、連携制御部１４は、バーコード検出エンジン６のエンジン実行結果にバーコード文字列が含まれず、かつ、画像認識エンジン３のエンジン実行結果に被写体ラベルが含まれない場合には、認識結果が無いことを示す回答情報を生成し、利用者端末１に送信する。
【００６９】
上述したように、バーコード検出エンジン６は、画像認識エンジン３よりも認識結果の信頼性が高いエンジンである。図５を参照して説明した画像認識エンジン３とバーコード検出エンジン６との並列型連携処理では、バーコード検出エンジン６および画像認識エンジン３の両方にエンジン実行要求を出力し、バーコード検出エンジン６のエンジン実行結果から共通ＩＤが得られた場合には、その共通ＩＤを回答情報として採用し、バーコード検出エンジン６のエンジン実行結果から共通ＩＤが得られず、画像認識エンジン３のエンジン実行結果から共通ＩＤが得られた場合には、画像認識エンジン３のエンジン実行結果から得られた共通ＩＤを回答情報として採用する。そのため、より信頼性の高いエンジンによる認識結果が優先的に回答情報に採用されるので、画像認識エンジン３を単体で用いる場合と比べて、画像中の被写体の認識精度の向上を図ることができる。
【００７０】
図６は、画像認識エンジン３と物体領域抽出エンジン７との直列型連携処理の一例を示すフローチャートである。なお、図６において、図４と同様の処理については同じ符号を付し、説明を省略する。また、図６においては、認識要求には、画像認識エンジン３と物体領域抽出エンジン７との直列型連携処理を記述した連携シナリオを示す連携シナリオ名が含まれているものとする。
【００７１】
連携制御部１４は、利用者端末１から受信した認識要求に含まれる連携シナリオ名に対応する連携シナリオを連携シナリオ管理部１６から取得する。
【００７２】
連携制御部１４は、取得した連携シナリオに基づき、物体領域抽出エンジン７に対するエンジン実行要求を認識要求キャッシュ部１５に記憶された認識要求から生成し、物体領域抽出エンジン７に対応するエンジン実行処理部１３に出力する（ステップＳ２ｂ）。
【００７３】
物体領域抽出エンジン７に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、個別要求に変換され、物体領域抽出エンジン７に送信される。そして、物体領域抽出エンジン７において、個別要求に応じた処理が実行され、実行結果が個別結果として画像認識エンジン連携装置２に送信される。物体領域抽出エンジン７から送信された個別結果は、エンジン実行処理部１３においてエンジン実行結果に変換され、連携処理部１２に出力される。
【００７４】
連携制御部１４は、エンジン実行処理部１３から出力されたエンジン実行結果を取得し、エンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる（ステップＳ３ｂ）。そして、連携制御部１４は、取得したエンジン実行結果に物体領域の抽出結果が１つ以上含まれる場合には、物体領域抽出エンジン７のエンジン実行結果に基づき、認識要求キャッシュ部１５に記憶された認識要求に含まれる入力画像を加工する（ステップＳ９）。具体的には、連携制御部１４は、認識要求に含まれる入力画像を、物体領域の四隅座標でトリミングした画像を新たな入力画像とする。
【００７５】
次に、連携制御部１４は、画像認識エンジン３に対するエンジン実行要求を生成し、画像認識エンジン３に対応するエンジン実行処理部１３に出力する。ここで、連携制御部１４は、物体領域の四隅座標でトリミングした加工後の入力画像を用いてエンジン実行要求を生成する（ステップＳ５ｂ）。なお、連携制御部１４は、物体領域抽出エンジン７のエンジン実行結果に物体領域が含まれない場合には、認識要求に含まれる入力画像を用いてエンジン実行要求を生成する。
【００７６】
画像認識エンジン３に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、個別要求に変換され、画像認識エンジン３に送信される。そして、画像認識エンジン３において、個別要求に応じた処理が実行され、実行結果が個別結果として画像認識エンジン連携装置２に送信される。画像認識エンジン３から送信された個別結果は、エンジン実行処理部１３においてエンジン実行結果に変換され、連携処理部１２に出力される。
【００７７】
連携制御部１４は、図４を参照して説明したように、エンジン実行処理部１３から出力されたエンジン実行結果に被写体ラベルが含まれる場合、その被写体ラベルに対応する共通ＩＤを取得し、取得した共通ＩＤを用いて回答情報を生成して、利用者端末１に送信する（ステップＳ６〜Ｓ８）。
【００７８】
画像認識処理においては、入力画像全体の画像特徴量と、データベース（参照画像を記憶するデータベース）に登録された被写体の画像の画像特徴量とに対して照合が行われる。そのため、入力画像に複数の被写体が映り込んでいる場合、照合対象の被写体と異なる被写体の画像特徴量がノイズとなって類似度が低下し、誤認識の可能性が高くなる。
【００７９】
図６を参照して説明した画像認識エンジン３と物体領域抽出エンジン７との直列型連携処理では、画像中の被写体を含むと想定される物体領域を抽出する物体領域抽出エンジン７への、入力画像中の物体領域の問い合わせ処理（エンジン実行要求の出力）と、問い合わせ処理に応じた物体領域抽出エンジン７による物体領域の抽出結果の受け付け処理（エンジン実行結果の取得）とが含まれる。そして、連携制御部１４は、物体領域抽出エンジン７による物体領域の抽出結果に基づき、入力画像をトリミングした画像を画像認識エンジン３に入力する（入力画像をトリミングした画像を含むエンジン実行要求を出力する）。
【００８０】
入力画像から被写体を含む可能性が高い（被写体を含むと想定される）部分領域を抽出して画像認識エンジン３への入力とすることで、複数の被写体が映り込んだ画像や、背景部分が多い画像をそのまま画像認識エンジン３に入力する場合に比べて、画像中の被写体の認識精度の向上を図ることができる。
【００８１】
図７は、画像認識エンジン４，５と位置推定エンジン８との並列型連携処理の一例を示すフローチャートである。なお、図７において、図４と同様の処理については同じ符号を付し、説明を省略する。また、図７においては、認識要求には、画像認識エンジン４，５と位置推定エンジン８との並列型連携処理を記述した連携シナリオを示す連携シナリオ名が含まれているものとする。
【００８２】
連携制御部１４は、利用者端末１から受信した認識要求に含まれる連携シナリオ名に対応する連携シナリオを連携シナリオ管理部１６から取得する。
【００８３】
連携制御部１４は、取得した連携シナリオに基づき、位置推定エンジン８に対するエンジン実行要求を認識要求キャッシュ部１５に記憶された認識要求から生成し、位置推定エンジン８に対応するエンジン実行処理部１３に出力する。また、連携制御部１４は、取得した連携シナリオに基づき、画像認識エンジン４に対するエンジン実行要求を認識要求から生成し、画像認識エンジン４に対応するエンジン実行処理部１３に出力する。また、連携制御部１４は、取得した連携シナリオに基づき、画像認識エンジン５に対するエンジン実行要求を認識要求から生成し、画像認識エンジン５に対応するエンジン実行処理部１３に出力する（ステップＳ２ｃ）。
【００８４】
位置推定エンジン８に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、個別要求に変換され、位置推定エンジン８に送信される。また、画像認識エンジン４に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、個別要求に変換され、画像認識エンジン４に送信される。また、画像認識エンジン５に対応するエンジン実行処理部１３に出力されたエンジン実行要求は、個別要求に変換され、画像認識エンジン５に送信される。そして、各エンジンにおいて、個別要求に応じた処理が実行され、実行結果が個別結果として画像認識エンジン連携装置２に送信される。位置推定エンジン８および画像認識エンジン４，５から送信された個別結果は、対応するエンジン実行処理部１３においてエンジン実行結果に変換され、連携処理部１２に出力される。
【００８５】
連携制御部１４は、エンジン実行要求を出力した各エンジンのエンジン実行結果を待ち受ける。連携制御部１４は、エンジン実行処理部１３から出力された各エンジンのエンジン実行結果を取得し、エンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる。そして、連携制御部１４は、画像認識エンジン４のエンジン実行結果に被写体ラベルが含まれる場合、その被写体ラベルに対応する共通ＩＤをＩＤ解決部１８から取得し、エンジン実行結果とともにエンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる。また、連携制御部１４は、画像認識エンジン５のエンジン実行結果に被写体ラベルが含まれる場合、その被写体ラベルに対応する共通ＩＤをＩＤ解決部１８から取得し、エンジン実行結果とともにエンジン実行結果キャッシュ部１７に記憶（キャッシュ）させる（ステップＳ３ｃ）。
【００８６】
次に、連携制御部１４は、位置推定エンジン８のエンジン実行結果および画像認識エンジン４，５のエンジン実行結果から得られた共通ＩＤを用いて回答情報を生成する。具体的には、連携制御部１４は、位置推定エンジン８のエンジン実行結果に含まれる地名情報が「東京駅」を示し、かつ、東京駅構内看板画像ＤＢ１０に記録された画像を参照する画像認識エンジン４のエンジン実行結果から共通ＩＤを取得した場合、その共通ＩＤから回答情報を生成する。また、連携制御部１４は、位置推定エンジン８のエンジン実行結果に含まれる地名情報が「大阪駅」を示し、かつ、大阪駅構内看板画像ＤＢ１１に記録された画像を参照する画像認識エンジン５のエンジン実行結果から共通ＩＤを取得した場合、その共通ＩＤから回答情報を生成する。また、連携制御部１４は、位置推定エンジン８のエンジン実行結果に含まれる地名情報が「東京駅」を示すものでも、「大阪駅」を示すものでもない場合、信頼度のスコアが高い方の画像認識エンジンのエンジン実行結果から得られた共通ＩＤを用いて回答情報を生成する（ステップＳ４ｃ）。連携制御部１４は、画像認識エンジン４のエンジン実行結果にも、画像認識エンジン５のエンジン実行結果にも被写体ラベルが含まれない場合には、認識結果が無いことを示す回答情報を生成する。
【００８７】
なお、図７においては、位置推定エンジン８のエンジン実行結果に含まれる地名情報が「東京駅」を示す場合には、画像認識エンジン４のエンジン実行結果から取得した共通ＩＤを用いて回答情報を生成し、「大阪駅」を示す場合には、画像認識エンジン５のエンジン実行結果から取得した共通ＩＤを用いて回答情報を生成している。すなわち、位置推定エンジン８のエンジン実行結果に含まれる地名情報に応じて、画像認識エンジン４の推定結果の信頼度と、画像認識エンジン５の推定結果の信頼度とに重み付けを行っている。この重み付けは、付帯情報推定エンジンにより推定される付帯情報などに応じて、適宜、設定することができる。
【００８８】
一般に、異なる被写体であっても画像特徴量が類似している画像は、画像特徴量のみを用いた画像認識処理では誤認識する可能性が高い。例えば、異なる駅の構内看板を画像特徴量の類似のみで区別することは困難である。
【００８９】
図７を参照して説明した画像認識エンジン４，５と位置推定エンジン８との並列型連携処理では、画像を撮影する機能を有する利用者端末１により画像が撮影された際の付帯情報を推定する付帯情報推定エンジン（位置推定エンジン８）への、被写体の認識が要求された画像の付帯情報（地名情報）の問い合わせ処理（エンジン実行要求の出力）と、問い合わせ処理に応じた位置推定エンジン８による画像の付帯情報の推定結果の受け付け処理（エンジン実行結果の取得）とがさらに含まれる。そして、連携制御部１４は、位置推定エンジン８による地名情報の推定結果に基づき、複数のエンジン（画像認識エンジン４，５）による認識結果の信頼度に対する重み付けを行い、最も信頼度の高い認識結果を採用する。
【００９０】
付帯情報（図７の例では、位置推定エンジン８によって推定された位置）の推定結果に基づき、複数のエンジン（画像認識エンジン４，５）による認識結果の信頼度に対する重み付けを行うことで、画像特徴量が類似する被写体を画像認識エンジンだけで認識する場合に比べて、画像中の被写体の認識精度の向上を図ることができる。
【００９１】
なお、上述した図４から図７においては、連携シナリオが、直列型連携処理あるいは並列型連携処理を記述したものである例を用いて説明したが、これに限られるものではない。連携シナリオは、直列型連携処理と並列型連携処理とを組み合わせたものであってもよい。例えば、画像認識システム１００が、画像認識エンジン３，４，５とは異なる手法により画像認識を行うエンジン（例えば、電子透かしを用いた画像認識を行うエンジン）をさらに備える場合、直列型連携処理と並列型連携処理とを組み合わせた連携シナリオを用いることが考えられる。この場合、例えば、まず、画像認識エンジン３とバーコード検出エンジン６との直列型連携処理が行われ、バーコード検出エンジン６から認識結果が得られなかった場合、画像認識エンジン３と画像認識エンジン３とは異なる手法により画像認識を行うエンジンとの並列型連携処理が行われる。こうすることで、バーコード検出エンジン６から認識結果が得られなかった場合、手法の異なる複数の画像解析エンジンの並列型連携処理が行われることで、画像中の被写体の認識精度の向上を図ることができる。
【００９２】
このように本実施形態においては、画像認識エンジン連携装置２は、画像中の被写体の認識を行う画像認識エンジン３，４，５、および、画像認識エンジン３，４，５とは異なる画像解析手法により、画像中の被写体の認識を行う異種エンジン（バーコード検出エンジン６）を含む複数のエンジンへの、入力画像中の被写体の問い合わせ処理と、問い合わせ処理に応じたエンジンによる被写体の認識結果の受け付け処理とを含むエンジン連携処理を実行する連携処理部１２を有する。連携処理部１２は、エンジン連携処理を連携シナリオとして管理する。そして、連携シナリオは、被写体の認識結果の信頼性が高いエンジンから順に問い合わせ処理を行い、信頼性が高いエンジンから認識結果が得られない場合に、他のエンジンに問い合わせ処理を行う直列型連携処理と、複数のエンジンに同時に問い合わせを処理を行い、複数のエンジンの認識結果のうち、最も信頼性の高い認識結果を採用する並列型連携処理と、直列型連携処理と並列型連携処理との組み合わせとを含む。
【００９３】
直列型連携処理、並列型連携処理あるいはこれらの組み合わせとして規定される連携シナリオによって、画像認識エンジン３，４，５に加え、画像認識エンジン３，４，５とは異なる画像解析手法により、画像中の被写体の認識を行う異種エンジン（バーコード検出エンジン６）への問い合わせ処理と、認識結果の受け付け処理とが行われるので、画像認識エンジン３，４，５単体での画像認識に比べて、画像中の被写体の認識精度の向上を図ることができる。
【００９４】
なお、実施形態では特に触れていないが、画像認識エンジン連携装置２が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。また、プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記録媒体であってもよい。
【００９５】
あるいは、画像認識エンジン連携装置２が行う各処理を実行するためのプログラムは記憶するメモリおよびメモリに記憶されたプログラムを実行するプロセッサによって構成され、画像認識エンジン連携装置２に搭載されるチップが提供されてもよい。
【００９６】
本発明を図面および実施形態に基づき説明してきたが、当業者であれば本開示に基づき種々の変形または修正を行うことが容易であることに注意されたい。したがって、これらの変形または修正は本発明の範囲に含まれることに留意されたい。例えば、各ブロックなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数のブロックを１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【００９７】
１    利用者端末
２    画像認識エンジン連携装置
３，４，５    画像認識エンジン
６    バーコード検出エンジン
７    物体領域抽出エンジン
８    位置推定エンジン
９    商品画像ＤＢ
１０    東京駅構内看板画像ＤＢ
１１    大阪駅構内看板画像ＤＢ
１２    連携処理部
１３    エンジン実行処理部
１４    連携制御部
１５    認識要求キャッシュ部
１６    連携シナリオ管理部
１７    エンジン実行結果キャッシュ部
１８    ＩＤ解決部
１９    実行制御部
２０    個別要求生成部
２１    個別結果変換部
１００    画像認識システム
【図１】
2018181081.tif 000003
【図２】
2018181081.tif 000004
【図３】
2018181081.tif 000005
【図４】
2018181081.tif 000006
【図５】
2018181081.tif 000007
【図６】
2018181081.tif 000008
【図７】
2018181081.tif 000009