(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-19
(45)【発行日】2022-12-27
(54)【発明の名称】情報処理装置、制御方法、及びプログラム
(51)【国際特許分類】
G06T 7/20 20170101AFI20221220BHJP
G06Q 30/02 20120101ALI20221220BHJP
G06T 7/00 20170101ALI20221220BHJP
【FI】
G06T7/20 300A
G06Q30/02 300
G06T7/00 C
(21)【出願番号】P 2019524778
(86)(22)【出願日】2017-06-21
(86)【国際出願番号】 JP2017022875
(87)【国際公開番号】W WO2018235198
(87)【国際公開日】2018-12-27
【審査請求日】2019-12-11
【審判番号】
【審判請求日】2021-07-07
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100110928
【氏名又は名称】速水 進治
(72)【発明者】
【氏名】白石 壮馬
【合議体】
【審判長】畑中 高行
【審判官】千葉 輝久
【審判官】田中 啓介
(56)【参考文献】
【文献】特開2015-106281(JP,A)
【文献】特開2000-331170(JP,A)
【文献】特開2015-041194(JP,A)
【文献】特開2010-271872(JP,A)
【文献】特開2011-233119(JP,A)
【文献】特開2017-049662(JP,A)
【文献】国際公開第2011/007390(WO,A1)
【文献】特開2016-162072(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T1/00,7/00-7/90
G06Q30/02
G08B13/194-13/196
(57)【特許請求の範囲】
【請求項1】
物の陳列場所が撮像された撮像画像から、前記撮像画像に含まれる人の手の位置を示す基準位置と、前記人の手の姿勢と、を検出する検出手段と、
前記検出された基準位置を起点とする所定のベクトルによって基準点の位置を決定し、前記検出された人の手の姿勢によって定まる向きによって
解析対象領域の向きを決定し、さらに、
決定した前記基準点と前記
向きを用いて前記撮像画像の中の解析対象領域を決定する決定手段と、
前記決定された解析対象領域を解析することで、前記人の動作を特定する特定手段と、
を有する情報処理装置。
【請求項2】
前記特定手段は、前記人が物を保持している動作、及び前記人が物を保持していない動作のうち、少なくとも1つの特定を行う、請求項1に記載の情報処理装置。
【請求項3】
前記特定手段は、それぞれ異なる時点に生成された複数の撮像画像それぞれについて決定された前記解析対象領域を解析することで、前記人が前記陳列場所から物を取り出す動作、前記人が前記陳列場所との接触前後双方において物を保持していない動作、前記人が前記陳列場所に物を置く動作、及び前記人が前記陳列場所との接触前後双方において物を保持している動作のうち、少なくとも1つの特定を行う、請求項1または2に記載の情報処理装置。
【請求項4】
前記特定手段は、前記陳列場所における各物体の位置を示す陳列情報、及び前記解析対象領域に含まれる前記基準位置の高さ方向の位置に基づいて、前記人の動作の対象である物を特定する、請求項1乃至3いずれか一項に記載の情報処理装置。
【請求項5】
前記撮像画像は、前記陳列場所を上方から撮像するデプスカメラによって生成された深度画像であり、
前記特定手段は、前記基準位置の高さ方向の位置を、前記深度画像における前記基準位置の画素値に基づいて特定する、請求項4に記載の情報処理装置。
【請求項6】
コンピュータによって実行される制御方法であって、
物の陳列場所が撮像された撮像画像から、前記撮像画像に含まれる人の手の位置を示す基準位置と、前記人の手の姿勢と、を検出する検出ステップと、
前記検出された基準位置を起点とする所定のベクトルによって基準点の位置を決定し、前記検出された人の手の姿勢によって定まる向きによって
解析対象領域の向きを決定し、さらに、
決定した前記基準点と前記
向きを用いて前記撮像画像の中の解析対象領域を決定する決定ステップと、
前記決定された解析対象領域を解析することで、前記人の動作を特定する特定ステップと、
を有する制御方法。
【請求項7】
請求項6に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像解析に関する。
【背景技術】
【0002】
店舗において、顧客は、陳列場所(例えば商品棚)に陳列されている商品を取り出して購入する。また顧客は、一旦手に取った商品を陳列場所に戻すこともある。このように陳列されている商品に関する顧客の行動を分析する技術が開発されている。
【0003】
例えば特許文献1は、デプスカメラによる撮像結果から得られる深度画像を利用して特定の領域(棚)に物体(人の手)が進入することを検出し、進入前後の進入位置付近のカラー画像を用いて、顧客の動作を特定する技術を開示している。具体的には、特定の領域に進入する人の手が含まれるカラー画像と、特定の領域から出て行く人の手が含まれるカラー画像とを比較して、色の増加が閾値を超えた場合には「商品の取得」、色の減少が閾値を超えた場合には「商品の返却」、色の変化が閾値未満である場合には「接触」という人の動作をそれぞれ特定する。また、特許文献1には、デプスカメラによる撮像結果から得られる被写体のサイズの情報から、被写体の体積の増減を判断することで、商品の取得と返却とを区別する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許出願公開第2014/0132728号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
陳列場所へ人の手が進入した前後における色や体積の増減の程度は、例えば、商品のサイズや、人の手の姿勢の変化に影響される。例えば、小さい商品を陳列場所から取り出した場合には、その前後における色や体積の増加は小さい。また、手の姿勢を変化させる動作が、商品を取得する動作と誤認識されてしまうこともある。
【0006】
本発明は、以上の問題点に鑑みてなされたものである。本発明の目的の一つは、陳列されている物に対する人の動作を高い精度で特定する技術を提供することである。
【課題を解決するための手段】
【0007】
本発明の情報処理装置は、1)物の陳列場所が撮像された撮像画像から、前記撮像画像に含まれる人の手の位置を示す基準位置と、前記人の手の姿勢と、を検出する検出手段と、2)前記検出された基準位置を起点とする所定のベクトルによって基準点の位置を決定し、前記検出された人の手の姿勢によって定まる向きによって傾きを決定し、さらに、前記基準点と前記傾きを用いて前記撮像画像の中の解析対象領域を決定する決定手段と、3)前記決定された解析対象領域を解析することで、前記人の動作を特定する特定手段と、を有する。
【0008】
本発明の制御方法は、コンピュータによって実行される制御方法である。当該制御方法は、1)物の陳列場所が撮像された撮像画像から、前記撮像画像に含まれる人の手の位置を示す基準位置と、前記人の手の姿勢と、を検出する検出ステップと、2)前記検出された基準位置を起点とする所定のベクトルによって基準点の位置を決定し、前記検出された人の手の姿勢によって定まる向きによって傾きを決定し、さらに、前記基準点と前記傾きを用いて前記撮像画像の中の解析対象領域を決定する決定ステップと、3)前記決定された解析対象領域を解析することで、前記人の動作を特定する特定ステップと、を有する。
【0009】
本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
【発明の効果】
【0010】
本発明によれば、陳列されている物に対する人の動作を高い精度で特定する技術が提供される。
【図面の簡単な説明】
【0011】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
【0012】
【
図1】実施形態1に係る情報処理装置の動作を概念的に例示する図である。
【
図2】実施形態1に係る情報処理装置の機能構成の例を示すブロック図である。
【
図3】情報処理装置を実現するための計算機を例示する図である。
【
図4】実施形態1の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【
図5】カメラの撮像範囲を例示する第1の図である。
【
図6】カメラの撮像範囲を例示する第2の図である。
【
図7】商品棚を向かって右側から撮像した様子が撮像画像に含まれるケースを例示する図である。
【
図8】基準位置を基準として定まる所定形状の領域として決定される解析対象領域を例示する図である。
【
図9】顧客の手の向きに基づいて解析対象領域の向きを定めるケースを例示する図である。
【
図10】顧客20の動作を特定するための処理の流れを例示するフローチャートである
【
図11】顧客20の動作を特定するための処理の流れを例示するフローチャートである
【
図12】陳列情報をテーブル形式で例示する図である。
【
図13】カメラによって生成される深度画像を例示する図である。
【
図14】商品棚の各段について、カメラとの間の距離の範囲を示す陳列情報を例示する図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【0014】
[実施形態1]
<情報処理装置2000の動作の概要>
図1は、実施形態1に係る情報処理装置(後述する
図2などに示す情報処理装置2000)の動作を概念的に例示する図である。なお
図1は、情報処理装置2000の動作の理解を容易にすることを目的とする例示のための図であり、情報処理装置2000の動作は
図1によって何ら限定されない。
【0015】
情報処理装置2000は、カメラ10によって生成された撮像画像12を解析することで、人の動作を特定する。カメラ10は、物が陳列されている陳列場所を撮像するカメラである。カメラ10は、繰り返し撮像を行って、複数の撮像画像12を生成する。生成される複数の撮像画像12は、例えば、動画データを構成するフレーム群である。ただし、カメラ10によって生成される複数の撮像画像12は、必ずしも動画データを構成する必要はなく、個別の静止画像データとして扱われてもよい。
【0016】
カメラ10によって撮像される物は、陳列場所に陳列され、なおかつ人によってその陳列場所から取り出されたり、その逆に人によってその陳列場所に置かれたり(戻されたり)する任意の物とすることができる。具体的にどのような物をカメラ10に撮像させるかは、情報処理装置2000の利用環境によって異なる。
【0017】
例えば情報処理装置2000が、店舗において顧客や店員の動作を特定するために利用されるとする。この場合、カメラ10によって撮像される物は、店舗で販売されている商品である。また、上記陳列場所は、例えば商品棚である。
図1において、情報処理装置2000は、顧客20の動作を特定するために利用されている。そのため、カメラ10によって撮像される人と物はそれぞれ、顧客20と商品40である。また、陳列場所は商品棚50である。
【0018】
その他にも例えば、情報処理装置2000が、工場の作業員などの動作を特定するために利用されるとする。この場合、カメラ10によって撮像される人は、作業員などである。また、カメラ10によって撮像される物は、工場で使用される資材や工具などである。さらに、上記陳列場所は、例えば工場の倉庫などに設置されている棚である。
【0019】
説明を分かりやすくするため、本明細書では特に断らない限り、情報処理装置2000が店舗における顧客(
図1における顧客20)の動作を特定するために利用されるケースを例として説明する。そのため、特定部2060によって特定される「人の動作」は、「顧客の動作」であるとする。また、カメラによって撮像される「物」は「商品」であるとする。さらに、「陳列場所」は「商品棚」であるとする。
【0020】
情報処理装置2000は、撮像画像12から基準位置24を検出する。基準位置24は、人の手の位置を示す。人の手の位置は、例えば手の中心位置や指先の位置などである。情報処理装置2000は、この基準位置24を用いて、撮像画像12において解析対象とする領域(解析対象領域30)を決定する。そして情報処理装置2000は、解析対象領域30を解析することで、顧客20の動作を特定する。例えば顧客20の動作は、商品40を保持する動作、商品棚50から商品40を取り出す動作、又は商品棚50へ商品40を置く動作などである。
【0021】
<作用・効果>
撮像画像12全体を画像解析して顧客20の動作を特定しようとする場合、商品40のサイズが小さい場合や、顧客20の手の姿勢が大きく変動する場合に、動作を正確に特定できないことがある。この点、情報処理装置2000は、まず撮像画像12において顧客20の手の位置を示す基準位置24を検出し、基準位置24に基づいて解析対象領域30を決定する。すなわち、顧客20の手の付近について画像解析を行う。そのため、商品40のサイズが小さい場合や、顧客20の手の姿勢が大きく変動する場合であっても、商品40を取得する、商品40を置く、又は商品40を保持するなどといった顧客20の手による動作を精度良く特定することができる。
【0022】
以下、本実施形態の情報処理装置2000についてさらに詳細に説明する。
【0023】
<情報処理装置2000の機能構成の例>
図2は、実施形態1に係る情報処理装置2000の機能構成の例を示すブロック図である。情報処理装置2000は、検出部2020、決定部2040、及び特定部2060を有する。検出部2020は、撮像画像12から、撮像画像12に含まれる人の手の基準位置24を検出する。決定部2040は、検出された基準位置24を用いて、撮像画像12の中の解析対象領域30を決定する。特定部2060は、決定された解析対象領域30を解析することで、上記人の動作を特定する。
【0024】
<情報処理装置2000のハードウエア構成例>
情報処理装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、情報処理装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0025】
図3は、情報処理装置2000を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなどである。その他にも例えば、計算機1000はカメラ10であってもよい。計算機1000は、情報処理装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【0026】
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU(Central Processing Unit)や GPU(Graphics Processing Unit)などの演算装置である。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。ただし、ストレージデバイス1080は、RAM など、主記憶装置を構成するハードウエアと同様のハードウエアで構成されてもよい。
【0027】
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。ネットワークインタフェース1120は、計算機1000を通信網に接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【0028】
例えば計算機1000は、ネットワークを介して、カメラ10と通信可能に接続されている。ただし、計算機1000をカメラ10と通信可能に接続する方法は、ネットワークを介した接続に限定されない。ただし、計算機1000は、カメラ10によって生成された撮像画像12を取得できればよく、必ずしもカメラ10と通信可能に接続される必要はない。
【0029】
ストレージデバイス1080は、情報処理装置2000の各機能構成部(検出部2020、決定部2040、及び特定部2060)を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
【0030】
<カメラ10について>
カメラ10は、繰り返し撮像を行って複数の撮像画像12を生成することができる任意のカメラである。カメラ10は、動画データを生成するビデオカメラであってもよいし、静止画像データを生成するスチルカメラであってもよい。なお、前者の場合、撮像画像12は、動画データを構成する動画フレームである。
【0031】
カメラ10は、2次元カメラであってもよいし、3次元カメラ(ステレオカメラやデプスカメラ)であってもよい。なお、カメラ10がデプスカメラである場合、撮像画像12は深度画像であってもよい。深度画像とは、画像の各画素の値が、撮像された物体とカメラとの間の距離を表す画像である。さらに、カメラ10は、赤外線カメラであってもよい。
【0032】
前述したように、情報処理装置2000を実現する計算機1000は、カメラ10であってもよい。この場合、カメラ10は、自身で生成した撮像画像12を解析することで、顧客20の動作を特定する。このような機能を持たせるカメラ10としては、例えば、インテリジェントカメラ、ネットワークカメラ、又は IP(Internet Protocol)カメラなどと呼ばれるカメラを用いることができる。
【0033】
<処理の流れ>
図4は、実施形態1の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。検出部2020は、撮像画像12を取得する(S102)。検出部2020は、取得した撮像画像12から商品40の手の基準位置24を検出する(S104)。決定部2040は、検出された基準位置24を用いて解析対象領域30を決定する(S106)。特定部2060は、決定された解析対象領域30を画像解析する(S108)。特定部2060は、解析対象領域30を画像解析した結果に基づいて、顧客20の動作を特定する(S108)。
【0034】
ここで、顧客20の動作の特定には、複数の撮像画像12が利用されてもよい。この場合、複数の撮像画像12それぞれについて決定された解析対象領域30を画像解析する(複数の解析対象領域30を画像解析する)ことにより、顧客20の動作が特定される。すなわち、複数の撮像画像12それぞれについてS102からS108の処理が行われ、その結果を用いてS110の処理が行われる。
【0035】
<情報処理装置2000が処理を実行するタイミング>
情報処理装置2000が
図4に示す一連の処理を実行するタイミングは様々である。例えば情報処理装置2000は、カメラ10によって撮像画像12が生成される度に、その撮像画像12について、
図4に示す一連の処理を実行する。
【0036】
その他にも例えば、情報処理装置2000は、所定の時間間隔で(例えば1秒ごとに)、
図4に示す一連の処理を実行する。この場合、例えば情報処理装置2000は、
図4に示す一連の処理を開始するタイミングで、カメラ10によって生成された最新の撮像画像12を取得する。
【0037】
<撮像画像12の取得:S102>
検出部2020は、撮像画像12を取得する(S102)。検出部2020が撮像画像12を取得する方法は任意である。例えば検出部2020は、カメラ10から送信される撮像画像12を受信する。また例えば、検出部2020は、カメラ10にアクセスし、カメラ10に記憶されている撮像画像12を取得する。
【0038】
なお、カメラ10は、カメラ10の外部に設けられている記憶装置に撮像画像12を記憶してもよい。この場合、検出部2020は、この記憶装置にアクセスして撮像画像12を取得する。
【0039】
情報処理装置2000がカメラ10で実現される場合、情報処理装置2000は、情報処理装置2000自身によって生成された撮像画像12を取得する。この場合、撮像画像12は、例えば情報処理装置2000の内部にあるメモリ1060やストレージデバイス1080(
図3参照)に記憶されている。そこで検出部2020は、メモリ1060やストレージデバイス1080から撮像画像12を取得する。
【0040】
撮像画像12には(すなわち、カメラ10の撮像範囲には)、少なくとも、商品棚50よりも手前の範囲が含まれる。
図5は、カメラ10の撮像範囲を例示する第1の図である。
図5において、カメラ10の撮像範囲14には、商品棚50の前面から手前側に距離 d1 の範囲が含まれている。
【0041】
なお、カメラ10の撮像範囲には、商品棚50が含まれなくてもよい。
図6は、カメラ10の撮像範囲を例示する第2の図である。
図6において、カメラ10の撮像範囲14には、商品40の前面から手前側に d2 離れた位置から、商品40の前面から手前側に d3 離れた位置までの範囲が含まれる。
【0042】
また、
図5や
図6の撮像画像12に含まれるのは、商品棚50を上から見下ろした様子である。言い換えれば、カメラ10は、商品棚50の上方から商品棚50を撮像するように設置されている。しかしながら、撮像画像12に含まれるのは、商品棚50を上から見下ろした様子でなくてもよい。例えば撮像画像12には、商品棚50を横から撮像した様子が含まれてもよい。
図7は、商品棚50を向かって右側から撮像した様子が撮像画像12に含まれるケースを例示する図である。
【0043】
<基準位置24の検出:S104>
検出部2020は、撮像画像12から基準位置24を検出する(S104)。前述した通り、基準位置24は顧客20の手の位置を示す。前述したとおり、顧客20の手の位置は、例えば手の中心位置や指先の位置などである。検出部2020が撮像画像12から基準位置24を検出する方法は様々である。例えば検出部2020は、予め用意されている人の手の特徴量を利用して特徴量マッチングを行うことにより、撮像画像12から、その特徴量にマッチする(特徴量との類似度が高い)領域を検出する。そして検出部2020は、検出された領域、すなわち手を表す領域の所定位置(例えば中心位置など)を、手の基準位置24として検出する。
【0044】
その他にも例えば、検出部2020は、機械学習を利用して基準位置24を検出してもよい。具体的には、機械学習を利用した検出器として、検出部2020を構成する。この場合、予め、基準位置24が既知である撮像画像(撮像画像と、その撮像画像における基準位置24の座標とのセット)を1つ以上利用して、検出部2020を学習させておく。こうすることで、検出部2020は、取得した撮像画像12から基準位置24を検出できるようになる。なお、機械学習の予測モデルには、ニューラルネットワークなどの種々なモデルを利用することができる。
【0045】
ここで、検出部2020の学習は、様々な姿勢の顧客20の手について行われることが好適である。具体的には、様々な姿勢の顧客20の手について学習用の撮像画像を用意する。こうすることで、顧客20の手の姿勢が撮像画像12ごとに異なっていても、各撮像画像12から高い精度で基準位置24を検出することができる。
【0046】
ここで、検出部2020は、基準位置24に加え、顧客20の手に関する種々のパラメータを検出してもよい。例えば検出部2020は、手の幅、長さ、姿勢、及び基準位置24とカメラ10との間の距離などを検出する。特徴量マッチングを利用する場合、検出部2020は、検出された手の領域の形状や大きさから、手の幅、長さ、及び姿勢などを特定する。機械学習を利用する場合、手の幅、長さ、姿勢、及び基準位置24とカメラ10との間の距離などが既知である1つ以上の撮像画像を利用して、検出部2020を学習させておく。こうすることで、検出部2020は、取得した撮像画像12から、基準位置24に加え、手の幅などの種々のパラメータを検出することができる。
【0047】
<解析対象領域30の決定:S106>
決定部2040は、検出された基準位置24を用いて解析対象領域30を決定する(S106)。決定部2040が解析対象領域30を決定する方法は様々である。例えば決定部2040は、撮像画像12に含まれる領域のうち、基準位置24を基準として定まる所定形状の領域である。
【0048】
図8は、基準位置24を基準として定まる所定形状の領域として決定される解析対象領域30を例示する図である。
図8(a)は、基準位置24が解析対象領域30の所定位置を表す位置として利用されるケースを表す。具体的には、
図8(a)の解析対象領域30は、基準位置24を中心とする矩形である。解析対象領域30の高さは h であり、幅 w の矩形である。なお、基準位置24は解析対象領域30の左上端や右下端など、解析対象領域30の中心以外を定める位置として利用されてもよい。
【0049】
図8(b)は、基準位置24と所定の関係にある位置によって、解析対象領域30の所定位置(中心や左上端など)を定めるケースを表す。具体的には、
図8(b)の解析対象領域30は、基準位置24から所定ベクトル v 移動した位置を中心とする矩形である。大きさ及び向きについては、
図8(a)の解析対象領域30と同じである。
【0050】
図8の例において、解析対象領域30の向きは、撮像画像12の軸方向に基づいて定められている。より具体的には、解析対象領域30の高さ方向が、撮像画像12のY軸方向として定められている。しかし、解析対象領域30の向きは、撮像画像12の軸方向以外に基づいて定められてもよい。
【0051】
例えば検出部2020によって、顧客20の手の姿勢が検出されるとする。この場合、解析対象領域30の向きは、手の向きに基づいて定められてもよい。
図9は、顧客20の手の向きに基づいて解析対象領域30の向きを定めるケースを例示する図である。
図9において、解析対象領域30の向きは、手の奥行き方向(手首から指先へ向かう方向)として定められている。
【0052】
なお、このように顧客20の手の向きに基づいて解析対象領域30の向きを定める場合、複数の撮像画像12それぞれの解析対象領域30の向きが異なりうる。そのため、決定部2040は、複数の解析対象領域30の向きを揃えるように幾何変換を行うことが好適である。例えば、決定部2040は、各撮像画像12から解析対象領域30を抽出し、抽出した各解析対象領域30を、顧客20の手の奥行き方向が Y 軸方向を向くように幾何変換する。
【0053】
解析対象領域30のサイズは、静的に定まっていてもよいし、動的に決定されてもよい。後者の場合、解析対象領域30のサイズは、例えば以下の数式(1)によって決定される。
【数1】
h と w はそれぞれ、解析対象領域30の高さと幅である。sb は手の領域について予め定められている基準面積である。hb と wb はそれぞれ、基準面積に対応づけて予め定められている解析対象領域30の高さと幅である。sr は、検出部2020によって撮像画像12から検出された手の領域の面積である。
【0054】
その他にも例えば、解析対象領域30のサイズは、以下の数式(2)を用いて動的に決定されてもよい。
【数2】
h と w はそれぞれ、解析対象領域30の高さと幅である。dbは、予め定められている基準距離値である。hb と wb はそれぞれ、基準距離値に対応付けられている解析対象領域30の高さと幅である。dr は、撮像画像12から検出された基準位置24とカメラ10との間の距離値である。
【0055】
距離値 dr を特定する方法は様々である。例えば、検出部2020は、デプスカメラによって生成された深度画像における基準位置24の画素値に基づいて、距離値 dr を特定する。その他にも例えば、機械学習を利用した検出器として検出部2020を構成する場合、基準位置24に加えて基準位置24とカメラ10との間の距離も検出するように、検出部2020を構成してもよい。
【0056】
ここで、上述した方法で決定した解析対象領域30の各画素を補正し、補正後の解析対象領域30が特定部2060による画像解析に利用されるようにしてもよい。決定部2040は、例えば以下の数式(3)を用いて解析対象領域30の各画素を補正する。
【数3】
d(x,y)0 は、撮影画像12中の解析対象領域30の座標 (x, y) における修正前の画素値である。d(x,y)1 は、撮影画像12中の解析対象領域30の座標 (x, y) における修正後の画素値である。
【0057】
<顧客20の動作の特定:S108、S110>
特定部2060は、決定された解析対象領域30を画像解析することで、顧客20の動作を特定する(S108、S110)。顧客20の動作は、例えば、(1)商品棚50から商品40を取り出す動作、(2)商品棚50へ商品40を置く動作、(3)商品棚50との接触前後双方において商品40を保持しない動作、及び(4)商品棚50との接触前後双方において商品40を保持する動作のいずれかである。
【0058】
ここで、「商品棚50と顧客20との接触」とは、撮像画像12において商品棚50の画像領域と顧客20の画像領域とが少なくとも一部において重なることを意味し、実空間において商品棚50と顧客20とが接触している必要はない。また、上記(4)において、顧客20と商品棚50との接触前に顧客20が保持している商品40と、顧客20と商品棚50との接触後に顧客20が保持している商品40は、互いに同一の物であってもよいし、互いに異なるものであってもよい。
【0059】
上述した4つの動作を判別する処理の流れは、例えば
図10に示す流れとなる。
図10及び
図11は、顧客20の動作を特定するための処理の流れを例示するフローチャートである。まず特定部2060は、基準位置24が商品棚50へ向かって移動している様子が含まれる撮像画像12を検出する(S202)。例えば特定部2060は、時系列の複数の撮像画像12それぞれについて、基準位置24と商品棚50との間の距離を算出する。そして、1つ以上の撮像画像12において上記距離が時間と共に減少している場合に、それらの撮像画像12を、基準位置24が商品棚50へ向かって移動している様子が含まれる撮像画像12として検出する。
【0060】
さらに特定部2060は、S202で検出された撮像画像12において、解析対象領域30に商品40が含まれるか否かを判定する(S204)。解析対象領域30に商品40が含まれる場合(S204:YES)、
図10の処理はS206に進む。一方、解析対象領域30に商品40が含まれない場合(S204:NO)、
図10の処理はS216に進む。
【0061】
S206において、特定部2060は、S202で検出された撮像画像12よりも後に生成された撮像画像12の中から、基準位置24が商品棚50から離れる方向に移動している様子が含まれる撮像画像12を検出する(S206)。例えば特定部2060は、S202で検出された撮像画像12よりも後に生成された時系列の複数の撮像画像12それぞれについて、基準位置24と商品棚50との間の距離を算出する。そして、1つ以上の撮像画像12において上記距離が時間と共に増加している場合に、それらの撮像画像12を、基準位置24が商品棚50から離れる方向へ移動している様子が含まれる撮像画像12として検出する。
【0062】
さらに特定部2060は、S206で検出された撮像画像12において、解析対象領域30に商品40が含まれるか否かを判定する(S208)。解析対象領域30に商品40が含まれる場合(S208:YES)、商品棚50に向かって移動する手と、商品棚50から離れる方向へ移動する手の双方に、商品40が保持されていることとなる。そのため特定部2060は、顧客20の動作が、「(4)商品棚50との接触前後双方において商品40を保持する動作」であると特定する(S210)。
【0063】
一方、解析対象領域30に商品40が含まれない場合(S208:NO)、商品棚50に向かって移動する手には商品40が保持されている一方で、商品棚50から離れる方向へ移動する手には商品40が保持されていないこととなる。そのため特定部2060は、顧客20の動作が、「(2)商品棚50へ商品40を置く動作」であると特定する(S212)。
【0064】
S214において、特定部2060は、S202で検出された撮像画像12よりも後に生成された撮像画像12の中から、基準位置24が商品棚50から離れる方向に移動している様子が含まれる撮像画像12を検出する。その検出の方法は、S206における実行される方法と同様である。
【0065】
さらに特定部2060は、S214で検出された撮像画像12において、解析対象領域30に商品40が含まれるか否かを判定する(S216)。解析対象領域30に商品40が含まれる場合(S216:YES)、商品棚50に向かって移動する手には商品40が保持されていない一方で、商品棚50から離れる方向に移動する手には商品40が保持されていることとなる。そのため特定部2060は、顧客20の動作が、「(1)商品棚50から商品40を取り出す動作」であると特定する(S218)。
【0066】
一方、解析対象領域30に商品40が含まれない場合(S216:NO)、商品棚50に向かって移動する手と、商品棚50から離れる方向へ移動する手の双方に、商品40が保持されていないこととなる。そのため特定部2060は、顧客20の動作が、「(3)商品棚50との接触前後双方において商品40を保持しない動作」であると特定する(S220)。
【0067】
ここで、解析対象領域30に商品40が含まれるか否かを検出する方法には、例えば次の方法がある。まず特定部2060は、時系列の複数の撮像画像12それぞれについて決定された解析対象領域30から、背景領域を除いた画像領域、すなわち前景領域を抽出する。なお、所定の場所に設置されたカメラ10によって撮像される撮像画像について背景領域を特定する技術には、既存の技術を利用することができる。
【0068】
そして特定部2060は、前景領域に顧客20の手を表す画像領域以外が含まれる場合、解析対象領域30に商品40が含まれると判定する。ただし、特定部2060は、前景領域のうち、手を表す画像領域を除いた画像領域のサイズが、所定のサイズ以上である場合のみ、解析対象領域30に商品40が含まれると判定してもよい。こうすることで、撮像画像12に含まれるノイズが誤って商品40として検出されてしまうことを防ぐことができる。
【0069】
解析対象領域30に商品40が含まれるか否かを判定する方法は、上述した方法に限定されない。解析対象領域30に商品40が含まれるか否か、すなわち、画像に含まれる人の手が商品を持っているか否かを判定する方法には、既存の種々の方法を利用することができる。
【0070】
なお、特定部2060は、1つの撮像画像12から顧客20の動作を特定してもよい。例えばこの場合、特定部2060は、「商品40を保持している」又は「商品40を保持していない」という顧客20の動作を特定する。
【0071】
<商品40の特定>
特定部2060は、顧客20が商品棚50から商品40を取り出したときに、取り出した商品40を特定してもよい。商品40の特定とは、例えば、その商品40を他の商品40と識別する情報(例えば商品40の識別子や名称など)を特定することを意味する。以下、商品40を識別する情報を商品識別情報と呼ぶ。
【0072】
特定部2060は、顧客20が商品棚50のどこから商品40を取り出したかを特定することによって、取り出された商品40を特定する。前提として、商品40の陳列場所が予め定められているとする。ここで、商品棚50の各位置にどの商品が陳列されているかを示す情報を、陳列情報と呼ぶ。特定部2060は、撮像画像12を用いて、顧客20が商品棚50のどこから商品40を取り出したかを特定し、特定した場所と陳列情報を用いて、取り出された商品40を特定する。
【0073】
例えば、商品棚50において、段ごとに特定の商品40が陳列されるとする。この場合、陳列情報は、商品棚50の段に対応づけて商品識別情報を示す。
図12は、陳列情報をテーブル形式で例示する図である。
図12に示されているテーブルを、テーブル200と呼ぶ。テーブル200は、商品棚50ごとに作られている。テーブル200は、段202と商品識別情報204という2つの列を有する。
図12において、商品識別情報204は、商品40の識別子を示す。例えば、s0001 という識別子で特定される商品棚50の陳列情報を表すテーブル200において、1行目のレコードは、商品棚50の1段目に、i0001 という識別子で特定される商品40が陳列されていることを示している。
【0074】
特定部2060は、撮像画像12を用いて、商品40が取り出された商品棚50の段を特定する。そして特定部2060は、陳列情報においてその段に対応づけられている商品識別情報を取得することで、商品棚50から取り出された商品40を特定する。以下、商品40が取り出された商品棚50の段を特定する方法をいくつか例示する。
【0075】
<<第1の方法>>
前提として、撮像画像12に商品棚50を上方から撮像した様子が含まれるとする(
図5参照)。言い換えれば、カメラ10が、商品棚50を上方から撮像するとする。この場合、カメラ10としてデプスカメラを利用する。デプスカメラは、通常の撮像画像に加えて、又はこれに代えて、深度画像を生成する。前述したように、深度画像とは、画像の各画素の値が、撮像された物体とカメラとの間の距離を表す画像である。
図13は、カメラ10によって生成される深度画像を例示する図である。
図13の深度画像では、カメラ10からの距離が近い物体を表す画素ほど白色に近く(明るく)、カメラ10からの距離が遠い物体を表す画素ほど黒色に近く(暗く)なっている。なお、図示の都合上、
図13では、暗い部分ほど大きな黒点を密に描き、明るい部分ほど小さな黒点を疎に描いている。
【0076】
特定部2060は、深度画像において基準位置24を表す画素の値に基づいて、基準位置24が商品棚50のどの段に位置するかを特定する。この際、予め、陳列情報において、商品棚50の各段について、カメラ10との間の距離の範囲を定めておく。
図14は、商品棚50の各段について、カメラ10との間の距離の範囲を示す陳列情報を例示する図である。例えば
図14のテーブル200は、商品棚50の1段目の棚とカメラ10との間の距離の範囲が、d1 以上なおかつ d2 未満であることを示している。言い換えれば、1段目の棚の最上部とカメラ10との間の距離は d1 であり、2段目の棚最上部とカメラ10との間の距離は d2 である。
【0077】
特定部2060は、顧客20が商品40を取り出す様子が含まれる深度画像の基準位置24と、
図14に示す陳列情報に基づいて、基準位置24が商品棚50のどの段に位置するかを特定する。そして、特定された段を、商品40が取り出された段とする。例えば、深度画像における基準位置24の画素が、基準位置24とカメラ10との間の距離が a であることを示しているとする。そして、a が d1 以上 d2 以下の値であるとする。この場合、
図14に示す陳列情報に基づき、特定部2060は、基準位置24が商品棚50の1段目の棚に位置することを特定する。つまり特定部2060は、商品40が取り出された棚が、商品棚50の1段目の棚であることを特定する。
【0078】
<<第2の方法>>
前提として、撮像画像12に、商品棚50を横から見た様子が含まれているとする。言い換えれば、カメラ10が、商品棚50を横方向から撮像するとする。この場合、特定部2060は、撮像画像12から検出された基準位置24の高さ方向の位置(Y 座標)が、商品棚50の何段目に位置するかを特定する。そして、特定された段を、商品40が取り出された商品棚50の段とする。この場合、撮像画像12は、深度画像であってもよいし、通常の画像であってもよい。
【0079】
<<1つの段に複数の種類の商品40が陳列されるケースについて>>
商品棚50の1つの段を水平方向に複数の列に区切ることで、1つの段に複数の種類の商品が陳列されることもある。この場合、特定部2060は、商品40を商品棚50から取り出す顧客20の手の基準位置24について、水平方向の位置と高さ方向の位置をそれぞれ特定することにより、商品40を特定する。この場合、陳列情報には、段と列の組み合わせごとに商品識別情報を示しておく。以下、基準位置24の水平方向の位置を特定する方法について説明する。
【0080】
カメラ10が商品棚50を上方から撮像するとする。この場合、基準位置24の水平方向の位置は、撮像画像12における基準位置24の X 座標によって特定される。
【0081】
一方、カメラ10が商品棚50を横方向から撮像するとする。この場合、特定部2060は、深度画像を利用して、基準位置24の水平方向の位置を特定する。ここで、商品棚50を横方向から撮像した様子が含まれる深度画像を利用して、基準位置24の水平方向の位置を特定する方法は、商品棚50を上方から撮像した様子が含まれる深度画像を利用して、基準位置24の高さ方向の位置を特定する方法と同様である。
【0082】
なお、商品棚50から取り出される商品40を特定する方法について説明したが、特定部2060は、同様の方法により、商品棚50へ置かれる商品40を特定してもよい。ただしこの場合、特定部2060は、商品棚50へ商品40を置く様子が含まれる撮像画像12を利用する。
【0083】
ここで、顧客20の動作として「(4)商品棚50との接触前後双方において商品40を保持する動作」が特定されたとする。この場合、特定部2060は、上述した商品40を特定する方法に基づいて、顧客20と商品棚50との接触前後において顧客20に保持されている商品40が互いに同一であるか否かを判定してもよい。例えば特定部2060は、顧客20と商品棚50との接触前における商品40を、商品棚50へ置かれる商品40を特定する方法と同様の方法で特定する。さらに特定部2060は、顧客20と商品棚50との接触後における商品40を、商品棚50から取り出される商品40を特定する方法と同様の方法で特定する。そして特定部2060は、特定された2つの商品40が互いに同一である場合、顧客20と商品棚50との接触前後において顧客20に保持されている商品40が互いに同一であると判定する。この場合、顧客20の動作は、「商品40を置こうとして商品棚50に手を伸ばしたものの商品40を置かない動作」であると言える。一方、特定部2060は、特定された2つの商品40が互いに異なる場合、顧客20と商品棚50との接触前後において顧客20に保持されている商品40が互いに異なると判定する。この場合、顧客20の動作は、「保持していた商品40を置いて他の商品40を取り出す動作」であると言える。
【0084】
ただし、上記の判定は、商品40を具体的に特定せずに行われてもよい。例えば特定部2060は、顧客20と商品棚50との接触前における解析対象領域30の前景領域と、顧客20と商品棚50との接触後における解析対象領域30の前景領域との差分(面積の差分や色の差分)の大きさを算出し、算出した差分の大きさが所定値以上である場合に、接触前後において商品40が互いに異なると判定する。一方、特定部2060は、上記差分の大きさが所定値未満である場合に、接触前後において商品40が互いに同一であると判定する。
【0085】
その他にも例えば、特定部2060は、顧客20と商品棚50との接触前後における基準位置24の違いに基づいて、上記接触前後において商品40が互いに同一であるか否かを判定する。この場合、特定部2060は、前述した陳列情報を用いて、顧客20と商品棚50との接触前において基準位置24が位置する商品棚50の段と、顧客20と商品棚50との接触後において基準位置24が位置する商品棚50の段とをそれぞれ特定する。そして特定部2060は、顧客20と商品棚50との接触前後それぞれについて特定された商品棚50の段が互いに異なる場合、上記接触前後において商品40が互いに異なると判定する。一方、特定部2060は、上記接触前後それぞれについて特定された商品棚50の段が互いに同一である場合に、上記接触前後において商品40が互いに同一であると判定する。
【0086】
<特定部2060によって特定された顧客20の動作の活用方法>
特定部2060によって特定された顧客20の動作は、顧客20が商品棚50の前において行う行動(いわゆる棚前行動)の解析に利用することができる。そのために、特定部2060は、各顧客20が商品棚50の前で行った動作、その動作が行われた日時、その動作の対象となった商品40などの種々の情報を出力する。この情報は、例えば情報処理装置2000に接続されている記憶装置に記憶されたり、情報処理装置2000と通信可能に接続されているサーバ装置などに送信されたりする。ここで、商品棚50の前で行われた顧客20の種々の動作に基づいて棚前行動の解析を行う手法には既存の種々の手法を利用することができる。
【0087】
なお、情報処理装置2000の利用シーンは、店舗における顧客の動作の特定に限定されない。例えば前述したように、情報処理装置2000は、工場の作業員などの動作を特定するために利用することができる。この場合、例えば情報処理装置2000によって特定された各作業員の動作を、予め定められている各作業員の動作と比較することで、作業員が所定の仕事を正しく行っているかどうかを確認することができる。
【0088】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。