JP4618470B2 - 画像処理装置及び方法並びにロボット装置及びその制御方法 - Google Patents
画像処理装置及び方法並びにロボット装置及びその制御方法 Download PDFInfo
- Publication number
- JP4618470B2 JP4618470B2 JP2001046788A JP2001046788A JP4618470B2 JP 4618470 B2 JP4618470 B2 JP 4618470B2 JP 2001046788 A JP2001046788 A JP 2001046788A JP 2001046788 A JP2001046788 A JP 2001046788A JP 4618470 B2 JP4618470 B2 JP 4618470B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- pixels
- area
- movement amount
- current frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Toys (AREA)
- Manipulator (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
Description
【発明の属する技術分野】
本発明は画像処理装置及び方法並びにロボット装置及びその制御方法に関し、例えば4足歩行型のロボット装置に適用して好適なものである。
【0002】
【従来の技術】
近年、ユーザからの指令や周囲の環境に応じて行動を行う4足歩行型のペットロボットが本願特許出願人によって開発されている。
【0003】
かかるペットロボットは、CCD(Charge Coupled Device )カメラやマイクロホンを搭載しており、当該CCDカメラによって撮像した周囲の状況や、マイクロホンにより集音したユーザからの指令音及び周囲音等に基づいて周囲の状況やユーザからの指令の有無を判断し、この判断結果に基づいて自律的に行動を決定してこれを発現するようになされたものである。
【0004】
【発明が解決しようとする課題】
ところで画像処理によって画像内の動体を検出する方法としては、従来から種々の方法が提案され、実用化されている。そしてこれらの方法は、大きく分けて、画像フレーム間で画素の差分をとる第1の方法と、時空間フィルタを用いて画像上の任意の点におけるオプティカルフローを求める第2の方法と、フレーム間で小領域のマッチングを行い、その領域の動きを求める第3の方法の3つに分けることができる。この場合、これらのいずれの方法も画像を撮像するためのカメラが固定されており、検出された動きが外界の動きであることが前提となっている。
【0005】
しかしながら例えば上述のペットロボットのように、それぞれ多自由度関節を有するロボットでは、搭載されたCCDカメラが当該ロボットの動作に伴って大きくかつ複雑に動いてしまう。
【0006】
このためかかるペットロボットにおいて、上述のような第1〜第3の方法によって画像内の動体を検出しようとすると、フレーム間で画像全体が大きく動くことから実際に動体を撮像していてもその動きを検出することは困難であった。またこれとは逆に、周囲に動きがなくとも自己の動作によって動体を誤検出する問題もあった。
【0007】
そしてペットロボットにおいて、上述のように動体を精度良く検出し得ないと、実際には周囲に動体が存在しないにも係わらずあたかも動体があるかのような行動を発現したり、逆に周囲に動体が存在しているにも係わらず動体がないかのような行動を発現するなど、発現される行動が不自然となる問題があった。
【0008】
従ってかかるペットロボットにおいて、自己の動作の有無に係わりなく、周囲に存在する動体を精度良く検出し得るようにすることができれば、不自然な行動が発現されるのを未然に防止して、そのエンターテイメント性をより向上させ得るものと考えられる。
【0009】
本発明は以上の点を考慮してなされたもので、画像内の動体を精度良く検出し得る画像処理装置及び方法並びにエンターテイメント性を向上させ得るロボット装置及びその制御方法を提案しようとするものである。
【0010】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、画像処理装置において、画像情報に基づく画像全体の移動量を検出する第1の検出手段と、画像情報に基づく現フレームの画像における、画像情報に基づく前フレームの画像の所定の領域と対応する移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2の検出手段と、画像全体の移動量が小さいときには画素数を第1の閾値と比較し、画像全体の移動量が大きいときには画素数を第1の閾値より大きな値の第2の閾値と比較することにより、現フレームの画像内の動きを検出する第3の検出手段とを設けるようにした。この結果この画像処理装置では、画像全体の動きが小さいときには小さな動きも敏感に検出でき、画像全体の動きが大きいときには感度を下げて動きの誤検出を低減することができるので、画像全体の動きの有無に係わりなく、画像内の動体を精度良く検出することができる。
【0011】
また本発明においては、画像処理方法において、画像情報に基づく画像全体の移動量を検出する第1のステップと、画像情報に基づく現フレームの画像における、画像情報に基づく前フレームの画像の所定の領域と対応する移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2のステップと、画像全体の移動量が小さいときには画素数を第1の閾値と比較し、画像全体の移動量が大きいときには画素数を第1の閾値より大きな値の第2の閾値と比較することにより、現フレームの画像内の動きを検出する第3のステップとを設けるようにした。この結果この画像処理方法によれば、画像全体の動きが小さいときには小さな動きも敏感に検出でき、画像全体の動きが大きいときには感度を下げて動きの誤検出を低減することができるので、画像全体の動きの有無に係わりなく、画像内の動体を精度良く検出することができる。
【0012】
さらに本発明においては、行動を自律的に決定して発現するロボット装置において、外部を撮像する撮像手段と、撮像手段から出力される画像情報に基づく画像全体の移動量を検出する第1の検出手段と、画像情報に基づく現フレームの画像における、画像情報に基づく前フレームの画像の所定の領域と対応する移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2の検出手段と、画像全体の移動量が小さいときには画素数を第1の閾値と比較し、画像全体の移動量が大きいときには画素数を第1の閾値より大きな値の第2の閾値と比較することにより、現フレームの画像内の動きを検出する第3の検出手段とを設け、第3の検出手段の検出結果を行動に反映させるようにした。この結果このロボット装置では、画像全体の動きが小さいときには小さな動きも敏感に検出でき、画像全体の動きが大きいときには感度を下げて動きの誤検出を低減することができるので、自己の動作に伴う撮像手段の動きの有無に係わりなく、当該撮像手段から出力される画像情報に基づく画像内の動体を精度良く検出して、当該検出結果を反映した行動を行うことができる。
【0013】
さらに本発明においては、ロボット装置の制御方法において、ロボットに搭載された撮像手段により外部を撮像すると共に、当該撮像手段から出力される画像情報に基づく画像全体の移動量を検出する第1のステップと、画像情報に基づく現フレームの画像における、画像情報に基づく前フレームの画像の所定の領域と対応する移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2のステップと、画像全体の移動量が小さいときには画素数を第1の閾値と比較し、画像全体の移動量が大きいときには画素数を第1の閾値より大きな値の第2の閾値と比較することにより、現フレームの画像内の動きを検出する第3のステップと、第3のステップでの検出結果をロボット装置の行動に反映させる第4のステップとを設けるようにした。この結果このロボット装置の制御方法によれば、画像全体の動きが小さいときには小さな動きも敏感に検出でき、画像全体の動きが大きいときには感度を下げて動きの誤検出を低減することができるので、ロボット装置の動作に伴う撮像手段の動きの有無に係わりなく、当該撮像手段から出力される画像情報に基づく画像内の動体を精度良く検出して、当該検出結果を反映した行動をロボット装置に行わせることができる。
【0014】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【0015】
(1)本実施の形態によるペットロボットの構成
図1において、1は全体として本実施の形態によるペットロボットを示し、胴体部ユニット2の前後左右にそれぞれ脚部ユニット3A〜3Dが連結されると共に、胴体部ユニット2の前端部及び後端部にそれぞれ頭部ユニット4及び尻尾部ユニット5が連結されることにより構成されている。
【0016】
胴体部ユニット2には、図2に示すように、CPU(Central Processing Unit )10、DRAM(Dynamic Random Access Memory)11、フラッシュROM(Read Only Memory)12、PC(Personal Computer )カードインターフェース13及び信号処理回路14が内部バス15を介して相互に接続されることにより形成されたコントロール部16と、このペットロボット1の動力源としてのバッテリ17とが収納されている。また胴体部ユニット2には、ペットロボット1の向きや動きの加速度を検出するための角加速度センサ18及び加速度センサ19なども収納されている。
【0017】
また頭部ユニット4には、外部の状況を撮像するためのCCDカメラ20と、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチセンサ21と、前方に位置する物体までの距離を測定するための距離センサ22と、外部音を集音するためのマイクロホン23と、鳴き声等の音声を出力するためのスピーカ24と、ペットロボット1の外見上の「目」に相当する図示しないLED(Light Emitting Diode)となどがそれぞれ所定位置に配設されている。
【0018】
さらに各脚部ユニット3A〜3Dの関節部分や、脚部ユニット3A〜3D及び胴体部ユニット2の各連結部分、頭部ユニット4及び胴体部ユニット2の連結部分、並びに尻尾部ユニット5の尻尾5A(図1)の付け根部分などにはそれぞれ自由度数分のアクチュエータ25(251、252、253……)及びポテンショメータ26(261、262、263……)が配設されている。
【0019】
そしてこれら角速度センサ18、加速度センサ19、タッチセンサ21、距離センサ22、マイクロホン23、スピーカ24、LED、各アクチュエータ25及び各ポテンショメータ26は、それぞれハブ27(271〜27n)を介してコントロール部16の信号処理回路14にツリー状に接続されている。またCCDカメラ20及びバッテリ17は、それぞれ信号処理回路14と直接接続されている。
【0020】
このとき信号処理回路14は、角速度センサ18、加速度センサ19、タッチセンサ21、距離センサ22及び各ポテンショメータ26等の各種センサからそれぞれハブ27を介して供給されるセンサデータや、CCDカメラ20から供給される画像データ及びマイクロホン23から与えられる音声データを順次取り込み、これらをそれぞれ内部バス15を介してDRAM11内の所定位置に順次格納する。また信号処理回路14は、バッテリ17から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをDRAM11内の所定位置に格納する。
【0021】
そしてこのようにDRAM11に格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、この後CPU10がこのペットロボット1の動作制御を行う際に利用される。
【0022】
実際上CPU10は、ペットロボット1の電源が投入された初期時、胴体部ユニット2の図示しないPCカードスロットに装填されたメモリカード28又はフラッシュROM12に格納された制御プログラムをPCカードインターフェース13を介して又は直接読み出し、これをDRAM11に展開する。
【0023】
またCPU10は、この後上述のように信号処理回路14よりDRAM11に順次格納される各種センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、ユーザからの指示及び働きかけの有無などを判断する。
【0024】
さらにCPU10は、この判断結果及びDRAM11に展開した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に応じた第1の駆動信号を生成してこれを必要なアクチュエータ25に送出することにより、頭部ユニット4を上下左右に振らせたり、尻尾部ユニット5の尻尾5Aを動かせたり、各脚部ユニット3A〜3Dを駆動させて歩行させるなどの行動を行わせる。
【0025】
またこの際CPU10は、必要に応じて音声信号や第2の駆動信号を生成し、これらを信号処理回路14を介してスピーカ24や「目」のLEDに与えることにより、当該音声信号に基づく音声を外部に出力させたり、第2の駆動信号に基づいて当該LEDを点灯、消灯又は点滅させる。
【0026】
このようにしてこのペットロボット1においては、自己及び周囲の状況や、ユーザからの指示及び働きかけ等に応じて自律的に行動し得るようになされている。
【0027】
なお信号処理回路14の具体構成を図3に示す。この図3からも明らかなように、信号処理回路14は、DMA(Direct Memory Access)コントローラ30、DSP(Digital Signal Processor)31、ペリフェラルインターフェース32、タイマ33、FBK/CDT(Filter Bank/Color Detection )34、IPE(Inner Product Engin )35、シリアルバスホストコントローラ36、シリアルバス37がバス38及び当該バス38の使用権の調停を行うバスアービタ39を順次介してバス40に接続されると共に、当該バス40がそれぞれDRAMインターフェース41、ホストインターフェース42及びROMインターフェース43を介してDRAM11(図2)、CPU10(図2)及びフラッシュROM12(図2)と接続され、かつペリフェラルインターフェース32にパラレルポート44、バッテリマネージャ45及びシリアルポート46が接続されることにより構成されている。
【0028】
この場合図2について上述した角速度センサ18、加速度センサ19、タッチセンサ21、距離センサ22、マイクロホン23、スピーカ24、各アクチュエータ25及び各ポテンショメータ26等のデバイスは、それぞれハブ27(271〜27n)を介してシリアルホストコントローラ36と接続されると共に、CCDカメラ20(図2)はFBK/CDT34と接続され、かつバッテリ17(図2)はバッテリマネージャ45と接続されている。
【0029】
そしてシリアルホストコントローラ36は、接続された各デバイスのうち、角速度センサ18、加速度センサ19、タッチセンサ21、距離センサ22及び各ポテンショメータ26等の各センサからそれぞれ与えられるセンサデータを順次取り込み、データの転送を司るバスマスタとして機能するDMAコントローラ30の制御のもとに、これらセンサデータをバス38、バスアービタ39、バス40及びDRAMインターフェース41を順次介してDRAM11に与えて記憶させる。
【0030】
またシリアルホストコントローラ36は、マイクロホン23から与えられる音声データをDSP31に送出すると共に、当該DSP31は、供給されるホストコントローラ36から与えられる音声データに対して所定のデータ処理を施し、その処理結果でなる音声データを、DMAコントローラ30の制御のもとに、バス38、バスアービタ39、バス40及びDRAMインターフェース41を順次介してDRAM11に転送し、これを当該DRAM11内の所定の記憶領域に格納する。
【0031】
またFBK/CDT34は、CCDカメラ20から供給される画像データを色認識を行いながら複数の解像度に分けて取り込み、得られた画像データを、DMAコントローラ30の制御のもとに、バス38、バスアービタ39、バス40及びDRAMインターフェース41を順次介してDRAM11(図2)に転送し、これを後述のように当該DRAM11内の指定された記憶領域に格納する。
【0032】
さらにバッテリマネージャ45は、バッテリ17から通知されるエネルギ残量を表すバッテリ残量データを、DMAコントローラ30の制御のもとに、ペリフェラルインターフェース32、バス38、バスアービタ39、バス40及びDRAMインターフェース41を順次介してDRAM11に転送し、これを当該DRAM11内の所定の記憶領域に格納する。
【0033】
一方、信号処理回路14は、上述のようにCPU10(図2)からバス15を介して与えられる各アクチュエータ25を駆動するための第1の駆動信号や、音声信号及びLEDを駆動するための第2の駆動信号をホストインターフェース42を介して入力する。
【0034】
そして信号処理回路14は、これらをバス40、バスアービタ39、バス38及びシリアルバスホストコントローラ36並びに対応するハブ27(271〜27n)(図2)を順次介して対応するアクチュエータ25(251、252、253……)(図2)や、スピーカ24又はLEDに送出する。
【0035】
このようにして信号処理回路14においては、各センサ、CCDカメラ20、マイクロホン23、スピーカ、各アクチュエータ25などの各デバイスと、CPU10との間において、CPU10がペットロボット1の行動を制御するために必要な各種信号処理を行い得るようになされている。
【0036】
なおIPE35は、画像間のマッチング処理を高速に行うことができる2次元ディジタルフィルタであり、後述のように2画像を1画素ずつずらしながら、各ずらし位置におけるこれら2画像間の相関性を表すマッチングスコアを所定の演算式に基づいて順次計算し得るようになされている。
【0037】
またシリアルバス37は、パーソナルコンピュータ(PC)などのリモートコンピュータに接続するためのインターフェースであり、パラレルポート44及びシリアルポート46は、当該リモートコンピュータと接続するためのコネクタである。さらにタイマ33は、ペットロボット1の内部の時計としての役割を果たすものである。
【0038】
(2)ペットロボット1における画像データの転送方法
ここではCCDカメラ20(図2)から入力される画像データをDRAM11(図2)に転送する転送方法について説明する。図4に示すように、CCDカメラ20から出力された画像データは、信号処理回路14(図2)のFBK/CDT34に入力され、当該FBK/CDT34において所定の画像処理が施された後、DMAコントローラ30(図3)の制御のもとに、バスアービタ39(図3)及びDRAMインターフェース41(図3)を順次介してDRAM11に転送される。
【0039】
ところでDMAコントローラ30は、バスアービタ39及びDRAMインターフェース41を順次介してDRAM11からCPU10(図2)によって生成されたDMAリストを読み出し、当該DMAリストに記述された画像データの転送先や転送先に関する情報に基づいて画像データの転送を行うようになされている。
【0040】
従ってこのペットロボット1においては、CPU10がDMAリストを書き換えることによって、DMAコントローラ30がDBK/CDT34から出力される画像データをDRAM11上の任意の位置に転送することができる。このようにペットロボット1では、画像データをDRAM11に転送して展開することにより、CPU10のキャッシュ機能を有効に利用して高速なデータ処理を行い得るようになされている。
【0041】
以下、ペットロボット1における画像データの転送方法についてFBK/CDT34の構成を示す図4を用いながら具体的に説明する。
【0042】
CCDカメラ20から出力された画像データは、8ビットのパラレルデータ、クロック信号及び同期信号からなり、FBK/CDT34の入力画像インターフェース50に入力されて所定のフォーマットに変換された後、フィルタ演算部51に供給される。
【0043】
ところでCPU10は、DRAM11に記憶されている制御プログラムに基づいて各種フィルタ係数を決定し、当該決定したフィルタ係数をパラメータ記憶部52に与えてこれを記憶させるようになされている。
【0044】
そしてフィルタ演算部51は、このパラメータ記憶部52に記憶されているフィルタ係数を用いて入力画像インターフェース50から与えられる画像データにフィルタ演算を施すことにより、当該画像データの色認識を行いながら複数の解像度の画像データを生成する。
【0045】
フィルタ演算部51の後段には、それぞれ1ライン分の画像データを記憶できる記憶容量を有する2つのバッファ53A、53Bが設けられており、フィルタ演算部51は、生成した画像データを1ライン毎に交互にバッファ53A、53Bに送出してこれを記憶させる。
【0046】
その際DMAインターフェース54は、2つのバッファ53A、53Bのうちの一方のバッファ53A、53Bに1ライン分の画像データを記憶させている間に他方のバッファ53A、53Bから1ライン分の画像データを読み出し、当該読み出した1ライン分の画像データをDMAコントローラ30の指示に基づいてDRAM11に転送することにより、複数の画像データを順次DRAM11に転送する。なおバッファ53A、53Bは、それぞれ1ライン分の記憶容量を持つだけでなので、記憶容量が少なく、簡易な構成のFBK/CDT34を実現している。
【0047】
ところでこのような画像データの転送は、バスマスタとして機能するDMAコントローラ30によって行われる。すなわちDMAインターフェース54は、2つのバッファ53A、53Bのうちいずれか一方が1ライン分の画像データを記憶すると、DMAコントローラ30に対してDMAリクエストと呼ばれる転送要求信号を送出する。
【0048】
そしてDMAコントローラ30は、DMAリクエストが供給されると、まずバス38(図3)の使用権を獲得し、次いでCPU10によって通知されるアドレスを基にDRAM11から対応するDMAリストを読み出す。
【0049】
そしてDMAコントローラ30は、このDMAリストに基づいて画像データの転送先であるDRAM11上のアドレスを順次生成し、バス38に対して書込み信号を発行する。FBK/CDT34は、このバス38に対する書込み信号に同期して、一方のバッファ53A、53Bに蓄積されている画像データを読み出してバス38に順次送出する。
【0050】
このFBK/CDT34から出力された画像データは、FBK/CDT34から出力されると同時にDRAM11に書き込まれることから、画像データの転送は非常に高速に行われる。ところで、画像データの転送先に関する設定は、DMAリストによって行われることから、DMAコントローラ30は画像データをDRAM11上の任意の位置に転送し得るようになされている。
【0051】
そしてFBK/CDT34は、かかるバッファ53A、53Bに蓄積されていた1ライン分の画像データの転送を終了すると、DMAコントローラ30に対するDMAリクエストを取り下げて画像データの転送を打ち切る。これを受けてDMAコントローラ30は、DMAリクエストが取り下げられたタイミングまでに転送した画像データのデータ量などの情報をDMAリストに書き込み、この後バス38を解放する。そしてDMAコントローラ30は、再びDMAリクエストが供給されると、上述のDMAリストをDRAM11から読み出して前回の続きの転送を行う。
【0052】
このようにしてこのペットロボット1では、画像データを高速に転送処理することができるようになされている。
【0053】
(3)ペットロボット1における画像処理方法
次に、このペットロボット1における画像処理方法について説明する。これに際して、まずペットロボッ1の制御プログラムのソフトウェア構成について説明する。
【0054】
このペットロボット1には、以下のような機能を有するオペレーティング・システムが搭載されている。
1.複数のタスクを実行可能
2.タスク間でデータの転送が可能
3.タスク間でメモリ(DRAM11)を共有することができる
【0055】
具体的にはオペレーティング・システムとしてアペリオス(Aperios)(ソニー株式会社、商標)が用いられ、このオペレーティング・システム上における各オブジェクト間の通信方式として、例えば特願平11-006491 号に開示された通信方式が用いられている。
【0056】
図5は、このペットロボット1における制御プログラムのソフトウェア構成を示すものである。この図5において、デバイス・ドライバ・レイヤ60は、かかる制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット61によって構成されている。
【0057】
この場合各デバイス・ドライバは、CCDカメラ20(図2)やタイマ33(図3)等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【0058】
またロボティック・サーバ・オブジェクト62は、デバイス・ドライバ・レイヤ60の上位層に位置し、例えば上述の各センサやアクチュエータ25(251、252、253……)(図2)等のハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット63と、電源の切り換えなどを管理するソフトウェア群でなるパワーマネイジャ64と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ65と、ペットロボット1の機構を管理するソフトウェア群でなるデザインド・ロボット66とから構成されている。
【0059】
マネージャ・オブジェクト67は、オブジェクト・マネージャ68及びサービス・マネージャ69から構成されている。この場合オブジェクト・マネージャ68は、ロボティック・サーバ・オブジェクト62、ミドル・ウェア・レイヤ70及びアプリケーション・レイヤ71に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネージャ69は、メモリカード28(図2)に格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【0060】
ミドル・ウェア・レイヤ70は、ロボティック・サーバ・オブジェクト62の上位層に位置し、画像処理や音声処理などのこのペットロボット1の基本的な機能を提供するソフトウェア群から構成されている。またアプリケーション・レイヤ71は、ミドル・ウェア・レイヤ70の上位層に位置し、当該ミドル・ウェア・レイヤ70を構成する各ソフトウェア群によって処理された処理結果に基づいてペットロボット1の行動を決定するためのソフトウェア群から構成されている。
【0061】
マネージャ・オブジェクト67は、オブジェクト・マネージャ及びサービス・マネージャによって構成されており、このうちオブジェクト・マネージャは、ロボティック・サーバ・オブジェクト・ミドル・ウェア・レイヤ及びアプリケーション・レイヤを構成するソフトウェア群の起動や終了を管理するソフトウェア群でなり、サービス・マネージャは、メモリカードに記憶されているコネクションファイルに記述された各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【0062】
以下、かかる構成の制御プログラムに基づいてペットロボット1の内部において行われる画像処理について、色検出、動き検出及び障害物検出といった複数の画像処理のタスクを同時に実行する場合を例に、図6及び図7を用いて図8を参照しながら説明する。
【0063】
図6及び図7は、かかる画像処理のシステム起動時からの手順(以下、これを画像処理手順RT1と呼ぶ)を示すものであり、ペットロボット1の電源が投入されるとこの画像処理手順RT1が開始され、続くステップSP2において、コントロール部16(図2)のCPU10がデバイス・ドライバ・セット61(図5)を構成する図8に示すFBK/CDTドライバ61Aを起動してFBK/CDT34を初期化する。
【0064】
続くステップSP3において、CPU10は、ロボティック・サーバ・オブジェクト62(図5)を起動する。このときバーチャル・ロボット63(図5)も起動する。そしてバーチャル・ロボット63は、起動後、図8に示すように、画像データを記憶するための共有メモリ80を複数個DRAM11(図2)上に生成し、この後FBK/CDTドライバ61Aに対して画像サイズのような画像の属性に関する情報を設定する。
【0065】
またCPU10は、ロボティック・サーバ・オブジェクト62(図5)の起動が終了すると、ミドル・ウェア・レイヤ70(図5)を構成している画像処理オブジェクトを順次起動する。因に、生成された共有メモリ80の記憶容量は、バーチャル・ロボット63(図5)の指示に応じて容易に変更が可能である。
【0066】
続くステップSP4において、バーチャル・ロボット63は、DRAM11上に生成した複数の共有メモリ80のうち所望の共有メモリ80のアドレスをFBK/CDTドライバ61Aに通知すると共に、当該通知したアドレスの共有メモリ80に画像データを転送することを要求するリード要求をFBK/CDTドライバ61Aに発行する。
【0067】
そしてFBK/CDTドライバ61Aは、リード要求を受け取ると、続くステップSP5において、指定された共有メモリ80に画像データを転送するためのDMAリスト81を生成してDRAM11(図2)に記憶する。その際FBK/CDTドライバ61Aは、DRAM11に記憶されたDMAリスト81のアドレスをDMAコントローラ30(図3)に通知した後、FBK/CDT34に対して画像データを出力することを許可する。
【0068】
続くステップSP6において、FBK/CDT34は、FBK/CDTドライバ61Aからの画像データの出力許可を受けて1フィールド分の画像データを指定された共有メモリ80に転送すると、FBK/CDTドライバ61Aに対して割り込みを発生させ、割込みハンドラと呼ばれるソフトウェアを起動させる。そしてステップSP7において、この割込みハンドラは、バーチャル・ロボット63に対して画像データの転送が終了したことを通知する。
【0069】
このときバーチャル・ロボット63は、続くステップSP8において、必要なフィールド数分の画像データが転送されたか否かを判断する。そしてバーチャル・ロボット63は、このステップSP8において否定結果を得るとステップSP9に進んで次に転送すべき共有メモリ80のアドレスをFBK/CDTドライバ61Aに渡してリード要求を発行した後、ステップSP5に戻ってこの後ステップSP8において肯定結果を得るまでステップSP5−SP6−SP7−SP8−SP9−SP5のループを繰り返す。
【0070】
一方CPU10は、ステップSP8において肯定結果を得るとステップSP10に進んで、ミドル・ウェア・レイヤ70(図5)を構成する各画像処理オブジェクトが起動し終えるのを待ち受け、やがて画像処理オブジェクトが起動し終えると、ステップSP11に進む。
【0071】
そしてマネージャ・オブジェクト67のサービス・マネージャ69は、ミドル・ウェア・レイア70の各画像処理オブジェクトの起動が終えると、続くステップSP11において、これら画像処理オブジェクトに対してそれぞれ接続相手先の画像処理オブジェクトを通知し、各画像処理オブジェクト間で通信路を開く。
【0072】
例えばサービス・マネージャ69は、図8において明らかなように、色検出用画像処理オブジェクト82及びエッジ検出用画像処理オブジェクト84をバーチャル・ロボット63に接続する。またサービス・マネージャ69は、重心計算用画像処理オブジェクト85を色検出用画像処理オブジェクト82に接続すると共に、重心計算用画像処理オブジェクト86を動き検出用画像処理オブジェクト83に接続する。
【0073】
さらにサービス・マネージャ69は、障害物検出用画像処理オブジェクト87及び座標変換用画像処理オブジェクト88をエッジ検出用画像処理オブジェクト84に階層的に接続する。因に、このような各画像処理オブジェクト間の接続は変更が可能であり、各画像処理オブジェクトの接続関係を変更することで様々な処理を行い得る。
【0074】
続くステップSP12において、サービス・マネージャ69は、各画像処理オブジェクト間の接続が終了すると、当該各画像処理オブジェクトにスタート信号を送出する。これを受けて各画像処理オブジェクトは、続くステップSP13において、コネクションファイルに記述された接続情報に基づいて下位層にある接続先の画像処理オブジェクトにデータ要求信号を送出する。
【0075】
ところで色検出用画像処理オブジェクト82、動き検出用画像処理オブジェクト83及びエッジ検出用画像処理オブジェクト84は、FBK/CDT34から順次供給される画像データを、それぞれ異なるフィード間隔で読み出すようになされており、バーチャル・ロボット63は、供給される画像データのうち、各画像処理オブジェクトがそれぞれ読み出すべき画像データを把握している。
【0076】
従ってバーチャル・ロボット63は、続くステップSP14において、各画像処理オブジェクトからデータ要求信号を受け取ると、各画像処理オブジェクトがそれぞれ読み出すべき画像データが格納されている共有メモリ80に割り当てられているID(Identification)(すなわちアドレス情報)を各画像処理オブジェクトにそれぞれ通知する。その際バーチャル・ロボット63は、内部の参照回数計測カウンタを用いて、各画像処理オブジェクトに通知したIDのそれぞれに対して、通知した画像処理オブジェクトの数をカウントしてそのカウント値を記憶しておく。
【0077】
このときバーチャル・ロボット63は、参照回数計測カウンタによるカウント値が「0」でないIDの共有メモリ80には、FBK/CDT34から供給される画像データを上書きせずに、カウント数が「0」の共有メモリ80に画像データを上書きして順次記憶していくことにより、各画像処理オブジェクトが読み出す可能性のある画像データを誤って消去することを回避している。
【0078】
続いてステップSP15において、各画像処理オブジェクトは、通知されたIDが割り当てられている共有メモリ80から画像データを読み出す。その際、各画像処理オブジェクトは、それぞれ同一の共有メモリ80に記憶されている画像データを読み出す場合もある。しかしながら共有メモリ80は、読み出し専用のメモリであることから、各画像処理オブジェクトはそれぞれ互いに干渉することなく画像データの読み出しを行い得る。
【0079】
次いでステップSP16において、各画像処理オブジェクトは、それぞれ必要な数だけ画像データを読み出したか否か判断し、その結果として必要な数だけ画像データを読み出していないと判断した場合にはステップSP17に進む。
【0080】
そして各画像処理オブジェクトは、コネクションファイルに記述された接続情報に基づいて、次の画像データを要求するためのデータ要求信号をそれぞれバーチャル・ロボット63に送出する。そしてバーチャル・ロボット63は、続くステップSP18において、データ要求信号を受け取ると、データ要求信号を送出した画像処理オブジェクトに通知したIDに対応して記憶されている参加回数測定カウンタのカウント数をデータ要求信号が供給されるごとに減算する。
【0081】
そしてバーチャル・ロボット63は、そのカウント数が「0」になったときに、当該カウントが「0」になったIDが割り当てられている共有メモリ80に記憶されている画像データの保護を解除し、ステップSP14に戻って同じ動作を繰り返す。
【0082】
さらに各画像処理オブジェクトは、やがてステップSP16において肯定結果を得ると、ステップSP19に進んで各画像処理オブジェクトが画像データを所望の共有メモリ80から読み出し、これら読み出した画像データに対してそれぞれ所定の画像処理を施し、その処理結果を上位層のオブジェクトに送出する。
【0083】
例えば色検出用画像処理オブジェクト82は、読み出した画像データから色の検出を行い、その処理結果を重心計算用画像処理オブジェクト85に送出して検出した色の位置を算出させる。また動き検出用画像処理オブジェクト83は、画像データから動き領域の検出を行い、その処理結果を重心計算用画像処理オブジェクト86に送出して検出した動き領域の位置や大きさを算出させる。
【0084】
さらにエッジ検出用画像処理オブジェクト84は画像データからエッジの検出を行い、その処理結果を障害物検出用画像処理オブジェクト87に送出して障害物の位置を算出させた後、座標変換用画像処理オブジェクト88において障害物の位置を座標変換させる。そしてCPU10は、この後ステップSP20に進んでこの処理(画像処理手順RT1)を終了する。
【0085】
このように各画像処理オブジェクトは、DRAM11上に生成された共有メモリ80から画像データを読み出すようになされていることから、CCDカメラ20に依存しない汎用的な画像処理オブジェクトを実現することができ、従って複数の汎用的な画像処理オブジェクトを組み合わせることで、様々な画像処理を容易に行い得るようになされている。
【0086】
(4)ペットロボット1における動体検出のアルゴリズム
次にこのペットロボット1における動体検出方法について説明する。
【0087】
このペットロボット1では、図9(A)に示す1つ前のフレームの画像(以下、これを前フレーム画像と呼ぶ)90の画像データ及び図9(B)に示す現在のフレームの画像(以下、これを現フレーム画像と呼ぶ)91の画像データに基づいて、現フレーム画像91内の前フレーム画像90の中心部分90Aと相関の高い画像領域91Aを検出するようにしてペットロボット1の動作に伴う画像全体の動き量(以下、これを画像全体の移動量と呼ぶ)を検出し、当該検出結果を利用して図9(C)のように画像内の動きのある部分のみを抽出することにより動体を精度良く検出し得るようになされている。
【0088】
この場合このような一連の処理は、図10に示す動体検出処理手順RT2に従って、ミドル・ウェア・レイア70(図5)の動き検出用画像処理オブジェクト83(図8)、重心計算用画像処理オブジェクト86(図8)及び信号処理回路14(図2)内のIPE35(図3)によって行われる。以下、このようなペットロボット1における動体検出方法について説明する。
【0089】
動体検出処理手順RT2は、動き検出用画像処理オブジェクト83の起動によりステップSP30において開始される。そして続くステップSP31において、動き検出用画像処理オブジェクト83は、DRAM11上の指定された共有メモリ80から画像データを取り込んでこれを保存すると共に、続くステップSP32において、かかる画像データの取り込みが1回目であるか否かを判断する。
【0090】
そして動き検出用画像処理オブジェクト83は、このステップSP32において肯定結果を得ると再びステップSP31に戻り、この後ステップSP31及びステップSP32を繰り返す。
【0091】
さらに動き検出用画像処理オブジェクト83は、やがてステップSP32において肯定結果を得るとステップSP33に進んで、図11(A)に示すように、前フレーム画像92の中心領域(前フレーム画像92から上下左右の所定幅を除いた画像領域部分)92Aをテンプレートとして、当該中心領域92Aを上下左右に4分割したときの左上、右上、左下及び右下の各分割領域(以下、これらを第1〜第4のテンプレート分割領域92A1〜92A4と呼ぶ)の画像データを順次IPE35に転送する。
【0092】
また動き検出用画像処理オブジェクト83は、続くステップSP34において、図11(C)に示すように、現フレーム画像93全体を検索画像として、当該現フレーム画像93を所定画素数分だけ上又は下及び左又は右にオーバーラップさせながら上下左右に4分割したときの左上、右上、左下及び右下の各分割領域(以下、これらを第1〜第4の検索画像分割領域93A1〜93A4と呼ぶ)の画像データをIPE35に転送する。
【0093】
従ってこの例では、図11(C)における第2の横線lx2及び第2の縦線ly2によって区切られる現フレーム画像93の左上の画像領域(第1の検索画像分割領域93A1)と、第2の横線lx2及び第1の縦線ly1によって区切られる現フレーム画像93の右上の画像領域(第2の検索画像分割領域93A2)と、第1の横線lx1及び第2の縦線ly2によって区切られる現フレーム画像93の左下の画像領域(第3の検索画像分割領域93A3)と、第1の横線lx1及び第1の縦線ly1によって区切られる現フレーム画像93の右下の画像領域(第4の検索画像分割領域93A4)の各画像領域の画像データがIPE35に転送される。
【0094】
続くステップSP35において、IPE35は、前フレーム画像92の中心領域92Aに基づく第1〜第4のテンプレート分割領域92A1〜92A4と、現フレーム画像93の対応する位置の第1〜第4の検索画像分割領域93A1〜93A4とのマッチング処理を行う。
【0095】
具体的にIPE35は、第1のテンプレート分割領域92A1及び第1の検索画像分割領域93A1について、これらを縦方向や横方向に1画素単位でずらしながら、当該ずらした位置(以下、これをずらし位置と呼ぶ)における次式
【0096】
【数1】
【0097】
で与えられるマッチングスコアを順次演算すると共に、かくして得られたマッチングスコアをDRAM11に順次DMA転送してこれを記憶させる。
【0098】
またIPE35は、これと同様にして第2のテンプレート分割領域92A2及び第2の検索画像分割領域93A2、第3のテンプレート分割領域92A3及び第3の検索画像分割領域93A3、並びに第4のテンプレート分割領域92A4及び第4の検索画像分割領域93A4について、これらをそれぞれ縦方向又は横方向に1画素単位でずらしながら、各ずらし位置における(1)式で与えられるマッチングスコアを順次演算すると共に、かくして得られたマッチングスコアをDRAM11に順次DMA転送してこれを記憶させる。
【0099】
そして動き検出用画像処理オブジェクト83は、全てのマッチングスコアの値が算出されると、次式
【0100】
【数2】
【0101】
で与えられる演算を実行することにより、各ずらし位置における第1〜第4のテンプレート分割領域92A1〜92A4についての4つのマッチングスコアを加算したスコア(以下、これを総合マッチングスコアと呼ぶ)を算出する。
【0102】
ここで現フレーム画像93における上述のようにして算出された総合マッチングスコアの値が最も小さい画像領域が前フレーム画像92の中心領域92Aと最も相関が高い領域部分であり、従って前フレーム画像92の中心領域92Aの中心位置からこの画像領域の中心位置までの距離がペットロボット1の動きに伴う前フレーム及び現フレーム間における画像全体の移動量となる。
【0103】
そこで動き検出用画像処理オブジェクト83は、続くステップSP36において、ステップSP35において得られた各加算結果に基づいて、図12に示すように、現フレーム画像93のうちの総合マッチングスコアの値が最も小さい前フレーム画像92の中心領域92Aと同じ大きさの画像領域(すなわち最も相関が高い領域部分であり、図12において破線で囲まれた部分)93Bの中心位置(xC2,yC2)を記憶すると共に、当該中心位置(xC2,yC2)から現フレーム画像93の中心位置(xC1,yC1)までの間の距離及び方向を算出するようにして、前フレーム及び現フレーム間における画像全体の移動量を検出する。
【0104】
続くステップSP37において、動き検出用画像処理オブジェクト83は、ステップSP36において検出したかかる画像領域93Bについての総合マッチングスコアが予め定められた所定の閾値よりも小さいか否かを判断することにより、その画像領域93Bと、前フレーム画像92の中心領域92Aとの相関が所定レベルよりも低いか否かを判断する。
【0105】
ここでこのステップSP37において否定結果を得ることは、前フレーム及び現フレーム間において、現フレーム画像93のかかる画像領域93B内に動きや輝度変化などが生じなかった、又は生じたがその動きや輝度変化などが小さかったことを意味し、このとき動き検出用画像処理オブジェクト83は、ステップSP41に進む。
【0106】
これに対してステップSP37において肯定結果を得ることは、前フレーム及び現フレーム間において、現フレーム画像93のかかる画像領域93B内にある程度の動きや輝度変化が生じたことを意味する。そしてこのとき動き検出用画像処理オブジェクト83は、ステップSP38に進んで、ステップSP36において検出した画像全体の移動量を利用しながら、前フレーム画像92の中心領域92A内の各画素の輝度レベルと、現フレーム画像93のかかる画像領域93B内の対応する画素の輝度レベルとの差分を順次計算する。
【0107】
この結果このような処理によって、前フレーム画像92の中心領域92Aと、現フレーム画像93のかかる画像領域93Bとの差分画像のデータが得られ、このデータ(以下、これを差分データと呼ぶ)が重心計算用画像処理オブジェクト86(図8)に出力される。
【0108】
重心計算用画像処理オブジェクト86は、続くステップSP39において、動き検出用画像処理オブジェクト83から与えられる差分データに基づいて、差分データの値が予め設定された所定の閾値よりも大きい画素が集まっている領域、すなわち画像内の動きのあった領域(以下、これを動き領域と呼ぶ)を検出すると共に、その動き領域の画素数をカウントし、さらに当該動き領域の重心位置を検出する。
【0109】
そして重心計算用画像処理オブジェクト86は、この後ステップSP40において、上述のステップSP36において検出した現フレーム画像93の画像領域93Bが、前フレーム画像92を現フレーム画像とした1つ前の処理において検出した位置と同じ位置にあるか否かを判断する。
【0110】
ここで画像領域93Bが同じ位置にあることは、前フレーム及び現フレーム間において画像全体の動きが小さいことを意味し、このとき重心計算用画像処理オブジェクト86は、現フレーム画像93内のかかる動き領域の画素数を予め設定された第1の閾値THSTと比較する。これに対して画像領域93Bが同じ位置にないことは、前フレーム及び現フレーム間において画像全体の動きが大きいことを意味し、このとき重心計算用画像処理オブジェクト86は、かかる動き領域の画素数を予め設定された第2の閾値THMV(>THST)と比較する。このように重心計算用画像処理オブジェクト86は、かかる動き領域の画素数が第1又は第2の閾値THST、THMVよりも大きいか否かを判断することによって画像内に動きがあったか否かを判断する。
【0111】
なおこのようにステップSP36において検出した現フレーム画像93の画像領域93Bの位置に応じて比較する閾値を分けたことにより、第1の閾値THSTを小さめに設定することによってペットロボット1に動きがないときには小さな動きも敏感に検出することができ、第2の閾値THMVを大きめに設定することによってペットロボットに動きがあるときには感度を下げて動きの誤検出を低減することができる。
【0112】
続くステップSP41において、CPU10は、ステップSP40における動きの有無の判断結果を10フレーム分取得したか否かを判断する。そして否定結果を得るとステップSP31に戻り、この後ステップSP41において肯定結果を得るまでステップSP31〜ステップSP41を繰り返す。
【0113】
そしてやがてステップSP41において肯定結果を得ると、重心計算用画像処理オブジェクト86は、フレーム数のカウント値をリセットした後ステップSP42に進んで、ステップSP40における過去10フレーム分の動きの有無の判断結果に基づいて実際に外部に動きがあったか否かを判断する。具体的には、重心計算用画像処理オブジェクト86は、例えばかかる10フレームのうちの半分以上のフレームにおいて動きが検出された場合には真に動きがあったと判断し、これに対して半分以上のフレームにおいて動きが検出されなかった場合には動きがなかったと判断する。
【0114】
そして重心計算用画像処理オブジェクト86は、真に動きがあったと判断した場合には、ステップSP39において検出した最新のフレーム画像(過去10フレームのうちの最後のフレーム)内における動き領域の重心位置をアプリケーション・レイヤ71内の対応するモジュールに通知した後ステップSP31に戻り、これに対して動きがなかった判断した場合には何の通知も行うことなくこの後ステップSP31に戻る。
【0115】
このようにしてこのペットロボット1においては、自身の動きに伴う画像全体の動きを考慮しながら画像内の動体を精度良く検出し得るようになされている。
【0116】
(5)動体検出結果の行動への反映
次に上述のようにして得られた動体検出結果が実際にペットロボット1の行動にどのように反映されるかについて説明する。
【0117】
動体検出処理手順RT2(図10)のステップSP42において真に動きがあったと判断された場合、この判断結果は図13に示すアプリケーション・レイヤ71内の行動決定モジュール100に通知される。
【0118】
この行動決定モジュール100は、DRAM11に格納される各センサデータに基づいて外部及び内部の状態を認識すると共に、当該認識結果及び重心計算用画像処理オブジェクト86(図8)から与えられる通知等に基づいてペットロボット1の行動を決定するモジュールであり、「喜び」、「悲しみ」、「驚き」、「恐怖」、「嫌悪」及び「怒り」の合計6つの情動について、各情動ごとにその情動の強さを表すパラメータを保持している。
【0119】
そして行動決定モジュール100は、これら各情動のパラメータの値を、それぞれ認識した外部及び内部の状態や、重心計算用画像処理オブジェクト86から与えられる通知等に基づいて所定周期で順次更新すると共に、これら各情動のパラメータの値と、認識した外部及び内部の状態とに基づいて次の行動を決定し、当該決定結果に基づく行動指令をミドル・ウェア・レイヤ70の動作生成モジュール101又は追尾モジュール102に送出する。
【0120】
また動作生成モジュール101及び追尾モジュール102は、与えられる行動指令を基づいて、その行動を行うために対応する各アクチュエータ25に与えるべきサーボ指令値を生成し、これらを上述の駆動信号としてロボティック・サーバ・オブジェクト62のバーチャルロボット63及び信号処理回路14を順次介して対応する各アクチュエータ25に送出する。
【0121】
この結果、例えば突然に動きが検出された場合には、その刺激によって行動生成モジュール71内の「驚き」のパラメータが上昇することにより、行動生成モジュール71によって次の行動として「驚き」の感情表出の行動が決定される。そしてこのようにして決定された行動に応じた行動指令が動作生成モジュール70に与えられ、当該動作生成モジュール70においてその行動指令に基づくサーボ指令値等が生成されて、これが対応するアクチュエータ25等に上述の駆動信号として与えられることにより、驚きを表す行動が発現される。
【0122】
また行動生成モジュール100において動体の動きを追尾するような行動が決定された場合には、当該決定された行動に応じた指令が追尾モジュール102に与えられ、当該追尾モジュール102においてその行動指令に基づくサーボ指令値等が生成されて、これが対応するアクチュエータ25等に上述の駆動信号として与えられることにより、ペットロボット1が動体に興味を示して頭をそちらに向けたり、歩いて追いかけたりする行動が発現される。
【0123】
このようにしてこのペットロボット1においては、動きの検出結果を自己の行動に反映し得るようになされている。
【0124】
なおこのペットロボット1の場合、追尾モジュール102は、行動決定モジュール100から一旦行動指令を受け取った後は、必要な情報を行動決定モジュール100を介すことなく重心計算用画像処理オブジェクト86から取得するようになされており、これにより追尾などの高速なタスクを確実に行い得るようになされている。
【0125】
(6)本実施の形態の動作及び効果
以上の構成において、このペットロボット1では、フレーム間における画像全体の移動量を検出し、当該移動量を考慮したマッチング処理により画像内の動体を検出する。
【0126】
従ってこのペットロボット1では、ペットロボット1の動作に伴う動体の誤検出を未然にかつ効率良く防止しながら、動体を精度良く検出することができる。
【0127】
またこのペットロボット1では、1台のCCDカメラ20だけで動体の検出を行えるため、ペットロボット1全体としての構成を簡易化することができる。
【0128】
以上の構成によれば、フレーム間における画像全体の移動量を検出し、当該移動量を考慮したマッチング処理により画像内の動体を検出するようにしたことにより、ペットロボット1の動作に伴う動体の誤検出を未然にかつ効率良く防止しながら、動体を精度良く検出することができる。かくするにつき動体の誤検出に起因する不自然な行動を未然に防止して、エンターテイメント性を向上させ得るペットロボットを実現できる。
【0129】
(7)他の実施の形態
なお上述の実施の形態においては、本発明を4足歩行型のペットロボット1に適用するようにした場合について述べたが、本発明はこれに限らず、これ以外の装置に搭載されるこの他種々の画像処理装置や4足歩行型以外のペットロボット又はペットロボット以外のロボット等に広く適用することができる。
【0130】
また上述の実施の形態においては、CCDカメラ20から出力される画像情報(画像データ)に基づく画像全体の移動量を検出する第1の検出手段を、ソフトウェア構成の動き検出用画像処理オブジェクト83と、ハードウェア構成のIPE35とによって構成するようにした場合について述べたが、本発明はこれに限らず、これらを全てソフトウェア構成又はハードウェア構成とするようにしても良く、第1の検出手段の構成としては、この他種々の構成を広く適用することができる。
【0131】
さらに上述の実施の形態においては、かかる第1の検出手段の検出結果を考慮した所定の動き検出処理により、画像内の動きを検出する第2の検出手段として、ソフトウェア構成の動き検出用画像処理オブジェクト83及び重心計算用画像処理オブジェクト86と、ハードウェア構成のIPE35とによって構成するようにした場合について述べたが、本発明はこれに限らず、これらを全てソフトウェア構成又はハードウェア構成とするようにしても良く、第2の検出手段の構成としては、この他種々の構成を広く適用することができる。
【0132】
さらに上述の実施の形態においては、前フレーム及び現フレーム間の画像全体の移動量を検出する手法として、前フレーム画像92及び現フレーム画像93をそれぞれ4分割し、前フレーム画像92の分割領域(第1〜第4のテンプレート分割領域92A1〜92A4)と、現フレーム画像93の対応する分割領域(第1〜第4の検索画像分割領域93A1〜93A4)とをマッチング処理するようにした場合について述べたが、本発明はこれに限らず、前フレーム画像92及び現フレーム画像93を分割することなく、又は4分割以外の数に分割してマッチング処理を行うようにしても良い。
【0133】
【発明の効果】
上述のように本発明によれば、画像全体の動きが小さいときには小さな動きも敏感に検出でき、画像全体の動きが大きいときには感度を下げて動きの誤検出を低減することができるので、画像全体の動きの有無に係わりなく、画像内の動体を精度良く検出し得る画像処理装置及び方法を実現できる。
【0134】
また本発明によれば、ロボット装置及びその制御方法において、画像全体の動きが小さいときには小さな動きも敏感に検出でき、画像全体の動きが大きいときには感度を下げて動きの誤検出を低減することができるので、ロボット装置の動作に伴う撮像手段の動きの有無に係わりなく、当該撮像手段から出力される画像情報に基づく画像内の動体を精度良く検出して、当該検出結果を反映した行動を行うことができ、かくしてエンターテイメント性を向上させ得るロボット装置及びその制御方法を実現できる。
【図面の簡単な説明】
【図1】本実施の形態によるペットロボットの構成を示す斜視図である。
【図2】ペットロボットの回路構成を示すブロック図である。
【図3】信号処理回路の構成を示すブロック図である。
【図4】ペットロボットにおける画像データの転送方法の説明に供するブロック図である。
【図5】制御プログラムのソフトウェア構成を示す概念図である。
【図6】画像処理手順を示すフローチャートである。
【図7】画像処理手順を示すフローチャートである。
【図8】ペットロボットにおける画像処理方法の説明に供するブロック図である。
【図9】ペットロボットにおける動き検出の概要説明に供する概念図である。
【図10】動体検出処理手順を示すフローチャートである。
【図11】ペットロボットにおける動体検出手順の概要説明に供する概念図である。
【図12】ペットロボットにおける画像全体の移動量検出の仕方の説明に供する概念図である。
【図13】動体検出結果を行動に反映させるための説明に供するブロック図である。
【符号の説明】
1……ペットロボット、10……CPU、11……DRAM、14……信号処理回路、20……CCDカメラ、34……FBK/CDT、35……IPE、61A……FBK/CDTドライバ、63……バーチャル・ロボット、83……動き検出画像処理オブジェクト、86……重心計算用画像処理オブジェクト、92……前フレーム画像、92A……中心領域、92A1〜92A4……テンプレート分割領域、93……現フレーム画像、93A1〜93A4……検索画像分割領域、93B……画像領域、100……行動決定モジュール、101……動作生成モジュール、102……追尾モジュール、RT2……動体検出処理手順。
Claims (12)
- 画像情報に基づく画像全体の移動量を検出する第1の検出手段と、
上記画像情報に基づく現フレームの画像における、上記画像情報に基づく前フレームの画像の所定の領域と対応する上記移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2の検出手段と、
上記画像全体の移動量が小さいときには上記画素数を第1の閾値と比較し、上記画像全体の移動量が大きいときには上記画素数を上記第1の閾値より大きな値の第2の閾値と比較することにより、上記現フレームの画像内の動きを検出する第3の検出手段と
を具える画像処理装置。 - 上記第2の検出手段は、
上記現フレームの画像における上記画像領域内の各画素の輝度レベルと、上記前フレームの画像における上記所定の領域内の対応する画素の輝度レベルとの差分を算出し、該差分が所定の閾値よりも大きい画素が集まっている領域の画素数を検出する
請求項1に記載の画像処理装置。 - 上記第1の検出手段は、
上記画像情報に基づく現フレームの分割画像と、上記画像情報に基づく前フレームの対応する位置の分割画像とのマッチングスコアを画素単位でずらしながら算出し、算出結果に基づいて上記画像全体の移動量を検出する
請求項1に記載の画像処理装置。 - 画像情報に基づく画像全体の移動量を検出する第1のステップと、
上記画像情報に基づく現フレームの画像における、上記画像情報に基づく前フレームの画像の所定の領域と対応する上記移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2のステップと、
上記画像全体の移動量が小さいときには上記画素数を第1の閾値と比較し、上記画像全体の移動量が大きいときには上記画素数を上記第1の閾値より大きな値の第2の閾値と比較することにより、上記現フレームの画像内の動きを検出する第3のステップと
を具える画像処理方法。 - 上記第2のステップは、
上記現フレームの画像における上記画像領域内の各画素の輝度レベルと、上記前フレームの画像における上記所定の領域内の対応する画素の輝度レベルとの差分を算出し、該差分が所定の閾値よりも大きい画素が集まっている領域の画素数を検出する
請求項4に記載の画像処理方法。 - 上記第1のステップでは、
上記画像情報に基づく現フレームの分割画像と、上記画像情報に基づく前フレームの対応する位置の分割画像とのマッチングスコアを画素単位でずらしながら算出し、算出結果に基づいて上記画像全体の移動量を検出する
請求項4に記載の画像処理方法。 - 行動を自律的に決定して発現するロボット装置において、
外部を撮像する撮像手段と、
上記撮像手段から出力される画像情報に基づく画像全体の移動量を検出する第1の検出手段と、
上記画像情報に基づく現フレームの画像における、上記画像情報に基づく前フレームの画像の所定の領域と対応する上記移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2の検出手段と、
上記画像全体の移動量が小さいときには上記画素数を第1の閾値と比較し、上記画像全体の移動量が大きいときには上記画素数を上記第1の閾値より大きな値の第2の閾値と比較することにより、上記現フレームの画像内の動きを検出する第3の検出手段と
を具え、
第3の検出手段の検出結果を上記行動に反映させる
ロボット装置。 - 上記第2の検出手段は、
上記現フレームの画像における上記画像領域内の各画素の輝度レベルと、上記前フレームの画像における上記所定の領域内の対応する画素の輝度レベルとの差分を算出し、該差分が所定の閾値よりも大きい画素が集まっている領域の画素数を検出する
請求項7に記載のロボット装置。 - 上記第1の検出手段は、
上記画像情報に基づく現フレームの分割画像と、上記画像情報に基づく前フレームの対応する位置の分割画像とのマッチングスコアを画素単位でずらしながら算出し、算出結果に基づいて上記画像全体の移動量を検出する
請求項7に記載のロボット装置。 - 行動を自律的に決定して発現するロボット装置の制御方法において、
上記ロボットに搭載された撮像手段により外部を撮像すると共に、当該撮像手段から出力される画像情報に基づく画像全体の移動量を検出する第1のステップと、
上記画像情報に基づく現フレームの画像における、上記画像情報に基づく前フレームの画像の所定の領域と対応する上記移動量に応じた画像領域を検出し、該画像領域内の動きがあったとされる領域の画素数を検出する第2のステップと、
上記画像全体の移動量が小さいときには上記画素数を第1の閾値と比較し、上記画像全体の移動量が大きいときには上記画素数を上記第1の閾値より大きな値の第2の閾値と比較することにより、上記現フレームの画像内の動きを検出する第3のステップと、
上記第3のステップでの検出結果を上記ロボット装置の上記行動に反映させる第4のステップと
を具えるロボット装置の制御方法。 - 上記第2のステップは、
上記現フレームの画像における上記画像領域内の各画素の輝度レベルと、上記前フレームの画像における上記所定の領域内の対応する画素の輝度レベルとの差分を算出し、該差分が所定の閾値よりも大きい画素が集まっている領域の画素数を検出する
請求項10に記載のロボット装置の制御方法。 - 上記第1のステップでは、
上記画像情報に基づく現フレームの分割画像と、上記画像情報に基づく前フレームの対応する位置の分割画像とのマッチングスコアを画素単位でずらしながら算出し、算出結果に基づいて上記画像全体の移動量を検出する
請求項10に記載のロボット装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001046788A JP4618470B2 (ja) | 2001-02-22 | 2001-02-22 | 画像処理装置及び方法並びにロボット装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001046788A JP4618470B2 (ja) | 2001-02-22 | 2001-02-22 | 画像処理装置及び方法並びにロボット装置及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002251615A JP2002251615A (ja) | 2002-09-06 |
JP4618470B2 true JP4618470B2 (ja) | 2011-01-26 |
Family
ID=18908344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001046788A Expired - Fee Related JP4618470B2 (ja) | 2001-02-22 | 2001-02-22 | 画像処理装置及び方法並びにロボット装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4618470B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20115326A0 (fi) * | 2011-04-05 | 2011-04-05 | Zenrobotics Oy | Menetelmä sensorin mittausten mitätöimiseksi poimintatoiminnon jälkeen robottijärjestelmässä |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07298247A (ja) * | 1994-04-22 | 1995-11-10 | Oki Electric Ind Co Ltd | Tvカメラを用いた監視方法及び監視システム |
JP2679778B2 (ja) * | 1990-05-16 | 1997-11-19 | 松下電器産業株式会社 | 画像の動き検出装置 |
JP2000222584A (ja) * | 1999-01-29 | 2000-08-11 | Toshiba Corp | 映像情報記述方法、映像検索方法及び映像検索装置 |
JP2000244926A (ja) * | 1999-02-19 | 2000-09-08 | Nec Corp | 動画像符号化の動きベクトル探索方法 |
JP2001016606A (ja) * | 1999-06-29 | 2001-01-19 | Sharp Corp | 動作認識システムおよび動作認識プログラムを記録した記録媒体 |
-
2001
- 2001-02-22 JP JP2001046788A patent/JP4618470B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2679778B2 (ja) * | 1990-05-16 | 1997-11-19 | 松下電器産業株式会社 | 画像の動き検出装置 |
JPH07298247A (ja) * | 1994-04-22 | 1995-11-10 | Oki Electric Ind Co Ltd | Tvカメラを用いた監視方法及び監視システム |
JP2000222584A (ja) * | 1999-01-29 | 2000-08-11 | Toshiba Corp | 映像情報記述方法、映像検索方法及び映像検索装置 |
JP2000244926A (ja) * | 1999-02-19 | 2000-09-08 | Nec Corp | 動画像符号化の動きベクトル探索方法 |
JP2001016606A (ja) * | 1999-06-29 | 2001-01-19 | Sharp Corp | 動作認識システムおよび動作認識プログラムを記録した記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JP2002251615A (ja) | 2002-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7096925B2 (ja) | 直方体検出のための深層機械学習システム | |
JP6900575B2 (ja) | ゲームプレイを介して環境の詳細データセットを生成する方法およびシステム | |
US7532743B2 (en) | Object detector, object detecting method and robot | |
JP4609584B2 (ja) | ロボット装置、顔認識方法及び顔認識装置 | |
JP7178396B2 (ja) | 入力映像に含まれた客体の3次元ポーズの推定のためのデータを生成する方法およびコンピュータシステム | |
JP7025532B2 (ja) | 衝突の検出、推定、および回避 | |
JP2003285288A (ja) | 充電システム及び充電制御方法、ロボット装置、充電装置、及び充電制御プログラム及び記録媒体 | |
KR101810415B1 (ko) | 정보 처리 장치, 정보 처리 시스템, 블록 시스템, 및 정보 처리 방법 | |
WO2020031767A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US20220277489A1 (en) | Modeling objects from monocular camera outputs | |
JP7103354B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2003266349A (ja) | 位置認識方法、その装置、そのプログラム、その記録媒体及び位置認識装置搭載型ロボット装置 | |
US10726248B2 (en) | Validating gesture recognition capabilities of automated systems | |
WO2019123744A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2004298975A (ja) | ロボット装置、障害物探索方法 | |
JP4235858B2 (ja) | ロボット装置及びロボット装置の障害物マップ生成方法 | |
JP4759810B2 (ja) | 画像処理装置及びロボット装置並びに画像処理方法 | |
JP4618470B2 (ja) | 画像処理装置及び方法並びにロボット装置及びその制御方法 | |
KR102565444B1 (ko) | 객체를 식별하기 위한 장치 및 방법 | |
CN102591456B (zh) | 对身体和道具的检测 | |
JP4779226B2 (ja) | ロボット装置、並びに、画像記憶方法及び画像記憶装置、並びに、制御プログラム及び記録媒体 | |
JP4379052B2 (ja) | 動体検出装置、動体検出方法、及びロボット装置 | |
WO2021075102A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2003191189A (ja) | ロボット装置及びその制御方法 | |
JP2004054610A (ja) | トラッキング装置及び方法並びにロボット装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100722 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100913 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100930 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101013 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |