自動販売機
【課題】マッチングの演算回数を減らして効率的に利用者の顔検出処理を行える、自動販売機を提供する。
【解決手段】自動販売機のコンピュータは、カメラで得られた画像に対してテンプレートマッチングを行い利用者の顔を検出する。コンピュータは、顔検出時のパッチの下端がN回連続で第1水平線以上のとき、それ以降の画像の顔探索範囲を上部範囲に限定する。顔検出時のパッチの上端がN回連続で第3水平線以下のとき、それ以降の画像の顔探索範囲を下部範囲に限定する。M×N回顔検出したにもかかわらず、上記のいずれの条件をも満たさないとき、(γ+δ3+b)≦Y/2であれば、それ以降の画像の顔探索範囲を中央範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の顔探索範囲を全範囲とする。
【解決手段】自動販売機のコンピュータは、カメラで得られた画像に対してテンプレートマッチングを行い利用者の顔を検出する。コンピュータは、顔検出時のパッチの下端がN回連続で第1水平線以上のとき、それ以降の画像の顔探索範囲を上部範囲に限定する。顔検出時のパッチの上端がN回連続で第3水平線以下のとき、それ以降の画像の顔探索範囲を下部範囲に限定する。M×N回顔検出したにもかかわらず、上記のいずれの条件をも満たさないとき、(γ+δ3+b)≦Y/2であれば、それ以降の画像の顔探索範囲を中央範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の顔探索範囲を全範囲とする。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は自動販売機に関し、より特定的には、撮像した人物画像の特徴から顔検出を行う自動販売機に関する。
【背景技術】
【0002】
この種の従来技術の一例が特許文献1において開示されている。特許文献1には、カメラによって利用者を撮像して生成された画像から利用者の特徴を認識することによって、利用者の年齢や性別などを判別する自動販売機について記載されている。
【特許文献1】特許第3787892号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1には、自動販売機の利用者の顔を効率よく検出するための具体的な手段については開示されていない。
【0004】
それゆえに、この発明の主たる目的は、マッチングの演算回数を減らして効率的に利用者の顔検出処理を行える、自動販売機を提供することである。
【課題を解決するための手段】
【0005】
上述の目的を達成するために、請求項1に記載の自動販売機は、利用者を撮像して画像を生成する撮像手段と、前記撮像手段によって生成された画像に対してテンプレートマッチングを行い前記利用者の顔を検出するマッチング手段と、前記撮像手段によって生成された画像における前記利用者の顔の位置に基づいて、前記マッチング手段による前記テンプレートマッチングの顔探索範囲を決定する探索範囲決定手段とを備える。
【0006】
請求項2に記載の自動販売機は、請求項1に記載の自動販売機において、γを0以上の所定量、δ1を第1マージンとすると、前記探索範囲決定手段は、前記テンプレートマッチングによって前記顔が検出されたときのパッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線と同じかそれより上方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(γ−δ1)オフセットした第2水平線以上の範囲に限定することを特徴とする。
【0007】
請求項3に記載の自動販売機は、請求項2に記載の自動販売機において、前記探索範囲決定手段は、前記顔が検出されたときの前記パッチの下端がN回連続で前記第1水平線と同じかそれより上方にあったとき、前記パッチの下端が前記第1水平線と同じかそれより上方にあると判断することを特徴とする。
【0008】
請求項4に記載の自動販売機は、請求項1に記載の自動販売機において、γを0以上の所定量、δ2を第2マージンとすると、前記探索範囲決定手段は、前記テンプレートマッチングによって前記顔が検出されたときのパッチの上端が、画像中心を通る中央水平線を(−γ)オフセットした第3水平線と同じかそれよりも下方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(−γ+δ2)オフセットした第4水平線以下の範囲に限定することを特徴とする。
【0009】
請求項5に記載の自動販売機は、請求項4に記載の自動販売機において、前記探索範囲決定手段は、前記顔が検出されたときの前記パッチの上端がN回連続で前記第3水平線と同じかそれより下方にあったとき、前記パッチの上端が前記第3水平線と同じかそれより下方にあると判断することを特徴とする。
【0010】
請求項6に記載の自動販売機は、請求項1に記載の自動販売機において、γを0以上の所定量、δ3を第3マージン、bをパッチの縦サイズ、Yを画像の縦サイズとすると、前記探索範囲決定手段は、前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線より下方にあり、かつ、前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの上端が、前記中央水平線を(−γ)オフセットした第3水平線より上方にあると判断するとき、(γ+δ3+b)≦Y/2であれば、それ以降の画像の前記顔探索範囲を前記中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の前記顔探索範囲を全範囲とすることを特徴とする。
【0011】
請求項7に記載の自動販売機は、請求項6に記載の自動販売機において、前記探索範囲決定手段は、M×N回顔検出したにもかかわらず、前記顔が検出されたときの前記パッチの下端が前記第1水平線と同じかそれより上方になることがN回は連続せず、かつ前記顔が検出されたときの前記パッチの上端が前記第3水平線と同じかそれより下方になることがN回は連続しないときに、前記パッチの下端が前記第1水平線より下方にありかつ前記パッチの上端が前記第3水平線より上方にあると判断することを特徴とする。
【0012】
請求項8に記載の自動販売機は、請求項1に記載の自動販売機において、当該自動販売機への対価の投入を検知する投入検知手段と、当該自動販売機における商品の選択を検知する選択検知手段と、前記投入検知手段による対価投入の検知時から前記選択検知手段による商品選択の検知の第1所定時間後までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行うことを特徴とする。
【0013】
請求項9に記載の自動販売機は、請求項1に記載の自動販売機において、前記利用者の購入動作に関するイベントを検知するイベント検知手段と、前記イベント検知手段によるイベント検知時の第2所定時間前から当該イベント検知時までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行うことを特徴とする。
【0014】
カメラ等の撮像装置の特徴として、レンズの光軸を固定した場合、光軸より上にある被写体は、光軸に対する当該被写体の高さを変えなければ、撮像可能な範囲では当該被写体とレンズとの距離に関係なく光軸より上に写る。また、自動販売機で商品を購入する場合、利用者の購入動作として、対価の投入動作や商品の選択動作を行っている間は、顔の高さ変化が少ないのが一般的である。昨今では、バリアフリーのため商品の取り出し口が高いところにある自動販売機も少なくなく、このような自動販売機で商品を購入する場合には、腰をかがめなくてもよく終始顔の高さ変化が少ない。したがって、請求項1に記載の自動販売機では、撮像手段によって生成された画像における利用者の顔の位置に基づいて顔探索範囲を決定し、画像に対して決定された顔探索範囲についてテンプレートマッチングを行い利用者の顔を検出する。これによって、マッチングの演算回数を減らして効率的に利用者の顔検出処理を行える。
【0015】
顔が検出されたときのパッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線と同じかそれより上方にあると判断するときには、それ以降のフレームでも中央水平線より上に顔が検出されると考えられる。請求項2に記載の自動販売機では、この場合、多少の誤差を考慮して中央水平線に対し(γ−δ1)オフセットした第2水平線以上の範囲を、それ以降の画像の顔探索範囲とする。これによって効率的に利用者の顔検出処理を行える。
【0016】
請求項3に記載の自動販売機では、顔が検出されたときのパッチの下端がN回連続で第1水平線と同じかそれより上方にあったとき、パッチの下端が第1水平線と同じかそれより上方にあると判断することによって、顔探索範囲をより精度よく決定できる。
【0017】
顔が検出されたときのパッチの上端が、画像中心を通る中央水平線を(−γ)オフセットした第3水平線と同じかそれより下方にあると判断するときには、それ以降のフレームでも中央水平線より下に顔が検出されると考えられる。請求項4に記載の自動販売機では、この場合、多少の誤差を考慮して中央水平線に対し(−γ+δ2)オフセットした第4水平線以下の範囲を、それ以降の画像の顔探索範囲とする。これによって効率的に利用者の顔検出処理を行える。
【0018】
請求項5に記載の自動販売機では、顔が検出されたときのパッチの上端がN回連続で第3水平線と同じかそれより下方にあったとき、パッチの上端が第3水平線と同じかそれより下方にあると判断することによって、顔探索範囲をより精度よく決定できる。
【0019】
顔が検出されたときのパッチの下端が第1水平線より下方にありかつ当該パッチの上端が第2水平線より上方にあると判断する場合、中央水平線を(―γ−δ3)オフセットした水平線と中央水平線を(γ+δ3)オフセットした水平線との間に、顔(パッチ)の全部または一部が存在するはずである(δ3は誤差考慮分)。請求項6に記載の自動販売機では、この場合、(γ+δ3+b)≦Y/2であれば、それ以降の画像の顔探索範囲を中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の顔探索範囲を全範囲とする。これによって効率的に利用者の顔検出処理を行える。
【0020】
請求項7に記載の自動販売機では、M×N回顔検出したにもかかわらず、顔が検出されたときのパッチの下端が第1水平線以上になることがN回は連続せず、かつ顔が検出されたときのパッチの上端が第3水平線以下になることがN回は連続しないときに、パッチの下端が第1水平線より下方にありかつパッチの上端が前記第3水平線より上方にあると判断する。これによって顔探索範囲をより精度よく決定できる。
【0021】
対価を投入してから商品を選択しその後に商品が排出されるまでは、地上からの顔の高さ変化は少ない。したがって、請求項8に記載の自動販売機のように、対価投入の検知時から商品選択の検知の第1所定時間(商品が選択されてから商品が排出されるまでの時間に相当)後までに撮像手段によって得られた画像は顔探索範囲の限定に適し、この発明を好適に用いることができる。
【0022】
遠くから自動販売機に近づき自動販売機に対する対価投入等のイベントを行うまでは、地上からの顔の高さ変化は少ない。したがって、請求項9に記載の自動販売機のように、イベント検知時の第2所定時間前から当該イベント検知時までに撮像手段によって得られた画像は顔探索範囲の限定に適し、この発明を好適に用いることができる。
【発明の効果】
【0023】
この発明によれば、マッチングの演算回数を減らして効率的に顔検出できる。
【発明を実施するための最良の形態】
【0024】
以下、図面を参照してこの発明の実施の形態について説明する。
図1はこの発明の一実施形態の自動販売機10を示す外観図である。図2は自動販売機10の電気的構成を示すブロック図である。
【0025】
図1を参照して、自動販売機10は、商品見本12と、商品選択ボタン14と、硬貨投入口16と、紙幣投入口18と、電子決済機20と、商品取出口22と、硬貨返却口24とを備える。利用者は必要な貨幣を硬貨投入口16または紙幣投入口18から投入し、商品見本12を見ながら欲しい商品を決定し、その商品選択ボタン14を押す。すると、その商品が商品取出口22に供給され、必要に応じて釣り銭が硬貨返却口24に供給される。電子マネー、プリペイドカード、クレジットカードなどを用いた各種電子決済を電子決済機20で実行することによって、商品の購入費用を支払うようにしてもよい。
【0026】
図2をも参照して、自動販売機10はさらに、自動販売機本体制御装置(以下、単に「本体制御装置」と略す。)26と、貨幣識別装置28と、カメラ30と、画像キャプチャ装置32と、第1バッファメモリ34と、第2バッファメモリ36と、コンピュータ38とを備える。
【0027】
本体制御装置26は、自動販売機10全体の制御を統括する。
【0028】
貨幣識別装置28は、紙幣および硬貨の投入を検知し、投入された紙幣および硬貨を識別する。
【0029】
カメラ30は、自動販売機10前面のほぼ中央でかつ商品見本12と商品選択ボタン14との間辺りに埋設され、自動販売機10前方に立った利用者、特にその顔を撮像して画像(動画)を生成する。すなわち、カメラ30は利用者を撮像して複数フレームの画像を順次生成する。この実施形態では、利用者は商品を購入するために商品見本12および/または商品選択ボタン14に少なくとも1回は顔を向けることに着目し、カメラ30を上述の位置に設けている。なお、利用者は貨幣を投入するために硬貨投入口16および/または紙幣投入口18に少なくとも1回顔を向けることに着目し、カメラ30を硬貨投入口16および紙幣投入口18の周辺に埋設してもよい。また、利用者は商品を取り出すために商品取出口22に少なくとも1回顔を向けることに着目し、カメラ30を商品取出口22の周辺に埋設してもよい。
【0030】
図3は、地上からの顔の高さを一定にしてカメラ30から利用者までの距離を変化させたときの写り方を説明するための図解図である。図3に示すように、利用者の顔(目)が光軸(地面に対して平行)と同じ高さにある場合と、光軸よりも高い位置にある場合と、光軸よりも低い位置にある場合とについて、顔の高さを一定にして、カメラ30から顔までの距離をD1,D2,D3,D4およびD5と変化させる。このときの各距離における縦方向の撮像範囲は縦画角によって決定されH1,H2,H3,H4およびH5となる。そして、カメラ30から顔までの距離に拘わらず、光軸と同じ高さにある顔は縦方向の撮像範囲の中央に写り、光軸より上に位置する顔は光軸より上に写り、光軸より下に位置する顔は光軸より下に写ることがわかる。
【0031】
画像入力手段である画像キャプチャ装置32は、カメラ30から順次出力される画像の中から所定時間おきに1フレームずつ画像を抽出し、第1バッファメモリ34に与える。
【0032】
第1バッファメモリ34は、画像キャプチャ装置32からの新しい画像を順次蓄積していくとともに、空きの記憶領域がない場合は古い画像から順次消去していく。
【0033】
第2バッファメモリ36には、第1バッファメモリ34に記憶された画像のうち所定時間分(所定フレーム分)の画像が転送され、時系列の順に複写される。複写した画像には降順のフレーム番号が付加される。
【0034】
コンピュータ38は、後述する図6から図12および図20に示す動作を行うためのプログラムやデータ等が格納される図示しないメモリを含む。コンピュータ38は、当該メモリに格納されたプログラムに従って、カメラ30からの画像を画像キャプチャ装置32を介して第1バッファメモリ34に格納させ、第2バッファメモリ36に転送させ、時系列の順に読み出して、画像の中から利用者の顔を検出する。
【0035】
図4に第1バッファメモリ34に画像が記憶された状態の一例を示し、図5に第2バッファメモリ36に画像が記憶された状態の一例を示す。
【0036】
たとえば図4に示すように、第1バッファメモリ34に所定フレーム分の画像p1,p2,p3,・・・p(n−1)およびpnが順次格納されていく。そして、コンピュータ30から第1バッファメモリ34に転送指示があれば、たとえば図5に示すように、第1バッファメモリ34に格納された画像p1,p2,p3,・・・p(n−1)およびpnが、第2バッファメモリ36に時系列の順に格納される。各画像p1,p2,p3,・・・p(n−1)およびpnには降順のフレーム番号n,n−1,n−2,・・・2および1が付加される。そして、コンピュータ38によって、フレーム番号nの画像p1から順に読み出され、顔検出が行われる。
【0037】
この実施形態において、カメラ30が撮像手段に相当する。コンピュータ38が、マッチング手段、探索範囲決定手段および画像決定手段として機能する。貨幣識別装置28および本件制御装置26が投入検知手段を構成する。商品選択ボタン14および本体制御装置26が選択検知手段を構成する。商品選択ボタン14、電子決済機20、貨幣識別装置28および本件制御装置26がイベント検知手段を構成する。第1バッファメモリ34および第2バッファメモリ36が記憶手段を構成する。なお、第1バッファメモリ34および第2バッファメモリ36は同一メモリ内でエリアを分割して設けられてもよい。
【0038】
ついで、このような自動販売機10の動作の一例について説明する。
自動販売機10は、図6に示す画像取得処理および図7に示す顔検出処理を並行して実行する。
【0039】
図6を参照して、画像取得処理について説明する。
コンピュータ38は、利用者による対価の投入を検知したか否かを判断する(ステップS1)。利用者による対価の投入とは、硬貨投入口16または紙幣投入口18からの貨幣の投入をいう。本体制御装置26は、貨幣識別装置28によって貨幣の投入が検知されたとき、投入検知信号をコンピュータ38に出力する。したがって、コンピュータ38は、本体制御装置26からの投入検知信号の有無に基づいて対価の投入を検知したか否かを判断する。対価の投入を検知するまでステップS1に戻り、一方、対価の投入を検知すればステップS3に進む。
【0040】
ステップS3では、画像キャプチャ装置32は、コンピュータ38からの指示に応じて、カメラ20から出力される対価投入検出以後の画像を所定時間おきに1フレームずつ取得して第1バッファメモリ34に与え、図4に示すように当該画像が第1バッファメモリ34に格納されていく(ステップS3)。そして、コンピュータ38は、自動販売機10における商品の選択を検知しかつ当該選択を検知した後第1所定時間(たとえば2秒)が経過したか否かを判断する(ステップS5)。本体制御装置26は、商品選択ボタン14によって商品の選択が検知されたとき、選択検知信号をコンピュータ38に送信する。したがって、コンピュータ38は、本体制御装置26からの選択検知信号の有無に基づいて商品の選択を検知したか否かを判断する。そして、コンピュータ38は、選択検知信号を受けることによって商品の選択を検知すると、その信号入力時から第1所定時間経過したか否かを判断する。商品の選択が検知されかつその後第1所定時間経過するまで、ステップS3に戻り、一方、商品の選択が検知されかつその後第1所定時間経過すると、ステップS7に進む。
【0041】
ステップS7では、コンピュータ38は、第1バッファメモリ34に、対価投入検知時(投入検知信号の入力時)から商品選択検知の第1所定時間後までに第1バッファメモリ34に格納された画像の転送指示を与える。すると第1バッファメモリ34は、当該転送指示に応じてその分の画像を第2バッファメモリ36に転送する。図5に示すように、第2バッファメモリ36には、第1バッファメモリ34からの画像が時系列の順に複写され、複写された画像に降順のフレーム番号が付加される。第2バッファメモリ36に格納された画像が顔検出処理の対象となる。そして、ステップS1に戻る。
【0042】
ついで、図7を参照して、顔検出処理について説明する。
まず、コンピュータ38は、終了フラグを「0」にセットし、顔探索範囲フラグを「00」にセットし、カウンタ1、カウンタ2および顔検出数カウンタをそれぞれクリアする(ステップS11)。ここで、終了フラグは顔検出処理を終了するか否かを示し、終了しないときには「0」にセットされ、終了するときには「1」にセットされる。顔探索範囲フラグはマッチング処理における顔の探索範囲を示し、画像の全範囲を探索するときには「00」、画像の上部範囲を探索するときには「01」、画像の下部範囲を探索するときには「10」、画像の中央範囲を探索するときには「11」にセットされる。
【0043】
そして、コンピュータ38は第2バッファメモリ36に未処理画像があるか否かを判断する(ステップS13)。第2バッファメモリ36に未処理画像がなければステップS11に戻り、一方、第2バッファメモリ36に未処理画像があれば、コンピュータ38は、第2バッファメモリ36に記憶されている画像とそのフレーム番号とを取得し(ステップS15)、コンピュータ38は、フレーム番号が1か否かを判断する(ステップS17)。フレーム番号が1であれば、コンピュータ38は終了フラグを「1」にセットし(ステップS19)、ステップS21へ進む。一方、ステップS17においてフレーム番号が1でなければ直接ステップS21に進む。
【0044】
ステップS21では、コンピュータ38は顔探索範囲フラグに基づいて顔の探索範囲を判断する。顔探索範囲フラグが「00」であれば、コンピュータ38は、後述する図8に示す処理によって画像の全範囲についてテンプレートマッチングを行う(ステップS23)、その後、コンピュータ38は、後述する図9に示す処理によって顔探索範囲を判定し(ステップS25)、終了フラグが1か否かを判断する(ステップS27)。終了フラグが1であればステップS11に戻り、一方、終了フラグが0であればステップS15に戻る。
【0045】
ステップS21において、顔探索範囲フラグが「01」であれば、コンピュータ38は、後述する図10に示す処理によって、画像のうち中央水平線を(γ−δ1)オフセットした第2水平線以上の上部範囲でテンプレートマッチングを行い(ステップS29)、ステップS27に進む。ステップS21において、顔探索範囲フラグが「10」であれば、コンピュータ38は、後述する図11に示す処理によって、画像のうち中央水平線を(−γ+δ2)オフセットした第4水平線以下の下部範囲でテンプレートマッチングを行い(ステップS31)、ステップS27に進む。ステップS21において、顔探索範囲フラグが「11」であれば、コンピュータ38は、後述する図12に示す処理によって、画像のうち中央水平線を(−γ−δ3−b)オフセットした水平線から中央水平線を(γ+δ3+b)オフセットした水平線までの中央範囲でテンプレートマッチングを行い(ステップS33)、ステップS27に進む。そして、ステップS27において終了フラグが「0」である限り、コンピュータ38は、第2バッファメモリ36から画像を取得しテンプレートマッチングを行う。ここで、γは0以上の所定値、δ1は第1マージン、δ2は第2マージン、δ3は第3マージンであり、この実施形態では、たとえば、γ=10ピクセル、δ1=20ピクセル、δ2=20ピクセル、δ3=5ピクセルに設定される。
【0046】
ついで、ステップS23の全範囲のマッチング処理について図8を参照して説明する。図13はテンプレートマッチングを説明するための図解図である。
図8および図13において、xは画像左下を原点としたときのパッチの左下のx座標、yは画像左下を原点としたときのパッチの左下のy座標、aはパッチの横サイズ、bはパッチの縦サイズ、Xは画像の横サイズ、Yは画像の縦サイズ、a MINは横サイズaの最小値、b MINは縦サイズbの最小値、a STEPは横サイズaを大きくするときの変化ピクセル量、b STEPは縦サイズbを大きくするときの変化ピクセル量、x
STEPはパッチを移動させるときのx軸方向の移動ピクセル量、y STEPはパッチを移動させるときのy軸方向の移動ピクセル量を示す。
【0047】
図13に示すように、マッチングは、まず、画像の左下隅に配置されたパッチを右方向に移動させて進められる。右端までマッチングが終了すると、パッチは左端に戻されかつ所定量上側に移動される。そして、再びパッチを右方向に移動させてマッチングが進められる。顔を検出できない限り、この処理が画像の右上隅まで繰り返される。
【0048】
図8を参照して、まず、コンピュータ38は、パッチの横サイズaを最小値a MINに設定し、かつパッチの縦サイズbを最小値b MINに設定し(ステップS51)、パッチの左下のx座標およびy座標を0に設定する(ステップS53)。このとき、パッチは図13において位置P1で示す画像の左下隅に配置される。
【0049】
ついで、コンピュータ38は、当該y座標が(Y−b)以下か否かを判断し(ステップS55)、y座標が(Y−b)以下であれば、コンピュータ38は、当該x座標が(X−a)以下か否かを判断する(ステップS57)。当該x座標が(X−a)以下であれば、コンピュータ38は、(x,y)、(x,y+b)、(x+a,y)、(x+a,y+b)を頂点とする長方形領域(パッチ)の部分信号を求める(ステップS59)。
【0050】
そして、コンピュータ38は、部分信号がそのパッチのサイズに対応するテンプレート信号に合致したか否か、すなわち顔を検出したか否かを判断する(ステップS61)。ここで、部分信号がテンプレート信号に合致するとは、部分信号がテンプレート信号に完全に合致している場合のみならず、部分信号がテンプレート信号に類似する程度(類似度)が所定以上である場合をも含む。両信号の比較には、たとえば両信号の色成分(R,G,B)が用いられる。
【0051】
コンピュータ38が顔を検出すると、そのときのパッチの位置情報(パッチの下端のy座標であるyの値および上端のy座標であるy+bの値とを含む)と顔情報とをコンピュータ38内のメモリに記憶しておき、リターンして図7のステップS25に進む。一方、ステップS61において顔を検出できなければ、コンピュータ38は、xをx STEP分移動させ(ステップS63)、ステップS57に戻る。これによってパッチが右に所定量移動する。そして、顔が検出されない限り、xが(X−a)を超えるまで(図13に示す位置P2でのマッチングが終了するまで)パッチの右方向への移動とマッチングとが繰り返される。
【0052】
ステップS57において、xが(X−a)を超えれば、コンピュータ38は、xを0に設定し(ステップS65)、yをy STEP分大きくして(ステップS67)、パッチを左端に戻しかつ上方向に移動させる。図13に示す位置P2にあったパッチは位置P3に移動する。そして、ステップS55に戻る。顔が検出されない限り、ステップS55においてyが(Y−b)を超えるまで(図13に示す位置P4でのマッチングが終了するまで)、上述の処理が繰り返される。
【0053】
ステップS55においてyが(Y−b)を超えれば、コンピュータ38は、yを0に設定し(ステップS69)、パッチの横サイズaおよび縦サイズbをそれぞれa STEPおよびb STEP分大きくする(ステップS71)。そして、コンピュータ38は、パッチの横サイズaが画像の横サイズX以下でありかつ縦サイズbが画像の縦サイズY以下であるか否かを判断する(ステップS73)。この条件を満たせば、ステップS55に戻り、サイズが大きくなったパッチで画像の左下隅から上述のマッチングが行われる。一方、ステップS73の条件を満たさなければ、全領域をマッチングしても顔を検出できなかったとして、図7のステップS25にリターンする。
【0054】
ついで、ステップS25の顔探索範囲判定処理について図9を参照して説明する。
まず、コンピュータ38は、顔を検出したか否かを判断する(ステップS101)。顔を検出していれば、コンピュータ38は顔検出数カウンタをインクリメントし(ステップS103)、コンピュータ38は顔検出数カウンタがM×N回目に達したか否かを判断する(ステップS105)。顔検出数カウンタがM×N回目に達していなければ、コンピュータ38は、顔が検出されたときのパッチの下端すなわち顔の下端が中央水平線を所定量γオフセットした第1水平線(図14参照)と同じかそれより上方にあるか否かを判断する(ステップS107)。ステップS107の条件を満たせば、コンピュータ38は、カウンタ1をインクリメントしかつカウンタ2をクリアし(ステップS109)、コンピュータ38は、カウンタ1の値がN(たとえば5)以上であるか否かを判断する(ステップS111)。カウンタ1の値がN以上であれば、コンピュータ38は、顔探索範囲フラグを「01」にセットし、顔の探索範囲を上部範囲に設定する(ステップS113)。そして、コンピュータ38はカウンタ1をクリアし(ステップS115)、図7のステップS27にリターンする。
【0055】
一方、ステップS107の条件を満たさなければ、コンピュータ38は、顔が検出されたときのパッチの上端すなわち顔の上端が中央水平線を(−γ)オフセットした第3水平線(図14参照)と同じかそれより下方にあるか否かを判断する(ステップS117)。ステップS117の条件を満たせば、コンピュータ38は、カウンタ1をクリアしかつカウンタ2をインクリメントし(ステップS119)、コンピュータ38は、カウンタ2の値がN以上であるか否かを判断する(ステップS121)。カウンタ2の値がN以上であれば、コンピュータ38は、顔探索範囲フラグを「10」にセットし、顔の探索範囲を下部範囲に設定する(ステップS123)。そして、カウンタ2をクリアし(ステップS125)、図7のステップS27にリターンする。
【0056】
ステップS117の条件を満たさなければ、コンピュータ38は、カウンタ1およびカウンタ2をクリアし(ステップS126)、図7のステップS27にリターンする。
ステップS111においてカウンタ1の値がN未満のときやステップS121においてカウンタ2の値がN未満のときには、コンピュータ38は、直接図7のステップS27にリターンする。
【0057】
また、ステップS105において、顔検出数カウンタがM×N(たとえば、M=2、N=5であり、M×N=10)回目に達すれば、コンピュータ38は、顔探索範囲フラグを「11」にセットし、顔の探索範囲を中央範囲に設定する(ステップS127)。そして、図7のステップS27にリターンする。
【0058】
ついで、図7のステップS29の上部範囲でのマッチング処理について図10を参照して説明する。この場合、図15に示すように、中央水平線を(γ−δ1)オフセットした第2水平線以上の上部範囲でマッチング処理が行われる。
【0059】
図10に示すステップS53aでは、コンピュータ38は、パッチの左下のx座標を0に設定しかつy座標を(Y/2+γ−δ1)に設定する。このとき、パッチは図15で示す位置P5に配置される。また、ステップS69aにおいて、コンピュータ38は、y座標を(Y/2+γ−δ1)に設定し、ステップS73aにおいて、コンピュータ38は、パッチの横サイズaが画像の横サイズX以下でありかつ縦サイズbが(Y/2−γ+δ1)以下であるか否かを判断する。それ以外のステップS51a,S55a〜S67aおよびS71aの処理は、図8のステップS51,S55〜S67およびS71の処理と同様であるので、その重複する説明は省略する。
【0060】
つぎに、図7のステップS31の下部範囲でのマッチング処理について図11を参照して説明する。この場合、図16に示すように、中央水平線を(−γ+δ2)オフセットした第4水平線以下の下部範囲でマッチング処理が行われる。
【0061】
図11に示すステップS55bでは、コンピュータ38は、パッチの左下のy座標が(Y/2−γ+δ2)−b以下であるか否かを判断し、ステップS73bにおいて、コンピュータ38は、パッチの横サイズaが画像の横サイズX以下でありかつ縦サイズbが(Y/2−γ+δ2)以下であるか否かを判断する。それ以外のステップS51b,S53bおよびS57b〜S71bの処理は、図8のステップS51,S53およびS57〜S71の処理と同様であるので、その重複する説明は省略する。
【0062】
さらに、図7のステップS33の中央範囲でのマッチング処理について図12を参照して説明する。
図12に示すステップS53cでは、コンピュータ38は、パッチの左下のx座標を0に設定しかつy座標をY/2−(γ+δ3+b)に設定する。このとき、パッチは図17で示す位置P6に配置される。ステップS54cでは、コンピュータ38は、(γ+δ3+b)がY/2以下か否かを判断する。(γ+δ3+b)がY/2以下であれば、ステップS55cに進み、一方、(γ+δ3+b)がY/2を超えれば、図8のステップS53に進み、全範囲でのマッチング処理を行う。ステップS55cでは、コンピュータ38は、パッチの左下のy座標が(Y/2+γ+δ3)以下であるか否かを判断する。ステップS69cでは、コンピュータ38は、パッチの左下のy座標をY/2−(γ+δ3+b)に設定する。それ以外のステップS51c,S57c〜S67c,S71cおよびS73cの処理は、図8のステップS51,S57〜S67,S71およびS73の処理と同様であるので、その重複する説明は省略する。
【0063】
図12に示す処理では、ステップS54cにおいて(γ+δ3+b)がY/2以下である限り、図17に示すように、中央水平線を(−γ−δ3−b)オフセットした水平線から中央水平線を(γ+δ3+b)オフセットした水平線までの中央範囲でマッチング処理が行われる。
【0064】
ここで、中央範囲がなぜこの範囲になるかについて説明する。
図12に示す中央範囲でのマッチング処理を行うためには、図9のステップS127において、顔探索範囲フラグを「11」にセットし顔の探索範囲を中央範囲に設定する必要がある。この設定が行われるのは、M×N回顔検出したにもかかわらず、顔が検出されたときのパッチの下端が第1水平線以上になることがN回は連続せず、かつ顔が検出されたときのパッチの上端が第3水平線以下になることがN回は連続しないときである。このとき、顔が検出されたときのパッチが第1水平線と第3水平線との間にあるか(図18の位置P7参照)、顔が検出されたときのパッチの一部が第1水平線と第3水平線との間にあるか(図18の位置P8参照)、または顔が検出されたときのパッチの一部または全部が第1水平線と第3水平線との間に入ったりはみ出したりしているか(図18の位置P8およびP9参照)、のいずれかであると考えられる。
【0065】
したがって、これらの態様を考慮して、中央水平線から上下に、所定値γとパッチの縦サイズbと第3マージンδ3とを加算した位置までを、すなわち中央水平線±(γ+δ3+b)の中央範囲を顔探索範囲とした。
【0066】
図12に戻って、ステップS54cにおいて(γ+δ3+b)がY/2を超えれば、顔探索範囲が画像の縦サイズYを超えてしまうので、図19に示すように、顔探索範囲を全範囲とする。
【0067】
このように動作する自動販売機10によれば、カメラ30によって生成された画像における利用者の顔の位置に基づいて顔探索範囲を決定し、画像に対して決定された顔探索範囲についてテンプレートマッチングを行い利用者の顔を検出する。これによって、マッチングの演算回数を減らして効率的に利用者の顔検出処理を行える。
【0068】
具体的には、顔が検出されたときのパッチの下端がN回連続で第1水平線と同じかそれより上方にあったとき、第2水平線以上の範囲をそれ以降の画像の顔探索範囲とする。これによって顔探索範囲をより精度よく決定でき効率的に利用者の顔検出処理を行える。
【0069】
また、顔が検出されたときのパッチの上端がN回連続で第3水平線と同じかそれより下方にあったとき、第4水平線以下の範囲をそれ以降の画像の顔探索範囲とする。これによって顔探索範囲をより精度よく決定でき効率的に利用者の顔検出処理を行える。
【0070】
さらに、M×N回顔検出したにもかかわらず、顔が検出されたときのパッチの下端が第1水平線以上になることがN回は連続せず、かつ顔が検出されたときのパッチの上端が第3水平線以下になることがN回は連続しないとき、(γ+δ3+b)≦Y/2であれば、それ以降の画像の顔探索範囲を中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の顔探索範囲を全範囲とする。これによって顔探索範囲をより精度よく決定でき効率的に利用者の顔検出処理を行える。
【0071】
また、自動販売機10への対価投入の検知時から商品選択の検知の第1所定時間後までは地上からの顔の高さ変化は少ないので、かかる期間内にカメラ30によって得られた画像は、顔探索範囲の限定に適し、この発明を好適に用いることができる。
【0072】
つぎに、図20を参照して、自動販売機10の画像取得処理の他の動作例について説明する。
画像キャプチャ装置32は、カメラ20から出力される画像を所定時間おきに1フレームずつ取得して第1バッファメモリ34に与え、図4に示すように当該画像が第1バッファメモリ34に格納されていく(ステップS1a)。そして、コンピュータ38は、利用者の購入動作に関するイベントを検知したか否かを判断する(ステップS3a)。利用者の購入動作に関するイベントは、硬貨投入口16または紙幣投入口18からの貨幣の投入、電子決済機20による電子決済、あるいは商品選択ボタン14の押し下げを含む。本体制御装置26は、貨幣識別装置28によって貨幣の投入が検知されたとき、電子決済機20によって決済が検知されたとき、および商品選択ボタン14によって商品の選択が検知されたとき、イベント検知信号をコンピュータ38に出力する。したがって、コンピュータ38は、本体制御装置26からのイベント検知信号の有無に基づいてイベントを検知したか否かを判断する。
【0073】
イベントを検知するまでステップS1aに戻り、一方、イベントを検知すればステップS5aに進む。ステップS5aでは、コンピュータ38は、イベントの検知を契機として第1バッファメモリ34に、イベント検知時(イベント検知信号の入力時)の第2所定時間(たとえば5秒)前からイベント検知時までにカメラ30によって得られた画像の転送指示を与える。すると第1バッファメモリ34は、当該転送指示に応じて第2所定時間分の画像を第2バッファメモリ36に転送する。図5に示すように、第2バッファメモリ36には、第1バッファメモリ34からの第2所定時間分の画像が時系列の順に複写され、複写された画像に降順のフレーム番号が付加される。第2バッファメモリ36に格納された画像が顔検出処理の対象となる。そして、ステップS1aに戻る。
この場合についても図7に示す顔検出処理が行われる。
【0074】
このように動作する自動販売機10によれば、自動販売機10に対するイベントの検知時の第2所定時間前から当該イベント検知時までは地上からの顔の高さ変化は少ないので、かかる期間内にカメラ30によって得られた画像は、顔探索範囲の限定に適し、この発明を好適に用いることができる。
【0075】
以下、具体例を挙げて説明する。
画像の横サイズX=120、画像の縦サイズY=90とし、サイズa×b=10×10,20×20,30×30,40×40,50×50,60×60,70×70,80×80,90×90の各パッチについてテンプレートマッチングを行う。
【0076】
マッチング時には、まず、X軸方向に5ピクセルずつ移動させながらマッチングを行い、120ピクセル目まで探索が終了すると、Y軸方向に5ピクセル移動させ、さらに最初と同様にX軸方向に5ピクセルずつ移動させながらマッチングを行う。以降、X=120、Y=90の画像に対して探索が終了するまでこの動作を繰り返す。
【0077】
このマッチング処理を、γ=10、δ1=20、δ2=20、δ3=5として、顔探索範囲が、全範囲、上部範囲、下部範囲、中央範囲の各場合について行い、探索回数を求める。
【0078】
すると、図21に示すように、探索回数は、全範囲では1455回、上部範囲では610回、下部範囲では610回、中央範囲では1187回となる。したがって、全範囲を探索する場合と比較して、上部範囲を探索する場合および下部範囲を探索する場合には回数を58%削減でき、中央範囲を探索する場合には回数を18%削減できる。この例では、中央範囲を探索する場合、パッチサイズ30×30までが図12による中央範囲探索となり、パッチサイズ40×40以上は図8による全範囲探索となる。
【0079】
なお、第1マージンδ1と第2マージンδ2とは同じ値であっても異なる値であってもよい。所定値γ、第1マージンδ1、第2マージンδ2および第3マージンδ3は任意の値に設定できる。
【0080】
第1マージンδ1、第2マージンδ2および第3マージンδ3を0に近づけるほど、また、x STEPやy STEPを大きくするほど、探索回数を削減できる。
【0081】
所定値γを大きくすれば、上部範囲および下部範囲の探索回数を少なくできる。一方、所定値γを小さくすれば、中央範囲の探索回数を少なくできる。
【0082】
NおよびMは、任意の自然数に設定できる。
したがって、N=1、M=1のときには、顔検出時のパッチの下端が第1水平線以上にあると1回判断されれば、それ以降の画像の顔探索範囲が上部範囲に限定され、顔検出時のパッチの上端が第3水平線以下にあると1回判断されれば、それ以降の画像の顔探索範囲が下部範囲に限定され、顔検出時のパッチの下端が第1水平線より下方にありかつ当該パッチの上端が第3水平線より上方にあると1回判断されれば、(γ+δ3+b)≦Y/2である限り、それ以降の画像の顔探索範囲が中央範囲に限定される。
【0083】
上述の実施形態では、小さいパッチから徐々にパッチサイズを大きくしてマッチング処理を行うようにしたが、これに限定されず、大きいパッチから徐々にパッチサイズを小さくしてマッチング処理を行うようにしてもよい。
【図面の簡単な説明】
【0084】
【図1】この発明の一実施形態の自動販売機を示す外観図である。
【図2】この発明の一実施形態の自動販売機の電気的構成を示すブロック図である。
【図3】地上からの顔の高さを一定にしてカメラから利用者までの距離を変化させたときの写り方を説明するための図解図である。
【図4】第1バッファメモリに画像を記憶した状態の一例を示す図解図である。
【図5】第2バッファメモリに画像を記憶した状態の一例を示す図解図である。
【図6】この発明の画像取得処理動作の一例を示すフロー図である。
【図7】この発明の顔検出処理動作の一例を示すフロー図である。
【図8】全範囲のマッチング処理動作の一例を示すフロー図である。
【図9】顔探索範囲の判定処理の一例を示すフロー図である。
【図10】上部範囲のマッチング処理動作の一例を示すフロー図である。
【図11】下部範囲のマッチング処理動作の一例を示すフロー図である。
【図12】中央範囲のマッチング処理動作の一例を示すフロー図である。
【図13】マッチングを説明するための図解図である。
【図14】中央水平線、第1水平線および第3水平線を示す図解図である。
【図15】上部範囲を示す図解図である。
【図16】下部範囲を示す図解図である。
【図17】中央範囲を示す図解図である。
【図18】顔探索範囲が中央範囲に設定される場合の、顔検出時のパッチ位置の例を示す図解図である。
【図19】全範囲を示す図解図である。
【図20】この発明の画像取得処理動作の他の例を示すフロー図である。
【図21】顔探索範囲ごとの探索回数の一例を示すテーブルである。
【符号の説明】
【0085】
10 自動販売機
12 商品見本
14 商品選択ボタン
16 硬貨投入口
18 紙幣投入口
20 電子決済機
22 商品取り出し口
24 硬貨返却口
26 自動販売機本体制御装置
28 貨幣識別装置
30 カメラ
32 画像キャプチャ装置
34 第1バッファメモリ
36 第2バッファメモリ
38 コンピュータ
γ 所定値
δ1 第1マージン
δ2 第2マージン
δ3 第3マージン
a パッチの横サイズ
b パッチの縦サイズ
X 画像の横サイズ
Y 画像の縦サイズ
【技術分野】
【0001】
この発明は自動販売機に関し、より特定的には、撮像した人物画像の特徴から顔検出を行う自動販売機に関する。
【背景技術】
【0002】
この種の従来技術の一例が特許文献1において開示されている。特許文献1には、カメラによって利用者を撮像して生成された画像から利用者の特徴を認識することによって、利用者の年齢や性別などを判別する自動販売機について記載されている。
【特許文献1】特許第3787892号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1には、自動販売機の利用者の顔を効率よく検出するための具体的な手段については開示されていない。
【0004】
それゆえに、この発明の主たる目的は、マッチングの演算回数を減らして効率的に利用者の顔検出処理を行える、自動販売機を提供することである。
【課題を解決するための手段】
【0005】
上述の目的を達成するために、請求項1に記載の自動販売機は、利用者を撮像して画像を生成する撮像手段と、前記撮像手段によって生成された画像に対してテンプレートマッチングを行い前記利用者の顔を検出するマッチング手段と、前記撮像手段によって生成された画像における前記利用者の顔の位置に基づいて、前記マッチング手段による前記テンプレートマッチングの顔探索範囲を決定する探索範囲決定手段とを備える。
【0006】
請求項2に記載の自動販売機は、請求項1に記載の自動販売機において、γを0以上の所定量、δ1を第1マージンとすると、前記探索範囲決定手段は、前記テンプレートマッチングによって前記顔が検出されたときのパッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線と同じかそれより上方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(γ−δ1)オフセットした第2水平線以上の範囲に限定することを特徴とする。
【0007】
請求項3に記載の自動販売機は、請求項2に記載の自動販売機において、前記探索範囲決定手段は、前記顔が検出されたときの前記パッチの下端がN回連続で前記第1水平線と同じかそれより上方にあったとき、前記パッチの下端が前記第1水平線と同じかそれより上方にあると判断することを特徴とする。
【0008】
請求項4に記載の自動販売機は、請求項1に記載の自動販売機において、γを0以上の所定量、δ2を第2マージンとすると、前記探索範囲決定手段は、前記テンプレートマッチングによって前記顔が検出されたときのパッチの上端が、画像中心を通る中央水平線を(−γ)オフセットした第3水平線と同じかそれよりも下方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(−γ+δ2)オフセットした第4水平線以下の範囲に限定することを特徴とする。
【0009】
請求項5に記載の自動販売機は、請求項4に記載の自動販売機において、前記探索範囲決定手段は、前記顔が検出されたときの前記パッチの上端がN回連続で前記第3水平線と同じかそれより下方にあったとき、前記パッチの上端が前記第3水平線と同じかそれより下方にあると判断することを特徴とする。
【0010】
請求項6に記載の自動販売機は、請求項1に記載の自動販売機において、γを0以上の所定量、δ3を第3マージン、bをパッチの縦サイズ、Yを画像の縦サイズとすると、前記探索範囲決定手段は、前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線より下方にあり、かつ、前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの上端が、前記中央水平線を(−γ)オフセットした第3水平線より上方にあると判断するとき、(γ+δ3+b)≦Y/2であれば、それ以降の画像の前記顔探索範囲を前記中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の前記顔探索範囲を全範囲とすることを特徴とする。
【0011】
請求項7に記載の自動販売機は、請求項6に記載の自動販売機において、前記探索範囲決定手段は、M×N回顔検出したにもかかわらず、前記顔が検出されたときの前記パッチの下端が前記第1水平線と同じかそれより上方になることがN回は連続せず、かつ前記顔が検出されたときの前記パッチの上端が前記第3水平線と同じかそれより下方になることがN回は連続しないときに、前記パッチの下端が前記第1水平線より下方にありかつ前記パッチの上端が前記第3水平線より上方にあると判断することを特徴とする。
【0012】
請求項8に記載の自動販売機は、請求項1に記載の自動販売機において、当該自動販売機への対価の投入を検知する投入検知手段と、当該自動販売機における商品の選択を検知する選択検知手段と、前記投入検知手段による対価投入の検知時から前記選択検知手段による商品選択の検知の第1所定時間後までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行うことを特徴とする。
【0013】
請求項9に記載の自動販売機は、請求項1に記載の自動販売機において、前記利用者の購入動作に関するイベントを検知するイベント検知手段と、前記イベント検知手段によるイベント検知時の第2所定時間前から当該イベント検知時までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行うことを特徴とする。
【0014】
カメラ等の撮像装置の特徴として、レンズの光軸を固定した場合、光軸より上にある被写体は、光軸に対する当該被写体の高さを変えなければ、撮像可能な範囲では当該被写体とレンズとの距離に関係なく光軸より上に写る。また、自動販売機で商品を購入する場合、利用者の購入動作として、対価の投入動作や商品の選択動作を行っている間は、顔の高さ変化が少ないのが一般的である。昨今では、バリアフリーのため商品の取り出し口が高いところにある自動販売機も少なくなく、このような自動販売機で商品を購入する場合には、腰をかがめなくてもよく終始顔の高さ変化が少ない。したがって、請求項1に記載の自動販売機では、撮像手段によって生成された画像における利用者の顔の位置に基づいて顔探索範囲を決定し、画像に対して決定された顔探索範囲についてテンプレートマッチングを行い利用者の顔を検出する。これによって、マッチングの演算回数を減らして効率的に利用者の顔検出処理を行える。
【0015】
顔が検出されたときのパッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線と同じかそれより上方にあると判断するときには、それ以降のフレームでも中央水平線より上に顔が検出されると考えられる。請求項2に記載の自動販売機では、この場合、多少の誤差を考慮して中央水平線に対し(γ−δ1)オフセットした第2水平線以上の範囲を、それ以降の画像の顔探索範囲とする。これによって効率的に利用者の顔検出処理を行える。
【0016】
請求項3に記載の自動販売機では、顔が検出されたときのパッチの下端がN回連続で第1水平線と同じかそれより上方にあったとき、パッチの下端が第1水平線と同じかそれより上方にあると判断することによって、顔探索範囲をより精度よく決定できる。
【0017】
顔が検出されたときのパッチの上端が、画像中心を通る中央水平線を(−γ)オフセットした第3水平線と同じかそれより下方にあると判断するときには、それ以降のフレームでも中央水平線より下に顔が検出されると考えられる。請求項4に記載の自動販売機では、この場合、多少の誤差を考慮して中央水平線に対し(−γ+δ2)オフセットした第4水平線以下の範囲を、それ以降の画像の顔探索範囲とする。これによって効率的に利用者の顔検出処理を行える。
【0018】
請求項5に記載の自動販売機では、顔が検出されたときのパッチの上端がN回連続で第3水平線と同じかそれより下方にあったとき、パッチの上端が第3水平線と同じかそれより下方にあると判断することによって、顔探索範囲をより精度よく決定できる。
【0019】
顔が検出されたときのパッチの下端が第1水平線より下方にありかつ当該パッチの上端が第2水平線より上方にあると判断する場合、中央水平線を(―γ−δ3)オフセットした水平線と中央水平線を(γ+δ3)オフセットした水平線との間に、顔(パッチ)の全部または一部が存在するはずである(δ3は誤差考慮分)。請求項6に記載の自動販売機では、この場合、(γ+δ3+b)≦Y/2であれば、それ以降の画像の顔探索範囲を中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の顔探索範囲を全範囲とする。これによって効率的に利用者の顔検出処理を行える。
【0020】
請求項7に記載の自動販売機では、M×N回顔検出したにもかかわらず、顔が検出されたときのパッチの下端が第1水平線以上になることがN回は連続せず、かつ顔が検出されたときのパッチの上端が第3水平線以下になることがN回は連続しないときに、パッチの下端が第1水平線より下方にありかつパッチの上端が前記第3水平線より上方にあると判断する。これによって顔探索範囲をより精度よく決定できる。
【0021】
対価を投入してから商品を選択しその後に商品が排出されるまでは、地上からの顔の高さ変化は少ない。したがって、請求項8に記載の自動販売機のように、対価投入の検知時から商品選択の検知の第1所定時間(商品が選択されてから商品が排出されるまでの時間に相当)後までに撮像手段によって得られた画像は顔探索範囲の限定に適し、この発明を好適に用いることができる。
【0022】
遠くから自動販売機に近づき自動販売機に対する対価投入等のイベントを行うまでは、地上からの顔の高さ変化は少ない。したがって、請求項9に記載の自動販売機のように、イベント検知時の第2所定時間前から当該イベント検知時までに撮像手段によって得られた画像は顔探索範囲の限定に適し、この発明を好適に用いることができる。
【発明の効果】
【0023】
この発明によれば、マッチングの演算回数を減らして効率的に顔検出できる。
【発明を実施するための最良の形態】
【0024】
以下、図面を参照してこの発明の実施の形態について説明する。
図1はこの発明の一実施形態の自動販売機10を示す外観図である。図2は自動販売機10の電気的構成を示すブロック図である。
【0025】
図1を参照して、自動販売機10は、商品見本12と、商品選択ボタン14と、硬貨投入口16と、紙幣投入口18と、電子決済機20と、商品取出口22と、硬貨返却口24とを備える。利用者は必要な貨幣を硬貨投入口16または紙幣投入口18から投入し、商品見本12を見ながら欲しい商品を決定し、その商品選択ボタン14を押す。すると、その商品が商品取出口22に供給され、必要に応じて釣り銭が硬貨返却口24に供給される。電子マネー、プリペイドカード、クレジットカードなどを用いた各種電子決済を電子決済機20で実行することによって、商品の購入費用を支払うようにしてもよい。
【0026】
図2をも参照して、自動販売機10はさらに、自動販売機本体制御装置(以下、単に「本体制御装置」と略す。)26と、貨幣識別装置28と、カメラ30と、画像キャプチャ装置32と、第1バッファメモリ34と、第2バッファメモリ36と、コンピュータ38とを備える。
【0027】
本体制御装置26は、自動販売機10全体の制御を統括する。
【0028】
貨幣識別装置28は、紙幣および硬貨の投入を検知し、投入された紙幣および硬貨を識別する。
【0029】
カメラ30は、自動販売機10前面のほぼ中央でかつ商品見本12と商品選択ボタン14との間辺りに埋設され、自動販売機10前方に立った利用者、特にその顔を撮像して画像(動画)を生成する。すなわち、カメラ30は利用者を撮像して複数フレームの画像を順次生成する。この実施形態では、利用者は商品を購入するために商品見本12および/または商品選択ボタン14に少なくとも1回は顔を向けることに着目し、カメラ30を上述の位置に設けている。なお、利用者は貨幣を投入するために硬貨投入口16および/または紙幣投入口18に少なくとも1回顔を向けることに着目し、カメラ30を硬貨投入口16および紙幣投入口18の周辺に埋設してもよい。また、利用者は商品を取り出すために商品取出口22に少なくとも1回顔を向けることに着目し、カメラ30を商品取出口22の周辺に埋設してもよい。
【0030】
図3は、地上からの顔の高さを一定にしてカメラ30から利用者までの距離を変化させたときの写り方を説明するための図解図である。図3に示すように、利用者の顔(目)が光軸(地面に対して平行)と同じ高さにある場合と、光軸よりも高い位置にある場合と、光軸よりも低い位置にある場合とについて、顔の高さを一定にして、カメラ30から顔までの距離をD1,D2,D3,D4およびD5と変化させる。このときの各距離における縦方向の撮像範囲は縦画角によって決定されH1,H2,H3,H4およびH5となる。そして、カメラ30から顔までの距離に拘わらず、光軸と同じ高さにある顔は縦方向の撮像範囲の中央に写り、光軸より上に位置する顔は光軸より上に写り、光軸より下に位置する顔は光軸より下に写ることがわかる。
【0031】
画像入力手段である画像キャプチャ装置32は、カメラ30から順次出力される画像の中から所定時間おきに1フレームずつ画像を抽出し、第1バッファメモリ34に与える。
【0032】
第1バッファメモリ34は、画像キャプチャ装置32からの新しい画像を順次蓄積していくとともに、空きの記憶領域がない場合は古い画像から順次消去していく。
【0033】
第2バッファメモリ36には、第1バッファメモリ34に記憶された画像のうち所定時間分(所定フレーム分)の画像が転送され、時系列の順に複写される。複写した画像には降順のフレーム番号が付加される。
【0034】
コンピュータ38は、後述する図6から図12および図20に示す動作を行うためのプログラムやデータ等が格納される図示しないメモリを含む。コンピュータ38は、当該メモリに格納されたプログラムに従って、カメラ30からの画像を画像キャプチャ装置32を介して第1バッファメモリ34に格納させ、第2バッファメモリ36に転送させ、時系列の順に読み出して、画像の中から利用者の顔を検出する。
【0035】
図4に第1バッファメモリ34に画像が記憶された状態の一例を示し、図5に第2バッファメモリ36に画像が記憶された状態の一例を示す。
【0036】
たとえば図4に示すように、第1バッファメモリ34に所定フレーム分の画像p1,p2,p3,・・・p(n−1)およびpnが順次格納されていく。そして、コンピュータ30から第1バッファメモリ34に転送指示があれば、たとえば図5に示すように、第1バッファメモリ34に格納された画像p1,p2,p3,・・・p(n−1)およびpnが、第2バッファメモリ36に時系列の順に格納される。各画像p1,p2,p3,・・・p(n−1)およびpnには降順のフレーム番号n,n−1,n−2,・・・2および1が付加される。そして、コンピュータ38によって、フレーム番号nの画像p1から順に読み出され、顔検出が行われる。
【0037】
この実施形態において、カメラ30が撮像手段に相当する。コンピュータ38が、マッチング手段、探索範囲決定手段および画像決定手段として機能する。貨幣識別装置28および本件制御装置26が投入検知手段を構成する。商品選択ボタン14および本体制御装置26が選択検知手段を構成する。商品選択ボタン14、電子決済機20、貨幣識別装置28および本件制御装置26がイベント検知手段を構成する。第1バッファメモリ34および第2バッファメモリ36が記憶手段を構成する。なお、第1バッファメモリ34および第2バッファメモリ36は同一メモリ内でエリアを分割して設けられてもよい。
【0038】
ついで、このような自動販売機10の動作の一例について説明する。
自動販売機10は、図6に示す画像取得処理および図7に示す顔検出処理を並行して実行する。
【0039】
図6を参照して、画像取得処理について説明する。
コンピュータ38は、利用者による対価の投入を検知したか否かを判断する(ステップS1)。利用者による対価の投入とは、硬貨投入口16または紙幣投入口18からの貨幣の投入をいう。本体制御装置26は、貨幣識別装置28によって貨幣の投入が検知されたとき、投入検知信号をコンピュータ38に出力する。したがって、コンピュータ38は、本体制御装置26からの投入検知信号の有無に基づいて対価の投入を検知したか否かを判断する。対価の投入を検知するまでステップS1に戻り、一方、対価の投入を検知すればステップS3に進む。
【0040】
ステップS3では、画像キャプチャ装置32は、コンピュータ38からの指示に応じて、カメラ20から出力される対価投入検出以後の画像を所定時間おきに1フレームずつ取得して第1バッファメモリ34に与え、図4に示すように当該画像が第1バッファメモリ34に格納されていく(ステップS3)。そして、コンピュータ38は、自動販売機10における商品の選択を検知しかつ当該選択を検知した後第1所定時間(たとえば2秒)が経過したか否かを判断する(ステップS5)。本体制御装置26は、商品選択ボタン14によって商品の選択が検知されたとき、選択検知信号をコンピュータ38に送信する。したがって、コンピュータ38は、本体制御装置26からの選択検知信号の有無に基づいて商品の選択を検知したか否かを判断する。そして、コンピュータ38は、選択検知信号を受けることによって商品の選択を検知すると、その信号入力時から第1所定時間経過したか否かを判断する。商品の選択が検知されかつその後第1所定時間経過するまで、ステップS3に戻り、一方、商品の選択が検知されかつその後第1所定時間経過すると、ステップS7に進む。
【0041】
ステップS7では、コンピュータ38は、第1バッファメモリ34に、対価投入検知時(投入検知信号の入力時)から商品選択検知の第1所定時間後までに第1バッファメモリ34に格納された画像の転送指示を与える。すると第1バッファメモリ34は、当該転送指示に応じてその分の画像を第2バッファメモリ36に転送する。図5に示すように、第2バッファメモリ36には、第1バッファメモリ34からの画像が時系列の順に複写され、複写された画像に降順のフレーム番号が付加される。第2バッファメモリ36に格納された画像が顔検出処理の対象となる。そして、ステップS1に戻る。
【0042】
ついで、図7を参照して、顔検出処理について説明する。
まず、コンピュータ38は、終了フラグを「0」にセットし、顔探索範囲フラグを「00」にセットし、カウンタ1、カウンタ2および顔検出数カウンタをそれぞれクリアする(ステップS11)。ここで、終了フラグは顔検出処理を終了するか否かを示し、終了しないときには「0」にセットされ、終了するときには「1」にセットされる。顔探索範囲フラグはマッチング処理における顔の探索範囲を示し、画像の全範囲を探索するときには「00」、画像の上部範囲を探索するときには「01」、画像の下部範囲を探索するときには「10」、画像の中央範囲を探索するときには「11」にセットされる。
【0043】
そして、コンピュータ38は第2バッファメモリ36に未処理画像があるか否かを判断する(ステップS13)。第2バッファメモリ36に未処理画像がなければステップS11に戻り、一方、第2バッファメモリ36に未処理画像があれば、コンピュータ38は、第2バッファメモリ36に記憶されている画像とそのフレーム番号とを取得し(ステップS15)、コンピュータ38は、フレーム番号が1か否かを判断する(ステップS17)。フレーム番号が1であれば、コンピュータ38は終了フラグを「1」にセットし(ステップS19)、ステップS21へ進む。一方、ステップS17においてフレーム番号が1でなければ直接ステップS21に進む。
【0044】
ステップS21では、コンピュータ38は顔探索範囲フラグに基づいて顔の探索範囲を判断する。顔探索範囲フラグが「00」であれば、コンピュータ38は、後述する図8に示す処理によって画像の全範囲についてテンプレートマッチングを行う(ステップS23)、その後、コンピュータ38は、後述する図9に示す処理によって顔探索範囲を判定し(ステップS25)、終了フラグが1か否かを判断する(ステップS27)。終了フラグが1であればステップS11に戻り、一方、終了フラグが0であればステップS15に戻る。
【0045】
ステップS21において、顔探索範囲フラグが「01」であれば、コンピュータ38は、後述する図10に示す処理によって、画像のうち中央水平線を(γ−δ1)オフセットした第2水平線以上の上部範囲でテンプレートマッチングを行い(ステップS29)、ステップS27に進む。ステップS21において、顔探索範囲フラグが「10」であれば、コンピュータ38は、後述する図11に示す処理によって、画像のうち中央水平線を(−γ+δ2)オフセットした第4水平線以下の下部範囲でテンプレートマッチングを行い(ステップS31)、ステップS27に進む。ステップS21において、顔探索範囲フラグが「11」であれば、コンピュータ38は、後述する図12に示す処理によって、画像のうち中央水平線を(−γ−δ3−b)オフセットした水平線から中央水平線を(γ+δ3+b)オフセットした水平線までの中央範囲でテンプレートマッチングを行い(ステップS33)、ステップS27に進む。そして、ステップS27において終了フラグが「0」である限り、コンピュータ38は、第2バッファメモリ36から画像を取得しテンプレートマッチングを行う。ここで、γは0以上の所定値、δ1は第1マージン、δ2は第2マージン、δ3は第3マージンであり、この実施形態では、たとえば、γ=10ピクセル、δ1=20ピクセル、δ2=20ピクセル、δ3=5ピクセルに設定される。
【0046】
ついで、ステップS23の全範囲のマッチング処理について図8を参照して説明する。図13はテンプレートマッチングを説明するための図解図である。
図8および図13において、xは画像左下を原点としたときのパッチの左下のx座標、yは画像左下を原点としたときのパッチの左下のy座標、aはパッチの横サイズ、bはパッチの縦サイズ、Xは画像の横サイズ、Yは画像の縦サイズ、a MINは横サイズaの最小値、b MINは縦サイズbの最小値、a STEPは横サイズaを大きくするときの変化ピクセル量、b STEPは縦サイズbを大きくするときの変化ピクセル量、x
STEPはパッチを移動させるときのx軸方向の移動ピクセル量、y STEPはパッチを移動させるときのy軸方向の移動ピクセル量を示す。
【0047】
図13に示すように、マッチングは、まず、画像の左下隅に配置されたパッチを右方向に移動させて進められる。右端までマッチングが終了すると、パッチは左端に戻されかつ所定量上側に移動される。そして、再びパッチを右方向に移動させてマッチングが進められる。顔を検出できない限り、この処理が画像の右上隅まで繰り返される。
【0048】
図8を参照して、まず、コンピュータ38は、パッチの横サイズaを最小値a MINに設定し、かつパッチの縦サイズbを最小値b MINに設定し(ステップS51)、パッチの左下のx座標およびy座標を0に設定する(ステップS53)。このとき、パッチは図13において位置P1で示す画像の左下隅に配置される。
【0049】
ついで、コンピュータ38は、当該y座標が(Y−b)以下か否かを判断し(ステップS55)、y座標が(Y−b)以下であれば、コンピュータ38は、当該x座標が(X−a)以下か否かを判断する(ステップS57)。当該x座標が(X−a)以下であれば、コンピュータ38は、(x,y)、(x,y+b)、(x+a,y)、(x+a,y+b)を頂点とする長方形領域(パッチ)の部分信号を求める(ステップS59)。
【0050】
そして、コンピュータ38は、部分信号がそのパッチのサイズに対応するテンプレート信号に合致したか否か、すなわち顔を検出したか否かを判断する(ステップS61)。ここで、部分信号がテンプレート信号に合致するとは、部分信号がテンプレート信号に完全に合致している場合のみならず、部分信号がテンプレート信号に類似する程度(類似度)が所定以上である場合をも含む。両信号の比較には、たとえば両信号の色成分(R,G,B)が用いられる。
【0051】
コンピュータ38が顔を検出すると、そのときのパッチの位置情報(パッチの下端のy座標であるyの値および上端のy座標であるy+bの値とを含む)と顔情報とをコンピュータ38内のメモリに記憶しておき、リターンして図7のステップS25に進む。一方、ステップS61において顔を検出できなければ、コンピュータ38は、xをx STEP分移動させ(ステップS63)、ステップS57に戻る。これによってパッチが右に所定量移動する。そして、顔が検出されない限り、xが(X−a)を超えるまで(図13に示す位置P2でのマッチングが終了するまで)パッチの右方向への移動とマッチングとが繰り返される。
【0052】
ステップS57において、xが(X−a)を超えれば、コンピュータ38は、xを0に設定し(ステップS65)、yをy STEP分大きくして(ステップS67)、パッチを左端に戻しかつ上方向に移動させる。図13に示す位置P2にあったパッチは位置P3に移動する。そして、ステップS55に戻る。顔が検出されない限り、ステップS55においてyが(Y−b)を超えるまで(図13に示す位置P4でのマッチングが終了するまで)、上述の処理が繰り返される。
【0053】
ステップS55においてyが(Y−b)を超えれば、コンピュータ38は、yを0に設定し(ステップS69)、パッチの横サイズaおよび縦サイズbをそれぞれa STEPおよびb STEP分大きくする(ステップS71)。そして、コンピュータ38は、パッチの横サイズaが画像の横サイズX以下でありかつ縦サイズbが画像の縦サイズY以下であるか否かを判断する(ステップS73)。この条件を満たせば、ステップS55に戻り、サイズが大きくなったパッチで画像の左下隅から上述のマッチングが行われる。一方、ステップS73の条件を満たさなければ、全領域をマッチングしても顔を検出できなかったとして、図7のステップS25にリターンする。
【0054】
ついで、ステップS25の顔探索範囲判定処理について図9を参照して説明する。
まず、コンピュータ38は、顔を検出したか否かを判断する(ステップS101)。顔を検出していれば、コンピュータ38は顔検出数カウンタをインクリメントし(ステップS103)、コンピュータ38は顔検出数カウンタがM×N回目に達したか否かを判断する(ステップS105)。顔検出数カウンタがM×N回目に達していなければ、コンピュータ38は、顔が検出されたときのパッチの下端すなわち顔の下端が中央水平線を所定量γオフセットした第1水平線(図14参照)と同じかそれより上方にあるか否かを判断する(ステップS107)。ステップS107の条件を満たせば、コンピュータ38は、カウンタ1をインクリメントしかつカウンタ2をクリアし(ステップS109)、コンピュータ38は、カウンタ1の値がN(たとえば5)以上であるか否かを判断する(ステップS111)。カウンタ1の値がN以上であれば、コンピュータ38は、顔探索範囲フラグを「01」にセットし、顔の探索範囲を上部範囲に設定する(ステップS113)。そして、コンピュータ38はカウンタ1をクリアし(ステップS115)、図7のステップS27にリターンする。
【0055】
一方、ステップS107の条件を満たさなければ、コンピュータ38は、顔が検出されたときのパッチの上端すなわち顔の上端が中央水平線を(−γ)オフセットした第3水平線(図14参照)と同じかそれより下方にあるか否かを判断する(ステップS117)。ステップS117の条件を満たせば、コンピュータ38は、カウンタ1をクリアしかつカウンタ2をインクリメントし(ステップS119)、コンピュータ38は、カウンタ2の値がN以上であるか否かを判断する(ステップS121)。カウンタ2の値がN以上であれば、コンピュータ38は、顔探索範囲フラグを「10」にセットし、顔の探索範囲を下部範囲に設定する(ステップS123)。そして、カウンタ2をクリアし(ステップS125)、図7のステップS27にリターンする。
【0056】
ステップS117の条件を満たさなければ、コンピュータ38は、カウンタ1およびカウンタ2をクリアし(ステップS126)、図7のステップS27にリターンする。
ステップS111においてカウンタ1の値がN未満のときやステップS121においてカウンタ2の値がN未満のときには、コンピュータ38は、直接図7のステップS27にリターンする。
【0057】
また、ステップS105において、顔検出数カウンタがM×N(たとえば、M=2、N=5であり、M×N=10)回目に達すれば、コンピュータ38は、顔探索範囲フラグを「11」にセットし、顔の探索範囲を中央範囲に設定する(ステップS127)。そして、図7のステップS27にリターンする。
【0058】
ついで、図7のステップS29の上部範囲でのマッチング処理について図10を参照して説明する。この場合、図15に示すように、中央水平線を(γ−δ1)オフセットした第2水平線以上の上部範囲でマッチング処理が行われる。
【0059】
図10に示すステップS53aでは、コンピュータ38は、パッチの左下のx座標を0に設定しかつy座標を(Y/2+γ−δ1)に設定する。このとき、パッチは図15で示す位置P5に配置される。また、ステップS69aにおいて、コンピュータ38は、y座標を(Y/2+γ−δ1)に設定し、ステップS73aにおいて、コンピュータ38は、パッチの横サイズaが画像の横サイズX以下でありかつ縦サイズbが(Y/2−γ+δ1)以下であるか否かを判断する。それ以外のステップS51a,S55a〜S67aおよびS71aの処理は、図8のステップS51,S55〜S67およびS71の処理と同様であるので、その重複する説明は省略する。
【0060】
つぎに、図7のステップS31の下部範囲でのマッチング処理について図11を参照して説明する。この場合、図16に示すように、中央水平線を(−γ+δ2)オフセットした第4水平線以下の下部範囲でマッチング処理が行われる。
【0061】
図11に示すステップS55bでは、コンピュータ38は、パッチの左下のy座標が(Y/2−γ+δ2)−b以下であるか否かを判断し、ステップS73bにおいて、コンピュータ38は、パッチの横サイズaが画像の横サイズX以下でありかつ縦サイズbが(Y/2−γ+δ2)以下であるか否かを判断する。それ以外のステップS51b,S53bおよびS57b〜S71bの処理は、図8のステップS51,S53およびS57〜S71の処理と同様であるので、その重複する説明は省略する。
【0062】
さらに、図7のステップS33の中央範囲でのマッチング処理について図12を参照して説明する。
図12に示すステップS53cでは、コンピュータ38は、パッチの左下のx座標を0に設定しかつy座標をY/2−(γ+δ3+b)に設定する。このとき、パッチは図17で示す位置P6に配置される。ステップS54cでは、コンピュータ38は、(γ+δ3+b)がY/2以下か否かを判断する。(γ+δ3+b)がY/2以下であれば、ステップS55cに進み、一方、(γ+δ3+b)がY/2を超えれば、図8のステップS53に進み、全範囲でのマッチング処理を行う。ステップS55cでは、コンピュータ38は、パッチの左下のy座標が(Y/2+γ+δ3)以下であるか否かを判断する。ステップS69cでは、コンピュータ38は、パッチの左下のy座標をY/2−(γ+δ3+b)に設定する。それ以外のステップS51c,S57c〜S67c,S71cおよびS73cの処理は、図8のステップS51,S57〜S67,S71およびS73の処理と同様であるので、その重複する説明は省略する。
【0063】
図12に示す処理では、ステップS54cにおいて(γ+δ3+b)がY/2以下である限り、図17に示すように、中央水平線を(−γ−δ3−b)オフセットした水平線から中央水平線を(γ+δ3+b)オフセットした水平線までの中央範囲でマッチング処理が行われる。
【0064】
ここで、中央範囲がなぜこの範囲になるかについて説明する。
図12に示す中央範囲でのマッチング処理を行うためには、図9のステップS127において、顔探索範囲フラグを「11」にセットし顔の探索範囲を中央範囲に設定する必要がある。この設定が行われるのは、M×N回顔検出したにもかかわらず、顔が検出されたときのパッチの下端が第1水平線以上になることがN回は連続せず、かつ顔が検出されたときのパッチの上端が第3水平線以下になることがN回は連続しないときである。このとき、顔が検出されたときのパッチが第1水平線と第3水平線との間にあるか(図18の位置P7参照)、顔が検出されたときのパッチの一部が第1水平線と第3水平線との間にあるか(図18の位置P8参照)、または顔が検出されたときのパッチの一部または全部が第1水平線と第3水平線との間に入ったりはみ出したりしているか(図18の位置P8およびP9参照)、のいずれかであると考えられる。
【0065】
したがって、これらの態様を考慮して、中央水平線から上下に、所定値γとパッチの縦サイズbと第3マージンδ3とを加算した位置までを、すなわち中央水平線±(γ+δ3+b)の中央範囲を顔探索範囲とした。
【0066】
図12に戻って、ステップS54cにおいて(γ+δ3+b)がY/2を超えれば、顔探索範囲が画像の縦サイズYを超えてしまうので、図19に示すように、顔探索範囲を全範囲とする。
【0067】
このように動作する自動販売機10によれば、カメラ30によって生成された画像における利用者の顔の位置に基づいて顔探索範囲を決定し、画像に対して決定された顔探索範囲についてテンプレートマッチングを行い利用者の顔を検出する。これによって、マッチングの演算回数を減らして効率的に利用者の顔検出処理を行える。
【0068】
具体的には、顔が検出されたときのパッチの下端がN回連続で第1水平線と同じかそれより上方にあったとき、第2水平線以上の範囲をそれ以降の画像の顔探索範囲とする。これによって顔探索範囲をより精度よく決定でき効率的に利用者の顔検出処理を行える。
【0069】
また、顔が検出されたときのパッチの上端がN回連続で第3水平線と同じかそれより下方にあったとき、第4水平線以下の範囲をそれ以降の画像の顔探索範囲とする。これによって顔探索範囲をより精度よく決定でき効率的に利用者の顔検出処理を行える。
【0070】
さらに、M×N回顔検出したにもかかわらず、顔が検出されたときのパッチの下端が第1水平線以上になることがN回は連続せず、かつ顔が検出されたときのパッチの上端が第3水平線以下になることがN回は連続しないとき、(γ+δ3+b)≦Y/2であれば、それ以降の画像の顔探索範囲を中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の顔探索範囲を全範囲とする。これによって顔探索範囲をより精度よく決定でき効率的に利用者の顔検出処理を行える。
【0071】
また、自動販売機10への対価投入の検知時から商品選択の検知の第1所定時間後までは地上からの顔の高さ変化は少ないので、かかる期間内にカメラ30によって得られた画像は、顔探索範囲の限定に適し、この発明を好適に用いることができる。
【0072】
つぎに、図20を参照して、自動販売機10の画像取得処理の他の動作例について説明する。
画像キャプチャ装置32は、カメラ20から出力される画像を所定時間おきに1フレームずつ取得して第1バッファメモリ34に与え、図4に示すように当該画像が第1バッファメモリ34に格納されていく(ステップS1a)。そして、コンピュータ38は、利用者の購入動作に関するイベントを検知したか否かを判断する(ステップS3a)。利用者の購入動作に関するイベントは、硬貨投入口16または紙幣投入口18からの貨幣の投入、電子決済機20による電子決済、あるいは商品選択ボタン14の押し下げを含む。本体制御装置26は、貨幣識別装置28によって貨幣の投入が検知されたとき、電子決済機20によって決済が検知されたとき、および商品選択ボタン14によって商品の選択が検知されたとき、イベント検知信号をコンピュータ38に出力する。したがって、コンピュータ38は、本体制御装置26からのイベント検知信号の有無に基づいてイベントを検知したか否かを判断する。
【0073】
イベントを検知するまでステップS1aに戻り、一方、イベントを検知すればステップS5aに進む。ステップS5aでは、コンピュータ38は、イベントの検知を契機として第1バッファメモリ34に、イベント検知時(イベント検知信号の入力時)の第2所定時間(たとえば5秒)前からイベント検知時までにカメラ30によって得られた画像の転送指示を与える。すると第1バッファメモリ34は、当該転送指示に応じて第2所定時間分の画像を第2バッファメモリ36に転送する。図5に示すように、第2バッファメモリ36には、第1バッファメモリ34からの第2所定時間分の画像が時系列の順に複写され、複写された画像に降順のフレーム番号が付加される。第2バッファメモリ36に格納された画像が顔検出処理の対象となる。そして、ステップS1aに戻る。
この場合についても図7に示す顔検出処理が行われる。
【0074】
このように動作する自動販売機10によれば、自動販売機10に対するイベントの検知時の第2所定時間前から当該イベント検知時までは地上からの顔の高さ変化は少ないので、かかる期間内にカメラ30によって得られた画像は、顔探索範囲の限定に適し、この発明を好適に用いることができる。
【0075】
以下、具体例を挙げて説明する。
画像の横サイズX=120、画像の縦サイズY=90とし、サイズa×b=10×10,20×20,30×30,40×40,50×50,60×60,70×70,80×80,90×90の各パッチについてテンプレートマッチングを行う。
【0076】
マッチング時には、まず、X軸方向に5ピクセルずつ移動させながらマッチングを行い、120ピクセル目まで探索が終了すると、Y軸方向に5ピクセル移動させ、さらに最初と同様にX軸方向に5ピクセルずつ移動させながらマッチングを行う。以降、X=120、Y=90の画像に対して探索が終了するまでこの動作を繰り返す。
【0077】
このマッチング処理を、γ=10、δ1=20、δ2=20、δ3=5として、顔探索範囲が、全範囲、上部範囲、下部範囲、中央範囲の各場合について行い、探索回数を求める。
【0078】
すると、図21に示すように、探索回数は、全範囲では1455回、上部範囲では610回、下部範囲では610回、中央範囲では1187回となる。したがって、全範囲を探索する場合と比較して、上部範囲を探索する場合および下部範囲を探索する場合には回数を58%削減でき、中央範囲を探索する場合には回数を18%削減できる。この例では、中央範囲を探索する場合、パッチサイズ30×30までが図12による中央範囲探索となり、パッチサイズ40×40以上は図8による全範囲探索となる。
【0079】
なお、第1マージンδ1と第2マージンδ2とは同じ値であっても異なる値であってもよい。所定値γ、第1マージンδ1、第2マージンδ2および第3マージンδ3は任意の値に設定できる。
【0080】
第1マージンδ1、第2マージンδ2および第3マージンδ3を0に近づけるほど、また、x STEPやy STEPを大きくするほど、探索回数を削減できる。
【0081】
所定値γを大きくすれば、上部範囲および下部範囲の探索回数を少なくできる。一方、所定値γを小さくすれば、中央範囲の探索回数を少なくできる。
【0082】
NおよびMは、任意の自然数に設定できる。
したがって、N=1、M=1のときには、顔検出時のパッチの下端が第1水平線以上にあると1回判断されれば、それ以降の画像の顔探索範囲が上部範囲に限定され、顔検出時のパッチの上端が第3水平線以下にあると1回判断されれば、それ以降の画像の顔探索範囲が下部範囲に限定され、顔検出時のパッチの下端が第1水平線より下方にありかつ当該パッチの上端が第3水平線より上方にあると1回判断されれば、(γ+δ3+b)≦Y/2である限り、それ以降の画像の顔探索範囲が中央範囲に限定される。
【0083】
上述の実施形態では、小さいパッチから徐々にパッチサイズを大きくしてマッチング処理を行うようにしたが、これに限定されず、大きいパッチから徐々にパッチサイズを小さくしてマッチング処理を行うようにしてもよい。
【図面の簡単な説明】
【0084】
【図1】この発明の一実施形態の自動販売機を示す外観図である。
【図2】この発明の一実施形態の自動販売機の電気的構成を示すブロック図である。
【図3】地上からの顔の高さを一定にしてカメラから利用者までの距離を変化させたときの写り方を説明するための図解図である。
【図4】第1バッファメモリに画像を記憶した状態の一例を示す図解図である。
【図5】第2バッファメモリに画像を記憶した状態の一例を示す図解図である。
【図6】この発明の画像取得処理動作の一例を示すフロー図である。
【図7】この発明の顔検出処理動作の一例を示すフロー図である。
【図8】全範囲のマッチング処理動作の一例を示すフロー図である。
【図9】顔探索範囲の判定処理の一例を示すフロー図である。
【図10】上部範囲のマッチング処理動作の一例を示すフロー図である。
【図11】下部範囲のマッチング処理動作の一例を示すフロー図である。
【図12】中央範囲のマッチング処理動作の一例を示すフロー図である。
【図13】マッチングを説明するための図解図である。
【図14】中央水平線、第1水平線および第3水平線を示す図解図である。
【図15】上部範囲を示す図解図である。
【図16】下部範囲を示す図解図である。
【図17】中央範囲を示す図解図である。
【図18】顔探索範囲が中央範囲に設定される場合の、顔検出時のパッチ位置の例を示す図解図である。
【図19】全範囲を示す図解図である。
【図20】この発明の画像取得処理動作の他の例を示すフロー図である。
【図21】顔探索範囲ごとの探索回数の一例を示すテーブルである。
【符号の説明】
【0085】
10 自動販売機
12 商品見本
14 商品選択ボタン
16 硬貨投入口
18 紙幣投入口
20 電子決済機
22 商品取り出し口
24 硬貨返却口
26 自動販売機本体制御装置
28 貨幣識別装置
30 カメラ
32 画像キャプチャ装置
34 第1バッファメモリ
36 第2バッファメモリ
38 コンピュータ
γ 所定値
δ1 第1マージン
δ2 第2マージン
δ3 第3マージン
a パッチの横サイズ
b パッチの縦サイズ
X 画像の横サイズ
Y 画像の縦サイズ
【特許請求の範囲】
【請求項1】
利用者を撮像して画像を生成する撮像手段と、
前記撮像手段によって生成された画像に対してテンプレートマッチングを行い前記利用者の顔を検出するマッチング手段と、
前記撮像手段によって生成された画像における前記利用者の顔の位置に基づいて、前記マッチング手段による前記テンプレートマッチングの顔探索範囲を決定する探索範囲決定手段とを備える、自動販売機。
【請求項2】
γを0以上の所定量、δ1を第1マージンとすると、前記探索範囲決定手段は、
前記テンプレートマッチングによって前記顔が検出されたときのパッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線と同じかそれより上方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(γ−δ1)オフセットした第2水平線以上の範囲に限定する、請求項1に記載の自動販売機。
【請求項3】
前記探索範囲決定手段は、
前記顔が検出されたときの前記パッチの下端がN回連続で前記第1水平線と同じかそれより上方にあったとき、前記パッチの下端が前記第1水平線と同じかそれより上方にあると判断する、請求項2に記載の自動販売機。
【請求項4】
γを0以上の所定量、δ2を第2マージンとすると、前記探索範囲決定手段は、
前記テンプレートマッチングによって前記顔が検出されたときのパッチの上端が、画像中心を通る中央水平線を(−γ)オフセットした第3水平線と同じかそれよりも下方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(−γ+δ2)オフセットした第4水平線以下の範囲に限定する、請求項1に記載の自動販売機。
【請求項5】
前記探索範囲決定手段は、
前記顔が検出されたときの前記パッチの上端がN回連続で前記第3水平線と同じかそれより下方にあったとき、前記パッチの上端が前記第3水平線と同じかそれより下方にあると判断する、請求項4に記載の自動販売機。
【請求項6】
γを0以上の所定量、δ3を第3マージン、bをパッチの縦サイズ、Yを画像の縦サイズとすると、前記探索範囲決定手段は、
前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線より下方にあり、かつ、前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの上端が、前記中央水平線を(−γ)オフセットした第3水平線より上方にあると判断するとき、
(γ+δ3+b)≦Y/2であれば、それ以降の画像の前記顔探索範囲を前記中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の前記顔探索範囲を全範囲とする、請求項1に記載の自動販売機。
【請求項7】
前記探索範囲決定手段は、M×N回顔検出したにもかかわらず、前記顔が検出されたときの前記パッチの下端が前記第1水平線と同じかそれより上方になることがN回は連続せず、かつ前記顔が検出されたときの前記パッチの上端が前記第3水平線と同じかそれより下方になることがN回は連続しないときに、前記パッチの下端が前記第1水平線より下方にありかつ前記パッチの上端が前記第3水平線より上方にあると判断する、請求項6に記載の自動販売機。
【請求項8】
当該自動販売機への対価の投入を検知する投入検知手段と、
当該自動販売機における商品の選択を検知する選択検知手段と、
前記投入検知手段による対価投入の検知時から前記選択検知手段による商品選択の検知の第1所定時間後までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、
前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行う、請求項1に記載の自動販売機。
【請求項9】
前記利用者の購入動作に関するイベントを検知するイベント検知手段と、
前記イベント検知手段によるイベント検知時の第2所定時間前から当該イベント検知時までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、
前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行う、請求項1に記載の自動販売機。
【請求項1】
利用者を撮像して画像を生成する撮像手段と、
前記撮像手段によって生成された画像に対してテンプレートマッチングを行い前記利用者の顔を検出するマッチング手段と、
前記撮像手段によって生成された画像における前記利用者の顔の位置に基づいて、前記マッチング手段による前記テンプレートマッチングの顔探索範囲を決定する探索範囲決定手段とを備える、自動販売機。
【請求項2】
γを0以上の所定量、δ1を第1マージンとすると、前記探索範囲決定手段は、
前記テンプレートマッチングによって前記顔が検出されたときのパッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線と同じかそれより上方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(γ−δ1)オフセットした第2水平線以上の範囲に限定する、請求項1に記載の自動販売機。
【請求項3】
前記探索範囲決定手段は、
前記顔が検出されたときの前記パッチの下端がN回連続で前記第1水平線と同じかそれより上方にあったとき、前記パッチの下端が前記第1水平線と同じかそれより上方にあると判断する、請求項2に記載の自動販売機。
【請求項4】
γを0以上の所定量、δ2を第2マージンとすると、前記探索範囲決定手段は、
前記テンプレートマッチングによって前記顔が検出されたときのパッチの上端が、画像中心を通る中央水平線を(−γ)オフセットした第3水平線と同じかそれよりも下方にあると判断するとき、それ以降の画像の前記顔探索範囲を、前記中央水平線を(−γ+δ2)オフセットした第4水平線以下の範囲に限定する、請求項1に記載の自動販売機。
【請求項5】
前記探索範囲決定手段は、
前記顔が検出されたときの前記パッチの上端がN回連続で前記第3水平線と同じかそれより下方にあったとき、前記パッチの上端が前記第3水平線と同じかそれより下方にあると判断する、請求項4に記載の自動販売機。
【請求項6】
γを0以上の所定量、δ3を第3マージン、bをパッチの縦サイズ、Yを画像の縦サイズとすると、前記探索範囲決定手段は、
前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの下端が、画像中心を通る中央水平線をγオフセットした第1水平線より下方にあり、かつ、前記テンプレートマッチングによって前記顔が検出されたときの前記パッチの上端が、前記中央水平線を(−γ)オフセットした第3水平線より上方にあると判断するとき、
(γ+δ3+b)≦Y/2であれば、それ以降の画像の前記顔探索範囲を前記中央水平線±(γ+δ3+b)の範囲に限定し、一方、(γ+δ3+b)>Y/2であれば、それ以降の画像の前記顔探索範囲を全範囲とする、請求項1に記載の自動販売機。
【請求項7】
前記探索範囲決定手段は、M×N回顔検出したにもかかわらず、前記顔が検出されたときの前記パッチの下端が前記第1水平線と同じかそれより上方になることがN回は連続せず、かつ前記顔が検出されたときの前記パッチの上端が前記第3水平線と同じかそれより下方になることがN回は連続しないときに、前記パッチの下端が前記第1水平線より下方にありかつ前記パッチの上端が前記第3水平線より上方にあると判断する、請求項6に記載の自動販売機。
【請求項8】
当該自動販売機への対価の投入を検知する投入検知手段と、
当該自動販売機における商品の選択を検知する選択検知手段と、
前記投入検知手段による対価投入の検知時から前記選択検知手段による商品選択の検知の第1所定時間後までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、
前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行う、請求項1に記載の自動販売機。
【請求項9】
前記利用者の購入動作に関するイベントを検知するイベント検知手段と、
前記イベント検知手段によるイベント検知時の第2所定時間前から当該イベント検知時までに前記撮像手段によって得られた前記画像を顔検出の処理対象として決定する画像決定手段とをさらに含み、
前記マッチング手段は、前記画像決定手段によって決定された前記画像について顔検出を行う、請求項1に記載の自動販売機。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2010−146320(P2010−146320A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−323298(P2008−323298)
【出願日】平成20年12月19日(2008.12.19)
【出願人】(000010076)ヤマハ発動機株式会社 (3,045)
【Fターム(参考)】
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願日】平成20年12月19日(2008.12.19)
【出願人】(000010076)ヤマハ発動機株式会社 (3,045)
【Fターム(参考)】
[ Back to top ]