(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023019684
(43)【公開日】2023-02-09
(54)【発明の名称】画像処理装置、画像処理システム、画像処理方法、及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20230202BHJP
【FI】
G06T7/00 610C
G06T7/00 350C
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021124612
(22)【出願日】2021-07-29
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】大山 芽依
(72)【発明者】
【氏名】佐藤 陽介
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096FA09
5L096FA67
5L096GA08
5L096GA51
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
【課題】所定のステージ上とは異なる場所で撮影した対象物の撮影画像を用いて、3次元のCADモデルと対象物とを比較できる画像処理装置を提供する。
【解決手段】画像処理装置は、対象物の撮影画像に基づいて、前記対象物の姿勢情報を取得する情報取得部と、前記対象物の3次元データと前記姿勢情報とを用いて、前記対象物の基準画像を生成する基準画像生成部と、前記撮影画像に基づく比較画像と前記基準画像とを、対応点を合わせて重ね合わせたマッチング画像を出力する画像マッチング部と、を有する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
対象物の撮影画像に基づいて、前記対象物の姿勢情報を取得する情報取得部と、
前記対象物の3次元データと前記姿勢情報とを用いて、前記対象物の基準画像を生成する基準画像生成部と、
前記撮影画像に基づく比較画像と前記基準画像とを、対応点を合わせて重ね合わせたマッチング画像を出力する画像マッチング部と、
を有する、画像処理装置。
【請求項2】
前記情報取得部は、前記撮影画像に基づいて、前記対象物の画像特徴量と前記姿勢情報とを取得し、
前記画像処理装置は、前記姿勢情報と前記画像特徴量とを用いて、前記比較画像を生成する画像生成部を有する、
請求項1に記載の画像処理装置。
【請求項3】
前記情報取得部は、前記撮影画像を、学習済の第1の深層学習モデルに入力して、前記対象物の前記姿勢情報と前記画像特徴量とを取得する、請求項2に記載の画像処理装置。
【請求項4】
前記第1の深層学習モデルは、前記対象物の3次元データを用いて作成した、複数の姿勢、及び撮影条件における前記対象物の学習用画像と、当該対象物の姿勢を示す正解姿勢情報とを用いて学習済の深層学習モデルである、請求項3に記載の画像処理装置。
【請求項5】
前記画像生成部は、前記姿勢情報と前記画像特徴量とを、学習済の第2の深層学習モデルに入力することにより、前記比較画像を生成する、請求項3又は4に記載の画像処理装置。
【請求項6】
前記第2の深層学習モデルは、前記第1の深層学習モデルが出力する前記姿勢情報及び前記画像特徴量と、前記対象物のレンダリング画像とを用いて、学習済の深層学習モデルである、請求項5に記載の画像処理装置。
【請求項7】
前記情報取得部は、前記対象物の3次元データに基づくワイヤフレーム画像と、前記対象物の撮影画像から抽出した線分画像とを比較して、前記姿勢情報を取得する、請求項1に記載の画像処理装置。
【請求項8】
前記画像マッチング部は、前記比較画像と前記基準画像との差分を表す前記マッチング画像を出力する、請求項1乃至7のいずれか一項に記載の画像処理装置。
【請求項9】
前記比較画像と前記基準画像との差分を数値化し、閾値と比較して前記対象物の良否を判定する判定部を有する、請求項1乃至8のいずれか一項に記載の画像処理装置。
【請求項10】
前記対象物、及び前記対象物の周辺を撮影した入力画像を取得し、前記入力画像から前記撮影画像を抽出するとともに、前記対象物の情報を取得する画像取得部を有する、請求項1乃至9のいずれか一項に記載の画像処理装置。
【請求項11】
請求項3又は4に記載の画像処理装置を含む画像処理システムであって、
前記対象物の3次元データを用いて作成した、複数の姿勢、及び撮影条件における前記対象物の学習用画像と、当該対象物の姿勢を示す正解姿勢情報とを用いて、前記第1の深層学習モデルの学習を制御する学習制御部を有する、画像処理システム。
【請求項12】
請求項5又は6に記載の画像処理装置を含む画像処理システムであって、
前記第1の深層学習モデルが出力する前記姿勢情報と前記画像特徴量と、前記対象物のレンダリング画像とを用いて、前記第2の深層学習モデルの学習を制御する学習制御部を有する、画像処理システム。
【請求項13】
対象物の撮影画像に基づいて、前記対象物の姿勢情報を取得する情報取得部と、
前記対象物の3次元データと前記姿勢情報とを用いて、前記対象物の基準画像を生成する基準画像生成部と、
前記撮影画像に基づく比較画像と前記基準画像とを、対応点を合わせて重ね合わせたマッチング画像を出力する画像マッチング部と、
を有する、画像処理システム。
【請求項14】
画像処理装置が、
対象物の撮影画像に基づいて、前記対象物の姿勢情報を取得する処理と、
前記対象物の3次元データと前記姿勢情報とを用いて、前記対象物の基準画像を生成する処理と、
前記撮影画像に基づく比較画像と前記基準画像とを、対応点を合わせて重ね合わせたマッチング画像を出力する処理と、
を実行する、画像処理方法。
【請求項15】
コンピュータに、
対象物の撮影画像に基づいて、前記対象物の姿勢情報を取得する処理と、
前記対象物の3次元データと前記姿勢情報とを用いて、前記対象物の基準画像を生成する処理と、
前記撮影画像に基づく比較画像と前記基準画像とを、対応点を合わせて重ね合わせたマッチング画像を出力する処理と、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理システム、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
非破壊検査において、検査の対象となる対象物と設計値との差を確認するために、設計情報を有する3D(Three Dimensions)のCAD(Computer Aided Design)モデルを利用して、対象物の撮影画像との差分を比較することにより、検査を行うことが行われている。
【0003】
例えば、3DのCADモデルを方向付けし、試験対象物をステージ上においてCADモデルの方向とほぼマッチングする方向に配置し、CADモデルと試験対象物とを、対応点を合わせて重ね合わせを行う技術が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に開示された技術では、対象物を所定のステージ上で、3次元のCADモデルとほぼマッチングする方向に配置しないと、CADモデルと対象物とを比較することができないという問題がある。
【0005】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、所定のステージ上とは異なる場所で撮影した対象物の撮影画像を用いて、3次元のCADモデルと対象物とを比較できる画像処理装置を提供する。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、一実施形態に係る画像処理装置は、対象物の撮影画像に基づいて、前記対象物の姿勢情報を取得する情報取得部と、前記対象物の3次元データと前記姿勢情報とを用いて、前記対象物の基準画像を生成する基準画像生成部と、前記撮影画像に基づく比較画像と前記基準画像とを、対応点を合わせて重ね合わせたマッチング画像を出力する画像マッチング部と、を有する。
【発明の効果】
【0007】
本発明の一実施形態によれば、所定のステージ上とは異なる場所で撮影した対象物の撮影画像を用いて、3次元のCADモデルと対象物とを比較できる画像処理装置を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】一実施形態に係る画像処理システムのシステム構成の例を示す図である。
【
図2】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
【
図3】一実施形態に係る画像処理装置の機能構成の例を示す図である。
【
図4】第1の実施形態に係る比較画像生成部の機能構成の例を示す図(1)である。
【
図5】第1の実施形態に係る画像マッチング処理の例を示すフローチャートである。
【
図6】第1の実施形態に係る各画像のイメージを示す図である。
【
図7】第1の実施形態に係る比較画像生成部の機能構成の例を示す図(2)である。
【
図8】第1の実施形態に係る学習データについて説明するための図である。
【
図9】第1の実施形態に係る学習処理の例を示すフローチャートである。
【
図10】第2の実施形態に係る姿勢情報の取得処理について説明するための図である。
【
図11】第2の実施形態に係る姿勢情報の取得処理の例を示すフローチャートである。
【
図12】第2の実施形態に係る画像マッチング処理の例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
図1は、一実施形態に係る画像処理システムのシステム構成の例を示す図である。画像処理システム1は、一例として、
図1に示すように、組立作業者11が組立を行う対象物12を撮影するカメラ110と、検査担当者13が利用する検査端末120と、画像処理装置100とを含む。
【0010】
カメラ110は、組立作業中に対象物12を撮影した画像を、通信ネットワーク10を介して、画像処理装置100に送信する。
【0011】
画像処理装置100は、コンピュータ、又は複数のコンピュータを含むシステムである。画像処理装置100は、通信ネットワーク10を介してカメラ110から受信した入力画像に基づいて、3次元のCADモデルと対象物12とを比較するマッチング画像を生成し、生成したマッチング画像を、通信ネットワーク10を介して検査端末120へ送信する。
【0012】
検査端末120は、通信ネットワーク10を介して、画像処理装置100から受信したマッチング画像を、例えば、ディスプレイに表示する。検査担当者13は、検査端末120がディスプレイに表示したマッチング画像から、組立作業者11が組み立てた対象物の良否(良品であるか、不良品であるか)を判断する。
【0013】
別の一例として、画像処理装置100は、3次元のCADモデルと対象物12との差分を数値化して、閾値と比較して対象物12の良否を判定し、判定結果をマッチング画像とともに検査端末120に送信しても良い。
【0014】
なお、
図1に示す画像処理システム1のシステム構成は一例である。例えば、小規模なシステムでは、画像処理装置100と検査端末120とは、同じ情報処理装置であっても良い。
【0015】
<ハードウェア構成>
図1の画像処理装置100、及び検査端末120は、例えば、
図2に示すようなコンピュータ200のハードウェア構成を有している。なお、画像処理装置100は、複数のコンピュータ200によって構成されるものであっても良い。
【0016】
図2は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。コンピュータ200は、例えば、
図2に示されるように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、HD(Hard Disk)204、HDD(Hard Disk Drive)コントローラ205、ディスプレイ206、外部機器接続I/F(Interface)207、ネットワークI/F208、キーボード209、ポインティングデバイス210、DVD-RW(Digital Versatile Disk Rewritable)ドライブ212、メディアI/F214、GPU(Graphics Processing Unit)215、及びバスライン216等を備えている。
【0017】
これらのうち、CPU201は、コンピュータ200全体の動作を制御する。ROM202は、例えば、IPL(Initial Program Loader)等のコンピュータ200の起動に用いられるプログラムを記憶する。RAM203は、例えば、CPU201のワークエリア等として使用される。HD204は、例えば、OS(Operating System)、アプリケーション、デバイスドライバ等のプログラムや、各種データを記憶する。HDDコントローラ205は、例えば、CPU201の制御に従ってHD204に対する各種データの読み出し又は書き込みを制御する。
【0018】
ディスプレイ206は、例えば、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。なお、ディスプレイ206は、コンピュータ200の外部に設けられていても良い。外部機器接続I/F207は、コンピュータ200に様々な外部装置を接続する、例えば、USB(Universal Serial Bus)等のインタフェースである。ネットワークI/F208は、例えば、通信ネットワーク10等を利用して、他の装置と通信するためのインタフェースである。
【0019】
キーボード209は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス210は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行なう入力手段の一種である。なお、キーボード209、及びポインティングデバイス210は、コンピュータ200の外部に設けられていても良い。DVD-RWドライブ212は、着脱可能な記憶媒体の一例としてのDVD-RW211に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RW211は、DVD-RWに限らず、他の記憶媒体であっても良い。
【0020】
メディアI/F214は、フラッシュメモリ等のメディア213に対するデータの読み出し又は書き込み(記憶)を制御する。GPU215は、例えば、3Dグラフィック処理、又は画像特徴量の抽出処理等の画像処理を、CPU201よりも高速に実行するプロセッサである。バスライン216は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等を含む。
【0021】
なお、
図2に示すコンピュータ200のハードウェア構成は一例である。コンピュータ200は、例えば、CPU201、ROM202、RAM203、ネットワークI/F208、及びバスライン216を有していれば、他は任意の構成であって良い。
【0022】
<機能構成>
図3は、一実施形態に係る画像処理装置の機能構成の例を示す図である。画像処理装置100は、CPU201が所定のプログラムを実行することにより、例えば、画像取得部301、CADデータ管理部302、比較画像生成部303、基準画像生成部304、画像マッチング部305、及び判定部306等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0023】
画像取得部301は、カメラ110から、通信ネットワーク10を介して受信した入力画像から、対象物12の撮影画像と、対象物12の情報を取得する画像取得処理を実行する。ここで、対象物12の撮影画像は、例えば、入力画像から対象物12が写っている領域をトリミングした画像である。画像取得部301は、入力画像から、例えば、物体位置種類推定技術等によって得られた領域を撮影画像からトリミングすることによって対象物12の撮影画像を取得し、取得した対象物12の撮影画像を比較画像生成部303に送信する。なお、画像取得部301は、例えば、一般的なパターンマッチング技術等を利用して、入力画像から対象物12が写っている領域を特定し、特定した領域をトリミングすることにより対象物12の撮影画像を取得しても良い。
【0024】
また、対象物12の情報は、例えば、対象物12を特定するための識別情報、又は名前等の情報である。画像取得部301は、例えば、対象物12の画像から、深層学習等を用いた物体位置種類推定手法を利用して対象物12を特定し、特定した対象物12の情報をCADデータ管理部302に送信する。なお、画像取得部301は、例えば、一般的なパターンマッチング技術等を利用して対象物12を特定しても良いし、画像処理装置100に対象物12の情報が予め設定されている場合には、対象物12の情報を取得する処理を省略しても良い。
【0025】
CADデータ管理部302は、対象物12の3次元のCADデータ(3次元データ)を、例えば、画像処理装置100が備えるストレージデバイス等に記憶して管理する。また、CADデータ管理部302は、画像取得部301から対象物12の情報を受信すると、当該対象物12の3次元のCADデータを、例えば、比較画像生成部303、又は基準画像生成部304等に送信する。なお、CADデータ管理部302は、対象物12の3次元のCADデータを、画像処理装置100が備えるストレージデバイスに代えて、通信ネットワーク10を介して通信可能な外部サーバ、又はクラウドサービス等から取得しても良い。
【0026】
比較画像生成部303は、画像取得部301から受信した対象物12の撮影画像に基づいて、対象物12の比較画像、及び対象物12の姿勢情報を生成する。ここで、比較画像は、一例として、対象物12の撮影画像から、背景、及び光の反射等の撮影条件を補正した画像である。また、姿勢情報は、対象物12の撮影画像において、対象物12の3次元の向きを示すベクトル情報である。なお、対象物12の比較画像と姿勢情報の生成方法については、複数の実施形態を例示して後述する。
【0027】
基準画像生成部304は、CADデータ管理部302から受信した対象物12の3次元のCADデータ(3次元データ)と、比較画像生成部303から受信した対象物12の姿勢情報とを用いて、対象物12の基準画像を生成する基準画像生成処理を実行する。例えば、基準画像生成部304は、姿勢情報を用いて、3次元のCADデータを回転させてレンダリングを行うことにより基準画像を生成し、生成した基準画像を画像マッチング部305に送信する。
【0028】
画像マッチング部305は、比較画像生成部303から受信した対象物12の比較画像と、基準画像生成部304から受信した基準画像とを、対応点を合わせて重ね合わせたマッチング画像を出力する画像マッチング処理を実行する。このマッチング画像は、比較画像と基準画像との差分を表す画像であり、例えば、比較画像と基準画像の各画素値の差を算出し、算出した各画素値の差分をヒートマップとして表した画像等である。画像マッチング部305は、マッチング画像を、例えば、通信ネットワーク10を介して、検査端末120へ送信(出力)する。或いは、画像マッチング部305は、マッチング画像を画像処理装置が備えるディスプレイ206等に表示(出力)しても良い。
【0029】
判定部306は、対象物12の比較画像と基準画像との差分を数値化し、閾値と比較して対象物12の良否を判定する判定処理を実行する。なお、判定部306はオプションであり、画像処理装置100は、判定部306を有していなくても良い。
【0030】
続いて、比較画像生成部303について、複数の実施形態を例示して説明する。
【0031】
[第1の実施形態]
<比較画像生成部の機能構成>
(機能構成1)
図4は、第1の実施形態に係る比較画像生成部の機能構成の例を示す図(1)である。この図は、第1の実施形態に係る比較画像生成部303の最小構成を示している。
図4の例では、比較画像生成部303は、情報取得部410、情報記憶部401、画像生成部420、及び比較画像記憶部402等を含む。
【0032】
情報取得部410は、画像取得部301から受信した対象物12の撮影画像に基づいて、対象物12の画像特徴量と姿勢情報とを取得する。例えば、情報取得部410は、画像取得部301から受信した対象物12の撮影画像を、学習済の第1の深層学習モデル411に入力して、対象物12の画像特徴量と姿勢情報とを取得する。ここで、第1の深層学習モデル411は、対象物12の3次元のCADデータを用いて作成した、複数の姿勢、及び撮影条件における対象物12の学習用画像と、当該対象物12の正解姿勢情報とを用いて予め学習済の深層学習モデルである。なお、第1の深層学習モデルの学習処理については後述する。
【0033】
ここで、画像特徴量は、第1の深層学習モデル411によって抽出した画像の特徴を示すベクトルである。例えば、第1の深層学習モデル411の出力を256次元のベクトルとすると、最初の3次元のベクトルが姿勢情報であり、残りの253次元のベクトルが画像特徴量となる。情報取得部410は、取得した対象物12の姿勢情報、及び画像特徴量を、例えば、情報記憶部401等に記憶する。
【0034】
情報記憶部401は、画像処理装置100が備えるストレージデバイス等によって実現され、対象物12の姿勢情報、及び画像特徴量を記憶する。比較画像生成部303は、情報記憶部401に記憶した対象物12の姿勢情報を、基準画像生成部304に出力する。
【0035】
画像生成部420は、情報記憶部401に記憶した、対象物12の姿勢情報と画像特徴量とを用いて、対象物12の比較画像を生成する。例えば、画像生成部420は、対象物12の姿勢情報と画像特徴量とを、学習済の第2の深層学習モデル421に入力することにより、対象物12の比較画像を生成する。ここで、第2の深層学習モデル421は、生成した比較画像と、対象物12の3次元のCADデータを用いて作成したレンダリング画像との誤差が、閾値以下となるように予め学習済の深層学習モデルである。
【0036】
ここで、レンダリング画像は、対象物12の3次元のCADデータを用いて作成した、対象物12を複数の姿勢から見た対象物12の画像である。好ましくは、レンダリング画像には、対象物12のパーツの一部が欠けていたり、取り付け位置がずれていたりする画像が含まれる。画像生成部420は、生成した比較画像を、例えば、比較画像記憶部402等に記憶する。
【0037】
比較画像記憶部402は、画像処理装置100が備えるストレージデバイス等によって実現され、対象物12の比較画像を記憶する。比較画像生成部303は、比較画像記憶部402に記憶した対象物12の比較画像を、画像マッチング部305等に出力する。
【0038】
<処理の流れ>
続いて、第1の実施形態に係る画像処理方法の処理の流れについて説明する。
(画像マッチング処理)
図5は、第1の実施形態に係る画像マッチング処理の例を示すフローチャートである。この処理は、
図1に示すように、画像処理装置100が、カメラ110から受信した入力画像に基づいて、3次元のCADモデルと対象物12とを比較するマッチング画像を生成し、検査端末120に出力する画像マッチング処理の例を示している。
【0039】
ステップS501において、画像取得部301は、通信ネットワーク10を介して、カメラ110からの入力画像を取得する。
【0040】
ステップS502において、画像取得部301は、入力画像から対象物12が写っている領域をトリミングした対象物12の撮影画像を取得する。また、画像取得部301は、取得した対象物12の撮影画像に基づいて、対象物12の情報(例えば、対象物12の識別情報)を取得する。
【0041】
画像取得部301は、取得した対象物12の撮影画像を比較画像生成部303に出力する。また、画像取得部301は、取得した対象物12の情報をCADデータ管理部302に出力する。これにより、CADデータ管理部302は、対象物12の3次元のCADデータを比較画像生成部303、及び基準画像生成部304等に出力する。
【0042】
ステップS503において、比較画像生成部303の情報取得部410は、画像取得部301から受け付けた対象物12の撮影画像を用いて、対象物12の姿勢情報と画像特徴量とを取得する。例えば、情報取得部410は、対象物12の撮影画像を、学習済の第1の深層学習モデル411に入力して、第1の深層学習モデル411が出力する姿勢情報と画像特徴量とを取得し、取得した姿勢情報と画像特徴量を、情報記憶部401に記憶する。これにより、比較画像生成部303は、情報記憶部401に記憶した対象物12の姿勢情報を、基準画像生成部304に出力する。
【0043】
ステップS504において、比較画像生成部303の画像生成部420は、情報記憶部401に記憶した対象物12の姿勢情報と画像特徴量とを用いて、対象物12の比較画像を生成する。例えば、画像生成部420は、対象物12の姿勢情報と画像特徴量とを、学習済の第2の深層学習モデル421に入力して、第2の深層学習モデル421が出力する比較画像を取得し、取得した比較画像を比較画像記憶部402に記憶する。これにより、比較画像生成部303は、比較画像記憶部402に記憶した対象物12の比較画像を、画像マッチング部305に出力する。
【0044】
また、ステップS504の処理と並行して、ステップS505において、基準画像生成部304は、CADデータ管理部302から受け付けた3次元のCADデータと、比較画像生成部303から受け付けた対象物12の姿勢情報とを用いて、対象物12の基準画像を生成する。例えば、基準画像生成部304は、対象物12の姿勢情報を用いて、対象物12の3次元のCADデータを回転させてレンダリングを行うことにより基準画像を生成し、生成した基準画像を画像マッチング部305に出力する。
【0045】
ステップS506において、画像マッチング部305は、比較画像生成部303から受信した比較画像と、基準画像生成部304から受信した基準画像とを、対応点を合わせて重ね合わせたマッチング画像を生成する。
【0046】
ステップS507において、画像マッチング部305は、生成したマッチング画像を、例えば、検査端末120等に出力(送信)する。
【0047】
図6は、第1の実施形態に係る各画像のイメージを示す図である。入力画像610は、カメラ110が対象物12、及び対象物12の周辺を撮影した画像である。この入力画像610には、例えば、背景611、対象物12を組み立てる作業台612、又は組立作業者等の対象物12以外の物体が含まれ得る。また、入力画像610は、例えば、照明の位置等の撮影条件によって、影、又は反射した光等が映り込み、対象物12の色等が均一でない場合がある。
【0048】
撮影画像620は、入力画像610から、対象物12が映っている部分をトリミングした画像である。従って、撮影画像620には、背景611、又は撮影条件等の影響が残っている。
【0049】
比較画像630は、
図5のステップS504で、比較画像生成部303が、対象物12の画像特徴量と姿勢情報から生成する画像である。従って、比較画像630は、背景は削除され、また、一定の照明条件の下での画像となるため、撮影条件による色の不均一性等も削減された画像となる。
【0050】
基準画像640は、
図5のステップS505で、基準画像生成部304が、対象物12の基準となる3次元のCADデータを、対象物12の姿勢情報を用いてレンダリングした画像である。従って、基準画像640は、不要な背景はなく、照明条件の影響もない画像となる。
【0051】
マッチング画像650は、
図5のステップS506で、画像マッチング部305が、比較画像630と、基準画像640とを、対応点を合わせて重ね合わせて、比較画像630と基準画像640との差分を表す画像である。
図6の例では、比較画像630と基準画像640とで、パーツ651の取り付け位置が異なっているため、差分となるパーツ651が、強調表示(例えば、色分け、又はハッチング等)されている。
【0052】
このように、第1の実施形態によれば、所定のステージ上とは異なる場所で撮影した対象物12の撮影画像を用いて、3次元のCADモデルと対象物12とを比較できる画像処理装置100を提供することができる。
【0053】
(機能構成2)
図7は、第1の実施形態に係る比較画像生成部の機能構成の例を示す図(2)である。第1の深層学習モデル411、及び第2の深層学習モデル421は、
図5に示した画像マッチング処理を実行する前に、深層学習モデルの学習が必要である。
図7は、第1の深層学習モデル411、及び第2の深層学習モデル421の学習処理を実行する場合における比較画像生成部303の機能構成の一例を示している。
【0054】
第1の深層学習モデル411、及び第2の深層学習モデル421の学習処理を実行する場合、比較画像生成部303は、
図4で説明した比較画像生成部303の機能構成に加えて、学習制御部700を有している。なお、学習制御部700は、比較画像生成部303の外部に設けられていても良い。
【0055】
学習制御部700は、例えば、学習データ記憶部701、及び誤差計算部702等を含む。学習データ記憶部701は、例えば、画像処理装置100が備えるストレージデバイス等によって実現され、第1の深層学習モデル411、及び第2の深層学習モデル421の学習処理で用いられる学習データを記憶する。学習データ記憶部701が記憶する学習データには、例えば、レンダリング画像、学習用画像、及び正解姿勢情報等が含まれる。
【0056】
図8は、第1の実施形態に係る学習データについて説明するための図である。学習データ記憶部701は、例えば、
図8に示すように、複数のデータIDに対応付けて、レンダリング画像、学習用画像、及び正解姿勢情報を記憶した学習データ800を記憶している。
【0057】
レンダリング画像は、対象物12の3次元のCADデータを、正解姿勢情報を用いて回転させてレンダリングした画像である。このレンダリング画像には、例えば、パーツの一部が欠けている画像、パーツの取り付け位置がずれている画像、又は不要なパーツが取り付けられている画像等も含まれる。学習用画像は、レンダリング画像の背景、又は照明条件等を変化させた画像である。正解姿勢情報は、レンダリング画像、及び学習用画像の姿勢を表す姿勢情報である。
【0058】
ここで、
図7に戻り、学習制御部700の説明を続ける。学習制御部700は、学習データ記憶部701に記憶した学習用画像を第1の深層学習モデルに入力する。また、情報取得部410は、第1の深層学習モデル411が出力する姿勢情報、及び画像特徴量を情報記憶部401に記憶する。
【0059】
誤差計算部702は、情報取得部410が情報記憶部401に記憶した姿勢情報と、正解姿勢情報とのベクトルの差である姿勢誤差情報を計算する。学習制御部700(又は情報取得部410)は、姿勢誤差情報の値が、より小さくなるように第1の深層学習モデル411の重みを更新する。
【0060】
また、画像生成部420は、情報記憶部401に記憶した姿勢情報、及び画像特徴量を第2の深層学習モデル421に入力して、第2の深層学習モデル421が出力する比較画像を取得し、取得した比較画像を比較画像記憶部402に記憶する。
【0061】
誤差計算部702は、比較画像記憶部402に記憶した比較画像と、レンダリング画像との差(例えば、全画素値の差)である画像誤差情報を計算する。学習制御部700(又は画像生成部420)は、画像誤差情報の値が、より小さくなるように第2の深層学習モデルの重みを更新する。
【0062】
(学習処理の流れ)
図9は、第1の実施形態に係る学習処理の例を示すフローチャートである。
図9(A)は、例えば、
図7で説明した学習制御部700を有する画像処理装置100が、第1の深層学習モデル411、及び第2の深層学習モデル421を学習する学習処理の一例を示している。
【0063】
なお、
図9(A)に示す学習処理を実行する画像処理装置100は、
図5で説明した画像マッチング処理を実行する画像処理装置100と同じ画像処理装置であっても良いし、異なる画像処理装置であっても良い。従って、
図5で説明した画像マッチング処理を実行する画像処理装置100は、
図7で説明した学習制御部700を、有していても良いし、有していなくても良い。
【0064】
ステップS901において、学習制御部700は、学習データ記憶部701に記憶した学習データを、所定の出力先に出力する。例えば、学習制御部700は、学習データ記憶部701に記憶した学習用画像を、情報取得部410に出力するとともに、学習データ記憶部701に記憶した正解姿勢情報、及びレンダリング画像を誤差計算部702に出力する。
【0065】
ステップS902において、情報取得部410は、第1の深層学習モデル411を用いて、姿勢情報と画像特徴量とを取得する。例えば、情報取得部410は、学習制御部700から受け付けた学習用画像を第1の深層学習モデル411に入力して、第1の深層学習モデル411が出力する姿勢情報、及び画像特徴量を取得し、取得した姿勢情報、及び画像特徴量を情報記憶部401に記憶する。
【0066】
ステップS903において、画像生成部420は、第2の深層学習モデル421を用いて、比較画像を生成する。例えば、画像生成部420は、情報記憶部401に記憶した姿勢情報、及び画像特徴量を第2の深層学習モデル421に入力して、第2の深層学習モデルが出力する比較画像を取得し、取得した比較画像を比較画像記憶部402に記憶する。
【0067】
ステップS904において、学習制御部700は、誤差計算部702で計算した誤差情報に基づいて、第1の深層学習モデル411、及び第2の深層学習モデル421の重みを、誤差情報が、より小さくなるように更新する。例えば、誤差計算部702は、情報記憶部401に記憶した姿勢情報と、正解姿勢情報との誤差である姿勢誤差情報を計算し、学習制御部700(又は情報取得部410)は、姿勢誤差情報が、より小さくなるように、第1の深層学習モデル411の重みを更新する。また、誤差計算部702は、比較画像記憶部402に記憶した比較画像と、レンダリング画像との誤差である画像誤差情報を計算し、学習制御部700(又は情報取得部410)は、画像誤差情報が、より小さくなるように、第2の深層学習モデル421の重みを更新する。
【0068】
ステップS905において、学習制御部700は、ステップS901~S904の処理の繰り返し回数nが、予め定められた所定の回数Nに達したか否かを判断する。繰り返し回数nが、所定の回数Nに達していない場合、学習制御部700は、処理をステップS901に戻して、ステップS901~S904の処理を再び実行する。一方、繰り返し回数nが、所定の回数Nに達している場合、学習制御部700は、処理をステップS906に移行させる。
【0069】
ステップS906に移行すると、学習制御部700は、第1の深層学習モデル411、及び第2の深層学習モデル421の重みを確定する。
【0070】
図9(B)は、例えば、
図7で説明した学習制御部700を有する画像処理装置100が、第1の深層学習モデル411、及び第2の深層学習モデル421を学習する学習処理の別の一例を示している。なお、
図9(B)に示す処理のうち、ステップS901~A904、及びステップS906の処理は、
図9(A)で説明した処理と同様なので、ここでは説明を省略する。
【0071】
ステップS910において、学習制御部700は、姿勢誤差情報、及び画像誤差情報の誤差が、閾値以下になったか否かを判断する。例えば、学習制御部700は、姿勢誤差情報の誤差が予め設定された第1の閾値以下であり、かつ画像誤差情報の誤差が予め設定された第2の閾値以下である場合、誤差が閾値以下になったと判断する。
【0072】
誤差が閾値以下になっていない場合、学習制御部700は、処理をステップS901に戻して、ステップS901~S904の処理を再び実行する。一方、誤差が閾値以下になった場合、学習制御部700は、処理をステップS906に移行させる。
【0073】
図9(A)、又は
図9(B)の処理により、学習制御部700は、第1の深層学習モデル411、及び第2の深層学習モデル421を学習することができる。
【0074】
[第2の実施形態]
第1の実施形態では、深層学習モデルを用いて、対象物12の姿勢情報を取得する場合の処理の例について説明した。第2の実施形態では、3次元のCADデータから作成したワイヤフレーム画像と、対象物12の撮影画像(又は入力画像)から抽出した線分とを比較して、対象物12の姿勢情報を取得する場合の処理の例について説明する。
【0075】
(処理の概要)
図10は、第2の実施形態に係る姿勢情報の取得処理について説明するための図である。なお、第2の実施形態に係る画像処理装置100は、例えば、
図3に示すような機能構成を有している。
【0076】
比較画像生成部303は、例えば、
図10の(A)に示すような、対象物12の3次元のCADデータを用いて、例えば、
図10の(B)に示すように、複数の視点1、2、3、・・・から見た、対象物12のワイヤフレーム画像を作成する。好ましくは、比較画像生成部303は、3次元のCADデータからワイヤフレームを抽出し、陰線を除去した上でレンダリングしたワイヤフレーム画像を作成する。なお、隠線を除去したワイヤフレーム画像を作成する方法は公知であり、例えば、一般的なCADソフトウェア等を用いて実行可能である。
【0077】
また、比較画像生成部303は、例えば、
図10の(C)に示すように、複数の視点1、2、3、・・・ごとに、各頂点における線分間の角度を記録した第1の線分角度テーブル1001を作成する。
【0078】
また、上記の(A)~(C)の処理と並行して、比較画像生成部303は、例えば、
図10の(D)に示すような入力画像(又は対象物12の撮影画像)から、直線を抽出して、例えば、
図10(E)に示すように、線分画像を作成する。なお、画像から直線を抽出する方法は公知であり、例えば、Hough変換による直線の検出方法が知られている。
【0079】
さらに、比較画像生成部303は、例えば、
図10の(F)に示すように、線分画像の各頂点における線分間の角度を記録した第2の線分角度テーブル1002を作成する。
【0080】
続いて、比較画像生成部303は、第1の線分角度テーブル1001に含まれる角度分布T_v{1,2,3,・・・}と、第2の線分角度テーブル1002に含まれる角度分布T_inputとを比較してvを絞り込むことにより、視点情報Vを推定する。これにより、比較画像生成部303は、複数の視点1、2、3、・・・のうち、入力画像上の対象物12の映り方に近い視点情報を得ることができる。
【0081】
ここで、視点情報は、画像、又はCADデータ等の電子データ上の物体の基準点と、当該電子データ上の視点(例えば、複数の視点1、2、3、・・・等)との間の相対的な位置と回転で表現される。
【0082】
比較画像生成部303は、得られた視点情報Vを基準にして、Vに対応するワイヤフレーム画像V'に対して、例えば、平行移動、拡大縮小、回転、及びせん断等のアフィン変換Aを施すことにより、線分画像P'に近い画像を得ることができる。
【0083】
この線分画像P'に対応する姿勢情報Pが、3次元のCADデータ、及び入力画像における対象物12の相対姿勢を表す。ここで、姿勢情報は、基準となる視点情報Vと、アフィン変換Aとの組み合わせを指すが、当該姿勢情報は、単一の視点情報と相互に変換することもできる。
【0084】
<処理の流れ>
(姿勢情報の取得処理)
図11は、第2の実施形態に係る姿勢情報の取得処理の例を示すフローチャートである。なお、基本的な処理内容は、
図10で説明した処理の概要と同様なので、ここでは、同様の処理内容に対する詳細な説明は省略する。
【0085】
ステップS1001において、比較画像生成部303は、CADデータ管理部302から、対象物12の3次元のCADデータを取得する。
【0086】
ステップS1002において、比較画像生成部303は、対象物12の3次元のCADデータから、ワイヤフレームを生成(抽出)する。
【0087】
ステップS1003において、比較画像生成部303は、ワイヤフレームの間引きを行っても良い(行わなくても良い)。例えば、比較画像生成部303は、複雑なCADモデルにおいて、視点の推定を精度良く、かつ効率的に行うために、ワイヤフレームを、線分の長さ、及び3次元空間上の分布を考慮して、主要な線分を判別して抽出する間引き処理を行っても良い。
【0088】
ステップS1004において、比較画像生成部303は、投影計算により、例えば、
図10の(B)で説明したように、複数の視点1、2、3、・・・から見た、隠線を除去したワイヤフレーム画像を作成する。
【0089】
ステップS1005において、比較画像生成部303は、例えば、
図10の(C)で説明したように、第1の線分角度テーブル1001を作成し、データベース(DB)に記憶する。
【0090】
ステップS1006において、比較画像生成部303は、ステップS1004で作成したワイヤフレーム画像をデータベースに記憶する。
【0091】
ステップS1011において、比較画像生成部303は、カメラ110からの入力画像(又は、画像取得部301からの対象物12の撮影画像)を取得する。
【0092】
ステップ1012において、比較画像生成部303は、入力画像(又は対象物12の撮影画像)から、直線成分を抽出して、例えば、
図10(E)で説明したように、線分画像を作成する。また、比較画像生成部303は、作成した線分画像に基づいて、例えば、
図10の(F)で説明したように、第2の線分角度テーブル1002を作成する。
【0093】
ステップS1013、S1014において、比較画像生成部303は、データベースから取得した第1の線分角度テーブル1001と、作成した第2の線分角度テーブル1002とを比較して、例えば、
図10の(G)で説明したように視点を推定する。
【0094】
ステップS1015、S1016において、比較画像生成部303は、データベースから、ステップS1006で記憶したワイヤフレーム画像を取得し、その中から、推定した視点のワイヤフレーム画像を取得する。
【0095】
ステップS1017において、比較画像生成部303は、ステップS1016で取得したワイヤフレーム画像V'に対して、アフィン変換Aを施すことにより、ステップS1012で作成した線分画像P'に最も近い画像が得られるアフィン変換Aを求める。
【0096】
ステップS1018において、比較画像生成部303は、例えば、基準となる視点情報Vと、基準となる視点からのアフィン変換Aで表される姿勢情報を、基準画像生成部304等に出力する。
【0097】
上記の処理により、比較画像生成部303は、深層学習モデルによらずに、対象物12の姿勢情報を取得することができる。
【0098】
(画像マッチング処理)
図12は、第2の実施形態に係る画像マッチング処理の例を示すフローチャートである。なお、
図12に示す処理のうち、ステップS501、S502、S505~S507の処理は、
図5で説明した第1の実施形態に係る画像マッチング処理と同様なので、ここでは説明を省略する。
【0099】
ステップS1201において、比較画像生成部303は、例えば、
図11に示すような姿勢情報の取得処理を実行する。
【0100】
ステップS1202において、比較画像生成部303は、対象物12の比較画像を生成する。第2の実施形態では、比較画像生成部303は、深層学習モデルを用いずに、例えば、
図6に示すような、対象物12の撮影画像620を比較画像としても良い。或いは、比較画像生成部303は、例えば、
図6に示すような、対象物12の撮影画像620に対して、様々な画像処理(例えば、背景除去、ノイズ除去等)を行うことにより、対象物12の比較画像を生成しても良い。
【0101】
上記の処理により、第2の実施形態によれば、画像処理装置100は、深層学習モデルによらずに、姿勢情報の取得処理、及び画像マッチング処理を実行することができる。
【0102】
別の一例として、画像処理装置100は、第1の実施形態に係る姿勢情報の取得処理に加えて、第2の実施形態に係る姿勢情報の取得処理を、同時、又は事前に行って結果を比較することにより、生成情報の取得精度を向上させるものであっても良い。
【0103】
以上、本発明の各実施形態によれば、所定のステージ上とは異なる場所で撮影した対象物12の撮影画像を用いて、3次元のCADモデルと対象物12とを比較できる画像処理装置100、画像処理システム1、及び画像処理方法等を提供することができる。
【0104】
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0105】
また、実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものに過ぎない。ある実施形態では、画像処理装置100は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。また、画像処理装置100の各要素は、1つの情報処理装置にまとめられていても良いし、複数の情報処理装置に分けられていても良い。
【0106】
また、
図3に示した画像処理装置100は、例えば、
図5、9、11、12に示した画像処理装置100の処理を、様々な組み合わせで共有するように構成できる。例えば、画像処理装置100が実行する処理のうち、少なくとも一部は、検査端末120が実行しても良い。また、画像処理装置100が実行する処理のうち、少なくとも一部は、例えば、外部のサーバ装置、又はクラウドサービス等が実行しても良い。
【符号の説明】
【0107】
1 画像処理システム
12 対象物
100 画像処理装置
110 カメラ
120 検査端末
301 画像取得部
304 基準画像生成部
305 画像マッチング部
306 判定部
410 情報取得部
411 第1の深層学習モデル
420 画像生成部
421 第2の深層学習モデル
620 撮影画像
640 基準画像
650 マッチング画像
【先行技術文献】
【特許文献】
【0108】