IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024145965
(43)【公開日】2024-10-15
(54)【発明の名称】画像処理方法および画像処理装置
(51)【国際特許分類】
   H04N 23/60 20230101AFI20241004BHJP
【FI】
H04N23/60 500
H04N23/60 300
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023058600
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】渕上 竜司
(72)【発明者】
【氏名】山倉 佑馬
【テーマコード(参考)】
5C122
【Fターム(参考)】
5C122DA03
5C122EA41
5C122EA68
5C122FH11
5C122FH12
5C122FH14
5C122FH18
5C122GA01
5C122GA23
5C122GC75
5C122HA88
(57)【要約】
【課題】高速度カメラを用いた対象物の高速撮像と、対象物に対するリアルタイムな作業位置の補正とを実現する。
【解決手段】画像処理方法は、カメラにより撮像された複数のフレームを取得し、複数のフレーム間における被写体の第1の動き量を計測し、被写体の第1の動き量に基づいて、駆動デバイスの位置を補正する第1補正量を算出する高速ビジョン処理と、高速ビジョン処理の処理周期よりも長い処理周期を有し、少なくとも1個の前記フレームに写る被写体の認識位置に基づいて、駆動デバイスの位置を補正する第2補正量を算出する低速ビジョン処理と、を実行し、第1補正量および第2補正量の少なくとも一方に基づく制御指令を生成して駆動デバイスに出力する。
【選択図】図3
【特許請求の範囲】
【請求項1】
駆動デバイスと被写体を撮像するカメラとの間で通信可能な演算装置が行う画像処理方法であって、
前記カメラにより撮像された複数のフレームを取得し、
前記複数のフレーム間における前記被写体の第1の動き量を計測し、
計測された前記被写体の第1の動き量に基づいて、前記駆動デバイスの位置を補正する第1補正量を算出する高速ビジョン処理と、
前記高速ビジョン処理の処理周期よりも長い処理周期を有し、
少なくとも1個の前記フレームに写る前記被写体の認識位置に基づいて、前記駆動デバイスの位置を補正する第2補正量を算出する低速ビジョン処理と、を実行し、
前記第1補正量および前記第2補正量の少なくとも一方に基づく制御指令を生成して前記駆動デバイスに出力する、
画像処理方法。
【請求項2】
前記第1補正量および前記第2補正量に基づく第1制御指令、または前記第1補正量に基づく第2制御指令を生成して、前記駆動デバイスに出力する、 請求項1に記載の画像処理方法。
【請求項3】
前記第1制御指令は、前記低速ビジョン処理の処理周期に対応して出力され、
前記第2制御指令は、前記高速ビジョン処理の処理周期に対応して出力される、
請求項2に記載の画像処理方法。
【請求項4】
前記演算装置との間で通信可能であって、前記被写体の位置を認識可能な外部装置に少なくとも1個の前記フレームを送信し、
前記被写体の認識位置を前記外部装置から取得する、
請求項1に記載の画像処理方法。
【請求項5】
前記フレームをK(K:2以上の整数)個合成した合成画像を生成し、
前記合成画像に写る前記被写体の認識位置に基づいて、前記第2補正量を算出する、
請求項1に記載の画像処理方法。
【請求項6】
前記低速ビジョン処理において、
前記K個のフレームのそれぞれに写る前記被写体の位置を推定し、
前記推定された前記被写体の推定位置と、前記被写体の基準位置を示す第0フレームに写る前記被写体の位置とに基づいて、前記第0フレームと第Kフレームとの間の前記被写体の第3の動き量を計測し、
前記第3の動き量に基づいて、前記第Kフレームを前記第0フレームに合成する合成処理をK回繰り返し実行して、前記合成画像を生成する、
請求項5に記載の画像処理方法。
【請求項7】
前記低速ビジョン処理において、
前記被写体の認識位置と、前記被写体の前記第3の動き量とに基づいて、前記第2補正量を算出する、
請求項6に記載の画像処理方法。
【請求項8】
前記駆動デバイスの位置情報を取得し、
前記低速ビジョン処理において、
前記被写体の認識位置と、前記駆動デバイスの位置情報と、前記第Kフレームに写る前記被写体の位置とに基づいて、前記被写体の前記第3の動き量を計測する、
請求項6に記載の画像処理方法。
【請求項9】
前記駆動デバイスの位置情報を取得し、
前記高速ビジョン処理において、
次に取得される最新フレームに写る前記被写体の位置を推定して、前記最新フレームを取得し、
前記推定された前記被写体の推定位置と、前記駆動デバイスの位置情報と、前記最新フレームに写る前記被写体の位置とに基づいて、連続する2つのフレーム間における前記被写体の前記第1の動き量を計測する、
請求項1に記載の画像処理方法。
【請求項10】
前記低速ビジョン処理により算出された前記第2補正量を、所定数で分割した第3補正量を算出し、
前記第1制御指令の生成を省略するとともに、前記第1補正量と前記第3補正量とに基づく前記第2制御指令を生成して前記駆動デバイスに出力する処理を前記所定数繰り返し実行する、
請求項2に記載の画像処理方法。
【請求項11】
前記第1制御指令に基づいて補正される前記駆動デバイスの位置の補正上限を記憶し、
前記低速ビジョン処理により算出された前記第2補正量が前記駆動デバイスの位置の補正上限以上であると判定した場合、前記第1制御指令の生成を省略するとともに、前記第1補正量と前記第3補正量とに基づく前記第2制御指令を生成して前記駆動デバイスに出力する処理を前記所定数繰り返し実行する、
請求項10に記載の画像処理方法。
【請求項12】
次の前記低速ビジョン処理において認識される前記被写体の認識位置を推定し、
前記少なくとも1個のフレームに写る前記被写体の認識位置と、前記推定された前記被写体の認識位置とに基づいて、前記被写体の第4の動き量を算出し、
前記第1補正量と、前記第4の動き量とに基づいて、前記第2制御指令を生成する、
請求項2に記載の画像処理方法。
【請求項13】
前記低速ビジョン処理により算出された前記第2補正量を、所定数で分割した第3補正量を算出し、
次の前記低速ビジョン処理において認識される前記被写体の認識位置を推定し、
前記少なくとも1個のフレームに写る前記被写体の認識位置と、前記推定された前記被写体の認識位置とに基づいて、前記被写体の第4の動き量を算出し、
前記第1補正量と、前記第3補正量と、前記第4の動き量とに基づく前記第1制御指令を生成して前記駆動デバイスに出力する処理を前記所定数繰り返し実行する、
請求項2に記載の画像処理方法。
【請求項14】
駆動デバイスと被写体を撮像するカメラとの間で通信可能な演算装置であって、
前記カメラにより撮像された複数のフレームを取得する取得部と、
前記複数のフレーム間における前記被写体の動き量に基づいて、前記駆動デバイスの位置を補正する第1補正量を算出する高速ビジョン処理を実行する高速処理部と、
前記高速ビジョン処理の処理周期よりも長い処理周期で、前記被写体の認識位置に基づいて、前記駆動デバイスの位置を補正する第2補正量を算出する低速ビジョン処理を実行する低速処理部と、
前記第1補正量および前記第2補正量の少なくとも一方に基づく制御指令を生成して前記駆動デバイスに出力する制御部と、を備える、
画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理方法および画像処理装置に関する。
【背景技術】
【0002】
特許文献1には、監視カメラにより対象エリアを所定タイミング毎に撮影した画像のカメラ揺れを補正するカメラ揺れ補正方法が開示されている。カメラ揺れ補正方法は、画像の2フレームの一方を基準画像、他方を処理画像とし、基準画像から作成したテンプレートパターンを用いて処理画像のパターンマッチングを行い、カメラ揺れによる画像ずれの規則性を利用して特定のマッチング領域を選択し、その移動ベクトル(つまり、オプティカルフロー)からカメラ揺れ量を算出して画像ずれを補正する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006-094560号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の構成では、画像ずれを補正するのみであるため、補正後の画像を用いて画像認識を実行したり、カメラ揺れ量に基づくフィードバックしたりすることは想定されていない。また、カメラ揺れ補正方法は、リアルタイムで画像ずれをオンライン処理するために、揺れ補正の画像シフトを1回だけ実行する。つまり、カメラ揺れ補正方法は、補正された画像を用いた画像処理,フィードバック等を含めての低遅延化を実現することは困難だった。
【0005】
本開示は、上述した従来の事情に鑑みて案出され、高速度カメラを用いた対象物の高速撮像と、対象物に対するリアルタイムな作業位置の補正とを実現可能な画像処理方法および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示は、駆動デバイスと被写体を撮像するカメラとの間で通信可能な演算装置が行う画像処理方法であって、前記カメラにより撮像された複数のフレームを取得し、前記複数のフレーム間における前記被写体の第1の動き量を計測し、計測された前記被写体の第1の動き量に基づいて、前記駆動デバイスの位置を補正する第1補正量を算出する高速ビジョン処理と、前記高速ビジョン処理の処理周期よりも長い処理周期を有し、少なくとも1個の前記フレームに写る前記被写体の認識位置に基づいて、前記駆動デバイスの位置を補正する第2補正量を算出する低速ビジョン処理と、を実行し、前記第1補正量および前記第2補正量の少なくとも一方に基づく制御指令を生成して前記駆動デバイスに出力する、画像処理方法を提供する。
【0007】
また、本開示は、駆動デバイスと被写体を撮像するカメラとの間で通信可能な演算装置であって、前記カメラにより撮像された複数のフレームを取得する取得部と、前記複数のフレーム間における前記被写体の動き量に基づいて、前記駆動デバイスの位置を補正する第1補正量を算出する高速ビジョン処理を実行する高速処理部と、前記高速ビジョン処理の処理周期よりも長い処理周期で、前記被写体の認識位置に基づいて、前記駆動デバイスの位置を補正する第2補正量を算出する低速ビジョン処理を実行する低速処理部と、前記第1補正量および前記第2補正量の少なくとも一方に基づく制御指令を生成して前記駆動デバイスに出力する制御部と、を備える、画像処理装置を提供する。
【発明の効果】
【0008】
本開示によれば、高速度カメラを用いた対象物の高速撮像と、対象物に対するリアルタイムな作業位置の補正とを実現できる。
【図面の簡単な説明】
【0009】
図1】実施の形態1に係る高速度画像処理システムの内部構成例を示すブロック図
図2】実施の形態1における高速ビジョン処理部の機能ブロック図
図3】実施の形態1に係る高速度画像処理システムの全体動作手順例を示すシーケンス図
図4】高速ビジョン処理部および低速ビジョン処理装置のそれぞれの処理タイミングを示すタイムチャート
図5】実施の形態1における高速ビジョン処理部の第1の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図
図6】実施の形態1における高速ビジョン処理部の合成用画像生成処理手順例を示すシーケンス図
図7】実施の形態1における高速ビジョン処理部の第2の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図
図8】実施の形態1の変形例1における高速ビジョン処理部の機能ブロック図
図9】実施の形態1の変形例1における高速ビジョン処理部の第3の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図
図10】平滑化処理を説明する図
図11】実施の形態1の変形例2における高速ビジョン処理部の機能ブロック図
図12】実施の形態1の変形例2における高速ビジョン処理部の第4の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図
図13】予測処理を説明する図
図14】予測処理を説明する図
図15】実施の形態1の変形例3における高速ビジョン処理部の機能ブロック図
図16】実施の形態1の変形例3における高速ビジョン処理部の第5の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図
図17】平滑化・予測処理を説明する図
図18】平滑化・予測処理を説明する図
図19】実施の形態2における高速ビジョン処理部の機能ブロック図
図20】実施の形態2に係る高速度画像処理システムの全体動作手順例を示すシーケンス図
図21】実施の形態2における高速ビジョン処理部の前景追跡画像生成処理,補正量算出処理手順例を示すシーケンス図
図22】実施の形態2における高速ビジョン処理部の背景追跡画像生成処理,補正量算出処理手順例を示すシーケンス図
図23】実施の形態2における高速ビジョン処理部の前景合成用画像生成処理手順例を示すシーケンス図
図24】実施の形態2における高速ビジョン処理部の背景合成用画像生成処理手順例を示すシーケンス図
【発明を実施するための形態】
【0010】
(本開示に至る経緯)
近年、高速度でワーク等の対象物を撮像可能なカメラを用いて撮像されたフレーム(撮像画像)を画像処理し、外乱(例えば、振動,風等)に起因するカメラの揺れをリアルタイムに補正(除去)し、対象物の位置をリアルタイムに追跡することで、この対象物に対する所定の作業を実行可能な画像処理システムが要望されていた。しかし、このような画像処理システムは、画像処理をしている間に、ワークと、ワークに対して所定の作業を行う生産設備との相対位置が変化するため、ロボット,ワークの搬送装置等の各種生産設備の稼働速度を制限したり、一時停止したりする必要があった。
【0011】
ここで、従来、リアルタイムで画像ずれをオンライン処理するために、揺れ補正の画像シフトを1回だけ実行することで、カメラの揺れによるフレームの位置ずれを高速で補正可能なカメラ揺れ補正方法がある。しかし、このカメラ揺れ補正方法は、フレームの位置ずれを補正するのみで、位置ずれ補正されたフレームを用いて、所定の作業が行われる作業位置をリアルタイムにフィードバックして、作業位置を補正することは想定されていない。
【0012】
よって、以下に示す各実施の形態においては、高速度カメラを用いた対象物の高速撮像と、対象物に対するリアルタイムな作業位置の補正とを実現可能な画像処理方法および画像処理装置の例を説明する。
【0013】
以下、適宜図面を参照しながら、本開示に係る画像処理方法および画像処理装置の構成および作用を具体的に開示した各実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるものであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【0014】
(実施の形態1)
図1および図2のそれぞれを参照して、実施の形態1に係る高速度画像処理システム100の内部構成例について説明する。図1は、実施の形態1に係る高速度画像処理システム100の内部構成例を示すブロック図である。図2は、実施の形態1における高速ビジョン処理部11の機能ブロック図である。
【0015】
また、図2に示すブロック図において、高速度カメラ14のフレームレート(例えば、1000frames per second(以降、「fps」と表記))で撮像された撮像画像のそれぞれを、高速度カメラ14のフレームレートに対応する処理速度で処理して入出力する区間を実線で示す。図2に示すブロック図において、低速ビジョン処理装置P2の画像認識処理速度に対応する処理速度(例えば、60fps)で処理して入出力する区間を一点鎖線で示す。
【0016】
高速度画像処理システム100は、高速、例えば、1000fps等で対象物Tgを撮像する高速度カメラ14により撮像されたフレーム(撮像画像)を高速画像処理して、サーボモータ15Aの駆動量を補正するとともに、高速で撮像されたフレームを合成した合成画像を低速画像処理して、対象物Tgの位置(以降、「目標位置」と表記)を補正する。高速度画像処理システム100は、対象物Tgと、作業装置P1と、低速ビジョン処理装置P2とを含む。
【0017】
なお、図1に示す高速度画像処理システム100は、一例であってこれに限定されない。例えば、高速度画像処理システム100は、高速度カメラ14、アクチュエータ15および低速ビジョン処理装置P2のそれぞれが一体的に構成されてもよいし、画像処理装置の一例としての演算装置P11が高速度カメラ14およびアクチュエータ15のそれぞれと別体で構成されてもよい。
【0018】
作業装置P1は、高速度カメラ14によって対象物を高速撮像し、高速撮像されたフレームのそれぞれを画像処理して、対象物Tgに対する高速度カメラ14の位置を補正するためにサーボモータ15Aを目標位置に合わせて駆動させたりする。
【0019】
作業装置P1は、通信部10と、高速ビジョン処理部11,11B,11C,11D,11E(高速処理部,低速処理部,制御部の一例)と、メモリ12と、サーボ制御部13と、高速度カメラ14と、アクチュエータ15とを含む。なお、通信部10、高速ビジョン処理部11,11B~11E、メモリ12、およびサーボ制御部13のそれぞれは、1つの演算装置P11によって実現されてよい。なお、以降の各高速ビジョン処理部11,11B~11Eの説明において、高速ビジョン処理部11Bを実施の形態1の変形例1、高速ビジョン処理部11Cを実施の形態1の変形例2、高速ビジョン処理部11Dを実施の形態1の変形例3、高速ビジョン処理部11Eを実施の形態2でそれぞれ説明する。
【0020】
取得部の一例としての通信部10は、データの送受信を行うための通信インターフェース回路を用いて構成される。通信部10は、作業装置P1と低速ビジョン処理装置P2との間を有線通信または無線通信可能に接続し、データの送受信を実現する。なお、ここでいう無線通信は、例えばWi-Fi(登録商標)等の無線Local Area Network(LAN)を介した通信である。
【0021】
高速ビジョン処理部11は、例えばField Programmable Gate Array(以降、「FPGA」と表記)、リアルタイムOperating System(OS)等を搭載したマイクロコンピュータ等を用いて構成されて、メモリ12と協働して、各種の処理および制御を行う。具体的には、高速ビジョン処理部11は、メモリ12に保持されたプログラムおよびデータを参照し、そのプログラムを実行することにより、動き計測部111、追跡画像生成部112、合成用画像生成部113、フレーム合成部114、目標位置補正部115等の機能を実現する。
【0022】
<追跡画像生成処理>
高速ビジョン処理部11は、追跡画像生成部112,112Aによって、高速度カメラ14のフレームレート(例えば、1000fps等)に対応する処理速度で、連続して撮像された2枚のフレーム間において対象物Tgを追跡するための追跡画像を生成する。
【0023】
高速ビジョン処理部11は、動き計測部111により、フレームn(n:1以上の整数)の次に撮像されるフレームn+1に写る対象物Tgの位置を推定し、フレームnに写る対象物Tgの位置とフレームn+1に写る対象物Tgの位置(以降、「推定位置」と表記)との間の対象物Tgの動き量を計測する。
【0024】
高速ビジョン処理部11は、動き計測部111の計測結果に基づいて、フレームnに写る対象物Tgの位置をフレームn+1に写る対象物Tgの位置に移動させる第1変換行列を算出する。高速ビジョン処理部11は、算出された第1変換行列を用いてフレームnをアフィン変換し、2枚のフレーム(つまり、フレームn,フレームn+1)間で移動する対象物Tgの位置を追跡する追跡画像を生成する。
【0025】
また、高速ビジョン処理部11は、サーボ制御部13から出力されたサーボモータ15Aの位置情報(例えば、サーボモータ15Aの位置に関する情報、サーボモータ15Aの位置を示すジャイロ情報等)をさらに用いて、第1変換行列を算出してもよい。このような場合、高速ビジョン処理部11は、動き計測部111により、サーボモータ15Aの位置情報と、次に撮像されるフレーム(つまり、次のフレームn+1)に写る対象物Tgの推定位置とに基づいて、追跡画像の生成に用いられる第1変換行列を算出する。
【0026】
<合成用画像生成処理>
高速ビジョン処理部11は、合成用画像生成部113により高速度カメラ14のフレームレート(例えば、1000fps等)に対応する処理速度で、フレームを合成画像の生成に用いられるフレーム(以降、「合成用画像」と表記)を生成する。
【0027】
高速ビジョン処理部11は、動き計測部111により、後述する合成画像を生成するための合成用画像の合成処理において、各合成用画像の合成基準となるフレーム0に映る対象物Tgの位置を計測して、記憶する。高速ビジョン処理部11は、高速度カメラ14から出力されたフレームnに写る対象物Tgの位置と、フレーム0に写る対象物Tgの位置との間の対象物Tgの動き量を計測する。
【0028】
高速ビジョン処理部11は、計測されたフレームnとフレーム0との間の対象物Tgの動き量に基づいて、フレームnを合成画像の生成に用いられる合成用画像に変換するための第2変換行列を算出する。高速ビジョン処理部11は、合成用画像生成部113により算出された第2変換行列を用いて、フレームnを合成用画像に変換する。これにより、高速ビジョン処理部11は、フレーム0に写る対象物Tgの位置に、フレームnに写る対象物Tgの位置を合わせた合成用画像を生成することができる。
【0029】
具体的に、合成画像が16枚の合成用画像のそれぞれを合成して生成される場合、フレーム0は、1枚目の合成用画像を示す。また、高速ビジョン処理部11は、フレーム合成部114による合成画像の生成が完了した場合、合成画像の生成が終了した後に高速度カメラ14から出力された17枚目のフレームをフレーム0(つまり、1枚目の合成用画像)に設定して、次の合成画像の生成処理を開始する。
【0030】
高速ビジョン処理部11は、フレーム合成部114によって合成用画像の合成を実行する。高速ビジョン処理部11は、合成用画像生成部113によるフレームnに基づく合成用画像の生成処理と、フレーム合成部114によるフレーム0~フレームn-1のそれぞれの合成用画像が合成された合成画像と、フレームnに基づく合成用画像との合成処理と、を所定回数繰り返し実行し、所定枚数の合成用画像(つまり、フレーム)を合成した合成画像を生成する。高速ビジョン処理部11は、生成された合成画像を通信部10に出力し、低速ビジョン処理装置P2に送信させる。
【0031】
なお、合成画像の生成は、必須でなく省略されてもよい。このような場合、高速ビジョン処理部11は、いずれか1枚のフレームを通信部10に出力し、低速ビジョン処理装置P2に送信させる。
【0032】
メモリ12は、例えば高速ビジョン処理部11の各処理を実行する際に用いられるワークメモリとしてのRandom Access Memory(以降、「RAM」と表記)と、高速ビジョン処理部11の動作を規定したプログラムおよびデータを格納するRead Only Memory(以降、「ROM」と表記)とを有する。RAMには、高速ビジョン処理部11により生成あるいは取得されたデータもしくは情報が一時的に保存される。ROMには、高速ビジョン処理部11の動作を規定するプログラムが書き込まれている。メモリ12は、追跡用フレームバッファ12Aと、合成用フレームバッファ12Bとを含む。
【0033】
追跡用フレームバッファ12Aは、高速度カメラ14から出力され、追跡画像生成部112による追跡画像の生成と、合成用画像生成部113による合成用画像の生成とに用いられるフレームを格納する。追跡用フレームバッファ12Aは、フレームと、フレームが撮像された時系列を示すアドレスとを対応付けて、格納する。
【0034】
合成用フレームバッファ12Bは、フレーム合成部114により合成された合成画像を格納する。合成用フレームバッファ12Bは、フレーム合成部114から出力された制御指令に基づいて、格納された合成画像を通信部10に出力し、低速ビジョン処理装置P2に送信させる。
【0035】
サーボ制御部13は、例えばFPGA、リアルタイムOS等を搭載したマイクロコンピュータ等を用いて構成されて、メモリ12と協働して、各種の処理および制御を行う。具体的には、サーボ制御部13は、メモリ12に保持されたプログラムおよびデータを参照し、そのプログラムを実行することにより、アクチュエータ15の制御を実行する。サーボ制御部13は、目標位置補正部115から出力された目標位置の補正値に基づいて、サーボモータ15Aの補正量を決定し、サーボモータ15Aの制御指令を生成する。
【0036】
高速度カメラ14は、少なくともレンズ(不図示)とイメージセンサ(不図示)とを有して構成される。イメージセンサは、例えばCharged-Coupled Device(CCD)またはComplementary Metal Oxide Semiconductor(CMOS)の固体撮像素子であり、撮像面に結像した光学像を電気信号に変換する。高速度カメラ14は、高フレームレート(例えば、1000fps)で対象物Tgを撮像する。なお、高速度カメラ14は、例えば可視光あるいは非可視光等を撮像可能なカメラであってもよいし、例えば電磁波を撮像可能な電界カメラであってもよい。
【0037】
アクチュエータ15は、サーボモータ15A(駆動デバイスの一例)を備える。アクチュエータ15は、サーボ制御部13による制御に基づいて、サーボモータ15Aを駆動させることで、対象物Tgに対する所定の作業を実行する。なお、アクチュエータ15は、サーボモータ15Aの替わりに他のモータを備えてもよい。例えば、アクチュエータ15は、サーボモータ15Aの替わりに例えばピエゾ素子等の駆動デバイス、熱による液体の膨張により駆動する駆動デバイス等を備えてよい。
【0038】
外部装置の一例としての低速ビジョン処理装置P2は、作業装置P1の通信部10との間で有線通信または無線通信可能に接続されて、データの送受信を実行する。低速ビジョン処理装置P2は、Artificial Intelligence(AI)あるいは機械学習等による画像認識処理を実行可能である。
【0039】
低速ビジョン処理装置P2は、作業装置P1から送信された合成画像に画像認識処理を実行し、合成画像に写る対象物Tgの位置を検出(認識)する。低速ビジョン処理装置P2は、検出された対象物Tgの位置情報を作業装置P1の通信部10に送信する。なお、低速ビジョン処理装置P2は、合成画像の生成が省略される場合、作業装置P1から送信されたいずれか1枚のフレームに画像認識処理を実行し、このフレームに写る対象物Tgの位置を検出(認識)する。
【0040】
次に、図3および図4のそれぞれを参照して、実施の形態1に係る高速度画像処理システム100の動作手順について説明する。図3は、実施の形態1に係る高速度画像処理システム100の全体動作手順例を示すシーケンス図である。図4は、高速ビジョン処理部11および低速ビジョン処理装置P2のそれぞれの処理タイミングを示すタイムチャートである。
【0041】
高速ビジョン処理部11は、高速度カメラ14により撮像されたフレームに写る対象物Tgの位置を初期位置に設定する(St11)。
【0042】
高速度画像処理システム100は、ステップSt11の処理の後、第1ループ処理LP1と、第2ループ処理LP2とを並列に実行するループ処理LPを繰り返し実行する。
【0043】
まず、第1ループ処理LP1について説明する。第1ループ処理LP1は、高速度カメラ14のフレームレートの倍数回繰り返し実行される処理である。第1ループ処理LP1は、ステップSt12~ステップSt13のそれぞれの処理を実行した後、ステップSt100の追跡画像生成処理,補正量算出処理およびステップSt14~ステップSt16のそれぞれの処理(並行処理PAR1)と、ステップSt200の合成用画像生成処理(並行処理PAR2)とを高速度カメラ14のフレームレートに対応する速度(例えば、1000fps)で並列に実行する。
【0044】
第1ループ処理LP1において、高速度カメラ14は、高速(例えば、1000fps)で対象物Tgを撮像し(St12)、撮像されたフレームを高速ビジョン処理部11に出力する(St13)。
【0045】
高速ビジョン処理部11は、高速度カメラ14から出力されたフレームを用いて、追跡画像生成処理,補正量算出処理を実行する(St100,St100A)。なお、ステップSt100の追跡画像生成処理,補正量算出処理は、後述する図5で説明する。また、ステップSt100Aの追跡画像生成処理,補正量算出処理は、後述する図7で説明する。
【0046】
高速ビジョン処理部11は、ステップSt100,St100Aの補正量算出処理により算出された目標位置の補正量をサーボ制御部13に出力する(St14)。
【0047】
サーボ制御部13は、高速ビジョン処理部11から出力された目標位置の補正量に基づいて、アクチュエータ15のサーボモータ15Aの位置を補正するための制御指令を生成する(St15)。サーボ制御部13は、生成された制御指令(第2制御指令の一例)をアクチュエータ15に出力し、サーボモータ15Aの位置補正を実行させる(St16)。
【0048】
高速ビジョン処理部11は、高速度カメラ14から出力されたフレームを用いて、合成用画像生成処理を実行する(St200)。なお、ステップSt200の合成用画像生成処理は、後述する図6で説明する。
【0049】
次に、第2ループ処理LP2について説明する。第2ループ処理LP2は、ステップSt21~ステップSt23のそれぞれの処理を低速ビジョン処理装置P2の画像認識処理の速度(例えば、60fps)で実行し、ステップSt24~ステップSt27のそれぞれの処理を高速ビジョン処理部11の処理速度であって、高速度カメラ14のフレームレートに対応する速度(例えば、1000fps)で実行する。
【0050】
第2ループ処理LP2において、高速ビジョン処理部11は、ステップSt200の合成用画像生成処理で生成された合成画像を低速ビジョン処理装置P2に送信する(St21)。なお、ステップSt21の処理において、ステップSt200の合成用画像生成処理が省略される場合、高速ビジョン処理部11は、高速度カメラ14から出力されたいずれか1枚のフレームを、合成画像の代わりに低速ビジョン処理装置P2に送信する。
【0051】
なお、本開示では、高速ビジョン処理部11は、1000fpsで撮像され、合成用画像生成処理で生成された16枚の合成用画像を合成することで、60fpsで撮像されたフレームに相当する合成画像を生成する例を示すが、これに限定されない。合成画像は、低速ビジョン処理装置P2の画像認識処理に要する時間、利用用途によって要求される画像認識精度等に基づいて、2枚以上の任意の合成用画像を合成して生成されてよい。
【0052】
低速ビジョン処理装置P2は、高速ビジョン処理部11から送信された合成画像に画像認識処理を実行し、対象物Tgの位置を検出する(St22)。低速ビジョン処理装置P2は、検出された対象物Tgの位置情報を高速ビジョン処理部11に送信する(St23)。図4の画像認識処理に対応するステップSt22~ステップSt23のそれぞれの処理は、低速ビジョン処理装置P2の画像認識処理に対応する60fps(低速処理)で実行される。
【0053】
高速ビジョン処理部11は、動き計測部111によって検出される対象物Tgの位置を目標位置に補正する(St24)。また、高速ビジョン処理部11は、現在設定されている対象物Tgの位置を、低速ビジョン処理装置P2により認識された対象物Tgの位置(目標位置)に補正するための補正量を算出し、算出された目標位置の補正量をサーボ制御部13に出力する(St25)。なお、ステップSt24以降の処理は、高速度カメラ14のフレームレート(1000fps)に対応する速度で処理が実行される。
【0054】
サーボ制御部13は、高速ビジョン処理部11から出力された補正量に基づいて、アクチュエータ15が備えるサーボモータ15Aの位置を補正するための制御指令を生成する(St26)。サーボ制御部13は、生成された制御指令(第1制御指令の一例)をアクチュエータ15に出力し、サーボモータ15Aの位置補正を実行させる(St27)。
【0055】
以上により、実施の形態1に係る高速度画像処理システム100は、高速度カメラ14により撮像されたフレームを高速画像処理することにより、外乱による高速度カメラ14の位置ずれを補正できる。また、高速度画像処理システム100は、高速度カメラ14により撮像されたフレームを合成した合成画像を低速画像処理することにより対象物Tgの位置ずれを高精度に補正できる。したがって、高速度画像処理システム100は、リアルタイムな高速度カメラ14の位置ずれ量の算出と、補正とを実現できる。
【0056】
これにより、アクチュエータ15は、画像認識処理による対象物Tgを認識するまでの間、対象物Tgに対する所定の作業を一時的に停止したり、作業速度を低下させたりすることなく実行できるため、作業効率を向上できる。
【0057】
また、実施の形態1に係る高速度画像処理システム100は、アクチュエータ15のサーボモータ15Aの位置情報(例えば、速度情報、加速度情報等)を用いて高速度カメラ14の位置ずれを補正する場合、連続する2枚のフレームが撮像される間にサーボモータ15Aに起因する位置ずれ量と、連続する2枚のフレームの差分とに基づいて、高速度カメラ14の位置ずれ量をより高精度に算出して、補正できる。
【0058】
次に、図5を参照して、高速ビジョン処理部11の第1の追跡画像生成処理,補正量算出処理(ステップSt100)手順例について説明する。図5は、実施の形態1における高速ビジョン処理部11の第1の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図である。なお、ここでいう第1の追跡画像生成処理,補正量算出処理は、サーボ制御部13からサーボモータ15Aの位置情報を取得しない場合に実行される追跡画像生成手順である。
【0059】
動き計測部111は、フレームn(つまり、n番目のフレーム)の次に撮像されるフレームn+1(つまり、(n+1)番目のフレーム)に写る対象物Tgの位置を推定し、推定された対象物Tgの推定位置に基づいて、フレームnとフレームn+1との間の対象物Tgの動き量を計測する。動き計測部111は、フレームnに写る対象物Tgの位置を、フレームnの次に撮像されるフレームn+1に写る対象物Tgの位置に変換するための第1変換行列を算出して設定する(St101)。動き計測部111は、設定された第1変換行列を追跡画像生成部112に出力する(St102)。
【0060】
なお、ここで、動き計測部111は、対象物Tgあるいは作業装置P1(高速度カメラ14)が等速直線運動をしていると仮定して、対象物Tgの推定位置を推定してもよい。このような場合、動き計測部111は、フレームが高速(例えば、1000fps)で撮像されるため、フレームnとフレームn+1との間での高速度カメラ14の位置の変化量と、高速度カメラ14の加速度の情報とを取得できる。
【0061】
追跡画像生成部112は、動き計測部111から出力された第1変換行列を取得する。追跡画像生成部112における追跡用射影変換アドレス生成部1121は、取得された第1変換行列に基づいて、フレームnの全域を変形し、フレームnに写る対象物Tgを追跡するためのアドレスを生成する。追跡画像生成部112は、アドレスに基づいて、フレームnの読み出しを要求する制御指令を生成し、追跡用フレームバッファ12Aに送信する(St103)。
【0062】
追跡用フレームバッファ12Aは、追跡画像生成部112から出力された制御指令に基づいて、格納済みのフレームのうちアドレスに対応するフレームnを読み出す(St104)。追跡用フレームバッファ12Aは、読み出されたフレームnを追跡画像生成部112に出力する(St105)。
【0063】
追跡画像生成部112は、追跡用フレームバッファ12Aから出力されたフレームnを取得する。追跡画像生成部112における画像変換部1122は、第1変換行列を用いて、フレームnを変換する(St106)。追跡画像生成部112は、変換後のフレームnを動き計測部111に出力する(St107)。なお、ステップSt107の処理で動き計測部111に出力されるフレームは、対象物Tgの少なくとも一部を含む領域(画素)を切り出した画素データであってもよい。
【0064】
高速度カメラ14は、対象物Tgを撮像する(St108)。高速度カメラ14は、フレームn+1を動き計測部111に送信するともに(St109)、フレームn+1を追跡用フレームバッファ12Aに送信する(St110)。
【0065】
追跡用フレームバッファ12Aは、高速度カメラ14から送信されたフレームn+1を書き込み、格納する(St111)。
【0066】
動き計測部111は、フレームn+1と、変換後のフレームnとを比較し、それぞれのフレームに写る対象物Tgの位置の差分に基づいて、フレームnとフレームn+1との間の対象物Tgの動き量(つまり、対象物Tgの位置差分)を計測する(St112)。なお、ここで、動き計測部111は、フレームnを用いて推定された対象物Tgの推定位置に基づいて、フレームn+1および変換後のフレームnのそれぞれから少なくとも推定位置に対応する画素を含む領域の画素データを抽出し、抽出された画素データから対象物Tgの位置の動き量を計測してよい。
【0067】
動き計測部111は、計測された対象物Tgの動き量に基づいて、補正後のサーボモータ15Aの位置(以降、「第1目標位置」と表記)を算出する(St113)。動き計測部111は、算出された第1目標位置を含む第1目標位置情報を生成して、目標位置補正部115に出力する(St114)。
【0068】
目標位置補正部115は、動き計測部111から出力された第1目標位置情報に基づいて、サーボモータ15Aの位置を補正する補正量を算出する(St115)。
【0069】
以上により、実施の形態1における高速ビジョン処理部11は、次のフレームn+1に写る対象物Tgの推定位置に基づいてフレームnを変換することで、2枚のフレーム間に写る対象物Tgの動き量の計測処理を高速化することができる。これにより、高速ビジョン処理部11は、高速度カメラ14により撮像されたフレームを高速画像処理することができ、外乱による高速度カメラ14の揺れを除去して、対象物Tg(目標位置)を追跡するためのサーボモータ15Aの位置補正をリアルタイムに実行できる。
【0070】
サーボ制御部13は、高速度カメラ14のフレームレートよりも高いkHzオーダーで駆動可能なアクチュエータ15のサーボモータ15Aを駆動させることで、高速ビジョン処理部11により算出された目標位置の補正量に基づいて、サーボモータ15Aの位置補正をリアルタイムに実行できる。
【0071】
次に、図6を参照して、高速ビジョン処理部11の合成用画像生成処理(ステップSt200)手順例について説明する。図6は、実施の形態1における高速ビジョン処理部11の合成用画像生成処理手順例を示すシーケンス図である。
【0072】
動き計測部111は、フレームnに写る対象物Tgの位置に基づいて、フレームnに写る対象物Tgの位置をフレーム0に写る対象物Tgの位置に移動させる第2変換行列を算出し、フレームnに写る対象物Tgの位置と、フレーム0に写る対象物Tgの位置変換するための第2変換行列を算出して設定する(St201)。動き計測部111は、設定された第2変換行列を合成用画像生成部113に出力する(St202)。なお、ここでいうフレーム0は、合成画像の生成に用いられる最初のフレームであって、合成処理により合成される対象物Tgの基準位置として設定されるフレームである。
【0073】
合成用画像生成部113は、動き計測部111から出力された第2変換行列を取得する。合成用画像生成部113における画像認識用射影変換アドレス生成部1131は、取得された第2変換行列に基づいて、フレームnの全域を変形し、フレームnに写る対象物Tgを追跡するためのアドレスを生成する。合成用画像生成部113は、アドレスに基づいて、フレームnの読み出しを要求する制御指令を生成し、追跡用フレームバッファ12Aに送信する(St203)。
【0074】
追跡用フレームバッファ12Aは、合成用画像生成部113から出力された制御指令に基づいて、格納済みのフレームのうちアドレスに対応するフレームnを読み出す(St204)。追跡用フレームバッファ12Aは、読み出されたフレームnを合成用画像生成部113に出力する(St205)。
【0075】
合成用画像生成部113における画像認識用射影変換アドレス生成部1131は、取得された第2変換行列を用いて、フレームnに写る対象物Tgの位置を、フレーム0に写る対象物Tgの位置に合わせるようにフレームnの全域を変形する(St206)。
【0076】
合成用画像生成部113は、フレームnに対応する合成用画像をフレーム合成部114に出力する(St207)。なお、ステップSt207の処理でフレーム合成部114に出力される合成用画像は、対象物Tgの少なくとも一部を含む領域(画素)を切り出した画素データであってもよい。
【0077】
フレーム合成部114は、フレームnに対応する合成用画像と合成され、フレーム0~フレームn-1のそれぞれに対応する合成用画像が合成された合成用画像の読み出しを要求する制御指令を生成して、合成用フレームバッファ12Bに出力する(St208)。
【0078】
なお、フレーム合成部114は、合成用画像生成部113から出力された合成用画像が、フレーム0に対応する合成用画像の合成である場合には、このフレーム0に対応する合成用画像の書き込みを要求する制御指令を生成して、合成用フレームバッファ12Bに出力する。
【0079】
合成用フレームバッファ12Bは、フレーム合成部114から出力された制御指令に基づいて、合成用画像を読み出す(St209)。合成用フレームバッファ12Bは、読み出された合成用画像をフレーム合成部114に出力する(St210)。
【0080】
フレーム合成部114は、合成用フレームバッファ12Bから出力された合成用画像と、フレームnに対応する合成用画像とを合成し(St211)、合成後の合成用画像の書き込みを要求する制御指令を生成して、合成画像と対応付けて合成用フレームバッファ12Bに出力する(St212)。合成用フレームバッファ12Bは、フレーム合成部114から出力された合成用画像の書き込みを実行する(St213)。
【0081】
フレーム合成部114は、合成用画像を所定枚数(例えば、16枚等)合成したか否かを判定する(St214)。
【0082】
フレーム合成部114は、ステップSt214の処理において、合成用画像を所定枚数合成したと判定した場合(St214,YES)、所定枚数の合成用画像が合成された合成画像を低速ビジョン処理装置P2に送信させる制御指令を生成して、合成用フレームバッファ12Bに出力する(St215)。
【0083】
フレーム合成部114は、ステップSt214の処理において、合成用画像を所定枚数合成していないと判定した場合(St214,NO)、所定枚数の合成用画像が合成された合成画像を低速ビジョン処理装置P2に送信させる制御指令の生成を省略する。高速ビジョン処理部11は、ステップSt201の処理に戻る。
【0084】
以上により、実施の形態1における高速ビジョン処理部11は、高速度カメラ14により撮像されたフレームを、第2変換行列を用いて変換して合成することで、合成枚数に対応する露光時間のフレーム(合成画像)を生成できる。つまり、高速ビジョン処理部11は、フレームの外乱あるいは露光時間の短さに起因する揺れ(ブラー)を効果的に除去した合成画像を生成できる。これにより、高速ビジョン処理部11は、低速ビジョン処理装置P2により実行される画像認識処理に適した合成画像を生成できる。
【0085】
次に、図7を参照して、高速ビジョン処理部11の第2の追跡画像生成処理,補正量算出処理(ステップSt100A)手順例について説明する。図7は、実施の形態1における高速ビジョン処理部11の第2の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図である。なお、ここでいう第2の追跡画像生成処理,補正量算出処理は、サーボ制御部13から取得されたサーボモータ15Aの位置情報を用いてサーボモータ15Aの補正量を算出する場合に実行される追跡画像生成手順である。
【0086】
なお、図7に示す第2の追跡画像生成処理,補正量算出処理において、ステップSt102~ステップSt115のそれぞれの処理は、図5で説明したステップSt102~ステップSt115のそれぞれの処理と同様であるため、説明を省略する。
【0087】
動き計測部111は、フレームnに写る対象物Tgの位置に基づいて、フレームn+1に写る対象物Tgの推定位置を算出する(St121)。
【0088】
サーボ制御部13は、アクチュエータ15のサーボモータ15Aの位置情報(例えば、速度情報あるいは加速度情報等)を取得する(St122)。サーボ制御部13は、取得されたサーボモータ15Aの位置情報を追跡画像生成部112Aに出力する(St123)。
【0089】
追跡画像生成部112Aは、算出された推定位置と、サーボ制御部13から出力されたサーボモータ15Aの位置情報とに基づいて、フレームnに写る対象物Tgの位置を、フレームnの次に撮像されるフレームn+1に写る対象物Tgの推定位置に変換するための第1変換行列を算出して設定する(St101A)。
【0090】
以上により、実施の形態1における高速ビジョン処理部11は、サーボ制御部13から取得されたサーボモータ15Aの位置情報を用いることで、対象物Tgの位置を高精度に推定できる。また、高速ビジョン処理部11は、対象物Tgの位置を高精度に推定することで、第1変換行列を用いて変換されたフレームnと、フレームn+1とに基づく対象物Tgの動き量の計測処理において、動き量の計測処理対象となるフレームnおよびフレームn+1のそれぞれの画素数をより少なくすることができるため、対象物Tgの動き量の計測に要する処理時間をより短縮することができるとともに、補正量をより高精度に算出することができる。
【0091】
これにより、高速ビジョン処理部11は、高速度カメラ14により撮像されたフレームを高速画像処理することができ、外乱による高速度カメラ14の揺れを除去して、対象物Tg(目標位置)を追跡するためのサーボモータ15Aの位置補正をリアルタイムに実行させることができる。
【0092】
以上により、実施の形態1における高速ビジョン処理部11は、動き計測部111による高速画像処理により高速度カメラ14の揺れ(動き)に対するサーボモータ15Aを補正することで、対象物Tgに対する追跡が可能になる。しかし、作業装置P1は、低速ビジョン処理装置P2により対象物Tgの位置を認識するため、対象物Tg自体が移動する場合、対象物Tgの移動量については低速処理でしか追うことができないという課題があった。
【0093】
低速ビジョン処理装置P2により認識された対象物Tgの位置に基づいて、移動する対象物Tgを追跡する場合、アクチュエータ15は、高速処理により得られる目標位置の補正と、低速処理により得られる目標位置の補正とを同時に行うため、サーボモータ15Aのトルクが急激に変化し、サーボモータ15Aに故障の原因となる負荷がかかったり、サーボモータ15Aのトルクの急激な変化により滑らかに駆動できなかったりする可能性がある。具体的に、低速処理により得られる目標位置の補正量は、高速処理が所定回数(例えば、16回)目標位置を補正する間に変化した対象物Tgの位置を補正する補正量となるため、1回分の高速処理で算出された目標位置の補正量よりも大きい。
【0094】
したがって、アクチュエータ15は、高速処理および低速処理で算出された目標位置の補正を実行する場合、サーボモータ15Aのトルクが急激に変動する可能性があるため、急激なトルク変化によるサーボモータ15Aの負荷が大きくなったり、滑らかな移動制御が困難になったりするという課題があった。
【0095】
(実施の形態1の変形例1)
実施の形態1における高速ビジョン処理部11は、目標位置補正部115により算出された補正量に基づいて、サーボ制御部13がアクチュエータ15のサーボモータ15Aを駆動させる例を示した。実施の形態1における高速ビジョン処理部11Bは、低速ビジョン処理装置P2の低速処理により得られる目標位置の補正量を分割し、目標位置補正部115Bの異なる複数タイミングで実行される高速処理のそれぞれで、高速処理により得られる目標位置の補正と、分割された目標位置の補正とを実行することで、サーボモータ15Aの補正量を平滑化する例について説明する。
【0096】
なお、実施の形態1の変形例1における高速ビジョン処理部11Bは、実施の形態1に係る高速ビジョン処理部11と同様の構成を有する。そこで、以下の実施の形態1の変形例1における高速ビジョン処理部11Bの説明では、高速ビジョン処理部11と同様の構成には、同一の符号を付与して、説明を省略する。
【0097】
図8を参照して、実施の形態1の変形例1における高速ビジョン処理部11Bについて説明する。図8は、実施の形態1の変形例1における高速ビジョン処理部11Bの機能ブロック図である。
【0098】
また、図8に示すブロック図において、高速度カメラ14のフレームレート(例えば、1000fps)で撮像された撮像画像のそれぞれを、高速度カメラ14のフレームレートに対応する処理速度で処理して入出力する区間を実線で示す。図8に示すブロック図において、低速ビジョン処理装置P2の画像認識処理速度に対応する処理速度(例えば、60fps)で処理して入出力する区間を一点鎖線で示す。
【0099】
高速ビジョン処理部11Bは、動き計測部111と、追跡画像生成部112と、合成用画像生成部113と、フレーム合成部114と、目標位置補正部115Bと、平滑化部116とを含む。
【0100】
平滑化部116は、低速ビジョン処理装置P2により得られる目標位置の補正量を滑らかに補正(反映)するために、1回の補正処理で補正される補正量(平滑補正量)を決定するための一定比率の情報を目標位置補正部115Bに出力する。
【0101】
目標位置補正部115Bは、事前に低速ビジョン処理装置P2から取得された第2目標位置情報と、動き計測部111から出力された第1目標位置情報と、平滑化部116から出力された一定比率の情報とに基づいて、高速処理により補正される目標位置の補正量を算出する。具体的に、目標位置補正部115Bは、低速ビジョン処理装置P2から第2目標位置情報が取得される処理周期に基づいて、第2目標位置情報に基づく目標位置の補正量に一定比率を乗じた平滑補正量を算出する。目標位置補正部115Bは、次に低速ビジョン処理装置P2から第2目標位置情報が出力されるまでの間(つまり、低職処理の1周期分の時間帯)で目標位置への補正が完了するように、目標位置補正部115Bによる高速処理によって得られた目標位置の補正量と、平滑補正量とに基づいて、サーボ制御部13に出力される目標位置の補正量を算出する。
【0102】
なお、目標位置補正部115Bに出力される一定比率の値は、低速ビジョン処理装置P2の低速処理により得られる目標位置の補正量の大きさに基づいて変更されてよい。また、平滑化部116は、低速ビジョン処理装置P2の低速処理により得られる目標位置の補正量の大きさに基づいて、1回の目標位置の補正処理によって補正されるサーボモータ15Aの補正量の上限値を超えると判定した場合にのみ、一定比率の情報を目標位置補正部115Bに出力してもよい。
【0103】
次に、図9を参照して、高速ビジョン処理部11Bの第3の追跡画像生成処理,補正量算出処理(ステップSt100B)手順例について説明する。図9は、実施の形態1における高速ビジョン処理部11Bの第3の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図である。
【0104】
なお、図9に示す第3の追跡画像生成処理,補正量算出処理において、ステップSt101~ステップSt114のそれぞれの処理は、図5で説明したステップSt101~ステップSt114のそれぞれの処理と同様であるため、説明を省略する。
【0105】
平滑化部116は、次の目標位置の補正処理(ステップSt15)のタイミングで反映され、低速処理により得られた目標位置の補正量に対し、1回の補正処理で補正される平滑補正量を決定するための一定比率の情報を読み出す(St131)。平滑化部116は、読み出された一定比率の情報を目標位置補正部115Bに出力する(St132)。
【0106】
目標位置補正部115Bは、平滑化部116から出力された一定比率の情報に基づいて、低速処理により得られた第2目標位置情報に基づく目標位置の補正量に一定比率を乗じた平滑補正量を算出する。目標位置補正部115Bは、算出された平滑補正量と、ステップSt114の高速処理により得られた第1目標位置情報に基づく目標位置の補正量とに基づいて、目標位置の補正量を算出する(St115B)。
【0107】
以上により、実施の形態1の変形例1における高速ビジョン処理部11Bは、目標位置の補正量の平滑化を実行することで、サーボモータ15Aのトルクの急激な変化を抑制できる。また、高速ビジョン処理部11Bは、高速処理による高速度カメラ14の揺れを除去するための目標位置の補正と、低速処理による移動する対象物Tgを対象とする目標位置の補正とを並列して実行可能にするとともに、平滑処理により高速処理の周期でサーボモータ15Aの位置補正を実行することでサーボモータ15Aの位置補正の低遅延化を実現できる。
【0108】
次に、図10を参照して、平滑化部116による平滑化処理の有無によるサーボモータ15Aの追従処理について説明する。図10は、平滑化処理を説明する図である。なお、図10に示す時刻、各制御指令の出力タイミングは、説明を分かり易くするための例であり、これに限定されないことは言うまでもない。
【0109】
図10において、二点鎖線は、時刻t21から時刻t33への時間経過により変位する対象物Tgの位置(真値)を示す。
【0110】
破線は、低速ビジョン処理装置P2により得られた目標位置の補正量に対して平滑化処理を実行しない場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。また、図10に示す破線は、各時刻におけるサーボモータ15Aの位置PS21,PS22,PS23,PS24,PS25A,PS26A,PS27A,PS28A,PS29A,PS30A,PS31A,PS32A,PS33Aのそれぞれが重畳されている。
【0111】
実線は、低速ビジョン処理装置P2により得られた目標位置の補正量に対して平滑化処理を実行した場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。図10に示す実線は、各時刻におけるサーボモータ15Aの位置を示す位置PS21,PS22,PS23,PS24,PS25B,PS26B,PS27B,PS28B,PS29B,PS30B,PS31B,PS32B,PS33Bのそれぞれが重畳されている。
【0112】
制御指令HS21,HS22,HS23,HS24,HS25,HS26,HS27,HS28,HS29,HS30,HS31,HS32,HS33のそれぞれは、高速ビジョン処理部11Bにより得られた目標位置の補正量に基づいて、サーボモータ15Aの位置を補正させる電気信号(制御指令)である。制御指令HS21~HS33のそれぞれは、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理の周期で生成および出力される。
【0113】
制御指令LS21,LS22,LS23のそれぞれは、低速ビジョン処理装置P2の低速処理の周期で出力され、第2目標位置情報を含む電気信号である。制御指令LS21~LS23のそれぞれに基づく目標位置の補正処理は、各制御指令LS21~LS23の出力タイミングの後に出力される各制御指令HS25,HS29,HS33に合わせて実行される。
【0114】
したがって、平滑化処理が実行されない場合、アクチュエータ15は、時刻t25,t29,t33のそれぞれでサーボモータ15Aを回転させ、制御指令HS25,HS29,HS33のそれぞれに対応する目標位置の補正量と、制御指令LS21~LS23に対応する目標位置の補正量とをまとめて補正する。
【0115】
また、平滑化処理が実行される場合、高速ビジョン処理部11Bは、平滑化部116による平滑化処理により、次に低速ビジョン処理装置P2から制御指令が出力されるまでの時間帯(つまり、低速処理1周期分の時間帯であって、例えば、時刻t25~t28の時間帯、時刻t29~t33の時間帯)で低速ビジョン処理装置P2により得られた目標位置の補正量を徐々に補正させる。
【0116】
例えば、高速ビジョン処理部11Bは、制御指令LS21に対応する目標位置の補正量を平滑化処理する。高速ビジョン処理部11Bは、時刻t25~時刻t28の間に実行される各制御指令HS25~HS28のそれぞれによる目標位置の補正量に、平滑化処理された平滑補正量を加算した補正量の補正指示(制御指令)を生成して、サーボ制御部13に出力する。これにより、アクチュエータ15は、サーボモータ15Aのトルクの急激な変動を抑制しながら、高速度カメラ14の揺れ除去と、移動する対象物Tgに対する追従とをリアルタイムに実現できる。
【0117】
平滑化処理が実行されない場合のサーボモータ15Aの位置PS21~PS33Aは、平滑化処理が実行される場合のサーボモータ15Aの位置PS21~PS33Bよりも対象物Tgの位置(二点鎖線)に近い。しかし、平滑化処理を実行する場合、サーボモータ15Aの位置は、各制御指令HS25,HS29,HS33のそれぞれが出力される直前のタイミング(時刻t28,t32等)で平滑化処理が実行されない場合と同程度に補正される。
【0118】
以上により、実施の形態1の変形例1における高速度画像処理システム100は、低速処理により得られた目標位置の補正量に基づく位置補正を、複数の高速処理で実行される位置補正で分割して実行することで、高速処理により高速度カメラ14の揺れを除去するとともに、移動する対象物Tgの追跡をリアルタイムに実現できる。
【0119】
ここで、実施の形態1の変形例1における高速ビジョン処理部11Bは、低速ビジョン処理装置P2により得られた目標位置の補正量を複数のタイミング(つまり、目標位置補正部115Bにより得られた目標位置の補正を実行するタイミング)に分割して時間をかけて補正させるため、サーボモータ15Aの位置が対象物Tgの位置(真値)に対応する目標位置に追いつくことが困難になるという課題がある。よって、実施の形態1の変形例1における高速ビジョン処理部11Bは、例えば、基板への電子部品の装着等、対象物Tgに対するサーボモータ15Aの追跡(追従)精度が要求される利用用途への適用が困難だった。
【0120】
(実施の形態1の変形例2)
実施の形態1の変形例1における高速ビジョン処理部11Bは、低速ビジョン処理装置P2により得られた目標位置の補正量を、複数のタイミングに分割して補正させる例を示した。実施の形態1の変形例2における高速ビジョン処理部11Cは、次のフレームで撮像される対象物Tgの位置の変位量(移動量)を予測し、予測された対象物Tgの位置の変位量を補正させる例について説明する。
【0121】
なお、実施の形態1の変形例2における高速ビジョン処理部11Cは、実施の形態1に係る高速ビジョン処理部11と同様の構成を有する。そこで、以下の実施の形態1の変形例2における高速ビジョン処理部11Cの説明では、高速ビジョン処理部11と同様の構成には、同一の符号を付与して、説明を省略する。
【0122】
図11を参照して、実施の形態1の変形例2における高速ビジョン処理部11Cについて説明する。図11は、実施の形態1の変形例2における高速ビジョン処理部11Cの機能ブロック図である。
【0123】
また、図11に示すブロック図において、高速度カメラ14のフレームレートに対応する速度(例えば、1000fps)で処理されたデータの入出力、送受信が実行される区間を実線で、低速ビジョン処理装置P2の画像認識処理速度に対応する速度(例えば、60fps)で処理されたデータの入出力、送受信が実行される区間を一点鎖線で示す。
【0124】
高速ビジョン処理部11Cは、動き計測部111と、追跡画像生成部112と、合成用画像生成部113と、フレーム合成部114と、目標位置補正部115Cと、予測部117とを含む。
【0125】
予測部117は、事前に得られた第2目標位置情報に基づく対象物Tgの移動量、移動速度あるいは加速度等に基づいて、次に低速ビジョン処理装置P2から第2目標位置情報が出力されるタイミングでの対象物Tgの位置を予測する。予測部117は、予測された対象物Tgの予測位置情報を目標位置補正部115Cに出力する。
【0126】
目標位置補正部115Cは、動き計測部111から出力された第1目標位置情報と、予測部117から出力された予測位置情報とに基づいて、目標位置の補正量を算出する。また、目標位置補正部115Cは、事前に低速ビジョン処理装置P2から第2目標位置情報を取得した場合、第2目標位置情報と、動き計測部111から出力された第1目標位置情報と、予測位置情報とに基づいて、目標位置の補正量を算出する。
【0127】
次に、図12を参照して、高速ビジョン処理部11Cの第4の追跡画像生成処理,補正量算出処理(ステップSt100C)手順例について説明する。図12は、実施の形態1における高速ビジョン処理部11Cの第4の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図である。
【0128】
なお、図12に示す第4の追跡画像生成処理,補正量算出処理において、ステップSt101~ステップSt114のそれぞれの処理は、図5で説明したステップSt101~ステップSt114のそれぞれの処理と同様であるため、説明を省略する。
【0129】
予測部117は、事前の低速処理により得られた対象物Tgの移動量に基づいて、次の目標位置の補正処理(ステップSt15)のタイミングまでに移動する対象物Tgの予測位置を予測する(St141)。予測部117は、予測された対象物Tgの予測位置情報を目標位置補正部115Cに出力する(St142)。
【0130】
目標位置補正部115Cは、予測部117から出力された対象物Tgの予測位置と、動き計測部111から出力された第1目標位置情報とに基づいて、目標位置の補正量を算出する(St115C)。
【0131】
以上により、実施の形態1の変形例2における高速ビジョン処理部11Cは、対象物Tgの予測位置に基づく目標位置の補正を高速処理で実行することで、低速ビジョン処理装置P2から出力された第2目標位置情報に基づく目標位置の補正量をより小さくすることができ、補正時のサーボモータ15Aのトルクの急激な変化を抑制できる。
【0132】
次に、図13を参照して、予測部117による予測処理の有無によるサーボモータ15Aの追従処理について説明する。図13は、予測処理を説明する図である。なお、図13に示す時刻、各制御指令の出力タイミングは、説明を分かり易くするための例であり、これに限定されないことは言うまでもない。また、図13では対象物Tgが等速直線運動する例について示す。
【0133】
図13において、二点鎖線は、時刻t21から時刻t33への時間経過により変位する対象物Tgの位置(真値)を示す。
【0134】
破線は、低速ビジョン処理装置P2により得られた目標位置の補正量に対して予測処理を実行しない場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。また、図13に示す破線は、各時刻におけるサーボモータ15Aの位置PS21~PS33Aのそれぞれが重畳されている。
【0135】
実線は、対象物Tgの予測位置に基づく目標位置の補正処理を実行した場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。
【0136】
制御指令HS21~HS33のそれぞれは、動き計測部111から出力された第1目標位置情報に対応する目標位置の補正量に基づいて、サーボモータ15Aの位置を補正させる電気信号である。制御指令HS21~HS33のそれぞれは、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理の周期で生成および出力される。
【0137】
制御指令LS21,LS22,LS23のそれぞれは、低速ビジョン処理装置P2の低速処理の周期で出力され、第2目標位置情報を含む電気信号である。制御指令LS21~LS23のそれぞれに基づく目標位置の補正処理は、各制御指令LS21~LS23の出力タイミングの後に出力される各制御指令HS25,HS29,HS33に合わせて実行される。
【0138】
高速ビジョン処理部11Cは、予測部117から対象物Tgの予測位置情報と、動き計測部111から出力された第1目標位置情報とに基づいて、制御指令HS22~HS33のそれぞれでの目標位置の補正量を算出する。なお、高速ビジョン処理部11Cは、予測位置情報に基づく目標位置の補正量を、低速処理の1周期であって、次に低速ビジョン処理装置P2から第2目標位置情報を含む制御指令が出力されるまでの時間帯(例えば、時刻t25~t28の時間帯、時刻t29~t32の時間帯)で補正してもよい。このような場合、高速ビジョン処理部11Cは、予測位置情報に基づく目標位置の補正量を、次に低速ビジョン処理装置P2から第2目標位置情報を含む制御指令が出力されるまでの時間帯で実行される目標位置の補正回数で除算して得られる補正量で補正してよい。
【0139】
以上により、実施の形態1の変形例2における高速度画像処理システム100は、予測部117により予測された対象物Tgの予測位置により得られた目標位置の補正量に基づく位置補正を複数の高速処理で実行することで、サーボモータ15Aのトルクの急激な変動を抑制しながら、高速処理により高速度カメラ14の揺れを除去するとともに、移動する対象物Tgの追跡をリアルタイムに実現できる。また、高速度画像処理システム100は、対象物Tgの予測位置に基づく目標位置の補正を実行するまでの間(例えば、時刻t21~時刻t24までの間)、サーボモータ15Aの追従が間に合わないが、対象物Tgの予測位置に基づく目標位置の補正を実行することで、サーボモータ15Aの位置を対象物Tgの位置(真値)にリアルタイムに追従させることができる。
【0140】
次に、図14を参照して、予測部117による予測処理の有無によるサーボモータ15Aの追従処理について説明する。図14は、予測処理を説明する図である。なお、図14に示す時刻、各制御指令の出力タイミングは、説明を分かり易くするための例であり、これに限定されないことは言うまでもない。また、図14では対象物Tgが等速直線運動しない例について示す。
【0141】
図14において、二点鎖線は、時刻t41から時刻t52への時間経過により変位する対象物Tgの位置(真値)を示す。
【0142】
破線は、低速ビジョン処理装置P2により得られた目標位置の補正量に対して予測処理を実行しない場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。また、図14に示す破線は、各時刻におけるサーボモータ15Aの位置PS41A,PS42A,PS43A,PS44A,PS45A,PS46A,PS47A,PS48A,PS49A,PS50A,PS51A,PS52Aのそれぞれが重畳されている。
【0143】
実線は、対象物Tgの予測位置に基づく目標位置の補正処理を実行した場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。
【0144】
制御指令HS41,HS42,HS43,HS44,HS45,HS46,HS47,HS48,HS49,HS50,HS51,HS52,HS53のそれぞれは、動き計測部111から出力された第1目標位置情報に対応する目標位置の補正量に基づいて、サーボモータ15Aの位置を補正させる電気信号(制御指令)である。制御指令HS41~HS52のそれぞれは、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理の周期に合わせて生成および出力される。
【0145】
制御指令LS41,LS42のそれぞれは、低速ビジョン処理装置P2の低速処理の周期で出力され、第2目標位置情報を含む電気信号である。制御指令LS21~LS23のそれぞれに基づく目標位置の補正処理は、各制御指令LS21~LS23の出力タイミングの後に出力される各制御指令HS45,HS49に合わせて実行される。
【0146】
図14に示す例において、予測部117は、時刻t41~時刻t44の間の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、時刻t48における対象物Tgの予測位置を算出する。予測部117は、対象物Tgの予測位置情報を目標位置補正部115Cに出力する。
【0147】
目標位置補正部115Cは、時刻t41~時刻t44のそれぞれで、動き計測部111から出力された第1目標位置情報に基づく目標位置の補正量を算出し、算出された目標位置の補正量を含む制御指令HS41~HS44をサーボ制御部13に出力する。
【0148】
目標位置補正部115Cは、時刻t45で、動き計測部111から出力された第1目標位置情報と、低速ビジョン処理装置P2から出力された第2目標位置情報とに基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS45をサーボ制御部13に出力する。
【0149】
目標位置補正部115Cは、時刻t46~時刻t48のそれぞれで、動き計測部111から出力された第1目標位置情報と、予測部117から出力された予測位置情報とに基づく目標位置の補正量を算出し、算出された目標位置の補正量を含む制御指令HS46~HS48をサーボ制御部13に出力する。
【0150】
予測部117は、時刻t45~時刻t48の間の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、時刻t52における対象物Tgの予測位置を算出する。予測部117は、対象物Tgの予測位置情報を目標位置補正部115Cに出力する。
【0151】
目標位置補正部115Cは、時刻t49で、動き計測部111から出力された第1目標位置情報と、低速ビジョン処理装置P2から出力された第2目標位置情報とに基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS49をサーボ制御部13に出力する。
【0152】
目標位置補正部115Cは、時刻t50~時刻t52のそれぞれで、動き計測部111から出力された第1目標位置情報と、予測部117から出力された予測位置情報とに基づく目標位置の補正量を算出し、算出された目標位置の補正量を含む制御指令HS50~HS52をサーボ制御部13に出力する。
【0153】
これにより、高速ビジョン処理部11Cは、対象物Tgが等速直線運動をしない場合であっても、対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、対象物Tgの予測位置を算出できる。
【0154】
以上により、実施の形態1の変形例2における高速度画像処理システム100は、予測部117により予測された対象物Tgの予測位置により得られた目標位置の補正量に基づく位置補正を複数の高速処理で実行することで、サーボモータ15Aのトルクの急激な変動を抑制しながら、高速処理により高速度カメラ14の揺れを除去するとともに、移動する対象物Tgの追跡をリアルタイムに実現できる。また、高速度画像処理システム100は、対象物Tgの加速度が変動したタイミング(例えば、時刻t45等)から予測位置に基づく目標位置の補正を実行するまでの間(例えば、時刻t45~時刻t48までの間)はサーボモータ15Aの追従が間に合わないが、対象物Tgの予測位置に基づく目標位置の補正を実行することで、移動する対象物Tgの追跡をリアルタイムに実現できる。
【0155】
ここで、実施の形態1の変形例2における高速ビジョン処理部11Cは、過去の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、対象物Tgの位置を予測する。よって、対象物Tgに対するサーボモータ15Aの追従精度は、対象物Tgの位置の予測精度に依存するという課題がある。
【0156】
(実施の形態1の変形例3)
実施の形態1の変形例2における高速ビジョン処理部11Cは、過去の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づく対象物Tgの予測位置に基づいて、サーボモータ15Aの目標位置を補正させる例を示した。実施の形態1の変形例3における高速ビジョン処理部11Dは、対象物Tgの予測位置に基づく目標位置の補正量を平滑化させ、平滑化後の平滑補正量に基づいて、サーボモータ15Aの目標位置を補正させる例について説明する。
【0157】
なお、実施の形態1の変形例3における高速ビジョン処理部11Dは、実施の形態1に係る高速ビジョン処理部11と同様の構成を有する。そこで、以下の実施の形態1の変形例3における高速ビジョン処理部11Dの説明では、高速ビジョン処理部11と同様の構成には、同一の符号を付与して、説明を省略する。
【0158】
図15を参照して、実施の形態1の変形例3における高速ビジョン処理部11Dについて説明する。図15は、実施の形態1の変形例3における高速ビジョン処理部11Dの機能ブロック図である。
【0159】
また、図15に示すブロック図において、高速度カメラ14のフレームレートに対応する速度(例えば、1000fps)で処理されたデータの入出力あるいは送受信が実行される区間を実線で、低速ビジョン処理装置P2の画像認識処理速度に対応する速度(例えば、60fps)で処理されたデータの入出力あるいは送受信が実行される区間を一点鎖線で示す。
【0160】
高速ビジョン処理部11Dは、動き計測部111と、追跡画像生成部112と、合成用画像生成部113と、フレーム合成部114と、目標位置補正部115Dと、平滑化部116と、予測部117とを含む。
【0161】
平滑化部116は、低速ビジョン処理装置P2により得られる目標位置の補正量を滑らかに補正(反映)するために、1回の補正処理(高速処理)で補正される補正量(平滑補正量)を決定するための一定比率の情報を目標位置補正部115Dに出力する。
【0162】
予測部117は、事前に得られた第2目標位置情報に基づく対象物Tgの移動量、移動速度、あるいは加速度等に基づいて、次に低速ビジョン処理装置P2から第2目標位置情報が出力されるタイミングでの対象物Tgの予測位置を予測する。予測部117は、予測された対象物Tgの予測位置情報を目標位置補正部115Dに出力する。
【0163】
目標位置補正部115Dは、低速ビジョン処理装置P2から出力された第2目標位置情報、あるいは予測部117から出力された予測位置情報に基づく目標位置の補正量に、平滑化部116から出力された一定比率を乗じて得られる平滑補正量を算出する。目標位置補正部115Dは、動き計測部111から出力された第1目標位置情報と、算出された平滑補正量とに基づいて、サーボ制御部13に出力される制御指令に含まれるサーボモータ15Aの目標位置の補正量を算出する。
【0164】
次に、図16を参照して、高速ビジョン処理部11Dの第5の追跡画像生成処理,補正量算出処理(ステップSt100D)手順例について説明する。図16は、実施の形態1における高速ビジョン処理部11Dの第5の追跡画像生成処理,補正量算出処理手順例を示すシーケンス図である。
【0165】
なお、図16に示す第5の追跡画像生成処理,補正量算出処理において、ステップSt101~ステップSt114のそれぞれの処理は、図5で説明したステップSt101~ステップSt114のそれぞれの処理と同様であるため、説明を省略する。
【0166】
平滑化部116は、次の目標位置の補正処理(ステップSt15)のタイミングで反映され、低速処理により得られた目標位置の補正量に対し、1回の補正処理(高速処理)で補正される平滑補正量を決定するための一定比率の情報を読み出す(St131)。平滑化部116は、読み出された一定比率の情報を目標位置補正部115Dに出力する(St132)。
【0167】
予測部117は、事前の低速処理により得られた対象物Tgの移動量に基づいて、次の目標位置の補正処理(ステップSt15)のタイミングまでに移動する対象物Tgの予測位置を予測する(St141)。予測部117は、予測された対象物Tgの予測位置情報を目標位置補正部115Dに出力する(St142)。
【0168】
目標位置補正部115Dは、予測部117から出力された予測位置情報に基づく目標位置の補正量に、平滑化部116から出力された一定比率を乗じて得られる平滑補正量を算出する。目標位置補正部115Dは、算出された平滑補正量と、動き計測部111から出力された第1目標位置情報に基づく目標位置の補正量とに基づいて、サーボ制御部13に出力される制御指令に含まれるサーボモータ15Aの目標位置の補正量を算出する(St115D)。
【0169】
以上により、実施の形態1の変形例3における高速ビジョン処理部11Dは、対象物Tgの予測位置に基づく目標位置の補正を平滑化することで、対象物Tgの位置の予測精度が外れた場合であってもサーボモータ15Aのトルクの急激な変化を抑制しながらサーボモータ15Aの位置を補正できる。また、高速ビジョン処理部11Dは、予測位置に基づく目標位置の補正により対象物Tgの位置と、サーボモータ15Aに基づく高速度カメラ14の位置との差を徐々に解消させることができる。
【0170】
次に、図17を参照して、平滑化処理あるいは予測処理の有無によるサーボモータ15Aの追従処理について説明する。図17は、予測処理を説明する図である。なお、図17に示す時刻、各制御指令の出力タイミングは、説明を分かり易くするための例であり、これに限定されないことは言うまでもない。また、図17では対象物Tgが等速直線運動する例について示す。
【0171】
図17において、二点鎖線は、時刻t21から時刻t33への時間経過により変位する対象物Tgの位置(真値)を示す。
【0172】
破線は、低速ビジョン処理装置P2により得られた目標位置の補正量に対して平滑化・予測処理を実行しない場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。また、図17に示す破線は、各時刻におけるサーボモータ15Aの位置PS21~PS33Aのそれぞれが重畳されている。
【0173】
実線は、平滑化・予測処理を実行した場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。また、図17に示す実線は、各時刻におけるサーボモータ15Aの位置PS21,PS22,PS23,PS24,PS25D,PS26D,PS27D,PS28D,PS29D,PS30D,PS31D,PS32D,PS33Dのそれぞれが重畳されている。
【0174】
図17に示す例において、予測部117は、時刻t21~時刻t24の間の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、時刻t28における対象物Tgの予測位置を算出する。予測部117は、対象物Tgの予測位置情報を目標位置補正部115Dに出力する。
【0175】
目標位置補正部115Dは、時刻t21~時刻t24のそれぞれで、動き計測部111から出力された第1目標位置情報に基づく目標位置の補正量を算出し、算出された目標位置の補正量を含む制御指令HS21~HS24をサーボ制御部13に出力する。
【0176】
目標位置補正部115Dは、時刻t25で、動き計測部111から出力された第1目標位置情報と、低速ビジョン処理装置P2から出力された第2目標位置情報とに基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS25をサーボ制御部13に出力する。
【0177】
目標位置補正部115Dは、低速ビジョン処理装置P2から出力された第2目標位置情報と、予測部117から出力された予測位置情報とに基づく目標位置の補正量に一定比率を乗じて、時刻t25~時刻t28のそれぞれで補正する平滑補正量を算出する。目標位置補正部115Dは、時刻t25で、動き計測部111から出力された第1目標位置情報と、算出された平滑補正量に基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS25をサーボ制御部13に出力する。
【0178】
目標位置補正部115Dは、時刻t26~時刻t28のそれぞれで、動き計測部111から出力された第1目標位置情報と、平滑補正量とに基づく目標位置の補正量を算出し、算出された目標位置の補正量を含む制御指令HS26~HS28をサーボ制御部13に出力する。
【0179】
予測部117は、時刻t25~時刻t28の間の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、時刻t32における対象物Tgの予測位置を算出する。予測部117は、対象物Tgの予測位置情報を目標位置補正部115Dに出力する。
【0180】
目標位置補正部115Dは、低速ビジョン処理装置P2から出力された第2目標位置情報と、予測部117から出力された予測位置情報とに基づく目標位置の補正量に一定比率を乗じて、時刻t29~時刻t32のそれぞれで補正する平滑補正量を算出する。目標位置補正部115Dは、時刻t29で、動き計測部111から出力された第1目標位置情報と、算出された平滑補正量に基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS29~HS32をサーボ制御部13に出力する。なお、図17に示す例において、サーボモータ15Aの位置は、時刻t33において対象物Tgの位置に追いつく。
【0181】
これにより、高速ビジョン処理部11Dは、対象物Tgの予測位置に基づく目標位置の補正を平滑化することで、対象物Tgの位置の予測精度が外れた場合であってもサーボモータ15Aのトルクの急激な変化を抑制しながらサーボモータ15Aの位置の補正できる。また、高速ビジョン処理部11Dは、予測位置に基づく目標位置の補正により対象物Tgの位置と、サーボモータ15Aに基づく高速度カメラ14の位置との差を徐々に解消させることができる。
【0182】
次に、図18を参照して、平滑化処理あるいは予測処理の有無によるサーボモータ15Aの追従処理について説明する。図18は、予測処理を説明する図である。なお、図18に示す時刻、各制御指令の出力タイミングは、説明を分かり易くするための例であり、これに限定されないことは言うまでもない。また、図18では対象物Tgが等速直線運動しない例について示す。
【0183】
図18において、二点鎖線は、時刻t41から時刻t53への時間経過により変位する対象物Tgの位置(真値)を示す。
【0184】
破線は、低速ビジョン処理装置P2により得られた目標位置の補正量に対して平滑化・予測処理を実行しない場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。また、図18に示す破線は、各時刻におけるサーボモータ15Aの位置PS41~PS35Aのそれぞれが重畳されている。
【0185】
実線は、平滑化・予測処理を実行した場合の対象物Tgに対するサーボモータ15Aの追従位置を示す。
【0186】
図17に示す例において、予測部117は、時刻t41~時刻t44の間の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、時刻t48における対象物Tgの予測位置を算出する。予測部117は、対象物Tgの予測位置情報を目標位置補正部115Dに出力する。
【0187】
目標位置補正部115Dは、時刻t41~時刻t44のそれぞれで、動き計測部111から出力された第1目標位置情報に基づく目標位置の補正量を算出し、算出された目標位置の補正量を含む制御指令HS41~HS44をサーボ制御部13に出力する。
【0188】
目標位置補正部115Dは、時刻t45で、動き計測部111から出力された第1目標位置情報と、低速ビジョン処理装置P2から出力された第2目標位置情報とに基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS45をサーボ制御部13に出力する。
【0189】
目標位置補正部115Dは、低速ビジョン処理装置P2から出力された第2目標位置情報と、予測部117から出力された予測位置情報とに基づく目標位置の補正量に一定比率を乗じて、時刻t45~時刻t48のそれぞれで補正する平滑補正量を算出する。目標位置補正部115Dは、時刻t45で、動き計測部111から出力された第1目標位置情報と、算出された平滑補正量に基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS45をサーボ制御部13に出力する。
【0190】
目標位置補正部115Dは、時刻t46~時刻t48のそれぞれで、動き計測部111から出力された第1目標位置情報と、平滑補正量とに基づく目標位置の補正量を算出し、算出された目標位置の補正量を含む制御指令HS46~HS48をサーボ制御部13に出力する。
【0191】
予測部117は、時刻t45~時刻t48の間の対象物Tgの移動量、移動速度、あるいは加速度等の情報に基づいて、時刻t52における対象物Tgの予測位置を算出する。予測部117は、対象物Tgの予測位置情報を目標位置補正部115Dに出力する。
【0192】
目標位置補正部115Dは、低速ビジョン処理装置P2から出力された第2目標位置情報と、予測部117から出力された予測位置情報とに基づく目標位置の補正量に一定比率を乗じて、時刻t49~時刻t52のそれぞれで補正する平滑補正量を算出する。目標位置補正部115Dは、時刻t49で、動き計測部111から出力された第1目標位置情報と、算出された平滑補正量に基づく目標位置の補正を算出し、算出された目標位置の補正量を含む制御指令HS49をサーボ制御部13に出力する。
【0193】
以上により、実施の形態1の変形例3における高速度画像処理システム100は、サーボモータ15Aのトルクの急激な変動を抑制しながら、対象物Tgに対するサーボモータ15Aの位置を補正できる。また、高速度画像処理システム100は、対象物Tgの加速度が変動したタイミング(例えば、時刻t45等)から予測位置に基づく目標位置の補正を実行するまでの間(例えば、時刻t45~時刻t48までの間)、サーボモータ15Aの追従が間に合わないが、対象物Tgの予測位置に基づく目標位置の補正を実行することで、サーボモータ15Aに基づく高速度カメラ14の位置を対象物Tgの位置(真値)との位置の差を徐々に小さくすることができる。
【0194】
以上により、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、サーボモータ15A(駆動デバイスの一例)と対象物Tg(被写体の一例)を撮像する高速度カメラ14(カメラの一例)との間で通信可能であって、高速度カメラ14により撮像された複数のフレームを取得し、複数のフレーム間における対象物Tgの第1の動き量を計測し、計測された対象物Tgの第1の動き量に基づいて、サーボモータ15Aの位置を補正する第1補正量(つまり、高速度カメラ14の揺れ補正量)を算出する高速ビジョン処理(並行処理PAR1)と、高速ビジョン処理の処理周期よりも長い処理周期を有し、少なくとも1個のフレームに写る対象物Tgの認識位置に基づいて、サーボモータ15Aの位置を補正する第2補正量(つまり、対象物Tgの位置に基づくサーボモータ15Aの位置補正量)を算出する低速ビジョン処理(第2ループ処理LP2)と、を実行し、第1補正量および第2補正量のうち少なくとも一方に基づく制御指令を生成してサーボモータ15Aに出力する。
【0195】
これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、2枚のフレーム間に写る対象物Tgの動き量の計測処理を高速化することができ、高速度カメラ14の揺れ等に起因する対象物Tgに対するサーボモータ15Aの位置を補正するための補正量をリアルタイムに算出し、出力することができる。これにより、アクチュエータ15は、画像認識処理による対象物Tgを認識するまでの間、対象物Tgに対する所定の作業を一時的に停止したり、作業速度を低下させたりすることなく実行できるため、作業効率を向上できる。
【0196】
以上により、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、第1補正量および第2補正量に基づく第1制御指令、または第1補正量に基づく第2制御指令を生成して、サーボモータ15Aに出力する。これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、低速ビジョン処理装置P2の処理周期に対応する制御指令と、高速度カメラ14のフレームレートに対応する周期に対応する制御指令とによって、サーボモータ15Aの位置をそれぞれ補正できるため、高速度カメラ14の揺れをリアルタイムに除去できる。
【0197】
また、実施の形態1および実施の形態1の変形例1~3における第1制御指令は、低速ビジョン処理の処理周期に対応して出力される。第2制御指令は、高速ビジョン処理の処理周期に対応して出力される。これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、高速度カメラ14のフレームレートに対応する周期でサーボモータ15Aの位置を補正できるため、高速度カメラ14の揺れを除去できる。
【0198】
また、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、演算装置P11との間で通信可能であって、対象物Tgの位置を認識可能な低速ビジョン処理装置P2(外部装置の一例)に合成画像を送信し、対象物Tgの認識位置を低速ビジョン処理装置P2から取得する。これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、低速ビジョン処理装置P2により合成画像を用いて、対象物Tgのより高精度な位置認識を実行することができる。演算装置P11は、低速処理で得られた対象物Tgの位置と、高速処理で得られた高速度カメラ14の揺れ量とを用いることで、より高精度にサーボモータ15Aの位置を補正できる。
【0199】
また、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、フレームをK(K:2以上の整数)個合成した合成画像を生成し(並行処理PAR2)、合成画像に写る対象物Tgの認識位置に基づいて、第2補正量を算出する。これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、フレームの外乱あるいは露光時間の短さに起因する揺れ(ブラー)を効果的に除去した合成画像を生成することで、画像認識処理に適した合成画像を生成し、合成画像を低速画像処理することにより対象物Tgの位置ずれを高精度に補正できる。よって、演算装置P11は、低速ビジョン処理装置P2で実行される画像認識処理により適した画像(合成画像)を生成でき、対象物Tgのより高精度な位置認識を実行することができる。
【0200】
また、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、低速ビジョン処理において、K個のフレームのそれぞれに写る対象物Tgの位置を推定し、推定された対象物Tgの推定位置と、対象物Tgの基準位置を示す第0フレームに写る対象物Tgの位置とに基づいて、第0フレームと第Kフレームとの間の対象物Tgの第3の動き量を計測し、対象物Tgの第3の動き量に基づいて、第Kフレームを第0フレームに合成する合成処理をK回繰り返し実行して、合成画像を生成する。これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、画像認識処理における認識対象である対象物Tgに対するブラーを優先的に除去した合成画像を生成できるため、低速ビジョン処理装置P2で実行される画像認識処理により適した画像(合成画像)を生成できる。
【0201】
また、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、低速ビジョン処理において、対象物Tgの認識位置と、第3の動き量とに基づいて、第2補正量を算出する。これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、対象物Tgの位置に対する高速度カメラ14(つまり、作業装置P1)の位置を算出でき、高速度カメラ14の位置ずれ量を補正可能な第2補正量を算出できる。
【0202】
また、実施の形態1における演算装置P11は、サーボモータ15Aの位置情報を取得し、低速ビジョン処理において、対象物Tgの認識位置と、サーボモータ15Aの位置情報と、第Kフレームに写る対象物Tgの位置とに基づいて、対象物Tgの第3の動き量を計測する。これにより、実施の形態1における演算装置P11は、対象物Tgの第3の動き量をより高精度に計測できる。
【0203】
また、実施の形態1における演算装置P11は、サーボモータ15Aの位置情報を取得し、高速ビジョン処理において、次に取得される最新フレームに写る対象物Tgの位置を推定して、最新フレームを取得し、推定された対象物Tgの推定位置と、サーボモータ15Aの位置情報と、最新フレームに写る対象物Tgの位置とに基づいて、連続する2つのフレーム間における対象物Tgの第1の動き量を計測する。これにより、実施の形態1演算装置P11は、高速度カメラ14の揺れ量、高速度カメラ14の揺れの加速度等をより高精度に算出できる。
【0204】
また、実施の形態1の変形例1における演算装置P11は、低速ビジョン処理により算出された第2補正量を、所定数(例えば、低速処理が1回実行される間に実行される高速処理の回数等)で分割した第3補正量を算出し、第2制御指令の生成を省略するとともに、第1補正量と第3補正量とに基づく第1制御指令を生成してサーボモータ15Aに出力する処理を所定数繰り返し実行する。これにより、実施の形態1の変形例1における演算装置P11は、目標位置の補正量の平滑化を実行することで、サーボモータ15Aのトルクの急激な変化を抑制できる。また、演算装置P11は、高速処理による高速度カメラ14の揺れを除去するための目標位置の補正と、低速処理による移動する対象物Tgを対象とする目標位置の補正とを並列して実行可能にするとともに、平滑処理により高速処理でサーボモータ15Aの位置補正を実行することでサーボモータ15Aの位置補正の低遅延化を実現できる。
【0205】
また、実施の形態1の変形例1における演算装置P11は、第2制御指令に基づいて補正されるサーボモータ15Aの位置の補正上限を記憶し、低速ビジョン処理により算出された第2補正量がサーボモータ15Aの位置の補正上限以上であると判定した場合、第2制御指令の生成を省略するとともに、第1補正量と第3補正量とに基づく第1制御指令を生成してサーボモータ15Aに出力する処理を所定数繰り返し実行する。これにより、実施の形態1の変形例1における演算装置P11は、サーボモータ15Aの位置補正によりサーボモータ15Aのトルクの急激な変化が発生しうる補正上限を超えた場合にのみ、平滑処理を実行できる。
【0206】
また、実施の形態1の変形例2における演算装置P11は、次の低速ビジョン処理において認識される対象物Tgの認識位置を推定し、少なくとも1個のフレームに写る対象物Tgの認識位置と、推定された対象物Tgの認識位置とに基づいて、対象物Tgの第4の動き量を算出し、第1補正量と、第4の動き量とに基づいて、第1制御指令を生成する。これにより、実施の形態1の変形例2における演算装置P11は、対象物Tgの予測位置に基づく目標位置の補正を高速処理で実行することで、低速ビジョン処理装置P2から出力された第2目標位置情報に基づく目標位置の補正量をより小さくすることができ、補正時のサーボモータ15Aのトルクの急激な変化を抑制できる。
【0207】
また、実施の形態1の変形例3における演算装置P11は、低速ビジョン処理により算出された第2補正量を、所定数(例えば、低速処理が1回実行される間に実行される高速処理の回数等)で分割した第3補正量を算出し、次の低速ビジョン処理において認識される対象物Tgの認識位置を推定し、少なくとも1個のフレームに写る対象物Tgの認識位置と、推定された対象物Tgの認識位置とに基づいて、対象物Tgの第4の動き量を算出し、第1補正量と、第3補正量と、第4の動き量とに基づく第1制御指令を生成してサーボモータ15Aに出力する処理を所定数繰り返し実行する。これにより、実施の形態1の変形例3における演算装置P11は、対象物Tgの予測位置に基づく目標位置の補正を平滑化することで、対象物Tgの位置の予測精度が外れた場合であってもサーボモータ15Aのトルクの急激な変化を抑制しながらサーボモータ15Aの位置の補正できる。また、高速ビジョン処理部11Dは、予測位置に基づく目標位置の補正により対象物Tgの位置と、サーボモータ15Aに基づく高速度カメラ14の位置との差を徐々に解消させることができる。
【0208】
以上により、実施の形態1および実施の形態1の変形例における演算装置P11は、サーボモータ15A(駆動デバイスの一例)と対象物Tg(被写体の一例)を撮像する高速度カメラ14(カメラの一例)との間で通信可能であって、高速度カメラ14により撮像された複数のフレームを取得する通信部10(取得部の一例)と、複数のフレーム間における対象物Tgの動き量に基づいて、サーボモータ15Aの位置を補正する第1補正量(つまり、高速度カメラ14の揺れ補正量)を算出する高速ビジョン処理(並行処理PAR1)を実行する高速ビジョン処理部11,11B~11D(高速処理部の一例)と、高速ビジョン処理の処理周期よりも長い処理周期で、対象物Tgの認識位置に基づいて、サーボモータ15Aの位置を補正する第2補正量(つまり、対象物Tgの位置に基づくサーボモータ15Aの位置補正量)を算出する低速ビジョン処理(第2ループ処理LP2)を実行する目標位置補正部115(低速処理部の一例)と、第1補正量および第2補正量の少なくとも一方に基づく制御指令を生成してサーボモータ15Aに出力する高速ビジョン処理部11,11B~11D(制御部の一例)と、を備える。
【0209】
これにより、実施の形態1および実施の形態1の変形例1~3における演算装置P11は、次のフレームn+1に写る対象物Tgの推定位置に基づいてフレームnを変換することで、2枚のフレーム間に写る対象物Tgの動き量の計測処理を高速化することができ、高速度カメラ14の揺れ等に起因する対象物Tgに対するサーボモータ15Aの位置を補正するための補正量をリアルタイムに算出し、出力することができる。これにより、アクチュエータ15は、画像認識処理による対象物Tgを認識するまでの間、対象物Tgに対する所定の作業を一時的に停止したり、作業速度を低下させたりすることなく実行できるため、作業効率を向上できる。
【0210】
(実施の形態2)
実施の形態1に係る高速度画像処理システム100は、フレームに写る対象物Tgの位置に基づいて、高速度カメラ14の揺れを除去したり、サーボモータ15Aの位置を補正したりする例について説明した。実施の形態2に係る高速度画像処理システム100Aは、フレームから前景と背景とを分離し、前景に写る対象物Tgと、背景の特徴とに基づいて、作業装置P1(高速度カメラ14)の位置あるいは揺れと対象物Tgの位置とをそれぞれ個別に追跡し、補正する例について説明する。
【0211】
なお、実施の形態2に係る高速度画像処理システム100Aは、実施の形態1に係る高速度画像処理システム100と同様の構成を有する。そこで、以下の実施の形態2に係る高速度画像処理システム100Aの説明では、実施の形態1に係る高速度画像処理システム100と同様の構成には、同一の符号を付与することで、説明を省略する。
【0212】
実施の形態2に係る高速度画像処理システム100Aは、対象物Tgと、作業装置P1と、外部装置の一例としての低速ビジョン処理装置P2Aとを含む。
【0213】
作業装置P1は、通信部10と、高速ビジョン処理部11E(第1高速処理部、第2高速処理部、第1低速処理部、第2低速処理部、および制御部の一例)と、メモリ12と、サーボ制御部13と、高速度カメラ14と、アクチュエータ15とを含む。なお、通信部10、高速ビジョン処理部11E、メモリ12、および、サーボ制御部13は、画像処理装置の一例としての1つの演算装置P11Aとして構成されてよい。
【0214】
図19を参照して、実施の形態2における高速ビジョン処理部11Eについて説明する。図19は、実施の形態2における高速ビジョン処理部11Eの機能ブロック図である。
【0215】
高速ビジョン処理部11Eは、第1動き計測部111Bと、第2動き計測部111Cと、追跡画像生成部112Aと、合成用画像生成部113Aと、フレーム合成部114と、目標位置補正部115Eと、領域分割部118とを含む。
【0216】
<追跡画像生成処理>
高速ビジョン処理部11Eは、高速度カメラ14から出力されたフレームを取得し、領域分割部118によりフレームから対象物Tgを含む前景領域と、外乱(例えば、振動、あるいは風等)の影響を受けにくい景色あるいは建造物等を含む背景領域とをそれぞれ検出する。
【0217】
高速ビジョン処理部11Eは、領域分割部118により検出された前景領域の画素をフレームから分割した前景フレームと、検出された背景領域の画素をフレームから分割した背景フレームとをそれぞれを生成する。高速ビジョン処理部11Eは、生成された前景フレームを第1動き計測部111Bに出力し、背景フレームを第2動き計測部111Cに出力する。
【0218】
高速ビジョン処理部11Eは、第1動き計測部111Bによって、前景フレームnの次に撮像される前景フレームn+1に写る前景の位置を推定し、前景フレームn+1に写る前景の推定位置と、フレームnに写る前景の位置とフレームn+1に写る前景の位置との動き量を計測する。
【0219】
高速ビジョン処理部11Eは、第1動き計測部111Bの計測結果に基づいて、前景フレームnに写る前景の位置を前景フレームn+1に写る前景の位置に移動させる第1前景変換行列を算出する。高速ビジョン処理部11Eは、算出された第1前景変換行列を用いて前景フレームnをアフィン変換し、2枚の前景フレーム(つまり、前景フレームnおよび前景フレームn+1)間で移動する前景の位置を追跡する前景追跡画像を生成する。
【0220】
高速ビジョン処理部11Eは、第2動き計測部111Cによって、背景フレームnの次に撮像される背景フレームn+1に写る背景の位置を推定し、背景フレームn+1に写る背景の推定位置と、フレームnに写る背景の位置とフレームn+1に写る背景の位置との動き量を計測する。
【0221】
高速ビジョン処理部11Eは、第2動き計測部111Cの計測結果に基づいて、背景フレームnに写る背景の位置を背景フレームn+1に写る背景の位置に移動させる第1背景変換行列を算出する。高速ビジョン処理部11Eは、算出された第1背景変換行列を用いて背景フレームnをアフィン変換し、2枚の背景フレーム(つまり、背景フレームnおよび背景フレームn+1)間で移動する背景の位置を追跡する背景追跡画像を生成する。
【0222】
また、高速ビジョン処理部11Eは、サーボ制御部13から出力されたサーボモータ15Aの位置情報(例えば、サーボモータ15Aの回転角度に関する情報、サーボモータ15Aの位置情報を示すジャイロ情報等)をさらに用いて、第1背景変換行列を算出してもよい。このような場合、高速ビジョン処理部11Eは、第2動き計測部111Cにより、サーボモータ15Aの位置情報と、次に撮像される背景フレーム(つまり、次の背景フレームn+1)に写る背景の推定位置とに基づいて、追跡画像の生成に用いられる第1背景変換行列を算出する。
【0223】
なお、高速ビジョン処理部11Eは、サーボ制御部13から出力されたサーボモータ15Aの位置情報(例えば、サーボモータ15Aの回転角度に関する情報、サーボモータ15Aの位置情報を示すジャイロ情報等)をさらに用いて、第1前景変換行列および第1背景変換行列のそれぞれを算出してもよい。
【0224】
<合成用画像生成処理>
高速ビジョン処理部11Eは、合成用画像生成部113Aにより高速度カメラ14の前景フレームレート(例えば、1000fps等)に対応する処理速度で、前景フレームを前景合成画像の生成に用いられる前景フレーム(以降、「前景合成用画像」と表記)を生成する。
【0225】
高速ビジョン処理部11Eは、第1動き計測部111Bにより、後述する前景合成画像を生成するための前景合成用画像の合成処理において、1枚目の前景合成用画像であって、各前景合成用画像の合成基準となる前景フレーム0に映る前景の位置を計測して、記憶する。高速ビジョン処理部11Eは、高速度カメラ14から出力された前景フレームnに写る前景の位置と、前景フレーム0に写る前景の位置との間の前景の動き量を計測する。
【0226】
高速ビジョン処理部11Eは、計測された前景フレームnと前景フレーム0との間の前景の動き量に基づいて、前景フレームnを前景合成画像の生成に用いられる前景合成用画像に変換するための第2前景変換行列を算出する。高速ビジョン処理部11Eは、合成用画像生成部113Aにより算出された第2前景変換行列を用いて、前景フレームnを前景合成用画像に変換する。これにより、高速ビジョン処理部11Eは、前景フレーム0に写る前景の位置に、前景フレームnに写る前景の位置を重ね合わせ可能な前景合成用画像を生成することができる。
【0227】
高速ビジョン処理部11Eは、フレーム合成部114によって前景合成用画像の合成(重ね合わせ)を実行する。高速ビジョン処理部11Eは、合成用画像生成部113Aによる前景フレームnに基づく前景合成用画像の生成処理と、フレーム合成部114Aによる前景フレーム0~前景フレームn-1のそれぞれの前景合成用画像が合成された前景合成画像と、前景フレームnに基づく前景合成用画像との合成処理と、を所定回数繰り返し実行し、所定枚数の前景合成用画像(つまり、前景フレーム)を合成した前景合成画像を生成する。高速ビジョン処理部11Eは、生成された前景合成画像を通信部10に出力し、低速ビジョン処理装置P2Aに送信させる。
【0228】
また、高速ビジョン処理部11Eは、第2動き計測部111Cにより、後述する背景合成画像を生成するための背景合成用画像の合成処理において、1枚目の背景合成用画像であって、各背景合成用画像の合成基準となる背景フレーム0に映る背景の位置を計測して、記憶する。高速ビジョン処理部11Eは、高速度カメラ14から出力された背景フレームnに写る背景の位置と、背景フレーム0に写る背景の位置との間の背景の動き量を計測する。
【0229】
高速ビジョン処理部11Eは、計測された背景フレームnと背景フレーム0との間の背景の動き量に基づいて、背景フレームnを背景合成画像の生成に用いられる背景合成用画像に変換するための第2背景変換行列を算出する。高速ビジョン処理部11Eは、合成用画像生成部113Aにより算出された第2背景変換行列を用いて、背景フレームnを背景合成用画像に変換する。これにより、高速ビジョン処理部11Eは、背景フレーム0に写る背景の位置に、背景フレームnに写る背景の位置を重ね合わせ可能な背景合成用画像を生成することができる。
【0230】
高速ビジョン処理部11Eは、フレーム合成部114によって背景合成用画像の合成(重ね合わせ)を実行する。高速ビジョン処理部11Eは、合成用画像生成部113Aによる背景フレームnに基づく背景合成用画像の生成処理と、フレーム合成部114Aによる背景フレーム0~背景フレームn-1のそれぞれの背景合成用画像が合成された前景合成画像と、背景フレームnに基づく背景合成用画像との合成処理と、を所定回数繰り返し実行し、所定枚数の背景合成用画像(つまり、背景フレーム)を合成した背景合成画像を生成する。高速ビジョン処理部11Eは、生成された背景合成画像を通信部10に出力し、低速ビジョン処理装置P2Aに送信させる。
【0231】
なお、前景合成画像および背景合成画像の生成は、必須でなく省略されてもよい。このような場合、高速ビジョン処理部11Eは、いずれか1枚の前景フレームおよび背景フレームを通信部10に出力し、低速ビジョン処理装置P2Aに送信させる。
【0232】
次に、図20を参照して、実施の形態2に係る高速度画像処理システム100Aの動作手順について説明する。図20は、実施の形態2に係る高速度画像処理システム100Aの全体動作手順例を示すシーケンス図である。
【0233】
高速ビジョン処理部11Eは、高速度カメラ14により撮像されたフレームに写る前景(対象物Tg)および背景の位置を初期位置に設定する(St11)。
【0234】
高速度画像処理システム100Aは、ステップSt11の処理の後、第1ループ処理LP1Aと、第2ループ処理LP2Aとを並列に実行するループ処理LPAを繰り返し実行する。
【0235】
まず、第1ループ処理LP1Aについて説明する。第1ループ処理LP1Aは、高速度カメラ14のフレームレートの倍数回繰り返し実行される処理である。第1ループ処理LP1Aは、ステップSt12~ステップSt13、ステップSt17のそれぞれの処理を実行した後、ステップSt300に示す前景追跡画像生成処理,補正量算出処理(St300A)と、背景追跡画像生成処理,補正量算出処理(St300B)とを並列、かつ、略同時に実行し、ステップSt14A~ステップSt16Aのそれぞれの処理を実行する(PAR11)。また、第1ループ処理LP1Aは、並列処理PAR11と並列して、ステップSt400に示す前景合成用画像生成処理(St400A)と、背景合成用画像生成処理(St400B)とを並列、かつ、略同時に実行する(PAR12)。つまり、並列処理PAR11と、並列処理PAR12とは、並列に実行される処理であって、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理である。
【0236】
第1ループ処理LP1Aの並列処理PAR11において、高速度カメラ14は、高速(例えば、1000fps)で対象物Tgを含む領域を撮像し(St12)、撮像されたフレーム0を高速ビジョン処理部11Eに出力する(St13)。
【0237】
高速ビジョン処理部11Eは、高速度カメラ14により撮像されたフレーム0から前景領域の画素と背景領域の画素とをそれぞれ検出する。高速ビジョン処理部11Eは、フレームから検出された前景領域の画素および背景領域の画素のそれぞれを分離して、前景フレームと、背景フレームとをそれぞれ生成する(St17)。
【0238】
高速ビジョン処理部11Eは、生成(分離)された前景フレームを用いた前景追跡画像生成処理,補正量算出処理(ステップSt300A)と、背景フレームを用いた背景追跡画像生成処理,補正量算出処理(ステップSt300B)とを並列に実行する(St300)。
【0239】
高速ビジョン処理部11Eは、前景追跡画像生成処理,補正量算出処理(ステップSt300A)と、背景フレームを用いた背景追跡画像生成処理,補正量算出処理(ステップSt300B)とによって得られたサーボモータ15Aの目標位置の補正量をサーボ制御部13に出力する(St14A)。
【0240】
サーボ制御部13は、高速ビジョン処理部11Eから出力された目標位置の補正量に基づいて、サーボモータ15Aの位置を補正させる制御指令を生成する(St15A)。サーボ制御部13は、生成された制御指令(第2制御指令の一例)をアクチュエータ15に出力する(St16A)。
【0241】
また、第1ループ処理LP11の並列処理PAR12において、高速ビジョン処理部11Eは、生成(分離)された前景フレームを用いた前景合成用画像生成処理(ステップSt400A)と、背景フレームを用いた背景合成用画像生成処理(ステップSt400B)とを並列に実行する(St400)。
【0242】
第2ループ処理LP2Aにおいて、高速ビジョン処理部11Eは、前景合成用画像生成処理(ステップSt400A)により生成された前景合成画像と、背景合成用画像生成処理(ステップSt400B)により生成された背景合成画像とを低速ビジョン処理装置P2Aに送信する(St21A)。なお、ステップSt21Aの処理において、ステップSt400Aの前景合成用画像生成処理と、ステップSt400Bの背景合成用画像生成処理とが省略される場合、高速ビジョン処理部11Eは、高速度カメラ14から出力されたいずれか1枚の前景フレームおよび背景フレームを、それぞれ前景合成画像,背景合成画像の代わりに低速ビジョン処理装置P2に送信する。
【0243】
低速ビジョン処理装置P2Aは、高速ビジョン処理部11Eから送信された前景合成画像,背景合成画像のそれぞれを取得する。低速ビジョン処理装置P2Aは、取得された前景合成用画像に画像認識処理を実行して、前景合成用画像から前景の位置を検出する(St22A)。低速ビジョン処理装置P2Aは、取得された背景合成用画像に画像認識処理を実行して、背景合成用画像から背景の位置を検出する(St22A)。低速ビジョン処理装置P2Aは、検出された前景の位置情報と、背景の位置情報とを高速ビジョン処理部11Eに送信する(St23A)。
【0244】
高速ビジョン処理部11Eは、低速ビジョン処理装置P2Aから送信された前景の位置情報に基づくサーボモータ15Aの目標位置と、背景の位置情報とに基づくサーボモータ15Aの目標位置を算出する。高速ビジョン処理部11Eは、算出された前景の位置情報に基づくサーボモータ15Aの目標の補正量(第3補正量の一例)と、算出された背景の位置情報に基づくサーボモータ15Aの目標の補正量(第4補正量の一例)と、を算出して(St24A)、サーボ制御部13に出力する(St25)。
【0245】
サーボ制御部13は、高速ビジョン処理部11Eから送信された目標位置の補正量に基づいて、サーボモータ15Aの位置を目標位置に補正するための制御指令を生成する(St26)。サーボ制御部13は、生成された制御指令(第1制御指令の一例)をアクチュエータ15に出力し、サーボモータ15Aの位置補正を実行させる(St27)。
【0246】
以上により、実施の形態2に係る高速度画像処理システム100Aは、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理であって、前景フレームおよび背景フレームに基づく前景および背景の動き量の計測処理(並列処理PAR11)と、前景合成画像および背景合成画像の生成処理(並列処理PAR12)とを並列処理できる。また、高速度画像処理システム100Aは、並列処理PAR11,PAR12のそれぞれを含む第1ループ処理LP1Aと、高速度カメラ14のフレームレート(例えば、1000fps)よりも低速(例えば、60fps)である低速処理であって、前景合成画像および背景合成画像に基づく前景および背景の位置の認識処理を含む第2ループ処理LP2Aとを並列に実行できる。
【0247】
これにより、実施の形態2に係る高速度画像処理システム100Aは、高速度カメラ14により撮像された前景フレームおよび背景フレームをそれぞれ高速画像処理することにより、外乱による背景(基準位置)に対する作業装置P1あるいは高速度カメラ14の揺れを除去(補正)できる。また、高速度画像処理システム100Aは、複数の背景フレームを合成した背景合成画像を低速画像処理することにより、背景(基準位置)に対する作業装置P1あるいは高速度カメラ14の位置をリアルタイムに補正でき、複数の前景フレームを合成した前景合成画像を低速画像処理することにより、対象物Tg(前景)の位置をリアルタイムに補正できる。
【0248】
したがって、実施の形態2に係る高速度画像処理システム100Aは、作業装置P1(高速度カメラ14およびサーボモータ15A)と、対象物Tgとの間の相対位置関係を維持したり、対象物Tgに対する所定の作業を実現可能な相対位置関係に補正あるいは調整したりできる。
【0249】
具体的に、作業装置P1がロボットアームを備えるドローンであって、風などの外乱がある環境で対象物Tgに対して所定の作業を実行する場合、作業装置P1は、前景に関する第1目標位置情報に基づく対象物Tgの揺れ量と、前景に関する第2目標位置情報に基づく対象物Tgの位置とに合わせたロボットアームの制御と、背景に関する第1目標位置情報に基づく高速度カメラ14(つまり、作業装置P1)の揺れ量と、背景に関する第2目標位置情報に基づく高速度カメラ14(つまり、作業装置P1)の位置とに合わせた飛行制御とをそれぞれ個別に実行できる。
【0250】
次に、図21を参照して、高速ビジョン処理部11Eの前景追跡画像生成処理,補正量算出処理(ステップSt300)手順例について説明する。図21は、実施の形態2における高速ビジョン処理部11Eの前景追跡画像生成処理,補正量算出処理手順例を示すシーケンス図である。
【0251】
第1動き計測部111Bは、前景フレームn(つまり、n番目の前景フレーム)の次に撮像される前景フレームn+1(つまり、(n+1)番目の前景フレーム)に写る前景(対象物Tg)の位置を推定し、推定された前景の推定位置に基づいて、前景フレームnと前景フレームn+1との間の前景の動き量を計測する。第1動き計測部111Bは、前景フレームnに写る前景の位置を、前景フレームnの次に撮像される前景フレームn+1に写る前景の位置に変換するための第1前景変換行列を算出して設定する(St301A)。第1動き計測部111Bは、設定された第1前景変換行列を追跡画像生成部112に出力する(St302A)。
【0252】
なお、ここで、第1動き計測部111Bは、前景に写る対象物Tgあるいは作業装置P1(高速度カメラ14)が等速直線運動をしていると仮定して、前景の推定位置を推定してもよい。このような場合、第1動き計測部111Bは、前景フレームが高速(例えば、1000fps)で撮像されるため、前景フレームnと前景フレームn+1との間での対象物Tgの位置の変化量と、対象物Tgの加速度の情報とを取得できる。
【0253】
追跡画像生成部112Aは、第1動き計測部111Bから出力された第1前景変換行列を取得する。追跡画像生成部112Aにおける追跡用射影変換アドレス生成部1121は、取得された第1前景変換行列に基づいて、前景フレームnの全域を変形し、前景フレームnに写る前景を追跡するためのアドレスを生成する。追跡画像生成部112Aは、アドレスに基づいて、前景フレームnの読み出しを要求する制御指令を生成し、追跡用フレームバッファ12Aに送信する(St303A)。
【0254】
追跡用フレームバッファ12Aは、追跡画像生成部112Aから出力された制御指令に基づいて、格納済みの前景フレームのうちアドレスに対応する前景フレームnを読み出す(St304A)。追跡用フレームバッファ12Aは、読み出された前景フレームnを追跡画像生成部112Aに出力する(St305A)。
【0255】
追跡画像生成部112Aは、追跡用フレームバッファ12Aから出力された前景フレームnを取得する。追跡画像生成部112Aにおける画像変換部1122は、第1前景変換行列を用いて、前景フレームnを変換する(St306A)。追跡画像生成部112は、変換後の前景フレームnを第1動き計測部111Bに出力する(St307A)。なお、ステップSt307Aの処理で第1動き計測部111Bに出力される前景フレームは、前景の少なくとも一部を含む領域を切り出した画素データであってもよい。
【0256】
高速度カメラ14は、対象物Tgを撮像する(St308)。高速度カメラ14は、フレームn+1を第1動き計測部111Bに送信するともに(St309)、フレームn+1から前景領域に含まれる画素データと、背景領域も含まれる画素データとをそれぞれ分離して前景フレームおよび背景フレームのそれぞれを生成する(St316)。高速度カメラ14は、生成された前景フレームを追跡用フレームバッファ12Aに送信する(St317A)。
【0257】
追跡用フレームバッファ12Aは、高速度カメラ14から送信された前景フレームn+1を書き込み、格納する(St311A)。
【0258】
第1動き計測部111Bは、前景フレームn+1と、変換後の前景フレームnとを比較し、それぞれの前景フレームに写る前景の位置の差分に基づいて、前景フレームnと前景フレームn+1との間の前景の動き量(つまり、前景の位置差分)を計測する(St312A)。なお、ここで、第1動き計測部111Bは、前景フレームnを用いて推定された前景の推定位置に基づいて、前景フレームn+1および変換後の前景フレームnのそれぞれから少なくとも推定位置に対応する画素を含む領域の画素データを抽出し、抽出された画素データから前景の位置の動き量を計測してよい。
【0259】
第1動き計測部111Bは、計測された前景の動き量に基づいて、補正後のサーボモータ15Aの位置(以降、「第1前景目標位置」と表記)を算出する(St313A)。第1動き計測部111Bは、算出された第1前景目標位置を含む第1前景目標位置情報を生成して、目標位置補正部115に出力する(St314A)。
【0260】
目標位置補正部115は、第1動き計測部111Bから出力された第1前景目標位置情報に基づいて、サーボモータ15Aの位置を補正する補正量(第1補正量の一例)を算出する(St315A)。
【0261】
以上により、実施の形態2における高速ビジョン処理部11Eは、次の前景フレームn+1に写る前景の推定位置に基づいて前景フレームnを変換することで、2枚の前景フレーム間に写る前景の動き量の計測処理を高速化することができる。これにより、高速ビジョン処理部11Eは、高速度カメラ14により撮像された前景フレームを高速画像処理することができ、高速度カメラ14の揺れ等に起因する前景に対するサーボモータ15Aの位置を補正するための補正量をリアルタイムに算出し、出力することができる。
【0262】
サーボ制御部13は、高速ビジョン処理部11Eにより算出された目標位置の補正量に基づいて、高速度カメラ14の前景フレームレートよりも高いkHzオーダーで駆動可能なアクチュエータ15のサーボモータ15Aを駆動させることで、サーボモータ15Aの位置に基づく作業装置P1(高速度カメラ14)の位置を、前景に追従可能に補正する。
【0263】
次に、図22を参照して、高速ビジョン処理部11Eの背景追跡画像生成処理,補正量算出処理(ステップSt300)手順例について説明する。図22は、実施の形態2における高速ビジョン処理部11Eの背景追跡画像生成処理,補正量算出処理手順例を示すシーケンス図である。
【0264】
第2動き計測部111Cは、背景フレームn(つまり、n番目の背景フレーム)の次に撮像される背景フレームn+1(つまり、(n+1)番目の背景フレーム)に写る背景の位置を推定し、推定された背景の推定位置に基づいて、背景フレームnと背景フレームn+1との間の背景の動き量を計測する。第2動き計測部111Cは、背景フレームnに写る背景の位置を、背景フレームnの次に撮像される背景フレームn+1に写る背景の位置に変換するための第1背景変換行列を算出して設定する(St301B)。第2動き計測部111Cは、設定された第1背景変換行列を追跡画像生成部112に出力する(St302B)。
【0265】
なお、ここで、第2動き計測部111Cは、背景あるいは作業装置P1(高速度カメラ14)が等速直線運動をしていると仮定して、背景の推定位置を推定してもよい。このような場合、第2動き計測部111Cは、背景フレームが高速(例えば、100A0fps)で撮像されるため、背景フレームnと背景フレームn+1との間での背景の位置(つまり、高速度カメラ14の位置)の変化量と、背景(つまり、高速度カメラ14)の加速度の情報とを取得できる。
【0266】
追跡画像生成部112Aは、第2動き計測部111Cから出力された第1背景変換行列を取得する。追跡画像生成部112Aにおける追跡用射影変換アドレス生成部1121は、取得された第1背景変換行列に基づいて、背景フレームnの全域を変形し、背景フレームnに写る背景を追跡するためのアドレスを生成する。追跡画像生成部112Aは、アドレスに基づいて、背景フレームnの読み出しを要求する制御指令を生成し、追跡用フレームバッファ12Aに送信する(St303B)。
【0267】
追跡用フレームバッファ12Aは、追跡画像生成部112Aから出力された制御指令に基づいて、格納済みの背景フレームのうちアドレスに対応する背景フレームnを読み出す(St304B)。追跡用フレームバッファ12Aは、読み出された背景フレームnを追跡画像生成部112Aに出力する(St305B)。
【0268】
追跡画像生成部112Aは、追跡用フレームバッファ12Aから出力された背景フレームnを取得する。追跡画像生成部112Aにおける画像変換部1122は、第1背景変換行列を用いて、背景フレームnを変換する(St306B)。追跡画像生成部112は、変換後の背景フレームnを第2動き計測部111Cに出力する(St307B)。なお、ステップSt307Bの処理で第2動き計測部111Cに出力される背景フレームは、背景の少なくとも一部を含む領域を切り出した画素データであってもよい。
【0269】
高速度カメラ14は、対象物Tgを撮像する(St308)。高速度カメラ14は、フレームn+1を第2動き計測部111Cに送信するともに(St309)、フレームn+1から背景領域に含まれる画素データと、背景領域も含まれる画素データとをそれぞれ分離して背景フレームおよび背景フレームのそれぞれを生成する(St316)。高速度カメラ14は、生成された背景フレームを追跡用フレームバッファ12Aに送信する(St317B)。
【0270】
追跡用フレームバッファ12Aは、高速度カメラ14から送信された背景フレームn+1を書き込み、格納する(St311B)。
【0271】
第2動き計測部111Cは、背景フレームn+1と、変換後の背景フレームnとを比較し、それぞれの背景フレームに写る背景の位置の差分に基づいて、背景フレームnと背景フレームn+1との間の背景の動き量(つまり、背景の位置差分)を計測する(St312B)。なお、ここで、第2動き計測部111Cは、背景フレームnを用いて推定された背景の推定位置に基づいて、背景フレームn+1および変換後の背景フレームnのそれぞれから少なくとも推定位置に対応する画素を含む領域の画素データを抽出し、抽出された画素データから背景の位置の動き量を計測してよい。
【0272】
第2動き計測部111Cは、計測された背景の動き量に基づいて、補正後のサーボモータ15Aの位置(以降、「第1背景目標位置」と表記)を算出する(St313B)。第2動き計測部111Cは、算出された第1背景目標位置を含む第1背景目標位置情報を生成して、目標位置補正部115に出力する(St314B)。
【0273】
目標位置補正部115は、第2動き計測部111Cから出力された第1背景目標位置情報に基づいて、サーボモータ15Aの位置を補正する補正量(第2補正量の一例)を算出する(St315B)。
【0274】
以上により、実施の形態2における高速ビジョン処理部11Eは、次の背景フレームn+1に写る背景の推定位置に基づいて背景フレームnを変換することで、2枚の背景フレーム間に写る背景の動き量の計測処理を高速化することができる。これにより、高速ビジョン処理部11Eは、高速度カメラ14により撮像された背景フレームを高速画像処理することができ、作業装置P1あるいは高速度カメラ14の揺れ等に起因する背景(基準位置)に対するサーボモータ15Aの位置を補正するための補正量をリアルタイムに算出し、出力することができる。
【0275】
サーボ制御部13は、高速ビジョン処理部11Eにより算出された目標位置の補正量に基づいて、高速度カメラ14の背景フレームレートよりも高いkHzオーダーで駆動可能なアクチュエータ15のサーボモータ15Aを駆動させることで、背景に対する作業装置P1の位置をリアルタイムに補正できる。
【0276】
次に、図23を参照して、高速ビジョン処理部11Eの前景合成用画像生成処理(ステップSt400A)手順例について説明する。図23は、実施の形態2における高速ビジョン処理部11Eの前景合成用画像生成処理手順例を示すシーケンス図である。
【0277】
第1動き計測部111Bは、前景フレームnに写る前景の位置に基づいて、前景フレームnに写る前景の位置を前景フレーム0に写る前景の位置に移動させる第2前景変換行列を算出し、前景フレームnに写る前景の位置と、前景フレーム0に写る前景の位置変換するための第2前景変換行列を算出して設定する(St401A)。第1動き計測部111Bは、設定された第2前景変換行列を合成用画像生成部113Aに出力する(St402A)。なお、ここでいう前景フレーム0は、前景合成画像の生成に用いられる最初の前景フレームであって、合成処理により合成される前景の基準位置として設定される前景フレームである。
【0278】
合成用画像生成部113Aは、第1動き計測部111Bから出力された第2前景変換行列を取得する。合成用画像生成部113Aにおける画像認識用射影変換アドレス生成部1131は、取得された第2前景変換行列に基づいて、前景フレームnの全域を変形し、前景フレームnに写る前景を追跡するためのアドレスを生成する。合成用画像生成部113Aは、アドレスに基づいて、前景フレームnの読み出しを要求する制御指令を生成し、追跡用フレームバッファ12Aに送信する(St403A)。
【0279】
追跡用フレームバッファ12Aは、合成用画像生成部113Aから出力された制御指令に基づいて、格納済みの前景フレームのうちアドレスに対応する前景フレームnを読み出す(St404A)。追跡用フレームバッファ12Aは、読み出された前景フレームnを合成用画像生成部113Aに出力する(St405A)。
【0280】
合成用画像生成部113Aにおける画像認識用射影変換アドレス生成部1131は、取得された第2前景変換行列を用いて、前景フレームnに写る前景の位置を、前景フレーム0に写る前景の位置に合わせるように前景フレームnの全域を変形する(St406A)。
【0281】
合成用画像生成部113Aは、前景フレームnに対応する前景合成用画像をフレーム合成部114に出力する(St407A)。なお、ステップSt407Aの処理でフレーム合成部114に出力される前景合成用画像は、前景の少なくとも一部を含む領域を切り出した画素データであってもよい。
【0282】
フレーム合成部114は、前景フレームnに対応する前景合成用画像と合成され、前景フレーム0~前景フレームn-1のそれぞれに対応する前景合成用画像が合成された前景合成用画像の読み出しを要求する制御指令を生成して、合成用フレームバッファ12Bに出力する(St408A)。
【0283】
なお、フレーム合成部114は、合成用画像生成部113Aから出力された前景合成用画像が、前景フレーム0に対応する前景合成用画像の合成である場合には、この前景フレーム0に対応する前景合成用画像の書き込みを要求する制御指令を生成して、合成用フレームバッファ12Bに出力する。
【0284】
合成用フレームバッファ12Bは、フレーム合成部114から出力された制御指令に基づいて、前景合成用画像を読み出す(St409A)。合成用フレームバッファ12Bは、読み出された前景合成用画像をフレーム合成部114に出力する(St410A)。
【0285】
フレーム合成部114は、合成用フレームバッファ12Bから出力された前景合成用画像と、前景フレームnに対応する前景合成用画像とを合成し(St411A)、合成後の前景合成用画像の書き込みを要求する制御指令を生成して、前景合成画像と対応付けて合成用フレームバッファ12Bに出力する(St412A)。合成用フレームバッファ12Bは、フレーム合成部114から出力された前景合成用画像の書き込みを実行する(St413A)。
【0286】
フレーム合成部114は、前景合成用画像を所定枚数(例えば、16枚等)合成したか否かを判定する(St414A)。
【0287】
フレーム合成部114は、ステップSt414Aの処理において、前景合成用画像を所定枚数合成したと判定した場合(St414A,YES)、所定枚数の前景合成用画像が合成された前景合成画像を低速ビジョン処理装置P2に送信させる制御指令を生成して、合成用フレームバッファ12Bに出力する(St415A)。
【0288】
フレーム合成部114は、ステップSt414Aの処理において、前景合成用画像を所定枚数合成していないと判定した場合(St414A,NO)、所定枚数の前景合成用画像が合成された前景合成画像を低速ビジョン処理装置P2Aに送信させる制御指令の生成を省略する。高速ビジョン処理部11Eは、ステップSt401Aの処理に戻る。
【0289】
以上により、実施の形態2における高速ビジョン処理部11Eは、高速度カメラ14により撮像された前景フレームを、第2前景変換行列を用いて変換して合成することで、合成枚数に対応する露光時間の前景フレーム(前景合成画像)を生成できる。つまり、高速ビジョン処理部11Eは、前景フレームの外乱あるいは露光時間の短さに起因する揺れ(ブラー)を効果的に除去した前景合成画像を生成できる。これにより、高速ビジョン処理部11Eは、低速ビジョン処理装置P2Aにより実行される画像認識処理に適した前景合成画像を生成できる。
【0290】
次に、図24を参照して、高速ビジョン処理部11Eの背景合成用画像生成処理(ステップSt400B)手順例について説明する。図24は、実施の形態2における高速ビジョン処理部11Eの背景合成用画像生成処理手順例を示すシーケンス図である。
【0291】
第2動き計測部111Cは、背景フレームnに写る背景の位置に基づいて、背景フレームnに写る背景の位置を背景フレーム0に写る背景の位置に移動させる第2背景変換行列を算出し、背景フレームnに写る背景の位置と、背景フレーム0に写る背景の位置変換するための第2背景変換行列を算出して設定する(St401B)。第2動き計測部111Cは、設定された第2背景変換行列を合成用画像生成部113Aに出力する(St402B)。なお、ここでいう背景フレーム0は、背景合成画像の生成に用いられる最初の背景フレームであって、合成処理により合成される背景の基準位置として設定される背景フレームである。
【0292】
合成用画像生成部113Aは、第2動き計測部111Cから出力された第2背景変換行列を取得する。合成用画像生成部113Aにおける画像認識用射影変換アドレス生成部1131は、取得された第2背景変換行列に基づいて、背景フレームnの全域を変形し、背景フレームnに写る背景を追跡するためのアドレスを生成する。合成用画像生成部113Aは、アドレスに基づいて、背景フレームnの読み出しを要求する制御指令を生成し、追跡用フレームバッファ12Aに送信する(St403B)。
【0293】
追跡用フレームバッファ12Aは、合成用画像生成部113Aから出力された制御指令に基づいて、格納済みの背景フレームのうちアドレスに対応する背景フレームnを読み出す(St404B)。追跡用フレームバッファ12Aは、読み出された背景フレームnを合成用画像生成部113Aに出力する(St405B)。
【0294】
合成用画像生成部113Aにおける画像認識用射影変換アドレス生成部1131は、取得された第2背景変換行列を用いて、背景フレームnに写る背景の位置を、背景フレーム0に写る背景の位置に合わせるように背景フレームnの全域を変形する(St406B)。
【0295】
合成用画像生成部113Aは、背景フレームnに対応する背景合成用画像をフレーム合成部114に出力する(St407B)。なお、ステップSt407Bの処理でフレーム合成部114に出力される背景合成用画像は、背景の少なくとも一部を含む領域を切り出した画素データであってもよい。
【0296】
フレーム合成部114は、背景フレームnに対応する背景合成用画像と合成され、背景フレーム0~背景フレームn-1のそれぞれに対応する背景合成用画像が合成された背景合成用画像の読み出しを要求する制御指令を生成して、合成用フレームバッファ12Bに出力する(St408B)。
【0297】
なお、フレーム合成部114は、合成用画像生成部113Aから出力された背景合成用画像が、背景フレーム0に対応する背景合成用画像の合成である場合には、この背景フレーム0に対応する背景合成用画像の書き込みを要求する制御指令を生成して、合成用フレームバッファ12Bに出力する。
【0298】
合成用フレームバッファ12Bは、フレーム合成部114から出力された制御指令に基づいて、背景合成用画像を読み出す(St409B)。合成用フレームバッファ12Bは、読み出された背景合成用画像をフレーム合成部114に出力する(St410B)。
【0299】
フレーム合成部114は、合成用フレームバッファ12Bから出力された背景合成用画像と、背景フレームnに対応する背景合成用画像とを合成し(St411B)、合成後の背景合成用画像の書き込みを要求する制御指令を生成して、背景合成画像と対応付けて合成用フレームバッファ12Bに出力する(St412B)。合成用フレームバッファ12Bは、フレーム合成部114から出力された背景合成用画像の書き込みを実行する(St413B)。
【0300】
フレーム合成部114は、背景合成用画像を所定枚数(例えば、16枚等)合成したか否かを判定する(St414B)。
【0301】
フレーム合成部114は、ステップSt414Bの処理において、背景合成用画像を所定枚数合成したと判定した場合(St414B,YES)、所定枚数の背景合成用画像が合成された背景合成画像を低速ビジョン処理装置P2に送信させる制御指令を生成して、合成用フレームバッファ12Bに出力する(St415B)。
【0302】
フレーム合成部114は、ステップSt414Bの処理において、背景合成用画像を所定枚数合成していないと判定した場合(St414B,NO)、所定枚数の背景合成用画像が合成された背景合成画像を低速ビジョン処理装置P2Aに送信させる制御指令の生成を省略する。高速ビジョン処理部11Eは、ステップSt401Bの処理に戻る。
【0303】
以上により、実施の形態2における高速ビジョン処理部11Eは、高速度カメラ14により撮像された背景フレームを、第2背景変換行列を用いて変換して合成することで、合成枚数に対応する露光時間の背景フレーム(背景合成画像)を生成できる。つまり、高速ビジョン処理部11Eは、背景フレームの外乱,露光時間の短さに起因する揺れ(ブラー)を効果的に除去した背景合成画像を生成できる。これにより、高速ビジョン処理部11Eは、低速ビジョン処理装置P2Aにより実行される画像認識処理に適した背景合成画像を生成できる。
【0304】
以上により、実施の形態2における演算装置P11Aは、サーボモータ15A(駆動デバイスの一例)と高速度カメラ14(カメラの一例)との間で通信可能であって、高速度カメラ14により撮像された複数のフレームを取得し、複数のフレームから前景(被写体の一例)を分離した複数の前景フレーム(被写体フレームの一例)と、複数のフレームから背景(カメラの基準位置の一例)を分離した複数の背景フレーム(基準フレームの一例)とをそれぞれ生成し、複数の前景フレーム間における前景の第1の動き量を計測し、計測された前景の第1の動き量に基づいて、サーボモータ15Aの位置を補正する第1補正量(つまり、対象物Tgの揺れ補正量)を算出する第1高速ビジョン処理と、複数の背景フレーム間における背景の第2の動き量を計測し、計測された背景の第2の動き量に基づいて、サーボモータ15Aの位置を補正する第2補正量(つまり、高速度カメラ14の揺れ補正量)を算出する第2高速ビジョン処理と、第1高速ビジョン処理および第2高速ビジョン処理の処理周期よりも長い処理周期を有し、少なくとも1個の前景フレームに写る前景の認識位置に基づいて、サーボモータ15Aの位置を補正する第3補正量(つまり、対象物Tgの位置に基づくサーボモータ15Aの位置補正量)を算出する第1低速ビジョン処理と、少なくとも1個の背景フレームに写る背景の認識位置に基づいて、サーボモータ15Aの位置を補正する第4補正量(つまり、高速度カメラ14の位置に基づくサーボモータ15Aの位置補正量)を算出する第2低速ビジョン処理と、を実行し、第1補正量と第2補正量と第3補正量と第4補正量とに基づく制御指令を生成してサーボモータ15Aに出力する。
【0305】
これにより、実施の形態2における演算装置P11Aは、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理であって、前景フレームおよび背景フレームに基づく前景および背景の動き量の計測処理(並列処理PAR11)と、前景合成画像および背景合成画像の生成処理(並列処理PAR12)とを並列処理できる。また、演算装置P11Aは、並列処理PAR11,PAR12のそれぞれを含む第1ループ処理LP1Aと、高速度カメラ14のフレームレート(例えば、1000fps)よりも低速(例えば、60fps)である低速処理であって、前景合成画像および背景合成画像に基づく前景および背景の位置の認識処理を含む第2ループ処理LP2Aとを実行できる。つまり、演算装置P11Aは、高速度カメラ14により撮像された前景フレームおよび背景フレームをそれぞれ高速画像処理することにより、外乱による背景(基準位置)に対する作業装置P1あるいは高速度カメラ14の揺れを除去(補正)できる。したがって、アクチュエータ15は、画像認識処理による対象物Tgを認識するまでの間、対象物Tgに対する所定の作業を一時的に停止したり、作業速度を低下させたりすることなく実行できるため、作業効率を向上できる。
【0306】
また、実施の形態2における演算装置P11Aは、第1補正量と第2補正量と第3補正量と第4補正量とに基づく第1制御指令、または第1補正量および第2補正量に基づく第2制御指令を生成して、サーボモータ15Aに出力する。これにより、実施の形態2における演算装置P11Aは、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理に基づく外乱による背景(基準位置)に対する作業装置P1および高速度カメラ14の揺れの除去(補正)と、高速度カメラ14のフレームレート(例えば、1000fps)よりも低速(例えば、60fps)の画像認識処理(つまり、低速処理)により得られた対象物Tgおよび高速度カメラ14のより高精度な位置認識に基づくサーボモータ15Aの位置補正を実行できる。
【0307】
また、実施の形態2における第1制御指令は、第1低速ビジョン処理および第2低速ビジョン処理の処理周期に対応して出力される。第2制御指令は、第1高速ビジョン処理および第2高速ビジョン処理の処理周期に対応して出力される。これにより、実施の形態2における演算装置P11Aは、高速度カメラ14のフレームレートに対応する周期でサーボモータ15Aの位置を補正できるため、高速度カメラ14の揺れを除去できる。
【0308】
また、実施の形態2における前景の第1の動き量は、第N(N:1以上の整数)前景フレームの次に撮像された第(N+1)前景フレームにおいて、第N前景フレームに写る前景が写る位置を推定し、推定された前景の推定位置と、第(N+1)前景フレームに写る前景の位置とに基づいて、計測される。背景の第2の動き量は、第N背景フレームの次に撮像された第(N+1)背景フレームにおいて、第N背景フレームに写る背景を推定し、推定された背景の推定位置と、第(N+1)背景フレームに写る背景とに基づいて、計測される。これにより、実施の形態2における演算装置P11Aは、高速処理において、連続して撮像された2枚の前景フレーム間における前景の第1の動き量と、連続して撮像された2枚の背景フレーム間における背景の第2の動き量との計測処理をそれぞれ高速化することができ、高速度カメラ14の揺れ等に起因する対象物Tgに対するサーボモータ15Aの位置を補正するための補正量をリアルタイムに算出し、出力することができる。
【0309】
また、実施の形態2における演算装置P11Aは、演算装置P11Aとの間で通信可能であって、前景および背景を認識可能な低速ビジョン処理装置P2A(外部装置の一例)に少なくとも1個の前景フレームおよび少なくとも1個の背景フレームを送信し、前景の認識位置と、背景の認識位置とを低速ビジョン処理装置P2Aから取得する。これにより、実施の形態2における演算装置P11Aは、低速ビジョン処理装置P2Aにより前景合成画像を用いて、前景に含まれる対象物Tgのより高精度な位置認識を実行することができる。演算装置P11Aは、低速処理で得られた対象物Tgの位置と、高速処理で得られた高速度カメラ14の揺れ量とを用いることで、より高精度にサーボモータ15Aの位置を補正できる。
【0310】
また、実施の形態2における演算装置P11Aは、前景フレームをK(K:3以上の整数)個合成した前景合成画像(被写体合成画像の一例)を生成し、前景合成画像に写る対象物Tgの認識位置に基づいて、第3補正量を算出し、背景フレームをK個合成した背景合成画像(基準合成画像の一例)を生成し、背景合成画像に写る対象物Tgの認識位置に基づいて、第4補正量を算出する。これにより、実施の形態2における演算装置P11Aは、複数の背景フレームを合成した背景合成画像を低速画像処理することにより、背景(基準位置)に対する作業装置P1および高速度カメラ14の位置をリアルタイムに補正でき、複数の前景フレームを合成した前景合成画像を低速画像処理することにより、対象物Tg(前景)の位置をリアルタイムに補正できる。よって、演算装置P11Aは、低速ビジョン処理装置P2Aで実行される画像認識処理により適した画像(前景合成画像および背景合成画像)を生成でき、対象物Tgおよび高速度カメラ14のより高精度な位置認識を実行することができる。
【0311】
また、実施の形態2における演算装置P11Aは、第1低速ビジョン処理において、K個の前景フレームのそれぞれに写る前景の位置を推定し、推定された前景の推定位置と、前景の背景を示す第0前景フレームに写る前景の位置とに基づいて、第0前景フレームと第K前景フレームとの間の前景の第3の動き量を計測し、第3の動き量に基づいて、第K前景フレームを第0前景フレームに合成する合成処理をK回繰り返し実行して、前景合成画像を生成し、第2低速ビジョン処理において、K個の背景フレームのそれぞれに写る背景の位置を推定し、推定された背景の推定位置と、高速度カメラ14の背景を決定する第0背景フレームに写る背景とに基づいて、第0背景フレームと第K背景フレームとの間の背景の第4の動き量を計測し、第4の動き量に基づいて、第K背景フレームを第0フレームに合成する合成処理をK回繰り返し実行して、背景合成画像を生成する。これにより、実施の形態2における演算装置P11Aは、画像認識処理における認識対象である対象物Tgに対するブラーを優先的に除去した前景合成画像および背景合成画像を生成できるため、低速ビジョン処理装置P2Aで実行される画像認識処理により適した画像(前景合成画像および背景合成画像)を生成できる。
【0312】
また、実施の形態2における演算装置P11Aは、第1低速ビジョン処理において、前景の認識位置と、前景合成画像の生成に用いられたK個の前景フレームに対応するK個の第1の動き量とに基づいて、第3補正量を算出し、第2低速ビジョン処理において、背景の認識位置と、背景合成画像の生成に用いられたK個の背景フレームに対応するK個の第2の動き量とに基づいて、第4補正量を算出する。これにより、実施の形態2における演算装置P11Aは、背景(基準位置)に対する高速度カメラ14の位置、高速度カメラ14の位置に対する対象物Tgの位置を算出でき、高速度カメラ14の位置ずれ量を補正可能な第2補正量を算出できる。
【0313】
以上により、実施の形態2における演算装置P11A(画像処理装置の一例)は、サーボモータ15A(駆動デバイスの一例)と高速度カメラ14(カメラの一例)との間で通信可能であって、高速度カメラ14により撮像された複数のフレームを取得する通信部10(取得部の一例)と、複数のフレームから前景(被写体の一例)を分離した前景フレームと、複数のフレームからカメラの背景(基準位置の一例)を分離した背景フレームとをそれぞれ生成する領域分割部(分離部の一例)と、複数の前景フレーム間における前景の動き量を計測し、計測された前景の動き量に基づいて、モータの位置を補正する第1補正量を算出する第1高速ビジョン処理を実行する高速ビジョン処理部11E(第1高速処理部の一例)と、複数の背景フレーム間における背景の動き量を計測し、計測された背景の動き量に基づいて、モータの位置を補正する第2補正量を算出する第2高速ビジョン処理を実行する高速ビジョン処理部11E(第2高速処理部の一例)と、第1高速ビジョン処理および第2高速ビジョン処理の処理周期よりも長い処理周期で、前景の認識位置に基づいて、モータの位置を補正する第3補正量を算出する第1低速ビジョン処理を実行する高速ビジョン処理部11E(第1低速処理部の一例)と、第1高速ビジョン処理および第2高速ビジョン処理の処理周期よりも長い処理周期で、背景の認識位置に基づいて、モータの位置を補正する第4補正量を算出する第2低速ビジョン処理を実行する高速ビジョン処理部11E(第1低速処理部の一例)と、第1高速ビジョン処理と、第2高速ビジョン処理と、第1低速ビジョン処理と、第2低速ビジョン処理とを実行し、第1補正量と第2補正量と第3補正量と第4補正量とに基づく制御指令を生成してモータに出力する高速ビジョン処理部11E(制御部の一例)と、を備える。
【0314】
これにより、実施の形態2における演算装置P11Aは、高速度カメラ14のフレームレート(例えば、1000fps)に対応する高速処理であって、前景フレームおよび背景フレームに基づく前景および背景の動き量の計測処理(並列処理PAR11)と、前景合成画像および背景合成画像の生成処理(並列処理PAR12)とを並列処理できる。また、演算装置P11Aは、並列処理PAR11,PAR12のそれぞれを含む第1ループ処理LP1Aと、高速度カメラ14のフレームレート(例えば、1000fps)よりも低速(例えば、60fps)である低速処理であって、前景合成画像および背景合成画像に基づく前景および背景の位置の認識処理を含む第2ループ処理LP2Aとを並列に実行できる。つまり、演算装置P11Aは、高速度カメラ14により撮像された前景フレームおよび背景フレームをそれぞれ高速画像処理することにより、外乱による背景(基準位置)に対する作業装置P1および高速度カメラ14の揺れを除去(補正)できる。したがって、アクチュエータ15は、画像認識処理による対象物Tgを認識するまでの間、対象物Tgに対する所定の作業を一時的に停止したり、作業速度を低下させたりすることなく実行できるため、作業効率を向上できる。
【0315】
以上、添付図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても本開示の技術的範囲に属すると了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【0316】
本開示は、高速度カメラを用いた対象物の高速撮像と、対象物に対するリアルタイムな作業位置の補正とを実現可能な画像処理方法および画像処理装置の提示として有用である。
【符号の説明】
【0317】
10 通信部
11,11B,11C,11D,11E 高速ビジョン処理部
12 メモリ
12A 追跡用フレームバッファ
12B 合成用フレームバッファ
13 サーボ制御部
14 高速度カメラ
15 アクチュエータ
15A サーボモータ
111 動き計測部
111B 第1動き計測部
111C 第2動き計測部
112,112A 追跡画像生成部
113,113A 合成用画像生成部
114 フレーム合成部
115,115B,115C,115D,115E 目標位置補正部
116 平滑化部
117 予測部
118 領域分割部
100,100A 高速度画像処理システム
Tg 対象物
P1 作業装置
P2,P2A 低速ビジョン処理装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24