(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023110514
(43)【公開日】2023-08-09
(54)【発明の名称】検査方法、プログラム、検査装置、及び検査システム
(51)【国際特許分類】
G06T 7/00 20170101AFI20230802BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022012013
(22)【出願日】2022-01-28
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】佐藤 陽介
(72)【発明者】
【氏名】大山 芽依
(72)【発明者】
【氏名】山内 拓也
(72)【発明者】
【氏名】高橋 浩
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA03
5L096CA04
5L096DA02
5L096HA04
5L096JA11
(57)【要約】
【課題】工具による部品の組み付け作業を検査する検査システムにおいて、組み付け個所に応じた複数の検出フレームを予め設定しなくても検査を行えるようにする。
【解決手段】検査方法は、工具による部品の組み付け作業を検査する検査方法であって、前記工具に設けられ、前記組み付け作業の作業領域を撮像する撮像装置が撮像した複数の撮像画像のフレーム間の違いに基づいて、前記組み付け作業の作業状態を判定する判定処理と、前記作業状態に基づいて、前記撮像画像から前記組み付け作業の検査を行うための検査画像を決定する決定処理と、前記検査画像を用いて、前記組み付け作業が正常に行われたか否かを判断する判断処理と、をコンピュータが実行する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
工具による部品の組み付け作業を検査する検査方法であって、
前記工具に設けられ、前記組み付け作業の作業領域を撮像する撮像装置が撮像した複数の撮像画像のフレーム間の違いに基づいて、前記組み付け作業の作業状態を判定する判定処理と、
前記作業状態に基づいて、前記撮像画像から前記組み付け作業の検査を行うための検査画像を決定する決定処理と、
前記検査画像を用いて、前記組み付け作業が正常に行われたか否かを判断する判断処理と、
をコンピュータが実行する、検査方法。
【請求項2】
前記判定処理は、前記撮像画像のフレーム間の変位ベクトルを抽出し、前記変位ベクトルの分布データを生成する生成処理を含む、請求項1に記載の検査方法。
【請求項3】
前記判定処理は、前記変位ベクトルの分布データを、第1の学習済モデルに入力することにより、前記作業状態を判定する、請求項2に記載の検査方法。
【請求項4】
前記第1の学習済モデルは、前記変位ベクトルの分布データを特徴量とし、前記組み付け作業中であるか否かを示す前記作業状態を教師データとして予め学習した機械学習モデルである、請求項3に記載の検査方法。
【請求項5】
前記生成処理は、
前記変位ベクトルを複数の領域に分割する処理と、
前記複数の領域ごとに前記変位ベクトルの特徴量を算出する処理と、
前記特徴量の分布データ、又は前記特徴量の配列データを含む前記変位ベクトルの分布データを作成する処理と、
を含む、請求項2乃至4のいずれか一項に記載の検査方法。
【請求項6】
前記決定処理は、
前記撮像画像から、前記組み付け作業の開始期間の画像フレーム、又は前記組み付け作業の終了期間の画像フレームを抽出する処理と、
前記抽出した画像から、前記工具の先端を含む画像を切り出して前記検査画像を生成する処理と、
を含む、請求項1乃至5のいずれか一項に記載の検査方法。
【請求項7】
前記判断処理は、前記検査画像を第2の学習済モデルに入力して、前記組み付け作業で組み付けた部品の種別を判定する処理を含む、請求項1乃至6のいずれか一項に記載の検査方法。
【請求項8】
請求項1乃至7のいずれか一項に記載の検査方法をコンピュータに実行させる、プログラム。
【請求項9】
工具による部品の組み付け作業を検査する検査装置であって、
前記工具に設けられ、前記組み付け作業の作業領域を撮像する撮像装置が撮像した複数の撮像画像のフレーム間の違いに基づいて、前記組み付け作業の作業状態を判定する判定部と、
前記作業状態に基づいて、前記撮像画像から前記組み付け作業の検査を行うための検査画像を決定する決定部と、
前記検査画像を用いて、前記組み付け作業が正常に行われたか否かを判断する判断部と、
を有する、検査装置。
【請求項10】
工具による部品の組み付け作業を検査する検査装置と、前記工具に設けられ、前記組み付け作業の作業領域を撮像する撮像装置とを含む検査システムであって、
前記検査装置は、
前記撮像装置が撮像した複数の撮像画像のフレーム間の違いに基づいて、前記組み付け作業の作業状態を判定する判定部と、
前記作業状態に基づいて、前記撮像画像から前記組み付け作業の検査を行うための検査画像を決定する決定部と、
前記検査画像を用いて、前記組み付け作業が正常に行われたか否かを判断する判断部と、
を有する、検査システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検査方法、プログラム、検査装置、及び検査システムに関する。
【背景技術】
【0002】
工具による部品の組み付け作業等を検査する検査システムがある。例えば、ワークに設けられた特徴部を含む所定領域を撮像し、検出フレーム内に特徴部の少なくとも一部が位置していることを判定することにより、トルクレンチの締付作業が正常であることを判定する技術が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1に開示された技術では、組み付けタイミングを検知してエラー判定を行うために、組み付け個所に応じた複数の検出フレーム、及び撮影状況に応じた複数の検出フレーム等を検査システムに予め設定しなければならないという問題がある。
【0004】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、工具による部品の組み付け作業を検査する検査システムにおいて、組み付け個所に応じた複数の検出フレームを予め設定しなくても検査を行えるようにする。
【課題を解決するための手段】
【0005】
上記の課題を解決するため、一実施形態に係る検査方法は、工具による部品の組み付け作業を検査する検査方法であって、前記工具に設けられ、前記組み付け作業の作業領域を撮像する撮像装置が撮像した複数の撮像画像のフレーム間の違いに基づいて、前記組み付け作業の作業状態を判定する判定処理と、前記作業状態に基づいて、前記撮像画像から前記組み付け作業の検査を行うための検査画像を決定する決定処理と、前記検査画像を用いて、前記組み付け作業が正常に行われたか否かを判断する判断処理と、をコンピュータが実行する。
【発明の効果】
【0006】
本発明の一実施形態によれば、工具による部品の組み付け作業を検査する検査システムにおいて、組み付け個所に応じた複数の検出フレームを予め設定しなくても検査を行えるようになる。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る検査システムのシステム構成の例を示す図である。
【
図2】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
【
図3】一実施形態に係る情報端末のハードウェア構成の例を示す図である。
【
図4】一実施形態に係る情報端末の機能構成の例を示す図である。
【
図5】一実施形態に係るオプティカルフローについて説明するための図である。
【
図6】一実施形態に係る検査処理の例を示すフローチャートである。
【
図7】第1の実施形態に係る判定処理の例を示すフローチャートである。
【
図8】一実施形態に係るオプティカルフローの分割のイメージを示す図である。
【
図9】一実施形態に係る作業状態の例について説明するための図である。
【
図10】第2の実施形態に係る判定処理の例を示すフローチャートである。
【
図11】第2の実施形態に係る特徴量の値の分布のイメージを示す図である。
【
図12】第2の実施形態に係る欠損データの例について説明するための図である。
【
図13】一実施形態に係る検査画像の決定処理の例を示すフローチャートである。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【0009】
<システム構成>
図1は、一実施形態に係る検査システムのシステム構成の例を示す図である。検査システム1は、例えば、ドライバ、又はトルクレンチ等の工具12に設けられた撮像装置110、端末装置100、及び通信ネットワーク10を介して端末装置100と通信可能なサーバ装置120等を含む。検査システム1は、作業者11等が、作業対象物13に、工具12を用いて部品を組み付ける組み付け作業を検査するシステムである。なお、検査システム1には、端末装置100、及び撮像装置110が複数含まれていてもよい。
【0010】
撮像装置110は、一例として、組み付け作業の作業領域を撮像するように、工具12に固定されたカメラ等の撮像手段である。例えば、工具12が、作業対象物13にネジを装着するドライバである場合、撮像装置110は、ドライバの先端、及びその周辺を含む作業領域を撮像するように、工具12に取り付けられている。別の一例として、撮像装置110は、組み付け作業の作業領域を撮像するように、工具12に組み込まれた内蔵型のカメラ等であってもよい。また、工具12は、例えば、トルクレンチ、又はスパナ等のドライバ以外の工具であってもよい。
【0011】
撮像装置110は、例えば、USB(Universal Serial Bus)等のケーブルで端末装置100と接続され、撮像した撮像画像(例えば映像)を、当該ケーブルを介して端末装置100に送信する。ただし、これに限られず、撮像装置110は、例えば、無線LAN(Local Area Network)、又はUWB(Ultra Wide Band)等の無線通信で端末装置100と接続され、撮像した撮像画像を、当該無線通信を介して端末装置100に送信してもよい。
【0012】
端末装置(検査装置の一例)100は、例えば、タブレット端末、スマートフォン、又はPC(Personal Computer)等の情報端末である。端末装置100は、検査システム1に対応する検査用のプログラムを実行することにより、撮像装置110から送信される撮像画像に基づいて、工具12による組み付け作業を検査する。なお、端末装置100は、汎用の情報端末に限られず、検査システム1に対応するファームウェアを予め記憶した専用端末であってもよい。
【0013】
端末装置100は、例えば、インターネット、又はLAN等の通信ネットワーク10を介して、サーバ装置120から、検査用のプログラム、又は検査で用いる学習済モデル等を取得することができる。また、端末装置100は、検査用のプログラムを実行することにより、撮像装置110が送信した撮像画像に基づいて、工具12による組み付け作業を検査する検査処理を実行する。
【0014】
例えば、端末装置100は、撮像装置110から取得した撮像画像(映像)のフレーム間の違いに基づいて、組み付け作業の作業状態(例えば、組み付け作業の開始、又は組み付け作業の終了等)を判定する判定処理を実行する。また、端末装置100は、判定した作業状態に基づいて、撮像装置110から取得した撮像画像から、組み付け作業を検査するための検査画像を決定する決定処理を実行する。さらに、端末装置100は、決定した検査画像を用いて、組み付け作業が正常に行われたか否かを判断する判断処理を実行する。さらにまた、端末装置100は、判断処理の判断結果(例えば、良品又は不良品、及び不良品の場合は不良内容等)を表示する表示画面101を、端末装置100の表示部等に表示する表示制御処理を実行する。
【0015】
好ましくは、端末装置100は、撮像画像のフレーム間の変位ベクトル(オプティカルフロー)を抽出し、抽出した変位ベクトルの分布データを、サーバ装置120から取得した第1の学習済モデルに入力することにより、作業状態を判定する。また、端末装置100は、決定処理で決定した検査画像を、サーバ装置120から取得した第2の学習済モデルに入力することにより、組み付け作業が正常に行われたか否かを判断する。
【0016】
このように、本実施形態に係る検査システム1は、撮像装置110が撮像した撮像画像(映像)から、組み付け作業の作業状態と、検査用の検査画像とを取得するので、組み付け個所に応じた複数の検出フレームを予め設定しなくても検査を行うことができる。
【0017】
以上、本実施形態によれば、工具による部品の組み付け作業を検査する検査システム1において、組み付け個所に応じた複数の検出フレームを予め設定しなくても検査を行えるようになる。
【0018】
なお、上記の説明では、工具による部品の組み付け作業を検査する検査装置が、端末装置100であるものとして説明したが、検査装置は、サーバ装置120であってもよい。この場合、端末装置100は、撮像装置110から取得した撮像画像をサーバ装置120に転送する。また、サーバ装置(検査装置の別の一例)は、上述した判定処理、決定処理、及び判断処理等を実行し、判断結果を端末装置100に送信する。さらに、端末装置100は、サーバ装置120から受信した判断結果、又は判断結果を含む表示画像に基づいて、判断処理の判断結果を含む表示画面101を表示する表示制御処理を実行する。
【0019】
また、端末装置100が、サーバ装置120から、検査用のプログラム、第1の学習済モデル、及び第2の学習済モデル等を取得する構成は一例である。例えば、端末装置100は、検査用のプログラム、第1の学習済モデル、及び第2の学習済モデル等を、端末装置100に接続した外部メモリ等の記憶媒体から取得してもよい。この場合、検査システム1は、サーバ装置120を有していなくてもよい。
【0020】
<ハードウェア構成>
(サーバ装置のハードウェア構成)
サーバ装置120は、例えば、
図2に示すようなコンピュータ200のハードウェア構成を有している。或いは、サーバ装置120は、複数のコンピュータ200によって構成される。
【0021】
図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、及びバスライン215等を備えている。
【0022】
これらのうち、CPU201は、コンピュータ200全体の動作を制御する。ROM202は、例えば、IPL(Initial Program Loader)等のコンピュータ200の起動に用いられるプログラムを記憶する。RAM203は、例えば、CPU201のワークエリア等として使用される。HD204は、例えば、OS(Operating System)、アプリケーション、デバイスドライバ等のプログラムや、各種データを記憶する。HDDコントローラ205は、例えば、CPU201の制御に従ってHD204に対する各種データの読み出し又は書き込みを制御する。
【0023】
ディスプレイ206は、例えば、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。なお、ディスプレイ206は、コンピュータ200の外部に設けられていても良い。外部機器接続I/F207は、例えば、撮像装置110等の様々な外部装置を、コンピュータ200に接続するための、例えば、USB(Universal Serial Bus)等のインタフェースである。ネットワークI/F208は、例えば、通信ネットワーク10等を利用して、他の装置と通信するためのインタフェースである。
【0024】
キーボード209は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス210は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行なう入力手段の一種である。なお、キーボード209、及びポインティングデバイス210は、コンピュータ200の外部に設けられていても良い。DVD-RWドライブ212は、着脱可能な記憶媒体の一例としてのDVD-RW211に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RW211は、DVD-RWに限らず、他の記憶媒体であっても良い。
【0025】
メディアI/F214は、フラッシュメモリ等のメディア213に対するデータの読み出し又は書き込み(記憶)を制御する。バスライン215は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等を含む。
【0026】
なお、
図2に示すコンピュータ200のハードウェア構成は一例である。コンピュータ200は、例えば、CPU201、ROM202、RAM203、ネットワークI/F208、及びバスライン216を有していれば、他は任意の構成であって良い。
【0027】
(端末装置のハードウェア構成)
図3は、一実施形態に係る端末装置のハードウェア構成の例を示す図である。この図は、端末装置100が、タブレット端末、又はスマートフォン等の情報端末である場合のハードウェア構成の例を示している。なお、端末装置100は、本実施形態に係る検査処理を実行するコンピュータの一例である。別の一例として、端末装置100は、
図2で説明したコンピュータ200のハードウェア構成を有するPC等であってもよい。
【0028】
図3の例では、端末装置100は、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303、ストレージデバイス304、CMOS(Complementary Metal Oxide Semiconductor)センサ305、撮像素子I/F(Interface)306、センサ307、メディアI/F309、GPS(Global Positioning System)受信部310等を備えている。
【0029】
これらのうち、CPU301は、所定のプログラムを実行することにより端末装置100全体の動作を制御する。ROM302は、例えば、IPL(Initial Program Loader)等のCPU301の起動に用いられるプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。ストレージデバイス304は、例えば、SSD(Solid State Drive)、フラッシュROM等によって実現され、OS(Operating System)、アプリ等のプログラム、及び各種のデータ等を記憶する大容量の不揮発性の記憶装置である。
【0030】
CMOSセンサ305は、CPU301の制御に従って被写体(主に自画像)を撮像して画像データを得る内蔵型の撮像手段の一種である。なお、端末装置100は、CMOSセンサ305に代えて、CCD(Charge Coupled Device)センサ等の撮像手段を有していても良い。撮像素子I/F306は、CMOSセンサ305の駆動を制御する回路である。センサ307は、地磁気を検知する電子磁気コンパスやジャイロコンパス、加速度センサ等の各種センサである。メディアI/F309は、フラッシュメモリ等のメディア308に対するデータの読み出し又は書き込み(記憶)を制御する。GPS受信部310は、GPS衛星からGPS信号を受信する。
【0031】
また、端末装置100は、遠距離通信回路311、遠距離通信回路311のアンテナ311a、CMOSセンサ312、撮像素子I/F313、マイク314、スピーカ315、音入出力I/F316、ディスプレイ317、外部機器接続I/F318、近距離通信回路319、近距離通信回路319のアンテナ319a、及びタッチパネル320を備えている。
【0032】
これらのうち、遠距離通信回路311は、例えば、通信ネットワーク10を介して、他の装置と通信する回路である。CMOSセンサ312は、CPU301の制御に従って被写体を撮像して画像データを得る内蔵型の撮像手段の一種である。撮像素子I/F313は、CMOSセンサ312の駆動を制御する回路である。マイク314は、音を音信号に変換する内蔵型のデバイスである。スピーカ315は、音信号を物理振動に変えて音を発生する内蔵型のデバイスである。音入出力I/F316は、CPU301の制御に従って、音信号の入出力等を処理する回路等である。
【0033】
ディスプレイ317は、様々な表示画面を表示する液晶、又は有機EL(Electro Luminescence)等の表示部である。外部機器接続I/F318は、例えば、撮像装置110等の各種の外部機器を接続するための、例えば、USB等のインタフェースである。近距離通信回路319は、近距離無線通信で他の装置と通信するための回路である。タッチパネル320は、利用者がディスプレイ317を押下することで、端末装置100を操作する入力手段の一種である。
【0034】
また、端末装置100は、バスライン321を備えている。バスライン321は、
図3に示されているCPU301等の各構成要素を電気的に接続するためのアドレスバス、データバス、及び各種の制御信号等を含む。
【0035】
<機能構成>
続いて、本実施形態に係る検査システム1が有する機能構成について説明する。なお、ここでは、端末装置100が検査装置であるものとして以下の説明を行う。
【0036】
(端末装置の機能構成)
図4は、一実施形態に係る端末装置の機能構成の例を示す図である。端末装置(検査装置)100は、例えば、CPU301(又はCPU201)が検査用プログラムを実行することにより、生成部401、判定部402、決定部403、判断部404、表示制御部405、取得部406、及び記憶部407等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0037】
生成部401は、撮像装置110が端末装置100に送信する撮像画像(映像)のフレーム間の変位ベクトル(オプティカルフロー)を抽出し、変位ベクトルの分布データを生成する生成処理を実行する。例えば、生成部401は、抽出したオプティカルフローを複数の領域に分割し、分割した複数の領域ごとの統計量(画素ごとの変位と大きさの向きとの分散又は平均等)を特徴量として算出する。また、生成部401は、特徴量の分布データ、又は特徴量の配列データを含む変位ベクトルの分布データを作成する。
【0038】
オプティカルフローは、時間的に連続した撮像画像のフレーム間で物体が移動することにより発生する画素値の変化等から得られる複数の画素の変位ベクトル(又は速度ベクトル)である。
【0039】
オプティカルフローには、計算の細かさにより、疎なオプティカルフローと、密なオプティカルフローとがある。疎なオプティカルフローは、画像上の特徴点についてのみ変位を計算するものであり、例えば、特徴点の座標(X,Y)と変位ベクトル(2次元直交座標、又は極座標)の組合せで表される。一方、密なオプティカルフローは、例えば、画像上の全ての画素について変位を計算するものであり、変位ベクトル(2次元直交座標、又は極座標)を、画素と同じように配置した配列で表される。例えば、RGB画像が縦×横×3の配列であるように、密なオプティカルフローは、縦×横×2の配列で表現される。
【0040】
本実施形態のように、観測者(本実施形態では撮像装置110)が動く場合、背景を含む全ての物体と撮像装置110との位置関係が変わるため、画像全体で変位が生じる。観測者が視線の方向に動き、かつどの物体も近くにない場合、例えば、
図5(A)に示すように、変位の大きさは各画素の画像の中心からの距離によって変化し、変位の向きは画像の中心からの各画素の向きと一致する。
【0041】
また、
図5(B)に示すように、物体が観測者に近いほど、観測者の動きに伴う画角の変化が大きい。従って、近距離の物体に向かって近づく、又は遠ざかる場合のオプティカルフローを計算すると、当該物体の画像上での変位は、背景を含む遠距離の物体の変位よりも大きくなる。つまり、オプティカルフローには、画像中に背景とは区別される近距離に物体が存在するかどうか、及びその物体との位置関係の変化の情報が含まれている。
【0042】
上記のオプティカルフローを、工具12に取り付けられた撮像装置110が撮像した画像に対して適用することで、端末装置100は、組み付け作業の作業状態(組み付け作業中であるか否か等)を判定することができる。
【0043】
なお、
図4に示した端末装置100の機能構成は一例である。例えば、生成部401は、判定部402に含まれていてもよい。また、生成部401が実行する生成処理は、判定部402が実行する判定処理に含まれていてもよい。
【0044】
判定部402は、生成部401が生成した変位ベクトルの分布データを用いて、組み付け作業の作業状態を判定する判定処理を実行する。ここで、組み付け作業の作業状態には、例えば、組み付け作業中であるか否か、組み付け作業の開始タイミング、又は組み付け作業の終了タイミング等が含まれる。
【0045】
例えば、判定部402は、生成部401が生成した変位ベクトルの分布データを、第1の学習済モデル408に入力することにより、作業状態を判定する。ここで、第1の学習済モデル408は、例えば、変位ベクトルの分布データを特徴量とし、上述した作業状態を教師データとして予め機械学習した機械学習モデルである。
【0046】
機械学習は、コンピュータが入力データを処理して分類、予測等を行うタスクにおいて、タスクのアルゴリズム又はパラメータ等を学習データから自律的に生成する技術である。また、ある目的(ここでは作業状態の判定すなわち分類)のためにデータセットを用いて学習し、その学習の結果として得られるモデルのことを「学習済モデル」という。
【0047】
決定部403は、判定部402が判定した作業状態に基づいて、撮像装置110から取得した撮像画像から組み付け作業の検査を行うための検査画像を決定する決定処理を実行する。例えば、決定部403は、判定部402が判定した作業状態に基づいて、組み付け作業の開始期間の画像フレーム、又は組み付け作業の終了期間の画像フレームを抽出する。また、決定部403は、抽出した画像から、例えば、工具12の先端を中心として所定の範囲の画像を切り出して、検査画像を生成する。
【0048】
判断部404は、決定部403が決定した検査画像を用いて、組み付け作業が正常に行われたか否かを判断する判断処理を実行する。例えば、判定部402は、決定部403が決定した検査画像を、第2の学習済モデル409に入力することにより、組み付け作業が正常に行われたか否かを判断する。ここで、第2の学習済モデル409は、例えば、複数の検査画像と、組み付け作業が正常に行われたか否かを示す教師データとを用いて、予め機械学習した機械学習モデルである。
【0049】
表示制御部405は、判断処理の判断結果を表示する表示画面101を、例えば、端末装置100のディスプレイ317等の表示部に表示する表示制御処理を実行する。表示画面101には、例えば、検査対象が良品であるか、不良品であるかを示す情報が含まれる。好ましくは、検査対象が不良品である場合、表示画面101には、不良内容(例えば、組み付けた部品の種別が異なる等)が含まれる。
【0050】
取得部406は、例えば、端末装置100が実行する検査用のプログラム、第1の学習済モデル408、及び第2の学習済モデル409等を取得する。ただし、これに限られず、端末装置100は、検査用のプログラム、第1の学習済モデル408、及び第2の学習済モデル409等を予め記憶したメディア308をメディアI/F309に接続するものであってもよい。
【0051】
記憶部407は、例えば、CPU301が実行するプログラム、ストレージデバイス、及びRAM303等によって実現され、第1の学習済モデル408、及び第2の学習済モデルを含む様々なデータ、情報、又はプログラム等を記憶する。なお、記憶部407は、メディア308等によって実現されるものであってもよい。
【0052】
なお、
図4に示した端末装置100の各機能構成のうち、少なくとも一部は、サーバ装置120が有していてもよい。例えば、生成部401、判定部402、決定部403、判断部404等は、サーバ装置120が有していてもよい。この場合、サーバ装置120が検査装置となる。
【0053】
<処理の流れ>
続いて、本実施形態に係る検査方法の処理の流れについて説明する。
【0054】
(検査処理)
図6は、一実施形態に係る検査処理の例を示すフローチャートである。この処理は、例えば、
図4に示すような端末装置(検査装置)100が、工具12を用いて部品を組み付ける組み付け作業を検査する検査処理の全体の流れを示している。
【0055】
ステップS601において、生成部401は、工具12に設けられた撮像装置110が送信する撮像画像(映像)を取得する。
【0056】
ステップS602において、生成部401、及び判定部402は、撮像装置110が撮像した複数の撮像画像のフレーム間の違いに基づいて、組み付け作業の作業状態を判定する判定処理を実行する。なお、判定処理の具体的な処理内容の例については後述する。
【0057】
ステップS603において、判定部402は、組み付け作業を検知した場合、処理をステップS604に移行させる。一方、判定部402は、組み付け作業を検知していない場合、処理をステップS601に戻す。
【0058】
ステップS604に移行すると、決定部403は、ステップS602で判定した作業状態に基づいて、撮像画像から組み付け作業の検査を行うための検査画像を決定する決定処理を実行する。なお、決定処理の具体的な処理内容の例については後述する。
【0059】
ステップS605において、判断部404は、決定部403が決定した検査画像を用いて、組み付け作業が正常に行われたか否かを判断する判断処理を実行する。例えば、判定部402は、決定部403が決定した検査画像を、記憶部407に記憶した第2の学習済モデル409に入力することにより、組み付け作業が正常に行われたか否かを判断する。
【0060】
ステップS606において、表示制御部405は、判断処理の判断結果を含む表示画面101を、例えば、端末装置100のディスプレイ317等の表示部に表示する表示制御処理を実行する。表示画面101には、例えば、検査対象が良品であるか、不良品であるかを示す情報が含まれる。好ましくは、検査対象が不良品である場合、表示画面101には、不良内容に関する情報が含まれる。
【0061】
ステップS607において、端末装置100は、全ての組み付け作業が完了したか否かを判断する。全ての組み付け作業が完了していない場合、端末装置100は、処理をステップS601に戻す、一方、全ての組み付け作業が完了した場合、端末装置100は、
図6の処理を終了する。
【0062】
上記の処理により、端末装置(検査装置)100は、組み付け個所に応じた複数の検出フレームを予め設定しなくても、組み付け作業が正常に行われたか否かを検査する検査処理を行うことができる。
【0063】
なお、
図6に示した検査処理は一例である。例えば、
図6のステップS602~S605の処理は、サーバ装置(検査装置の別の一例)120が実行してもよい。この場合、端末装置100は、ステップS601で取得した撮像画像をサーバ装置120に転送し、ステップS606において、サーバ装置120による判断結果を含む表示画面101を表示部に表示する。
【0064】
(判定処理)
続いて、生成部401、及び判定部402が実行する判定処理の例について説明する。
【0065】
[第1の実施形態]
図7は、第1の実施形態に係る判定処理の例を示すフローチャートである。この処理は、
図6のステップS602において、生成部401、及び判定部402が実行する判定処理の一例を示している。
【0066】
ステップS701において、生成部401は、撮像装置110から取得した撮像画像(映像)から、隣接した2つの画像フレームを入力(取得)する。
【0067】
ステップS702において、生成部401は、入力した2つの画像フレームから密なオプティカルフローを計算する。前述したように、密なオプティカルフローは、例えば、画像上の全ての画素について変位を計算するものであり、変位ベクトル(2次元直交座標、又は極座標)を、画素と同じように配置した配列で表される。密なオプティカルフローは、例えば、OpenCV(登録商標)ライブラリのDISOpticalFlow等の関数を用いて計算することができる。ただし、密なオプティカルフローを計算する方法は、これに限られない。
【0068】
なお、工具(ドライバ)12の軸方向を向く撮像装置110で撮像した撮像画像2枚を入力として計算されたオプティカルフローには、例えば、工具12に近距離に物体が存在するか、接近しているか、又は遠ざかっているか等の情報が含まれる。また、当該オプティカルフローには、工具12自体の回転、及び振動の情報等が含まれる。従って、ここでは、疎なオプティカルフローより、密なオプティカルフローを計算することが望ましい。
【0069】
ステップS703において、生成部401は、計算したオプティカルフローを複数のブロックに分割する。
図8(A)は、オプティカルフローを3行、3列の9個のブロックに分割する例を示している。
図8(B)は、オプティカルフローを5行、5列の25個のブロックに分割する例を示している。このように、生成部401はオプティカルフローを、複数のブロックに分割する。
【0070】
ステップS704において、生成部401は、分割したブロックごとに、各画素の変位の統計量を特徴量として計算する。例えば、生成部401は、ブロックごとに、各画素の変位の向きと大きさの分散、又は平均等を特徴量として計算する。ブロックごとに簡単な統計量を計算することにより、例えば、画像のノイズに由来するオプティカルフローの推定誤差を低減できること、及び計算するオプティカルフローの解像度が低くてよいこと等のメリットがある。
【0071】
ステップS705において、生成部401は、複数のブロックの特徴量を配列として処理することにより、変位ベクトルの分布データ(配列データ)を生成する。なお、変位ベクトルの分布データを配列データとして扱う場合、判定部402は、例えば、決定木、ブースティング、又はサポートベクターマシン等、公知の回帰アルゴリズム、又はクラス分類アルゴリズムを用いて、作業状態を判定することができる。
【0072】
ステップS706において、判定部402は、生成部401が生成した変位ベクトルの分布データ(配列データ)を、第1の学習済モデル408に入力することにより、回帰処理、又はクラス分類処理を行う。
【0073】
第1の学習済モデル408が、値を予測する回帰モデルである場合、判定部402は、変位ベクトルの分布データを第1の学習済モデル408に入力することにより、回帰処理を実行する。一方、第1の学習済モデル408が、あるデータがどのクラスに属するかを分類する分類モデルである場合、判定部402は、変位ベクトルの分布データを第1の学習済モデル408に入力することにより、クラス分類処理を実行する。
【0074】
図9は、一実施形態に係る作業状態の例について説明するための図である。撮像装置110が送信する撮像画像(映像)900には、例えば、「ネジ締め作業中」、及び「ドライバ先端へのネジ装着作業中」等を撮像した画像が含まれているものとする。ここで、ネジ締め作業は、組み付け作業の一例である。また、ドライバは、工具12の一例である。
【0075】
図9において、例えば、時間t0~t1、t4~t5、及びt8~t9の期間を「非作業中(クラス0)」とし、時間t3~t4、及びt7~t8の期間を「作業中(クラス1)」としてアノテーションし、第1の学習済モデル408を予め学習しておく。
【0076】
これにより、第1の学習済モデル408が分類モデルである場合、第1の学習済モデルは、「ネジ締め作業中」の2つの撮像画像から生成した変位ベクトルの分布データを入力すると、「作業中(クラス1)」であることを示す分類結果「1」を出力する。一方、第1の学習済モデル408は、ドライバ先端へネジ装着作業前の2つの撮像画像から生成した変位ベクトルの分布データを入力すると、「非作業中(クラス0)」であることを示す分類結果「0」を出力する。
【0077】
また、第1の学習済モデル408が回帰モデルである場合、第1の学習済モデル408は、生成部401が生成した変位ベクトルの分布データを入力すると、例えば、「ネジ締め作業中」の撮像画像との類似度等を示すスコア(0~1)等を出力する。
【0078】
ステップS707において、判定部402は、第1の学習済モデル408が出力したスコア(0~1)、又は分類結果「0」、「1」等の判定結果を、決定部403に出力する。
【0079】
上記の処理により、判定部402は、組み付け作業の作業状態(例えば、ネジ締め作業中であるか否か、組み付け作業を開始したか、又は組み付け作業を終了したか等)を判定することができる。
【0080】
[第2の実施形態]
図10は、第2の実施形態に係る判定処理の例を示すフローチャートである。なお、
図10に示す処理のうち、ステップS701~S704、S706、S707の処理は、
図7で説明した第1の実施形態に係る判定処理と同様なので、ここでは説明を省略する。
【0081】
ステップS1101において、第2の実施形態に係る生成部401は、複数のブロックの特徴量を分布として処理することにより、変位ベクトルの分布データを生成する。なお、画像内での位置依存性を低減したい場合、ブロックごとの特徴量を、ブロックの大きさと、ブロックのドライバの先端からの距離に基づく分布とみなして、変位ベクトルの分布データを生成することが望ましい。
【0082】
図11は、第2の実施形態に係る特徴量の値の分布のイメージを示す図である。この図は、2つの画像フレーム(フレームA、フレームB)におけるブロックの大きさと、ブロックのドライバの先端からの距離に応じた、特徴量の値の分布のイメージを示している。
【0083】
図11において、横軸のdは、ブロックの中心と、ドライバの先端との間の距離(単位:画素)を示しており、sは、ブロックの大きさを示している。また、縦軸のmは、特徴量の平均を示しており、vは特徴量の分散を示している。
【0084】
例えば、生成部401は、混合ガウスモデル(GMM:Gaussian Mixture Model)等の確率分布を扱うことができる手法を用いて分布を表現してから分布間の距離をクラスタリングすることにより、変位ベクトルの特徴量の分布データを抽出してもよい。ただし、分布を扱う方法はこれに限られない。
【0085】
なお、
図11の例では、4次元の図であるところを、図示するために、各軸を2つの値の組と対応付け、2次元で表現している。このように、変位ベクトルの特徴量を分布として扱うことにより、欠損値の存在に対応することができる。欠損値は、例えば、
図12(A)に示すように、フレームAとフレームBにおいて、ドライバの先端1201の位置が同じであっても、画像サイズが異なる場合、フレームAに含まれないフレームBの行1202、1203が欠損値となる。
【0086】
また、欠損値は、例えば、
図12(B)に示すように、フレームAとフレームBにおいて、画像の中心と、ドライバの先端1201との位置関係が異なっている場合に、フレームAに含まれないフレームBの行1204、列1205が欠損値となる。
【0087】
なお、本実施形態では、工具12に固定した撮像装置110が、工具12の先端を撮像した撮像画像を用いるので、
図12(A)に示すような画像サイズの相違、又は
図12(B)に示すような、工具12の先端の位置の相違等が発生し難くなっている。
【0088】
(決定処理)
続いて、決定部403が実行する決定処理の例について説明する。
【0089】
図13は、一実施形態に係る検査画像の決定処理の例を示すフローチャートである。この処理は、例えば、
図6のステップS604において、決定部403が検査画像を決定する決定処理の例を示している。
【0090】
ステップS1301において、決定部403は、撮像装置110から生成部401が取得した撮像画像から、組み付け作業の開始期間の画像フレームを抽出する。例えば、決定部403は、
図9に示すような撮像画像(映像)900から、作業開始フレームと、作業開始フレームの前後4フレームの計9フレームを取得する。
【0091】
ステップS1302において、決定部403は、撮像装置110から生成部401が取得した撮像画像から、組み付け作業の終了期間の画像フレームを抽出する。例えば、決定部403は、
図9に示すような撮像画像(映像)900から、作業終了フレームと、作業終了フレームの前後4フレームの計9フレームを取得する。
【0092】
なお、ステップS1301において、組み付け作業の開始期間の画像フレームを抽出する理由としては、ネジの正誤判定に必要なネジの先端が映っていること、及びネジ穴の状態変化とネジ穴の位置の確認に必要なネジ穴が映っていること等が望ましいためである。また、ステップS1302において、組み付け作業の終了期間の画像フレームを抽出する理由としては、ネジの正誤判定と、ネジ穴の状態変化の確認に必要はネジの頭が映っていることが望ましいためである。一方、組み付け中の画像フレームを抽出しない理由としては、組み付け中には、ネジもネジ穴も確認できないためである。
【0093】
また、ステップS1301において、決定部403が複数の画像フレームを抽出する理由は、ネジ穴、及びネジの頭のドライバによる遮蔽の状態が連続的に変化することにより、作業開始フレームが必ずしも後段の画像分類に適切であるとは限らないためである。また、画像にブレ等が発生した後段の画像分類自体が不能になる画像フレームが発生する場合があるため、予備の判定画像を確保するためにも、複数の画像フレームを抽出することが有効である。なお、ステップS1302において、決定部403が複数の画像フレームを抽出する理由についても同様である。
【0094】
なお、ステップS1301、S1302において、抽出する画像フレームの数は、判断部404による判断処理にかかる負荷と制度を考慮して適宜決定することができる。ただし、抽出する画像フレームの数は、少なくとも、作業開始フレーム、又は作業終了フレームの前後2フレーム以上が望ましい。
【0095】
また、ステップS1301、ステップS1302の処理のうち、一方の処理は、例えば、判断部404による判断処理の内容に応じて省略してもよい。この場合、抽出する画像フレームの数は、両方の画像フレームを使用するときよりもフレーム数を多くすることが望ましい。例えば、ステップS1301の処理を省略する場合、ステップS1302において、抽出する画像フレームの数は、少なくとも、作業終了フレームの前後4フレーム以上が望ましい。
【0096】
ステップS1303において、決定部403は、抽出した画像フレームから、工具12の先端の座標を中心として所定の範囲の画像を切り出し、検査画像を生成する。例えば、決定部403は、ステップS1301、S1302で抽出した9フレームの各々から、工具12の先端を含む所定の範囲の画像を切り出して、検査画像を生成する。ここで、画像を切り出す理由は、判断部404による判断処理を容易にするために、ネジ穴、及びネジの頭が画像の中心に写っており、他の物体が極力写っていない画像を生成するためである。
【0097】
なお、撮像装置110が、工具12の先端を中心とする撮像画像を撮像するように、工具12に固定されている場合、決定部403は、抽出した画像フレームの中心部分の所定の範囲の画像を切り出してもよい。
【0098】
或いは、決定部403は、抽出した画像フレームについて、生成部401で計算したオプティカルフローを用いて、工具12の先端を中心として所定の範囲の画像を切り出してもよい。
【0099】
図13の処理により、決定部403は、撮像装置110が撮像した撮像画像から、組み付け作業の検査を行うための検査画像を決定することができる。
【0100】
(判断処理)
続いて、
図6のステップS605において、判断部404が実行する判断処理についてさらに説明する。
【0101】
判断部404は、決定部403が決定した検査画像を、第2の学習済モデル409に入力することにより、組み付け作業が正常に行われたか否かを判断する。例えば、判断部404は、決定部403が生成した9×2=18枚の検査画像を、第2の学習済モデル409に入力して、例えば、組付けの正常又は異常、或いは、組み付けた部品の仕様の違い等を判断する。判断部404による判断には、複数の判断条件を用いることができる。
【0102】
例えば、判断部404は、ネジ締結前のネジ穴とその周辺の状態、ネジ締結前のネジ先端部分の形状、又はネジ締結後のネジの頭部分の形状等、作業に特徴的な要素をそれぞれ判断し、判断結果を組み合わせて組み付け作業が正常に行われたか否かを判断してもよい。
【0103】
好ましくは、判断部404は、ネジ締結前の状態だけを判断に用いる場合、組み付け作業の開始期間の9枚の検査画像のみを、第2の学習済モデル409に入力する。また、判断部404は、ネジ締結後の状態だけを判断に用いる場合、組み付け作業の終了期間の9枚の検査画像のみを、第2の学習済モデル409に入力する。
【0104】
(表示制御処理)
続いて、
図6のステップS606において、表示制御部405が実行する表示制御処理について、さらに説明する。
【0105】
表示制御部405は、判断部404による判断結果を含む表示画面101を、例えば、端末装置100のディスプレイ317等の表示部に表示する。この表示画面101には、例えば、検査対象が良品であるか、不良品であるかを示す情報が含まれる。
【0106】
好ましくは、検査対象が不良品である場合、表示画面101には、不良の原因、又は状態等を補足情報として表示する。例えば、表示制御部405は、仕様書上のネジ種別と実際のネジ種別(型番ないし型番に設定されたネジ種文字列や画像)、ネジの締め忘れ(欠品)等の情報を補足情報として表示する。また、表示制御部405は、判断部404が、ネジの傾き、又はネジの緩み等の不良を判断した場合は、それら情報も補足情報として表示する。
【0107】
なお、異なるネジを同じドライバ(工具12)で扱う場合、ネジの種別をネジ締め回数を基に作業中と照合すること、又は何らかの情報で作業中のネジ締め位置を認識して設計情報と照合することが必要となる。この場合、第2の学習済モデル409に、これらの情報を予め学習させておく。
【0108】
以上、本実施形態によれば、工具による部品の組み付け作業を検査する検査システムにおいて、組み付け個所に応じた複数の検出フレームを予め設定しなくても検査を行えるようになる。
【0109】
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0110】
また、
図4に示した端末装置100は、本実施形態に係る検査装置の一例である。例えば、検査装置は、
図4に示した端末装置100の機能構成のうち、生成部401、判定部402、決定部403、判断部404、及び記憶部407等を有するサーバ装置120であってもよい。さらに、生成部401、判定部402、決定部403、判断部404、及び記憶部407等は、端末装置100とサーバ装置120、又は複数のサーバ装置120に分散して設けられていてもよい。要するに、
図4に示した端末装置100の各機能構成は、検査システム1に含まれるいずれかの装置が有していればよい。
【符号の説明】
【0111】
1 検査システム
12 工具
100 端末装置(コンピュータ)
110 撮像装置
200 コンピュータ
401 生成部
402 判定部
403 決定部
404 判断部
405 表示制御部
408 第1の学習済モデル
409 第2の学習済モデル
900 撮像画像(映像)
【先行技術文献】
【特許文献】
【0112】