(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-30
(45)【発行日】2024-05-10
(54)【発明の名称】対象物員数検査用の学習モデル生成方法及びプログラム
(51)【国際特許分類】
G01N 21/88 20060101AFI20240501BHJP
G06M 11/00 20060101ALI20240501BHJP
G06T 7/00 20170101ALI20240501BHJP
【FI】
G01N21/88 J
G06M11/00 D
G06T7/00 350B
(21)【出願番号】P 2023509932
(86)(22)【出願日】2021-03-29
(86)【国際出願番号】 JP2021013359
(87)【国際公開番号】W WO2022208623
(87)【国際公開日】2022-10-06
【審査請求日】2023-08-04
(73)【特許権者】
【識別番号】000010076
【氏名又は名称】ヤマハ発動機株式会社
(74)【代理人】
【識別番号】100115381
【氏名又は名称】小谷 昌崇
(74)【代理人】
【識別番号】100127797
【氏名又は名称】平田 晴洋
(72)【発明者】
【氏名】駒池 国宗
【審査官】小野寺 麻美子
(56)【参考文献】
【文献】特開2020-080003(JP,A)
【文献】特開2019-200533(JP,A)
【文献】特開2020-126313(JP,A)
【文献】米国特許出願公開第2020/0043171(US,A1)
【文献】特開2019-191973(JP,A)
【文献】国際公開第2019/159440(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01N 21/84 - G01N 21/958
G06M 7/00 - G06M 15/00
G06T 1/00 - G06T 7/90
(57)【特許請求の範囲】
【請求項1】
容器内に収容される対象物の員数を自動検査する処理を行うための、機械学習に用いられる学習モデルの生成方法であって、前記学習モデルの生成装置に、
前記容器及び対象物の形状を画像で表現するモデルデータを入力するステップと、
前記モデルデータを用いて、複数個の対象物を任意に配置した単位配置体を複数体作成させると共に、前記容器に対応する容器エリア内に前記単位配置体を任意に配置することで、前記対象物を任意の密集度で収容している前記容器の形状画像データを作成させるステップと、
前記形状画像データに、現実の前記容器及び前記対象物の質感を与える処理を加え、前記学習モデルを構築する際に使用される教師画像データを作成させるステップと、
を実行させることを特徴とする対象物員数検査用の学習モデル生成方法。
【請求項2】
請求項1に記載の学習モデル生成方法において、
前記単位配置体は、前記容器エリアよりも小さい拘束エリアを予め設定し、任意数の前記対象物を前記拘束エリア内に任意に配置することにより作成される、対象物員数検査用の学習モデル生成方法。
【請求項3】
請求項2に記載の学習モデル生成方法において、
物理シミュレーションにより、前記拘束エリア内に前記任意数の対象物を自由落下させることにより、当該対象物を前記拘束エリア内に任意に配置する、対象物員数検査用の学習モデル生成方法。
【請求項4】
請求項2又は3に記載の学習モデル生成方法において、
前記形状画像データを作成させるステップは、
前記容器エリアと同等又は小さく、前記拘束エリアよりも大きいミックスエリアを設定し、前記ミックスエリア内に前記複数体の単位配置体を任意に配置するステップと、
前記単位配置体が配置された前記ミックスエリアを、前記容器エリア内の任意の位置に任意の方向で配置するステップと、を含む、対象物員数検査用の学習モデル生成方法。
【請求項5】
請求項1に記載の学習モデル生成方法において、
物理シミュレーションにより、前記複数体の単位配置体を、前記対象物の任意配置状態を維持できる落下開始位置から、前記容器エリア内に自由落下させることで、容器エリア内に前記単位配置体を任意に配置する、対象物員数検査用の学習モデル生成方法。
【請求項6】
請求項1~5のいずれか1項に記載の学習モデル生成方法において、
前記形状画像データにおける前記対象物の各々の配置を示す情報を、前記教師画像データに存在する前記対象物の配置を示す正解データとして扱い、
前記学習モデルの生成装置が備える記憶装置に、前記教師画像データと前記正解データとを関連付けて記憶させる、対象物員数検査用の学習モデル生成方法。
【請求項7】
請求項1~6のいずれか1項に記載の学習モデル生成方法において、
前記質感を与える処理は、前記対象物及び前記容器の撮像光学系の設定及びそのバラツキ範囲の設定、並びに、前記対象物及び前記容器の材質及びそのバラツキ範囲の設定を含む、物理ベースレンダリングにて実行される、対象物員数検査用の学習モデル生成方法。
【請求項8】
請求項1~7のいずれか1項に記載の学習モデル生成方法において、
前記対象物の員数の自動検査の際に実際に取得される前記対象物を収容した容器の実画像と、前記教師画像データとを対比し、
両者の類似度が所定の閾値よりも低い場合に、前記実画像の傾向に沿った教師画像データを追加作成して前記学習モデルを更新する、対象物員数検査用の学習モデル生成方法。
【請求項9】
請求項1~8のいずれか1項に記載の学習モデル生成方法において、
前記形状画像データを作成させるステップは、前記対象物以外の異物を、前記容器エリア内に配置するステップを含む、対象物員数検査用の学習モデル生成方法。
【請求項10】
容器内に収容される対象物の員数を自動検査する処理を行うための、機械学習に用いられる学習モデルを、所定の学習モデル生成装置に作成させるためのプログラムであって、
前記容器及び対象物の形状を画像で表現するモデルデータの入力を受け付けるステップと、
前記モデルデータを用いて、複数個の対象物を任意に配置した単位配置体を複数体作成させると共に、前記容器に対応する容器エリア内に前記単位配置体を任意に配置することで、前記対象物を任意の密集度で収容している前記容器の形状画像データを作成させるステップと、
前記形状画像データに、現実の前記容器及び前記対象物の質感を与える処理を加え、前記学習モデルを構築する際に使用される教師画像データを作成させるステップと、
を前記学習モデル生成装置に実行させることを特徴とする対象物員数検査用の学習モデル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象物の員数を自動検査する処理を行うための機械学習に使用される学習モデルの生成方法、及びそのプログラムに関する。
【背景技術】
【0002】
ロボット等によりトレイ(容器)に収容された部品(対象物)のピッキング等を行わせるに際し、当該トレイに収容されている部品の員数(個数)を確認する検査、或いは所要員数の部品が容器に収容されているか否かの検査が行われる場合がある。この場合、部品入りのトレイを撮像し、画像認識処理によって前記トレイ内の部品個数を自動的に特定する手法が採られることがある。前記画像認識を的確に行わせるために、多数の部品入りトレイの画像を教師画像データとして機械学習させ、検査用の学習モデルを作成することが考えられる。
【0003】
特許文献1には、部品入りトレイを実際に撮像した実画像をベースに、部品の位置、向きなどを異ならせて多数の教師画像データを作成し、機械学習を行わせる技術が開示されている。しかし、実画像において、各部品が認識可能に明瞭に映っているとは限らない。例えば、エッジ抽出処理によって部品を画像認識する場合、そのエッジが明瞭でなかったり、部品同士が重なっていたりすると、認識性能が低下する。従って、実画像をベースとして作成された教師画像データを用いて機械学習を行わせても、的確な学習モデルが得られないことがあった。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【0005】
本発明は、対象物の員数を検査する処理を行うための機械学習に使用される学習モデルを的確に作成することができる学習モデル生成方法を提供することを目的とする。
【0006】
本発明の一局面に係る対象物員数検査用の学習モデル生成方法は、容器内に収容される対象物の員数を自動検査する処理を行うための、機械学習に用いられる学習モデルの生成方法であって、前記学習モデルの生成装置に、前記容器及び対象物の形状を画像で表現するモデルデータを入力するステップと、前記モデルデータを用いて、複数個の対象物を任意に配置した単位配置体を複数体作成させると共に、前記容器に対応する容器エリア内に前記単位配置体を任意に配置することで、前記対象物を任意の密集度で収容している前記容器の形状画像データを作成させるステップと、前記形状画像状データに、現実の前記容器及び前記対象物の質感を与える処理を加え、前記学習モデルを構築する際に使用される教師画像データを作成させるステップと、を実行させることを特徴とする。
【0007】
本発明の他の局面に係る対象物員数検査用の学習モデル生成プログラムは、容器内に収容される対象物の員数を自動検査する処理を行うための、機械学習に用いられる学習モデルを、所定の学習モデル生成装置に作成させるためのプログラムであって、前記容器及び対象物の形状を画像で表現するモデルデータの入力を受け付けるステップと、前記モデルデータを用いて、複数個の対象物を任意に配置した単位配置体を複数体作成させると共に、前記容器に対応する容器エリア内に前記単位配置体を任意に配置することで、前記対象物を任意の密集度で収容している前記容器の形状画像データを作成させるステップと、前記形状画像状データに、現実の前記容器及び前記対象物の質感を与える処理を加え、前記学習モデルを構築する際に使用される教師画像データを作成させるステップと、を前記学習モデル生成装置に実行させることを特徴とする。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本発明の係る学習モデル生成方法が適用される、第1実施形態に係る員数自動検査システムの構成を示すブロック図である。
【
図2】
図2は、教師画像データ作成部の機能構成を示すブロック図である。
【
図3】
図3は、第1実施形態の教師画像データ作成処理を大略的に示すフローチャートである。
【
図4】
図4は、教師画像データ作成処理の実施状況を示す模式図である。
【
図5】
図5(A)、(B)は、
図3のステージ1における単位配置体の作成状況を示す図である。
【
図6】
図6(A)、(B)は、単位配置体の作成に際に行われる自由落下処理を示す図である。
【
図7】
図7(A)~(E)は、
図3のステージ2におけるミックスエリアへの単位配置体の配置処理の実施状況を示す図である。
【
図8】
図8は、ミックスエリアへの単位配置体の配置処理の他の例を示す図である。
【
図9】
図9(A)~(C)は、
図3のステージ3におけるは、ミックスエリアの容器エリアへの配置処理の実施状況を示す図である。
【
図10】
図10(A)~(E)は、教師画像データの具体例を示す図である。
【
図11】
図11は、第1実施形態の教師画像データ作成処理を示すフローチャートである。
【
図12】
図12は、第2実施形態に係る員数自動検査システムの構成を示すブロック図である。
【
図13】
図13(A)及び(B)は、合成教師画像と実画像の類似度の判定状況を示す図である。
【
図14】
図14は、第3実施形態に係る教師画像データ作成処理の実施状況を示す模式図である。
【
図15】
図15(A)及び(B)は、第4実施形態における単位配置体の配置処理の実施状況を示す図である。
【
図16】
図16は、第4実施形態の教師画像データ作成処理を示すフローチャートである。
【
図17】
図17(A)~(E)は、実画像に基づき教師画像データを作成する場合の不具合を説明するための図である。
【発明を実施するための形態】
【0009】
以下、図面に基づいて、本発明に係る対象物員数検査用の学習モデル生成方法の実施形態について詳細に説明する。本発明において作成する学習モデルは、容器に収容されている対象物の員数(個数)を把握する検査、或いは、容器に所要の員数の対象物が収容されているか否かの検査等を、所定の処理装置に画像認識処理によって自動的に実行させる際に用いられる。容器に多様な配置形態で収容される対象物の画像を教師画像データとして機械学習させることで、員数検査用の学習モデルを作成する。本発明では、教師画像として、対象物を収容した容器の実際の画像(実画像)を用いるのではなく、CADデータ等の形状画像データに基づいて作成される合成画像を用いる。
【0010】
本発明の検査対象物については特に制限はなく、撮像された画像において個体として認識可能な物体であれば検査対象物となり得る。容器についても特に制限はなく、所要数の対象物を収容可能であって、収容している対象物の全てを撮像可能な開口を有する容器であれば良い。対象物としては、機械部品や電子部品等の部品、小サイズの完成品、穀類、果実、野菜、根菜等の農産物、加工食品などを例示することができる。容器としては、上面開口の収容箱、トレイ、平皿、コンテナなどを例示することができる。
【0011】
[第1実施形態/員数自動検査システムの構成]
図1は、本発明に係る学習モデル生成方法が適用される、第1実施形態に係る員数自動検査システム1の構成を示すブロック図である。ここでは、部品トレイ等の容器Tに収容されている部品C(対象物)の個数を把握する検査を行う員数自動検査システム1を例示する。検査後、容器Tの部品Cは、例えばロボットハンドでピッキングされる。
【0012】
員数自動検査システム1は、学習モデル生成装置10、検査カメラ14、検査処理部15及び検査表示部16を備える。学習モデル生成装置10は、部品Cを様々な配置態様で収容した容器Tの合成画像を教師画像データとして用い、所定の機械学習アルゴリズムによる学習を実行し、学習モデルを作成する。検査カメラ14は、員数検査の対象となる部品Cを収容した容器Tの実画像を撮像する。
【0013】
検査処理部15は、検査カメラ14が撮像した実画像に、学習モデル生成装置10が作成した学習モデルを適用して、当該実画像において容器Tに収容されている部品Cの個数を検出する。検査処理部15は、画像処理部151及び員数認識部152を含む。画像処理部151は、検査カメラ14が撮像した実画像データに、コントラストや明るさの補正処理、ノイズ除去処理、拡大・縮小処理、エッジ強調処理、トリミング処理等の、必要な画像処理を施す。特段の画像処理を施さない場合は、画像処理部151を省いても良い。員数認識部152は、画像処理後の前記実画像データに前記学習モデルを適用して、当該実画像データにおいて部品Cと認識された個数を検出する。検査表示部16は、検査処理部15が認識した部品Cの個数、或いは前記個数に基づく合否判定結果等を表示する。
【0014】
学習モデル生成装置10は、教師画像データ作成部11、学習処理部12及び学習モデル記憶部13を備える。教師画像データ作成部11は、学習素材となる多種多様な教師画像データを、画像合成により作成する。学習処理部12は、教師画像データ作成部11が作成した多数の教師画像データを用いて、機械学習アルゴリズムにより教師あり学習を実行し、学習モデルを作成する。機械学習アルゴリズムとしては、ニューラルネットワークを用いた機械学習であるCNN(Convolution Neural Network)などのディープラーニングを用いることができる。学習モデル記憶部13は、学習処理部12が作成した学習モデルを記憶する。
【0015】
図2は、教師画像データ作成部11の機能構成を示すブロック図である。教師画像データ作成部11は、処理装置2、データ入力部26、操作部27及び表示部28を含む。例えば、処理装置2はパーソナルコンピュータの本体部、操作部27及び表示部28は前記パーソナルコンピュータのキーボード及びモニタである。前記パーソナルコンピュータにインストールされるソフトウェアが、本発明に係る対象物員数検査用の学習モデル生成プログラムに相当する。
【0016】
データ入力部26は、合成画像を作成する部品C及び容器Tの三次元形状を画像で表現するモデルデータを、処理装置2に入力する。例えばデータ入力部26は、三次元CADデータを作成する他のコンピュータ装置、或いは前記三次元CADデータを記憶しているサーバ装置等である。操作部27は、教師画像データとなる合成画像の作成に際して、処理装置2に対して必要な操作をオペレータから受け付ける。表示部28は、作成される合成画像の表示等を行う。
【0017】
処理装置2は、機能的に、拘束エリア設定部21、単位配置体作成部22、部品配置画像作成部23、レンダリング部24及びデータ記憶部25を備えている。拘束エリア設定部21は、モデルデータで作成された任意数の部品Cを収容する単位領域となる拘束エリアを作成する。単位配置体作成部22は、物理シミュレーションにより、前記拘束エリアに任意数の部品Cを自由落下させる処理を実行する。この処理により、前記拘束エリア内に任意数の部品Cが任意に配置された単位配置体3(
図4)が作成される。
【0018】
部品配置画像作成部23は、容器Tに対応する容器エリア内に単位配置体3を任意に配置することで、部品Cを任意の密集度で収容している容器Tの形状画像データを作成する。レンダリング部24は、前記形状画像データに、現実の容器T及び部品Cの質感を与える処理を加えた合成画像を作成する。この合成画像のデータは、学習処理部12が学習モデルを構築する際に使用される教師画像データとなる。データ記憶部25は、前記形状画像データにおける部品Cの各々の配置を示す情報を、前記教師画像データに存在する部品Cの配置を示す正解データとして記憶する。
【0019】
[教師画像データ作成の全体的な流れ]
図3は、第1実施形態の教師画像データ作成処理を大略的に示すフローチャート、
図4は、前記教師画像データ作成処理の実施状況を示す模式図である。本実施形態の教師画像データ作成処理は、複数体の単位配置体3の作成処理(ステージ1)、複数体の単位配置体3のミックスエリア4への配置処理(ステージ2)、及び、ミックスエリア4の容器エリアへの配置及び質感付与処理、すなわち教師画像5への仕上げ処理(ステージ3)の、三段階の処理が行われる。
【0020】
ステージ1で作成される単位配置体3は、三次元CADデータで作成された部品CAと、その配置領域を制限する拘束エリア31とからなる。ステージ1では、任意数の部品CAが異なる態様で配置された複数体の単位配置体3が作成される。具体的には、拘束エリア31のサイズ、部品CAの配置個数、及び部品CAの配置方向が異なる複数体の単位配置体3が作成される。但し、拘束エリア31は、容器Tに対応する容器エリアTAよりも小さいサイズに設定される。
【0021】
図4では、タイプA~Dの4種の単位配置体3A~3Dが、各々複数体例示されている。タイプAの単位配置体3Aは、所定サイズを有する拘束エリア31Aに2個の部品CAがランダムに配置されている。タイプBの単位配置体3Bは、タイプAと同サイズの拘束エリア31Aに3個の部品CAがランダムに配置されている。つまり、単位配置体3Bは、単位配置体3Aよりも高い密集度で部品CAが配置されている。タイプCの単位配置体3Cは、拘束エリア31Aよりも大きい拘束エリア31Bに4個の部品CAがランダムに配置されている。タイプDの単位配置体3Dは、拘束エリア31Bよりもさらに大きい拘束エリア31Cに、5個の部品CAがランダムに配置されている。
【0022】
ステージ2では、ステージ1で作成された単位配置体3を任意に組み合わせてミックスエリア4に配置し、部品CAの配置の多様性を創出する。ミックスエリア4は、容器エリアTAと同等又は小さく、拘束エリア31よりも大きいサイズに設定される。単位配置体3A~3Dでは、ミックスエリア4内における単位配置体3の配置数、配置位置、配置方向、粗密状態等を異ならせた複数のミックスエリア4が作成される。
【0023】
図4では、配置パターンA~Cの3種のミックスエリア4A~4Cが例示されている。配置パターンAのミックスエリア4Aには、タイプA、Bの単位配置体3A、3Bを組み合わせにより、部品CAの配置パターンが形成されている。配置パターンBのミックスエリア4Bには、タイプA、B、Cの単位配置体3A、3B、3Cの組み合わせにより、部品CAの配置パターンが形成されている。配置パターンCのミックスエリア4Cには、タイプB、C、Dの単位配置体3B、3C、3Dの組み合わせにより、の配置パターンが形成されている。このようなミックスエリア4の形成手法を取ることで、ミックスエリア4内に部品CAがまんべんなく分散配置された合成画像データだけでなく、部品CAが偏って配置される合成画像データも作成できる。従って、多様な密集度乃至は粗密度合いで部品CAが配置された合成画像データを作成できる。
【0024】
ステージ3では、ステージ2で作成したミックスエリア4を、容器エリアTA内の任意の位置に任意の方向で配置して形状画像データを作成する。さらに、前記形状画像データにレンダリング処理を施し、実際の部品C及び容器Tにマッチする質感を与える。ステージ3の処理により、部品Cを収容した容器Tを撮像した実画像と遜色のない画像からなる、教師画像5のデータが生成される。
【0025】
図4では、2種の教師画像5A、5Bが例示されている。教師画像5Aは、配置パターンAのミックスエリア4Aを容器エリアTAの左上寄りに配置して作成された形状画像データに、レンダリング処理により質感を与えた画像である。教師画像5Bは、配置パターンBのミックスエリア4Bを容器エリアTAの右下寄りに配置して作成された形状画像データに、レンダリング処理を施した画像である。前記形状画像データに含まれている部品CAは、教師画像5A、5Bにおいては、実際の質感を有する部品CARに加工されている。容器エリアTAも、実際の容器Tが持つ質感が与えられている。
【0026】
[各ステージにおける処理の詳細]
以下、上述のステージ1~3において実行される処理の具体例を説明する。これらの処理に際しては、物理シミュレータが使用される。
【0027】
<ステージ1>
図5(A)、(B)は、
図3のステージ1における単位配置体3の作成状況を示す図である。拘束エリア31は、物理シミュレータ上では拘束容器32として表現される。拘束容器32は、XY方向の4つの側辺321と、側辺321よりも下側に配置される底壁322と、側辺321と底壁322との間のテーパ部323とを有している。拘束エリア31のXY方向のサイズは、例えば次式で自動設定又はマニュアル設定することができる。
X=部品CAの長辺方向サイズ×拡張係数β
Y=部品CAの短辺方向サイズ×部品CAの個数×拡張係数β
【0028】
上式の拡張係数βは、拘束エリア31における単位面積当たりの部品CAの密集度を設定する係数となる。拡張係数βは、例えば1.0~2.0の範囲で、0.1刻みで設定することができる。部品CAについては、実際野部品Cの公差を反映させるものとする。なお、正方形の部品CAの場合は、一辺のサイズに拡張係数βを乗じることで、XY方向のサイズを定めることができる。また、円形の部品CAの場合は、直径のサイズに拡張係数βを乗じることで、XY方向のサイズを定めることができる。
【0029】
単位配置体3は、任意数の部品CAを拘束エリア31内に任意に配置することによって作成される。この任意配置の手法として本実施形態では、物理シミュレーションにより、拘束エリア31(拘束容器32)内に任意数の部品CAを自由落下させる手法が採られる。自由落下により部品CAの配置状態を作るのは、部品CAの物理現象に反するような配置状態が作られてしまうのを防止するためである。但し、拘束エリア31の設定により、自由落下後の部品CAの無秩序な転動が制限され、部品CAが任意配置される範囲が拘束エリア31内に規制される。このため、単位面積当たりの部品CAの配置密度を同一として配置姿勢の異なる単位配置体3の群(例えば
図4の単位配置体3Aの群)の作成や、配置密度を異ならせると共に配置姿勢の異なる単位配置体3の群(例えば単位配置体3Aと3Bの群)の作成が行い易くなる。また、単位配置体3の枠が定型化されるので、その後のミックスエリア4への配置が行い易くなる。
【0030】
ある高さ、姿勢を持った部品CAを拘束容器32に自由落下させると、拘束容器32内で部品CAは様々な姿勢を取る。
図5(A)は、2個の部品CAを拘束容器32に自由落下させた例である。この例では、2個の部品CAが拘束容器32の底壁322上に収まっている。
図5(B)は、同じサイズの拘束容器32に3個の部品CAを自由落下させた例である。この例では、一部の部品CAがテーパ部323に差し掛かり、不自然な状態となっている。自然落下後、物理シミュレータ上で拘束容器32が除去される。
【0031】
図5(A)及び(B)の右図は、拘束容器32を除去後における拘束エリア31内の部品CAの配置を示している。この拘束エリア31内に含まれる複数の部品CAが、一つの単位配置体3の部品群となる。
図5(A)の拘束エリア31では、拘束容器32の除去前後で部品CAの姿勢に変更はない。一方、
図5(B)の拘束エリア31では、拘束容器32の除去前後で一部の部品CAの姿勢が変わっている。このように、部品姿勢が変わることがあるので、拘束容器32の除去後、所定の時間を待機時間として定め、部品CAの位置や姿勢に変動の安定を待つ。前記待機時間の経過後、拘束エリア31のセンターを当該単位配置体3における部品群センターGCとし、その部品群センターGCに対する各部品CAの相対的な位置及び姿勢のデータを保存する。
【0032】
図6(A)、(B)は、部品CAの自由落下の実行例を示す模式図である。一つの拘束容器32に対して複数の部品CAの自由落下を開始させるときの状態は、複数の部品CA間で同一であっても、異なっていても良い。
図6(A)は、二つの部品C11、C12を同一の高さの同位置から、同一の回転状態及び姿勢で自由落下させる例を示している。なお、部品C11、C12の前記回転は、Z軸周りの回転であり、前記姿勢は、X軸及び/又はY軸回りの回転である。
【0033】
図6(A)の(A1)図に示す部品C11は、拘束容器32(拘束エリア31)の平面高さである基準高さh0よりもΔh1だけ高い落下開始高さh1から、部品群センターGCより鉛直上方に延びる落下軸Rに沿って自由落下されている。部品C11には、当該部品C11の長手方向がX軸に沿うようにZ軸周りの回転が与えられている一方、X軸及びY軸回りの回転は与えられていない。(A2)図に示す部品C12は、部品C11と同一の落下開始高さh1から、同一の回転及び姿勢で、落下軸Rに沿って自由落下されている。拘束容器32上では、部品C11の上に部品C12が乗り上げた状態となっている。
【0034】
図6(B)は、二つの部品C13、C14を、同一の落下開始高さであるものの、異なる位置から、異なる姿勢で自由落下させる例を示している。
図6(B)の(B1)図に示す部品C13は、落下軸Rに対してシフトした位置から、先述の部品C11と同じ回転状態及び姿勢で拘束容器32に自由落下されている。一方、(B2)図に示す部品C14は、部品C13とは異なりY軸周りに回転された姿勢で、部品C13とは異なる位置から拘束容器32に自由落下されている。拘束容器32上では、部品C13と部品C14とが位置ズレして並んだ状態となっている。
【0035】
以上の通り、本実施形態では物理シミュレーションによる部品CAの自由落下の手法を用いるので、任意数の部品CAが拘束エリア31へ任意配置された単位配置体3を多数作成するに際して、部品配置状態に特定の偏りが生じ難くなる。従って、拘束エリア31内で様々な配置姿勢を取る単位配置体3を作成でき、部品CAの多様な密集度乃至は粗密度合いを有する形状画像データを作成することできる。
【0036】
<ステージ2>
図7(A)~(E)は、
図3のステージ2におけるミックスエリア4への単位配置体3の配置処理の実施状況を示す図である。物理シミュレータ上でミックスエリア4は、容器エリアTAと同等若しくは小さく設定される。ミックスエリア4のサイズは、例えば次式で自動設定させることができる。
ミックスエリア4のサイズ=容器エリアTAのサイズ×縮小係数α
【0037】
縮小係数αは、容器エリアTA内で複数体の単位配置体3を配置できるサイズにミックスエリア4を設定するための係数である。例えば、容器エリアTAはXYの辺を有する矩形のエリアである場合、ミックスエリア4は、そのXYの辺長に縮小係数αを乗じたXYの辺長を有するサイズに設定される。縮小係数αは、例えば0.8~1.0の範囲で設定することができる。
【0038】
ステージ1において作成された複数体の単位配置体3が、ミックスエリア4内に任意に配置される。
図7(A)では、4つの単位配置体3がミックスエリア4内に配置されている例を示している。これら4つの単位配置体3を、それぞれ部品群G1、G2、G3、G4と呼ぶ。部品群G1~G4の配置は、部品群センターGCを基準として決定される。先ず、部品群G1の部品群センターGCのミックスエリア4内における配置座標を任意に定めると共に、部品群センターGC回りに任意に回転させることで、部品群G1の配置を定める。部品群G1の配置は、部品CAがミックスエリア4からはみ出ないように設定される。但し、部品群G1の配置枠である拘束エリア31は、ミックスエリア4からはみ出ても良い。
【0039】
次いで、部品群G2がミックスエリア4内に配置される。上記と同様に、部品群G2の部品群センターGCのミックスエリア4内における配置座標と回転とを任意に設定する。その後、部品群G2の部品CAが先配置した部品群G1の部品CAと干渉しているか否かを確認する干渉チェックが行われる。単位配置体3については、
図5(B)に例示したように、部品CA同士の干渉配置を想定しているので、ミックスエリア4への単位配置体3の配置段階では、処理の簡素化のため部品群G1~G4同士の干渉を発生させない配置とする。
【0040】
前記干渉チェックの結果、干渉が発生していなければ、続いて部品群G3がミックスエリア4内に配置される。引き続き、前記干渉チェックの後、部品群G4がミックスエリア4内に配置される。
図7(A)では、部品群G1~G4の部品CA同士が互いに干渉することなく配置された例を示している。なお、拘束エリア31同士は、互いに干渉していても構わない。
【0041】
図7(B)は、ミックスエリア4内に配置された部品群G1~G4の部品CAの一部に干渉が生じている例を示している。具体的には、部品群G3と部品群G4の部品CA同士に重なりが生じている。このような干渉が生じている場合、下記(a)又は(b)の変更処理を行う。
(a)干渉を回避できるよう、部品群G3又は部品群G4のいずれかの部品群センターGCの配置座標をシフトさせる処理、若しくは、部品群センターGC回りに回転させる処理を行う。
(b)部品群G3又は部品群G4の部品群センターGCの配置座標をキャンセルして、新たな配置座標及び回転を設定する処理を行う。
【0042】
図7(C)は、上記(a)の変更処理の例を示しており、部品群G3の配置座標を右斜め上方向にシフトさせることで、部品群G3及び部品群G4の干渉を回避している。
図7(C)の例に代えて、部品群G4の配置座標をシフトさせる、若しくは、部品群G3又は部品群G4を部品群センターGC回りに回転させて、前記干渉を回避しても良い。
図7(D)は、上記(b)の変更処理の例を示す。
図7(B)で設定された部品群G3の配置座標がキャンセルされ、新たな部品群G3の配置座標及び回転が設定されている。もちろん、部品群G4の配置座標をキャンセルし、新たな部品群G4の配置座標及び回転を設定しても良い。以上の手順により、ステージ1で作成された部品群G1~G4各々の部品配置関係を維持したまま、ミックスエリア4内に多様に部品CAを配置することができる。
【0043】
続いて、
図7(E)に示すように、ミックスエリア4において部品CAが配置されていない領域をデータ上で除去する処理が行われる。これにより、ミックスエリア4内に配置された部品群G1~G4の、容器エリアTAへの配置自由度を高めるこができる。
図7(E)では、部品群G1~G4を取り囲むことができる最小矩形エリア(最外形)をミックス部品群エリア41として定め、このエリア41より外側の領域を削除している例を示している。なお、最外形より外側の領域を除く処理の形態は、最小矩形エリアの設定に限らず、任意の除去手法を採用しても良い。また、除去作業自体を省き、ミックスエリア4をそのまま用いても良い。
【0044】
その後、ミックス部品群エリア41内における部品群G1~G4の配置状態が保存される。具体的には、ミックス部品群エリア41の中心座標であるミックス部品群センターMGCを基準座標として、部品群G1~G4の各部品群センターGCの配置座標と回転角とが記憶装置に格納される。格納されるデータは、ミックス部品群センターMGCを基準とするx方向及びy方向の座標値、及び、部品群センターGCのz軸回りの回転角θを示す、「xn、yn、θn」の値である。
【0045】
図8は、ミックスエリア4への単位配置体3の配置処理の他の例を示す図である。
図7(A)~(E)の例では、ミックスエリア4の全域を単位配置体3の配置可能領域として使用する例を示した。これに代えて、
図8では、ミックスエリア4内に、単位配置体3を配置させない配置不可領域42が設定される例を示している。この例の場合、単位配置体3の部品CA同士の干渉だけでなく、部品CAと配置不可領域42との干渉が回避されるように、単位配置体3がミックスエリア4内の配置可能領域に配置される。実際の部品Cの補填作業において、部品Cが容器Tの縁付近に偏って配置される場合も想定される。このような配置を想定した教師画像データの作成に、配置不可領域42の設定は寄与する。
【0046】
<ステージ3>
ステージ3では、ステージ2で作成したミックス部品群エリア41又はミックスエリア4を、容器エリアTA内に配置する処理が実行される。
図9(A)~(C)は、ミックス部品群エリア41の容器エリアTAへの配置処理の実施状況を示す図である。ミックス部品群エリア41は、ミックス部品群センターMGCの配置座標(xn、yn)と、ミックス部品群センターMGC軸回りの回転角(θn)とを任意に設定することによって、容器エリアTAに配置される。但し、配置座標の設定範囲は、容器エリアTAとミックス部品群エリア41との差分の範囲である。
【0047】
図9(A)は、ミックス部品群エリア41が容器エリアTAの左上寄りに配置されている例である。
図9(B)は、ミックス部品群エリア41が容器エリアTAの右下寄りに配置されている例である。容器エリアTAには、側壁領域TAWと、実際に部品が載置される底壁領域TABとが設定されている。
図9(A)及び(B)のミックス部品群エリア41は、いずれも底壁領域TAB内に収まっており、配置要件を満たしている例である(配置OK)。
【0048】
一方、
図9(C)は、配置要件を満たさない例である(配置NG)。ミックス部品群エリア41のミックス部品群センターMGCの配置座標は、容器エリアTAの中心である。しかし、
図9(A)のミックス部品群エリア41に対して、
図9(C)の例ではセンターMGC軸回りに時計方向に90度回転されているため、部品群G1及びG4が側壁領域TAWに差し掛かっている。このような配置となった場合、ミックス部品群エリア41の回転角を変更する、或いはミックス部品群センターMGCの配置座標及び回転角を再設定する処理が実行される。
【0049】
ステージ3では、続いてレンダリングにより容器エリアTA及び部品CAに質感を与える処理が実行される。この処理には、物理ベースレンダリングツールを用いることが望ましい。レンダリング処理の一つは、部品CAが配置された容器エリアTAを撮像する光学系の設定である。この撮像光学系の設定は、検査カメラ14(
図1)で実際に部品Cが配置された容器エリアTAを撮像するケースを想定して行われる。つまり、検査カメラ14を想定した疑似カメラ、及び検査室の環境を想定した疑似照明を設定する。
【0050】
疑似カメラについては、露出(絞り、シャッター速度及びISO感度)、被写界深度、画角、カメラ配置角などのパラメータが設定される。実際の検査カメラ14による撮像では、合焦度が異なる画像や、撮像方向の変動した画像等が撮像され、画一的な画像を取得できないケースが想定される。このため、上記パラメータのうち、変動が予想され画質に影響を与えるパラメータについてはバラツキ範囲を設定する。但し、あくまで物理現象に即した範囲でのバラツキ値である。これにより、検査カメラ14にて取得される可能性のある画像をカバーすることができ、実情に即した教師画像データを作成できる。
【0051】
疑似照明については、使用する照明のタイプ、明るさ、色合い、照明方向、検査室の反射条件などのパラメータが設定される。照明条件も、種々の要因で変動し得る。例えば、作業員が検査カメラ14による撮像位置付近を通過した際の影により、一時的に照明条件が変動する。このため、上記パラメータのうち、変動が予想されるパラメータについては、バラツキ範囲を設定する。
【0052】
レンダリング処理の他の一つは、部品CA及び容器エリアTAの材質設定である。例えば、実際の部品Cが金属ボルトである場合、金属光沢、ねじ部分の凹凸による反射感、ざらつき感などのパラメータの設定が行われる。部品CAについても、実際の容器Tの材質、色、表面光沢などのパラメータの設定が行われる。これら材質の設定が、部品CA及び容器エリアTAの質感調整ともなる。また、実際の部品C及び容器Tの質感にはバラツキが有るので、材質パラメータにバラツキ範囲を設定する。
【0053】
上述のようにして、部品CA及び容器エリアTAのレンダリング設定が完了したら、物理ベースレンダリングを実行して教師画像5を作成し、その教師画像データを保存する。
図10(A)~(E)は、教師画像5の具体例を示す図である。質感が付与された容器エリアTAの底壁領域TABに、質感が付与された複数の部品CARが載置された合成画像からなる教師画像5が、部品数や配置状態を異ならせて多数作成される。
【0054】
図10(A)は、部品CARが容器エリアTAの底壁領域TABに満遍なく配置された合成画像である。
図10(B)は、部品CARが側壁領域TAWに沿うように配置された合成画像である。
図10(C)は、底壁領域TABの約半面に密集して部品CARが配置された合成画像である。
図10(D)及び(E)は、部品CARのペアが、底壁領域TABに密接して配置された合成画像である。単位配置体3及びミックスエリア4を作成して部品配置を多様化した上で、物理ベースレンダリングを実行しているので、物理現象に即し且つ部品配置のバリエーションに富んだ教師画像5を生成することができる。
【0055】
[教師画像データ作成処理のフロー]
図11は、
図2に示す教師画像データ作成部11が実行する、第1実施形態に係る教師画像データ作成処理を示すフローチャートである。教師画像データ作成部11の処理装置2は、教師画像5となる合成画像を作成する各種の部品C及び容器Tの三次元形状を画像で表現するモデルデータの入力を、データ入力部26から受け付ける(ステップS1)。前記モデルデータは、例えばCADファイルの形式で処理装置2に入力される。
【0056】
続いて、単位配置体作成部22が、物理シミュレータで作成する単位配置体3(
図4)を構成する部品CAの種別及び員数を選定する(ステップS2)。一方、拘束エリア設定部21は、上述した通り、選定された部品CAの長辺・短辺方向サイズ及び拡張係数βを用いて、所要のXY方向のサイズを備えた拘束エリア31を設定する。さらに、拘束エリア設定部21は、当該拘束エリア31に基づいて、物理シミュレータ上に拘束容器32(
図5)を生成する(ステップS3)。
【0057】
次に単位配置体作成部22は、ステップS3で生成した拘束容器32に、ステップS2で選定した部品CAの自由落下条件を設定する(ステップS4)。設定されるのは、部品CAの自由落下開始位置及び部品姿勢である。自由落下開始位置は、XY平面上の位置を示すXY座標位置と、落下開始高さh1(
図6(A))に相当するZ座標位置とで設定される。部品姿勢は、XYZの各軸回りの回転角にて設定される。その後、単位配置体作成部22は、物理シミュレーションにより、設定された自由落下条件にて、拘束容器32内に員数分の部品CAを自由落下させる(ステップS5)。
【0058】
自由落下させた部品CAの姿勢安定後、単位配置体作成部22は、拘束容器32の除去処理を行い、さらに前記除去処理後、所定の待機時間の経過を待つ。部品CAの変動がなくなった時点で、一つの単位配置体3の作成が完了する。その後、単位配置体作成部22は、作成した単位配置体3の部品群センターGCに対する各部品CAの相対的なXY位置座標及び各軸回りの回転角のデータを、データ記憶部25に保存する(ステップS6)。以上のような単位配置体3の作成処理が、所要の単位配置体3の体数分だけ実行される。
【0059】
次に、部品配置画像作成部23は、ミックスエリア4(
図4)に配置する単位配置体3及びその個数を設定する(ステップS7)。その後、部品配置画像作成部23は、物理シミュレータ上にミックスエリア4を設定する(ステップS8)。ミックスエリア4のサイズは、上述の通り、容器エリアTAのサイズと縮小係数αとを用いて設定される。
【0060】
続いて部品配置画像作成部23は、
図7に例示したように、ミックスエリア4に単位配置体3を任意の位置及び回転角で配置する処理を実行する(ステップS9)。この処理の際、部品配置画像作成部23は、各単位配置体3に対応する部品群G1~G4同士の干渉チェックを行う。前記干渉が生じている場合、部品配置画像作成部23は、その干渉を解消するように、部品群G1~G4のいずれかのシフト又は再配置を実行する(
図7(C)、(D))。
【0061】
その後、部品配置画像作成部23は、ミックスエリア4において部品CAが配置されていない領域を、各部品の最外形から判断して除くことで、ミックス部品群エリア41(
図7(E))が設定される(ステップS10)。そして、部品配置画像作成部23は、ミックス部品群センターMGCを基準座標として、部品群G1~G4の各部品群センターGCの配置座標と回転角とをデータ記憶部25に格納する(ステップS11)。
【0062】
さらに、部品配置画像作成部23は、
図9に例示したように、容器エリアTA内にミックス部品群エリア41をランダムに配置する処理を実行する(ステップS12)。部品配置画像作成部23は、ミックス部品群エリア41の配置後における、ミックス部品群センターMGCの配置座標(xn、yn)及びミックス部品群センターMGC軸回りの回転角(θn)も、データ記憶部25に格納する。格納された配置情報は、教師画像データに存在する部品CAの配置を示す正解データとなる。部品配置画像作成部23は、教師画像データの識別番号とその正解データとを関連付けてデータ記憶部25に記憶させる。
【0063】
続いて、レンダリング部24が、物理ベースレンダリングにより容器エリアTA及び部品CAに質感を付与する処理を実行する。具体的には、レンダリング部24は、部品CAが配置された容器エリアTAを撮像する光学系(カメラ及び照明)の設定、及びそのバラツキ範囲を設定する(ステップS13)。また、レンダリング部24は、部品CA及び容器エリアTAの材質の設定、及びそのバラツキ範囲を設定する(ステップS14)。
【0064】
しかる後、レンダリング部24は、物理ベースレンダリング処理を実行し、教師画像5となる合成画像データ(教師画像データ)を生成する(ステップS15)。作成された教師画像データは、データ記憶部25に保存される(ステップS16)。データ記憶部25の教師画像データは、必要に応じて学習モデル生成装置10に提供される。
【0065】
[第2実施形態]
図12は、第2実施形態に係る員数自動検査システム1Aの構成を示すブロック図である。員数自動検査システム1Aは、第1実施形態の員数自動検査システム1に比較して、モデル更新処理部17が追加されている点で相違する。モデル更新処理部17は、学習モデル記憶部13に格納されている学習モデルの作成元となった教師画像と、最近の員数検査において検査カメラ14が撮像している実画像とを比較する。そして、両画像の傾向に齟齬が生じている場合、モデル更新処理部17は学習モデル生成装置10に学習モデルの更新処理を実行させる。
【0066】
作業者(或いはロボット)によって、部品Cを容器Tに載置する傾向が変わる場合がある。例えば、先行の作業者Aが、部品Cを容器Tに満遍なく分散して載置する作業傾向があったとする。一方、同作業を引き継いだ作業者Bが、部品Cを容器Tの偏った位置に密集状態にして載置する作業傾向があったとする。現状で学習モデル記憶部13に格納されている学習モデルが、作業者Aの作業下では員数判定精度が高かったとしても、作業傾向が異なる作業者Bの作業下でも員数判定精度が高いとは限らない。このような事象を想定して、モデル更新処理部17は、定期的に学習モデルの精度を判定する。
【0067】
モデル更新処理部17は、機能的に画像類似度評価部171及び再学習判定部172を備えている。画像類似度評価部171は、員数自動検査の際に実際に検査カメラ14によって取得されている部品Cを収容した容器Tの実画像と、教師画像データ作成部11によって作成された教師画像5と比較し、両者の画像類似度を評価する。画像類似度は、例えばテンプレートマッチング等の手法で評価することができ、例えばSWD(Sliced Wasserstein Distance)にて評価することができる。
【0068】
再学習判定部172は、画像類似度評価部171が評価結果に基づいて、学習モデルの更新、すなわち教師画像データを用いた再学習の必要性を判定する。再学習判定部172は、画像類似度が所定の閾値よりも低い場合に、現状で取得されている実画像の傾向に沿った教師画像データを追加作成して学習モデルを更新するよう、学習モデル生成装置10に指示を与える。
【0069】
図13(A)及び(B)は、合成教師画像と実画像の類似度の判定状況を示す図である。
図13(A)には、5種の合成教師画像T1~T5が例示されている。合成教師画像T1~T5は、
図10(A)~(E)に例示した教師画像と同じである。
図13(B)の左側の実画像AD1は、部品Cが比較的分散して容器Tに収容されている。一方、右側の実画像AD2は、部品Cが中央付近に密集して容器Tに収容されている。
【0070】
合成教師画像T1~T5のうち、実画像AD1に最も類似度が高いのは合成教師画像T1であり、次に類似度が高いのは合成教師画像T2である。これに対し、合成教師画像T3、T4、T5は、実画像AD1に対して類似度が低い。一方、実画像AD2に最も類似度が高いのは合成教師画像T3であり、次に類似度が高いのは合成教師画像T4、T5である。これに対し、合成教師画像T1、T2は、実画像AD2に対して類似度が低い。
【0071】
実際の員数検査で取得されている画像が実画像AD1の傾向である場合、合成教師画像T1、T2に示すような部品分散型の教師画像をより多く学習させた方が、学習モデルの性能が向上する。逆に、取得画像が実画像AD2の傾向である場合は、合成教師画像T3~T5に示すような密集型の教師画像をより多く学習させた方が、学習モデルの性能が向上する。
【0072】
例えば、検査カメラ14が撮像している画像の傾向が実画像AD1から実画像AD2に変化した場合、モデル更新処理部17は、合成教師画像T3~T5、特にT3の傾向に沿った合成画像のバリエーションを多数作成して再学習し、学習モデルを更新するよう学習モデル生成装置10に指示を与える。以上の第2実施形態によれば、部品員数の自動検査を実際に行っていくうちに、教師画像データが実画像とかけ離れる傾向が生じたような場合に、学習モデルを実情に沿うように更新させてその性能を高めることができる。
【0073】
[第3実施形態]
図14は、第3実施形態に係る教師画像データ作成処理の実施状況を示す模式図である。第3実施形態では、本来の部品CA以外の異物を交えて教師画像データを作成する例を示す。これにより、員数自動検査システム1に、員数検査だけでなく、異物の有無検査機能を付加することができる。
【0074】
第3実施形態では、
図3のステージ1の段階で、実際の異物を模擬して三次元データにて作成された異物61が、教師画像データ作成部11によって単位配置体3と共に作成される。異物61としては、単位配置体3の部品CAが収容される容器Tに、実際に混入する可能性のある他種の部品を作成することが望ましい。
図14では、物理シミュレータにより、一つの異物61を含む異物ブロック6が複数作成されている例を示している。
【0075】
ステージ2のミックスエリア4への配置ステップでは、複数体の単位配置体3と共に、異物ブロック6も配置される。
図14では、2種類の単位配置体3A、3Bに加えて、2個の異物ブロック6がミックスエリア4内に配置されている例を示している。
【0076】
続くステージ3では、異物ブロック6を含むミックスエリア4を容器エリアTAに任意に配置して形状画像データが作成される。さらに、当該形状画像データにレンダリングを施すことで質感を与える処理が実行され、教師画像5が作成される。教師画像5においては、異物61に対してもモデルとした実際の異物が持つ質感が与えられるので、部品CA及び異物61は各々質感を有する部品CAR及び異物61Rとして表現される。
【0077】
異物61R入りの教師画像5を作成しておけば、検査カメラ14で取得された検査画像に想定した異物が含有されているとき、検査処理部15は前記異物が容器Tに混入していることが識別可能となる。従って、部品Cの中に異物が混入した容器が、次段の工程に流出しないようにチェックすることができる。
【0078】
[第4実施形態]
第4実施形態では、レンダリング処理を施す前の形状画像データの作成処理を簡素化する例を示す。第1実施形態では、部品CAを自由落下させて生成した単位配置体3をミックスエリア4に任意配置し、これを容器エリアTAに任意配置して形状画像データを作成する例を示した。これに対し、第4実施形態では、容器エリアTAに部品CAを直接自由落下させることで、形状画像データを作成する例を示す。
【0079】
図15は、第4実施形態における単位配置体3の配置処理の実施状況を示す図である。第1実施形態では、自由落下させる部品CAの配置範囲を拘束容器32で拘束した。これに代えて第4実施形態では、自由落下開始位置を制限することで、部品CAの配置範囲を拘束する。
図15(A)に示すように、部品C11及びC12の自由落下を開始させる落下開始高さh2を、自由落下面32Aの基準高さh0よりもΔh2だけ高い高さ(対象物の任意は位置状態を維持できる落下開始高さ)に設定する。
【0080】
落下開始高さh2は、
図6(A)に示した落下開始高さh1よりも低い高さ(Δh1>Δh2)であって、自由落下面32Aへの衝突後に部品C11、C12の配置関係が大きく乱れない高さである。従って、部品C11、C12の配置関係を予め定めて自由落下をさせると、
図15(A)に示す配置エリアを持つ自由落下面32Aの範囲内に、部品C11、C12を配置することが可能となる。このため、自由落下面32Aを単位配置体3と扱うことができる。また、自由落下前の部品C11、C12の配置関係をある程度維持できるため、ミックスエリア4への配置ステップを省いて、直接容器エリアTAに自由落下させても、ある程度は部品密集度のバラエティーに富んだ形状画像データを作成することができる。
【0081】
図15(B)は、容器エリアTAに部品群C31、C32、C33、C34を直接自由落下させている例を示す図である。部品群C31~C34の部品配置関係は、自由落下前に予め定められ、物理シミュレータ上において上述の落下開始高さh2に相当する高さ位置から自由落下される。自由落下された部品群C31~C34の部品配置関係は、概ね自由落下前の部品配置関係を維持している。この自由落下処理により、容器エリアTAに複数の部品が任意に配置された形状画像データが作成される。その後、当該形状画像データに対して、
図3のステージ3の質感付与処理が施され、教師画像データが作成される。
【0082】
図16は、第4実施形態の教師画像データ作成処理を示すフローチャートである。本実施形態においても、
図2に示す教師画像データ作成部11が教師画像データを作成する。処理装置2は、教師画像5となる合成画像を作成する各種の部品C及び容器Tの三次元形状を画像で表現するモデルデータの入力を、データ入力部26から受け付ける(ステップS21)。続いて、単位配置体作成部22が、物理シミュレータで作成する部品群C31~C34を構成する部品の種別及び員数を選定する(ステップS22)。
【0083】
次に単位配置体作成部22は、ステップS22で選定した部品群C31~C34の自由落下条件を設定する(ステップS23)。設定されるのは、部品群C31~C34の自由落下開始位置及び部品姿勢である。自由落下開始位置は、XY平面上の位置を示すXY座標位置と、落下開始高さh2に相当するZ座標位置とで設定される。部品姿勢は、XYZの各軸回りの回転角にて設定される。
【0084】
その後、単位配置体作成部22は、物理シミュレーションにより、設定された自由落下条件にて、容器エリアTAに部品群C31~C34を自由落下させる(ステップS24)。自由落下させた部品群C31~C34の姿勢安定後、部品群C31~C34を構成する各部品のXY位置座標及び各軸回りの回転角のデータを、データ記憶部25に保存する(ステップS25)。
【0085】
その後、レンダリング部24が、物理ベースレンダリングにより容器エリアTA及び部品群C31~C34に質感を付与する処理を実行する(ステップS26~S28)。実行されるレンダリング処理は、
図11のステップS13~S15で説明した処理と同じであるので、説明を省く。作成された教師画像データは、データ記憶部25に保存される(ステップS29)。
【0086】
[作用効果]
以上説明した実施形態によれば、モデルデータから作成された容器エリアTA及び部品CAを用いて、
図9(A)、(B)に示したような模擬的な形状画像データが作成される。前記形状画像データは、複数体の単位配置体3をミックスエリア4に配置し、さらにミックス部品群エリア41を容器エリアTA内に任意に配置して作成される。単位配置体3自体が、複数個の部品CAを任意に配置して作成されるので、部品CAの密集度乃至は粗密が多様な形状画像データを容易に合成することができる(第1実施形態)。また、第4実施形態のように、容器エリアTAに部品群C31~C34を直接自由落下させれば、部品配置のバリエーションは若干低下するとしても、簡易に形状画像データを合成することができる。さらに、前記形状画像状データに、現実の容器T及び部品Cの質感を与える処理を施して教師画像5のデータが作成される。このため、部品Cを収容した容器Tを実際に撮像した実画像と遜色のない教師画像データを得ることができる。従って、当該教師画像データを用いて機械学習を行って生成される学習モデルの性能を高めることができる。
【0087】
さらに、実画像から教師画像を作成するのではなく、最初から画像合成により教師画像を作成するので、より学習に適した教師画像データを作成することができる。
図17は、実画像に基づき教師画像データを作成する場合の不具合を説明するための図である。実画像から教師画像を作成する場合、取得された二次元の実画像をベースにして画像合成を行うことになる。もちろん、実画像を多数枚取得してこれを教師画像としても良いが、撮像に膨大な手間を要する。
【0088】
二次元画像から部品等の対象物を認識するためには、エッジ抽出等の画像処理が必要となる。
図17(A)は、ある実画像から切り出されたボルト型の対象物を示している。この切り出し画像では、対象物のオリジナル形状のエッジが明瞭に認識されている。しかし、二次元の実画像から対象物とその背景とを切り出した画像では、対象物のエッジを明確に認識できない場合が多々ある。
図17(B)は対象物のエッジが不明瞭な例、
図17(C)はエッジが欠落している例である。また、対象物同士が重なり合ったり接近したりしていると、対象物のオリジナル形状とは異なる形状を認識してしまう。
図17(D)は、対象物同士が重なっている場合に認識されるエッジの例、
図17(E)は、対象物同士が隣接している場合に認識されるエッジの例である。これに対し、上述した実施形態のように、三次元の合成画像の場合は、対象物が単体で配置されている場合はもちろんのこと、複数の対象物が重なりや隣接している状態で配置されている場合でも、その配置関係を明確に把握することができる。従って、本実施形態によれば、対象物の配置を示す正解データと正確に対応した教師画像データを作成することができる。
【0089】
[上記実施形態に含まれる発明]
本発明の一局面に係る対象物員数検査用の学習モデル生成方法は、容器内に収容される対象物の員数を自動検査する処理を行うための、機械学習に用いられる学習モデルの生成方法であって、前記学習モデルの生成装置に、前記容器及び対象物の形状を画像で表現するモデルデータを入力するステップと、前記モデルデータを用いて、複数個の対象物を任意に配置した単位配置体を複数体作成させると共に、前記容器に対応する容器エリア内に前記単位配置体を任意に配置することで、前記対象物を任意の密集度で収容している前記容器の形状画像データを作成させるステップと、前記形状画像状データに、現実の前記容器及び前記対象物の質感を与える処理を加え、前記学習モデルを構築する際に使用される教師画像データを作成させるステップと、を実行させることを特徴とする。
【0090】
本発明の他の局面に係る対象物員数検査用の学習モデル生成プログラムは、容器内に収容される対象物の員数を自動検査する処理を行うための、機械学習に用いられる学習モデルを、所定の学習モデル生成装置に作成させるためのプログラムであって、前記容器及び対象物の形状を画像で表現するモデルデータの入力を受け付けるステップと、前記モデルデータを用いて、複数個の対象物を任意に配置した単位配置体を複数体作成させると共に、前記容器に対応する容器エリア内に前記単位配置体を任意に配置することで、前記対象物を任意の密集度で収容している前記容器の形状画像データを作成させるステップと、前記形状画像状データに、現実の前記容器及び前記対象物の質感を与える処理を加え、前記学習モデルを構築する際に使用される教師画像データを作成させるステップと、を前記学習モデル生成装置に実行させることを特徴とする。
【0091】
この学習モデル生成方法又は学習モデル生成プログラムによれば、容器及び対象物のモデルデータを用いて模擬的な形状画像データが作成される。この形状画像データは、複数体の単位配置体を容器エリア内に任意に配置して作成される。前記単位配置体自体が、複数個の対象物を任意に配置して作成されるので、前記対象物の密集度乃至は粗密が多様な形状画像データを容易に合成することができる。さらに、前記形状画像状データに、現実の前記容器及び前記対象物の質感を与える処理を施して教師画像データが作成される。このため、対象物入り容器を実際に撮像した実画像と遜色のない教師画像データを得ることができる。従って、当該教師画像データを用いて機械学習を行って生成される学習モデルの性能を高めることができる。
【0092】
上記の学習モデル生成方法において、前記単位配置体は、前記容器エリアよりも小さい拘束エリアを予め設定し、任意数の前記対象物を前記拘束エリア内に任意に配置することにより作成されることが望ましい。
【0093】
この学習モデル生成方法によれば、単位配置体の範囲が拘束エリアによって定型化されるので、その後の容器エリア内への前記単位配置体の配置が行い易くなる。
【0094】
上記の学習モデル生成方法において、物理シミュレーションにより、前記拘束エリア内に前記任意数の対象物を自由落下させることにより、当該対象物を前記拘束エリア内に任意に配置することが望ましい。
【0095】
この学習モデル生成方法によれば、物理シミュレーションによる自由落下を用いるので、任意数の対象物の前記拘束エリア内への任意配置に特定の偏りが生じ難くなる。従って、拘束エリア内で様々な配置姿勢を取る単位配置体を作成でき、対象物の多様な密集度乃至は粗密度合いを有する形状画像データを作成することできる。
【0096】
上記の学習モデル生成方法において、前記形状画像データを作成させるステップは、前記容器エリアと同等又は小さく、前記拘束エリアよりも大きいミックスエリアを設定し、前記ミックスエリア内に前記複数体の単位配置体を任意に配置するステップと、前記単位配置体が配置された前記ミックスエリアを、前記容器エリア内の任意の位置に任意の方向で配置するステップと、を含むことが望ましい。
【0097】
この学習モデル生成方法によれば、複数体の単位配置体をミックスエリア内に任意配置した上で、さらに当該ミックスエリアを容器エリア内に任意配置する。このため、容器内に対象物が分散した配置或いは偏った配置の形状画像データを作成できる等、より一層対象物の多様な密集度乃至は粗密度合いを有する形状画像データを作成できる。
【0098】
上記の学習モデル生成方法において、物理シミュレーションにより、前記複数体の単位配置体を、前記対象物の任意配置状態を維持できる落下開始位置から、前記容器エリア内に自由落下させることで、容器エリア内に前記単位配置体を任意に配置することができる。
【0099】
この学習モデル生成方法によれば、対象物の任意配置状態を維持したまま、直接容器エリア内に前記単位配置体を任意に配置できる。従って、形状画像データの作成を簡素化することができる。
【0100】
上記の学習モデル生成方法において、前記形状画像データにおける前記対象物の各々の配置を示す情報を、前記教師画像データに存在する前記対象物の配置を示す正解データとして扱い、前記学習モデルの生成装置が備える記憶装置に、前記教師画像データと前記正解データとを関連付けて記憶させることが望ましい。
【0101】
この学習モデル生成方法によれば、実画像に基づき正解データを導出する場合に比べて、教師画像データにおける対象物の配置と、その正解データとを正確に紐付けることができる。
【0102】
上記の学習モデル生成方法において、前記質感を与える処理は、前記対象物及び前記容器の撮像光学系の設定及びそのバラツキ範囲の設定、並びに、前記対象物及び前記容器の材質及びそのバラツキ範囲の設定を含む、物理ベースレンダリングにて実行されることが望ましい。
【0103】
この学習モデル生成方法によれば、実際の員数検査の状況に応じた質感を前記対象物及び前記容器に与えることが可能となる。従って、より実画像に近い教師画像データを生成させることができる。
【0104】
上記の学習モデル生成方法において、前記対象物の員数の自動検査の際に実際に取得される前記対象物を収容した容器の実画像と、前記教師画像データとを対比し、両者の類似度が所定の閾値よりも低い場合に、前記実画像の傾向に沿った教師画像データを追加作成して前記学習モデルを更新することが望ましい。
【0105】
この学習モデル生成方法によれば、前記対象物の員数の自動検査を実際に行っていくうちに、教師画像データが実画像とかけ離れる傾向が生じたような場合に、学習モデルを実情に沿うように更新させてその性能を高めることができる。
【0106】
上記の学習モデル生成方法において、前記形状画像データを作成させるステップは、前記対象物以外の異物を、前記容器エリア内に配置するステップを含むことが望ましい。
【0107】
この学習モデル生成方法によれば、異物を含んだ形状画像データが作成される。このため、員数検査だけでなく、異物の有無検査にも学習モデルを適用することが可能となる。
【0108】
以上説明した本発明によれば、対象物の員数を検査する処理を行うための機械学習に使用される学習モデルを的確に作成することができる学習モデル生成方法、及び学習モデル生成プログラムを提供することができる。