(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023069358
(43)【公開日】2023-05-18
(54)【発明の名称】画像処理装置、画像処理方法及びプログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20230511BHJP
B25J 13/08 20060101ALN20230511BHJP
【FI】
G06T7/70 A
B25J13/08 A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021181149
(22)【出願日】2021-11-05
(71)【出願人】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】田島 裕一郎
(72)【発明者】
【氏名】佐々木 友謙
(72)【発明者】
【氏名】松谷 征一郎
(72)【発明者】
【氏名】上村 紘大
(72)【発明者】
【氏名】佐藤 精基
(72)【発明者】
【氏名】水谷 仁紀
【テーマコード(参考)】
3C707
5L096
【Fターム(参考)】
3C707AS14
3C707KS02
3C707KS03
3C707KT02
3C707KT06
3C707NS02
5L096AA06
5L096BA03
5L096BA05
5L096BA18
5L096CA02
5L096DA02
5L096FA12
5L096FA69
5L096GA32
(57)【要約】
【課題】画像データに基づく物体の位置推定を精度良く行える画像処理装置、画像処理方法及びプログラムを提供する。
【解決手段】画像処理装置10は、物体101が移動するベルトコンベア100の上流側に設定された撮像領域105の画像データから、撮像領域105にある物体101の位置を推定する。画像処理装置10は、ベルトコンベア100上での物体101の速度を推定する。画像処理装置10は、物体101が設定条件を満たす場合に、物体101について、検出された物体101の位置と推定された物体101の速度とに基づいて、所定時刻における、ベルトコンベア100の下流側に設定された処理領域106での位置を推定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定する、第1位置推定部と、
前記経路上での前記物体の速度を推定する、速度推定部と、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定する、第2位置推定部と、
を備えている、画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、
前記第1位置推定部は、
前記画像データにおける第1座標系での前記物体の座標を推定し、前記第1座標系での前記物体の座標を、前記経路上に設定された第2座標系での座標に変換し、
前記第2位置推定部は、
変換された前記第2座標系での座標と、前記物体の速度とに基づいて、前記所定時刻における、前記第2座標系での前記物体の座標を推定する、
画像処理装置。
【請求項3】
請求項2に記載の画像処理装置であって、
前記速度推定部は、
前記第1座標系での前記物体の座標を変換した前記第2座標系での座標に基づいて、前記物体の速度を推定する、
画像処理装置。
【請求項4】
請求項1から請求項3の何れか一つに記載の画像処理装置であって、
前記所定時刻において、推定された前記第2領域での位置にある前記物体対して、光学的又は物理的な処理を実行する、処理実行部、
を更に備えている、画像処理装置。
【請求項5】
請求項4に記載の画像処理装置であって、
前記処理実行部は、前記所定時刻において、推定された前記第2領域での位置にある前記物体に対して、投影装置によって光学的なマーキングを実行する、
画像処理装置。
【請求項6】
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定する、ステップと、
前記経路上での前記物体の速度を推定する、ステップと、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定する、ステップと、
を備えている、画像処理方法。
【請求項7】
コンピュータに、
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定する、ステップと、
前記経路上での前記物体の速度を推定する、ステップと、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定する、ステップと、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
製品生産現場において、製品はベルトコンベアに載って搬送される。そして、これまでに、ベルトコンベア上の製品を追跡して、追跡した製品に対して、プロジェクタでマーキングし、又はロボットで作業を施すシステムが種々提案されている。例えば、特許文献1には、コンベヤにより運搬される物体の位置を検出し、ロボットが、検出された位置に基づき物体に対し作業を行うロボットシステムが記載されている。特許文献1に開示されているロボットシステムでは、コンベヤにより運搬される物品を撮像して、画像処理により物品の位置を検出している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されている技術を用いて、対象物体の位置を検出し、その対象物体にロボットで作業を行うことができる。しかしながら、画像処理で物体の位置を検出する際、画像にロボットの一部が写り込むおそれがある。この写り込みがノイズとなり、画像を用いた対象物体の位置の検出精度が低下するおそれがある。
【0005】
本開示の目的の一例は、画像データに基づく物体の位置推定を精度良く行える画像処理装置、画像処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本開示の一側面における画像処理装置は、
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定する、第1位置推定部と、
前記経路上での前記物体の速度を推定する、速度推定部と、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定する、第2位置推定部と、
を備えている、ことを特徴とする。
【0007】
また、上記目的を達成するため、本開示の一側面における画像処理方法は、
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定するステップと、
前記経路上での前記物体の速度を推定するステップと、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定するステップと、
を備えている、ことを特徴とする。
【0008】
更に、上記目的を達成するため、本開示の一側面におけるプログラムは、
コンピュータに、
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定するステップと、
前記経路上での前記物体の速度を推定するステップと、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定するステップと、
を実行させることを特徴とする。
【発明の効果】
【0009】
以上のように本開示における技術によれば、画像データに基づく物体の位置推定を精度良く行うことができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施形態に係る画像処理装置が用いられるシステムについて説明するための図である。
【
図2】
図2は、実施形態に係る画像処理装置の構成を示すブロック図である。
【
図3】
図3は、実施形態に係る画像処理装置が用いられる、物体を投光マーカによりマーキングするシステムを説明するための図である。
【
図4】
図4は、画像処理装置の具体的構成を示すブロック図である。
【
図5】
図5は、撮像座標系の座標から三次元座標系の座標への変換を説明するための図である。
【
図6】
図6は、三次元座標系の座標から投影用撮像座標系の座標への変換を説明するための図である。
【
図7】
図7は、画像処理装置によるキャリブレーション実行時の動作を示すフロー図である。
【
図8】
図8は、画像処理装置による位置推定時の動作を示すフロー図である。
【
図9】
図9は、実施形態における画像処理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0011】
はじめに、以降で説明する実施形態の理解を容易にするために概要を説明する。
【0012】
図1は、本実施形態に係る画像処理装置10が用いられるシステムについて説明するための図である。画像処理装置10は、例えば製品生産現場において、ベルトコンベア100に載せられて搬送される製品等の物体101の位置を推定する際に用いられる。
【0013】
ベルトコンベア100上の上流側には撮像領域105が設定され、下流側には処理領域106が設定されている。撮像領域105は、撮像装置21によって撮像される領域である。処理領域106は、物体101に対して、光学的又は物理的な処理が実行される領域である。
【0014】
物体101は、撮像領域105で撮像されると、画像データに基づいて、不良品であるかが検査される。不良品と判定された物体101は、処理領域106で、光学的又は物理的な処理が実行される。光学的な処理とは、例えば、物体101に投光マーカによりマーキングする処理である。物理的な処理とは、例えば、物体101をロボットアームで取り除く処理である。処理領域106での物体101の位置は、画像処理装置10で推定される。
【0015】
画像処理装置10は、撮像領域105における物体101の位置を検出し、その位置から処理領域106における位置を推定する装置である。画像処理装置10は、撮像装置21により、物体101が位置する撮像領域105が撮像された画像データを取得する。画像処理装置10は、その画像データから、撮像領域105での物体101の位置と、物体101の移動速度とを推定する。画像処理装置10は、推定した位置と移動速度とから、所定時刻における処理領域106での物体101の位置を推定する。
【0016】
このように、本実施形態では、撮像領域105と処理領域106とは、ベルトコンベア100上の異なる位置に設定されている。撮像領域105と処理領域106とが重なっている場合、撮像領域105が撮像された画像データに、投光マーカ又はロボットアームが映り込むことがある。画像データに投光マーカ等が映り込むと、それがノイズとなって、画像データに基づいて行われる物体101の位置検出、及び、不良品の検査の結果に、影響が及ぶおそれがある。
【0017】
そこで、本実施形態に係る画像処理装置10は、撮像領域105と処理領域106との分離を可能とし、撮像領域105を撮像する際に余計なものが映り込まないようにしている。その結果、画像処理装置10は、精度の良い、物体101の位置検出、及び、不良品の検査を実現している。
【0018】
[装置構成]
図2は、本実施形態に係る画像処理装置10の構成を示すブロック図である。
【0019】
画像処理装置10は、第1位置推定部1と、速度推定部2と、第2位置推定部3とを備えている。
【0020】
第1位置推定部1は、物体101が移動する経路であるベルトコンベア100の上流側に設定された第1領域の画像データから、その第1領域にある物体101の位置を推定する。第1領域は、
図1で説明した撮像領域105である。画像データは、撮像装置21によって撮像されて得られるデータである。
【0021】
速度推定部2は、ベルトコンベア100上での物体101の速度を推定する。
【0022】
第2位置推定部3は、物体101が設定条件を満たす場合に、物体101について、検出された物体101の位置と推定された物体101の速度とに基づいて、所定時刻における、ベルトコンベア100の下流側に設定された第2領域での位置を推定する。第2領域は、
図1で説明した処理領域106である。また、物体101が設定条件を満たす場合とは、例えば、画像データに基づいて物体101の検査が行われた結果、不良品であると判定された場合である。物体101の検査は、画像処理装置10が行っても良いし、別の装置が行っても良い。
【0023】
上記構成の画像処理装置10は、ベルトコンベア100の上流側での物体101の位置と、物体101の速度とから、下流側での物体101の位置を推定している。これにより、製品生産現場において、本実施形態の画像処理装置10を用いることで、ベルトコンベア100の上流側で物体101の位置検出、及び、検査を行い、ベルトコンベア100の下流側で、物体101に対して、光学的又は物理的な処理を実行することができる。
【0024】
つまり、
図1で説明したように、画像処理装置10は、撮像領域105と処理領域106との分離を可能とする。その結果、撮像領域105を撮像して得られる画像データには、余計なものが映り込まない。このため、画像処理装置10は、精度の良い、画像データを用いた物体101の位置検出及び不良品の検査を、実現可能としている。
【0025】
以下に、画像処理装置10の具体的な内容についてより詳細に説明する。以下では、画像処理装置10は、ベルトコンベア100上流側で物体101を検査して、検査結果に応じて、下流側で物体101を投光マーカによりマーキングするシステムで用いられるものとして説明する。まず、物体101を投光マーカによりマーキングするシステムについて説明する。
【0026】
図3は、本実施形態に係る画像処理装置10が用いられる、物体101を投光マーカによりマーキングするシステムを説明するための図である。
【0027】
ベルトコンベア100は、図中矢印の向きに、物体101を搬送する。このベルトコンベア100の幅方向における両側部それぞれには、複数のマーカ100Aが設けられている。複数のマーカ100Aは、幅方向に対向し、かつ、ベルト延伸方向(搬送方向)に沿って等間隔に配置されている。複数のマーカ100Aそれぞれの位置関係、例えば、マーカ間の距離は既知である。なお、複数のマーカ100Aは固定されていて、ベルトコンベア100のベルト部分が移動しても移動しないが、ベルトコンベア100自身が移動した場合はともに移動する。
【0028】
ベルトコンベア100の上流側には撮像装置21が設けられている。ベルトコンベア100の下流側には投影装置22及び撮像装置23が設けられている。撮像装置21、投影装置22及び撮像装置23は、画像処理装置10に接続されている。
【0029】
撮像装置21は、ベルトコンベア100の上流側を撮像する。撮像装置21が撮像する領域は、
図1で説明した撮像領域105である。撮像領域105は、マーカ100Aが含まれるように設定される。撮像装置21は、例えば、カメラ、赤外線カメラ、超音波カメラ、X線カメラなどである。
【0030】
投影装置22は、画像処理装置10によって推定された、ベルトコンベア100の下流側における物体101の位置を取得して、その位置の物体101を投光マーカ102でマーキングする。投影装置22が投光マーカ102を投影する投影領域107は、
図1で説明した処理領域106である。投影装置22は、例えば、プロジェクタなどが考えられる。
【0031】
撮像装置23は、投影装置22の投影領域107と重なるように、ベルトコンベア100の下流側に設定された撮像領域108を撮像するように設定されている。撮像装置23は、投影装置22のキャリブレーションを行う際に、投影装置22が投影する投影パターンを撮像する。撮像装置23は、例えば、カメラ、赤外線カメラ、超音波カメラ、X線カメラなどである。
【0032】
撮像領域108は、マーカ100Aが含まれるように設定される。上記のように、マーカ100Aそれぞれの位置関係は既知である。このため、マーカ100Aを含むように設定された撮像領域105と撮像領域108との位置関係は明確となる。
【0033】
図4は、画像処理装置10の具体的構成を示すブロック図である。
【0034】
画像処理装置10は、上記した第1位置推定部1、速度推定部2、及び第2位置推定部3に加え、処理実行部4及びキャリブレーション部5をさらに備えている。
【0035】
キャリブレーション部5は、画像処理装置10で物体101の位置推定を行う前に、撮像装置21及び撮像装置23それぞれのパラメータ(内部パラメータ及び外部パラメータ)を推定するキャリブレーションを行う。撮像装置21及び撮像装置23のキャリブレーション手法は同じであるため、以下では、撮像装置21のキャリブレーション手法についてのみ説明する。
【0036】
内部パラメータは、例えば、撮像装置21のレンズ焦点距離、及び、レンズの歪み係数などを示すパラメータである。キャリブレーション部5は、例えば、「A flexible new technique for camera calibration.IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330-1334, 2000」に記載されているZ.Zhangの手法を用いて、内部パラメータを推定する。この手法は、格子状のパターンが印刷されたボードを撮像装置21で複数の方向から撮像し、画像中の特徴点を元にパラメータを推定する方法である。推定されたパラメータは、撮像時に用いることができる。
【0037】
外部パラメータは、ベルトコンベア100に対する撮像装置21の位置及び角度(外部パラメータ)を示すパラメータである。この外部パラメータは、ベルトコンベア100上に設定された三次元座標系(第2座標系)を、撮像装置21より得られる画像データの座標系(第1座標系)へ変換するパラメータである。詳しくは、キャリブレーション部5は、撮像装置21で、撮像領域105を撮像して得られる画像データを用いて、PnP(Perspective-n-Point)問題を解くことで、外部パラメータを求める。PnP問題を解くアルゴリズムについては、例えば、「V. Lepetit, F. Moreno-Noguer, and P. Fua, “EPnP: An Accurate O(n) Solution to the PnP problem,” International Journal of Computer Vision, vol. 81, no. 2, pp. 155-166, 2009」に記載されている。
【0038】
また、キャリブレーション部5は、投影装置22と撮像装置23との間でキャリブレーションを行う。投影装置22の投影領域107の座標系(以下、投影座標系と言う)と、撮像装置23の撮像領域108の座標系(以下、投影用撮像座標系と言う)とはそれぞれ異なる座標系となっている。これは、投影装置22と撮像装置23とが同じ位置に設置できないことに起因する。キャリブレーション部5は、投影装置22が投影した投影パターンを撮像装置23で撮像して得られる画像データから、投影用撮像座標系と投影座標系との幾何変換を推定する。投影パターンは、複数のマーカが格子状に並んだ市松模様のパターンである。
【0039】
この変換には、例えば透視投影変換が用いられる。投影用撮像座標系を、投影座標系に変換する変換パラメータをH、投影座標系の座標を(x’,y’)、投影用撮像座標系の座標を(x,y)で表すと、(x’,y’)=H(x,y)で表すことができる。
【0040】
キャリブレーション部5は、撮像装置23で撮像した画像データ中の投影パターンの各マーカのコーナの座標(xm,ym)と、投影装置22が投影した投影パターンの各マーカのコーナの座標(x’m,y’m)との対応関係を求める。そして、キャリブレーション部5は、2つのコーナの座標の位置ずれが最小となるような変換パラメータHを、以下の(1)式を用いた最小二乗法により推定する。
【0041】
Σi||x’m
i-H(xm
i)|| …(1)
ここで、xm=(xm,ym)、x’m=(x’m,y’m)、iは投影パターンの各マーカの番号、である。
【0042】
第1位置推定部1は、撮像装置21から取得した画像データに基づいて、撮像領域105における物体101の位置を推定する。詳しくは、第1位置推定部1は、画像データにおける座標系(以下、撮像座標系と言う)での物体101の座標を推定する。そして、第1位置推定部1は、その座標を、ベルトコンベア100上に設定された三次元座標系の座標に変換して、ベルトコンベア100上での物体101の位置を推定する。なお、第1位置推定部1は、画像データから物体101の位置を推定する際、内部パラメータのレンズの歪み係数を用いて、画像データのレンズ歪みを補正する。
【0043】
図5は、撮像座標系の座標から三次元座標系の座標への変換を説明するための図である。この例では、三次元座標系は、ベルトの延伸方向をX軸、ベルトの幅方向をY軸、高さ方向をZ軸としている。
【0044】
第1位置推定部1は、撮像座標系における物体101の座標を検出する。第1位置推定部1は、検出した撮像座標系の座標を、三次元座標系の座標に変換する。なお、変換後の三次元座標系での物体101の座標は、Z=0となるX-Y平面上に存在することになる。
【0045】
二次元の撮像座標系での物体101の座標(u,v)と、三次元座標系の座標(X,Y,Z)との座標間の関係は、例えば、ピンホールカメラモデルを用いて、以下の(2)式のように表すことができる。
【0046】
s[u v 1]T=A[R t][X Y 0 1]T=A[r0 r1 t][X Y 1]T
[X Y 1]T=s(A[r0 r1 t])-1[u v 1]T …(2)
ここで、Rは回転行列[r0,r1,r2]、tは並進ベクトル、Aはカメラ行列(外部パラメータ)、sは定数であり、上記(2)式の右辺の第三次元が1となる制約条件から求められる。
【0047】
第1位置推定部1は、上記変換式により、推定した、撮像座標系での物体101の座標を、三次元座標系での座標に変換する。これにより、ベルトコンベア100の上流側での物体101の位置が推定される。
【0048】
速度推定部2は、撮像装置21から取得した画像データから物体101の移動速度を推定する。速度推定部2が推定する物体101の移動速度は、第2位置推定部3が物体101の位置を推定する際の計算に用いられる速度(以下、計算用速度と言う)を意味し、実際の物体101の移動速度ではない。速度推定部2は、ベルトコンベア100の速度を、例えば速度センサから取得して、取得した速度から計算用速度を推定してもよいし、取得した速度を計算用速度としてもよい。また、速度推定部2は、複数の物体101それぞれの速度の平均値を、計算用速度としてもよい。
【0049】
第2位置推定部3は、第1位置推定部1が推定した三次元座標系での物体101の座標と、速度推定部2が推定した計算用速度とに基づいて、所定時刻(連携機器への送信時刻、すなわち、マーキング処理を実行する時刻)における、三次元座標系での物体101の座標を推定する。上記したように、撮像領域105と撮像領域108との位置関係(距離)は既知である。第2位置推定部3は、その距離と、物体101の位置及び速度とから、三次元座標系における撮像領域108内での物体101の座標を推定する。
【0050】
なお、ベルトコンベア100上の物体101は、直線移動するものとする。
【0051】
図6は、三次元座標系の座標から投影用撮像座標系の座標への変換を説明するための図である。
【0052】
第2位置推定部3は、推定後の三次元座標系の座標を、以下の(4)式を用いて、投影用撮像座標系に変換する。sは上記同様定数であり、下記(4)式の右辺の第三次元が1となる制約条件から求められる。
s[u v 1]T=(A[r0 r1 t])[X Y 1]T …(4)
【0053】
第2位置推定部3は、内部パラメータのレンズの歪み係数を用いて、上記の(4)式で推定した投影用撮像座標系での座標に、撮像装置23のレンズ歪みを付与する。レンズの歪みを付与する具体的な方法は、例えば、URL:https://docs.opencv.org/4.5.2/d9/d0c/group__calib3d.htmlに記載されている。
【0054】
第2位置推定部3は、キャリブレーション部5が行った、投影装置22と撮像装置23との間でキャリブレーション結果に基づいて、投影用撮像座標系の座標(u,v)を、投影座標系の座標(x,y)に変換する。
【0055】
処理実行部4は、所定時刻において、第2位置推定部3が推定した、撮像領域108での位置にある物体101対して、投影装置22によって投光マーカ102(
図3参照)によりマーキングを実行する。
【0056】
次に、実施形態における画像処理装置の動作について
図7を用いて説明する。
図7及び
図8は、画像処理装置10の動作を示すフロー図である。以下の説明においては、適宜
図1~
図6を参酌する。また、本実施形態では、画像処理装置を動作させることによって、画像処理方法が実施される。よって、本実施形態における画像処理方法の説明は、以下の画像処理装置10の動作説明に代える。
【0057】
図7は、画像処理装置10によるキャリブレーション実行時の動作を示すフロー図である。
【0058】
キャリブレーション部5は、撮像装置21及び撮像装置23それぞれの内部パラメータを推定するキャリブレーションを行う(S1)。次に、キャリブレーション部5は、撮像装置21及び撮像装置23それぞれの外部パラメータを推定するキャリブレーションを行う(S2)。キャリブレーション部5は、投影装置22と撮像装置23との間でキャリブレーションを行う(S3)。
【0059】
なお、
図7のS1~S3の実行順序は、適宜変更可能である。
【0060】
図8は、画像処理装置10による位置推定時の動作を示すフロー図である。
【0061】
画像処理装置10は、撮像装置21から画像データを取得する(S1)。第1位置推定部1は、取得した画像データに基づいて、撮像領域105における物体101の位置、つまり、撮像座標系での物体101の座標を推定する(S12)。このとき、第1位置推定部1は、画像データのレンズ歪みを補正した後、撮像座標系での物体101の座標を推定する。
【0062】
次に、第1位置推定部1は、推定した撮像座標系の座標を、三次元座標系の座標に変換する(S13)。この変換は、上記(2)式を用いて行われる。
【0063】
速度推定部2は、取得した画像データから物体101の移動速度を推定する(S14)。ここで速度推定部2が推定する速度は、上記した計算用速度である。すなわち、速度推定部2は、複数の物体101の速度からベルトコンベア100のコンベア速度を計算し、そのコンベア速度を計算用速度として推定する。
【0064】
第2位置推定部3は、S13で変換した三次元座標系の座標と、S14で推定した速度とから、三次元座標における撮像領域108での物体101の座標を推定する(S15)。第2位置推定部3は、推定した三次元座標の座標を、投影用撮像座標系の座標へ変換する(S16)。
【0065】
第2位置推定部3は、投影用撮像座標系の座標を、投影座標系の座標に変換する(S17)。第2位置推定部3は、キャリブレーション部5が行った、投影装置22と撮像装置23との間でキャリブレーション結果に基づいて、S17の変換を行う。
【0066】
処理実行部4は、S17で得られた、投影座標系の座標にある物体101対して、投影装置22によって投光マーカ102(
図3参照)によりマーキングを実行する(S18)。
【0067】
以上のように本実施形態に係る画像処理装置10は、撮像領域105と処理領域106との分離を可能とし、撮像領域105を撮像する際に余計なものが映り込まないようにしている。その結果、画像処理装置10は、精度の良い、物体101の位置検出、及び、不良品の検査を実現している。
【0068】
なお、本実施形態では、処理領域106では、投影装置22で光学的な処理が行われるものとして説明したが、ロボットアームを用いて対象の物体101を取り除くといった、物理的な処理が行われても良い。
【0069】
実施形態におけるプログラムは、コンピュータに、
図7に示すステップS1~S3及び
図8に示すステップS11~S18を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施形態における画像処理装置と画像処理方法とを実現することができる。この場合、コンピュータのプロセッサは、第1位置推定部1、速度推定部2、第2位置推定部3、処理実行部4及びキャリブレーション部5として機能し、処理を行なう。
【0070】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、第1位置推定部1、速度推定部2、第2位置推定部3、処理実行部4及びキャリブレーション部5のいずれかとして機能しても良い。
【0071】
ここで、本実施形態におけるプログラムを実行することによって、画像処理装置を実現するコンピュータについて
図9を用いて説明する。
図9は、本実施形態における画像処理装置10を実現するコンピュータの一例を示すブロック図である。
【0072】
図9に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。
【0073】
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0074】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0075】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0076】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0077】
なお、本実施の形態における画像処理装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、画像処理装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0078】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記30)によって表現することができるが、以下の記載に限定されるものではない。
【0079】
(付記1)
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定する、第1位置推定部と、
前記経路上での前記物体の速度を推定する、速度推定部と、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定する、第2位置推定部と、
を備えている、画像処理装置。
【0080】
(付記2)
付記1に記載の画像処理装置であって、
前記第1位置推定部は、
前記画像データにおける第1座標系での前記物体の座標を推定し、前記第1座標系での前記物体の座標を、前記経路上に設定された第2座標系での座標に変換し、
前記第2位置推定部は、
変換された前記第2座標系での座標と、前記物体の速度とに基づいて、前記所定時刻における、前記第2座標系での前記物体の座標を推定する、
画像処理装置。
【0081】
(付記3)
付記2に記載の画像処理装置であって、
前記速度推定部は、
前記第1座標系での前記物体の座標を変換した前記第2座標系での座標に基づいて、前記物体の速度を推定する、
画像処理装置。
【0082】
(付記4)
付記2又は付記3に記載の画像処理装置であって、
前記第1領域を撮像する撮像装置のパラメータを推定する、第1キャリブレーション部、
を備える、画像処理装置。
【0083】
(付記5)
付記2又は付記3に記載の画像処理装置であって、
前記第1キャリブレーション部は、
前記撮像装置の座標系の座標と、前記第2座標系の座標とを変換するパラメータを推定する、
画像処理装置。
【0084】
(付記6)
付記1から付記5の何れか一つに記載の画像処理装置であって、
前記所定時刻において、推定された前記第2領域での位置にある前記物体対して、光学的又は物理的な処理を実行する、処理実行部、
を更に備えている、画像処理装置。
【0085】
(付記7)
付記6に記載の画像処理装置であって、
前記処理実行部は、前記所定時刻において、推定された前記第2領域での位置にある前記物体に対して、投影装置によって光学的なマーキングを実行する、
画像処理装置。
【0086】
(付記8)
付記6又は付記7に記載の画像処理装置であって、
前記第2領域を撮像する撮像装置のパラメータを推定する、第2キャリブレーション部、
を備える、画像処理装置。
【0087】
(付記9)
付記8に記載の画像処理装置であって、
前記第2キャリブレーション部は、
前記第2座標系の座標と、前記撮像装置の座標系の座標とを変換するパラメータを推定する、
画像処理装置。
【0088】
(付記10)
付記9に記載の画像処理装置であって、
前記第2キャリブレーション部は、
前記撮像装置の座標系の座標と、前記投影装置の座標系の座標とを変換するパラメータを推定する、
画像処理装置。
【0089】
(付記11)
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定する、ステップと、
前記経路上での前記物体の速度を推定する、ステップと、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定する、ステップと、
を備えている、画像処理方法。
【0090】
(付記12)
付記11に記載の画像処理方法であって、
前記第1領域にある前記物体の位置を推定するステップでは、
前記画像データにおける第1座標系での前記物体の座標を推定し、前記第1座標系での前記物体の座標を、前記経路上に設定された第2座標系での座標に変換し、
前記第2領域での位置を推定するステップでは、
変換された前記第2座標系での座標と、前記物体の速度とに基づいて、前記所定時刻における、前記第2座標系での前記物体の座標を推定する、
画像処理方法。
【0091】
(付記13)
付記12に記載の画像処理方法であって、
前記物体の速度を推定するステップでは、
前記第1座標系での前記物体の座標を変換した前記第2座標系での座標に基づいて、前記物体の速度を推定する、
画像処理方法。
【0092】
(付記14)
付記12又は付記13に記載の画像処理方法であって、
前記第1領域を撮像する撮像装置のパラメータを推定する、ステップ、
を備える、画像処理方法。
【0093】
(付記15)
付記12又は付記13に記載の画像処理方法であって、
前記第1領域を撮像する撮像装置のパラメータを推定するステップでは、
前記撮像装置の座標系の座標と、前記第2座標系の座標とを変換するパラメータを推定する、
画像処理方法。
【0094】
(付記16)
付記11から付記15の何れか一つに記載の画像処理方法であって、
前記所定時刻において、推定された前記第2領域での位置にある前記物体対して、光学的又は物理的な処理を実行する、ステップ、
を更に備えている、画像処理方法。
【0095】
(付記17)
付記16に記載の画像処理方法であって、
前記処理を実行するステップでは、前記所定時刻において、推定された前記第2領域での位置にある前記物体に対して、投影装置によって光学的なマーキングを実行する、
画像処理方法。
【0096】
(付記18)
付記16又は付記17に記載の画像処理方法であって、
前記第2領域を撮像する撮像装置のパラメータを推定する、ステップ、
を備える、画像処理方法。
【0097】
(付記19)
付記18に記載の画像処理方法であって、
前記第2領域を撮像する撮像装置のパラメータを推定する、ステップでは、前記第2座標系の座標と、前記撮像装置の座標系の座標とを変換するパラメータを推定する、
画像処理方法。
【0098】
(付記20)
付記19に記載の画像処理方法であって、
前記第2領域を撮像する撮像装置のパラメータを推定する、ステップでは、前記撮像装置の座標系の座標と、前記投影装置の座標系の座標とを変換するパラメータを推定する、
画像処理方法。
【0099】
(付記21)
コンピュータに、
物体が移動する経路の上流側に設定された第1領域の画像データから、前記第1領域にある前記物体の位置を推定する、ステップと、
前記経路上での前記物体の速度を推定する、ステップと、
前記物体が設定条件を満たす場合に、前記物体について、検出された前記物体の位置と推定された前記物体の速度とに基づいて、所定時刻における、前記経路の下流側に設定された第2領域での位置を推定する、ステップと、
を実行させる、プログラム。
【0100】
(付記22)
付記21に記載のプログラムであって、
前記第1領域にある前記物体の位置を推定するステップでは、
前記画像データにおける第1座標系での前記物体の座標を推定し、前記第1座標系での前記物体の座標を、前記経路上に設定された第2座標系での座標に変換し、
前記第2領域での位置を推定するステップでは、
変換された前記第2座標系での座標と、前記物体の速度とに基づいて、前記所定時刻における、前記第2座標系での前記物体の座標を推定する、
プログラム。
【0101】
(付記23)
付記22に記載のプログラムであって、
前記物体の速度を推定するステップでは、
前記第1座標系での前記物体の座標を変換した前記第2座標系での座標に基づいて、前記物体の速度を推定する、
プログラム。
【0102】
(付記24)
付記22又は付記23に記載のプログラムであって、
前記コンピュータに
前記第1領域を撮像する撮像装置のパラメータを推定する、ステップ、
を実行させる、プログラム。
【0103】
(付記25)
付記22又は付記23に記載のプログラムであって、
前記第1領域を撮像する撮像装置のパラメータを推定するステップでは、
前記撮像装置の座標系の座標と、前記第2座標系の座標とを変換するパラメータを推定する、
プログラム。
【0104】
(付記26)
付記21から付記25の何れか一つに記載のプログラムであって、
前記コンピュータに、
前記所定時刻において、推定された前記第2領域での位置にある前記物体対して、光学的又は物理的な処理を実行する、ステップ、
を実行させる、プログラム。
【0105】
(付記27)
付記26に記載のプログラムであって、
前記処理を実行するステップでは、前記所定時刻において、推定された前記第2領域での位置にある前記物体に対して、投影装置によって光学的なマーキングを実行する、
プログラム。
【0106】
(付記28)
付記26又は付記27に記載のプログラムであって、
前記コンピュータに、
前記第2領域を撮像する撮像装置のパラメータを推定する、ステップ、
を実行させる、プログラム。
【0107】
(付記29)
付記38に記載のプログラムであって、
前記第2領域を撮像する撮像装置のパラメータを推定する、ステップでは、前記第2座標系の座標と、前記撮像装置の座標系の座標とを変換するパラメータを推定する、
プログラム。
【0108】
(付記30)
付記29に記載のプログラムであって、
前記第2領域を撮像する撮像装置のパラメータを推定する、ステップでは、前記撮像装置の座標系の座標と、前記投影装置の座標系の座標とを変換するパラメータを推定する、
プログラム。
【産業上の利用可能性】
【0109】
本開示の画像処理装置は、搬送される物体の経路上の位置を推定して、その物体に対して、光学的又は物理的な処理を実行するシステムにおいて、用いられることができる。
【符号の説明】
【0110】
1 :第1位置推定部
2 :速度推定部
3 :第2位置推定部
4 :処理実行部
5 :キャリブレーション部
10 :画像処理装置
21 :撮像装置
22 :投影装置
23 :撮像装置
100 :ベルトコンベア
100A:マーカ
101 :物体
102 :投光マーカ
105 :撮像領域
106 :処理領域
107 :投影領域
108 :撮像領域
110 :コンピュータ
111 :CPU
112 :メインメモリ
113 :記憶装置
114 :入力インターフェイス
115 :表示コントローラ
116 :ライタ
117 :通信インターフェイス
118 :入力機器
119 :ディスプレイ装置
120 :記録媒体
121 :バス