画像処理装置、画像処理方法、コンピュータプログラム、及び、電子機器
【課題】 被写体の遠近を判断して、遠近に応じた画像処理モードを自動的に設定することができる画像処理装置を提供する。
【解決手段】 画像処理モジュール1は、被写体がイメージセンサ5から近距離にある場合は、画像処理のモードを輪郭検出モードに設定する(ステップS117)。画像処理モジュール1は、被写体がイメージセンサ5から遠距離にある場合は、画像処理のモードを動体検出モードに設定する(ステップS119)。画像処理モジュール1は、輪郭検出モードでは、手の形状、回転、座標、及び面積を求める。画像処理モジュール1は、動体検出モードでは、動体を検知し、座標を求める。
【解決手段】 画像処理モジュール1は、被写体がイメージセンサ5から近距離にある場合は、画像処理のモードを輪郭検出モードに設定する(ステップS117)。画像処理モジュール1は、被写体がイメージセンサ5から遠距離にある場合は、画像処理のモードを動体検出モードに設定する(ステップS119)。画像処理モジュール1は、輪郭検出モードでは、手の形状、回転、座標、及び面積を求める。画像処理モジュール1は、動体検出モードでは、動体を検知し、座標を求める。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体が写り込んだ画像を処理して、処理結果を出力する画像処理装置、電子機器、及び、その関連技術に関する。
【背景技術】
【0002】
特許文献1の電子機器は、カメラを有し、被写体の遠近に応じて、通常撮影モードと接写モードとを自動的に切り替える。通常撮影モードでは、ズームレンズが第1範囲で移動し、接写モードでは、ズームレンズが第1範囲と異なる第2範囲で移動する。このように、被写体の遠近に応じて、ズームレンズの移動範囲が異なる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−58572号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
確かに、特許文献1のように、通常撮影モードと接写モードとを自動的に切り替えることができれば便宜である。これと全く異なるものではあるが、被写体の遠近に応じて、自動的に画像処理の内容を異ならせることができれば、非常に便宜であり、利用価値も高い。
【0005】
そこで、本発明は、被写体の遠近を判断して、遠近に応じた画像処理モードを自動的に設定することができる画像処理装置及びその関連技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の観点によれば、画像処理装置は、被写体を撮影する撮影手段による映像に対して画像処理を施す画像処理手段と、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替える切替手段と、を備える。
【0007】
この構成によれば、被写体と撮影手段との間の距離に応じて、画像処理のモードが切り替えられるので、遠近に応じて、自動的に画像処理を異ならせることができる。
【0008】
このため、被写体が撮影手段から近くに存在する場合の画像処理を、被写体が撮影手段から比較的遠くに存在する場合の画像処理と異ならせることを要求する電子機器に、容易に対応可能となる。
【0009】
また、撮影手段として、比較的低解像度のものを採用でき、コストを削減できる。近くの被写体に対しては、低解像度であっても、画像処理により、その被写体の詳細な解析が可能であり、十分実用的な結果を得ることができる。一方、比較的遠くの被写体に対しては、低解像度の場合、被写体が近くに存在する場合と同じ画像処理により、被写体が近くに存在する場合と同等の精度の結果を得ることは困難である。従って、低解像度で、遠近に関係なく画像処理が同じであれば、比較的遠くにある被写体に対しては適用不可能であり、遠近双方に対応するためには、高解像度の撮影手段を採用せざるをえない。しかし、比較的遠くの被写体に対して、被写体が近くに存在する場合と異なる画像処理により、低解像度であっても十分実用的な結果を得ることもできる。このように、遠近に応じて、画像処理を異ならせることにより、低解像度の撮影手段によって、遠近双方の被写体に対応可能となる。
【0010】
さらに、近距離用のセンサと遠距離用のセンサとを別個に設ける必要がなく、コストを削減できる。つまり、1つの画像処理装置だけで、遠近双方の画像処理を行なうことができる。
【0011】
この画像処理装置において、前記切替手段は、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードとして第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記画像処理のモードとして第2モードを設定し、前記画像処理手段は、前記第1モードの設定時に、前記映像に写った前記被写体の形態を認識する処理、動きを検出する処理、座標を求める処理、及び面積を求める処理の全部又は一部を実行し、前記第2モードの設定時に、前記映像から、前記被写体としての動体を検出する処理、撮影空間の輝度を求める処理、及び前記被写体の存在を検出する処理の全部又は一部を実行する。
【0012】
この構成によれば、近距離のための画像処理である第1モードでは、被写体の形態を認識する処理等が実行される。比較的低解像度の画像からでも、形態の認識は十分可能である。仮に、遠距離のための画像処理である第2モードにおいて、第1モードと同じ画像処理を行なっても、低解像度の画像からは、被写体の形態を精度良く認識することは困難である。しかし、第2モードでは、動体を検出する処理を実行する。動体の検出は、比較的低解像度の画像からも十分可能である。以上の結果、遠近双方において、比較的低解像度の撮影手段を採用できるので、コストを削減できる。
【0013】
ここで、近距離で被写体の形態を認識するためのセンサ(形態センサ)と遠距離で動体を検出するためのセンサ(動体センサ)とを設けることを想定する。
【0014】
このような場合、通常、形態センサとしては比較的高解像度の撮影手段が採用され、低解像度の撮影手段と比べて高価である。また、それに応じて、高解像度の撮影手段の制御装置(CPUなど)も高価になる。さらに、高解像度の画像では、処理量が多くなり、高速に出力結果を要求される場合は対応困難になる。
【0015】
また、このような場合、通常、動体センサとしては、焦電センサが採用される。焦電センサは、比較的低解像度の撮影手段より安価な場合もあるが、室温の変化を検出するものであるので、変化の発生は検知できるが、物体の座標を検出することができない。また、焦電センサでは、物体を検知して、その後、その物体が動かない場合は、その物体の存在を検知できない。
【0016】
以上のように、近距離のための形態センサと遠距離のための動体センサとを設ける場合には、本発明にはない不利益を伴うが、そのような不利益がない点で本発明は有利である。
【0017】
この画像処理装置において、前記画像処理手段は、前記第2モードの設定時に、前記動体を検出して追跡する処理を実行する。
【0018】
この構成によれば、動体を追跡して、動体をターゲットとした処理ないしは制御を行なうことができる。例えば、動体の追跡結果を受けて、電子機器の一部又は全部を常に動体に向くように制御できる。
【0019】
上記画像処理装置において、前記画像処理手段は、前記第1モードの設定時に、前記被写体の形態としての形状を認識する処理を実行する。
【0020】
この構成によれば、被写体の形状を入力とした情報処理を実行することができる。
【0021】
上記画像処理装置において、前記画像処理手段は、前記第1モードの設定時に、前記被写体の動きとしての回転動作を検出する処理を実行する。
【0022】
この構成によれば、被写体の回転を入力とした情報処理を実行することができる。
【0023】
上記画像処理装置において、前記切替手段は、光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との差分画像に写り込んだ前記被写体の面積を算出する面積算出手段と、前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、前記画像処理のモードを設定する設定手段と、を含む。
【0024】
この構成によれば、画像上の面積は、撮影手段と被写体との間の距離に相関するので、面積により、撮影手段と被写体との間の距離を容易に判断できる。
【0025】
また、被写体が遠くにあれば、発光手段の光が届かない、あるいは、届いても反射光が弱く撮影手段に検出されないので、発光手段の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、発光手段の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、発光手段が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0026】
上記画像処理装置において、前記画像処理手段は、前記画像処理のモードとしての第1モードでは、光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第1差分画像に前記画像処理を施し、前記画像処理のモードとしての第2モードでは、前記発光手段の消灯時の前記撮影手段による前記映像に対して前記画像処理を施し、前記切替手段は、前記第1モードでは、前記第1差分画像に写り込んだ前記被写体の面積を算出する第1面積算出手段と、前記第1モードでは、前記第1差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記第2モードを設定する第1設定手段と、前記第2モードでは、前記発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第2差分画像に写り込んだ前記被写体の面積を算出する第2面積算出手段と、前記第2モードでは、前記第2差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第2モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第2モードの設定時より短い場合に、前記第1モードを設定する第2設定手段と、を含む。
【0027】
この構成によれば、画像上の面積は、撮影手段と被写体との間の距離に相関するので、面積により、撮影手段と被写体との間の距離を容易に判断できる。
【0028】
また、被写体が遠くにあれば、発光手段の光が届かない、あるいは、届いても反射光が弱く撮影手段に検出されないので、発光手段の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、発光手段の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、発光手段が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0029】
さらに、第2モードの画像処理では、発光手段の発光は不要なところ、第1モードの画像処理で要求される発光手段を、画像処理モードの切り替えのために、第2モードで共用している。その結果、コストを削減できる。
【0030】
この画像処理装置において、前記第2モードで前記第2差分画像を得るための前記撮影手段の撮影周期は、前記第1モードで前記第1差分画像を得るための前記撮影手段の撮影周期より長く設定される。
【0031】
この構成によれば、第2モードでの画像処理のモードを切り替えるための撮影周期を短くしているので、消費電力を抑制することができる。画像処理のモードを切り替えるための判断は、画像処理と同等の周期で行なう必要はなく、実質的に性能に影響はない。
【0032】
本発明の第2の観点によれば、画像処理装置は、被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記撮影手段が出力した現在の画像と過去の画像との差分を算出する差分手段と、前記差分に基づいて、画素値の変化を検出する検出手段と、第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断する判断手段と、を備える。
【0033】
この構成によれば、第1閾値を設けているので、画素値の変化の頻度が高い動き、例えば、テレビジョンのちらつき等、周期的な比較的周波数の高い動きをノイズとして除去できる。また、第2閾値を設けているので、画素値の変化の頻度が低い動き、例えば、撮影環境(撮影空間や撮影手段の状態)の変化から発生した画像上のノイズを除去できる。
【0034】
本発明の第3の観点によれば、画像処理装置は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定する指特定手段と、所定の基準線に対する、前記指特定手段が特定した各指の傾き角を算出する傾角算出手段と、前記指特定手段が特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出する指角算出手段と、前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定する判定手段と、を備える。
【0035】
この構成によれば、指先と水かきとの間の画素に基づいて指を特定することになり、輪郭画像の重心により指を特定しないので、重心により指を特定する場合と比較して、精度良く指を特定でき、ひいてはより精度よく手の形状を判定できる。一般に、輪郭画像の重心と、被写体の重心と、は一致しない場合も多く、この場合に、重心により指を特定すると、認識の精度が低くなる。
【0036】
この画像処理装置において、前記指特定手段は、前記被写体の輪郭線上にある画素から、指先に相当する画素を特定する手段を含み、前記画像処理手段は、前記被写体の輪郭画像の重心から前記指先に相当する前記画素までの距離を算出する手段をさらに含み、前記判定手段は、前記隣り合う指と指とがなす前記角度、及び、前記指先に相当する前記画素までの前記距離に基づいて、手の形状を判定する。
【0037】
この構成によれば、指先と水かきとの間の画素に基づいて得られた、隣り合う指と指とがなす角度だけでなく、重心から指先に相当する画素までの距離に基づいて、手の形状を判断するので、より多様な手の形状を判定できる。例えば、手の形状が「チョキ」であることを判定するアルゴリズムに適用できる。
【0038】
本発明の第4の観点によれば、画像処理装置は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出する距離算出手段と、前記各画素までの前記距離に基づいて、手の形状を判定する判定手段と、を備える。
【0039】
この構成によれば、重心から輪郭線上の画素までの距離を求めるといった簡単な計算で、手の形状を判定できる。例えば、重心から輪郭線上の画素までの距離が、一定範囲内の場合に、手の形状が「グー」であることを判定できる。
【0040】
本発明の第5の観点によれば、画像処理装置は、被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出する長さ算出手段と、前記線分が、所定の基準線に対してなす角度を算出する角度算出手段と、前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とする回転検出手段と、を備える。
【0041】
この構成によれば、簡易、かつ、精度よく、手の回転角度を検出できる。
【0042】
本発明の第6の観点によれば、画像処理方法は、被写体を撮影する撮影手段が出力した映像を処理する画像処理方法であって、コンピュータが、前記撮影手段が出力した映像に対して画像処理を施すステップと、前記コンピュータが、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替えるステップと、を含む。
【0043】
この構成によれば、上記第1の観点による画像処理装置と同様の効果を奏する。
【0044】
本発明の第7の観点によれば、画像処理方法は、被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記撮影手段が出力した現在の画像と過去の画像との差分を算出するステップと、前記差分に基づいて、画素値の変化を検出するステップと、第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断するステップと、を含む。
【0045】
この構成によれば、上記第2の観点による画像処理装置と同様の効果を奏する。
【0046】
本発明の第8の観点によれば、画像処理方法は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定するステップと、所定の基準線に対する、前記指を特定する前記ステップが特定した各指の傾き角を算出するステップと、前記指を特定する前記ステップが特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出するステップと、前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定するステップと、を含む。
【0047】
この構成によれば、上記第3の観点による画像処理装置と同様の効果を奏する。
【0048】
本発明の第9の観点によれば、画像処理方法は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出するステップと、前記各画素までの前記距離に基づいて、手の形状を判定するステップと、を含む。
【0049】
この構成によれば、上記第4の観点による画像処理装置と同様の効果を奏する。
【0050】
本発明の第10の観点によれば、画像処理方法は、被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出するステップと、前記線分が、所定の基準線に対してなす角度を算出するステップと、前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とするステップと、を含む。
【0051】
この構成によれば、上記第5の観点による画像処理装置と同様の効果を奏する。
【0052】
本発明の第11の観点によれば、コンピュータプログラムは、上記第6から第10の観点による画像処理方法のうちのいずれか一をコンピュータに実行させる。
【0053】
本発明の第12の観点によれば、記録媒体は、上記第11の観点によるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0054】
なお、本明細書及び請求の範囲において、記録媒体は、例えば、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、CD(CD−ROM、Video−CDを含む)、DVD(DVD−Video、DVD−ROM、DVD−RAMを含む)、ROMカートリッジ、バッテリバックアップ付きのRAMメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ等を含む。
【0055】
本発明の第13の観点によれば、画像処理モジュールは、外部のコンピュータと接続される画像処理モジュールであって、MCU(Micro Controller Unit)と、前記MCUの内部及び/又は外部に配置され、前記MCUによって実行されるプログラム及びデータが格納されるメモリと、被写体を撮影するイメージセンサと、赤外光を発光する赤外発光ダイオードを含む発光部と、電源端子及び信号端子を含み、かつ、前記外部のコンピュータと接続するためのコネクタと、外部から前記電源端子に与えられる電源電圧を、前記MCU、前記メモリ、前記イメージセンサ、及び、前記発光部に供給するための電源線と、前記コネクタの前記信号端子と、前記MCUと、を接続する信号線と、前記MCUと、前記イメージセンサと、を接続するバスと、を備える。
【0056】
前記MCU又は前記イメージセンサは、前記発光部がスイッチングトランジスタを含む場合は、そのスイッチングトランジスタを制御して、前記赤外発光ダイオードを間欠的に駆動し、前記発光部がスイッチングトランジスタを含まない場合は、前記赤外発光ダイオードを直接制御して、前記赤外発光ダイオードを間欠的に駆動する。
【0057】
前記イメージセンサは、前記赤外発光ダイオードが赤外光を発光している時、及び、前記赤外発光ダイオードが赤外光を発光していない時、のそれぞれにおいて、撮影処理を実行し、赤外光の発光時の撮影画像と赤外光の非発光時の撮影画像との差分画像を生成して、その差分画像を、前記バスを介して、前記MCUに送信するものであり、あるいは、赤外光の発光時の第1撮影画像と赤外光の非発光時の第2撮影画像とを生成して、それら第1撮影画像及び第2撮影画像を、前記バスを介して、前記MCUに送信するものである。
【0058】
前記イメージセンサが前記差分画像を生成するものである場合において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記差分画像を生成し、前記MCUに送信し、前記差分画像は、複数の画素からなり、前記イメージセンサは、前記差分画像を前記MCUに送信する際に、1画素ずつ、シリアルに送信し、前記MCUは、前記イメージセンサから1画素を受信するたびに、所定の閾値と比較して、2値化を行い、前記メモリに格納し、前記メモリに格納された2値化された差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信するものであり、あるいは、前記MCUは、前記イメージセンサから前記差分画像を受け取って、前記メモリに格納し、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信するものである。
【0059】
前記イメージセンサが前記第1撮影画像及び第2撮影画像を生成するものである場合において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記第1撮影画像及び第2撮影画像を生成し、前記MCUに送信し、前記MCUは、前記第1撮影画像と前記第2撮影画像との差分画像を生成し、前記メモリに格納して、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信するものである。
【0060】
前記MCUによる前記解析対象差分画像の解析は、新たに前記解析対象差分画像を前記メモリに格納するたびに実行され、その解析結果が、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0061】
前記MCUによる前記解析対象差分画像の解析は、前記解析対象差分画像に写り込んだ前記被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、前記解析対象差分画像に写り込んだ前記被写体としての動体の検出、及び、前記被写体の存在の検出のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0062】
前記MCUは、前記解析対象差分画像の解析結果が所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0063】
前記MCU、前記メモリ、前記イメージセンサ、前記発光部、前記コネクタ、前記電源線、前記信号線、及び、前記バスは、所定の基板上にマウントされる。
【0064】
前記画像処理モジュールは、前記所定の基板上に固定されるレンズユニットをさらに備える。
【0065】
前記レンズユニットは、レンズと、前記レンズを保持するレンズホルダと、を含み、前記イメージセンサは、前記所定の基板上において、前記レンズの下部であって、前記レンズの光軸上であり、かつ、前記レンズホルダの内部に配置される。
【0066】
前記画像処理モジュールは、赤外光のみを透過する赤外光フィルタをさらに備え、前記赤外光フィルタは、前記レンズユニットの内部の、前記イメージセンサと前記レンズとの間に配置され、又は、前記レンズユニットの外部において、前記レンズを覆うように配置される。
【0067】
前記外部のコンピュータは、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、若しくは、LCD等のディスプレイ装置のコンピュータ、又は、パーソナルコンピュータであることができる。
【0068】
この構成によれば、撮影された被写体の画像を処理して(解析対象差分画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、解析対象差分画像に写り込んだ被写体としての動体の検出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータに出力する。このため、当該外部のコンピュータは、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータによる画像処理を不要とし、そのコンピュータのプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータあるいはそのコンピュータを搭載する外部機器は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0069】
また、被写体が遠くにあれば、発光部の光が届かない、あるいは、届いても反射光が弱くイメージセンサに検出されないので、発光部の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、発光部の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、発光部が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0070】
さらに、限定はされないが、この発明は、特に、被写体がイメージセンサに対して比較的近距離に位置している場合に有効である。なぜなら、赤外光を被写体に照射し、それをイメージセンサにより撮影するからである。もちろん、これは、被写体がイメージセンサに対して比較的遠距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。この場合、例えば、赤外発光ダイオードの発光強度を強くし、及び/又は、その数を増やす。
【0071】
本発明の第14の観点によれば、画像処理モジュールは、外部のコンピュータと接続される画像処理モジュールであって、MCU(Micro Controller Unit)と、前記MCUの内部及び/又は外部に配置され、前記MCUによって実行されるプログラム及びデータが格納されるメモリと、被写体を撮影するイメージセンサと、電源端子及び信号端子を含み、かつ、前記外部のコンピュータと接続するためのコネクタと、外部から前記電源端子に与えられる電源電圧を、前記MCU、前記メモリ、及び、前記イメージセンサに供給するための電源線と、前記コネクタの前記信号端子と、前記MCUと、を接続する信号線と、前記MCUと、前記イメージセンサと、を接続するバスと、を備える。
【0072】
前記イメージセンサは、一定時間間隔で、撮影処理を実行し、撮影画像を、前記バスを介して、前記MCUに送信する。
【0073】
前記MCUは、前記イメージセンサから前記撮影画像を受け取って、前記メモリに格納し、前記メモリに格納された前記撮影画像(以下、「解析対象画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する。
【0074】
前記MCUによる前記解析対象画像の解析は、新たに前記解析対象画像を前記メモリに格納するたびに実行され、その解析結果が、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0075】
前記MCUによる前記解析対象画像の解析は、前記解析対象画像に写り込んだ前記被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、前記解析対象画像に写り込んだ前記被写体としての動体の検出、前記解析対象画像に写り込んだ撮影空間の輝度の算出、前記解析対象画像に写り込んだ前記被写体の像の輝度の算出、及び、前記被写体の存在の検出のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0076】
前記MCUは、前記解析対象画像の解析結果が所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0077】
前記MCU、前記メモリ、前記イメージセンサ、前記コネクタ、前記電源線、前記信号線、及び、前記バスは、所定の基板上にマウントされる。
【0078】
前記画像処理モジュールは、前記所定の基板上に固定されるレンズユニットをさらに備える。
【0079】
前記レンズユニットは、レンズと、前記レンズを保持するレンズホルダと、を含み、前記イメージセンサは、前記所定の基板上において、前記レンズの下部であって、前記レンズの光軸上であり、かつ、前記レンズホルダの内部に配置される。
【0080】
前記外部のコンピュータは、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、若しくは、LCD等のディスプレイ装置のコンピュータ、又は、パーソナルコンピュータであることができる。
【0081】
この構成によれば、撮影された被写体の画像を処理して(解析対象画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、解析対象画像に写り込んだ被写体としての動体の検出、解析対象画像に写り込んだ撮影空間の輝度の算出、解析対象画像に写り込んだ被写体の像の輝度の算出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータに出力する。このため、当該外部のコンピュータは、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータによる画像処理を不要とし、そのコンピュータのプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータあるいはそのコンピュータを搭載する外部機器は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0082】
また、限定はされないが、この発明は、特に、被写体がイメージセンサに対して比較的遠距離に位置している場合に有効である。なぜなら、赤外発光ダイオードを設けずに、室内光及び/又は外光を反射する被写体を撮影するからである。もちろん、これは、被写体がイメージセンサに対して比較的近距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。
【0083】
本発明の第15の観点によれば、画像処理モジュールは、外部のコンピュータと接続される画像処理モジュールであって、MCU(Micro Controller Unit)と、前記MCUの内部及び/又は外部に配置され、前記MCUによって実行されるプログラム及びデータが格納されるメモリと、被写体を撮影するイメージセンサと、赤外光を発光する赤外発光ダイオードを含む発光部と、電源端子及び信号端子を含み、かつ、前記外部のコンピュータと接続するためのコネクタと、外部から前記電源端子に与えられる電源電圧を、前記MCU、前記メモリ、前記イメージセンサ、及び、前記発光部に供給するための電源線と、前記コネクタの前記信号端子と、前記MCUと、を接続する信号線と、前記MCUと、前記イメージセンサと、を接続するバスと、を備える。
【0084】
前記イメージセンサは、第1撮影モード及び第2撮影モードを有する。
【0085】
前記第1撮影モードにおいて、前記MCU又は前記イメージセンサは、前記発光部がスイッチングトランジスタを含む場合は、そのスイッチングトランジスタを制御して、前記赤外発光ダイオードを間欠的に駆動し、前記発光部がスイッチングトランジスタを含まない場合は、前記赤外発光ダイオードを直接制御して、前記赤外発光ダイオードを間欠的に駆動する。
【0086】
前記第1撮影モードにおいて、前記イメージセンサは、前記赤外発光ダイオードが赤外光を発光している時、及び、前記赤外発光ダイオードが赤外光を発光していない時、のそれぞれにおいて、撮影処理を実行し、赤外光の発光時の撮影画像と赤外光の非発光時の撮影画像との差分画像を生成して、その差分画像を、前記バスを介して、前記MCUに送信するものであり、あるいは、赤外光の発光時の第1撮影画像と赤外光の非発光時の第2撮影画像とを生成して、それら第1撮影画像及び第2撮影画像を、前記バスを介して、前記MCUに送信するものである。
【0087】
前記第1撮影モードにおいて、前記イメージセンサが前記差分画像を生成するものである場合(以下、「第1の場合」と呼ぶ。)において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記差分画像を生成し、前記MCUに送信する。
【0088】
前記第1の場合において、前記差分画像は、複数の画素からなり、前記イメージセンサは、前記差分画像を前記MCUに送信する際に、1画素ずつ、シリアルに送信し、前記MCUは、前記イメージセンサから1画素を受信するたびに、所定の第1の閾値と比較して、2値化を行い、前記メモリに格納し、前記メモリに格納された2値化された差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析するものであり、あるいは、前記第1の場合において、前記MCUは、前記イメージセンサから前記差分画像を受け取って、前記メモリに格納し、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析するものである。
【0089】
前記第1撮影モードにおいて、前記イメージセンサが前記第1撮影画像及び第2撮影画像を生成するものである場合(以下、「第2の場合」と呼ぶ。)において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記第1撮影画像及び第2撮影画像を生成し、前記MCUに送信する。
【0090】
前記第2の場合において、前記MCUは、前記第1撮影画像と前記第2撮影画像との差分画像を生成し、前記メモリに格納して、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析するものである。
【0091】
前記第1撮影モードにおいて、前記MCUによる前記解析対象差分画像の解析は、新たに前記解析対象差分画像を前記メモリに格納するたびに実行される。
【0092】
前記第2撮影モードにおいて、前記イメージセンサは、一定時間間隔で、撮影処理を実行し、撮影画像を、前記バスを介して、前記MCUに送信する。
【0093】
前記第2撮影モードにおいて、前記MCUは、前記イメージセンサから前記撮影画像を受け取って、前記メモリに格納し、前記メモリに格納された前記撮影画像(以下、「解析対象画像」と呼ぶ。)を解析する。
【0094】
前記第2撮影モードにおいて、前記MCUによる前記解析対象画像の解析は、新たに前記解析対象画像を前記メモリに格納するたびに実行される。
【0095】
前記MCUは、第1画像処理モードと第2画像処理モードとを有する。
【0096】
前記第1画像処理モードにおいて、前記MCUによる前記解析対象差分画像の解析は、前記解析対象差分画像に写り込んだ前記被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、前記解析対象差分画像に写り込んだ前記被写体としての動体の検出、及び、前記被写体の存在の検出のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0097】
前記第1画像処理モードにおいて、前記MCUは、前記解析対象差分画像の解析結果が第1の所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0098】
前記第2画像処理モードにおいて、前記MCUによる前記解析対象画像の解析は、前記解析対象画像から前記被写体としての動体を検出する処理、前記解析対象画像に写り込んだ撮影空間の輝度を求める処理、前記解析対象画像に写り込んだ被写体の像の輝度を求める処理、及び、前記解析対象画像から前記被写体の存在を検出する処理のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0099】
前記第2画像処理モードにおいて、前記MCUは、前記解析対象画像の解析結果が第2の所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0100】
前記第1画像処理モードでは、前記イメージセンサは、前記第1撮影モードで動作し、前記MCUは、前記第1撮影モードで得られた前記解析対象差分画像の解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信し、前記解析対象差分画像に基づいて、前記第1画像処理モードと前記第2画像処理モードとの間の切り替えを行う。
【0101】
前記第2画像処理モードでは、前記イメージセンサは、前記第1撮影モード及び前記第2撮影モードで動作し、前記MCUは、前記第2撮影モードで得られた前記解析対象画像の解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信し、前記第1撮影モードで得られた前記解析対象差分画像に基づいて、前記第1画像処理モードと前記第2画像処理モードとの間の切り替えを行う。
【0102】
前記第1画像処理モードにおいて、前記MCUは、前記解析対象差分画像に写り込んだ像の面積を算出して、その面積と所定の第2の閾値を比較し、その面積が前記所定の第2の閾値を超えている場合、前記第1画像処理モードを維持し、その面積が前記所定の第2の閾値以下の場合、前記第1画像処理モードから前記第2画像処理モードへ移行する。
【0103】
前記第2画像処理モードにおいて、前記MCUは、前記解析対象差分画像に写り込んだ像の面積を算出して、その面積と前記所定の第2の閾値を比較し、その面積が前記所定の第2の閾値以下の場合、前記第2画像処理モードを維持し、その面積が前記所定の第2の閾値を超えている場合、前記第2画像処理モードから前記第1画像処理モードへ移行する。
【0104】
前記第2画像処理モードにおいて、前記第1撮影モードにおける前記赤外発光ダイオードを間欠的に駆動する際の周期は、前記第1画像処理モードでの周期より長い、又は、同じである。
【0105】
前記MCU、前記メモリ、前記イメージセンサ、前記発光部、前記コネクタ、前記電源線、前記信号線、及び、前記バスは、所定の基板上にマウントされる。
【0106】
前記画像処理モジュールは、前記所定の基板上に固定されるレンズユニットをさらに備える。
【0107】
前記レンズユニットは、レンズと、前記レンズを保持するレンズホルダと、を含み、前記イメージセンサは、前記所定の基板上において、前記レンズの下部であって、前記レンズの光軸上であり、かつ、前記レンズホルダの内部に配置される。
【0108】
前記画像処理モジュールは、赤外光のみを透過する赤外光フィルタをさらに備え、前記赤外光フィルタは、前記レンズユニットの内部の、前記イメージセンサと前記レンズとの間に配置され、又は、前記レンズユニットの外部において、前記レンズを覆うように配置される。
【0109】
前記外部のコンピュータは、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、若しくは、LCD等のディスプレイ装置のコンピュータ、又は、パーソナルコンピュータであることができる。
【0110】
この構成によれば、撮影された被写体の画像を処理して(第1画像処理モードでは、解析対象差分画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、解析対象差分画像に写り込んだ被写体としての動体の検出、及び、被写体の存在の検出、第2画像処理モードでは、解析対象画像から被写体としての動体を検出する処理、解析対象画像に写り込んだ撮影空間の輝度を求める処理、解析対象画像に写り込んだ被写体の像の輝度の算出、及び、解析対象画像から被写体の存在を検出する処理)、その処理結果を、外部のコンピュータに出力する。このため、当該外部のコンピュータは、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータによる画像処理を不要とし、そのコンピュータのプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータあるいはそのコンピュータを搭載する外部機器は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0111】
また、解析対象差分画像に写り込んだ像の面積に基づいて、被写体とイメージセンサとの間の遠近を判断して、第1画像処理モードと第2画像処理モードとを切り替える。つまり、画像上の被写体の面積は、イメージセンサと被写体との間の距離に相関するので、面積により、イメージセンサと被写体との間の遠近を判断できる。
【0112】
このように、被写体とイメージセンサとの間の距離に応じて、画像処理のモードが切り替えられるので、遠近に応じて、自動的に画像処理を異ならせることができる。このため、被写体がイメージセンサから近くに存在する場合の画像処理を、被写体がイメージセンサから比較的遠くに存在する場合の画像処理と異ならせることを要求する電子機器に、容易に対応可能となる。
【0113】
さらに、イメージセンサとして、比較的低解像度のものを採用でき、コストを削減できる。近くの被写体に対しては、低解像度であっても、画像処理により、その被写体の詳細な解析が可能であり、十分実用的な結果を得ることができる。一方、比較的遠くの被写体に対しては、低解像度の場合、被写体が近くに存在する場合と同じ画像処理により、被写体が近くに存在する場合と同等の精度の結果を得ることは困難である。従って、低解像度で、遠近に関係なく画像処理が同じであれば、比較的遠くにある被写体に対しては適用不可能であり、遠近双方に対応するためには、高解像度のイメージセンサを採用せざるをえない。しかし、比較的遠くの被写体に対して、被写体が近くに存在する場合と異なる画像処理により、低解像度であっても十分実用的な結果を得ることもできる。このように、遠近に応じて、画像処理を異ならせることにより、低解像度のイメージセンサによって、遠近双方の被写体に対応可能となる。
【0114】
例えば、近距離のための画像処理である第1画像処理モードでは、被写体の形状を認識する処理が実行される。比較的低解像度の画像からでも、形状の認識は十分可能である。仮に、遠距離のための画像処理である第2画像処理モードにおいて、第1画像処理モードと同じ画像処理を行なっても、低解像度の画像からは、被写体の形状を精度良く認識することは困難である。しかし、第2画像処理モードでは、動体を検出する処理を実行する。動体の検出は、比較的低解像度の画像からも十分可能である。以上の結果、遠近双方において、比較的低解像度のイメージセンサを採用できるので、コストを削減できる。
【0115】
さらに、近距離用のセンサと遠距離用のセンサとを別個に設ける必要がなく、コストを削減できる。
【0116】
ここで、近距離で被写体の形態(形状、模様、若しくは色彩、又は、それらの任意の組合せ)を認識するためのセンサ(形態センサ)と遠距離で動体を検出するためのセンサ(動体センサ)とを設けることを想定する。
【0117】
このような場合、通常、形態センサとしては比較的高解像度のイメージセンサが採用され、低解像度のイメージセンサと比べて高価である。また、それに応じて、高解像度のイメージセンサの制御装置(CPUなど)も高価になる。さらに、高解像度の画像では、処理量が多くなり、高速に出力結果を要求される場合は対応困難になる。
【0118】
また、このような場合、通常、動体センサとしては、焦電センサが採用される。焦電センサは、比較的低解像度のイメージセンサより安価な場合もあるが、室温の変化を検出するものであるので、変化の発生は検知できるが、物体の座標を検出することができない。また、焦電センサでは、物体を検知して、その後、その物体が動かない場合は、その物体の存在を検知できない。
【0119】
以上のように、近距離のための形態センサと遠距離のための動体センサとを設ける場合には、本発明にはない不利益を伴うが、そのような不利益がない点で本発明は有利である。
【0120】
さらに、第2画像処理モードでは、発光部の発光は不要なところ、第1画像処理モードで要求される発光部を、画像処理モードの切り替えのために、第2画像処理モードで共用している。その結果、コストを削減できる。
【0121】
さらに、第2画像処理モードにおいて、第1撮影モードにおける赤外発光ダイオードを間欠的に駆動する際の周期を、第1画像処理モードの場合より長くすることによって、消費電力を抑制することができる。画像処理のモードを切り替えるための判断は、画像処理と同等の周期で行なう必要はなく、実質的に性能に影響はない。
【0122】
本発明の第16の観点によれば、電子機器は、被写体を撮影する撮影手段が出力した画像を処理する画像処理手段と、前記画像処理手段の処理結果に基づいて所定の機器を制御する制御手段と、を備え、前記画像処理手段は、前記画像を複数のブロックに分割し、前記ブロックごとに、画素の変化を検出し、前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器を制御する。
【0123】
この構成によれば、画像のブロックごとに、写り込んだ像の変化、つまり、被写体の動きを検出することができる。このため、制御手段は、所定の機器又は所定の機器の一部を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域(実空間の)に向ける制御又は向けない制御を行なうことができる。また、制御手段は、各ブロックに対応する各領域(実空間の)に向けた所定の機器の出力を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域に対して行う又は行なわない制御を行なうことができる。
【0124】
例えば、前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器の出力、前記所定の機器の向き、又は、前記所定の機器の一部の向きを制御する。
【0125】
上記電子機器において、前記撮影手段は、前記被写体を俯瞰撮影できる位置に設置され、前記所定の機器は、天井に設置される。
【0126】
この構成によれば、俯瞰撮影が行われるので、水平方向からの撮影と比較して、複数の被写体が重なって写り込む頻度が少なく、複数の被写体の重なりの判断を省くこともできるので、簡易な処理により機器を制御できる。その結果、天井に設置された機器の制御に好適である。
【0127】
もちろん、複数の被写体の重なりの判断を行ってもよい。なお、水平方向から撮影すると、複数の被写体が1つの像として画像に存在することになる場合であっても(例えば、撮影手段の光軸上に、複数の被写体が存在する場合)、俯瞰撮影する場合は、それらが、分離した像として画像に存在することも多い。
【0128】
この電子機器において、前記所定の機器は、天井に設置される空気調和装置であり、この空気調和装置は、風向きを調整するための風向調整機構を有し、前記制御手段は、前記ブロックごとの画素の変化に応じて、前記風向調整機構を制御する。
【0129】
このように、本発明は、天井に設置される空気調和装置の制御に好適である。
【図面の簡単な説明】
【0130】
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。
【0131】
【図1】本発明の実施の形態による画像処理モジュール1の電気的構成を示す図である。
【図2】図1のMCU3による全体処理の流れの一例を示すフローチャートである。
【図3】図2のステップS707のイメージセンサ5の制御の流れの一例を示すフローチャートである。
【図4】図3のステップS27の差分画像データ取得処理の流れの一例を示すフローチャートである。
【図5】図3のステップS719の画像処理モードの切替処理の流れの一例を示すフローチャートである。
【図6】図3のステップS713の動体検出モードでの処理の流れの一例を示すフローチャートである。
【図7】図3のステップS711の輪郭検出モードでの処理の流れの一例を示すフローチャートである。
【図8】図7のステップS195の変曲点の検出処理の流れの一例を示すフローチャートである。
【図9】図7のステップS197の輪郭画像の形状を判定する処理の流れの一例を示すフローチャートである。
【図10】図9のステップS261の輪郭情報を算出する処理の流れの一例を示すフローチャートである。
【図11】図9のステップS263の指先を検出する処理の流れの一例を示すフローチャートである。
【図12】図9のステップS265の「パー」を判定する処理の流れの一例を示すフローチャートである。
【図13】図9のステップS267の「チョキ」を判定する処理の流れの一例を示すフローチャートである。
【図14】図9のステップS269の「グー」を判定する処理の流れの一例を示すフローチャートである。
【図15】図7のステップS199の輪郭画像の回転を検出する処理の流れの一例を示すフローチャートである。
【図16】図7のステップS193で検出される偏角θjの説明図である。
【図17】図7のステップS195で検出される変曲点及び図9のステップS263で検出される指先の説明図である。
【図18】図10のステップS309で作成される回転テーブルの例示図である。
【図19】輪郭画像の回転を検出する処理の説明図である。
【図20】(a)図1のイメージセンサ5が出力するビジー信号のタイミング図である。(b)図1のMCU3が出力するリード信号のタイミング図である。(c)図1のMCU3が読み込む画素データDのタイミング図である。
【図21】本発明の実施の形態の変形例におけるMCU3の全体処理の流れの一例を示すフローチャートである。
【図22】(a)図1のコンピュータ13が出力するスレイブセレクト信号のタイミング図である。(b)図1のMCU3とコンピュータ13とを接続するデータ入力線上の信号のタイミング図である。(c)図1のMCU3とコンピュータ13とを接続するデータ出力線上の信号のタイミング図である。
【図23】図1の画像処理モジュール1の詳細な電気的構成を示す図である。
【図24】(a)図1の画像処理モジュール1の平面図である。(b)図1の画像処理モジュール1の側面図である。(c)図1の画像処理モジュール1の外観平面図である。
【図25】図24(a)のレンズユニット62のA−A線による断面図である。
【発明を実施するための形態】
【0132】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、本明細書において、数字の後尾に付した「h」は、16進数であることを示す。
【0133】
図1は、本発明の実施の形態による画像処理モジュール1の電気的構成を示す図である。図1を参照して、この画像処理モジュール1は、MCU(Micro Controler Unit)3、イメージセンサ5、及び赤外発光ダイオード7を含む。MCU3は、メモリ9を含む。イメージセンサ5は、カラー及びグレースケールのいずれでも使用でき、また、その画素数も任意にものを使用できるが、本実施の形態では、グレースケールで、64×64画素の比較的低解像度のものを使用する。赤外発光ダイオード7は、赤外光を発光する。赤外発光ダイオード7の数は、1つに限定されず、画像処理モジュール1の仕様に応じて、複数設けることができる。また、イメージセンサ5としては、CMOSイメージセンサやCCDイメージセンサ等を採用できる。
【0134】
MCU3のメモリ9は、RAM、ROM、及びフラッシュメモリ等の半導体メモリであり、プログラム格納領域、データ格納領域、作業領域、及び一時格納領域等として利用される。MCU3は、メモリ9に格納されたプログラムに従って、後述のフローチャートで示される各種処理を実行する。なお、仕様に応じて、記録媒体として、メモリ9の他、CD(CD−ROM、Video−CDを含む)やDVD(DVD−Video、DVD−ROM、DVD−RAMを含む)等の光ディスク、半導体メモリを搭載したメモリカード・メモリカートリッジ・USBメモリ、ハードディスク、光磁気ディスク、磁気テープ、及び、フレキシブルディスク等を、MCU3に接続することもできる。そして、これらにプログラムやデータなどを格納することもできる。
【0135】
画像処理モジュール1は、電子機器11と接続されて使用される。電子機器11は、コンピュータ13を含む。電子機器11は、例えば、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、LCD等のディスプレイ装置、及び、パーソナルコンピュータ等であるが、特に限定されるものではない。
【0136】
MCU3は、メモリ9に格納されたプログラムに従って、独自に又は電子機器11のコンピュータ13の命令を受けて、イメージセンサ5を制御する。イメージセンサ5は、MCU3の制御により、被写体を撮影し、また、赤外発光ダイオード7を制御する。
【0137】
なお、画像処理モジュール1及び電子機器11からなるシステムを、電子機器と呼び、電子機器11を機器11と呼ぶこともある。また、画像処理モジュール1を画像処理装置1と呼ぶ事もある。
【0138】
さて、次に、本実施の形態の概要を説明する。画像処理モジュール1は、2つの画像処理モードを搭載する。その1つは、輪郭検出モード(第1画像処理モード)、他の一つは、動体検出モード(第2画像処理モード)である。画像処理モジュール1は、被写体の遠近に応じて、輪郭検出モード又は動体検出モードのいずれかに自動的に入る。つまり、画像処理モジュール1は、被写体が近くに存在すると判断したときは、輪郭検出モードに入り、被写体が遠くに存在すると判断したときは、動体検出モードに入る。
【0139】
輪郭検出モードについて説明する。イメージセンサ5は、赤外発光ダイオード7の点灯時及び消灯時に撮影処理を実行し、点灯時画像と消灯時画像との差分画像を生成して、MCU3に与える。赤外発光ダイオード7は、間欠的に赤外光を発光する。赤外光の点灯時間及び消灯時間を1周期と考えると、イメージセンサ5は、この1周期ごとに、差分画像の生成処理を実行する。よって、MCU3は、1周期ごとに、以下に示す差分画像の解析処理を行なう。
【0140】
MCU3は、差分画像に基づいて、手の輪郭を検出し、グー、チョキ、パー、及び不定のいずれかを判定する。また、MCU3は、手の回転角度を検出する。さらに、MCU3は、輪郭画像の座標及び面積を算出する。MCU3は、これらの情報を電子機器11のコンピュータ13に送信する。コンピュータ13は、電子機器11の仕様に応じて、これらの情報を処理する。
【0141】
例えば、コンピュータ13は、輪郭画像の座標に従って、電子機器11としての表示装置のカーソルを制御したり、グー、チョキ、及びパーをコマンドと認識して、それらに割り当てられた処理を実行したり、手の回転角度に応じた処理を実行したり(例えば、手の回転角度に応じて仮想又は現実のダイヤルを回転)、輪郭画像の面積に応じた処理を実行したり、輪郭画像の座標の軌道に応じた処理を実行する。その結果、ユーザは、従来のタッチパネルのように、パネル等に触れることなく、電子機器11を操作することができる。
【0142】
また、例えば、コンピュータ13は、輪郭画像の座標の動きに応じて、電子機器11としての表示装置の画面を制御する。この場合、例えば、コンピュータ13は、輪郭画像の座標が水平右方向に移動した場合、ユーザが手を水平右方向に振ったと判断して、ページを左から右にめくったように、画面を切り替えたり、あるいは、左から右へ表示画像をスライドさせ、画面を切り替える。同様にして、コンピュータ13は、座標の水平左方向移動、垂直上方向移動、及び垂直下方向移動などに応じて、画面を切り替える。
【0143】
動体検出モードについて説明する。イメージセンサ5は、赤外光の消灯時に撮影処理を実行し、消灯時画像(以下、「動体検出用画像」と呼ぶ事もある。)をMCU3に与える。イメージセンサ5は、動体検出用画像を得るための撮影処理(以下、「動体検出撮影処理」と呼ぶ事もある。)を一定時間間隔で実行する。
【0144】
MCU3は、動体検出用画像に基づいて、動体を検出し、追跡する。また、MCU3は、動体の座標を算出する。さらに、MCU3は、撮影された空間の輝度を算出する。さらに、MCU3は、動体としての被写体が検出されたが、その後、検出されなくなった場合に、被写体が撮影空間に存在しなくなったのか、あるいは、その被写体が撮影空間に存在するが静止したのか、を判定する。例えば、現在の画像と過去の画像とを比較することにより、このような判定が可能である。MCU3は、これらの情報を電子機器11のコンピュータ13に送信する。
【0145】
コンピュータ13は、電子機器11の仕様に応じて、これらの情報を処理する。例えば、コンピュータ13は、動体をターゲットとした処理ないしは制御を実行する。この場合、例えば、コンピュータ13は、電子機器11としての表示装置の画面を動体の方に向けたり、電子機器11としてのエアコンディショナの送風口を動体の方に向ける。
【0146】
また、例えば、コンピュータ13は、動体が存在しない状態から動体が存在する状態への変化をトリガとして、電子機器11を起動又は停止する。例えば、コンピュータ13は、動体が存在する状態から動体が存在しない状態への変化をトリガとして、電子機器11を起動又は停止する。
【0147】
画像処理モードの切り替えについて説明する。輪郭検出モードでは、MCU3は、輪郭画像の面積が、所定の閾値THBを超えている場合は、被写体が近くに存在すると判断し、輪郭検出モードを維持し、輪郭画像の面積が、所定の閾値THB以下の場合は、被写体が遠くに存在すると判断し、動体検出モードに移行する。
【0148】
一方、動体検出モードでは、イメージセンサ5は、動体検出用画像を出力した後、次の動体検出撮影処理の開始前に、輪郭検出モードの撮影処理と同じ処理を実行して、差分画像を生成する。MCU3は、差分画像中の輪郭画像の面積が、所定の閾値THBを超えている場合は、被写体が近くに存在すると判断し、輪郭検出モードに移行し、輪郭画像の面積が、所定の閾値THB以下の場合は、被写体が遠くに存在すると判断し、動体検出モードを維持する。
【0149】
さて、次に、図1の画像処理モジュール1を構成するハードウェアの詳細を説明する。
【0150】
図23は、図1の画像処理モジュール1の詳細な電気的構成を示す図である。図23を参照して、画像処理モジュール1は、基板58を備える。基板58には、MCU3、イメージセンサ5、赤外発光ダイオード7、コネクタ30、コンデンサ31,32,34,36,40、抵抗素子38,48、及び、NPN型トランジスタ44がマウントされる。
【0151】
MCU3とイメージセンサ5とはバス56によって接続される。このバス56を通じて、MCU3とイメージセンサ5との間で、信号やデータの送受信が行なわれる。バス56は、ビジー信号のための信号線(後述の図20(a)参照)、リード信号のための信号線(後述の図20(b)参照)、及び、画素データDのためのデータ線(後述の図20(c)参照)等を含む。
【0152】
MCU3には、電源線52から電源電圧Vccが与えられる。電源線52とグラウンドとの間には、3つのバイパスコンデンサ34が並列に接続され、ノイズを除去する。また、MCU3の内部に設けられたレギュレータ(図示せず)の発振を防止するため、並列に接続されたコンデンサ36が設けられる。ただし、これらのコンデンサ36は、MCU3の仕様に応じて、不要な場合もある。
【0153】
さらに、電源線52とグラウンドとの間に、抵抗素子38及びコンデンサ40が直列に接続され、遅延回路を構成する。抵抗素子38及びコンデンサ40の接続点は、MCU3のリセット端子に接続される。MCU3は、リセット端子の電位がローレベルになった時に、リセット処理を実行する。遅延回路は、電源投入時に直ちにリセット端子がハイレベルになることを防止するものであり、MCU3の仕様に応じて不要な場合もある。
【0154】
イメージセンサ5には、電源線52から電源電圧Vccが与えられる。電源線52とグラウンドとの間には、2つのバイパスコンデンサ31が並列に接続され、ノイズを除去する。また、電源線50とグラウンドとの間に、赤外発光ダイオード7及び抵抗素子48が直列に接続される。そして、トランジスタ44のベースは、イメージセンサ5の制御端子に接続される。イメージセンサ5の制御端子がハイレベルのときにトランジスタ44はオンし、これにより、赤外発光ダイオード7がオンして、赤外光を発光する。一方、イメージセンサ5の制御端子がローレベルのときにトランジスタ44はオフし、これにより、赤外発光ダイオード7がオフして、赤外光の発光を停止する。このように、トランジスタ44は、スイッチングトランジスタとして機能すると共に、それがオンのときに、赤外発光ダイオード7に流れる電流を増幅する。ただし、トランジスタ44は、必須のものではなく、イメージセンサ5の制御端子に、赤外発光ダイオード7のアノードを直接接続することもできる。
【0155】
コネクタ30の電源端子T1(後述の図24(a)参照)は、電源線50に接続される。外部の電子機器11から電源端子T1に電源電圧Vcc(例えば3.3V)が与えられ、電源線50に供給される。また、コネクタ30の電源端子T2(後述の図24(a)参照)は、電源線52に接続される。外部の電子機器11から電源端子T2に電源電圧Vcc(例えば3.3V)が与えられ、電源線52に供給される。電源線52とグラウンドとの間には、バイパスコンデンサ32が設けられ、ノイズを除去する。また、コネクタ30のグラウンド端子T7(後述の図24(a)参照)は、グラウンドに接続される。
【0156】
また、コネクタ30の端子T3〜T6は、信号線54に接続され、信号線54は、MCU3に接続される。本実施の形態では、信号線54は、4本の信号線を含む。信号線54の一本は、コネクタ30の端子T3(後述の図24(a)参照)に接続される。コンピュータ13は、端子T3にクロック信号を与え、MCU3との同期をとる。信号線54の他の一本は、コネクタ30の端子T4(後述の図24(a)参照)に接続される。コンピュータ13は、端子T4にスレイブセレクト信号を与える(後述の図22(a)参照)。信号線54のさらに他の一本(すなわち、後述の図22(b)のデータ入力線)は、コネクタ30の端子T5(後述の図24(a)参照)に接続される。信号線54のさらに他の一本(すなわち、後述の図22(c)のデータ出力線)は、コネクタ30の端子T6(後述の図24(a)参照)に接続される。
【0157】
図24(a)は、図1の画像処理モジュール1の平面図である。図24(b)は、図1の画像処理モジュール1の側面図である。図24(c)は、図1の画像処理モジュール1の外観平面図である。図24(a)及び図24(b)を参照して、端子T1〜T7を有するコネクタ30、赤外発光ダイオード7、MCU3、及び、レンズユニット62は、この順番で基板58上に直線上に配置される。もちろん、これらの配置及び順番は、これに限定されるものではなく、任意に配置されてよい。
【0158】
また、図24(c)も参照して、コネクタ30、赤外発光ダイオード7、MCU3、及び、レンズユニット62がマウントされた基板58は、ハウジング60内に配置される。ハウジング60において、赤外発光ダイオード7の上部には、断面ラッパ状の開口が形成され、ここから赤外発光ダイオード7の発光部が外部に露出する。さらに、ハウジング60において、レンズユニット62の上部には、開口66を覆うように、つまり、筒状部材70(後述の図25参照)のヘッド(レンズ72)を覆うように、赤外光のみを透過する赤外光フィルタ64が設けられる。これにより、レンズユニット62の内部に配置されたイメージセンサ5には、赤外光のみが入射する。
【0159】
なお、ハウジング60は、必須のものではない。ハウジング60を設けない場合には、赤外光フィルタ64は、例えば、赤外光フィルタ64を保持する専用の基台を作成し、これを基板58に固定する。また、例えば、後述の図25の基台68を設計変更して赤外光フィルタ64の基台として用いてもよい。これらの固定方法は、ハウジング60を設ける場合であっても利用可能である。
【0160】
図25は、図24(a)のレンズユニット62のA−A線による断面図である。図25を参照して、レンズユニット62は、凸レンズ72及びそれを保持するレンズホルダ73を含む。レンズホルダ73は、基台68及び筒状部材70を含む。基台68及び筒状部材70の内部は空洞である。筒状部材70のヘッド部の上端には、開口66(図24(a)参照)が形成される。この開口66の直下において、筒状部材70は、レンズ72を保持する。
【0161】
また、筒状部材70の胴部の外周には、ねじ山(雄ねじ)が形成される。一方、基台68の内周は、筒状部材70の胴部のねじ山と螺合可能なように、ねじ山(雌ねじ)が形成される。これにより、基板58に対して、筒状部材70を上下動させることができる。また、基台68は、基板58上に固定される。
【0162】
イメージセンサ5は、レンズ72の光軸74がイメージセンサ5の中心を通るように、基台68の内部で基板58に固定される。そして、レンズ72のベストフォーカス領域が、イメージセンサ5の撮影面にくるように、筒状部材70が基台68に固定される。このような調整は、筒状部材70を上下動させることにより行い、筒状部材70が接着剤により最適な位置で基台68に固定される。このような調整は、製造する際のレンズ72の形状のばらつき、レンズ72を筒状部材70へ固定する際のばらつき、及び、製造する際のイメージセンサ5のばらつき等を吸収するために行なわれる。
【0163】
さて、次に、フローチャートを用いて画像処理モジュール1のMCU3の処理の詳細を説明する。
【0164】
図2は、図1のMCU3による全体処理の流れの一例を示すフローチャートである。図2を参照して、ステップS701にて、MCU3は、レジスタや変数等を初期化する。なお、後述する変数Nは0に初期化される。ステップS703にて、MCU3は、コンピュータ13が出力するスレイブセレクト信号の立下りエッジを検出したか否かを判断し、検出していない場合ステップS703に戻り、検出した場合ステップS705に進む。ステップS705にて、MCU3は、コンピュータ13から開始コマンドを受信したか否かを判断し、受信していない場合ステップS705に戻り、受信した場合ステップS707に進む。なお、開始コマンドは、MCU3とコンピュータ13とを接続するデータ入力線を介して与えられる。また、コンピュータ13は、開始コマンドをMCU3に送信した後、スレイブセレクト信号をハイレベルにする。
【0165】
ステップS707にて、MCU3は、イメージセンサ5の制御を実行する。ステップS709にて、MCU3は、画像処理モードが、輪郭検出モードの場合ステップS711に進み、動体検出モードの場合ステップS713に進む。ステップS711では、MCU3は、輪郭検出処理を実行する。一方、ステップS713では、MCU3は、動体検出処理を実行する。
【0166】
ステップS714では、MCU3は、スレイブセレクト信号の立下りエッジを検出したか否かを判断し、検出した場合ステップS715に進み、それ以外はステップS714に戻る。ステップS715にて、MCU3は、コンピュータ13からリードコマンドを受信したか否かを判断し、受信していない場合ステップS715に戻り、受信した場合ステップS717に進む。なお、リードコマンドは、MCU3とコンピュータ13とを接続するデータ入力線を介して与えられる。ステップS717では、MCU3は、ステップS711又はS713の結果を、コンピュータ13に送信する。なお、コンピュータ13は、MCU3からデータを受け取った後、スレイブセレクト信号をハイレベルにする。ステップS719にて、MCU3は、画像処理モードの切替処理を実行して、ステップS707に進む。
【0167】
図3は、図2のステップS707のイメージセンサ5の制御の流れの一例を示すフローチャートである。図3を参照して、ステップS3にて、MCU3は、現在の画像処理モードが輪郭検出モードである場合ステップS5に進み、動体検出モードである場合ステップS29に進む。コンピュータ13は、一定時間間隔で(例えば、1/30秒)、該指示をMCU3に与える。
【0168】
ステップS5にて、MCU3は、イメージセンサ5の撮影モードを差分モード(第1撮影モード)に設定する。ステップS7にて、MCU3は、イメージセンサ5の露光時間ETを一定値に設定する。ステップS9にて、MCU3は、イメージセンサ5に対して、赤外発光ダイオード7の点灯を指示する。すると、イメージセンサ5は、赤外発光ダイオード7をオンし、これにより、赤外発光ダイオード7は、赤外光を発光する。
【0169】
ステップS11にて、MCU3は、イメージセンサ5の露光(撮影)開始を指示する。ステップS13にて、MCU3は、露光時間ETが終了した場合ステップS15に進み、終了していない場合ステップS13に戻る。ステップS15にて、MCU3は、イメージセンサ5の露光(撮影)終了を指示する。
【0170】
ステップS17にて、MCU3は、赤外発光ダイオード7の点灯時間が終了した場合ステップS19に進み、終了していない場合ステップS17に戻る。ステップS19にて、MCU3は、イメージセンサ5に対して、赤外発光ダイオード7の消灯を指示する。すると、イメージセンサ5は、赤外発光ダイオード7をオフし、これにより、赤外発光ダイオード7は、発光を停止する。
【0171】
ステップS21にて、MCU3は、イメージセンサ5の露光(撮影)開始を指示する。ステップS23にて、MCU3は、露光時間ETが終了した場合ステップS25に進み、終了していない場合ステップS23に戻る。ステップS25にて、MCU3は、イメージセンサ5の露光(撮影)終了を指示する。
【0172】
ステップS27にて、MCU3は、イメージセンサ5から、赤外発光ダイオード7の点灯時画像と消灯時画像との差分画像データ(64×64の画素データ)を取得し、順次2値化して、配列PD[X][Y](画素データPD[X][Y]と呼ぶこともある。X=0〜63、Y=0〜63)に格納して、リターンする。
【0173】
図4は、図3のステップS27の差分画像データ取得処理の流れの一例を示すフローチャートである。図20(a)〜図20(c)は、差分画像データ取得処理の際の信号送受信の説明図である。
【0174】
図4を参照して、ステップS61にて、MCU3は、変数X(=0〜63),Y(=0〜63),及びPD[X][Y]に、0を代入する。なお、矩形の差分画像の左上角を原点Oとし、原点Oから右方向に延びる水平軸をX軸とし、原点Oから下方向に延びる垂直軸をY軸とする。
【0175】
ステップS63にて、MCU3は、イメージセンサ5からのビジー信号(図20(a)参照)がローレベルか否かを判断し、ローレベルの場合ステップS65に進み、ハイレベルの場合ステップS63に戻る。ステップS65にて、MCU3は、イメージセンサ5に与えているリード信号(図20(b)参照)をローレベルに設定する。ステップS67にて、MCU3は、イメージセンサ5から差分画像の画素データD(1画素に対応)を読み込む(図20(c)参照)。
【0176】
ステップS69にて、MCU3は、一定時間t0が経過したか否かを判断し、経過した場合ステップS71に進み、経過していない場合ステップS69に戻る。ステップS71にて、MCU3は、リード信号(図20(b)参照)をハイレベルに設定する。ステップS73にて、MCU3は、画素データDと所定の閾値THAとを比較する。ステップS75にて、MCU3は、画素データDが閾値THAより大きい場合ステップS77に進み、それ以下の場合ステップS79に進む。ステップS77では、MCU3は、配列PD[X][Y]に「1」(被写体の像の画素)を代入する。一方、ステップS79では、MCU3は、配列PD[X][Y]に「0」(背景の画素)を代入する。このようにして、イメージセンサ5からの差分画像の各画素は順次2値化される。
【0177】
ステップS81にて、MCU3は、変数Xを1つインクリメントする。ステップS83にて、MCU3は、変数Xの値が64になったか否かを判断し、64の場合ステップS85に進み、それ以外はステップS89に進む。ステップS85では、MCU3は、変数Yを1つインクリメントする。ステップS87にて、MCU3は、変数Yの値が64になったか否かを判断し、64の場合全ての画素を読み込んだのでリターンし、それ以外はステップS89に進む。ステップS89では、MCU3は、ビジー信号(図20(a)参照)の立ち上がりエッジを検出した場合ステップS61に進み、それ以外はステップS89に戻る。
【0178】
以上のように、MCU3は、画素を読み込むたびに順次2値化して、2値化された差分画像データを得る。
【0179】
図3に戻って、ステップS29では、MCU3は、イメージセンサ5の撮影モードを標準モード(第2撮影モード)に設定する。ステップS31にて、MCU3は、イメージセンサ5に対して、赤外発光ダイオード7の消灯を指示する。すると、イメージセンサ5は、赤外発光ダイオード7をオフし、これにより、赤外発光ダイオード7は、発光を停止する。
【0180】
ステップS33にて、MCU3は、イメージセンサ5の露光(撮影)開始を指示する。ステップS35にて、MCU3は、露光時間ETが終了した場合ステップS37に進み、終了していない場合ステップS35に戻る。ステップS37にて、MCU3は、イメージセンサ5の露光(撮影)終了を指示する。
【0181】
ステップS39にて、MCU3は、イメージセンサ5から、赤外発光ダイオード7の消灯時の画像データ(64×64の画素データ)を取得して、配列PS[X][Y](画素データPS[X][Y]と呼ぶこともある。X=0〜63、Y=0〜63)に格納する。ステップS39の画像データ取得処理は、図4の差分画像データ取得処理と同様である。ただし、図4のステップS73〜S79の処理に代えて、イメージセンサ5からの画素データDは、2値化せずにそのまま、配列PS[X][Y]に格納される。また、図4の説明において、差分画像を画像と読み替え、配列PD[X][Y]を配列PS[X][Y]と読み替える。この場合、矩形の画像の左上角を原点Oとし、原点Oから右方向に延びる水平軸をX軸とし、原点Oから下方向に延びる垂直軸をY軸とする。
【0182】
ステップS41にて、MCU3は、画素データPS[X][Y]の平均値を算出する。ステップS43にて、MCU3は、イメージセンサ5の露光時間ETを、ステップS41で求めた平均値に応じた値に設定する。画素データPS[X][Y]は輝度値であるので、その平均値は、撮影空間(撮影される空間)の明るさを表す指標になる。従って、イメージセンサ5は、該平均値が大きく撮影空間が明るいほど露光時間ETを短く設定し、該平均値が小さく撮影空間が暗いほど露光時間ETを長く設定する。このように、動体検出モードでは、ステップS35の露光時間ETは、撮影空間の明るさに応じて動的に設定される。
【0183】
ステップS44にて、MCU3は、変数Nを1つインクリメントする。ステップS45にて、MCU3は、変数Nの値が3になったか否かを判断し、値が3の場合、画像処理モードの切り替えのための撮影処理を行なうため、ステップS5に進み、それ以外はリターンする。つまり、動体検出モードでは、画像処理モードの切り替えのための撮影処理の周期は、輪郭検出モードでの輪郭検出及び動体検出モードでの動体検出のための撮影処理の周期の3倍であり、より長く設定される。よって、消費電力を抑制できる。なお、コンピュータ13が、動体検出モードでの画像処理モードの切り替えのための撮影処理の指示を出すこともできる。
【0184】
動体検出モードでは、ステップS45での肯定評価(YES)の後のステップS5〜S25の結果であるステップS27の差分画像データは、画像処理モードの切替判定のためだけに使用される(後述の図5参照)。
【0185】
図5は、図1のMCU3による画像処理モードの切り替え処理の流れの一例を示すフローチャートである。図5を参照して、ステップS99にて、MCU3は、現在の画像処理モードが、輪郭検出モードの場合ステップS101に進み、動体検出モードの場合ステップS100に進む。ステップS100では、MCU3は、変数Nの値が3か否かを判断し、値が3の場合ステップS101に進み、それ以外はリターンする。
【0186】
ステップS101にて、MCU3は、変数X,Y及びAに0を代入する。ステップS103にて、MCU3は、差分画像の画素データPD[X][Y]が「1」か否かを判断し、「1」の場合ステップS105に進み、「0」の場合ステップS107に進む。ステップS105では、MCU3は、変数Aを1つインクリメントする。
【0187】
ステップS107にて、MCU3は、変数Xを1つインクリメントする。ステップS109にて、MCU3は、変数Xの値が64になったか否かを判断し、64場合ステップS111に進み、それ以外はステップS103に戻る。ステップS111では、MCU3は、変数Yを1つインクリメントする。ステップS113にて、MCU3は、変数Yの値が64になったか否かを判断し、64の場合ステップS115に進み、それ以外はステップS103に戻る。
【0188】
ステップS115にて、MCU3は、差分画像に写り込んだ被写体の像の面積を表す変数Aの値が所定の閾値THBより大きいか否かを判断し、大きい場合ステップS117に進み、それ以下の場合ステップS119に進む。ステップS117では、MCU3は、被写体が近距離に存在すると判断して、画像処理モードを輪郭検出モードに設定する。ステップS118にて、MCU3は、図3の変数Nに0を代入して、ステップS101に進む。一方、ステップS119では、MCU3は、被写体が遠距離に存在すると判断して、画像処理モードを動体検出モードに設定してステップS101に進む。
【0189】
図6は、図1のMCU3による動体検出モードでの処理の流れの一例を示すフローチャートである。図6を参照して、ステップS141にて、MCU3は、変数k,X,Y,AX,AY,TX,TY,及びS[X][Y]に0を代入する。ステップS143にて、MCU3は、動体フラグをオフにする。動体フラグは、動体が検出されたときにオンにされるフラグである。
【0190】
ステップS145にて、MCU3は、現在の画像の画素値PS[X][Y]と前回取得した画像の画素値PS[X][Y]との差分値DIFを算出する。ステップS147にて、MCU3は、差分値DIFが所定の閾値THCより大きいか否かを判断し、大きい場合ステップS149に進み、それ以下の場合ステップS151に進む。ステップS149では、MCU3は、変数S[X][Y]の現在の値に一定値IC(>0)を加算して、変数S[X][Y]に代入する。一方、ステップS151では、MCU3は、変数S[X][Y]の現在の値から一定値DC(>0)を減算して、変数S[X][Y]に代入する。この場合、DC<IC、である。
【0191】
ステップS153にて、MCU3は、変数S[X][Y]の値が閾値THHより小さく、かつ、閾値THLより大きいか否かを判断し、肯定的判断の場合、画素値PS[X][Y]の変化が有効と判断し、ステップS155に進み、否定的判断の場合、画素値PS[X][Y]の変化が無効(ノイズ)と判断し、ステップS161に進む。変数S[X][Y]の値は、対応する画素値PS[X][Y]が変化した頻度を示す指標であり、この値が大きいほど変化の頻度が高く、この値が小さいほど変化の頻度が低い。従って、画素値PS[X][Y]が変化した頻度が高すぎる場合、又は、画素値PS[X][Y]が変化した頻度が低すぎる場合は、その変化をノイズと判断して、ステップS155に進むことなく、ステップS161に進む。
【0192】
ステップS155では、MCU3は、動体フラグをオンにする。ステップS157では、MCU3は、変数kを1つインクリメントする。変数kは、画素値PS[X][Y]の変化が有効と判断された画素の数を示す。ステップS159にて、MCU3は、変数AXの現在の値に変数Xの値を加算して、変数AXに代入する。また、MCU3は、変数AYの現在の値に変数Yの値を加算して、変数AYに代入する。
【0193】
ステップS161にて、MCU3は、変数Xを1つインクリメントする。ステップS163にて、MCU3は、変数Xの値が64になったか否かを判断し、64の場合ステップS165に進み、それ以外はステップS145に進む。ステップS165では、MCU3は、変数Yを1つインクリメントする。ステップS167にて、MCU3は、変数Yの値が64になったか否かを判断し、64の場合ステップS169に進み、それ以外はステップS145に進む。
【0194】
ステップS169では、MCU3は、変数AXの値を変数kの値で除したものを変数TXに格納し、変数AYの値を変数kの値で除したものを変数TYに格納する。座標(TX,TY)は、イメージセンサ5からの画像に含まれる動体の像の座標である。ステップS171にて、MCU3は、画素値PS[X][Y]の合計値を求め、これをイメージセンサ5の露光時間ET(図3のステップS43)で除することにより、撮影空間の輝度を求める。そして、MCU3は、リターンする。
【0195】
ここで、動体検出モードでは、図2のステップS717では、MCU3は、動体フラグ、動体の座標(TX,TY)、及び撮影空間の輝度を電子機器11のコンピュータ13に送信する。
【0196】
図7は、図1のMCU3による輪郭検出モードでの処理の流れの一例を示すフローチャートである。図7を参照して、ステップS191にて、MCU3は、差分画像データ(PD[X][Y])から被写体の像の輪郭線を抽出する。この処理では、輪郭線上の各画素Pj(j=0〜J−1)の座標(XO[j],YO[j])を求める。
【0197】
ここで、本実施の形態では、値Jは、輪郭線上の画素Pjの総数を示す。また、反時計回りに輪郭線の抽出処理が実行されるものとする。
【0198】
輪郭線を抽出するためのアルゴリズムは、周知のものを使用できる。例えば、3×3の小画素領域からなるマスクを用いる方法で、このマスクの中心を輪郭線上にたえずおきならが、順次、マスクを移動して、輪郭線を抽出する。
【0199】
ステップS193にて、MCU3は、抽出した輪郭線上の各画素PjのベクトルVjの偏角θjを算出する。
【0200】
図16は、図7のステップS193で検出される偏角θjの説明図である。図16を参照して、今、被写体の輪郭線上の3つの画素Pj−1,Pj,及びPj+1に注目する。また、輪郭線を反時計回りにスキャンするものとする。画素PjのベクトルVjは、画素Pjから次の画素Pj+1に向かうベクトルとして定義される。画素PjのベクトルVjの偏角θjは、画素Pjの1つ前の画素Pj−1のベクトルVj−1に対してベクトルVjがなす角度として定義される。反時計回りの偏角θjの符号は正であり、時計回りの偏角θjの符号は負である。
【0201】
図7に戻って、ステップS195にて、MCU3は、抽出した輪郭線の変曲点を検出する。変曲点は、輪郭線の向きが変化する点であり、凸点と凹点とが定義される。
【0202】
図17は、図7のステップS195で検出される変曲点の説明図である。図17を参照して、抽出した輪郭線21の向きが変化する点として、変曲点I0〜I8が挙げられる。変曲点I0,I2,I4,I6及びI8は凸点である。変曲点I1,I3,I5及びI7は凹点である。
【0203】
図7に戻って、ステップS197にて、MCU3は、抽出した輪郭線(輪郭画像)の形状(グー、チョキ、パー、不定)を判定する。ステップS199にて、MCU3は、抽出した輪郭線(輪郭画像)の回転を検出して、リターンする。
【0204】
ここで、輪郭検出モードでは、図2のステップS717では、MCU3は、ステップS191〜S199の結果(輪郭画像の重心座標、面積、形状、回転角度、及び、回転方向)を電子機器11のコンピュータ13に送信する。
【0205】
図8は、図7のステップS195の変曲点の検出処理の流れの一例を示すフローチャートである。図8を参照して、ステップS221にて、MCU3は、変数DA,ADA,j,及びCF[j]に0を代入する。ステップS223にて、MCU3は、図7のステップS193で検出された輪郭線上の画素Pjの偏角θjをメモリ9から取得する。ステップS225にて、MCU3は、変数DAの現在の値に偏角θjを加算して、変数DAに代入する。ステップS227にて、MCU3は、変数DAの絶対値を求めて、変数ADAに代入する。
【0206】
ステップS229にて、MCU3は、変数ADAの値が135度になったか否かを判断し、135度の場合輪郭線の向きが変わったと判断して、画素Pjを変曲点とみなしてステップS231に進み、それ以外はステップS237に進む。ステップS231では、MCU3は、変数DAの符号が正か否かを判断し、正の場合ステップS233に進み、負の場合ステップS235に進む。ステップS233では、MCU3は、凸凹フラグCF[j]に、変曲点が凸点であることを示す01を代入する。一方、ステップS235では、MCU3は、変曲点が凹点であることを示す10を代入する。
【0207】
ステップS236にて、MCU3は、変数DAに0を代入する。ステップS237にて、MCU3は、変数jを1つインクリメントする。ステップS239にて、MCU3は、変数jの値が、値Jと等しくなったか否かを判断し、j=Jの場合リターンし、それ以外はステップS223に進む。
【0208】
図9は、図7のステップS197の輪郭画像の形状を判定する処理の流れの一例を示すフローチャートである。図9を参照して、ステップS261にて、MCU3は、輪郭線に関する情報を算出する。ステップS263にて、MCU3は、輪郭画像から手の指先に相当する画素を検出する。
【0209】
再び、図17を参照して、凸点I0,I2,I4,I6及びI8を総称して、凸点As(s=0,1,…,S)と表記し、凹点I1,I3,I5及びI7を総称して、凹点Bt(t=0,1,…,T)と表記する。MCU3は、凸点Asから一定画素数Npだけ離れて位置する2つの画素を結ぶ線分23を求め、凸点Asから線分23に下ろした垂線25の長さLvを算出する。MCU3は、長さLvが、所定値CLを超えている場合に、その凸点Asを指先の候補とする。
【0210】
そして、MCU3は、指先の候補とした凸点Asの両側又は一方側に凹点Btが存在するか否かを判断し、存在する場合、その凸点Asを指先とみなす。
【0211】
また、MCU3は、「パー」及び「グー」を判定するのに必要な傾角θvを算出する。傾角θvは、指先とみなされた凸点Asから線分23に下ろした垂線25が、差分画像のX軸と平行な線27となす角である。
【0212】
図9に戻って、ステップS265にて、MCU3は、輪郭画像の形状が「パー」をした手の形状であるか否かを判定する。ステップS267にて、MCU3は、輪郭画像の形状が「チョキ」をした手の形状であるか否かを判定する。ステップS269にて、MCU3は、輪郭画像の形状が「グー」をした手の形状であるか否かを判定してリターンする。
【0213】
図10は、図9のステップS261の輪郭情報を算出する処理の流れの一例を示すフローチャートである。図10を参照して、ステップS291にて、MCU3は、変数XG,YG及びjに0を代入する。ステップS293にて、MCU3は、変数XGの現在の値に輪郭線上の画素PjのX座標XO[j]を加算したものを、変数XGに代入する。また、MCU3は、変数YGの現在の値に輪郭線上の画素PjのY座標YO[j]を加算したものを、変数XGに代入する。ステップS295にて、MCU3は、変数jを1つインクリメントする。ステップS297にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS299に進み、それ以外はステップS293に進む。
【0214】
ステップS299にて、MCU3は、変数XGの値を値Jで除したものを、変数Xgに代入する。また、MCU3は、変数YGの値を値Jで除したものを、変数Ygに代入する。座標(Xg,Yg)は、輪郭画像の重心座標を示す。
【0215】
ステップS301にて、MCU3は、変数j,LS及びL[j]に0を代入する。ステップS303にて、MCU3は、次式により、重心座標(Xg,Yg)と輪郭線上の各画素Pjの座標(XO[j],YO[j])との間の距離L[j]を算出する。
【0216】
L[j]←√((Xg−XO[j])2+(Yg−YO[j])2)
【0217】
ステップS305にて、MCU3は、変数LSの現在の値に変数L[j]の値を加算したものを、変数LSに代入する。ステップS307にて、MCU3は、次式により、重心座標(Xg,Yg)と輪郭線上の各画素Pj座標(XO[j],YO[j])とを結ぶ線分がX軸と平行な線となす角、つまり、傾角θc[j]を算出する。この場合、小数点以下の角度は切り捨てる。
【0218】
θc[j]←tan−1((YO[j]−Yg)/(XO[j]−Xg))
【0219】
ステップS309にて、MCU3は、傾角θc[j]及び距離L[j]に基づいて、回転テーブルを作成する。
【0220】
図18は、図10のステップS309で作成される回転テーブルの例示図である。図18を参照して、MCU3は、輪郭線上の画素Pjの傾角θc[j]と距離L[j]とを関連付けて、回転テーブルを作成する。
【0221】
図10に戻って、ステップS311にて、MCU3は、変数jを1つインクリメントする。ステップS313にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS315に進み、それ以外はステップS303に進む。ステップS315にて、MCU3は、変数LSの値を値Jで除することにより、距離L[j]の平均値AVLを算出する。ステップS317にて、MCU3は、輪郭線及び輪郭線内の画素を計数して、輪郭画像の面積を算出する。ステップS319にて、MCU3は、線形補間により、図18の回転テーブルを完成する。つまり、回転テーブルには、ステップS307で算出された傾角θc[j]及びステップS303で算出された距離L[j]が代入されるが、必ずしも、回転テーブルの全ての傾角及び距離の欄が埋まるわけではない。そこで、回転テーブルにおいて、空欄がある場合、その前後の距離を用いて、線形補間により、その空欄を埋めていく。なお、線形補間は例示であり、他の補間を行なうこともできる。
【0222】
図11は、図9のステップS263の指先を検出する処理の流れの一例を示すフローチャートである。図11を参照して、ステップS341にて、MCU3は、変数j及びFP[j]に0を代入する。ステップS343にて、MCU3は、フラグCF[j]が凸点を示す01にセットされているか否かを判断し、肯定的判断の場合ステップS345に進み、否定的判断の場合ステップS349に進む。
【0223】
ステップS345にて、MCU3は、凸点である画素Pjの両側又は一方側に、フラグCF[j]に凹点を示す10がセットされている画素が存在するか否かを判断し、存在する場合画素Pjを指先候補とみなしてステップS347に進み、存在しない場合ステップS349に進む。ステップS347にて、MCU3は、フラグFP[j]に画素Pjが指先候補であることを示す1をセットする。
【0224】
ステップS349にて、MCU3は、変数jを1つインクリメントする。ステップS351にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS353に進み、それ以外はステップS343に進む。
【0225】
ステップS353にて、MCU3は、変数j,q,TF[j],θv[q],XT,YT,Q及びθvに0を代入する。ステップS355にて、MCU3は、フラグFP[j]に指先候補を示す1がセットされているか否かを判断し、肯定的判断の場合ステップS357に進み、それ以外はステップS371に進む。
【0226】
ステップS357にて、MCU3は、画素Pj+Npと画素Pj−Npとを結ぶ線分23に画素Pjから下ろした垂線25の長さLvを算出する(図17参照)。ステップS359にて、MCU3は、長さLvが所定値CLを超えているか否かを判断し、超えている場合画素Pjを指先とみなしてステップS361に進み、それ以外はステップS371に進む。
【0227】
ステップS361にて、MCU3は、指先フラグTF[j]に画素Pjが指先であることを示す1をセットする。ステップS363にて、MCU3は、変数XT[q]に画素PjのX座標を代入する。また、MCU3は、変数YT[q]に画素PjのY座標を代入する。座標(XT[q],YT[q])は、指先の座標である。ステップS365にて、MCU3は、垂線25の傾角θvを算出する(図17参照)。ステップS367にて、MCU3は、変数θv[q]に傾角θvを代入する。傾角θv[q]は、座標(XT[q],YT[q])で示される指先に対応する指の傾角である。ステップS369にて、MCU3は、変数qを1つインクリメントする。
【0228】
ステップS371にて、MCU3は、変数jを1つインクリメントする。ステップS373にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS375に進み、それ以外はステップS355に進む。ステップS375にて、MCU3は、変数Qに変数qの値を代入してリターンする。変数Qの値は、検出された指先の数を表す。
【0229】
図12は、図9のステップS265の「パー」を判定する処理の流れの一例を示すフローチャートである。図12を参照して、ステップS401にて、MCU3は、変数Qの値(指先の数)が3以上か否かを判断し、3以上の場合ステップS403に進み、それ以外はリターンする。ステップS403にて、MCU3は、変数q及びmに0を代入する。ステップS405にて、MCU3は、配列θv[q]と配列θv[q+1]との差の絶対値を算出し、変数θdに代入する。変数θdは、隣り合う指と指とがなす角度を表す。
【0230】
ステップS407にて、MCU3は、変数θdの値が100度未満か否かを判断し、肯定的判断の場合ステップS409に進み、否定的判断の場合ステップS411に進む。ステップS409にて、MCU3は、変数mを1つインクリメントする。ステップS411にて、MCU3は、変数qを1つインクリメントする。
【0231】
ステップS413にて、MCU3は、変数qの値が値Qになったか否かを判断し、値Qになった場合ステップS415に進み、それ以外はステップS405に進む。
【0232】
ステップS415では、MCU3は、変数mの値が、6以下3以上であるか否かを判断し、肯定的判断の場合手の形状が「パー」であると判断してステップS417に進み、否定的判断の場合リターンする。変数mの値は、隣り合う指と指とがなす角度θdが100度未満のケースの発生回数である。ステップS417では、MCU3は、フラグSHを「パー」を示す01にセットして、図7のステップS199に進む。
【0233】
図13は、図9のステップS267の「チョキ」を判定する処理の流れの一例を示すフローチャートである。図13を参照して、ステップS441にて、MCU3は、変数Qの値(指先の数)が2又は3の場合ステップS443に進み、それ以外はリターンする。
【0234】
ステップS443にて、MCU3は、変数q,p及びSHに0を代入する。ステップS445にて、MCU3は、輪郭画像の重心座標(Xg,Yg)と指先の座標(XT[q],YT[q])との間の距離Lgt0を算出する。ステップS447にて、MCU3は、距離Lgt0が平均値AVL(図10のステップS315参照)に1.1を乗じたもの以上か否かを判断し、つまり、距離Lgt0が平均値AVLの110%以上か否かを判断し、肯定的判断の場合ステップS449に進み、否定的判断の場合ステップS459に進む。
【0235】
ステップS449にて、MCU3は、輪郭画像の重心座標(Xg,Yg)と指先の座標(XT[q+1],YT[q+1])との間の距離Lgt10を算出する。座標(XT[q+1],YT[q+1])の指先は、座標(XT[q],YT[q])の指先の隣の指先である。ステップS451にて、MCU3は、距離Lgt1が値AVLに1.1を乗じたもの以上か否かを判断し、つまり、距離Lgt1が平均値AVLの110%以上か否かを判断し、肯定的判断の場合ステップS453に進み、否定的判断の場合ステップS459に進む。
【0236】
ステップS453では、MCU3は、配列θv[q]と配列θv[q+1]との差の絶対値(つまり、隣あう指と指とがなす角度)を算出し、変数θdに代入する。ステップS455にて、MCU3は、変数θdの値が90度未満か否かを判断し、肯定的判断の場合ステップS457に進み、否定的判断の場合ステップS459に進む。ステップS457にて、MCU3は、変数pを1つインクリメントする。
【0237】
ステップS459にて、MCU3は、変数qを1つインクリメントする。ステップS461にて、MCU3は、変数qの値が値Qになったか否かを判断し、値Qになった場合ステップS463に進み、それ以外はステップS445に進む。ステップS463にて、MCU3は、変数pの値が1又は2の場合手の形状が「チョキ」と判断してステップS465に進み、それ以外はリターンする。ステップS465では、MCU3は、フラグSHを「チョキ」を示す10にセットして、図7のステップS199に進む。
【0238】
図14は、図9のステップS269の「グー」を判定する処理の流れの一例を示すフローチャートである。図14を参照して、ステップS491にて、MCU3は、変数Qの値(指先の数)が2以上か否かを判断して、肯定的判断の場合ステップS493に進み、否定的判断の場合ステップS503に進む。
【0239】
ステップS493にて、MCU3は、変数jに0を代入する。ステップS495にて、MCU3は、距離L[j](図10のステップS303参照)が、平均値AVL(図10のステップS315参照)に0.6を乗じたもの以上であり、かつ、値AVLに1.4を乗じたもの以下であるか否かを判断し、つまり、距離L[j]が、平均値AVLの60%以上であり、かつ、平均値AVLの140%以下であるか否かを判断し、肯定的判断の場合ステップS497に進み、否定的判断の場合ステップS503に進む。
【0240】
ステップS499にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合手の形状が「グー」と判断しステップS501に進み、それ以外はステップS495に進む。ステップS501にて、MCU3は、フラグSHを「グー」を示す11にセットしてリターンする。一方、ステップS503では、MCU3は、フラグSHを「不定」を示す00にセットしてリターンする。
【0241】
図15は、図7のステップS199の輪郭画像の回転を検出する処理の流れの一例を示すフローチャートである。図15を参照して、ステップS521にて、MCU3は、変数Mに0を代入し、変数RAにFFFFhを代入する。
【0242】
ステップS523にて、MCU3は、現在の回転テーブル(図18参照)からM度の傾角に対応する距離を取得する。ステップS525にて、前回の回転テーブル(図18参照)から0度の傾角に対応する距離を取得する。ステップS527にて、MCU3は、ステップS523で取得した距離とステップS525で取得した距離との差の絶対値が一定範囲内の場合、両者が一致しているとみなして、ステップS529に進み、それ以外はステップS531に進む(図19参照)。ステップS529にて、MCU3は、変数RAに変数Mの値を代入する。
【0243】
ステップS531にて、MCU3は、現在の回転テーブル(図18参照)から(360−M)度の傾角に対応する距離を取得する。ステップS533にて、前回の回転テーブル(図18参照)から0度の傾角に対応する距離を取得する。ステップS535にて、MCU3は、ステップS531で取得した距離とステップS533で取得した距離との差の絶対値が一定範囲内の場合、両者が一致しているとみなして、ステップS537に進み、それ以外はステップS539に進む。ステップS537では、MCU3は、変数RAに、変数Mの値に(−1)を乗じた値を代入する。
【0244】
ステップS539にて、MCU3は、変数Mを1つインクリメントする。ステップS561にて、MCU3は、変数RA値がFFFFhであるか否かを判断し、肯定的判断の場合ステップS563に進み、否定的判断の場合リターンする。ステップS563にて、MCU3は、変数Mの値が360(回転テーブルに格納されている傾角の数)になったか否かを判断し、360になった場合リターンし、それ以外はステップS523に進む。
【0245】
ここで、図19を参照して、変数RAの値は、被写体の輪郭画像の重心座標と輪郭線上の画素Pjとを結ぶ線分の長さL[j]を、その線分が所定の基準線(X軸に平行な線)に対してなす角度θc[j]の関数100,102として表したときの、現在と前回との位相差である。この位相差の絶対値は輪郭画像の回転角度を表し、この位相差の符号は回転方向を表す。
【0246】
また、上記ステップS523及びS525の処理は、回転テーブルを上欄から下欄に向かって処理(スキャン)していることを意味する。一方、上記ステップS531及びS533の処理は、回転テーブルを下欄から上欄に向かって処理(スキャン)していることを意味する。そして、双方向へのスキャンにおいて、現在の距離が前回の距離と早く一致したときの位相差を輪郭画像の回転角としている。
【0247】
さて、以上のように、本実施の形態によれば、被写体とイメージセンサ5との間の距離に応じて、画像処理のモードが切り替えられるので、遠近に応じて、自動的に画像処理を異ならせることができる。
【0248】
このため、被写体がイメージセンサ5から近くに存在する場合の画像処理を、被写体がイメージセンサ5から比較的遠くに存在する場合の画像処理と異ならせることを要求する電子機器11に、容易に対応可能となる。
【0249】
また、イメージセンサ5として、比較的低解像度のものを採用でき、コストを削減できる。近くの被写体に対しては、低解像度であっても、画像処理により、その被写体の詳細な解析が可能であり、十分実用的な結果を得ることができる。一方、比較的遠くの被写体に対しては、低解像度の場合、被写体が近くに存在する場合と同じ画像処理により、被写体が近くに存在する場合と同等の精度の結果を得ることは困難である。従って、低解像度で、遠近に関係なく画像処理が同じであれば、比較的遠くにある被写体に対しては適用不可能であり、遠近双方に対応するためには、高解像度の撮影装置を採用せざるをえない。しかし、比較的遠くの被写体に対して、被写体が近くに存在する場合と異なる画像処理により、低解像度であっても十分実用的な結果を得ることもできる。このように、遠近に応じて、画像処理を異ならせることにより、低解像度のイメージセンサ5によって、遠近双方の被写体に対応可能となる。
【0250】
具体的には、近距離のための画像処理である輪郭検出モードでは、被写体の形態を認識する処理等が実行される。比較的低解像度の画像からでも、形態の認識は十分可能である。仮に、遠距離のための画像処理のモードにおいて、輪郭検出モードと同じ画像処理を行なっても、低解像度の画像からは、被写体の形態を精度良く認識することは困難である。しかし、遠距離のための動体検出モードでは、輪郭検出処理とは異なる手法により動体を検出する(図6)。この手法による動体の検出は、比較的低解像度の画像からも十分可能である。その結果、遠近双方において、比較的低解像度のイメージセンサ5を採用できるので、コストを削減できる。
【0251】
さらに、近距離用のセンサと遠距離用のセンサとを別個に設ける必要がなく、コストを削減できる。つまり、1つの画像処理モジュール1だけで、遠近双方の画像処理を行なうことができる。
【0252】
ここで、近距離で被写体の形態を認識するためのセンサ(形態センサ)と遠距離で動体を検出するためのセンサ(動体センサ)とを設けることを想定する。
【0253】
このような場合、通常、形態センサとしては比較的高解像度の撮影装置が採用され、低解像度の撮影装置と比べて高価である。また、それに応じて、高解像度の撮影装置の制御装置(CPUなど)も高価になる。さらに、高解像度の画像では、処理量が多くなり、高速に出力結果を要求される場合は対応困難になる。
【0254】
また、このような場合、通常、動体センサとしては、焦電センサが採用される。焦電センサは、比較的低解像度の撮影装置より安価な場合もあるが、室温の変化を検出するものであるので、変化の発生は検知できるが、物体の座標を検出することができない。また、焦電センサでは、物体を検知して、その後、その物体が動かない場合は、その物体の存在を検知できない。
【0255】
以上のように、近距離のための形態センサと遠距離のための動体センサとを設ける場合には、本発明にはない不利益を伴うが、そのような不利益がない点で本発明は有利である。
【0256】
さらに、本実施の形態では、動体を追跡して、動体をターゲットとした処理ないしは制御を行なうことができる。例えば、動体検出モードにおいて、動体の追跡結果を受けて、電子機器の一部又は全部を常に動体に向くように制御できる。もちろん、このような処理は輪郭検出モードでも可能である。
【0257】
さらに、本実施の形態では、第1閾値THH(図6のステップS153参照)を設けているので、画素値の変化の頻度が高い動き、例えば、テレビジョンのちらつき等、周期的な比較的周波数の高い動きをノイズとして除去できる。また、第2閾値THL(図6のステップS153参照)を設けているので、画素値の変化の頻度が低い動き、例えば、撮影環境(撮影空間やイメージセンサ5の状態)の変化から発生した画像上のノイズを除去できる。
【0258】
さらに、本実施の形態によれば、電子機器11は、輪郭検出モードにより、被写体の形状(グー、チョキ、パー)を入力とした情報処理を実行することができる。
【0259】
さらに、本実施の形態によれば、指先と水かきとの間の画素に基づいて指を特定し(図11のステップS357及びS359、図17参照)、輪郭画像の重心により指を特定しないので、重心により指を特定する場合と比較して、精度良く指を特定でき(図11)、ひいてはより精度良く手の形状を判定できる(図12、図13)。一般に、輪郭画像の重心と、被写体の重心と、は一致しない場合も多く、この場合に、重心により指を特定すると、認識の精度が低くなる。
【0260】
また、指先と水かきとの間の画素に基づいて得られた、隣り合う指と指とがなす角度だけでなく、重心から指先に相当する画素までの距離に基づいて、手の形状を判断するので(図13のステップS445〜S451)、より多様な手の形状を判定できる(図13)。例えば、手の形状が「チョキ」であることを判定できる。
【0261】
また、重心から輪郭線上の画素までの距離を求めるといった簡単な計算で(図10のステップS303)、手の形状を判定できる(図14)。例えば、重心から輪郭線上の画素までの距離が、一定範囲内の場合に、手の形状が「グー」であることを判定できる。
【0262】
さらに、本実施の形態によれば、電子機器11は、輪郭検出モードにより、被写体の回転(図15参照)を入力とした情報処理を実行することができる。
【0263】
この場合、上記のように、被写体の輪郭画像の重心座標と輪郭線上の画素Pjとを結ぶ線分の長さL[j]を、その線分が所定の基準線(X軸に平行な線)に対してなす角度θc[j]の関数として表したときの、現在と前回との位相差を求めることにより、簡易、かつ、精度よく、手の回転角度を検出できる。
【0264】
また、差分画像上の被写体の面積は、イメージセンサ5と被写体との間の距離に相関するので、面積により、イメージセンサ5と被写体との間の距離を容易に判断できる。
【0265】
また、被写体が遠くにあれば、赤外発光ダイオード7の光が届かない、あるいは、届いても反射光が弱くイメージセンサ5に検出されないので、赤外発光ダイオード7の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、赤外発光ダイオード7の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、赤外発光ダイオード7が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0266】
さらに、動体検出モードの画像処理(動体検出処理)では、赤外発光ダイオード7の発光は不要なところ、輪郭検出モードの画像処理(輪郭検出処理)で要求される赤外発光ダイオード7を、画像処理モードの切り替えのために、動体検出モードで共用している。その結果、コストを削減できる。
【0267】
また、動体検出モードでの画像処理のモードを切り替えるための撮影周期を、輪郭検出モードでの輪郭検出及び動体検出モードでの動体検出のための撮影処理の周期より短くしているので、消費電力を抑制することができる。画像処理のモードを切り替えるための判断は、画像処理(輪郭検出及び動体検出)と同等の周期で行なう必要はなく、実質的に性能に影響はない。
【0268】
さらに、本実施の形態では、撮影された被写体の画像を処理して(輪郭検出モードでは、輪郭画像の重心座標、面積、形状、回転角度、及び回転方向の算出、動体検出モードでは、動体の検出(動体フラグ)、動体の座標(TX,TY)の算出、及び撮影空間の輝度の算出)、その処理結果を、電子機器11のコンピュータ13に出力する。このため、外部のコンピュータ13は、この画像処理モジュール1から入力された処理結果をそのまま利用できる。その結果、外部のコンピュータ13による画像処理を不要とし、そのコンピュータ13のプログラマの負担を軽減することができる。また、この画像処理モジュール1は、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータ13あるいはそのコンピュータ13を搭載する外部機器11は特定のものに限定されず、この画像処理モジュール1は、高い汎用性を持つ。
【0269】
(変形例)
【0270】
実施の形態の変形例では、MCU3の設定を輪郭検出モードに固定する。輪郭画像がMCU3に設定された割込条件を満足すると、MCU3は、割込信号をコンピュータ13に出力する。上記実施の形態では、MCU3は、コンピュータ13の指示なしに、コンピュータ13にデータを送信することができない。これに対して、変形例では、コンピュータ13の指示がない場合であっても、輪郭画像が割込条件を満足した場合は、MCU3が、割込信号をコンピュータ13に送信する。このため、スタンバイ状態あるいはスリープ状態のコンピュータ13を、MCU3からの割込信号により、オペレーション状態にしたり、復帰させたりすることができる。
【0271】
図21は、本発明の実施の形態の変形例におけるMCU3の全体処理の流れの一例を示すフローチャートである。図22(a)〜図22(c)は、変形例におけるMCU3とコンピュータ13との間の信号送受信の説明図である。
【0272】
図21を参照して、ステップS751にて、MCU3は、レジスタや変数等の初期化を実行する。ステップS753にて、MCU3は、データ出力線の電位をハイレベルに設定する(図22(c)参照)。このデータ出力線は、MCU3とコンピュータ13とを接続する。ステップS755にて、MCU3は、一定時間間隔でタイマ割込みを発生させるため、タイマをセットする。
【0273】
ステップS757にて、MCU3は、コンピュータ13が出力するスレイブセレクト信号の立下りエッジを検出したか否かを判断し、検出した場合ステップS761に進み、それ以外はステップS759に進む。ステップS759にて、MCU3は、タイマ割込みが発生したか否かを判断し、発生した場合ステップS765に進み、それ以外はステップS757に戻る。
【0274】
ステップS761では、MCU3は、タイマを解除する。ステップS763にて、MCU3は、コンピュータ13から開始コマンドを受信したか否かを判断し、受信した場合ステップS765に進み、それ以外はステップS763に戻る。なお、コンピュータ13は、MCU3へ開始コマンドを送信した後、スレイブセレクト信号をハイレベルにする。
【0275】
ステップS765では、MCU3は、イメージセンサ5を制御する。この場合の処理は、図3のステップS7〜S27の処理と同じである。ステップS767にて、MCU3は、輪郭検出処理を実行する。この処理は、図2のステップS711の輪郭検出処理と同じである。
【0276】
ステップS771にて、MCU3は、ステップS767で検出した輪郭画像が、設定された割込条件を満足しているか否かを判断し、満足している場合ステップS773に進み、満足していない場合ステップS775に進む。ステップS773では、MCU3は、コンピュータ13に割込信号を出力する。ただし、この場合に、MCU3は、コンピュータ13にコマンドを出力することもできる。
【0277】
この割込条件は、MCU3のレジスタ(図示せず)に予め設定される。もちろん、コンピュータ13によって、割込条件を変更することができる。本実施の形態では、輪郭画像が「グー」のときのみ割込信号を生成する割込条件、輪郭画像が「チョキ」のときのみ割込信号を生成する割込条件、輪郭画像が「パー」のときのみ割込信号を生成する割込条件、輪郭画像が「グー」又は「チョキ」のときに割込信号を生成する割込条件、輪郭画像が「グー」又は「パー」のときに割込信号を生成する割込条件、輪郭画像が「チョキ」又は「パー」のときに割込信号を生成する割込条件、輪郭画像が「グー」、「チョキ」又は「パー」のときに割込信号を生成する割込条件、並びに、輪郭画像が「グー」、「チョキ」及び「パー」のいずれにおいても割込信号を生成しない割込条件を設定可能である。
【0278】
ステップS775にて、MCU3は、データ出力線の電位をローレベルに設定する(図22(c)参照)。ステップS777にて、MCU3は、コンピュータ13が出力するスレイブセレクト信号(図22(a)参照)の立下りエッジを検出したか否かを判断し、検出した場合ステップS781に進み、検出していない場合ステップS779に進む。ステップS779では、MCU3は、タイマ割込みがあった場合ステップS791に進み、それ以外はステップS777に進む。
【0279】
ステップS781では、MCU3は、タイマを解除する。ステップS783にて、MCU3は、コンピュータ13から開始コマンドを受信したか否かを判断し、受信した場合ステップS789に進み、それ以外はステップS785に進む。なお、コンピュータ13は、MCU3へ開始コマンドを送信した後、スレイブセレクト信号をハイレベルにする。ステップS785にて、MCU3は、コンピュータ13からのリードコマンド(図22(b)参照)を受信したか否かを判断し、受信した場合ステップS787に進み、受信していない場合ステップS783に戻る。なお、リードコマンドは、MCU3とコンピュータ13とを接続するデータ入力線を介して与えられる。ステップS787では、MCU3は、ステップS767の結果データ(輪郭画像の重心座標、面積、形状、及び回転角度)を、データ出力線を介してコンピュータ13に送信する(図22(c)参照)。なお、コンピュータ13は、MCU3からデータを受け取った後、スレイブセレクト信号をハイレベルにする。
【0280】
ステップS789にて、MCU3は、タイマをセットする。ステップS791にて、MCU3は、データ出力線の電位をハイレベルに設定して(図22(c)参照)、ステップS765に戻る。
【0281】
以上のように、コンピュータ13がオペレーション状態のときは、MCU3は、コンピュータ13の制御(スレイブセレクト信号、開始コマンド、及び、リードコマンド)を受けて動作する。ただし、コンピュータ13がスタンバイないしはスリープ状態の場合は、MCU3は、タイマ割込みにより、イメージセンサ5の制御(ステップS765)、輪郭検出処理(ステップS767)、及び、割込信号生成処理(ステップS771及びS773)を実行する。
【0282】
さて、以上のように、変形例では、電子機器11のコンピュータ13がスタンバイ状態あるいはスリープ状態の場合であっても、輪郭画像、つまり、撮影対象物(変形例では「手」)が割込条件を満足することによって、コンピュータ13をオペレーション状態にしたり、復帰させたりすることができる。すなわち、撮影対象物を制御すること(上記例では、ユーザが手の形状を割込条件に合致させること)によって、スタンバイ状態やスリープ状態のコンピュータ13をオペレーション状態にしたり、復帰させたりすることができる。
【0283】
ここで、変形例は、例えば、カーナビゲーションシステムの操作に有用である。一般に、カーナビゲーションシステムは、ドライバーがディスプレイのタッチパネルを操作することによりコントロールされる。この場合、腕や手だけを動かして操作するのは困難な場合も多く、上半身を動かす必要もあり、必ずしも安全性が高いとは言えない場合もある。また、カーナビゲーションシステムが、テレビジョン装置やオーディオ装置と一体になっているものも多い。このように、近年のカーナビゲーションは高機能のものも多く、その全ての操作をタッチパネルで行なうと、益々安全性が低下する。
【0284】
しかしながら、本発明の変形例を適用することにより、ディスプレイに表示されたアイコンや地図画像等を非接触で操作できるので、ドライバーは、腕や手だけを動かして操作することができ、上半身を動かす必要もないため、安全性の向上に寄与できる。この場合、カーナビゲーションシステムは電子機器11に対応し、カーナビゲーションシステムのコンピュータはコンピュータ13に対応する。以下、変形例をカーナビゲーションシステムに適用する場合の応用例を挙げる。
【0285】
例えば、カーナビゲーションシステム11のコンピュータ13は、手の座標の移動方向により、ディスプレイに表示されたアイコンを選択する。この場合、コンピュータ13は、選択されたアイコンの色彩を変更する。この場合、コンピュータは、一定時間以上、同一アイコンの選択状態が継続している場合に、選択が確定したと判断する。
【0286】
また、例えば、コンピュータ13は、手の座標に連動するカーソルをディスプレイに表示する。そして、コンピュータ13は、このカーソルが、アイコンに重なったときに、そのアイコンが選択されたと判断する。この場合も、もちろん、選択されたアイコンの色彩を変更してもよい。この場合、コンピュータは、一定時間以上、カーソルが同一アイコンに継続して重なっている場合に、選択が確定したと判断する。
【0287】
ここで、コンピュータ13は、所定の手の形状を、選択確定のコマンドとして認識することもできる。例えば、一本の指を立てた手が撮影された場合に、それを選択確定のコマンドとすることができる。上記では、輪郭画像が、一本の指を立てた手であるか否かを判断する機能(コンピュータプログラム)を搭載していないが、もちろん搭載することもできる。
【0288】
さらに、例えば、コンピュータ13は、手の座標の移動方向に応じた方向に、ディスプレイに表示された地図をスクロールすることができる。この場合、コンピュータ13は、一定の初速度で、地図をスクロールし、一定距離の移動後に停止させる。また、コンピュータ13は、手の座標の移動速度に応じた初速度で、手の座標の移動方向に応じた方向に、地図をスクロールさせることもできる。この場合、コンピュータ13は、一定の摩擦係数を想定して、スクロールを停止する。ただし、コンピュータ13は、スクロール途中であっても、所定の手の形状を、スクロール停止のコマンドとして認識することもできる。例えば、「パー」をした手が撮影された場合に、それをスクロール停止のコマンドとすることができる。
【0289】
さらに、例えば、コンピュータ13は、所定の手の形状及び面積をコマンドとして、地図の拡縮を行なうことができる。この場合、コンピュータ13は、「グー」の形状の面積が大きくなると、地図を拡大し、「グー」の形状の面積が小さくなると、地図を縮小する。これとは逆に、コンピュータ13は、「グー」の形状の面積が小さくなると、地図を拡大し、「グー」の形状の面積が大きくなると、地図を縮小することもできる。そして、コンピュータ13は、「パー」の手の形状が撮影された場合に、拡縮操作を停止する。
【0290】
また、例えば、コンピュータ13は、画像処理モジュール1の結果データに基づいて、カーナビゲーションシステム11に搭載されたオーディオ装置の制御を行なうこともできる。以下、この場合の応用例を挙げる。もちろん、カーオーディオ装置単体に、変形例を適用することもできる。
【0291】
例えば、コンピュータ13は、ディスプレイに表示された楽曲リスト(垂直方向に楽曲が並んでいるものを想定する。)を、手の座標の移動方向に応じた方向に(垂直方向に限る。)、スクロールすることができる。この場合、コンピュータ13は、一定の初速度で、楽曲リストをスクロールし、一定距離の移動後に停止させる。また、コンピュータ13は、手の座標の移動速度に応じた初速度で、手の座標の移動方向に応じた方向に(垂直方向に限る。)、楽曲リストをスクロールさせることもできる。この場合、コンピュータ13は、一定の摩擦係数を想定して、スクロールを停止する。ただし、スクロール途中であっても、所定の手の形状を、スクロール停止のコマンドとして認識することもできる。例えば、「パー」をした手が撮影された場合に、それをスクロール停止のコマンドとすることができる。
【0292】
また、例えば、コンピュータ13は、楽曲リストのスクロールを停止する際に、ディスプレイの所定位置に、1楽曲名が停止するよう制御する。そして、コンピュータ13は、その所定位置に停止した楽曲が選択状態にあると認識する。そして、例えば、コンピュータ13は、所定の手の形状(例えば、「グー」)が撮影された場合に、その所定位置に停止した楽曲を再生する。
【0293】
さらに、例えば、コンピュータ13は、楽曲の再生中に、手の座標の移動方向に応じて(水平方向に限る。)、次の楽曲に進んだり、前の楽曲に戻ったりすることもできる。また、例えば、コンピュータ13は、楽曲の再生中に、手の回転角度に応じて、音量を制御することもできる。この場合、コンピュータ13は、ディスプレイに、手の回転角度に応じて回転するダイヤル画像を表示することもできる。
【0294】
また、例えば、コンピュータ13は、画像処理モジュール1の結果データに基づいて、カーナビゲーションシステム11に搭載されたテレビジョン装置の制御を行なうこともできる。この場合の操作例は、オーディオ装置の操作例と同様である。もちろん、車載テレビジョン受像機単体に、変形例を適用することもできる。
【0295】
さらに、例えば、コンピュータ13は、所定の形状の手(例えば、「チョキ」)が撮影された場合に、実行中の処理(例えば、ナビゲーション、音楽再生、テレビジョン映像表示)を中止して、メニュー画面に戻ることができる。
【0296】
また、コンピュータ13は、変形例による非接触の操作だけを受け付けるのではなく、タッチパネルによる操作も受け付けて、両者を併用することもできる。
【0297】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0298】
(1)実施の形態では、距離に応じて、画像処理モードを2つ搭載した。ただし、距離に応じて、3以上の画像処理モードを搭載することもできる。
【0299】
(2)MCU3は、輪郭検出モードでは、差分画像(解析対象差分画像)に基づいて、輪郭画像の重心座標、面積、形状、回転角度、及び回転方向を算出した。ただし、目的物はこれらに限定されるものではなく、例えば、MCU3は、差分画像に写り込んだ被写体の像の色彩の認識、その像の模様の認識、その像の回転量の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、差分画像に写り込んだ被写体としての動体の検出、及び/又は、被写体の存在の検出を行なうこともできる。
【0300】
また、MCU3は、動体検出モードでは、画像(解析対象画像)に基づいて、動体の検出(動体フラグ)、動体の座標(TX,TY)の算出、及び撮影空間の輝度の算出を行なった。ただし、目的物はこれらに限定されるものではなく、例えば、MCU3は、画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、及び/又は、画像に写り込んだ被写体の像の輝度の算出を行なうことができる。なお、この場合、低解像度のイメージセンサによる解析が不可能な場合は、それに代えて、高解像度のイメージセンサを使用する。
【0301】
(3)実施の形態では、距離に応じて画像処理モードを自動的に切り替えた。ただし、上記変形例のように、電子機器11の仕様に応じて、MCU3の設定を輪郭検出モードに固定することもできるし、また、輪郭検出モードのみを搭載することもできる。
【0302】
この場合、撮影された被写体の画像を処理して(差分画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、差分画像に写り込んだ被写体としての動体の検出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータ13に出力する。このため、当該外部のコンピュータ13は、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータ13による画像処理を不要とし、そのコンピュータ13のプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータ13あるいはそのコンピュータ13を搭載する外部機器11は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0303】
また、限定はされないが、画像処理モジュールに輪郭検出モードのみを搭載する場合、特に、被写体がイメージセンサ5に対して比較的近距離に位置している場合に有効である。なぜなら、赤外光を被写体に照射し、それをイメージセンサ5により撮影するからである。もちろん、これは、被写体がイメージセンサ5に対して比較的遠距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。この場合、例えば、赤外発光ダイオード7の発光強度を強くし、及び/又は、その数を増やす。
【0304】
さらに、この場合、上記の輪郭検出モードと同様の効果を奏する。もちろん、この場合、上記変形例の機能をそのまま搭載することもできる。
【0305】
また、電子機器11の仕様に応じて、MCU3の設定を動体検出モードに固定することもできるし、また、動体検出モードのみを搭載することもできる。
【0306】
この場合、撮影された被写体の画像を処理して(画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、画像に写り込んだ被写体としての動体の検出、画像に写り込んだ撮影空間の輝度の算出、画像に写り込んだ被写体の像の輝度の算出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータ13に出力する。このため、当該外部のコンピュータ13は、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータ13による画像処理を不要とし、そのコンピュータ13のプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータ13あるいはそのコンピュータ13を搭載する外部機器11は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0307】
また、限定はされないが、画像処理モジュールに動体検出モードのみを搭載する場合、特に、被写体がイメージセンサ5に対して比較的遠距離に位置している場合に有効である。なぜなら、赤外発光ダイオード7を設けずに、室内光及び/又は外光を反射する被写体を撮影するからである。もちろん、これは、被写体がイメージセンサ5に対して比較的近距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。
【0308】
さらに、この場合、上記の動体検出モードと同様の効果を奏する。もちろん、この場合、上記変形例と同様に、MCU3は、画像の解析結果が所定の条件を満足した時に、割込信号又はコマンドを、信号線54及びコネクタ30を介して、外部のコンピュータ13に送信する機能を搭載することもできる。
【0309】
(4)図25に示すように、赤外光フィルタ64は、レンズユニット62の外部において、開口66を覆うように配置された。ただし、赤外光フィルタは、レンズユニット62の内部において、レンズ72とイメージセンサ5との間に配置することもできる。
【0310】
(5)上記では、メモリ9は、MCU3に内蔵された。ただし、メモリ9は、MCU3の外部に配置されてもよく、MCU3の内部及び外部の双方にメモリを設けることもできる。
【0311】
(6)上記では、イメージセンサ5は、差分画像を生成し出力した。ただし、イメージセンサ5は、赤外光の点灯時の画像(グレースケールでもよいし、カラーでもよい)及び消灯時の画像(グレースケールでもよいし、カラーでもよい)をMCU3に出力することもできる。この場合、MCU3が、点灯時画像と消灯時画像との差分画像を生成する。そして、MCU3は、その差分画像に基づいて、解析処理を行なうこともできるし、また、その差分画像を2値化して、解析処理を行なうこともできる。なお、赤外光の点灯時間及び消灯時間を1周期と考えると、MCU3は、この1周期ごとに、点灯時画像と消灯時画像との差分画像の生成処理及び解析処理を実行する。
【0312】
(7)上記では、MCU3は、イメージセンサ5から1画素ずつシリアルに入力される画素データDを順次2値化した。ただし、MCU3は、全ての画素データDをメモリ9に格納した後に2値化してもよい。もちろん、MCU3は、2値化せずに、解析処理を実行することもできる。
【0313】
(8)電子機器11のコンピュータ13が、画像処理モジュール1のMCU3から与えられた情報に基づいて行なう制御は、機械的・機構的な制御に限られず、ソフトウェア、画像、あるいは音声の制御であってもよい。
【0314】
(9)上記では、「グー」、「チョキ」、及び「パー」の形状を認識したが、これに限定されない。例えば、画像処理モジュール1は、一本の指を立てた手の形状を認識することもできる。
【0315】
(10)上記変形例では、いくつかの割込条件を挙げた。ただし、割込条件は、それらに限定されない。例えば、輪郭画像の座標の軌跡が所定条件を満足することを割込条件とすることができる。例えば、所定時間内に、輪郭画像の予め定められた異なる形状が検出されること(順番は問わない。)を割込み条件とすることができる(例えば、所定時間内に、輪郭画像の第1の形状(例えば「パー」)と第2の形状(例えば「チョキ」)とが検出されたことを割込条件とすることができる。)。例えば、所定時間内に、所定の順番で、輪郭画像の予め定められた異なる形状が検出されることを割込み条件とすることができる(例えば、輪郭画像の第1の形状(例えば「パー」)が検出された後、所定時間内に、輪郭画像の第2の形状(例えば「チョキ」)が検出されたことを割込条件とすることができる。)。また、これらの例を組み合わせて、割込条件とすることもできる。
【0316】
(11)上記変形例では、カーナビゲーションシステムへの適用例を挙げたが、これに限定されないことは言うまでもない。例えば、カーナビゲーションシステムのオーディオ装置と同様に、家庭用のオーディオ装置にも変形例を適用できる。また、例えば、カーナビゲーションシステムのテレビジョン装置と同様に、家庭用のテレビジョン受像機にも変形例を適用できる。
【0317】
(12)上記変形例では、画像処理モジュール1は、コンピュータ13からの指示があるときは、コンピュータ13の指示に同期して処理を行ない、コンピュータ13からの指示がないときは、タイマ割込みに同期して処理を行なった。ただし、画像処理モジュール1は、タイマ割込みにのみ同期して処理を行なうこともできる。
【0318】
(13)上記では、赤外発光ダイオード7のオン/オフをイメージセンサ5が制御した。ただし、トランジスタ44のベースをMCU3の制御端子に接続することにより、MCU3が、赤外発光ダイオード7のオン/オフを制御することもできる。もちろん、この場合でも、トランジスタ44を設けることなしに、赤外発光ダイオード7のアノードをMCU3の制御端子に接続して制御することもできる。
【0319】
(14)図6では、ステップS153で1回でも肯定的判断がされれば、動体フラグがオンにされた。ただし、変数k(ステップS157)の値が所定値(2以上の整数)を超えた場合に、動体フラグをオンにすることもできる。なお、所定値は実験的経験的に定められる。
【0320】
(15)図6では、イメージセンサ5からの画像(64×64画素)の全画素のうち、有効な変化が検出された画素の数kを計数した(ステップS157)。この応用例を次に示す。
【0321】
イメージセンサ5からの画像を所定数N(Nは2以上の整数)のブロックBL1〜BLNに分割する(例えば、N=9)。ここで、ブロックBL1〜BLNを総称して、ブロックBLnと表記する。そして、MCU3は、ブロックBLnごとに、有効な変化が検出された画素の数knを計数し、ブロックBLnごとの画素数knをコンピュータ13に送信する。そして、コンピュータ13は、画素数knが所定値CVを超えたブロックBLnにおいて、被写体の動きが検出されたと判断する。なお、所定値CVは実験的経験的に定められる。
【0322】
このように、ブロックBLnごとに、写り込んだ像の変化、つまり、被写体の動きを検出することができる。このため、コンピュータ13は、電子機器11又は電子機器11の一部を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域(実空間の)に向ける制御又は向けない制御を行なうことができる。また、コンピュータ13は、各ブロックに対応する各領域(実空間の)に向けた電子機器11の出力を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域に対して行う又は行なわない制御を行なうことができる。
【0323】
この応用例は、例えば、電子機器11が、天井へ埋め込んで使用する空気調和装置(エア・コンディショナ)である場合に適用できる。イメージセンサ5は、被写体を俯瞰撮影できる位置に設置される。例えば、イメージセンサ5は、空気調和装置とともに天井に取り付けられ(例えば、空気調和装置の化粧パネル等)、あるいは、空気調和装置の近傍に取り付けられる。空気調和装置のコンピュータ13は、空気調和装置の垂直フラップ及び/又は水平フラップを制御して、被写体の動きが検出されたブロックに対応する領域に風向きを調整する。また、空気調和装置のコンピュータ13は、被写体の動きが検出されたブロックに対応する領域への風の出力を行い、一方、被写体の動きが検出されなかったブロックに対応する領域への風の出力を停止する。
【0324】
なお、垂直フラップは、垂直軸の回りに回転するフラップであり、水平方向の風向きを調整する。水平フラップは、水平軸の回りに回転するフラップであり、垂直方向の風向きを調整する。なお、これらのフラップを風向調整機構あるいは風向調整板と呼ぶ事もある。
【0325】
また、天井に設置される電子機器11は、空気調和装置に限定されるものではない。例えば、照明機器である。もちろん、電子機器11及びイメージセンサ5の設置場所は天井に限定されず、その性質、用途に応じて、任意の場所に設置できる。
【0326】
なお、イメージセンサ5により俯瞰撮影を行なう場合、水平方向からの撮影と比較して、複数の被写体が重なって写り込む頻度が少なく、複数の被写体の重なりの判断を省くこともできるので、簡易な処理により電子機器11を制御できる。その結果、天井に設置された電子機器11の制御に好適である。
【0327】
もちろん、複数の被写体の重なりの判断を行ってもよい。なお、水平方向から撮影すると、複数の被写体が1つの像として画像に存在することになる場合であっても(例えば、撮影手段の光軸上に、複数の被写体が存在する場合)、俯瞰撮影する場合は、それらが、分離した像として画像に存在することも多い。
【0328】
(16)画像処理モジュール1は、赤外発光ダイオード7を搭載した。ただし、赤外発光ダイオード7を搭載しないこともできる。この場合は、MCU3は、差分画像ではなく、通常の画像を処理する。
【0329】
(17)MCU3が行なう処理の全部又は一部をコンピュータ13が行なうこともできる。要するに、どちらがどの処理を行なうかは、仕様に応じて、任意に決定できる。
【0330】
(18)MCU3に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、また、並列的あるいは個別に実行される処理も含むものである。
【0331】
(19)本明細書及び請求の範囲において、手段とは必ずしも物理的手段を意味するものではなく、各手段の機能がソフトウェアによって実現される場合も含む。さらに、1つの手段の機能が2つ以上の物理的手段により実現されても、もしくは2つ以上の手段の機能が1つの物理的手段により実現されてもよい。
【産業上の利用可能性】
【0332】
本発明は、家庭電化製品、エンターテインメント機器、セキュリティ機器、車載電子機器、ディスプレイ装置、及びパーソナルコンピュータ等の分野に利用可能である。
【符号の説明】
【0333】
1…画像処理モジュール、3…MCU、5…イメージセンサ、7…赤外発光ダイオード、9…メモリ、11…電子機器、13…コンピュータ、30…コネクタ、44…トランジスタ、50,52…電源線、54…信号線、56…バス、58…基板、60…ハウジング、62…レンズユニット、64…赤外光フィルタ、66…開口、68…基台、70…筒状部材、72…凸レンズ、73…レンズホルダ、74…光軸、T1〜T7…端子。
【0334】
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。
【技術分野】
【0001】
本発明は、被写体が写り込んだ画像を処理して、処理結果を出力する画像処理装置、電子機器、及び、その関連技術に関する。
【背景技術】
【0002】
特許文献1の電子機器は、カメラを有し、被写体の遠近に応じて、通常撮影モードと接写モードとを自動的に切り替える。通常撮影モードでは、ズームレンズが第1範囲で移動し、接写モードでは、ズームレンズが第1範囲と異なる第2範囲で移動する。このように、被写体の遠近に応じて、ズームレンズの移動範囲が異なる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−58572号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
確かに、特許文献1のように、通常撮影モードと接写モードとを自動的に切り替えることができれば便宜である。これと全く異なるものではあるが、被写体の遠近に応じて、自動的に画像処理の内容を異ならせることができれば、非常に便宜であり、利用価値も高い。
【0005】
そこで、本発明は、被写体の遠近を判断して、遠近に応じた画像処理モードを自動的に設定することができる画像処理装置及びその関連技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の観点によれば、画像処理装置は、被写体を撮影する撮影手段による映像に対して画像処理を施す画像処理手段と、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替える切替手段と、を備える。
【0007】
この構成によれば、被写体と撮影手段との間の距離に応じて、画像処理のモードが切り替えられるので、遠近に応じて、自動的に画像処理を異ならせることができる。
【0008】
このため、被写体が撮影手段から近くに存在する場合の画像処理を、被写体が撮影手段から比較的遠くに存在する場合の画像処理と異ならせることを要求する電子機器に、容易に対応可能となる。
【0009】
また、撮影手段として、比較的低解像度のものを採用でき、コストを削減できる。近くの被写体に対しては、低解像度であっても、画像処理により、その被写体の詳細な解析が可能であり、十分実用的な結果を得ることができる。一方、比較的遠くの被写体に対しては、低解像度の場合、被写体が近くに存在する場合と同じ画像処理により、被写体が近くに存在する場合と同等の精度の結果を得ることは困難である。従って、低解像度で、遠近に関係なく画像処理が同じであれば、比較的遠くにある被写体に対しては適用不可能であり、遠近双方に対応するためには、高解像度の撮影手段を採用せざるをえない。しかし、比較的遠くの被写体に対して、被写体が近くに存在する場合と異なる画像処理により、低解像度であっても十分実用的な結果を得ることもできる。このように、遠近に応じて、画像処理を異ならせることにより、低解像度の撮影手段によって、遠近双方の被写体に対応可能となる。
【0010】
さらに、近距離用のセンサと遠距離用のセンサとを別個に設ける必要がなく、コストを削減できる。つまり、1つの画像処理装置だけで、遠近双方の画像処理を行なうことができる。
【0011】
この画像処理装置において、前記切替手段は、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードとして第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記画像処理のモードとして第2モードを設定し、前記画像処理手段は、前記第1モードの設定時に、前記映像に写った前記被写体の形態を認識する処理、動きを検出する処理、座標を求める処理、及び面積を求める処理の全部又は一部を実行し、前記第2モードの設定時に、前記映像から、前記被写体としての動体を検出する処理、撮影空間の輝度を求める処理、及び前記被写体の存在を検出する処理の全部又は一部を実行する。
【0012】
この構成によれば、近距離のための画像処理である第1モードでは、被写体の形態を認識する処理等が実行される。比較的低解像度の画像からでも、形態の認識は十分可能である。仮に、遠距離のための画像処理である第2モードにおいて、第1モードと同じ画像処理を行なっても、低解像度の画像からは、被写体の形態を精度良く認識することは困難である。しかし、第2モードでは、動体を検出する処理を実行する。動体の検出は、比較的低解像度の画像からも十分可能である。以上の結果、遠近双方において、比較的低解像度の撮影手段を採用できるので、コストを削減できる。
【0013】
ここで、近距離で被写体の形態を認識するためのセンサ(形態センサ)と遠距離で動体を検出するためのセンサ(動体センサ)とを設けることを想定する。
【0014】
このような場合、通常、形態センサとしては比較的高解像度の撮影手段が採用され、低解像度の撮影手段と比べて高価である。また、それに応じて、高解像度の撮影手段の制御装置(CPUなど)も高価になる。さらに、高解像度の画像では、処理量が多くなり、高速に出力結果を要求される場合は対応困難になる。
【0015】
また、このような場合、通常、動体センサとしては、焦電センサが採用される。焦電センサは、比較的低解像度の撮影手段より安価な場合もあるが、室温の変化を検出するものであるので、変化の発生は検知できるが、物体の座標を検出することができない。また、焦電センサでは、物体を検知して、その後、その物体が動かない場合は、その物体の存在を検知できない。
【0016】
以上のように、近距離のための形態センサと遠距離のための動体センサとを設ける場合には、本発明にはない不利益を伴うが、そのような不利益がない点で本発明は有利である。
【0017】
この画像処理装置において、前記画像処理手段は、前記第2モードの設定時に、前記動体を検出して追跡する処理を実行する。
【0018】
この構成によれば、動体を追跡して、動体をターゲットとした処理ないしは制御を行なうことができる。例えば、動体の追跡結果を受けて、電子機器の一部又は全部を常に動体に向くように制御できる。
【0019】
上記画像処理装置において、前記画像処理手段は、前記第1モードの設定時に、前記被写体の形態としての形状を認識する処理を実行する。
【0020】
この構成によれば、被写体の形状を入力とした情報処理を実行することができる。
【0021】
上記画像処理装置において、前記画像処理手段は、前記第1モードの設定時に、前記被写体の動きとしての回転動作を検出する処理を実行する。
【0022】
この構成によれば、被写体の回転を入力とした情報処理を実行することができる。
【0023】
上記画像処理装置において、前記切替手段は、光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との差分画像に写り込んだ前記被写体の面積を算出する面積算出手段と、前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、前記画像処理のモードを設定する設定手段と、を含む。
【0024】
この構成によれば、画像上の面積は、撮影手段と被写体との間の距離に相関するので、面積により、撮影手段と被写体との間の距離を容易に判断できる。
【0025】
また、被写体が遠くにあれば、発光手段の光が届かない、あるいは、届いても反射光が弱く撮影手段に検出されないので、発光手段の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、発光手段の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、発光手段が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0026】
上記画像処理装置において、前記画像処理手段は、前記画像処理のモードとしての第1モードでは、光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第1差分画像に前記画像処理を施し、前記画像処理のモードとしての第2モードでは、前記発光手段の消灯時の前記撮影手段による前記映像に対して前記画像処理を施し、前記切替手段は、前記第1モードでは、前記第1差分画像に写り込んだ前記被写体の面積を算出する第1面積算出手段と、前記第1モードでは、前記第1差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記第2モードを設定する第1設定手段と、前記第2モードでは、前記発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第2差分画像に写り込んだ前記被写体の面積を算出する第2面積算出手段と、前記第2モードでは、前記第2差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第2モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第2モードの設定時より短い場合に、前記第1モードを設定する第2設定手段と、を含む。
【0027】
この構成によれば、画像上の面積は、撮影手段と被写体との間の距離に相関するので、面積により、撮影手段と被写体との間の距離を容易に判断できる。
【0028】
また、被写体が遠くにあれば、発光手段の光が届かない、あるいは、届いても反射光が弱く撮影手段に検出されないので、発光手段の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、発光手段の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、発光手段が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0029】
さらに、第2モードの画像処理では、発光手段の発光は不要なところ、第1モードの画像処理で要求される発光手段を、画像処理モードの切り替えのために、第2モードで共用している。その結果、コストを削減できる。
【0030】
この画像処理装置において、前記第2モードで前記第2差分画像を得るための前記撮影手段の撮影周期は、前記第1モードで前記第1差分画像を得るための前記撮影手段の撮影周期より長く設定される。
【0031】
この構成によれば、第2モードでの画像処理のモードを切り替えるための撮影周期を短くしているので、消費電力を抑制することができる。画像処理のモードを切り替えるための判断は、画像処理と同等の周期で行なう必要はなく、実質的に性能に影響はない。
【0032】
本発明の第2の観点によれば、画像処理装置は、被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記撮影手段が出力した現在の画像と過去の画像との差分を算出する差分手段と、前記差分に基づいて、画素値の変化を検出する検出手段と、第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断する判断手段と、を備える。
【0033】
この構成によれば、第1閾値を設けているので、画素値の変化の頻度が高い動き、例えば、テレビジョンのちらつき等、周期的な比較的周波数の高い動きをノイズとして除去できる。また、第2閾値を設けているので、画素値の変化の頻度が低い動き、例えば、撮影環境(撮影空間や撮影手段の状態)の変化から発生した画像上のノイズを除去できる。
【0034】
本発明の第3の観点によれば、画像処理装置は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定する指特定手段と、所定の基準線に対する、前記指特定手段が特定した各指の傾き角を算出する傾角算出手段と、前記指特定手段が特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出する指角算出手段と、前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定する判定手段と、を備える。
【0035】
この構成によれば、指先と水かきとの間の画素に基づいて指を特定することになり、輪郭画像の重心により指を特定しないので、重心により指を特定する場合と比較して、精度良く指を特定でき、ひいてはより精度よく手の形状を判定できる。一般に、輪郭画像の重心と、被写体の重心と、は一致しない場合も多く、この場合に、重心により指を特定すると、認識の精度が低くなる。
【0036】
この画像処理装置において、前記指特定手段は、前記被写体の輪郭線上にある画素から、指先に相当する画素を特定する手段を含み、前記画像処理手段は、前記被写体の輪郭画像の重心から前記指先に相当する前記画素までの距離を算出する手段をさらに含み、前記判定手段は、前記隣り合う指と指とがなす前記角度、及び、前記指先に相当する前記画素までの前記距離に基づいて、手の形状を判定する。
【0037】
この構成によれば、指先と水かきとの間の画素に基づいて得られた、隣り合う指と指とがなす角度だけでなく、重心から指先に相当する画素までの距離に基づいて、手の形状を判断するので、より多様な手の形状を判定できる。例えば、手の形状が「チョキ」であることを判定するアルゴリズムに適用できる。
【0038】
本発明の第4の観点によれば、画像処理装置は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出する距離算出手段と、前記各画素までの前記距離に基づいて、手の形状を判定する判定手段と、を備える。
【0039】
この構成によれば、重心から輪郭線上の画素までの距離を求めるといった簡単な計算で、手の形状を判定できる。例えば、重心から輪郭線上の画素までの距離が、一定範囲内の場合に、手の形状が「グー」であることを判定できる。
【0040】
本発明の第5の観点によれば、画像処理装置は、被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出する長さ算出手段と、前記線分が、所定の基準線に対してなす角度を算出する角度算出手段と、前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とする回転検出手段と、を備える。
【0041】
この構成によれば、簡易、かつ、精度よく、手の回転角度を検出できる。
【0042】
本発明の第6の観点によれば、画像処理方法は、被写体を撮影する撮影手段が出力した映像を処理する画像処理方法であって、コンピュータが、前記撮影手段が出力した映像に対して画像処理を施すステップと、前記コンピュータが、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替えるステップと、を含む。
【0043】
この構成によれば、上記第1の観点による画像処理装置と同様の効果を奏する。
【0044】
本発明の第7の観点によれば、画像処理方法は、被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記撮影手段が出力した現在の画像と過去の画像との差分を算出するステップと、前記差分に基づいて、画素値の変化を検出するステップと、第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断するステップと、を含む。
【0045】
この構成によれば、上記第2の観点による画像処理装置と同様の効果を奏する。
【0046】
本発明の第8の観点によれば、画像処理方法は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定するステップと、所定の基準線に対する、前記指を特定する前記ステップが特定した各指の傾き角を算出するステップと、前記指を特定する前記ステップが特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出するステップと、前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定するステップと、を含む。
【0047】
この構成によれば、上記第3の観点による画像処理装置と同様の効果を奏する。
【0048】
本発明の第9の観点によれば、画像処理方法は、被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出するステップと、前記各画素までの前記距離に基づいて、手の形状を判定するステップと、を含む。
【0049】
この構成によれば、上記第4の観点による画像処理装置と同様の効果を奏する。
【0050】
本発明の第10の観点によれば、画像処理方法は、被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出するステップと、前記線分が、所定の基準線に対してなす角度を算出するステップと、前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とするステップと、を含む。
【0051】
この構成によれば、上記第5の観点による画像処理装置と同様の効果を奏する。
【0052】
本発明の第11の観点によれば、コンピュータプログラムは、上記第6から第10の観点による画像処理方法のうちのいずれか一をコンピュータに実行させる。
【0053】
本発明の第12の観点によれば、記録媒体は、上記第11の観点によるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0054】
なお、本明細書及び請求の範囲において、記録媒体は、例えば、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、CD(CD−ROM、Video−CDを含む)、DVD(DVD−Video、DVD−ROM、DVD−RAMを含む)、ROMカートリッジ、バッテリバックアップ付きのRAMメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ等を含む。
【0055】
本発明の第13の観点によれば、画像処理モジュールは、外部のコンピュータと接続される画像処理モジュールであって、MCU(Micro Controller Unit)と、前記MCUの内部及び/又は外部に配置され、前記MCUによって実行されるプログラム及びデータが格納されるメモリと、被写体を撮影するイメージセンサと、赤外光を発光する赤外発光ダイオードを含む発光部と、電源端子及び信号端子を含み、かつ、前記外部のコンピュータと接続するためのコネクタと、外部から前記電源端子に与えられる電源電圧を、前記MCU、前記メモリ、前記イメージセンサ、及び、前記発光部に供給するための電源線と、前記コネクタの前記信号端子と、前記MCUと、を接続する信号線と、前記MCUと、前記イメージセンサと、を接続するバスと、を備える。
【0056】
前記MCU又は前記イメージセンサは、前記発光部がスイッチングトランジスタを含む場合は、そのスイッチングトランジスタを制御して、前記赤外発光ダイオードを間欠的に駆動し、前記発光部がスイッチングトランジスタを含まない場合は、前記赤外発光ダイオードを直接制御して、前記赤外発光ダイオードを間欠的に駆動する。
【0057】
前記イメージセンサは、前記赤外発光ダイオードが赤外光を発光している時、及び、前記赤外発光ダイオードが赤外光を発光していない時、のそれぞれにおいて、撮影処理を実行し、赤外光の発光時の撮影画像と赤外光の非発光時の撮影画像との差分画像を生成して、その差分画像を、前記バスを介して、前記MCUに送信するものであり、あるいは、赤外光の発光時の第1撮影画像と赤外光の非発光時の第2撮影画像とを生成して、それら第1撮影画像及び第2撮影画像を、前記バスを介して、前記MCUに送信するものである。
【0058】
前記イメージセンサが前記差分画像を生成するものである場合において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記差分画像を生成し、前記MCUに送信し、前記差分画像は、複数の画素からなり、前記イメージセンサは、前記差分画像を前記MCUに送信する際に、1画素ずつ、シリアルに送信し、前記MCUは、前記イメージセンサから1画素を受信するたびに、所定の閾値と比較して、2値化を行い、前記メモリに格納し、前記メモリに格納された2値化された差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信するものであり、あるいは、前記MCUは、前記イメージセンサから前記差分画像を受け取って、前記メモリに格納し、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信するものである。
【0059】
前記イメージセンサが前記第1撮影画像及び第2撮影画像を生成するものである場合において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記第1撮影画像及び第2撮影画像を生成し、前記MCUに送信し、前記MCUは、前記第1撮影画像と前記第2撮影画像との差分画像を生成し、前記メモリに格納して、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信するものである。
【0060】
前記MCUによる前記解析対象差分画像の解析は、新たに前記解析対象差分画像を前記メモリに格納するたびに実行され、その解析結果が、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0061】
前記MCUによる前記解析対象差分画像の解析は、前記解析対象差分画像に写り込んだ前記被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、前記解析対象差分画像に写り込んだ前記被写体としての動体の検出、及び、前記被写体の存在の検出のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0062】
前記MCUは、前記解析対象差分画像の解析結果が所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0063】
前記MCU、前記メモリ、前記イメージセンサ、前記発光部、前記コネクタ、前記電源線、前記信号線、及び、前記バスは、所定の基板上にマウントされる。
【0064】
前記画像処理モジュールは、前記所定の基板上に固定されるレンズユニットをさらに備える。
【0065】
前記レンズユニットは、レンズと、前記レンズを保持するレンズホルダと、を含み、前記イメージセンサは、前記所定の基板上において、前記レンズの下部であって、前記レンズの光軸上であり、かつ、前記レンズホルダの内部に配置される。
【0066】
前記画像処理モジュールは、赤外光のみを透過する赤外光フィルタをさらに備え、前記赤外光フィルタは、前記レンズユニットの内部の、前記イメージセンサと前記レンズとの間に配置され、又は、前記レンズユニットの外部において、前記レンズを覆うように配置される。
【0067】
前記外部のコンピュータは、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、若しくは、LCD等のディスプレイ装置のコンピュータ、又は、パーソナルコンピュータであることができる。
【0068】
この構成によれば、撮影された被写体の画像を処理して(解析対象差分画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、解析対象差分画像に写り込んだ被写体としての動体の検出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータに出力する。このため、当該外部のコンピュータは、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータによる画像処理を不要とし、そのコンピュータのプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータあるいはそのコンピュータを搭載する外部機器は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0069】
また、被写体が遠くにあれば、発光部の光が届かない、あるいは、届いても反射光が弱くイメージセンサに検出されないので、発光部の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、発光部の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、発光部が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0070】
さらに、限定はされないが、この発明は、特に、被写体がイメージセンサに対して比較的近距離に位置している場合に有効である。なぜなら、赤外光を被写体に照射し、それをイメージセンサにより撮影するからである。もちろん、これは、被写体がイメージセンサに対して比較的遠距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。この場合、例えば、赤外発光ダイオードの発光強度を強くし、及び/又は、その数を増やす。
【0071】
本発明の第14の観点によれば、画像処理モジュールは、外部のコンピュータと接続される画像処理モジュールであって、MCU(Micro Controller Unit)と、前記MCUの内部及び/又は外部に配置され、前記MCUによって実行されるプログラム及びデータが格納されるメモリと、被写体を撮影するイメージセンサと、電源端子及び信号端子を含み、かつ、前記外部のコンピュータと接続するためのコネクタと、外部から前記電源端子に与えられる電源電圧を、前記MCU、前記メモリ、及び、前記イメージセンサに供給するための電源線と、前記コネクタの前記信号端子と、前記MCUと、を接続する信号線と、前記MCUと、前記イメージセンサと、を接続するバスと、を備える。
【0072】
前記イメージセンサは、一定時間間隔で、撮影処理を実行し、撮影画像を、前記バスを介して、前記MCUに送信する。
【0073】
前記MCUは、前記イメージセンサから前記撮影画像を受け取って、前記メモリに格納し、前記メモリに格納された前記撮影画像(以下、「解析対象画像」と呼ぶ。)を解析し、その解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する。
【0074】
前記MCUによる前記解析対象画像の解析は、新たに前記解析対象画像を前記メモリに格納するたびに実行され、その解析結果が、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0075】
前記MCUによる前記解析対象画像の解析は、前記解析対象画像に写り込んだ前記被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、前記解析対象画像に写り込んだ前記被写体としての動体の検出、前記解析対象画像に写り込んだ撮影空間の輝度の算出、前記解析対象画像に写り込んだ前記被写体の像の輝度の算出、及び、前記被写体の存在の検出のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0076】
前記MCUは、前記解析対象画像の解析結果が所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0077】
前記MCU、前記メモリ、前記イメージセンサ、前記コネクタ、前記電源線、前記信号線、及び、前記バスは、所定の基板上にマウントされる。
【0078】
前記画像処理モジュールは、前記所定の基板上に固定されるレンズユニットをさらに備える。
【0079】
前記レンズユニットは、レンズと、前記レンズを保持するレンズホルダと、を含み、前記イメージセンサは、前記所定の基板上において、前記レンズの下部であって、前記レンズの光軸上であり、かつ、前記レンズホルダの内部に配置される。
【0080】
前記外部のコンピュータは、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、若しくは、LCD等のディスプレイ装置のコンピュータ、又は、パーソナルコンピュータであることができる。
【0081】
この構成によれば、撮影された被写体の画像を処理して(解析対象画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、解析対象画像に写り込んだ被写体としての動体の検出、解析対象画像に写り込んだ撮影空間の輝度の算出、解析対象画像に写り込んだ被写体の像の輝度の算出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータに出力する。このため、当該外部のコンピュータは、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータによる画像処理を不要とし、そのコンピュータのプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータあるいはそのコンピュータを搭載する外部機器は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0082】
また、限定はされないが、この発明は、特に、被写体がイメージセンサに対して比較的遠距離に位置している場合に有効である。なぜなら、赤外発光ダイオードを設けずに、室内光及び/又は外光を反射する被写体を撮影するからである。もちろん、これは、被写体がイメージセンサに対して比較的近距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。
【0083】
本発明の第15の観点によれば、画像処理モジュールは、外部のコンピュータと接続される画像処理モジュールであって、MCU(Micro Controller Unit)と、前記MCUの内部及び/又は外部に配置され、前記MCUによって実行されるプログラム及びデータが格納されるメモリと、被写体を撮影するイメージセンサと、赤外光を発光する赤外発光ダイオードを含む発光部と、電源端子及び信号端子を含み、かつ、前記外部のコンピュータと接続するためのコネクタと、外部から前記電源端子に与えられる電源電圧を、前記MCU、前記メモリ、前記イメージセンサ、及び、前記発光部に供給するための電源線と、前記コネクタの前記信号端子と、前記MCUと、を接続する信号線と、前記MCUと、前記イメージセンサと、を接続するバスと、を備える。
【0084】
前記イメージセンサは、第1撮影モード及び第2撮影モードを有する。
【0085】
前記第1撮影モードにおいて、前記MCU又は前記イメージセンサは、前記発光部がスイッチングトランジスタを含む場合は、そのスイッチングトランジスタを制御して、前記赤外発光ダイオードを間欠的に駆動し、前記発光部がスイッチングトランジスタを含まない場合は、前記赤外発光ダイオードを直接制御して、前記赤外発光ダイオードを間欠的に駆動する。
【0086】
前記第1撮影モードにおいて、前記イメージセンサは、前記赤外発光ダイオードが赤外光を発光している時、及び、前記赤外発光ダイオードが赤外光を発光していない時、のそれぞれにおいて、撮影処理を実行し、赤外光の発光時の撮影画像と赤外光の非発光時の撮影画像との差分画像を生成して、その差分画像を、前記バスを介して、前記MCUに送信するものであり、あるいは、赤外光の発光時の第1撮影画像と赤外光の非発光時の第2撮影画像とを生成して、それら第1撮影画像及び第2撮影画像を、前記バスを介して、前記MCUに送信するものである。
【0087】
前記第1撮影モードにおいて、前記イメージセンサが前記差分画像を生成するものである場合(以下、「第1の場合」と呼ぶ。)において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記差分画像を生成し、前記MCUに送信する。
【0088】
前記第1の場合において、前記差分画像は、複数の画素からなり、前記イメージセンサは、前記差分画像を前記MCUに送信する際に、1画素ずつ、シリアルに送信し、前記MCUは、前記イメージセンサから1画素を受信するたびに、所定の第1の閾値と比較して、2値化を行い、前記メモリに格納し、前記メモリに格納された2値化された差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析するものであり、あるいは、前記第1の場合において、前記MCUは、前記イメージセンサから前記差分画像を受け取って、前記メモリに格納し、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析するものである。
【0089】
前記第1撮影モードにおいて、前記イメージセンサが前記第1撮影画像及び第2撮影画像を生成するものである場合(以下、「第2の場合」と呼ぶ。)において、前記イメージセンサは、前記赤外発光ダイオードの間欠的な駆動に対応した一定周期で、前記第1撮影画像及び第2撮影画像を生成し、前記MCUに送信する。
【0090】
前記第2の場合において、前記MCUは、前記第1撮影画像と前記第2撮影画像との差分画像を生成し、前記メモリに格納して、前記メモリに格納された前記差分画像(以下、「解析対象差分画像」と呼ぶ。)を解析するものである。
【0091】
前記第1撮影モードにおいて、前記MCUによる前記解析対象差分画像の解析は、新たに前記解析対象差分画像を前記メモリに格納するたびに実行される。
【0092】
前記第2撮影モードにおいて、前記イメージセンサは、一定時間間隔で、撮影処理を実行し、撮影画像を、前記バスを介して、前記MCUに送信する。
【0093】
前記第2撮影モードにおいて、前記MCUは、前記イメージセンサから前記撮影画像を受け取って、前記メモリに格納し、前記メモリに格納された前記撮影画像(以下、「解析対象画像」と呼ぶ。)を解析する。
【0094】
前記第2撮影モードにおいて、前記MCUによる前記解析対象画像の解析は、新たに前記解析対象画像を前記メモリに格納するたびに実行される。
【0095】
前記MCUは、第1画像処理モードと第2画像処理モードとを有する。
【0096】
前記第1画像処理モードにおいて、前記MCUによる前記解析対象差分画像の解析は、前記解析対象差分画像に写り込んだ前記被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、前記解析対象差分画像に写り込んだ前記被写体としての動体の検出、及び、前記被写体の存在の検出のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0097】
前記第1画像処理モードにおいて、前記MCUは、前記解析対象差分画像の解析結果が第1の所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0098】
前記第2画像処理モードにおいて、前記MCUによる前記解析対象画像の解析は、前記解析対象画像から前記被写体としての動体を検出する処理、前記解析対象画像に写り込んだ撮影空間の輝度を求める処理、前記解析対象画像に写り込んだ被写体の像の輝度を求める処理、及び、前記解析対象画像から前記被写体の存在を検出する処理のうちの全部又は一部を含み、解析結果として、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信される。
【0099】
前記第2画像処理モードにおいて、前記MCUは、前記解析対象画像の解析結果が第2の所定の条件を満足した時に、割込信号又はコマンドを、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信する機能を搭載することが可能である。
【0100】
前記第1画像処理モードでは、前記イメージセンサは、前記第1撮影モードで動作し、前記MCUは、前記第1撮影モードで得られた前記解析対象差分画像の解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信し、前記解析対象差分画像に基づいて、前記第1画像処理モードと前記第2画像処理モードとの間の切り替えを行う。
【0101】
前記第2画像処理モードでは、前記イメージセンサは、前記第1撮影モード及び前記第2撮影モードで動作し、前記MCUは、前記第2撮影モードで得られた前記解析対象画像の解析結果を、前記信号線及び前記コネクタの前記信号端子を介して、前記外部のコンピュータに送信し、前記第1撮影モードで得られた前記解析対象差分画像に基づいて、前記第1画像処理モードと前記第2画像処理モードとの間の切り替えを行う。
【0102】
前記第1画像処理モードにおいて、前記MCUは、前記解析対象差分画像に写り込んだ像の面積を算出して、その面積と所定の第2の閾値を比較し、その面積が前記所定の第2の閾値を超えている場合、前記第1画像処理モードを維持し、その面積が前記所定の第2の閾値以下の場合、前記第1画像処理モードから前記第2画像処理モードへ移行する。
【0103】
前記第2画像処理モードにおいて、前記MCUは、前記解析対象差分画像に写り込んだ像の面積を算出して、その面積と前記所定の第2の閾値を比較し、その面積が前記所定の第2の閾値以下の場合、前記第2画像処理モードを維持し、その面積が前記所定の第2の閾値を超えている場合、前記第2画像処理モードから前記第1画像処理モードへ移行する。
【0104】
前記第2画像処理モードにおいて、前記第1撮影モードにおける前記赤外発光ダイオードを間欠的に駆動する際の周期は、前記第1画像処理モードでの周期より長い、又は、同じである。
【0105】
前記MCU、前記メモリ、前記イメージセンサ、前記発光部、前記コネクタ、前記電源線、前記信号線、及び、前記バスは、所定の基板上にマウントされる。
【0106】
前記画像処理モジュールは、前記所定の基板上に固定されるレンズユニットをさらに備える。
【0107】
前記レンズユニットは、レンズと、前記レンズを保持するレンズホルダと、を含み、前記イメージセンサは、前記所定の基板上において、前記レンズの下部であって、前記レンズの光軸上であり、かつ、前記レンズホルダの内部に配置される。
【0108】
前記画像処理モジュールは、赤外光のみを透過する赤外光フィルタをさらに備え、前記赤外光フィルタは、前記レンズユニットの内部の、前記イメージセンサと前記レンズとの間に配置され、又は、前記レンズユニットの外部において、前記レンズを覆うように配置される。
【0109】
前記外部のコンピュータは、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、若しくは、LCD等のディスプレイ装置のコンピュータ、又は、パーソナルコンピュータであることができる。
【0110】
この構成によれば、撮影された被写体の画像を処理して(第1画像処理モードでは、解析対象差分画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、解析対象差分画像に写り込んだ被写体としての動体の検出、及び、被写体の存在の検出、第2画像処理モードでは、解析対象画像から被写体としての動体を検出する処理、解析対象画像に写り込んだ撮影空間の輝度を求める処理、解析対象画像に写り込んだ被写体の像の輝度の算出、及び、解析対象画像から被写体の存在を検出する処理)、その処理結果を、外部のコンピュータに出力する。このため、当該外部のコンピュータは、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータによる画像処理を不要とし、そのコンピュータのプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータあるいはそのコンピュータを搭載する外部機器は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0111】
また、解析対象差分画像に写り込んだ像の面積に基づいて、被写体とイメージセンサとの間の遠近を判断して、第1画像処理モードと第2画像処理モードとを切り替える。つまり、画像上の被写体の面積は、イメージセンサと被写体との間の距離に相関するので、面積により、イメージセンサと被写体との間の遠近を判断できる。
【0112】
このように、被写体とイメージセンサとの間の距離に応じて、画像処理のモードが切り替えられるので、遠近に応じて、自動的に画像処理を異ならせることができる。このため、被写体がイメージセンサから近くに存在する場合の画像処理を、被写体がイメージセンサから比較的遠くに存在する場合の画像処理と異ならせることを要求する電子機器に、容易に対応可能となる。
【0113】
さらに、イメージセンサとして、比較的低解像度のものを採用でき、コストを削減できる。近くの被写体に対しては、低解像度であっても、画像処理により、その被写体の詳細な解析が可能であり、十分実用的な結果を得ることができる。一方、比較的遠くの被写体に対しては、低解像度の場合、被写体が近くに存在する場合と同じ画像処理により、被写体が近くに存在する場合と同等の精度の結果を得ることは困難である。従って、低解像度で、遠近に関係なく画像処理が同じであれば、比較的遠くにある被写体に対しては適用不可能であり、遠近双方に対応するためには、高解像度のイメージセンサを採用せざるをえない。しかし、比較的遠くの被写体に対して、被写体が近くに存在する場合と異なる画像処理により、低解像度であっても十分実用的な結果を得ることもできる。このように、遠近に応じて、画像処理を異ならせることにより、低解像度のイメージセンサによって、遠近双方の被写体に対応可能となる。
【0114】
例えば、近距離のための画像処理である第1画像処理モードでは、被写体の形状を認識する処理が実行される。比較的低解像度の画像からでも、形状の認識は十分可能である。仮に、遠距離のための画像処理である第2画像処理モードにおいて、第1画像処理モードと同じ画像処理を行なっても、低解像度の画像からは、被写体の形状を精度良く認識することは困難である。しかし、第2画像処理モードでは、動体を検出する処理を実行する。動体の検出は、比較的低解像度の画像からも十分可能である。以上の結果、遠近双方において、比較的低解像度のイメージセンサを採用できるので、コストを削減できる。
【0115】
さらに、近距離用のセンサと遠距離用のセンサとを別個に設ける必要がなく、コストを削減できる。
【0116】
ここで、近距離で被写体の形態(形状、模様、若しくは色彩、又は、それらの任意の組合せ)を認識するためのセンサ(形態センサ)と遠距離で動体を検出するためのセンサ(動体センサ)とを設けることを想定する。
【0117】
このような場合、通常、形態センサとしては比較的高解像度のイメージセンサが採用され、低解像度のイメージセンサと比べて高価である。また、それに応じて、高解像度のイメージセンサの制御装置(CPUなど)も高価になる。さらに、高解像度の画像では、処理量が多くなり、高速に出力結果を要求される場合は対応困難になる。
【0118】
また、このような場合、通常、動体センサとしては、焦電センサが採用される。焦電センサは、比較的低解像度のイメージセンサより安価な場合もあるが、室温の変化を検出するものであるので、変化の発生は検知できるが、物体の座標を検出することができない。また、焦電センサでは、物体を検知して、その後、その物体が動かない場合は、その物体の存在を検知できない。
【0119】
以上のように、近距離のための形態センサと遠距離のための動体センサとを設ける場合には、本発明にはない不利益を伴うが、そのような不利益がない点で本発明は有利である。
【0120】
さらに、第2画像処理モードでは、発光部の発光は不要なところ、第1画像処理モードで要求される発光部を、画像処理モードの切り替えのために、第2画像処理モードで共用している。その結果、コストを削減できる。
【0121】
さらに、第2画像処理モードにおいて、第1撮影モードにおける赤外発光ダイオードを間欠的に駆動する際の周期を、第1画像処理モードの場合より長くすることによって、消費電力を抑制することができる。画像処理のモードを切り替えるための判断は、画像処理と同等の周期で行なう必要はなく、実質的に性能に影響はない。
【0122】
本発明の第16の観点によれば、電子機器は、被写体を撮影する撮影手段が出力した画像を処理する画像処理手段と、前記画像処理手段の処理結果に基づいて所定の機器を制御する制御手段と、を備え、前記画像処理手段は、前記画像を複数のブロックに分割し、前記ブロックごとに、画素の変化を検出し、前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器を制御する。
【0123】
この構成によれば、画像のブロックごとに、写り込んだ像の変化、つまり、被写体の動きを検出することができる。このため、制御手段は、所定の機器又は所定の機器の一部を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域(実空間の)に向ける制御又は向けない制御を行なうことができる。また、制御手段は、各ブロックに対応する各領域(実空間の)に向けた所定の機器の出力を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域に対して行う又は行なわない制御を行なうことができる。
【0124】
例えば、前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器の出力、前記所定の機器の向き、又は、前記所定の機器の一部の向きを制御する。
【0125】
上記電子機器において、前記撮影手段は、前記被写体を俯瞰撮影できる位置に設置され、前記所定の機器は、天井に設置される。
【0126】
この構成によれば、俯瞰撮影が行われるので、水平方向からの撮影と比較して、複数の被写体が重なって写り込む頻度が少なく、複数の被写体の重なりの判断を省くこともできるので、簡易な処理により機器を制御できる。その結果、天井に設置された機器の制御に好適である。
【0127】
もちろん、複数の被写体の重なりの判断を行ってもよい。なお、水平方向から撮影すると、複数の被写体が1つの像として画像に存在することになる場合であっても(例えば、撮影手段の光軸上に、複数の被写体が存在する場合)、俯瞰撮影する場合は、それらが、分離した像として画像に存在することも多い。
【0128】
この電子機器において、前記所定の機器は、天井に設置される空気調和装置であり、この空気調和装置は、風向きを調整するための風向調整機構を有し、前記制御手段は、前記ブロックごとの画素の変化に応じて、前記風向調整機構を制御する。
【0129】
このように、本発明は、天井に設置される空気調和装置の制御に好適である。
【図面の簡単な説明】
【0130】
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。
【0131】
【図1】本発明の実施の形態による画像処理モジュール1の電気的構成を示す図である。
【図2】図1のMCU3による全体処理の流れの一例を示すフローチャートである。
【図3】図2のステップS707のイメージセンサ5の制御の流れの一例を示すフローチャートである。
【図4】図3のステップS27の差分画像データ取得処理の流れの一例を示すフローチャートである。
【図5】図3のステップS719の画像処理モードの切替処理の流れの一例を示すフローチャートである。
【図6】図3のステップS713の動体検出モードでの処理の流れの一例を示すフローチャートである。
【図7】図3のステップS711の輪郭検出モードでの処理の流れの一例を示すフローチャートである。
【図8】図7のステップS195の変曲点の検出処理の流れの一例を示すフローチャートである。
【図9】図7のステップS197の輪郭画像の形状を判定する処理の流れの一例を示すフローチャートである。
【図10】図9のステップS261の輪郭情報を算出する処理の流れの一例を示すフローチャートである。
【図11】図9のステップS263の指先を検出する処理の流れの一例を示すフローチャートである。
【図12】図9のステップS265の「パー」を判定する処理の流れの一例を示すフローチャートである。
【図13】図9のステップS267の「チョキ」を判定する処理の流れの一例を示すフローチャートである。
【図14】図9のステップS269の「グー」を判定する処理の流れの一例を示すフローチャートである。
【図15】図7のステップS199の輪郭画像の回転を検出する処理の流れの一例を示すフローチャートである。
【図16】図7のステップS193で検出される偏角θjの説明図である。
【図17】図7のステップS195で検出される変曲点及び図9のステップS263で検出される指先の説明図である。
【図18】図10のステップS309で作成される回転テーブルの例示図である。
【図19】輪郭画像の回転を検出する処理の説明図である。
【図20】(a)図1のイメージセンサ5が出力するビジー信号のタイミング図である。(b)図1のMCU3が出力するリード信号のタイミング図である。(c)図1のMCU3が読み込む画素データDのタイミング図である。
【図21】本発明の実施の形態の変形例におけるMCU3の全体処理の流れの一例を示すフローチャートである。
【図22】(a)図1のコンピュータ13が出力するスレイブセレクト信号のタイミング図である。(b)図1のMCU3とコンピュータ13とを接続するデータ入力線上の信号のタイミング図である。(c)図1のMCU3とコンピュータ13とを接続するデータ出力線上の信号のタイミング図である。
【図23】図1の画像処理モジュール1の詳細な電気的構成を示す図である。
【図24】(a)図1の画像処理モジュール1の平面図である。(b)図1の画像処理モジュール1の側面図である。(c)図1の画像処理モジュール1の外観平面図である。
【図25】図24(a)のレンズユニット62のA−A線による断面図である。
【発明を実施するための形態】
【0132】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、本明細書において、数字の後尾に付した「h」は、16進数であることを示す。
【0133】
図1は、本発明の実施の形態による画像処理モジュール1の電気的構成を示す図である。図1を参照して、この画像処理モジュール1は、MCU(Micro Controler Unit)3、イメージセンサ5、及び赤外発光ダイオード7を含む。MCU3は、メモリ9を含む。イメージセンサ5は、カラー及びグレースケールのいずれでも使用でき、また、その画素数も任意にものを使用できるが、本実施の形態では、グレースケールで、64×64画素の比較的低解像度のものを使用する。赤外発光ダイオード7は、赤外光を発光する。赤外発光ダイオード7の数は、1つに限定されず、画像処理モジュール1の仕様に応じて、複数設けることができる。また、イメージセンサ5としては、CMOSイメージセンサやCCDイメージセンサ等を採用できる。
【0134】
MCU3のメモリ9は、RAM、ROM、及びフラッシュメモリ等の半導体メモリであり、プログラム格納領域、データ格納領域、作業領域、及び一時格納領域等として利用される。MCU3は、メモリ9に格納されたプログラムに従って、後述のフローチャートで示される各種処理を実行する。なお、仕様に応じて、記録媒体として、メモリ9の他、CD(CD−ROM、Video−CDを含む)やDVD(DVD−Video、DVD−ROM、DVD−RAMを含む)等の光ディスク、半導体メモリを搭載したメモリカード・メモリカートリッジ・USBメモリ、ハードディスク、光磁気ディスク、磁気テープ、及び、フレキシブルディスク等を、MCU3に接続することもできる。そして、これらにプログラムやデータなどを格納することもできる。
【0135】
画像処理モジュール1は、電子機器11と接続されて使用される。電子機器11は、コンピュータ13を含む。電子機器11は、例えば、エアコンディショナ・テレビジョン・オーディオ機器・フォトフレーム・照明機器等といった家庭電化製品、電子玩具・ビデオゲーム機等といったエンターテインメント機器、セキュリティ機器、カーナビゲーション等の車載電子機器、LCD等のディスプレイ装置、及び、パーソナルコンピュータ等であるが、特に限定されるものではない。
【0136】
MCU3は、メモリ9に格納されたプログラムに従って、独自に又は電子機器11のコンピュータ13の命令を受けて、イメージセンサ5を制御する。イメージセンサ5は、MCU3の制御により、被写体を撮影し、また、赤外発光ダイオード7を制御する。
【0137】
なお、画像処理モジュール1及び電子機器11からなるシステムを、電子機器と呼び、電子機器11を機器11と呼ぶこともある。また、画像処理モジュール1を画像処理装置1と呼ぶ事もある。
【0138】
さて、次に、本実施の形態の概要を説明する。画像処理モジュール1は、2つの画像処理モードを搭載する。その1つは、輪郭検出モード(第1画像処理モード)、他の一つは、動体検出モード(第2画像処理モード)である。画像処理モジュール1は、被写体の遠近に応じて、輪郭検出モード又は動体検出モードのいずれかに自動的に入る。つまり、画像処理モジュール1は、被写体が近くに存在すると判断したときは、輪郭検出モードに入り、被写体が遠くに存在すると判断したときは、動体検出モードに入る。
【0139】
輪郭検出モードについて説明する。イメージセンサ5は、赤外発光ダイオード7の点灯時及び消灯時に撮影処理を実行し、点灯時画像と消灯時画像との差分画像を生成して、MCU3に与える。赤外発光ダイオード7は、間欠的に赤外光を発光する。赤外光の点灯時間及び消灯時間を1周期と考えると、イメージセンサ5は、この1周期ごとに、差分画像の生成処理を実行する。よって、MCU3は、1周期ごとに、以下に示す差分画像の解析処理を行なう。
【0140】
MCU3は、差分画像に基づいて、手の輪郭を検出し、グー、チョキ、パー、及び不定のいずれかを判定する。また、MCU3は、手の回転角度を検出する。さらに、MCU3は、輪郭画像の座標及び面積を算出する。MCU3は、これらの情報を電子機器11のコンピュータ13に送信する。コンピュータ13は、電子機器11の仕様に応じて、これらの情報を処理する。
【0141】
例えば、コンピュータ13は、輪郭画像の座標に従って、電子機器11としての表示装置のカーソルを制御したり、グー、チョキ、及びパーをコマンドと認識して、それらに割り当てられた処理を実行したり、手の回転角度に応じた処理を実行したり(例えば、手の回転角度に応じて仮想又は現実のダイヤルを回転)、輪郭画像の面積に応じた処理を実行したり、輪郭画像の座標の軌道に応じた処理を実行する。その結果、ユーザは、従来のタッチパネルのように、パネル等に触れることなく、電子機器11を操作することができる。
【0142】
また、例えば、コンピュータ13は、輪郭画像の座標の動きに応じて、電子機器11としての表示装置の画面を制御する。この場合、例えば、コンピュータ13は、輪郭画像の座標が水平右方向に移動した場合、ユーザが手を水平右方向に振ったと判断して、ページを左から右にめくったように、画面を切り替えたり、あるいは、左から右へ表示画像をスライドさせ、画面を切り替える。同様にして、コンピュータ13は、座標の水平左方向移動、垂直上方向移動、及び垂直下方向移動などに応じて、画面を切り替える。
【0143】
動体検出モードについて説明する。イメージセンサ5は、赤外光の消灯時に撮影処理を実行し、消灯時画像(以下、「動体検出用画像」と呼ぶ事もある。)をMCU3に与える。イメージセンサ5は、動体検出用画像を得るための撮影処理(以下、「動体検出撮影処理」と呼ぶ事もある。)を一定時間間隔で実行する。
【0144】
MCU3は、動体検出用画像に基づいて、動体を検出し、追跡する。また、MCU3は、動体の座標を算出する。さらに、MCU3は、撮影された空間の輝度を算出する。さらに、MCU3は、動体としての被写体が検出されたが、その後、検出されなくなった場合に、被写体が撮影空間に存在しなくなったのか、あるいは、その被写体が撮影空間に存在するが静止したのか、を判定する。例えば、現在の画像と過去の画像とを比較することにより、このような判定が可能である。MCU3は、これらの情報を電子機器11のコンピュータ13に送信する。
【0145】
コンピュータ13は、電子機器11の仕様に応じて、これらの情報を処理する。例えば、コンピュータ13は、動体をターゲットとした処理ないしは制御を実行する。この場合、例えば、コンピュータ13は、電子機器11としての表示装置の画面を動体の方に向けたり、電子機器11としてのエアコンディショナの送風口を動体の方に向ける。
【0146】
また、例えば、コンピュータ13は、動体が存在しない状態から動体が存在する状態への変化をトリガとして、電子機器11を起動又は停止する。例えば、コンピュータ13は、動体が存在する状態から動体が存在しない状態への変化をトリガとして、電子機器11を起動又は停止する。
【0147】
画像処理モードの切り替えについて説明する。輪郭検出モードでは、MCU3は、輪郭画像の面積が、所定の閾値THBを超えている場合は、被写体が近くに存在すると判断し、輪郭検出モードを維持し、輪郭画像の面積が、所定の閾値THB以下の場合は、被写体が遠くに存在すると判断し、動体検出モードに移行する。
【0148】
一方、動体検出モードでは、イメージセンサ5は、動体検出用画像を出力した後、次の動体検出撮影処理の開始前に、輪郭検出モードの撮影処理と同じ処理を実行して、差分画像を生成する。MCU3は、差分画像中の輪郭画像の面積が、所定の閾値THBを超えている場合は、被写体が近くに存在すると判断し、輪郭検出モードに移行し、輪郭画像の面積が、所定の閾値THB以下の場合は、被写体が遠くに存在すると判断し、動体検出モードを維持する。
【0149】
さて、次に、図1の画像処理モジュール1を構成するハードウェアの詳細を説明する。
【0150】
図23は、図1の画像処理モジュール1の詳細な電気的構成を示す図である。図23を参照して、画像処理モジュール1は、基板58を備える。基板58には、MCU3、イメージセンサ5、赤外発光ダイオード7、コネクタ30、コンデンサ31,32,34,36,40、抵抗素子38,48、及び、NPN型トランジスタ44がマウントされる。
【0151】
MCU3とイメージセンサ5とはバス56によって接続される。このバス56を通じて、MCU3とイメージセンサ5との間で、信号やデータの送受信が行なわれる。バス56は、ビジー信号のための信号線(後述の図20(a)参照)、リード信号のための信号線(後述の図20(b)参照)、及び、画素データDのためのデータ線(後述の図20(c)参照)等を含む。
【0152】
MCU3には、電源線52から電源電圧Vccが与えられる。電源線52とグラウンドとの間には、3つのバイパスコンデンサ34が並列に接続され、ノイズを除去する。また、MCU3の内部に設けられたレギュレータ(図示せず)の発振を防止するため、並列に接続されたコンデンサ36が設けられる。ただし、これらのコンデンサ36は、MCU3の仕様に応じて、不要な場合もある。
【0153】
さらに、電源線52とグラウンドとの間に、抵抗素子38及びコンデンサ40が直列に接続され、遅延回路を構成する。抵抗素子38及びコンデンサ40の接続点は、MCU3のリセット端子に接続される。MCU3は、リセット端子の電位がローレベルになった時に、リセット処理を実行する。遅延回路は、電源投入時に直ちにリセット端子がハイレベルになることを防止するものであり、MCU3の仕様に応じて不要な場合もある。
【0154】
イメージセンサ5には、電源線52から電源電圧Vccが与えられる。電源線52とグラウンドとの間には、2つのバイパスコンデンサ31が並列に接続され、ノイズを除去する。また、電源線50とグラウンドとの間に、赤外発光ダイオード7及び抵抗素子48が直列に接続される。そして、トランジスタ44のベースは、イメージセンサ5の制御端子に接続される。イメージセンサ5の制御端子がハイレベルのときにトランジスタ44はオンし、これにより、赤外発光ダイオード7がオンして、赤外光を発光する。一方、イメージセンサ5の制御端子がローレベルのときにトランジスタ44はオフし、これにより、赤外発光ダイオード7がオフして、赤外光の発光を停止する。このように、トランジスタ44は、スイッチングトランジスタとして機能すると共に、それがオンのときに、赤外発光ダイオード7に流れる電流を増幅する。ただし、トランジスタ44は、必須のものではなく、イメージセンサ5の制御端子に、赤外発光ダイオード7のアノードを直接接続することもできる。
【0155】
コネクタ30の電源端子T1(後述の図24(a)参照)は、電源線50に接続される。外部の電子機器11から電源端子T1に電源電圧Vcc(例えば3.3V)が与えられ、電源線50に供給される。また、コネクタ30の電源端子T2(後述の図24(a)参照)は、電源線52に接続される。外部の電子機器11から電源端子T2に電源電圧Vcc(例えば3.3V)が与えられ、電源線52に供給される。電源線52とグラウンドとの間には、バイパスコンデンサ32が設けられ、ノイズを除去する。また、コネクタ30のグラウンド端子T7(後述の図24(a)参照)は、グラウンドに接続される。
【0156】
また、コネクタ30の端子T3〜T6は、信号線54に接続され、信号線54は、MCU3に接続される。本実施の形態では、信号線54は、4本の信号線を含む。信号線54の一本は、コネクタ30の端子T3(後述の図24(a)参照)に接続される。コンピュータ13は、端子T3にクロック信号を与え、MCU3との同期をとる。信号線54の他の一本は、コネクタ30の端子T4(後述の図24(a)参照)に接続される。コンピュータ13は、端子T4にスレイブセレクト信号を与える(後述の図22(a)参照)。信号線54のさらに他の一本(すなわち、後述の図22(b)のデータ入力線)は、コネクタ30の端子T5(後述の図24(a)参照)に接続される。信号線54のさらに他の一本(すなわち、後述の図22(c)のデータ出力線)は、コネクタ30の端子T6(後述の図24(a)参照)に接続される。
【0157】
図24(a)は、図1の画像処理モジュール1の平面図である。図24(b)は、図1の画像処理モジュール1の側面図である。図24(c)は、図1の画像処理モジュール1の外観平面図である。図24(a)及び図24(b)を参照して、端子T1〜T7を有するコネクタ30、赤外発光ダイオード7、MCU3、及び、レンズユニット62は、この順番で基板58上に直線上に配置される。もちろん、これらの配置及び順番は、これに限定されるものではなく、任意に配置されてよい。
【0158】
また、図24(c)も参照して、コネクタ30、赤外発光ダイオード7、MCU3、及び、レンズユニット62がマウントされた基板58は、ハウジング60内に配置される。ハウジング60において、赤外発光ダイオード7の上部には、断面ラッパ状の開口が形成され、ここから赤外発光ダイオード7の発光部が外部に露出する。さらに、ハウジング60において、レンズユニット62の上部には、開口66を覆うように、つまり、筒状部材70(後述の図25参照)のヘッド(レンズ72)を覆うように、赤外光のみを透過する赤外光フィルタ64が設けられる。これにより、レンズユニット62の内部に配置されたイメージセンサ5には、赤外光のみが入射する。
【0159】
なお、ハウジング60は、必須のものではない。ハウジング60を設けない場合には、赤外光フィルタ64は、例えば、赤外光フィルタ64を保持する専用の基台を作成し、これを基板58に固定する。また、例えば、後述の図25の基台68を設計変更して赤外光フィルタ64の基台として用いてもよい。これらの固定方法は、ハウジング60を設ける場合であっても利用可能である。
【0160】
図25は、図24(a)のレンズユニット62のA−A線による断面図である。図25を参照して、レンズユニット62は、凸レンズ72及びそれを保持するレンズホルダ73を含む。レンズホルダ73は、基台68及び筒状部材70を含む。基台68及び筒状部材70の内部は空洞である。筒状部材70のヘッド部の上端には、開口66(図24(a)参照)が形成される。この開口66の直下において、筒状部材70は、レンズ72を保持する。
【0161】
また、筒状部材70の胴部の外周には、ねじ山(雄ねじ)が形成される。一方、基台68の内周は、筒状部材70の胴部のねじ山と螺合可能なように、ねじ山(雌ねじ)が形成される。これにより、基板58に対して、筒状部材70を上下動させることができる。また、基台68は、基板58上に固定される。
【0162】
イメージセンサ5は、レンズ72の光軸74がイメージセンサ5の中心を通るように、基台68の内部で基板58に固定される。そして、レンズ72のベストフォーカス領域が、イメージセンサ5の撮影面にくるように、筒状部材70が基台68に固定される。このような調整は、筒状部材70を上下動させることにより行い、筒状部材70が接着剤により最適な位置で基台68に固定される。このような調整は、製造する際のレンズ72の形状のばらつき、レンズ72を筒状部材70へ固定する際のばらつき、及び、製造する際のイメージセンサ5のばらつき等を吸収するために行なわれる。
【0163】
さて、次に、フローチャートを用いて画像処理モジュール1のMCU3の処理の詳細を説明する。
【0164】
図2は、図1のMCU3による全体処理の流れの一例を示すフローチャートである。図2を参照して、ステップS701にて、MCU3は、レジスタや変数等を初期化する。なお、後述する変数Nは0に初期化される。ステップS703にて、MCU3は、コンピュータ13が出力するスレイブセレクト信号の立下りエッジを検出したか否かを判断し、検出していない場合ステップS703に戻り、検出した場合ステップS705に進む。ステップS705にて、MCU3は、コンピュータ13から開始コマンドを受信したか否かを判断し、受信していない場合ステップS705に戻り、受信した場合ステップS707に進む。なお、開始コマンドは、MCU3とコンピュータ13とを接続するデータ入力線を介して与えられる。また、コンピュータ13は、開始コマンドをMCU3に送信した後、スレイブセレクト信号をハイレベルにする。
【0165】
ステップS707にて、MCU3は、イメージセンサ5の制御を実行する。ステップS709にて、MCU3は、画像処理モードが、輪郭検出モードの場合ステップS711に進み、動体検出モードの場合ステップS713に進む。ステップS711では、MCU3は、輪郭検出処理を実行する。一方、ステップS713では、MCU3は、動体検出処理を実行する。
【0166】
ステップS714では、MCU3は、スレイブセレクト信号の立下りエッジを検出したか否かを判断し、検出した場合ステップS715に進み、それ以外はステップS714に戻る。ステップS715にて、MCU3は、コンピュータ13からリードコマンドを受信したか否かを判断し、受信していない場合ステップS715に戻り、受信した場合ステップS717に進む。なお、リードコマンドは、MCU3とコンピュータ13とを接続するデータ入力線を介して与えられる。ステップS717では、MCU3は、ステップS711又はS713の結果を、コンピュータ13に送信する。なお、コンピュータ13は、MCU3からデータを受け取った後、スレイブセレクト信号をハイレベルにする。ステップS719にて、MCU3は、画像処理モードの切替処理を実行して、ステップS707に進む。
【0167】
図3は、図2のステップS707のイメージセンサ5の制御の流れの一例を示すフローチャートである。図3を参照して、ステップS3にて、MCU3は、現在の画像処理モードが輪郭検出モードである場合ステップS5に進み、動体検出モードである場合ステップS29に進む。コンピュータ13は、一定時間間隔で(例えば、1/30秒)、該指示をMCU3に与える。
【0168】
ステップS5にて、MCU3は、イメージセンサ5の撮影モードを差分モード(第1撮影モード)に設定する。ステップS7にて、MCU3は、イメージセンサ5の露光時間ETを一定値に設定する。ステップS9にて、MCU3は、イメージセンサ5に対して、赤外発光ダイオード7の点灯を指示する。すると、イメージセンサ5は、赤外発光ダイオード7をオンし、これにより、赤外発光ダイオード7は、赤外光を発光する。
【0169】
ステップS11にて、MCU3は、イメージセンサ5の露光(撮影)開始を指示する。ステップS13にて、MCU3は、露光時間ETが終了した場合ステップS15に進み、終了していない場合ステップS13に戻る。ステップS15にて、MCU3は、イメージセンサ5の露光(撮影)終了を指示する。
【0170】
ステップS17にて、MCU3は、赤外発光ダイオード7の点灯時間が終了した場合ステップS19に進み、終了していない場合ステップS17に戻る。ステップS19にて、MCU3は、イメージセンサ5に対して、赤外発光ダイオード7の消灯を指示する。すると、イメージセンサ5は、赤外発光ダイオード7をオフし、これにより、赤外発光ダイオード7は、発光を停止する。
【0171】
ステップS21にて、MCU3は、イメージセンサ5の露光(撮影)開始を指示する。ステップS23にて、MCU3は、露光時間ETが終了した場合ステップS25に進み、終了していない場合ステップS23に戻る。ステップS25にて、MCU3は、イメージセンサ5の露光(撮影)終了を指示する。
【0172】
ステップS27にて、MCU3は、イメージセンサ5から、赤外発光ダイオード7の点灯時画像と消灯時画像との差分画像データ(64×64の画素データ)を取得し、順次2値化して、配列PD[X][Y](画素データPD[X][Y]と呼ぶこともある。X=0〜63、Y=0〜63)に格納して、リターンする。
【0173】
図4は、図3のステップS27の差分画像データ取得処理の流れの一例を示すフローチャートである。図20(a)〜図20(c)は、差分画像データ取得処理の際の信号送受信の説明図である。
【0174】
図4を参照して、ステップS61にて、MCU3は、変数X(=0〜63),Y(=0〜63),及びPD[X][Y]に、0を代入する。なお、矩形の差分画像の左上角を原点Oとし、原点Oから右方向に延びる水平軸をX軸とし、原点Oから下方向に延びる垂直軸をY軸とする。
【0175】
ステップS63にて、MCU3は、イメージセンサ5からのビジー信号(図20(a)参照)がローレベルか否かを判断し、ローレベルの場合ステップS65に進み、ハイレベルの場合ステップS63に戻る。ステップS65にて、MCU3は、イメージセンサ5に与えているリード信号(図20(b)参照)をローレベルに設定する。ステップS67にて、MCU3は、イメージセンサ5から差分画像の画素データD(1画素に対応)を読み込む(図20(c)参照)。
【0176】
ステップS69にて、MCU3は、一定時間t0が経過したか否かを判断し、経過した場合ステップS71に進み、経過していない場合ステップS69に戻る。ステップS71にて、MCU3は、リード信号(図20(b)参照)をハイレベルに設定する。ステップS73にて、MCU3は、画素データDと所定の閾値THAとを比較する。ステップS75にて、MCU3は、画素データDが閾値THAより大きい場合ステップS77に進み、それ以下の場合ステップS79に進む。ステップS77では、MCU3は、配列PD[X][Y]に「1」(被写体の像の画素)を代入する。一方、ステップS79では、MCU3は、配列PD[X][Y]に「0」(背景の画素)を代入する。このようにして、イメージセンサ5からの差分画像の各画素は順次2値化される。
【0177】
ステップS81にて、MCU3は、変数Xを1つインクリメントする。ステップS83にて、MCU3は、変数Xの値が64になったか否かを判断し、64の場合ステップS85に進み、それ以外はステップS89に進む。ステップS85では、MCU3は、変数Yを1つインクリメントする。ステップS87にて、MCU3は、変数Yの値が64になったか否かを判断し、64の場合全ての画素を読み込んだのでリターンし、それ以外はステップS89に進む。ステップS89では、MCU3は、ビジー信号(図20(a)参照)の立ち上がりエッジを検出した場合ステップS61に進み、それ以外はステップS89に戻る。
【0178】
以上のように、MCU3は、画素を読み込むたびに順次2値化して、2値化された差分画像データを得る。
【0179】
図3に戻って、ステップS29では、MCU3は、イメージセンサ5の撮影モードを標準モード(第2撮影モード)に設定する。ステップS31にて、MCU3は、イメージセンサ5に対して、赤外発光ダイオード7の消灯を指示する。すると、イメージセンサ5は、赤外発光ダイオード7をオフし、これにより、赤外発光ダイオード7は、発光を停止する。
【0180】
ステップS33にて、MCU3は、イメージセンサ5の露光(撮影)開始を指示する。ステップS35にて、MCU3は、露光時間ETが終了した場合ステップS37に進み、終了していない場合ステップS35に戻る。ステップS37にて、MCU3は、イメージセンサ5の露光(撮影)終了を指示する。
【0181】
ステップS39にて、MCU3は、イメージセンサ5から、赤外発光ダイオード7の消灯時の画像データ(64×64の画素データ)を取得して、配列PS[X][Y](画素データPS[X][Y]と呼ぶこともある。X=0〜63、Y=0〜63)に格納する。ステップS39の画像データ取得処理は、図4の差分画像データ取得処理と同様である。ただし、図4のステップS73〜S79の処理に代えて、イメージセンサ5からの画素データDは、2値化せずにそのまま、配列PS[X][Y]に格納される。また、図4の説明において、差分画像を画像と読み替え、配列PD[X][Y]を配列PS[X][Y]と読み替える。この場合、矩形の画像の左上角を原点Oとし、原点Oから右方向に延びる水平軸をX軸とし、原点Oから下方向に延びる垂直軸をY軸とする。
【0182】
ステップS41にて、MCU3は、画素データPS[X][Y]の平均値を算出する。ステップS43にて、MCU3は、イメージセンサ5の露光時間ETを、ステップS41で求めた平均値に応じた値に設定する。画素データPS[X][Y]は輝度値であるので、その平均値は、撮影空間(撮影される空間)の明るさを表す指標になる。従って、イメージセンサ5は、該平均値が大きく撮影空間が明るいほど露光時間ETを短く設定し、該平均値が小さく撮影空間が暗いほど露光時間ETを長く設定する。このように、動体検出モードでは、ステップS35の露光時間ETは、撮影空間の明るさに応じて動的に設定される。
【0183】
ステップS44にて、MCU3は、変数Nを1つインクリメントする。ステップS45にて、MCU3は、変数Nの値が3になったか否かを判断し、値が3の場合、画像処理モードの切り替えのための撮影処理を行なうため、ステップS5に進み、それ以外はリターンする。つまり、動体検出モードでは、画像処理モードの切り替えのための撮影処理の周期は、輪郭検出モードでの輪郭検出及び動体検出モードでの動体検出のための撮影処理の周期の3倍であり、より長く設定される。よって、消費電力を抑制できる。なお、コンピュータ13が、動体検出モードでの画像処理モードの切り替えのための撮影処理の指示を出すこともできる。
【0184】
動体検出モードでは、ステップS45での肯定評価(YES)の後のステップS5〜S25の結果であるステップS27の差分画像データは、画像処理モードの切替判定のためだけに使用される(後述の図5参照)。
【0185】
図5は、図1のMCU3による画像処理モードの切り替え処理の流れの一例を示すフローチャートである。図5を参照して、ステップS99にて、MCU3は、現在の画像処理モードが、輪郭検出モードの場合ステップS101に進み、動体検出モードの場合ステップS100に進む。ステップS100では、MCU3は、変数Nの値が3か否かを判断し、値が3の場合ステップS101に進み、それ以外はリターンする。
【0186】
ステップS101にて、MCU3は、変数X,Y及びAに0を代入する。ステップS103にて、MCU3は、差分画像の画素データPD[X][Y]が「1」か否かを判断し、「1」の場合ステップS105に進み、「0」の場合ステップS107に進む。ステップS105では、MCU3は、変数Aを1つインクリメントする。
【0187】
ステップS107にて、MCU3は、変数Xを1つインクリメントする。ステップS109にて、MCU3は、変数Xの値が64になったか否かを判断し、64場合ステップS111に進み、それ以外はステップS103に戻る。ステップS111では、MCU3は、変数Yを1つインクリメントする。ステップS113にて、MCU3は、変数Yの値が64になったか否かを判断し、64の場合ステップS115に進み、それ以外はステップS103に戻る。
【0188】
ステップS115にて、MCU3は、差分画像に写り込んだ被写体の像の面積を表す変数Aの値が所定の閾値THBより大きいか否かを判断し、大きい場合ステップS117に進み、それ以下の場合ステップS119に進む。ステップS117では、MCU3は、被写体が近距離に存在すると判断して、画像処理モードを輪郭検出モードに設定する。ステップS118にて、MCU3は、図3の変数Nに0を代入して、ステップS101に進む。一方、ステップS119では、MCU3は、被写体が遠距離に存在すると判断して、画像処理モードを動体検出モードに設定してステップS101に進む。
【0189】
図6は、図1のMCU3による動体検出モードでの処理の流れの一例を示すフローチャートである。図6を参照して、ステップS141にて、MCU3は、変数k,X,Y,AX,AY,TX,TY,及びS[X][Y]に0を代入する。ステップS143にて、MCU3は、動体フラグをオフにする。動体フラグは、動体が検出されたときにオンにされるフラグである。
【0190】
ステップS145にて、MCU3は、現在の画像の画素値PS[X][Y]と前回取得した画像の画素値PS[X][Y]との差分値DIFを算出する。ステップS147にて、MCU3は、差分値DIFが所定の閾値THCより大きいか否かを判断し、大きい場合ステップS149に進み、それ以下の場合ステップS151に進む。ステップS149では、MCU3は、変数S[X][Y]の現在の値に一定値IC(>0)を加算して、変数S[X][Y]に代入する。一方、ステップS151では、MCU3は、変数S[X][Y]の現在の値から一定値DC(>0)を減算して、変数S[X][Y]に代入する。この場合、DC<IC、である。
【0191】
ステップS153にて、MCU3は、変数S[X][Y]の値が閾値THHより小さく、かつ、閾値THLより大きいか否かを判断し、肯定的判断の場合、画素値PS[X][Y]の変化が有効と判断し、ステップS155に進み、否定的判断の場合、画素値PS[X][Y]の変化が無効(ノイズ)と判断し、ステップS161に進む。変数S[X][Y]の値は、対応する画素値PS[X][Y]が変化した頻度を示す指標であり、この値が大きいほど変化の頻度が高く、この値が小さいほど変化の頻度が低い。従って、画素値PS[X][Y]が変化した頻度が高すぎる場合、又は、画素値PS[X][Y]が変化した頻度が低すぎる場合は、その変化をノイズと判断して、ステップS155に進むことなく、ステップS161に進む。
【0192】
ステップS155では、MCU3は、動体フラグをオンにする。ステップS157では、MCU3は、変数kを1つインクリメントする。変数kは、画素値PS[X][Y]の変化が有効と判断された画素の数を示す。ステップS159にて、MCU3は、変数AXの現在の値に変数Xの値を加算して、変数AXに代入する。また、MCU3は、変数AYの現在の値に変数Yの値を加算して、変数AYに代入する。
【0193】
ステップS161にて、MCU3は、変数Xを1つインクリメントする。ステップS163にて、MCU3は、変数Xの値が64になったか否かを判断し、64の場合ステップS165に進み、それ以外はステップS145に進む。ステップS165では、MCU3は、変数Yを1つインクリメントする。ステップS167にて、MCU3は、変数Yの値が64になったか否かを判断し、64の場合ステップS169に進み、それ以外はステップS145に進む。
【0194】
ステップS169では、MCU3は、変数AXの値を変数kの値で除したものを変数TXに格納し、変数AYの値を変数kの値で除したものを変数TYに格納する。座標(TX,TY)は、イメージセンサ5からの画像に含まれる動体の像の座標である。ステップS171にて、MCU3は、画素値PS[X][Y]の合計値を求め、これをイメージセンサ5の露光時間ET(図3のステップS43)で除することにより、撮影空間の輝度を求める。そして、MCU3は、リターンする。
【0195】
ここで、動体検出モードでは、図2のステップS717では、MCU3は、動体フラグ、動体の座標(TX,TY)、及び撮影空間の輝度を電子機器11のコンピュータ13に送信する。
【0196】
図7は、図1のMCU3による輪郭検出モードでの処理の流れの一例を示すフローチャートである。図7を参照して、ステップS191にて、MCU3は、差分画像データ(PD[X][Y])から被写体の像の輪郭線を抽出する。この処理では、輪郭線上の各画素Pj(j=0〜J−1)の座標(XO[j],YO[j])を求める。
【0197】
ここで、本実施の形態では、値Jは、輪郭線上の画素Pjの総数を示す。また、反時計回りに輪郭線の抽出処理が実行されるものとする。
【0198】
輪郭線を抽出するためのアルゴリズムは、周知のものを使用できる。例えば、3×3の小画素領域からなるマスクを用いる方法で、このマスクの中心を輪郭線上にたえずおきならが、順次、マスクを移動して、輪郭線を抽出する。
【0199】
ステップS193にて、MCU3は、抽出した輪郭線上の各画素PjのベクトルVjの偏角θjを算出する。
【0200】
図16は、図7のステップS193で検出される偏角θjの説明図である。図16を参照して、今、被写体の輪郭線上の3つの画素Pj−1,Pj,及びPj+1に注目する。また、輪郭線を反時計回りにスキャンするものとする。画素PjのベクトルVjは、画素Pjから次の画素Pj+1に向かうベクトルとして定義される。画素PjのベクトルVjの偏角θjは、画素Pjの1つ前の画素Pj−1のベクトルVj−1に対してベクトルVjがなす角度として定義される。反時計回りの偏角θjの符号は正であり、時計回りの偏角θjの符号は負である。
【0201】
図7に戻って、ステップS195にて、MCU3は、抽出した輪郭線の変曲点を検出する。変曲点は、輪郭線の向きが変化する点であり、凸点と凹点とが定義される。
【0202】
図17は、図7のステップS195で検出される変曲点の説明図である。図17を参照して、抽出した輪郭線21の向きが変化する点として、変曲点I0〜I8が挙げられる。変曲点I0,I2,I4,I6及びI8は凸点である。変曲点I1,I3,I5及びI7は凹点である。
【0203】
図7に戻って、ステップS197にて、MCU3は、抽出した輪郭線(輪郭画像)の形状(グー、チョキ、パー、不定)を判定する。ステップS199にて、MCU3は、抽出した輪郭線(輪郭画像)の回転を検出して、リターンする。
【0204】
ここで、輪郭検出モードでは、図2のステップS717では、MCU3は、ステップS191〜S199の結果(輪郭画像の重心座標、面積、形状、回転角度、及び、回転方向)を電子機器11のコンピュータ13に送信する。
【0205】
図8は、図7のステップS195の変曲点の検出処理の流れの一例を示すフローチャートである。図8を参照して、ステップS221にて、MCU3は、変数DA,ADA,j,及びCF[j]に0を代入する。ステップS223にて、MCU3は、図7のステップS193で検出された輪郭線上の画素Pjの偏角θjをメモリ9から取得する。ステップS225にて、MCU3は、変数DAの現在の値に偏角θjを加算して、変数DAに代入する。ステップS227にて、MCU3は、変数DAの絶対値を求めて、変数ADAに代入する。
【0206】
ステップS229にて、MCU3は、変数ADAの値が135度になったか否かを判断し、135度の場合輪郭線の向きが変わったと判断して、画素Pjを変曲点とみなしてステップS231に進み、それ以外はステップS237に進む。ステップS231では、MCU3は、変数DAの符号が正か否かを判断し、正の場合ステップS233に進み、負の場合ステップS235に進む。ステップS233では、MCU3は、凸凹フラグCF[j]に、変曲点が凸点であることを示す01を代入する。一方、ステップS235では、MCU3は、変曲点が凹点であることを示す10を代入する。
【0207】
ステップS236にて、MCU3は、変数DAに0を代入する。ステップS237にて、MCU3は、変数jを1つインクリメントする。ステップS239にて、MCU3は、変数jの値が、値Jと等しくなったか否かを判断し、j=Jの場合リターンし、それ以外はステップS223に進む。
【0208】
図9は、図7のステップS197の輪郭画像の形状を判定する処理の流れの一例を示すフローチャートである。図9を参照して、ステップS261にて、MCU3は、輪郭線に関する情報を算出する。ステップS263にて、MCU3は、輪郭画像から手の指先に相当する画素を検出する。
【0209】
再び、図17を参照して、凸点I0,I2,I4,I6及びI8を総称して、凸点As(s=0,1,…,S)と表記し、凹点I1,I3,I5及びI7を総称して、凹点Bt(t=0,1,…,T)と表記する。MCU3は、凸点Asから一定画素数Npだけ離れて位置する2つの画素を結ぶ線分23を求め、凸点Asから線分23に下ろした垂線25の長さLvを算出する。MCU3は、長さLvが、所定値CLを超えている場合に、その凸点Asを指先の候補とする。
【0210】
そして、MCU3は、指先の候補とした凸点Asの両側又は一方側に凹点Btが存在するか否かを判断し、存在する場合、その凸点Asを指先とみなす。
【0211】
また、MCU3は、「パー」及び「グー」を判定するのに必要な傾角θvを算出する。傾角θvは、指先とみなされた凸点Asから線分23に下ろした垂線25が、差分画像のX軸と平行な線27となす角である。
【0212】
図9に戻って、ステップS265にて、MCU3は、輪郭画像の形状が「パー」をした手の形状であるか否かを判定する。ステップS267にて、MCU3は、輪郭画像の形状が「チョキ」をした手の形状であるか否かを判定する。ステップS269にて、MCU3は、輪郭画像の形状が「グー」をした手の形状であるか否かを判定してリターンする。
【0213】
図10は、図9のステップS261の輪郭情報を算出する処理の流れの一例を示すフローチャートである。図10を参照して、ステップS291にて、MCU3は、変数XG,YG及びjに0を代入する。ステップS293にて、MCU3は、変数XGの現在の値に輪郭線上の画素PjのX座標XO[j]を加算したものを、変数XGに代入する。また、MCU3は、変数YGの現在の値に輪郭線上の画素PjのY座標YO[j]を加算したものを、変数XGに代入する。ステップS295にて、MCU3は、変数jを1つインクリメントする。ステップS297にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS299に進み、それ以外はステップS293に進む。
【0214】
ステップS299にて、MCU3は、変数XGの値を値Jで除したものを、変数Xgに代入する。また、MCU3は、変数YGの値を値Jで除したものを、変数Ygに代入する。座標(Xg,Yg)は、輪郭画像の重心座標を示す。
【0215】
ステップS301にて、MCU3は、変数j,LS及びL[j]に0を代入する。ステップS303にて、MCU3は、次式により、重心座標(Xg,Yg)と輪郭線上の各画素Pjの座標(XO[j],YO[j])との間の距離L[j]を算出する。
【0216】
L[j]←√((Xg−XO[j])2+(Yg−YO[j])2)
【0217】
ステップS305にて、MCU3は、変数LSの現在の値に変数L[j]の値を加算したものを、変数LSに代入する。ステップS307にて、MCU3は、次式により、重心座標(Xg,Yg)と輪郭線上の各画素Pj座標(XO[j],YO[j])とを結ぶ線分がX軸と平行な線となす角、つまり、傾角θc[j]を算出する。この場合、小数点以下の角度は切り捨てる。
【0218】
θc[j]←tan−1((YO[j]−Yg)/(XO[j]−Xg))
【0219】
ステップS309にて、MCU3は、傾角θc[j]及び距離L[j]に基づいて、回転テーブルを作成する。
【0220】
図18は、図10のステップS309で作成される回転テーブルの例示図である。図18を参照して、MCU3は、輪郭線上の画素Pjの傾角θc[j]と距離L[j]とを関連付けて、回転テーブルを作成する。
【0221】
図10に戻って、ステップS311にて、MCU3は、変数jを1つインクリメントする。ステップS313にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS315に進み、それ以外はステップS303に進む。ステップS315にて、MCU3は、変数LSの値を値Jで除することにより、距離L[j]の平均値AVLを算出する。ステップS317にて、MCU3は、輪郭線及び輪郭線内の画素を計数して、輪郭画像の面積を算出する。ステップS319にて、MCU3は、線形補間により、図18の回転テーブルを完成する。つまり、回転テーブルには、ステップS307で算出された傾角θc[j]及びステップS303で算出された距離L[j]が代入されるが、必ずしも、回転テーブルの全ての傾角及び距離の欄が埋まるわけではない。そこで、回転テーブルにおいて、空欄がある場合、その前後の距離を用いて、線形補間により、その空欄を埋めていく。なお、線形補間は例示であり、他の補間を行なうこともできる。
【0222】
図11は、図9のステップS263の指先を検出する処理の流れの一例を示すフローチャートである。図11を参照して、ステップS341にて、MCU3は、変数j及びFP[j]に0を代入する。ステップS343にて、MCU3は、フラグCF[j]が凸点を示す01にセットされているか否かを判断し、肯定的判断の場合ステップS345に進み、否定的判断の場合ステップS349に進む。
【0223】
ステップS345にて、MCU3は、凸点である画素Pjの両側又は一方側に、フラグCF[j]に凹点を示す10がセットされている画素が存在するか否かを判断し、存在する場合画素Pjを指先候補とみなしてステップS347に進み、存在しない場合ステップS349に進む。ステップS347にて、MCU3は、フラグFP[j]に画素Pjが指先候補であることを示す1をセットする。
【0224】
ステップS349にて、MCU3は、変数jを1つインクリメントする。ステップS351にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS353に進み、それ以外はステップS343に進む。
【0225】
ステップS353にて、MCU3は、変数j,q,TF[j],θv[q],XT,YT,Q及びθvに0を代入する。ステップS355にて、MCU3は、フラグFP[j]に指先候補を示す1がセットされているか否かを判断し、肯定的判断の場合ステップS357に進み、それ以外はステップS371に進む。
【0226】
ステップS357にて、MCU3は、画素Pj+Npと画素Pj−Npとを結ぶ線分23に画素Pjから下ろした垂線25の長さLvを算出する(図17参照)。ステップS359にて、MCU3は、長さLvが所定値CLを超えているか否かを判断し、超えている場合画素Pjを指先とみなしてステップS361に進み、それ以外はステップS371に進む。
【0227】
ステップS361にて、MCU3は、指先フラグTF[j]に画素Pjが指先であることを示す1をセットする。ステップS363にて、MCU3は、変数XT[q]に画素PjのX座標を代入する。また、MCU3は、変数YT[q]に画素PjのY座標を代入する。座標(XT[q],YT[q])は、指先の座標である。ステップS365にて、MCU3は、垂線25の傾角θvを算出する(図17参照)。ステップS367にて、MCU3は、変数θv[q]に傾角θvを代入する。傾角θv[q]は、座標(XT[q],YT[q])で示される指先に対応する指の傾角である。ステップS369にて、MCU3は、変数qを1つインクリメントする。
【0228】
ステップS371にて、MCU3は、変数jを1つインクリメントする。ステップS373にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合ステップS375に進み、それ以外はステップS355に進む。ステップS375にて、MCU3は、変数Qに変数qの値を代入してリターンする。変数Qの値は、検出された指先の数を表す。
【0229】
図12は、図9のステップS265の「パー」を判定する処理の流れの一例を示すフローチャートである。図12を参照して、ステップS401にて、MCU3は、変数Qの値(指先の数)が3以上か否かを判断し、3以上の場合ステップS403に進み、それ以外はリターンする。ステップS403にて、MCU3は、変数q及びmに0を代入する。ステップS405にて、MCU3は、配列θv[q]と配列θv[q+1]との差の絶対値を算出し、変数θdに代入する。変数θdは、隣り合う指と指とがなす角度を表す。
【0230】
ステップS407にて、MCU3は、変数θdの値が100度未満か否かを判断し、肯定的判断の場合ステップS409に進み、否定的判断の場合ステップS411に進む。ステップS409にて、MCU3は、変数mを1つインクリメントする。ステップS411にて、MCU3は、変数qを1つインクリメントする。
【0231】
ステップS413にて、MCU3は、変数qの値が値Qになったか否かを判断し、値Qになった場合ステップS415に進み、それ以外はステップS405に進む。
【0232】
ステップS415では、MCU3は、変数mの値が、6以下3以上であるか否かを判断し、肯定的判断の場合手の形状が「パー」であると判断してステップS417に進み、否定的判断の場合リターンする。変数mの値は、隣り合う指と指とがなす角度θdが100度未満のケースの発生回数である。ステップS417では、MCU3は、フラグSHを「パー」を示す01にセットして、図7のステップS199に進む。
【0233】
図13は、図9のステップS267の「チョキ」を判定する処理の流れの一例を示すフローチャートである。図13を参照して、ステップS441にて、MCU3は、変数Qの値(指先の数)が2又は3の場合ステップS443に進み、それ以外はリターンする。
【0234】
ステップS443にて、MCU3は、変数q,p及びSHに0を代入する。ステップS445にて、MCU3は、輪郭画像の重心座標(Xg,Yg)と指先の座標(XT[q],YT[q])との間の距離Lgt0を算出する。ステップS447にて、MCU3は、距離Lgt0が平均値AVL(図10のステップS315参照)に1.1を乗じたもの以上か否かを判断し、つまり、距離Lgt0が平均値AVLの110%以上か否かを判断し、肯定的判断の場合ステップS449に進み、否定的判断の場合ステップS459に進む。
【0235】
ステップS449にて、MCU3は、輪郭画像の重心座標(Xg,Yg)と指先の座標(XT[q+1],YT[q+1])との間の距離Lgt10を算出する。座標(XT[q+1],YT[q+1])の指先は、座標(XT[q],YT[q])の指先の隣の指先である。ステップS451にて、MCU3は、距離Lgt1が値AVLに1.1を乗じたもの以上か否かを判断し、つまり、距離Lgt1が平均値AVLの110%以上か否かを判断し、肯定的判断の場合ステップS453に進み、否定的判断の場合ステップS459に進む。
【0236】
ステップS453では、MCU3は、配列θv[q]と配列θv[q+1]との差の絶対値(つまり、隣あう指と指とがなす角度)を算出し、変数θdに代入する。ステップS455にて、MCU3は、変数θdの値が90度未満か否かを判断し、肯定的判断の場合ステップS457に進み、否定的判断の場合ステップS459に進む。ステップS457にて、MCU3は、変数pを1つインクリメントする。
【0237】
ステップS459にて、MCU3は、変数qを1つインクリメントする。ステップS461にて、MCU3は、変数qの値が値Qになったか否かを判断し、値Qになった場合ステップS463に進み、それ以外はステップS445に進む。ステップS463にて、MCU3は、変数pの値が1又は2の場合手の形状が「チョキ」と判断してステップS465に進み、それ以外はリターンする。ステップS465では、MCU3は、フラグSHを「チョキ」を示す10にセットして、図7のステップS199に進む。
【0238】
図14は、図9のステップS269の「グー」を判定する処理の流れの一例を示すフローチャートである。図14を参照して、ステップS491にて、MCU3は、変数Qの値(指先の数)が2以上か否かを判断して、肯定的判断の場合ステップS493に進み、否定的判断の場合ステップS503に進む。
【0239】
ステップS493にて、MCU3は、変数jに0を代入する。ステップS495にて、MCU3は、距離L[j](図10のステップS303参照)が、平均値AVL(図10のステップS315参照)に0.6を乗じたもの以上であり、かつ、値AVLに1.4を乗じたもの以下であるか否かを判断し、つまり、距離L[j]が、平均値AVLの60%以上であり、かつ、平均値AVLの140%以下であるか否かを判断し、肯定的判断の場合ステップS497に進み、否定的判断の場合ステップS503に進む。
【0240】
ステップS499にて、MCU3は、変数jの値が値Jになったか否かを判断し、値Jになった場合手の形状が「グー」と判断しステップS501に進み、それ以外はステップS495に進む。ステップS501にて、MCU3は、フラグSHを「グー」を示す11にセットしてリターンする。一方、ステップS503では、MCU3は、フラグSHを「不定」を示す00にセットしてリターンする。
【0241】
図15は、図7のステップS199の輪郭画像の回転を検出する処理の流れの一例を示すフローチャートである。図15を参照して、ステップS521にて、MCU3は、変数Mに0を代入し、変数RAにFFFFhを代入する。
【0242】
ステップS523にて、MCU3は、現在の回転テーブル(図18参照)からM度の傾角に対応する距離を取得する。ステップS525にて、前回の回転テーブル(図18参照)から0度の傾角に対応する距離を取得する。ステップS527にて、MCU3は、ステップS523で取得した距離とステップS525で取得した距離との差の絶対値が一定範囲内の場合、両者が一致しているとみなして、ステップS529に進み、それ以外はステップS531に進む(図19参照)。ステップS529にて、MCU3は、変数RAに変数Mの値を代入する。
【0243】
ステップS531にて、MCU3は、現在の回転テーブル(図18参照)から(360−M)度の傾角に対応する距離を取得する。ステップS533にて、前回の回転テーブル(図18参照)から0度の傾角に対応する距離を取得する。ステップS535にて、MCU3は、ステップS531で取得した距離とステップS533で取得した距離との差の絶対値が一定範囲内の場合、両者が一致しているとみなして、ステップS537に進み、それ以外はステップS539に進む。ステップS537では、MCU3は、変数RAに、変数Mの値に(−1)を乗じた値を代入する。
【0244】
ステップS539にて、MCU3は、変数Mを1つインクリメントする。ステップS561にて、MCU3は、変数RA値がFFFFhであるか否かを判断し、肯定的判断の場合ステップS563に進み、否定的判断の場合リターンする。ステップS563にて、MCU3は、変数Mの値が360(回転テーブルに格納されている傾角の数)になったか否かを判断し、360になった場合リターンし、それ以外はステップS523に進む。
【0245】
ここで、図19を参照して、変数RAの値は、被写体の輪郭画像の重心座標と輪郭線上の画素Pjとを結ぶ線分の長さL[j]を、その線分が所定の基準線(X軸に平行な線)に対してなす角度θc[j]の関数100,102として表したときの、現在と前回との位相差である。この位相差の絶対値は輪郭画像の回転角度を表し、この位相差の符号は回転方向を表す。
【0246】
また、上記ステップS523及びS525の処理は、回転テーブルを上欄から下欄に向かって処理(スキャン)していることを意味する。一方、上記ステップS531及びS533の処理は、回転テーブルを下欄から上欄に向かって処理(スキャン)していることを意味する。そして、双方向へのスキャンにおいて、現在の距離が前回の距離と早く一致したときの位相差を輪郭画像の回転角としている。
【0247】
さて、以上のように、本実施の形態によれば、被写体とイメージセンサ5との間の距離に応じて、画像処理のモードが切り替えられるので、遠近に応じて、自動的に画像処理を異ならせることができる。
【0248】
このため、被写体がイメージセンサ5から近くに存在する場合の画像処理を、被写体がイメージセンサ5から比較的遠くに存在する場合の画像処理と異ならせることを要求する電子機器11に、容易に対応可能となる。
【0249】
また、イメージセンサ5として、比較的低解像度のものを採用でき、コストを削減できる。近くの被写体に対しては、低解像度であっても、画像処理により、その被写体の詳細な解析が可能であり、十分実用的な結果を得ることができる。一方、比較的遠くの被写体に対しては、低解像度の場合、被写体が近くに存在する場合と同じ画像処理により、被写体が近くに存在する場合と同等の精度の結果を得ることは困難である。従って、低解像度で、遠近に関係なく画像処理が同じであれば、比較的遠くにある被写体に対しては適用不可能であり、遠近双方に対応するためには、高解像度の撮影装置を採用せざるをえない。しかし、比較的遠くの被写体に対して、被写体が近くに存在する場合と異なる画像処理により、低解像度であっても十分実用的な結果を得ることもできる。このように、遠近に応じて、画像処理を異ならせることにより、低解像度のイメージセンサ5によって、遠近双方の被写体に対応可能となる。
【0250】
具体的には、近距離のための画像処理である輪郭検出モードでは、被写体の形態を認識する処理等が実行される。比較的低解像度の画像からでも、形態の認識は十分可能である。仮に、遠距離のための画像処理のモードにおいて、輪郭検出モードと同じ画像処理を行なっても、低解像度の画像からは、被写体の形態を精度良く認識することは困難である。しかし、遠距離のための動体検出モードでは、輪郭検出処理とは異なる手法により動体を検出する(図6)。この手法による動体の検出は、比較的低解像度の画像からも十分可能である。その結果、遠近双方において、比較的低解像度のイメージセンサ5を採用できるので、コストを削減できる。
【0251】
さらに、近距離用のセンサと遠距離用のセンサとを別個に設ける必要がなく、コストを削減できる。つまり、1つの画像処理モジュール1だけで、遠近双方の画像処理を行なうことができる。
【0252】
ここで、近距離で被写体の形態を認識するためのセンサ(形態センサ)と遠距離で動体を検出するためのセンサ(動体センサ)とを設けることを想定する。
【0253】
このような場合、通常、形態センサとしては比較的高解像度の撮影装置が採用され、低解像度の撮影装置と比べて高価である。また、それに応じて、高解像度の撮影装置の制御装置(CPUなど)も高価になる。さらに、高解像度の画像では、処理量が多くなり、高速に出力結果を要求される場合は対応困難になる。
【0254】
また、このような場合、通常、動体センサとしては、焦電センサが採用される。焦電センサは、比較的低解像度の撮影装置より安価な場合もあるが、室温の変化を検出するものであるので、変化の発生は検知できるが、物体の座標を検出することができない。また、焦電センサでは、物体を検知して、その後、その物体が動かない場合は、その物体の存在を検知できない。
【0255】
以上のように、近距離のための形態センサと遠距離のための動体センサとを設ける場合には、本発明にはない不利益を伴うが、そのような不利益がない点で本発明は有利である。
【0256】
さらに、本実施の形態では、動体を追跡して、動体をターゲットとした処理ないしは制御を行なうことができる。例えば、動体検出モードにおいて、動体の追跡結果を受けて、電子機器の一部又は全部を常に動体に向くように制御できる。もちろん、このような処理は輪郭検出モードでも可能である。
【0257】
さらに、本実施の形態では、第1閾値THH(図6のステップS153参照)を設けているので、画素値の変化の頻度が高い動き、例えば、テレビジョンのちらつき等、周期的な比較的周波数の高い動きをノイズとして除去できる。また、第2閾値THL(図6のステップS153参照)を設けているので、画素値の変化の頻度が低い動き、例えば、撮影環境(撮影空間やイメージセンサ5の状態)の変化から発生した画像上のノイズを除去できる。
【0258】
さらに、本実施の形態によれば、電子機器11は、輪郭検出モードにより、被写体の形状(グー、チョキ、パー)を入力とした情報処理を実行することができる。
【0259】
さらに、本実施の形態によれば、指先と水かきとの間の画素に基づいて指を特定し(図11のステップS357及びS359、図17参照)、輪郭画像の重心により指を特定しないので、重心により指を特定する場合と比較して、精度良く指を特定でき(図11)、ひいてはより精度良く手の形状を判定できる(図12、図13)。一般に、輪郭画像の重心と、被写体の重心と、は一致しない場合も多く、この場合に、重心により指を特定すると、認識の精度が低くなる。
【0260】
また、指先と水かきとの間の画素に基づいて得られた、隣り合う指と指とがなす角度だけでなく、重心から指先に相当する画素までの距離に基づいて、手の形状を判断するので(図13のステップS445〜S451)、より多様な手の形状を判定できる(図13)。例えば、手の形状が「チョキ」であることを判定できる。
【0261】
また、重心から輪郭線上の画素までの距離を求めるといった簡単な計算で(図10のステップS303)、手の形状を判定できる(図14)。例えば、重心から輪郭線上の画素までの距離が、一定範囲内の場合に、手の形状が「グー」であることを判定できる。
【0262】
さらに、本実施の形態によれば、電子機器11は、輪郭検出モードにより、被写体の回転(図15参照)を入力とした情報処理を実行することができる。
【0263】
この場合、上記のように、被写体の輪郭画像の重心座標と輪郭線上の画素Pjとを結ぶ線分の長さL[j]を、その線分が所定の基準線(X軸に平行な線)に対してなす角度θc[j]の関数として表したときの、現在と前回との位相差を求めることにより、簡易、かつ、精度よく、手の回転角度を検出できる。
【0264】
また、差分画像上の被写体の面積は、イメージセンサ5と被写体との間の距離に相関するので、面積により、イメージセンサ5と被写体との間の距離を容易に判断できる。
【0265】
また、被写体が遠くにあれば、赤外発光ダイオード7の光が届かない、あるいは、届いても反射光が弱くイメージセンサ5に検出されないので、赤外発光ダイオード7の発光時及び消灯時に関係なく、撮影画像には、遠くの物体は写り込まない。一方、赤外発光ダイオード7の発光時のみ、近くの物体は、その光を反射し、撮影画像に写り込む。よって、差分により背景成分が除去されるので、赤外発光ダイオード7が照射した光を反射した物体だけが、差分画像に現われる。このように、差分といった簡単な処理で、近くの物体の像のみを抽出できる。
【0266】
さらに、動体検出モードの画像処理(動体検出処理)では、赤外発光ダイオード7の発光は不要なところ、輪郭検出モードの画像処理(輪郭検出処理)で要求される赤外発光ダイオード7を、画像処理モードの切り替えのために、動体検出モードで共用している。その結果、コストを削減できる。
【0267】
また、動体検出モードでの画像処理のモードを切り替えるための撮影周期を、輪郭検出モードでの輪郭検出及び動体検出モードでの動体検出のための撮影処理の周期より短くしているので、消費電力を抑制することができる。画像処理のモードを切り替えるための判断は、画像処理(輪郭検出及び動体検出)と同等の周期で行なう必要はなく、実質的に性能に影響はない。
【0268】
さらに、本実施の形態では、撮影された被写体の画像を処理して(輪郭検出モードでは、輪郭画像の重心座標、面積、形状、回転角度、及び回転方向の算出、動体検出モードでは、動体の検出(動体フラグ)、動体の座標(TX,TY)の算出、及び撮影空間の輝度の算出)、その処理結果を、電子機器11のコンピュータ13に出力する。このため、外部のコンピュータ13は、この画像処理モジュール1から入力された処理結果をそのまま利用できる。その結果、外部のコンピュータ13による画像処理を不要とし、そのコンピュータ13のプログラマの負担を軽減することができる。また、この画像処理モジュール1は、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータ13あるいはそのコンピュータ13を搭載する外部機器11は特定のものに限定されず、この画像処理モジュール1は、高い汎用性を持つ。
【0269】
(変形例)
【0270】
実施の形態の変形例では、MCU3の設定を輪郭検出モードに固定する。輪郭画像がMCU3に設定された割込条件を満足すると、MCU3は、割込信号をコンピュータ13に出力する。上記実施の形態では、MCU3は、コンピュータ13の指示なしに、コンピュータ13にデータを送信することができない。これに対して、変形例では、コンピュータ13の指示がない場合であっても、輪郭画像が割込条件を満足した場合は、MCU3が、割込信号をコンピュータ13に送信する。このため、スタンバイ状態あるいはスリープ状態のコンピュータ13を、MCU3からの割込信号により、オペレーション状態にしたり、復帰させたりすることができる。
【0271】
図21は、本発明の実施の形態の変形例におけるMCU3の全体処理の流れの一例を示すフローチャートである。図22(a)〜図22(c)は、変形例におけるMCU3とコンピュータ13との間の信号送受信の説明図である。
【0272】
図21を参照して、ステップS751にて、MCU3は、レジスタや変数等の初期化を実行する。ステップS753にて、MCU3は、データ出力線の電位をハイレベルに設定する(図22(c)参照)。このデータ出力線は、MCU3とコンピュータ13とを接続する。ステップS755にて、MCU3は、一定時間間隔でタイマ割込みを発生させるため、タイマをセットする。
【0273】
ステップS757にて、MCU3は、コンピュータ13が出力するスレイブセレクト信号の立下りエッジを検出したか否かを判断し、検出した場合ステップS761に進み、それ以外はステップS759に進む。ステップS759にて、MCU3は、タイマ割込みが発生したか否かを判断し、発生した場合ステップS765に進み、それ以外はステップS757に戻る。
【0274】
ステップS761では、MCU3は、タイマを解除する。ステップS763にて、MCU3は、コンピュータ13から開始コマンドを受信したか否かを判断し、受信した場合ステップS765に進み、それ以外はステップS763に戻る。なお、コンピュータ13は、MCU3へ開始コマンドを送信した後、スレイブセレクト信号をハイレベルにする。
【0275】
ステップS765では、MCU3は、イメージセンサ5を制御する。この場合の処理は、図3のステップS7〜S27の処理と同じである。ステップS767にて、MCU3は、輪郭検出処理を実行する。この処理は、図2のステップS711の輪郭検出処理と同じである。
【0276】
ステップS771にて、MCU3は、ステップS767で検出した輪郭画像が、設定された割込条件を満足しているか否かを判断し、満足している場合ステップS773に進み、満足していない場合ステップS775に進む。ステップS773では、MCU3は、コンピュータ13に割込信号を出力する。ただし、この場合に、MCU3は、コンピュータ13にコマンドを出力することもできる。
【0277】
この割込条件は、MCU3のレジスタ(図示せず)に予め設定される。もちろん、コンピュータ13によって、割込条件を変更することができる。本実施の形態では、輪郭画像が「グー」のときのみ割込信号を生成する割込条件、輪郭画像が「チョキ」のときのみ割込信号を生成する割込条件、輪郭画像が「パー」のときのみ割込信号を生成する割込条件、輪郭画像が「グー」又は「チョキ」のときに割込信号を生成する割込条件、輪郭画像が「グー」又は「パー」のときに割込信号を生成する割込条件、輪郭画像が「チョキ」又は「パー」のときに割込信号を生成する割込条件、輪郭画像が「グー」、「チョキ」又は「パー」のときに割込信号を生成する割込条件、並びに、輪郭画像が「グー」、「チョキ」及び「パー」のいずれにおいても割込信号を生成しない割込条件を設定可能である。
【0278】
ステップS775にて、MCU3は、データ出力線の電位をローレベルに設定する(図22(c)参照)。ステップS777にて、MCU3は、コンピュータ13が出力するスレイブセレクト信号(図22(a)参照)の立下りエッジを検出したか否かを判断し、検出した場合ステップS781に進み、検出していない場合ステップS779に進む。ステップS779では、MCU3は、タイマ割込みがあった場合ステップS791に進み、それ以外はステップS777に進む。
【0279】
ステップS781では、MCU3は、タイマを解除する。ステップS783にて、MCU3は、コンピュータ13から開始コマンドを受信したか否かを判断し、受信した場合ステップS789に進み、それ以外はステップS785に進む。なお、コンピュータ13は、MCU3へ開始コマンドを送信した後、スレイブセレクト信号をハイレベルにする。ステップS785にて、MCU3は、コンピュータ13からのリードコマンド(図22(b)参照)を受信したか否かを判断し、受信した場合ステップS787に進み、受信していない場合ステップS783に戻る。なお、リードコマンドは、MCU3とコンピュータ13とを接続するデータ入力線を介して与えられる。ステップS787では、MCU3は、ステップS767の結果データ(輪郭画像の重心座標、面積、形状、及び回転角度)を、データ出力線を介してコンピュータ13に送信する(図22(c)参照)。なお、コンピュータ13は、MCU3からデータを受け取った後、スレイブセレクト信号をハイレベルにする。
【0280】
ステップS789にて、MCU3は、タイマをセットする。ステップS791にて、MCU3は、データ出力線の電位をハイレベルに設定して(図22(c)参照)、ステップS765に戻る。
【0281】
以上のように、コンピュータ13がオペレーション状態のときは、MCU3は、コンピュータ13の制御(スレイブセレクト信号、開始コマンド、及び、リードコマンド)を受けて動作する。ただし、コンピュータ13がスタンバイないしはスリープ状態の場合は、MCU3は、タイマ割込みにより、イメージセンサ5の制御(ステップS765)、輪郭検出処理(ステップS767)、及び、割込信号生成処理(ステップS771及びS773)を実行する。
【0282】
さて、以上のように、変形例では、電子機器11のコンピュータ13がスタンバイ状態あるいはスリープ状態の場合であっても、輪郭画像、つまり、撮影対象物(変形例では「手」)が割込条件を満足することによって、コンピュータ13をオペレーション状態にしたり、復帰させたりすることができる。すなわち、撮影対象物を制御すること(上記例では、ユーザが手の形状を割込条件に合致させること)によって、スタンバイ状態やスリープ状態のコンピュータ13をオペレーション状態にしたり、復帰させたりすることができる。
【0283】
ここで、変形例は、例えば、カーナビゲーションシステムの操作に有用である。一般に、カーナビゲーションシステムは、ドライバーがディスプレイのタッチパネルを操作することによりコントロールされる。この場合、腕や手だけを動かして操作するのは困難な場合も多く、上半身を動かす必要もあり、必ずしも安全性が高いとは言えない場合もある。また、カーナビゲーションシステムが、テレビジョン装置やオーディオ装置と一体になっているものも多い。このように、近年のカーナビゲーションは高機能のものも多く、その全ての操作をタッチパネルで行なうと、益々安全性が低下する。
【0284】
しかしながら、本発明の変形例を適用することにより、ディスプレイに表示されたアイコンや地図画像等を非接触で操作できるので、ドライバーは、腕や手だけを動かして操作することができ、上半身を動かす必要もないため、安全性の向上に寄与できる。この場合、カーナビゲーションシステムは電子機器11に対応し、カーナビゲーションシステムのコンピュータはコンピュータ13に対応する。以下、変形例をカーナビゲーションシステムに適用する場合の応用例を挙げる。
【0285】
例えば、カーナビゲーションシステム11のコンピュータ13は、手の座標の移動方向により、ディスプレイに表示されたアイコンを選択する。この場合、コンピュータ13は、選択されたアイコンの色彩を変更する。この場合、コンピュータは、一定時間以上、同一アイコンの選択状態が継続している場合に、選択が確定したと判断する。
【0286】
また、例えば、コンピュータ13は、手の座標に連動するカーソルをディスプレイに表示する。そして、コンピュータ13は、このカーソルが、アイコンに重なったときに、そのアイコンが選択されたと判断する。この場合も、もちろん、選択されたアイコンの色彩を変更してもよい。この場合、コンピュータは、一定時間以上、カーソルが同一アイコンに継続して重なっている場合に、選択が確定したと判断する。
【0287】
ここで、コンピュータ13は、所定の手の形状を、選択確定のコマンドとして認識することもできる。例えば、一本の指を立てた手が撮影された場合に、それを選択確定のコマンドとすることができる。上記では、輪郭画像が、一本の指を立てた手であるか否かを判断する機能(コンピュータプログラム)を搭載していないが、もちろん搭載することもできる。
【0288】
さらに、例えば、コンピュータ13は、手の座標の移動方向に応じた方向に、ディスプレイに表示された地図をスクロールすることができる。この場合、コンピュータ13は、一定の初速度で、地図をスクロールし、一定距離の移動後に停止させる。また、コンピュータ13は、手の座標の移動速度に応じた初速度で、手の座標の移動方向に応じた方向に、地図をスクロールさせることもできる。この場合、コンピュータ13は、一定の摩擦係数を想定して、スクロールを停止する。ただし、コンピュータ13は、スクロール途中であっても、所定の手の形状を、スクロール停止のコマンドとして認識することもできる。例えば、「パー」をした手が撮影された場合に、それをスクロール停止のコマンドとすることができる。
【0289】
さらに、例えば、コンピュータ13は、所定の手の形状及び面積をコマンドとして、地図の拡縮を行なうことができる。この場合、コンピュータ13は、「グー」の形状の面積が大きくなると、地図を拡大し、「グー」の形状の面積が小さくなると、地図を縮小する。これとは逆に、コンピュータ13は、「グー」の形状の面積が小さくなると、地図を拡大し、「グー」の形状の面積が大きくなると、地図を縮小することもできる。そして、コンピュータ13は、「パー」の手の形状が撮影された場合に、拡縮操作を停止する。
【0290】
また、例えば、コンピュータ13は、画像処理モジュール1の結果データに基づいて、カーナビゲーションシステム11に搭載されたオーディオ装置の制御を行なうこともできる。以下、この場合の応用例を挙げる。もちろん、カーオーディオ装置単体に、変形例を適用することもできる。
【0291】
例えば、コンピュータ13は、ディスプレイに表示された楽曲リスト(垂直方向に楽曲が並んでいるものを想定する。)を、手の座標の移動方向に応じた方向に(垂直方向に限る。)、スクロールすることができる。この場合、コンピュータ13は、一定の初速度で、楽曲リストをスクロールし、一定距離の移動後に停止させる。また、コンピュータ13は、手の座標の移動速度に応じた初速度で、手の座標の移動方向に応じた方向に(垂直方向に限る。)、楽曲リストをスクロールさせることもできる。この場合、コンピュータ13は、一定の摩擦係数を想定して、スクロールを停止する。ただし、スクロール途中であっても、所定の手の形状を、スクロール停止のコマンドとして認識することもできる。例えば、「パー」をした手が撮影された場合に、それをスクロール停止のコマンドとすることができる。
【0292】
また、例えば、コンピュータ13は、楽曲リストのスクロールを停止する際に、ディスプレイの所定位置に、1楽曲名が停止するよう制御する。そして、コンピュータ13は、その所定位置に停止した楽曲が選択状態にあると認識する。そして、例えば、コンピュータ13は、所定の手の形状(例えば、「グー」)が撮影された場合に、その所定位置に停止した楽曲を再生する。
【0293】
さらに、例えば、コンピュータ13は、楽曲の再生中に、手の座標の移動方向に応じて(水平方向に限る。)、次の楽曲に進んだり、前の楽曲に戻ったりすることもできる。また、例えば、コンピュータ13は、楽曲の再生中に、手の回転角度に応じて、音量を制御することもできる。この場合、コンピュータ13は、ディスプレイに、手の回転角度に応じて回転するダイヤル画像を表示することもできる。
【0294】
また、例えば、コンピュータ13は、画像処理モジュール1の結果データに基づいて、カーナビゲーションシステム11に搭載されたテレビジョン装置の制御を行なうこともできる。この場合の操作例は、オーディオ装置の操作例と同様である。もちろん、車載テレビジョン受像機単体に、変形例を適用することもできる。
【0295】
さらに、例えば、コンピュータ13は、所定の形状の手(例えば、「チョキ」)が撮影された場合に、実行中の処理(例えば、ナビゲーション、音楽再生、テレビジョン映像表示)を中止して、メニュー画面に戻ることができる。
【0296】
また、コンピュータ13は、変形例による非接触の操作だけを受け付けるのではなく、タッチパネルによる操作も受け付けて、両者を併用することもできる。
【0297】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【0298】
(1)実施の形態では、距離に応じて、画像処理モードを2つ搭載した。ただし、距離に応じて、3以上の画像処理モードを搭載することもできる。
【0299】
(2)MCU3は、輪郭検出モードでは、差分画像(解析対象差分画像)に基づいて、輪郭画像の重心座標、面積、形状、回転角度、及び回転方向を算出した。ただし、目的物はこれらに限定されるものではなく、例えば、MCU3は、差分画像に写り込んだ被写体の像の色彩の認識、その像の模様の認識、その像の回転量の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、差分画像に写り込んだ被写体としての動体の検出、及び/又は、被写体の存在の検出を行なうこともできる。
【0300】
また、MCU3は、動体検出モードでは、画像(解析対象画像)に基づいて、動体の検出(動体フラグ)、動体の座標(TX,TY)の算出、及び撮影空間の輝度の算出を行なった。ただし、目的物はこれらに限定されるものではなく、例えば、MCU3は、画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、及び/又は、画像に写り込んだ被写体の像の輝度の算出を行なうことができる。なお、この場合、低解像度のイメージセンサによる解析が不可能な場合は、それに代えて、高解像度のイメージセンサを使用する。
【0301】
(3)実施の形態では、距離に応じて画像処理モードを自動的に切り替えた。ただし、上記変形例のように、電子機器11の仕様に応じて、MCU3の設定を輪郭検出モードに固定することもできるし、また、輪郭検出モードのみを搭載することもできる。
【0302】
この場合、撮影された被写体の画像を処理して(差分画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、差分画像に写り込んだ被写体としての動体の検出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータ13に出力する。このため、当該外部のコンピュータ13は、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータ13による画像処理を不要とし、そのコンピュータ13のプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータ13あるいはそのコンピュータ13を搭載する外部機器11は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0303】
また、限定はされないが、画像処理モジュールに輪郭検出モードのみを搭載する場合、特に、被写体がイメージセンサ5に対して比較的近距離に位置している場合に有効である。なぜなら、赤外光を被写体に照射し、それをイメージセンサ5により撮影するからである。もちろん、これは、被写体がイメージセンサ5に対して比較的遠距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。この場合、例えば、赤外発光ダイオード7の発光強度を強くし、及び/又は、その数を増やす。
【0304】
さらに、この場合、上記の輪郭検出モードと同様の効果を奏する。もちろん、この場合、上記変形例の機能をそのまま搭載することもできる。
【0305】
また、電子機器11の仕様に応じて、MCU3の設定を動体検出モードに固定することもできるし、また、動体検出モードのみを搭載することもできる。
【0306】
この場合、撮影された被写体の画像を処理して(画像に写り込んだ被写体の像の形状の認識、その像の色彩の認識、その像の模様の認識、その像の座標の算出、その像の面積の算出、その像の回転量若しくは回転角度の算出、その像の回転方向の算出、その像の速度の算出、その像の加速度の算出、その像の移動軌跡の算出、画像に写り込んだ被写体としての動体の検出、画像に写り込んだ撮影空間の輝度の算出、画像に写り込んだ被写体の像の輝度の算出、及び、被写体の存在の検出)、その処理結果を、外部のコンピュータ13に出力する。このため、当該外部のコンピュータ13は、この画像処理モジュールから入力された処理結果をそのまま利用できる。その結果、当該外部のコンピュータ13による画像処理を不要とし、そのコンピュータ13のプログラマの負担を軽減することができる。また、この画像処理モジュールは、撮影及び画像処理だけを行なうモジュールとして提供されるので、その処理結果を利用するコンピュータ13あるいはそのコンピュータ13を搭載する外部機器11は特定のものに限定されず、この画像処理モジュールは、高い汎用性を持つ。
【0307】
また、限定はされないが、画像処理モジュールに動体検出モードのみを搭載する場合、特に、被写体がイメージセンサ5に対して比較的遠距離に位置している場合に有効である。なぜなら、赤外発光ダイオード7を設けずに、室内光及び/又は外光を反射する被写体を撮影するからである。もちろん、これは、被写体がイメージセンサ5に対して比較的近距離に位置している場合に、この画像処理モジュールを使用することを排除するものではない。
【0308】
さらに、この場合、上記の動体検出モードと同様の効果を奏する。もちろん、この場合、上記変形例と同様に、MCU3は、画像の解析結果が所定の条件を満足した時に、割込信号又はコマンドを、信号線54及びコネクタ30を介して、外部のコンピュータ13に送信する機能を搭載することもできる。
【0309】
(4)図25に示すように、赤外光フィルタ64は、レンズユニット62の外部において、開口66を覆うように配置された。ただし、赤外光フィルタは、レンズユニット62の内部において、レンズ72とイメージセンサ5との間に配置することもできる。
【0310】
(5)上記では、メモリ9は、MCU3に内蔵された。ただし、メモリ9は、MCU3の外部に配置されてもよく、MCU3の内部及び外部の双方にメモリを設けることもできる。
【0311】
(6)上記では、イメージセンサ5は、差分画像を生成し出力した。ただし、イメージセンサ5は、赤外光の点灯時の画像(グレースケールでもよいし、カラーでもよい)及び消灯時の画像(グレースケールでもよいし、カラーでもよい)をMCU3に出力することもできる。この場合、MCU3が、点灯時画像と消灯時画像との差分画像を生成する。そして、MCU3は、その差分画像に基づいて、解析処理を行なうこともできるし、また、その差分画像を2値化して、解析処理を行なうこともできる。なお、赤外光の点灯時間及び消灯時間を1周期と考えると、MCU3は、この1周期ごとに、点灯時画像と消灯時画像との差分画像の生成処理及び解析処理を実行する。
【0312】
(7)上記では、MCU3は、イメージセンサ5から1画素ずつシリアルに入力される画素データDを順次2値化した。ただし、MCU3は、全ての画素データDをメモリ9に格納した後に2値化してもよい。もちろん、MCU3は、2値化せずに、解析処理を実行することもできる。
【0313】
(8)電子機器11のコンピュータ13が、画像処理モジュール1のMCU3から与えられた情報に基づいて行なう制御は、機械的・機構的な制御に限られず、ソフトウェア、画像、あるいは音声の制御であってもよい。
【0314】
(9)上記では、「グー」、「チョキ」、及び「パー」の形状を認識したが、これに限定されない。例えば、画像処理モジュール1は、一本の指を立てた手の形状を認識することもできる。
【0315】
(10)上記変形例では、いくつかの割込条件を挙げた。ただし、割込条件は、それらに限定されない。例えば、輪郭画像の座標の軌跡が所定条件を満足することを割込条件とすることができる。例えば、所定時間内に、輪郭画像の予め定められた異なる形状が検出されること(順番は問わない。)を割込み条件とすることができる(例えば、所定時間内に、輪郭画像の第1の形状(例えば「パー」)と第2の形状(例えば「チョキ」)とが検出されたことを割込条件とすることができる。)。例えば、所定時間内に、所定の順番で、輪郭画像の予め定められた異なる形状が検出されることを割込み条件とすることができる(例えば、輪郭画像の第1の形状(例えば「パー」)が検出された後、所定時間内に、輪郭画像の第2の形状(例えば「チョキ」)が検出されたことを割込条件とすることができる。)。また、これらの例を組み合わせて、割込条件とすることもできる。
【0316】
(11)上記変形例では、カーナビゲーションシステムへの適用例を挙げたが、これに限定されないことは言うまでもない。例えば、カーナビゲーションシステムのオーディオ装置と同様に、家庭用のオーディオ装置にも変形例を適用できる。また、例えば、カーナビゲーションシステムのテレビジョン装置と同様に、家庭用のテレビジョン受像機にも変形例を適用できる。
【0317】
(12)上記変形例では、画像処理モジュール1は、コンピュータ13からの指示があるときは、コンピュータ13の指示に同期して処理を行ない、コンピュータ13からの指示がないときは、タイマ割込みに同期して処理を行なった。ただし、画像処理モジュール1は、タイマ割込みにのみ同期して処理を行なうこともできる。
【0318】
(13)上記では、赤外発光ダイオード7のオン/オフをイメージセンサ5が制御した。ただし、トランジスタ44のベースをMCU3の制御端子に接続することにより、MCU3が、赤外発光ダイオード7のオン/オフを制御することもできる。もちろん、この場合でも、トランジスタ44を設けることなしに、赤外発光ダイオード7のアノードをMCU3の制御端子に接続して制御することもできる。
【0319】
(14)図6では、ステップS153で1回でも肯定的判断がされれば、動体フラグがオンにされた。ただし、変数k(ステップS157)の値が所定値(2以上の整数)を超えた場合に、動体フラグをオンにすることもできる。なお、所定値は実験的経験的に定められる。
【0320】
(15)図6では、イメージセンサ5からの画像(64×64画素)の全画素のうち、有効な変化が検出された画素の数kを計数した(ステップS157)。この応用例を次に示す。
【0321】
イメージセンサ5からの画像を所定数N(Nは2以上の整数)のブロックBL1〜BLNに分割する(例えば、N=9)。ここで、ブロックBL1〜BLNを総称して、ブロックBLnと表記する。そして、MCU3は、ブロックBLnごとに、有効な変化が検出された画素の数knを計数し、ブロックBLnごとの画素数knをコンピュータ13に送信する。そして、コンピュータ13は、画素数knが所定値CVを超えたブロックBLnにおいて、被写体の動きが検出されたと判断する。なお、所定値CVは実験的経験的に定められる。
【0322】
このように、ブロックBLnごとに、写り込んだ像の変化、つまり、被写体の動きを検出することができる。このため、コンピュータ13は、電子機器11又は電子機器11の一部を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域(実空間の)に向ける制御又は向けない制御を行なうことができる。また、コンピュータ13は、各ブロックに対応する各領域(実空間の)に向けた電子機器11の出力を、像の変化(つまり被写体の動き)が検出されたブロックに対応する領域に対して行う又は行なわない制御を行なうことができる。
【0323】
この応用例は、例えば、電子機器11が、天井へ埋め込んで使用する空気調和装置(エア・コンディショナ)である場合に適用できる。イメージセンサ5は、被写体を俯瞰撮影できる位置に設置される。例えば、イメージセンサ5は、空気調和装置とともに天井に取り付けられ(例えば、空気調和装置の化粧パネル等)、あるいは、空気調和装置の近傍に取り付けられる。空気調和装置のコンピュータ13は、空気調和装置の垂直フラップ及び/又は水平フラップを制御して、被写体の動きが検出されたブロックに対応する領域に風向きを調整する。また、空気調和装置のコンピュータ13は、被写体の動きが検出されたブロックに対応する領域への風の出力を行い、一方、被写体の動きが検出されなかったブロックに対応する領域への風の出力を停止する。
【0324】
なお、垂直フラップは、垂直軸の回りに回転するフラップであり、水平方向の風向きを調整する。水平フラップは、水平軸の回りに回転するフラップであり、垂直方向の風向きを調整する。なお、これらのフラップを風向調整機構あるいは風向調整板と呼ぶ事もある。
【0325】
また、天井に設置される電子機器11は、空気調和装置に限定されるものではない。例えば、照明機器である。もちろん、電子機器11及びイメージセンサ5の設置場所は天井に限定されず、その性質、用途に応じて、任意の場所に設置できる。
【0326】
なお、イメージセンサ5により俯瞰撮影を行なう場合、水平方向からの撮影と比較して、複数の被写体が重なって写り込む頻度が少なく、複数の被写体の重なりの判断を省くこともできるので、簡易な処理により電子機器11を制御できる。その結果、天井に設置された電子機器11の制御に好適である。
【0327】
もちろん、複数の被写体の重なりの判断を行ってもよい。なお、水平方向から撮影すると、複数の被写体が1つの像として画像に存在することになる場合であっても(例えば、撮影手段の光軸上に、複数の被写体が存在する場合)、俯瞰撮影する場合は、それらが、分離した像として画像に存在することも多い。
【0328】
(16)画像処理モジュール1は、赤外発光ダイオード7を搭載した。ただし、赤外発光ダイオード7を搭載しないこともできる。この場合は、MCU3は、差分画像ではなく、通常の画像を処理する。
【0329】
(17)MCU3が行なう処理の全部又は一部をコンピュータ13が行なうこともできる。要するに、どちらがどの処理を行なうかは、仕様に応じて、任意に決定できる。
【0330】
(18)MCU3に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、また、並列的あるいは個別に実行される処理も含むものである。
【0331】
(19)本明細書及び請求の範囲において、手段とは必ずしも物理的手段を意味するものではなく、各手段の機能がソフトウェアによって実現される場合も含む。さらに、1つの手段の機能が2つ以上の物理的手段により実現されても、もしくは2つ以上の手段の機能が1つの物理的手段により実現されてもよい。
【産業上の利用可能性】
【0332】
本発明は、家庭電化製品、エンターテインメント機器、セキュリティ機器、車載電子機器、ディスプレイ装置、及びパーソナルコンピュータ等の分野に利用可能である。
【符号の説明】
【0333】
1…画像処理モジュール、3…MCU、5…イメージセンサ、7…赤外発光ダイオード、9…メモリ、11…電子機器、13…コンピュータ、30…コネクタ、44…トランジスタ、50,52…電源線、54…信号線、56…バス、58…基板、60…ハウジング、62…レンズユニット、64…赤外光フィルタ、66…開口、68…基台、70…筒状部材、72…凸レンズ、73…レンズホルダ、74…光軸、T1〜T7…端子。
【0334】
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。
【特許請求の範囲】
【請求項1】
被写体を撮影する撮影手段による映像に対して画像処理を施す画像処理手段と、
前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替える切替手段と、を備える画像処理装置。
【請求項2】
前記切替手段は、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードとして第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記画像処理のモードとして第2モードを設定し、
前記画像処理手段は、前記第1モードの設定時に、前記映像に写った前記被写体の形態を認識する処理、動きを検出する処理、座標を求める処理、及び面積を求める処理の全部又は一部を実行し、前記第2モードの設定時に、前記映像から、前記被写体としての動体を検出する処理、撮影空間の輝度を求める処理、及び前記被写体の存在を検出する処理の全部又は一部を実行する、請求項1記載の画像処理装置。
【請求項3】
前記画像処理手段は、前記第2モードの設定時に、前記動体を検出して追跡する処理を実行する、請求項2記載の画像処理装置。
【請求項4】
前記画像処理手段は、
前記撮影手段による現在の画像と過去の画像との差分を算出する差分手段と、
前記差分に基づいて、画素値の変化を検出する検出手段と、
第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断する判断手段と、を含む請求項2又は3記載の画像処理装置。
【請求項5】
前記画像処理手段は、前記第1モードの設定時に、前記被写体の形態としての形状を認識する処理を実行する、請求項2から4のいずれかに記載の画像処理装置。
【請求項6】
前記画像処理手段は、前記被写体としての手の形状を認識し、
前記画像処理手段は、
前記撮影手段による画像から前記被写体の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定する指特定手段と、
所定の基準線に対する、前記指特定手段が特定した各指の傾き角を算出する傾角算出手段と、
前記指特定手段が特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出する指角算出手段と、
前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定する判定手段と、を含む請求項5記載の画像処理装置。
【請求項7】
前記指特定手段は、
前記被写体の輪郭線上にある画素から、指先に相当する画素を特定する手段を含み、
前記画像処理手段は、
前記被写体の輪郭画像の重心から前記指先に相当する前記画素までの距離を算出する手段をさらに含み、
前記判定手段は、前記隣り合う指と指とがなす前記角度、及び、前記指先に相当する前記画素までの前記距離に基づいて、手の形状を判定する、請求項6記載の画像処理装置。
【請求項8】
前記画像処理手段は、前記被写体としての手の形状を認識し、
前記画像処理手段は、
前記被写体の輪郭画像の重心から輪郭線上の各画素までの距離を算出する距離算出手段と、
前記各画素までの前記距離に基づいて、手の形状を判定する判定手段と、を含む請求項5から7のいずれかに記載の画像処理装置。
【請求項9】
前記画像処理手段は、前記第1モードの設定時に、前記被写体の動きとしての回転動作を検出する処理を実行する、請求項2から8のいずれかに記載の画像処理装置。
【請求項10】
前記画像処理手段は、
前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出する長さ算出手段と、
前記線分が、所定の基準線に対してなす角度を算出する角度算出手段と、
前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とする回転検出手段と、を含む請求項9記載の画像処理装置。
【請求項11】
前記切替手段は、
光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との差分画像に写り込んだ前記被写体の面積を算出する面積算出手段と、
前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、前記画像処理のモードを設定する設定手段と、を含む請求項1から10のいずれかに記載の画像処理装置。
【請求項12】
前記画像処理手段は、前記画像処理のモードとしての第1モードでは、光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第1差分画像に前記画像処理を施し、前記画像処理のモードとしての第2モードでは、前記発光手段の消灯時の前記撮影手段による前記映像に対して前記画像処理を施し、
前記切替手段は、
前記第1モードでは、前記第1差分画像に写り込んだ前記被写体の面積を算出する第1面積算出手段と、
前記第1モードでは、前記第1差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記第2モードを設定する第1設定手段と、
前記第2モードでは、前記発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第2差分画像に写り込んだ前記被写体の面積を算出する第2面積算出手段と、
前記第2モードでは、前記第2差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第2モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第2モードの設定時より短い場合に、前記第1モードを設定する第2設定手段と、を含む請求項1記載の画像処理装置。
【請求項13】
前記第2モードで前記第2差分画像を得るための前記撮影手段の撮影周期は、前記第1モードで前記第1差分画像を得るための前記撮影手段の撮影周期より長く設定される、請求項12記載の画像処理装置。
【請求項14】
被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記撮影手段が出力した現在の画像と過去の画像との差分を算出する差分手段と、
前記差分に基づいて、画素値の変化を検出する検出手段と、
第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断する判断手段と、を備える画像処理装置。
【請求項15】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定する指特定手段と、
所定の基準線に対する、前記指特定手段が特定した各指の傾き角を算出する傾角算出手段と、
前記指特定手段が特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出する指角算出手段と、
前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定する判定手段と、を備える画像処理装置。
【請求項16】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出する距離算出手段と、
前記各画素までの前記距離に基づいて、手の形状を判定する判定手段と、を備える画像処理装置。
【請求項17】
被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出する長さ算出手段と、
前記線分が、所定の基準線に対してなす角度を算出する角度算出手段と、
前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とする回転検出手段と、を備える画像処理装置。
【請求項18】
被写体を撮影する撮影手段が出力した映像を処理する画像処理方法であって、
コンピュータが、前記撮影手段が出力した映像に対して画像処理を施すステップと、
前記コンピュータが、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替えるステップと、を含む画像処理方法。
【請求項19】
被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記撮影手段が出力した現在の画像と過去の画像との差分を算出するステップと、
前記差分に基づいて、画素値の変化を検出するステップと、
第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断するステップと、を含む画像処理方法。
【請求項20】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定するステップと、
所定の基準線に対する、前記指を特定する前記ステップが特定した各指の傾き角を算出するステップと、
前記指を特定する前記ステップが特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出するステップと、
前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定するステップと、を含む画像処理方法。
【請求項21】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出するステップと、
前記各画素までの前記距離に基づいて、手の形状を判定するステップと、を含む画像処理方法。
【請求項22】
被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出するステップと、
前記線分が、所定の基準線に対してなす角度を算出するステップと、
前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とするステップと、を含む画像処理方法。
【請求項23】
請求項18から22のいずれか一に記載の画像処理方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項24】
被写体を撮影する撮影手段が出力した画像を処理する画像処理手段と、
前記画像処理手段の処理結果に基づいて所定の機器を制御する制御手段と、を備え、
前記画像処理手段は、前記画像を複数のブロックに分割し、前記ブロックごとに、画素の変化を検出し、
前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器を制御する、電子機器。
【請求項25】
前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器の出力、前記所定の機器の向き、又は、前記所定の機器の一部の向きを制御する、請求項24記載の電子機器。
【請求項26】
前記撮影手段は、前記被写体を俯瞰撮影できる位置に設置され、
前記所定の機器は、天井に設置される、請求項24又は25記載の電子機器。
【請求項27】
前記所定の機器は、天井に設置される空気調和装置であり、この空気調和装置は、風向きを調整するための風向調整機構を有し、
前記制御手段は、前記ブロックごとの画素の変化に応じて、前記風向調整機構を制御する、請求項26記載の電子機器。
【請求項1】
被写体を撮影する撮影手段による映像に対して画像処理を施す画像処理手段と、
前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替える切替手段と、を備える画像処理装置。
【請求項2】
前記切替手段は、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードとして第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記画像処理のモードとして第2モードを設定し、
前記画像処理手段は、前記第1モードの設定時に、前記映像に写った前記被写体の形態を認識する処理、動きを検出する処理、座標を求める処理、及び面積を求める処理の全部又は一部を実行し、前記第2モードの設定時に、前記映像から、前記被写体としての動体を検出する処理、撮影空間の輝度を求める処理、及び前記被写体の存在を検出する処理の全部又は一部を実行する、請求項1記載の画像処理装置。
【請求項3】
前記画像処理手段は、前記第2モードの設定時に、前記動体を検出して追跡する処理を実行する、請求項2記載の画像処理装置。
【請求項4】
前記画像処理手段は、
前記撮影手段による現在の画像と過去の画像との差分を算出する差分手段と、
前記差分に基づいて、画素値の変化を検出する検出手段と、
第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断する判断手段と、を含む請求項2又は3記載の画像処理装置。
【請求項5】
前記画像処理手段は、前記第1モードの設定時に、前記被写体の形態としての形状を認識する処理を実行する、請求項2から4のいずれかに記載の画像処理装置。
【請求項6】
前記画像処理手段は、前記被写体としての手の形状を認識し、
前記画像処理手段は、
前記撮影手段による画像から前記被写体の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定する指特定手段と、
所定の基準線に対する、前記指特定手段が特定した各指の傾き角を算出する傾角算出手段と、
前記指特定手段が特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出する指角算出手段と、
前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定する判定手段と、を含む請求項5記載の画像処理装置。
【請求項7】
前記指特定手段は、
前記被写体の輪郭線上にある画素から、指先に相当する画素を特定する手段を含み、
前記画像処理手段は、
前記被写体の輪郭画像の重心から前記指先に相当する前記画素までの距離を算出する手段をさらに含み、
前記判定手段は、前記隣り合う指と指とがなす前記角度、及び、前記指先に相当する前記画素までの前記距離に基づいて、手の形状を判定する、請求項6記載の画像処理装置。
【請求項8】
前記画像処理手段は、前記被写体としての手の形状を認識し、
前記画像処理手段は、
前記被写体の輪郭画像の重心から輪郭線上の各画素までの距離を算出する距離算出手段と、
前記各画素までの前記距離に基づいて、手の形状を判定する判定手段と、を含む請求項5から7のいずれかに記載の画像処理装置。
【請求項9】
前記画像処理手段は、前記第1モードの設定時に、前記被写体の動きとしての回転動作を検出する処理を実行する、請求項2から8のいずれかに記載の画像処理装置。
【請求項10】
前記画像処理手段は、
前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出する長さ算出手段と、
前記線分が、所定の基準線に対してなす角度を算出する角度算出手段と、
前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とする回転検出手段と、を含む請求項9記載の画像処理装置。
【請求項11】
前記切替手段は、
光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との差分画像に写り込んだ前記被写体の面積を算出する面積算出手段と、
前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、前記画像処理のモードを設定する設定手段と、を含む請求項1から10のいずれかに記載の画像処理装置。
【請求項12】
前記画像処理手段は、前記画像処理のモードとしての第1モードでは、光を発光する発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第1差分画像に前記画像処理を施し、前記画像処理のモードとしての第2モードでは、前記発光手段の消灯時の前記撮影手段による前記映像に対して前記画像処理を施し、
前記切替手段は、
前記第1モードでは、前記第1差分画像に写り込んだ前記被写体の面積を算出する第1面積算出手段と、
前記第1モードでは、前記第1差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第1モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第1モードの設定時より長い場合に、前記第2モードを設定する第1設定手段と、
前記第2モードでは、前記発光手段の発光時の前記撮影手段による前記映像と前記発光手段の消灯時の前記撮影手段による前記映像との第2差分画像に写り込んだ前記被写体の面積を算出する第2面積算出手段と、
前記第2モードでは、前記第2差分画像上の前記被写体の前記面積に基づいて、前記被写体と前記撮影手段との間の距離を判断し、その距離に応じて、前記第2モードを設定し、前記被写体と前記撮影手段との間の距離が、前記第2モードの設定時より短い場合に、前記第1モードを設定する第2設定手段と、を含む請求項1記載の画像処理装置。
【請求項13】
前記第2モードで前記第2差分画像を得るための前記撮影手段の撮影周期は、前記第1モードで前記第1差分画像を得るための前記撮影手段の撮影周期より長く設定される、請求項12記載の画像処理装置。
【請求項14】
被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記撮影手段が出力した現在の画像と過去の画像との差分を算出する差分手段と、
前記差分に基づいて、画素値の変化を検出する検出手段と、
第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断する判断手段と、を備える画像処理装置。
【請求項15】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定する指特定手段と、
所定の基準線に対する、前記指特定手段が特定した各指の傾き角を算出する傾角算出手段と、
前記指特定手段が特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出する指角算出手段と、
前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定する判定手段と、を備える画像処理装置。
【請求項16】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出する距離算出手段と、
前記各画素までの前記距離に基づいて、手の形状を判定する判定手段と、を備える画像処理装置。
【請求項17】
被写体を撮影する撮影手段が出力した画像を処理する画像処理装置であって、
前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出する長さ算出手段と、
前記線分が、所定の基準線に対してなす角度を算出する角度算出手段と、
前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とする回転検出手段と、を備える画像処理装置。
【請求項18】
被写体を撮影する撮影手段が出力した映像を処理する画像処理方法であって、
コンピュータが、前記撮影手段が出力した映像に対して画像処理を施すステップと、
前記コンピュータが、前記被写体と前記撮影手段との間の距離に応じて、前記画像処理のモードを切り替えるステップと、を含む画像処理方法。
【請求項19】
被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記撮影手段が出力した現在の画像と過去の画像との差分を算出するステップと、
前記差分に基づいて、画素値の変化を検出するステップと、
第1閾値及び前記第1閾値より小さい第2閾値を設定し、前記画素値の変化の頻度が前記第1閾値を超える場合又は前記第2閾値を下回る場合、その変化をノイズと判断し、前記頻度が前記第1閾値と前記第2閾値との間にある場合、その変化を実質的な変化と判断し、前記動体が存在すると判断するステップと、を含む画像処理方法。
【請求項20】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記撮影手段が出力した画像から前記手の輪郭線を抽出し、その輪郭線の変曲点の画素と前記変曲点の次の変曲点の画素との間の画素に基づいて、指を特定するステップと、
所定の基準線に対する、前記指を特定する前記ステップが特定した各指の傾き角を算出するステップと、
前記指を特定する前記ステップが特定した、隣り合う指と指とがなす角度を、前記各指の前記傾き角に基づき算出するステップと、
前記隣り合う指と指とがなす前記角度に基づいて、手の形状を判定するステップと、を含む画像処理方法。
【請求項21】
被写体としての手を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記手の輪郭画像の重心から輪郭線上の各画素までの距離を算出するステップと、
前記各画素までの前記距離に基づいて、手の形状を判定するステップと、を含む画像処理方法。
【請求項22】
被写体を撮影する撮影手段が出力した画像を処理する画像処理方法であって、
前記被写体の輪郭画像の重心と輪郭線上の画素とを結ぶ線分の長さを算出するステップと、
前記線分が、所定の基準線に対してなす角度を算出するステップと、
前記長さを前記角度の関数として表したときの位相差を、前記被写体の回転角度とするステップと、を含む画像処理方法。
【請求項23】
請求項18から22のいずれか一に記載の画像処理方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項24】
被写体を撮影する撮影手段が出力した画像を処理する画像処理手段と、
前記画像処理手段の処理結果に基づいて所定の機器を制御する制御手段と、を備え、
前記画像処理手段は、前記画像を複数のブロックに分割し、前記ブロックごとに、画素の変化を検出し、
前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器を制御する、電子機器。
【請求項25】
前記制御手段は、前記ブロックごとの画素の変化に応じて、前記所定の機器の出力、前記所定の機器の向き、又は、前記所定の機器の一部の向きを制御する、請求項24記載の電子機器。
【請求項26】
前記撮影手段は、前記被写体を俯瞰撮影できる位置に設置され、
前記所定の機器は、天井に設置される、請求項24又は25記載の電子機器。
【請求項27】
前記所定の機器は、天井に設置される空気調和装置であり、この空気調和装置は、風向きを調整するための風向調整機構を有し、
前記制御手段は、前記ブロックごとの画素の変化に応じて、前記風向調整機構を制御する、請求項26記載の電子機器。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2011−205619(P2011−205619A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2011−14056(P2011−14056)
【出願日】平成23年1月26日(2011.1.26)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願日】平成23年1月26日(2011.1.26)
【出願人】(396025861)新世代株式会社 (138)
【Fターム(参考)】
[ Back to top ]