(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022111746
(43)【公開日】2022-08-01
(54)【発明の名称】状態推定システム、及び状態推定プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20220725BHJP
【FI】
G06T7/00 300F
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021007377
(22)【出願日】2021-01-20
(71)【出願人】
【識別番号】516249414
【氏名又は名称】AWL株式会社
(74)【代理人】
【識別番号】100084375
【弁理士】
【氏名又は名称】板谷 康夫
(74)【代理人】
【識別番号】100125221
【弁理士】
【氏名又は名称】水田 愼一
(74)【代理人】
【識別番号】100142077
【弁理士】
【氏名又は名称】板谷 真之
(72)【発明者】
【氏名】ファドワ ゴーラビ
(72)【発明者】
【氏名】土田 安紘
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096DA03
5L096GA30
5L096HA09
5L096JA03
5L096JA11
(57)【要約】 (修正有)
【課題】カメラから入力された各フレーム画像における注目領域の状態を正確に推定し、推論処理の処理負荷を小さくする状態推定システム及び状態推定プログラムを提供する。
【解決手段】状態推定処理は、各フレーム画像におけるテーブル(注目領域)の画像に付与されたラベルに基づいて、テーブルの暫定状態を推定し、時刻T以降のフレーム画像におけるテーブルの暫定状態(時刻T~(T+2)の暫定状態)と、時刻Tより前のフレーム画像におけるテーブルの最終状態(時刻(T-2)~(T-1)の最終状態)とに基づいて、時刻Tのフレーム画像におけるテーブルの最終状態を推定する。これにより、単純なMLCモデルを用いて、注目領域の画像にラベルを付与した場合でも、ラベルに含まれるノイズが最終状態の推定結果に与える影響を減らせ、複雑なMLCモデルを用いる必要が無く、推論処理の処理負荷を小さくできる。
【選択図】
図12
【特許請求の範囲】
【請求項1】
カメラから入力された各フレーム画像における注目領域の画像に、1以上のラベルを付与するラベル付与手段と、
前記ラベル付与手段により前記注目領域の画像に付与されたラベルに基づいて、前記注目領域の暫定状態を推定する暫定状態推定手段と、
前記カメラから入力された過去の複数のフレーム画像のうち、所定の時刻のフレーム画像における前記注目領域の最終状態を推定する最終状態推定手段とを備える状態推定システムにおいて、
前記最終状態推定手段は、前記過去の複数のフレーム画像のうち、前記所定の時刻以降のフレーム画像における前記注目領域の暫定状態と、前記所定の時刻より前のフレーム画像における前記注目領域の最終状態とに基づいて、前記所定の時刻のフレーム画像における前記注目領域の最終状態を推定する状態推定システム。
【請求項2】
前記ラベル付与手段は、前記注目領域の画像に、各ラベルの尤度を付与し、
前記暫定状態推定手段は、前記各ラベルの尤度と、前記各ラベルの尤度の閾値とを比較して、前記注目領域の暫定状態を推定することを特徴とする請求項1に記載の状態推定システム。
【請求項3】
前記所定の時刻のフレーム画像における前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合は、前記所定の時刻のフレーム画像における前記注目領域の最終状態を、このフレーム画像の一つ前のフレーム画像における前記注目領域の最終状態に維持する状態遷移検証手段をさらに備えることを特徴とする請求項1又は請求項2に記載の状態推定システム。
【請求項4】
前記状態遷移検証手段は、前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合でも、前記暫定状態推定手段により推定された前記注目領域の暫定状態が、所定時間以上、同じ状態であるときには、前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態に遷移することを許容することを特徴とする請求項3に記載の状態推定システム。
【請求項5】
前記状態推定システムの使用者に報知を行う報知手段をさらに備え、
前記報知手段は、前記最終状態推定手段により推定された前記注目領域の最終状態が、所定の条件を満たしたときに、前記状態推定システムの使用者に報知を行うことを特徴とする請求項1又は請求項2に記載の状態推定システム。
【請求項6】
前記状態推定システムの使用者に報知を行う報知手段をさらに備え、
前記報知手段は、前記状態遷移検証手段による検証後における、前記注目領域の最終状態が、所定の条件を満たしたときに、前記状態推定システムの使用者に報知を行うことを特徴とする請求項3又は請求項4に記載の状態推定システム。
【請求項7】
前記報知手段は、前記使用者への報知を行うための報知画面を表示装置に出力し、
前記報知画面は、前記使用者への報知の情報と、前記カメラから直近に入力されたフレーム画像に基づく画像とを含むことを特徴とする請求項5又は請求項6に記載の状態推定システム。
【請求項8】
コンピュータを、
カメラから入力された各フレーム画像における注目領域の画像に、1以上のラベルを付与するラベル付与手段と、
前記ラベル付与手段により前記注目領域の画像に付与されたラベルに基づいて、前記注目領域の暫定状態を推定する暫定状態推定手段と、
前記カメラから入力された過去の複数のフレーム画像のうち、所定の時刻のフレーム画像における前記注目領域の最終状態を推定する最終状態推定手段として機能させるための状態推定プログラムにおいて、
前記最終状態推定手段は、前記過去の複数のフレーム画像のうち、前記所定の時刻以降のフレーム画像における前記注目領域の暫定状態と、前記所定の時刻より前のフレーム画像における前記注目領域の最終状態とに基づいて、前記所定の時刻のフレーム画像における前記注目領域の最終状態を推定する状態推定プログラム。
【請求項9】
前記コンピュータを、さらに、
前記所定の時刻のフレーム画像における前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合は、前記所定の時刻のフレーム画像における前記注目領域の最終状態を、このフレーム画像の一つ前のフレーム画像における前記注目領域の最終状態に維持する状態遷移検証手段として機能させることを特徴とする請求項8に記載の状態推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、状態推定システム、及び状態推定プログラムに関する。
【背景技術】
【0002】
従来から、物体認識用のDNN(Deep Neural Network)において、画像を入力すると、複数の正解ラベルを返す(出力する)タイプのディープニューラルネットワークモデル(多ラベル分類用ニューラルネットワークモデル)がある。この多ラベル分類(MLC(Multi Label Classification))用ニューラルネットワークモデルを用いれば、カメラから入力された各フレーム画像における注目領域の画像に映り込んでいる1つ以上の物体について、各物体の種別を判別することができるので、上記の注目領域における現在の状態を推定することが可能である。そして、上記のように、カメラから入力された各フレーム画像における注目領域の状態を推定することができれば、レストラン等の店舗や、郵便局、銀行及び病院等における、注目領域の状態(例えば、レストランのテーブルや、郵便局、銀行及び病院の窓口等の状態)を、これらの施設のスタッフに報知することで、これらの施設のスタッフの作業効率を向上させることができる。なお、多ラベル分類器の例は、例えば、特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、一般に、1つの静止画像(カメラから入力された各フレーム画像における注目領域の画像)のみに基づいてラベルを付与するタイプの単純な多ラベル分類用ニューラルネットワークモデル(以下、「MLCモデル」という)からの出力データ(例えば、1以上のラベルと、これらのラベルの尤度)には、ノイズが含まれるので、上記の注目領域における状態を正確に推定することはできない。この点は、上記の単純なMLCモデル以外の、1つの静止画像のみに基づいてラベルを付与するタイプの単純な多ラベル分類用アルゴリズムに共通した問題である。
【0005】
また、行動認識等の分野では、時系列のフレーム画像(例えば、時刻t、t-1、t-2、t-3、t-4、t-5、t-6の6枚のフレーム画像)に基づいて、正確な推定結果を返すことができる複雑な多ラベル分類用アルゴリズム(例えば、複雑なMLCモデル)も使用されているが、このような多ラベル分類用アルゴリズムは、一度に、複数のフレーム画像を処理するので、(プロセッサにおける)推論処理の処理負荷が大きくなる。
【0006】
本発明は、上記課題を解決するものであり、カメラから入力された各フレーム画像における注目領域の状態を正確に推定することが可能で、しかも、推論処理の処理負荷が小さい状態推定システム、及び状態推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の第1の態様による状態推定システムは、カメラから入力された各フレーム画像における注目領域の画像に、1以上のラベルを付与するラベル付与手段と、前記ラベル付与手段により前記注目領域の画像に付与されたラベルに基づいて、前記注目領域の暫定状態を推定する暫定状態推定手段と、前記カメラから入力された過去の複数のフレーム画像のうち、所定の時刻のフレーム画像における前記注目領域の最終状態を推定する最終状態推定手段とを備える状態推定システムにおいて、前記最終状態推定手段は、前記過去の複数のフレーム画像のうち、前記所定の時刻以降のフレーム画像における前記注目領域の暫定状態と、前記所定の時刻より前のフレーム画像における前記注目領域の最終状態とに基づいて、前記所定の時刻のフレーム画像における前記注目領域の最終状態を推定する。
【0008】
この状態推定システムにおいて、前記ラベル付与手段は、前記注目領域の画像に、各ラベルの尤度を付与し、前記暫定状態推定手段は、前記各ラベルの尤度と、前記各ラベルの尤度の閾値とを比較して、前記注目領域の暫定状態を推定してもよい。
【0009】
この状態推定システムにおいて、前記所定の時刻のフレーム画像における前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合は、前記所定の時刻のフレーム画像における前記注目領域の最終状態を、このフレーム画像の一つ前のフレーム画像における前記注目領域の最終状態に維持する状態遷移検証手段をさらに備えることが望ましい。
【0010】
この状態推定システムにおいて、前記状態遷移検証手段は、前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合でも、前記暫定状態推定手段により推定された前記注目領域の暫定状態が、所定時間以上、同じ状態であるときには、前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態に遷移することを許容することが望ましい。
【0011】
この状態推定システムにおいて、前記状態推定システムの使用者に報知を行う報知手段をさらに備え、前記報知手段は、前記最終状態推定手段により推定された前記注目領域の最終状態が、所定の条件を満たしたときに、前記状態推定システムの使用者に報知を行うようにしてもよい。
【0012】
この状態推定システムにおいて、前記状態推定システムの使用者に報知を行う報知手段をさらに備え、前記報知手段は、前記状態遷移検証手段による検証後における、前記注目領域の最終状態が、所定の条件を満たしたときに、前記状態推定システムの使用者に報知を行うことが望ましい。
【0013】
この状態推定システムにおいて、前記報知手段は、前記使用者への報知を行うための報知画面を表示装置に出力し、前記報知画面は、前記使用者への報知の情報と、前記カメラから直近に入力されたフレーム画像に基づく画像とを含むことが望ましい。
【0014】
本発明の第2の態様による状態推定プログラムは、コンピュータを、カメラから入力された各フレーム画像における注目領域の画像に、1以上のラベルを付与するラベル付与手段と、前記ラベル付与手段により前記注目領域の画像に付与されたラベルに基づいて、前記注目領域の暫定状態を推定する暫定状態推定手段と、前記カメラから入力された過去の複数のフレーム画像のうち、所定の時刻のフレーム画像における前記注目領域の最終状態を推定する最終状態推定手段として機能させるための状態推定プログラムにおいて、前記最終状態推定手段は、前記過去の複数のフレーム画像のうち、前記所定の時刻以降のフレーム画像における前記注目領域の暫定状態と、前記所定の時刻より前のフレーム画像における前記注目領域の最終状態とに基づいて、前記所定の時刻のフレーム画像における前記注目領域の最終状態を推定する。
【0015】
この状態推定プログラムにおいて、前記コンピュータを、さらに、前記所定の時刻のフレーム画像における前記注目領域の最終状態が、前記最終状態推定手段により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合は、前記所定の時刻のフレーム画像における前記注目領域の最終状態を、このフレーム画像の一つ前のフレーム画像における前記注目領域の最終状態に維持する状態遷移検証手段として機能させることが望ましい。
【発明の効果】
【0016】
本発明の第1の態様による状態推定システム、及び第2の態様による状態推定プログラムによれば、過去の複数のフレーム画像のうち、所定の時刻以降のフレーム画像における注目領域の暫定状態と、上記所定の時刻より前のフレーム画像における注目領域の最終状態とに基づいて、上記所定の時刻のフレーム画像における注目領域の最終状態を推定するようにした。これにより、上記の1つの静止画像(カメラから入力された各フレーム画像における注目領域の画像)のみに基づいてラベルを付与するタイプの単純な多ラベル分類用アルゴリズム(例えば、単純なMLCモデル)を用いて、注目領域の画像にラベルを付与した場合でも、このラベルに含まれるノイズが最終状態の推定結果に与える影響を減らすことができる。従って、各フレーム画像における注目領域の(最終)状態を正確に推定することができる。
【0017】
また、本発明の第1の態様による画像分析装置、及び第2の態様による状態推定プログラムによれば、上記のように、1つの静止画像(各フレーム画像における注目領域の画像)のみに基づいてラベルを付与するタイプの単純な多ラベル分類用アルゴリズム(例えば、単純なMLCモデル)を用いた場合でも、各フレーム画像における注目領域の(最終)状態を正確に推定することができるので、複数の(時間的に)連続した静止画像(時系列のフレーム画像)に基づいてラベルを付与するタイプの複雑な多ラベル分類用アルゴリズム(例えば、複雑なMLCモデル)を用いる必要がない。従って、(プロセッサにおける)推論処理の処理負荷を小さくすることが可能になる。
【図面の簡単な説明】
【0018】
【
図1】本発明の一実施形態の状態推定システムの概略の構成を示すブロック構成図。
【
図2】
図1中の分析ボックスの概略のハードウェア構成を示すブロック図。
【
図3】同分析ボックスにおけるCPUの機能ブロック構成図。
【
図4】上記状態推定システムにおける状態推定処理の概要を示すフローチャート。
【
図7】上記状態推定システムにおける各テーブルの状態の遷移のルールを表すステートマシンを示す図。
【
図8】上記状態推定システムにおける暫定状態推定処理のフローチャート。
【
図9】
図6中の推論エンジンによる推論結果を示す図。
【
図10】上記状態推定システムにおける最終状態推定処理のフローチャート。
【
図11】上記最終状態推定処理に用いられるステートバッファの説明図。
【
図13】上記状態推定システムにおいて、ステートマシンから見て許されない状態遷移が許容される場合の説明図。
【
図14】上記状態推定システムにおいてスタッフへの報知(アラート)が行われる場合の説明図。
【
図15】上記のスタッフへの報知に用いられる報知画面の説明図。
【
図16】変形例1-1の状態推定システムにおけるステートマシンを示す図。
【
図17】変形例1-1の状態推定システムにおける注目領域の説明図。
【
図18】変形例1-2の状態推定システムにおけるステートマシンを示す図。
【
図19】変形例1-2の状態推定システムにおける注目領域の説明図。
【
図20】変形例1-3の状態推定システムにおけるステートマシンを示す図。
【
図21】変形例1-3の状態推定システムにおける報知画面を示す図。
【発明を実施するための形態】
【0019】
以下、本発明を具体化した実施形態による状態推定システム、及び状態推定プログラムについて、図面を参照して説明する。
図1は、本実施形態による状態推定システム10の概略の構成を示すブロック構成図である。本実施形態では、分析ボックス1(請求項における「コンピュータ」)、ネットワークカメラ(IP(Internet Protocol)カメラ)である360度カメラ2、及びサイネージ3(請求項における「表示装置」)が、レストランのチューン店の店舗S内に配される場合の例について説明する。
図1に示すように、状態推定システム10は、店舗S内に配された、分析ボックス1、1つ以上の360度カメラ2(以下、「カメラ2」と略す)、サイネージ3、ハブ4、及びルータ6と、クラウドC上のAI分析サーバ7及び管理サーバ8とを備えている。ただし、上記の構成要素のうち、ルータ6と、AI分析サーバ7と、管理サーバ8とは、あくまでも、状態推定システム10における付属的な構成要素である。
【0020】
上記のカメラ2は、IPアドレスを持ち、ネットワークに直接接続することが可能なネットワークカメラであると同時に、天井等に取り付けられて、店舗Sにおける広範な領域を撮影することが可能な360度カメラである。
図1に示すように、分析ボックス1は、LAN(Local Area Network)5とハブ4とを介して、1つ以上のカメラ2と接続され、これらのカメラ2の各々から入力された各フレーム画像に基づいて、各フレーム画像における各注目領域の状態(具体的には、各テーブルの状態)の推定処理等の推論処理を行う。また、上記のサイネージ3は、後述する報知画面71(
図15参照)等の表示に用いられる。
【0021】
また、
図1に示されるように、分析ボックス1は、ハブ4とルータ6とを介して、クラウドC上のAI分析サーバ7及び管理サーバ8と接続されている。AI分析サーバ7は、分析ボックス1の推論処理結果に基づいて、例えば、各店舗内における人物の行動を分析し、分析結果の情報を、マーケティングや防犯等の種々の用途のアプリケーションが使い易いデータに変換して出力する。
【0022】
上記の管理サーバ8は、各店舗に配された多数の分析ボックス1、及びこれらの分析ボックス1に接続されたカメラ2の管理を行う。具体的には、管理サーバ8は、各店舗の分析ボックス1へのアプリパッケージのインストールや、これらの分析ボックス1に接続されたカメラ2の起動及び停止等の制御を行う。
【0023】
次に、
図2を参照して、分析ボックス1のハードウェア構成について説明する。分析ボックス1は、装置全体の制御及び各種演算を行うCPU11と、各種のデータやプログラムを格納するハードディスク12と、RAM(Random Access Memory)13と、DNN推論用プロセッサである推論チップ(以下、「チップ」と略す)14a~14hと、通信制御IC15とを備えている。CPU11は、一般的な汎用CPU、又は多数の映像ストリームを同時処理するため並列処理性能を高めるように設計されたCPUである。上記のハードディスク12に格納されるデータには、カメラ2の各々から入力された映像ストリーム(のデータ)をデコードした後の映像データ(フレーム画像のデータ)19が含まれ、ハードディスク12に格納されるプログラムには、上記のアプリパッケージ17に加えて、分析ボックスOS20のプログラムが含まれている。また、上記のアプリパッケージ17には、状態推定プログラム18が含まれている。
【0024】
上記の(推論)チップ14a~14hは、DNN(Deep Neural Networks)推論に最適化されたプロセッサ(推論専用チップ)であることが望ましいが、一般的な用途に用いられる汎用のGPU(Graphics Processing Unit)、又はその他のプロセッサであってもよい。また、上記の各チップ14a~14hは、1つのボードコンピュータ上に複数のチップ(推論用プロセッサ)が集積(搭載)されたデバイスであってもよい。
【0025】
図2に示すように、上記の(推論)チップ14a~14hは、PCI Express又はUSBにより、CPU11に接続される。また、上記の通信制御IC15は、Ethernet規格のLANへの接続用のポートであるLANポート16を有している。
【0026】
図3は、分析ボックス1におけるCPU11の機能ブロックを示す。分析ボックス1は、機能ブロックとして、ラベル付与部21と、暫定状態推定部22と、最終状態推定部23と、状態遷移検証部24と、報知部25と、プロセッサ割当部26とを備えている。上記のラベル付与部21、暫定状態推定部22、最終状態推定部23、状態遷移検証部24、報知部25は、それぞれ、請求項におけるラベル付与手段、暫定状態推定手段、最終状態推定手段、状態遷移検証手段、報知手段に相当する。上記のラベル付与部21、暫定状態推定部22、最終状態推定部23、状態遷移検証部24、及び報知部25の機能は、CPU11と、上記の状態推定プログラム18によって、実現される。
【0027】
上記のラベル付与部21は、1つの静止画像のみに基づいてラベルを付与するタイプの単純な多ラベル分類(Multi Label Classification)用ディープニューラルネットワークモデル(以下、「MLCモデル」という)を有しており、このMLCモデルを用いて、カメラ2から入力された各フレーム画像における各注目領域の画像(店舗内の各テーブルの画像(以下、「テーブル画像」という))に、1以上のラベルを付与する。より正確に言うと、ラベル付与部21は、MLCモデルを用いて、上記の各テーブル画像に、複数のラベルの各々の尤度の情報を付与する。なお、上記の尤度の情報とは、
図6に示す例では、尤度自体であるが、尤度以外の、ラベルの信頼性の指標であっても良い。また、上記のテーブル画像は、正確に言うと、
図6に示すように、テーブル本体47だけではなく、椅子48も含む、テーブル周辺の画像である。本実施形態において、「各テーブルの暫定状態」、「各テーブルの最終状態」、「各テーブルの状態」は、正確に言うと、それぞれ、「各テーブル周辺の暫定状態」、「各テーブル周辺の最終状態」、「各テーブル周辺の状態」を意味する。
【0028】
上記の暫定状態推定部22は、ラベル付与部21により上記の各テーブル画像に付与されたラベルに基づいて、店舗内の各テーブルの暫定状態を推定する。詳細については後述するが、より正確に言うと、暫定状態推定部22は、ラベル付与部21により各テーブル画像に付与された各ラベルの尤度と、各ラベルの尤度の閾値とを比較して、各テーブルの暫定状態を推定する。
【0029】
上記の最終状態推定部23は、カメラ2から入力された過去の複数のフレーム画像のうち、所定の時刻のフレーム画像における各テーブルの最終状態を推定する。より正確に言うと、最終状態推定部23は、カメラ2から入力された過去の複数のフレーム画像のうち、所定の時刻以降のフレーム画像における各テーブルの暫定状態と、上記所定の時刻より前のフレーム画像における各テーブルの最終状態とに基づいて、上記所定の時刻のフレーム画像における各テーブルの最終状態を推定する。
【0030】
上記の状態遷移検証部24は、上記所定の時刻のフレーム画像における各テーブルの最終状態が、最終状態推定部23により推定された最終状態になることが、状態遷移のルールを表すステートマシン(
図7参照)から見て許容されない場合は、上記所定の時刻のフレーム画像における各テーブルの最終状態を、このフレーム画像の一つ前のフレーム画像における各テーブルの最終状態に維持する。ただし、状態遷移検証部24は、上記所定の時刻のフレーム画像における各テーブルの最終状態が、最終状態推定部23により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合でも、暫定状態推定部22により推定された各テーブルの暫定状態が、所定時間以上、同じ状態であるときには、各テーブルの最終状態が、最終状態推定部23により推定された最終状態になることを許容する。
【0031】
上記の報知部25は、状態遷移検証部24による検証後における、各テーブルの最終状態が、所定の条件を満たしたときに、サイネージ3(のディスプレイ)に表示した報知画面(
図15参照)にアラートを出力して、状態推定システム10の使用者(店舗Sのスタッフ)に報知を行う。上記の報知画面は、使用者(店舗Sのスタッフ)への報知の情報と、カメラ2から直近に入力されたフレーム画像に基づく画像(360度カメラであるカメラ2で撮影した円座標系の画像を、2次元直交座標系の画像(平面展開画像)に変換したもの)とを含む画像である。
【0032】
上記のプロセッサ割当部26は、アプリパッケージ17の各インスタンスに含まれるMLCモデル等の各ニューラルネットワークモデル(以下、「NNモデル」という)の推論処理に必要な推論時間と使用頻度とに基づいて、複数のチップ14のうち、各NNモデルの推論処理に用いるチップ(推論用プロセッサ)の割り当てを行う。
【0033】
図4は、上記の状態推定システム10における状態推定処理の概要を示す。この状態推定処理は、分析ボックス1におけるCPU11が、状態推定プログラム18に基づいて行う。上記のカメラ2から1つのフレーム画像が、1fpsのフレームレートで入力されると(S1)、分析ボックス1のCPU11は、状態推定プログラム18に基づいて、上記のフレーム画像から、各テーブルの画像(テーブル画像)を切り出す処理(前処理1)を行う(S2)。具体的には、
図5に示すフレーム画像30から、注目領域である各テーブルの画像(図中のNo.1~20のテーブル画像31a~31t)を切り出す。なお、
図5では、360度カメラであるカメラ2で撮影した円座標系のフレーム画像を、見やすくするために、2次元直交座標系の画像(平面展開画像)に変換して、変換後のフレーム画像30を示している。実際の画像切り出し処理では、
図5に示すような2次元直交座標系に変換したフレーム画像30を用いてもよいし、カメラ2で撮影した円座標系のフレーム画像をそのまま用いてもよい。
【0034】
上記S2の処理が終了すると、分析ボックス1のCPU11は、切り出した各テーブル画像31a~31tのサイズを、所定のサイズに合わせる処理(サイズ調整)や、サイズ調整後の各テーブル画像(のデータ)における特徴量の正規化等の処理(前処理2)を行う(S3)。
【0035】
上記S3の処理が終了すると、分析ボックス1のCPU11(のラベル付与部21)は、
図6に示すように、上記の前処理2の終了後の各テーブル画像41について、推論エンジン46(上記のMLCモデル)による推論処理を行って(S5)、この推論処理の結果である、尤度(の確率)付きのラベルを、各テーブル画像41に付与する。
図6に示す例では、テーブル(周辺の)画像41に、テーブル本体47と椅子48以外に、人42と、コップ43と、トレイ44と、ボウル45とが映っているので、推論エンジン46による推定結果は、人と、コップと、トレイと、ボウルのラベルの尤度が高く、空席の尤度が低いものになっている。
【0036】
上記S5の処理が終了すると、分析ボックス1のCPU11は、後述する状態推定エンジン(
図3中の暫定状態推定部22、最終状態推定部23、及び状態遷移検証部24に相当)による状態推定処理を行って(S6)、その推定結果である各テーブルの最終状態を出力する。分析ボックス1のCPU11は、上記S3で前処理2を行った全てのテーブル画像41(注目領域の画像)についての処理が終了するまで(S4でNO)、上記S5及びS6の処理を繰り返す。そして、分析ボックス1のCPU11(の報知部25)は、状態推定プログラム18に基づいて、上記S6の処理で出力された各テーブルの最終状態が、所定の条件を満たしたときに、サイネージ3のディスプレイに表示された報知画面71(
図15参照)に、アラートを出力する。
【0037】
次に、上記S6の状態推定エンジンによる状態推定処理について、詳述する。まず、状態推定エンジンによる推定対象となる各テーブルの状態について、説明する。
図7は、本実施形態の状態推定システム10における各テーブルの状態の遷移のルールを表すステートマシンの図(ステートマシン図)である。この図に示されるように、店舗S内の各テーブルの状態には、空席状態51と、注文待ち状態52と、注文済み状態53と、食事中状態54と、片付け待ち状態55とがある。空席状態51は、該当のテーブルと座席が空いている状態であり、注文待ち状態52は、顧客が、(該当テーブルの)席を取って、スタッフが注文を取りに来るのを待っている状態である。注文済み状態53は、スタッフが注文を取り、お茶か水を注いだコップを顧客に出して、顧客が自分の注文した料理を待っている状態である。また、食事中状態54は、顧客が食事をしている状態であり、片付け待ち状態55は、顧客が席から離れて(店を出て)、トレイがテーブルに残っている状態である。
【0038】
図7に示すように、店舗S内の各テーブルの状態は、原則として、空席状態51、注文待ち状態52、注文済み状態53、食事中状態54、片付け待ち状態55の順に遷移した後、空席状態51に戻る。
【0039】
上記の状態推定エンジンによる状態推定処理は、主に、暫定状態推定処理と、最終状態推定から構成される。まず、暫定状態推定処理について、説明する。この暫定状態推定処理は、推論エンジン46(上記のMLCモデル)による推論処理の結果(各テーブル画像についての各ラベルの尤度)と、各ラベルの尤度の閾値とを比較することにより、行われる。
【0040】
より詳細に説明すると、上記の前処理2の終了後のテーブル画像41を推論エンジン46(上記のMLCモデル)に入力して得られた推論結果(各ラベルの尤度)が、
図6及び
図9に示す内容であったとする。ここで、p(x)を、ラベルxの尤度を与える関数、h(x)を、ラベルxの尤度の閾値を与える関数とすると、
図6及び
図9に示す推論結果から、p(人)=0.9、p(トレイ)=0.99、p(コップ)=0.65、p(ボウル)=0.99、p(空席)=0.04となる。
図6に示すテーブル画像41には、人42と、コップ43と、トレイ44と、ボウル45とが映っているので、上記のように、人、トレイ、コップ、及びボウルのラベルの尤度pの値は、高くなっている。このとき、各ラベルの尤度の閾値が、h(人)=0.6、h(トレイ)=0.6、h(コップ)=0.63、h(ボウル)=0.6、h(空席)=0.6であるとすると、各ラベルのうち、その尤度pが、尤度の閾値h以上であるラベルは、人、トレイ、コップ、及びボウルとなる。
【0041】
暫定状態推定処理では、分析ボックス1のCPU11(の暫定状態推定部22)が、人、トレイ、コップ、ボウル及び空席の各ラベルのうち、その尤度pが、尤度の閾値h以上であるラベルを、推論エンジン46(MLCモデル)に入力されたテーブル画像41に付与されたラベルであると判断する。従って、上記の
図6及び
図9に示す例の場合においては、CPU11(の暫定状態推定部22)は、人、トレイ、コップ、及びボウルが、テーブル画像41に付与されたラベルであると判断する。
【0042】
次に、
図8に示すフローチャートを参照して、上記の暫定状態推定処理の具体な流れの例について、説明する。CPU11(の暫定状態推定部22)は、上記の推論エンジン46の推論結果における、空席(のラベル)の尤度p(空席)が、その閾値h(空席)以上であるときは(S11でYES)、暫定状態が空席状態であると推定する(S12)。また、CPU11(の暫定状態推定部22)は、上記S11の判定処理において、尤度p(空席)が、その閾値h(空席)未満であるときには(S11でNO)、人(のラベル)の尤度p(人)が、その閾値h(人)以上であるか否かを判定する(S13)。この判定の結果、尤度p(人)が、その閾値h(人)以上であるときには(S13でYES)、CPU11(の暫定状態推定部22)は、トレイ(のラベル)の尤度p(トレイ)が、その閾値h(トレイ)以上であるか、又はボウル(のラベル)の尤度p(ボウル)が、その閾値h(ボウル)以上であるかのいずれかの条件が満たされるか否かを判定する(S14)。この判定の結果、トレイ(のラベル)の尤度p(トレイ)が、その閾値h(トレイ)以上であるか、又はボウル(のラベル)の尤度p(ボウル)が、その閾値h(ボウル)以上であるかのいずれかの条件が満たされるときには(S14でYES)、CPU11(の暫定状態推定部22)は、暫定状態が食事中状態であると推定する(S15)。
【0043】
上記S14の判定の結果、トレイ(のラベル)の尤度p(トレイ)が、その閾値h(トレイ)未満であり、かつ、ボウル(のラベル)の尤度p(ボウル)が、その閾値h(ボウル)未満であるときには(S14でNO)、CPU11(の暫定状態推定部22)は、コップ(のラベル)の尤度p(コップ)が、その閾値h(コップ)以上であるか否かを判定する(S16)。この判定の結果、コップ(のラベル)の尤度p(コップ)が、その閾値h(コップ)以上であるときには(S16でYES)、CPU11(の暫定状態推定部22)は、暫定状態が注文済み状態であると推定する(S17)。上記S16の判定の結果、コップ(のラベル)の尤度p(コップ)が、その閾値h(コップ)未満であるときには(S16でNO)、CPU11(の暫定状態推定部22)は、暫定状態が注文待ち状態であると推定する(S18)。
【0044】
また、上記S13の判定の結果、尤度p(人)が、その閾値h(人)未満であるときには(S13でNO)、CPU11(の暫定状態推定部22)は、上記S14と同様な判定処理(トレイ(のラベル)の尤度p(トレイ)が、その閾値h(トレイ)以上であるか、又はボウル(のラベル)の尤度p(ボウル)が、その閾値h(ボウル)以上であるかのいずれかの条件が満たされるか否かの判定処理)を行う(S19)。この判定の結果、トレイ(のラベル)の尤度p(トレイ)が、その閾値h(トレイ)以上であるか、又はボウル(のラベル)の尤度p(ボウル)が、その閾値h(ボウル)以上であるかのいずれかの条件が満たされるときには(S19でYES)、CPU11(の暫定状態推定部22)は、暫定状態が片付け待ち状態であると推定する(S20)。
【0045】
上記
図7に戻って、テーブル画像41に付与されたラベルと、該当のテーブル画像41に映ったテーブルの暫定状態との関係を整理すると、以下のようになる。すなわち、テーブル画像41に付与されたラベルが、空席ラベル(のみ)である時には、CPU11(の暫定状態推定部22)は、上記のテーブルの暫定状態が、空席状態51であると推定する。また、テーブル画像41に付与されたラベルが、人ラベルのみである時には、該当のテーブル画像41に映ったテーブルの暫定状態が、注文待ち状態52であると推定する。さらに、CPU11(の暫定状態推定部22)は、テーブル画像41に付与されたラベルが、人ラベルとコップラベルである時には、該当のテーブル画像41に映ったテーブルの暫定状態が、注文済み状態53であると推定する。また、CPU11(の暫定状態推定部22)は、テーブル画像41に付与されたラベルが、トレイラベル及びボウルラベルの少なくともいずれかと、人ラベルである時には、該当のテーブル画像41に映ったテーブルの暫定状態が、食事中状態54であると推定する。そして、CPU11(の暫定状態推定部22)は、テーブル画像41に付与されたラベルに、トレイラベル及びボウルラベルの少なくともいずれかが含まれ、かつ、人ラベルが含まれない時には、該当のテーブル画像41に映ったテーブルの暫定状態が、片付け待ち状態55であると推定する。
【0046】
次に、
図10乃至
図12を参照して、上記の状態推定エンジンによる最終状態推定処理について説明する。この最終状態推定処理は、分析ボックス1のCPU11(の最終状態推定部23)によって、上記の暫定状態推定処理の後に行われる。
【0047】
図11に示すように、上記の最終状態推定処理に用いられるステートバッファ60は、(2n+1)フレーム分の状態の格納用バッファである。
図11に示すステートバッファ60の例では、ウィンドウサイズw(ステートバッファ60に格納可能な状態の最大数(2n+1))は、11になっている。このように、ウィンドウサイズwが11である場合には、今回の最終状態の推定対象となるテーブルが映ったフレーム画像が、時刻T(請求項における「所定の時刻」)のフレーム画像であるとすると、先ず、分析ボックス1のCPU11(の最終状態推定部23)は、
図11に示すように、上記のステートバッファ60に、時刻(T-5)~(T-1)のフレーム画像に映ったテーブルの最終状態と、時刻T~(T+5)のフレーム画像に映ったテーブルの暫定状態とを格納する。
【0048】
すなわち、
図10のフローチャートに示すように、分析ボックス1のCPU11(の暫定状態推定部22)によって、新たなフレーム画像(のテーブル画像41)に映ったテーブルについての暫定状態の推定処理が完了すると(S21でYES)、CPU11(の最終状態推定部23)は、現在のステートバッファ60のレングス(ステートバッファ60に格納済の状態(ステート)の数)が、w(ステートバッファ60に格納可能な状態の最大数(2n+1))より小さいか否かを判定する(S22)。そして、現在のステートバッファ60のレングスが、wより小さい場合には(S22でYES)、上記の新たなフレーム画像に映ったテーブルについての暫定状態(直近に推定されたテーブルの暫定状態)を、ステートバッファ60に追加して格納する(S23)。
【0049】
図12を参照して、上記の暫定状態の追加格納処理について、説明する。
図12に示す例では、説明を簡単にするために、上記のウィンドウサイズw(ステートバッファ60に格納可能な状態の最大数(2n+1))が、5である場合の例について、説明する。
図12に示すように、CPU11(の最終状態推定部23)は、t=1~4の時には、その時点におけるステートバッファ60のレングス(ステートバッファ60に格納済の状態の数)が、w(=5)より小さいので(
図10のS22でYES)、上記の直近に推定されたテーブルの暫定状態を、ステートバッファ60に追加して格納する(S23)。
【0050】
これに対して、上記S22の判定時において、
図12に示すt=5の時のように、既に、その時点におけるステートバッファ60のレングス(ステートバッファ60に格納済の状態の数)が、w(=5)になっている時には(S22でNO)、ファーストインファーストアウト(先入れ先出し)の方式で、ステートバッファ60から、一番最初に格納した状態(その時点の(T-2)の状態)を取り出して(除去して)(S24)、上記の直近に推定されたテーブルの暫定状態を、ステートバッファ60に((T+2)の状態として)格納する(S25)。
【0051】
次に、CPU11(の最終状態推定部23)は、上記S23又はS25の処理後におけるステートバッファ60のレングス(ステートバッファ60に格納済の状態の数)が、w(=5)になっているか否かを判定する(S26)。この判定の結果、ステートバッファ60のレングスが、w(=5)になっているときには(S26でYES)、CPU11(の最終状態推定部23)は、ステートバッファ60に格納済の状態(時刻(T-2)と(T-1)の最終状態、及び時刻T~(T+2)の暫定状態)のうち、最頻の(最も多い)状態を、時刻T(のフレーム画像に映ったテーブル)の最終状態であると推定して、この最頻の状態を、ステートバッファ60における時刻Tの最終状態としてセットする(S27)。具体的には、
図12における左側の時刻(t=5)のステートバッファ60の例では、格納されている5つの状態のうち、4つが注文済み状態なので、「注文済み状態」を、ステートバッファ60における時刻Tの最終状態61aとする。また、
図12における右側の時刻(t=5)のステートバッファ60の例では、格納されている5つの状態のうち、3つが注文済み状態なので、「注文済み状態」を、ステートバッファ60における時刻Tの最終状態61aとする。なお、
図12における関数vは、ステートバッファ60における各状態の頻度(数)を示す。詳細に言うと、v(空席)、v(注文待ち)、v(注文済み)、v(食事中)は、それぞれ、ステートバッファ60に格納されている「空席状態」、「注文待ち状態」、「注文済み状態」、及び「食事中状態」の数(個数)を示す。
【0052】
上記の最終状態推定部23によるS27の処理(時刻Tの最終状態の推定処理)が終了すると、CPU11(の状態遷移検証部24)は、時刻Tの(フレーム画像における)テーブルの最終状態が上記S27でセットされた最終状態になることが、
図7に示すステートマシンから見て許容されるか否かを判定する(S28)。この判定の結果、許容されない場合は(S28でNO)、CPU11(の状態遷移検証部24)は、時刻Tのテーブルの最終状態を、時刻Tのフレーム画像の一つ前のフレーム画像(時刻(T-1)のフレーム画像)におけるテーブルの最終状態に維持する。すなわち、CPU11(の状態遷移検証部24)は、時刻Tのテーブルの最終状態を、時刻(T-1)のフレーム画像におけるテーブルの最終状態に訂正する(S29)。
【0053】
より正確に説明すると、CPU11(の状態遷移検証部24)は、
図7に示すステートマシンから見て、時刻(T-1)の(フレーム画像における)テーブルの最終状態が「空席状態」であるときに、時刻Tの(フレーム画像における)テーブルの最終状態が「注文済み状態」に遷移することは、許容されないので、この場合には、原則として、時刻Tのテーブルの最終状態を、時刻(T-1)のテーブルの最終状態(「空席状態」)に維持する。とは言え、顧客が、来店してテーブルに座ると同時に、スタッフがテーブルにコップを置いて注文を取ること(テーブルの状態が、「空席状態」から「注文済み状態」になる(遷移する)こと)はあり得ることである。このため、CPU11(の状態遷移検証部24)は、時刻Tの(フレーム画像における)テーブルの最終状態が上記S27でセットされた最終状態になることが、
図7に示すステートマシンから見て許容されない場合でも、暫定状態推定部22により推定された暫定状態が、所定時間以上、同じ状態であるときには、テーブルの最終状態が、上記S27でセットされた最終状態になることを許容する場合がある。
【0054】
すなわち、
図13に示すように、暫定状態推定部22により推定されたテーブルの暫定状態が、「空席状態」であった後、10秒以上、「注文済み状態」であり続けると、CPU11(の状態遷移検証部24)は、テーブルの最終状態が、「空席状態」から「注文済み状態」に遷移することを許容する。また、
図13に示すように、暫定状態推定部22により推定されたテーブルの暫定状態が、「注文待ち状態」であった後、10秒以上、「食事中状態」であり続けると、CPU11(の状態遷移検証部24)は、テーブルの最終状態が、「注文待ち状態」から「食事中状態」に遷移することを許容する。さらにまた、暫定状態推定部22により推定されたテーブルの暫定状態が、「食事中状態」であった後、60秒以上、「空席状態」であり続けると、CPU11(の状態遷移検証部24)は、テーブルの最終状態が、「食事中状態」から「空席状態」に遷移することを許容する。ただし、CPU11の状態遷移検証部24が、ステートマシンから見て許されない状態遷移を許容するのは、上記の「空席状態」から「注文済み状態」への遷移、「注文待ち状態」から「食事中状態」への遷移、及び「食事中状態」から「空席状態」への遷移だけであって、例えば、「空席状態」から「片付け待ち状態」への遷移や、「注文待ち状態」から「片付け待ち状態」への遷移等については、許容しない。
【0055】
CPU11の状態遷移検証部24は、上記
図10中のS29の最終状態の訂正処理が終了すると、訂正後における時刻Tのテーブルの最終状態を、報知部25(
図3参照)に送る(出力する)。また、上記
図10中のS28の判定の結果、時刻Tのテーブルの最終状態が上記S27でセットされた最終状態になることが許容される場合には(S28でYES)、CPU11の状態遷移検証部24は、上記S27でセットされた時刻Tのテーブルの最終状態を、報知部25(
図3参照)に送る(出力する)。
【0056】
CPU11の報知部25は、上記の状態遷移検証部24から送られた、時刻Tのテーブルの最終状態が、以下の条件を満たしたときに、状態推定システム10の使用者であるスタッフに報知を行う(アラートを上げる)。具体的には、
図14に示すように、CPU11の報知部25は、時刻Tのテーブルの最終状態が、空席状態51から注文待ち状態52に変わると、顧客が来店してテーブルの座席に座ったとみなして、アラート70aを上げて、スタッフに報知を行う。また、CPU11の報知部25は、状態遷移検証部24から送られた、時刻Tのテーブルの最終状態が、10分以上、注文済み状態53であると、顧客が長時間注文を待っているとみなして、アラート70bを上げて、スタッフに報知を行う。さらにまた、CPU11の報知部25は、状態遷移検証部24から送られた、時刻Tのテーブルの最終状態が、所定の時間(例えば、5分)以上、片付け待ち状態55であると、テーブルが長時間片付けられていない(トレイがテーブルに放置されている)とみなして、アラート70cを上げて、スタッフに報知を行う。
【0057】
上記のスタッフへの報知には、
図1に示すサイネージ3が用いられる。
図15は、サイネージ3のディスプレイに表示される報知画面71である。この報知画面71は、スタッフへの報知の情報と、カメラ2から直近に入力されたフレーム画像に基づく画像(360度カメラであるカメラ2で撮影した円座標系の画像を、2次元直交座標系の画像(平面展開画像)に変換したもの)とを含む画像である。以下の説明では、上記のカメラ2から直近に入力されたフレーム画像に基づく画像を、「カメラ2から直近に入力されたフレーム画像」と略す。
【0058】
CPU11の報知部25は、状態遷移検証部24から送られた、時刻Tのテーブルの最終状態に基づいて、報知画面71上に、フレーム72~74を表示する。これらのフレームのうち、一点鎖線のフレーム72は、このフレーム72で囲まれたテーブルが、「注文済み状態」であることを示し、破線のフレーム73は、このフレーム73で囲まれたテーブルが、「注文待ち状態」であることを示し、実線のフレーム74は、このフレーム74で囲まれたテーブルが、「食事中状態」であることを示す。また、報知画面71上におけるフレームで囲まれていないテーブルは、空席状態である。また、
図15には示していないが、報知画面71上には、テーブルが「片付け待ち状態」であることを示すフレームも表示され得る。
【0059】
また、CPU11の報知部25は、状態遷移検証部24から送られた、時刻Tのテーブルの最終状態に基づいて、報知画面71上に、上記のアラート70a~70cを表示する。すなわち、CPU11の報知部25は、状態遷移検証部24から送られる、時刻Tのテーブルの最終状態が、空席状態51から注文待ち状態52に変わると、該当のテーブルを囲む破線のフレーム73をブリンク表示させると共に、サイネージ3のスピーカから警告音を出力させることにより、上記のスタッフへのアラート70aを行う。また、CPU11の報知部25は、状態遷移検証部24から送られた、時刻Tのテーブルの最終状態が、10分以上、注文済み状態53であると、該当のテーブルを囲む一点鎖線のフレーム72をブリンク表示させることにより、上記のスタッフへのアラート70bを行う。さらにまた、CPU11の報知部25は、状態遷移検証部24から送られた、時刻Tのテーブルの最終状態が、所定の時間(例えば、5分)以上、片付け待ち状態55であると、該当のテーブルを囲むフレームをブリンク表示させることにより、上記のスタッフへのアラート70cを行う。
【0060】
上述したように、CPU11の報知部25は、報知画面71上に、上記のフレーム72~74だけではなく、カメラ2から(分析ボックス1に)直近に入力されたフレーム画像も、表示する。この理由は、以下の通りである。すなわち、CPU11の報知部25は、時刻Tの(テーブルの)最終状態に基づいて、上記のフレーム72~74の表示や、上記のアラート70a~70cを行うが、
図11及び
図12の説明で言及したように、時刻Tの最終状態を推定するためには、将来(時刻Tよりも後)の暫定状態(
図11中の時刻(T+1)~(T+5)の暫定状態)が必要になる。
図4で説明したように、カメラ2からの画像のフレームレートは、1fpsであるので、時刻(T+5)の暫定状態を得ることができるのは、時刻Tの(テーブルの)暫定状態を推定してから5秒後になる。従って、上記S27(
図10参照)の時刻Tの最終状態推定処理を行うために、5秒以上のディレイ(遅延)が生じる。また、報知部25が、状態遷移検証部24から、時刻Tのテーブルの最終状態を受け取るのは、
図4のS1でカメラ2からフレーム画像を受信した後、S2~S6の全ての処理が終了してからである。
【0061】
従って、報知画面71上に表示される各テーブルのフレーム72~74や、アラート70a~70cは、あくまでも、5秒以上前(CPU11や(推論)チップ14の性能によっては、数十秒以上前になることもあり得る)にカメラ2から(分析ボックス1に)入力されたフレーム画像に基づく情報である。この情報のディレイ(遅延)の問題を解消するために、CPU11の報知部25は、
図15に示すように、報知画面71上に、上記のフレーム72~74だけではなく、カメラ2から(分析ボックス1に)直近に入力されたフレーム画像も、表示する。このように、報知画面71上に、カメラ2から直近に入力されたフレーム画像を表示することにより、報知画面71上に表示される各テーブルのフレーム72~74の更新や、アラート70a~70cの実行が遅れるにも拘らず、報知画面71上に表示された直近のフレーム画像を見たスタッフが、各テーブルの状態の変化や、上記のアラート70a~70cに対応する状態(顧客の来店や、顧客が長時間注文を待っている状態や、テーブルが長時間片付けられていない状態)の発生に気づくことができる。
【0062】
なお、テーブルの状態が所定の条件になった時に、直ぐにアラートを発しなければならないような場合には、
図11及び
図12に示されるステートバッファ60に格納する、時刻Tより後の暫定状態(将来の状態)の数を減らしたり、ゼロにして、アラートのリアルタイム性を高めることも考えられるが、ステートバッファ60に格納する、時刻Tより後の暫定状態の数を減らせば減らすほど、時刻Tの最終状態の推定精度が低くなる。従って、ステートバッファ60に格納する、時刻Tより後の暫定状態の数は、少なくとも3以上であることが望ましく、できれば5以上であることが望ましい。要するに、ステートバッファ60に格納する、時刻Tより後の暫定状態の数は、最終状態の推定精度の観点からは、多い方が望ましいが、フレーム72~74の更新やアラートのリアルタイム性の観点からは、少ない方が望ましい。なお、テーブルの状態が所定の条件になった時に、直ぐにアラートを発しなければならないような場合において、ステートバッファ60に格納する、時刻Tより後の暫定状態の数を減らしたり、ゼロにした場合には、その分だけ、ステートバッファ60に格納する、時刻Tより前の最終状態の数を増やすことが、最終状態の推定精度の観点から、望ましい。
【0063】
上記のように、本実施形態の状態推定システム10及び状態推定プログラム18によれば、過去の複数のフレーム画像のうち、所定の時刻(時刻T)以降のフレーム画像(
図11の例では、時刻T~(T+5)のフレーム画像)におけるテーブルの暫定状態と、上記所定の時刻より前のフレーム画像(
図11の例では、時刻(T-5)~(T-1)のフレーム画像)におけるテーブルの最終状態とに基づいて、上記所定の時刻(時刻T)のフレーム画像におけるテーブルの最終状態を推定するようにした。これにより、1つの静止画像のみに基づいてラベルを付与するタイプの単純なMLCモデルを用いて付与されたラベルに含まれるノイズが最終状態の推定結果に与える影響を減らすことができる。従って、上記の単純なMLCモデルを用いて付与された、ノイズを含むラベルに基づいて、各フレーム画像におけるテーブルの暫定状態を推定しているにも拘わらず、これらの暫定状態に基づいて、各フレーム画像におけるテーブルの(最終)状態を正確に推定することができる。
【0064】
また、本実施形態の状態推定システム10及び状態推定プログラム18によれば、上記のように、1つの静止画像(各フレーム画像におけるテーブル画像)のみに基づいてラベルを付与するタイプの単純なMLCモデルを用いているので、複数の(時間的に)連続した静止画像(時系列のフレーム画像)に基づいてラベルを付与するタイプの複雑なMLCモデルを用いた場合と比べて、(推論)チップ14等のプロセッサにおける推論処理の処理負荷を小さくすることができる。従って、本状態推定システム10は、エッジ側に配された処理能力の高くないコンピュータを用いて、容易に実現することができる。
【0065】
また、本実施形態の状態推定システム10によれば、推論エンジン46(MLCモデル)によりテーブル画像41に付与された各ラベルの尤度と、各ラベルの尤度の閾値とを比較して、テーブルの暫定状態を推定するようにした。これにより、テーブルの暫定状態を容易に推定することができる。
【0066】
また、本実施形態の状態推定システム10によれば、時刻Tのフレーム画像におけるテーブルの最終状態が、最終状態推定部23により推定された最終状態(
図10中のS27の処理でセットされた最終状態)になることが、状態遷移のルールを表すステートマシン(
図7参照)から見て許容されない場合は、時刻Tのフレーム画像におけるテーブルの最終状態を、このフレーム画像の一つ前のフレーム画像(時刻(T-1)のフレーム画像)におけるテーブルの最終状態に維持するようにした。これにより、単純なMLCモデルを用いて付与されたラベルに基づく、暫定状態の推定結果に含まれるノイズの影響を除去することができる。
【0067】
上記のように、ステートマシンを用いて、暫定状態の推定結果に含まれるノイズの影響を除去する理由は、以下の通りである。すなわち、状態推定システム10では、上記のように、所定の時刻T以降のフレーム画像におけるテーブルの暫定状態と、所定の時刻Tより前のフレーム画像におけるテーブルの最終状態とに基づいて、所定の時刻Tのフレーム画像におけるテーブルの最終状態を推定することにより、単純なMLCモデルを用いて付与されたラベルに含まれるノイズが最終状態の推定結果に与える影響を減らすことができる。とは言え、この処理だけでは、各テーブル画像に付与されたラベルに含まれるノイズが最終状態の推定結果に与える影響を、完全に除去することはできない。このため、状態推定システム10では、ステートマシンを用いて、状態遷移のルールから見て許容されない最終状態への遷移を防ぐことにより、単純なMLCモデルを用いて付与されたラベルに含まれるノイズが最終状態の推定結果に与える影響を、より減らしている。
【0068】
また、本実施形態の状態推定システム10によれば、時刻Tのフレーム画像におけるテーブルの最終状態が、最終状態推定部23により推定された最終状態になることが、状態遷移のルールを表すステートマシンから見て許容されない場合でも、暫定状態推定部22により推定された暫定状態が、所定時間以上、同じ状態であるときには、テーブルの最終状態が、最終状態推定部23により推定された最終状態になることを許容する場合がある。これは、ステートマシンが示すルールから外れた例外的な状態遷移のパターンに対応するためである。
【0069】
また、本実施形態の状態推定システム10によれば、状態推定エンジン(
図4参照)から出力された(状態遷移検証部24による検証後における、)テーブルの最終状態が、所定の条件を満たしたときに、状態推定システム10の使用者(スタッフ)に報知を行うようにした。これにより、状態遷移検証部24による検証済の正確な最終状態に基づいて、スタッフに報知を行うことができるので、店舗のオペレーションを効率化することができる。
【0070】
また、本実施形態の状態推定システム10によれば、分析ボックス1の(CPU11の)報知部25が、スタッフへの報知を行うための報知画面71を、サイネージ3(のディスプレイ)に表示し、この報知画面71に、スタッフに各テーブルの状態を報知するための情報(
図15におけるフレーム72~74)に加えて、カメラ2から直近に入力されたフレーム画像を表示するようにした。これにより、時刻Tの暫定状態を推定してから、時刻Tの最終状態の推定が完了するまでに時間がかかることに起因して、報知画面71上に表示される各テーブルのフレーム72~74の更新や、アラート70a~70cの実行が遅延するにも拘らず、スタッフが、報知画面71上に表示された直近のフレーム画像を見て、各テーブルの状態の変化や、上記のアラート70a~70cに対応する状態(顧客の来店や、顧客が長時間注文を待っている状態や、テーブルが長時間片付けられていない状態)の発生に気づくことができる。
【0071】
変形例:
なお、本発明は、上記の各実施形態の構成に限られず、発明の趣旨を変更しない範囲で種々の変形が可能である。次に、本発明の変形例について説明する。
【0072】
変形例1:
上記の実施形態では、状態推定システム10が、レストランの店舗用の状態推定システムである場合の例について、説明した。けれども、本発明の状態推定システムは、これに限られず、
図7に示すステートマシンを切り換える(入れ替える)ことにより、色々な用途に応用することができる。
【0073】
変形例1-1:
例えば、ステートマシンを、
図16に示すステートマシンに変更することにより、本発明の状態推定システムを、各種販売店のレジや、銀行、郵便局、病院、レンタカーの店舗等の窓口用の状態推定システムにすることができる。以下の説明では、上記の各種販売店のレジや、銀行、郵便局、病院、レンタカーの店舗等の(顧客サービス用の)窓口を、総称して、「窓口」と呼ぶ。
図16及び
図17に示す例では、注目領域には、上記の窓口86(の領域)(
図17参照)だけではなく、顧客の待機エリアの椅子87(の領域)が含まれる。
【0074】
図16に示すステートマシンにおける、(窓口86及び椅子87の)状態には、空き状態81と、待ち状態82と、サービス提供状態83と、処理中状態84とがある。空き状態81は、
図17に示す窓口86と椅子87が空いている状態であり、待ち状態82は、顧客が、窓口86又は椅子87で、スタッフのサービス提供を待っている状態である。また、サービス提供状態83は、スタッフが、窓口86で、顧客にサービスを提供している状態であり、処理中状態84は、スタッフが、いわゆるバックオフィスで、顧客の要求を処理している状態である。
【0075】
この状態推定システムでは、
図16に示すように、ラベル付与部がMLCモデルを用いて注目領域の画像に付与するラベル(付与ラベル)が、空きラベルである時に、暫定状態推定部が、注目領域の暫定状態が空き状態81であると推定し、上記の付与ラベルが、顧客ラベルのみである時に、暫定状態推定部が、注目領域の暫定状態が待ち状態82であると推定する。また、上記の付与ラベルが、顧客ラベルとスタッフラベルである時に、暫定状態推定部が、注目領域の暫定状態がサービス提供状態83であると推定し、上記の付与ラベルが、スタッフラベルである時に、暫定状態推定部が、注目領域の暫定状態が処理中状態84であると推定する。
【0076】
図16に示すように、注目領域(
図17に示す窓口86及び椅子87)の状態は、原則として、空き状態81、待ち状態82、サービス提供状態83、処理中状態84の順に遷移した後、一旦、サービス提供状態83になってから、空き状態81に戻る。
【0077】
この変形例1-1の状態推定システムは、顧客が窓口86に近づいた時、及び顧客が待機エリアの椅子87に座った時に、これらの窓口86及び椅子87が映ったフレーム画像に基づいて、
図16に示すアラート80aを、店員に通知する。顧客が窓口86に近づいた時には、該当の窓口86の番号と共に、上記のアラート80aが、全ての店員、又は特殊な専門知識を有する特定の店員に通知される。ここで、銀行や、郵便局等の店員(スタッフ)は、窓口におけるサービス提供業務だけではなく、バックオフィスにおける事務作業も行っている。従って、上記のようなアラート80aを店員に通知することにより、店員は、バックオフィスにおける事務作業に集中して、顧客が現れた時だけ、窓口をチェックすれば良い(窓口におけるサービス提供を行えば良い)ようにすることができるので、店員による店舗オペレーションを最適化することができる。
【0078】
また、この変形例1-1の状態推定システムは、窓口86が映ったフレーム画像に基づいて、
図16に示すアラート80bを通知する。このアラート80bは、(1)窓口86における、ある店員による顧客へのサービス提供オペレーションが完了したことを、他の店員に通知するためと、(2)窓口が利用可能になったことを、顧客に通知するために行われる。上記のアラート80a及びアラート80bの通知は、サイネージへの報知画面表示や、スピーカによる警告音出力により行われる。なお、
図17から分かるように、この変形例1-1の状態推定システムに使用されるカメラは、上記実施形態のような360度カメラではなく、通常のネットワークカメラである。
【0079】
変形例1-2:
また、ステートマシンを、
図18に示すステートマシンに変更することにより、本発明の状態推定システムを、銀行のATM(現金自動預け払い機) 用の状態推定システムにすることができる。この例では、注目領域は、
図19に示すATM94(の領域)である。
【0080】
図18に示すように、上記のステートマシンにおける、ATM94の状態には、空き状態91と、処理中状態92と、支援中状態93とがある。空き状態91は、
図19に示すATM94が空いている状態であり、処理中状態92は、顧客がATM94のサービスを使用している状態である。また、支援中状態93は、顧客が5分以上ATM94の前にいた(処理中状態92が5分以上継続した)ために、銀行のスタッフが顧客のATM操作を支援している状態である。
【0081】
この状態推定システムでは、
図18に示すように、ラベル付与部がMLCモデルを用いてATM94の画像に付与するラベル(付与ラベル)が、空きラベルである時に、暫定状態推定部が、ATM94の暫定状態が空き状態91であると推定し、上記の付与ラベルが、顧客ラベルのみである時に、暫定状態推定部が、ATM94の暫定状態が処理中状態92であると推定する。また、上記の付与ラベルが、顧客ラベルとスタッフラベルである時に、暫定状態推定部は、ATM94の暫定状態が支援中状態93であると推定する。
【0082】
図18に示すように、ATM94の状態は、原則として、空き状態91から処理中状態92に遷移した後、空き状態91に戻る。ただし、空き状態91から処理中状態92に遷移した後、5分以上経過した場合には、銀行のスタッフが顧客のATM操作を支援するので、処理中状態92から支援中状態93に遷移した後、空き状態91に戻る。
【0083】
図18に示すアラート90aは、各ATM94の前における顧客の有無(各ATM94が空き状態91であるか否か)を、銀行のスタッフに通知するためのアラートである。この変形例1-2の状態推定システム(における分析ボックス)は、各ATM94が映ったフレーム画像に基づいて、銀行のカウンターの中のスタッフがいるエリアに設置されたサイネージに、どのATM94が空いていて、どのATMが使用中かを示す報知画面を表示することにより、上記のアラート90aを上げる。上記の報知画面が、全てのATM94が空いていない(使用中である)ことを示す時には、銀行のスタッフは、ATM94の設置エリアの状況をチェックし、顧客のATM操作を速めるように支援する。
【0084】
また、
図18に示すアラート90bは、上記のように、顧客が5分以上ATM94の前にいた(処理中状態92が5分以上継続した)時に、それを銀行のスタッフに通知するためのアラートである。このアラート90bが通知されると、銀行のスタッフは、該当のATM94を使用中の顧客の操作を支援する。
【0085】
変形例1-3:
また、ステートマシンを、
図20に示すステートマシンに変更することにより、本発明の状態推定システムを、ハイウェイバス用の状態推定システムにすることができる。この例では、注目領域は、バスの各座席(の領域)である。
【0086】
図20に示すように、上記のステートマシンにおける(バスの)各座席の状態には、空席状態95と、着席状態96とがある。空席状態95は、該当の座席が、空いている状態であり、着席状態96は、該当の座席に乗客が座っている状態である。この状態推定システムでは、
図20に示すように、ラベル付与部がMLCモデルを用いて該当の座席の画像に付与するラベル(付与ラベル)が、空席ラベルである時に、暫定状態推定部が、該当の座席の暫定状態が空席状態95であると推定し、上記の付与ラベルが、人ラベルである時に、暫定状態推定部が、該当の座席の暫定状態が着席状態96であると推定する。
図20に示すように、各座席の状態は、空席状態95から着席状態96に遷移した後、空席状態95に戻る。
【0087】
この変形例1-3の状態推定システム(における分析ボックス)は、バス内の各座席が映ったフレーム画像に基づいて、
図21に示すように、バスのドアに設置されたサイネージ98に、バスの各座席の状態を示す報知画面99を表示する。この報知画面99には、座席状態表示欄99aと、着席数表示欄99bとが設けられている。上記の座席状態表示欄99aは、バス内の各座席の状態(どの座席が空いていて、どの座席に乗客が座っているか)を示し、着席数表示欄99bは、バス内の座席のうち、着席状態96にあると推定された座席の数を示す。
【0088】
上記の報知画面99は、(1)乗客による座席の選択、及び(2)ドライバーによる着席している乗客数の確認に用いられる。上記の(1)乗客による座席の選択は、以下のようにして、行われる。すなわち、バスがバス停に着くと、状態推定システム(における分析ボックス)が、バスのドアに設置されたサイネージ98に、報知画面99を表示する。バスに乗り込む乗客は、この報知画面99における座席状態表示欄99aを見て、空いている座席の中から、自分の座席を決める(選択する)。
【0089】
また、上記の(2)ドライバーによる着席している乗客数の確認は、以下のような場合に行われる。例えば、バスが、サービスエリア等の休憩所に到着して、決められた休憩時間が経過した時に、バスのドライバーが、サイネージ98に表示された報知画面99における着席数表示欄99bを見て、着席状態にある座席の数(すなわち、着席している乗客数)を確認するときである。
【0090】
変形例2:
上記の実施形態では、状態推定システム10が、分析ボックス1(請求項における「コンピュータ」)に加えて、カメラ2、及びサイネージ3等を備えている場合の例を示したが、これらの構成要素のうち、本発明の状態推定システムに必須の構成要素は、分析ボックスのみである。すなわち、注目領域(例えば、テーブル)の撮影用のカメラは、既存の(外付けの)監視カメラであってもよく、報知画面の表示用のサイネージも、既存の(外付けの)表示装置であってもよい。
【0091】
変形例3:
上記の実施形態では、分析ボックス1のCPU11が、ラベル付与部21と、暫定状態推定部22と、最終状態推定部23と、状態遷移検証部24と、報知部25とを備える構成にしたが、本発明の状態推定システムは、この構成に限られない。例えば、各店舗に配するカメラを、いわゆるエッジコンピューティング機能を有するAI(Artificial Intelligence)カメラにして、このAIカメラに、MLCモデルを備えたアプリパッケージをインストールして、AIカメラが、上記のラベル付与部の機能を備えるようにしてもよい。
【0092】
変形例4:
上記の実施形態では、1つの静止画像のみに基づいてラベルを付与するタイプの単純なMLCモデルを用いて、カメラ2から入力された各フレーム画像における各注目領域の画像(テーブル画像)に、1以上のラベルを付与する場合の例を示したが、本発明における「ラベル付与手段」は、上記のような単純なMLCモデルを用いたものに限られず、各注目領域の画像に多ラベルを付与することが可能な多ラベル分類用アルゴリズムを用いたものであればよい。
【符号の説明】
【0093】
1 分析ボックス(コンピュータ)
2 カメラ
3 サイネージ(表示装置)
10 状態推定システム
18 状態推定プログラム
21 ラベル付与部(ラベル付与手段)
22 暫定状態推定部(暫定状態推定手段)
23 最終状態推定部(最終状態推定手段)
24 状態遷移検証部(状態遷移検証手段)
25 報知部(報知手段)
31a~31t、41 テーブル画像(注目領域の画像)
71 報知画面
72~74 フレーム(請求項における「使用者への報知の情報」)
T 時刻(所定の時刻)