(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024004272
(43)【公開日】2024-01-16
(54)【発明の名称】コントローラ
(51)【国際特許分類】
G01N 21/88 20060101AFI20240109BHJP
【FI】
G01N21/88 J
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022103861
(22)【出願日】2022-06-28
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】鴫谷 篤人
【テーマコード(参考)】
2G051
【Fターム(参考)】
2G051AA90
2G051AB02
2G051AC11
2G051CA04
2G051CA07
2G051CB01
2G051DA01
2G051EB09
2G051ED08
2G051ED11
(57)【要約】
【課題】スマートカメラとの連携が可能なコントローラを提供する。
【解決手段】スマートカメラ102が接続可能なコントローラ10は、スマートカメラ102が単独で、検査対象画像の生成処理と当該検査対象画像に対する検査処理とを実行する第1モード、およびスマートカメラ102が、検査対象画像の生成処理と当該検査対象画像のコントローラ10への転送処理とを実行し、コントローラ10が、当該転送された検査対象画像に対する検査処理を実行する第2モードのいずれかのモードの設定を受け付ける設定部15を備えている。第2モードの設定を受け付けた場合には、コントローラ10の検査部12が検査処理を実行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
スマートカメラが接続可能なコントローラであって、
前記コントローラに接続された前記スマートカメラが単独で、検査対象画像の生成処理と当該検査対象画像に対する検査処理とを実行する第1モード、および前記コントローラに接続された前記スマートカメラが、検査対象画像の生成処理と当該検査対象画像の前記コントローラへの転送処理とを実行し、前記コントローラが、当該転送された検査対象画像に対する検査処理を実行する第2モードのいずれかのモードの設定を受け付ける設定部と、
前記設定部が前記第2モードの設定を受け付けた場合に前記検査処理を実行する検査部と、を備える、コントローラ。
【請求項2】
請求項1に記載のコントローラにおいて、
前記設定部は、前記第2モードで、前記コントローラに接続された一つのスマートカメラが生成した検査対象画像であって、当該スマートカメラにより検査処理が実行されずに転送された当該検査対象画像に対して、前記検査部が検査処理の全てを実行する、第1形態の選択を更に受け付け可能に構成されている、コントローラ。
【請求項3】
請求項1に記載のコントローラにおいて、
前記設定部は、前記第2モードで、前記コントローラに接続された複数のスマートカメラが生成した複数の検査対象画像であって、当該複数のスマートカメラにより検査処理が実行されずに転送された当該複数の検査対象画像に対して、前記検査部が検査処理の全てを実行するとともに、当該複数の検査対象画像に対する各検査処理の結果に基づいて総合判定を実行する、第2形態の選択を更に受付可能に構成されている、コントローラ。
【請求項4】
請求項1に記載のコントローラにおいて、
前記設定部は、前記第2モードで、前記コントローラに接続された一つのスマートカメラが生成した検査対象画像であって、当該スマートカメラにより検査処理の一部が実行されて転送された前記検査対象画像に対して、前記検査部が検査処理の残りの処理を実行する、第3形態の選択を更に受付可能に構成されている、コントローラ。
【請求項5】
請求項4に記載のコントローラにおいて、
前記検査部は、前記第2モードの前記第3形態において、前記コントローラに接続された一つのスマートカメラにより実行されて転送された前記検査処理の一部の結果を用いて、前記転送された検査対象画像に対して前記検査処理の残りの処理を実行する、コントローラ。
【請求項6】
請求項1に記載のコントローラにおいて、
前記設定部は、前記第2モードで、前記コントローラに接続された複数のスマートカメラが生成した複数の検査対象画像であって、当該複数のスマートカメラにより各検査処理の一部がそれぞれ実行されて転送された当該複数の検査対象画像に対して、前記検査部が各検査処理の残りの処理を実行するとともに、当該複数の検査対象画像に対する各検査処理の結果に基づいて総合判定を実行する、第4形態の選択を更に受付可能に構成されている、コントローラ。
【請求項7】
請求項6に記載のコントローラにおいて、
前記検査部は、前記第2モードの前記第4形態において、前記コントローラに接続された複数のスマートカメラにより実行された前記各検査処理の一部の各結果を用いて、前記転送された複数の検査対象画像に対して前記各検査処理の残りの処理を実行する、コントローラ。
【請求項8】
請求項1に記載のコントローラにおいて、
前記検査部は、前記第2モードで、前記スマートカメラが画像処理を適用して生成した検査対象画像を当該スマートカメラから取得し、当該画像処理後の検査対象画像に対して前記検査処理を実行する、コントローラ。
【請求項9】
請求項1に記載のコントローラにおいて、
前記検査部は、前記第2モードで、前記スマートカメラが複数の撮像画像を合成して生成した合成画像を当該スマートカメラから取得し、当該合成画像に対して前記検査処理を実行する、コントローラ。
【請求項10】
請求項1に記載のコントローラにおいて、
前記検査部は、前記第2モードで、前記スマートカメラが複数の撮像画像に基づいて生成した3次元形状データを当該スマートカメラから取得し、当該3次元形状データに対して前記検査処理を実行する、コントローラ。
【請求項11】
請求項1に記載のコントローラにおいて、
画像検査機能を搭載しないノーマルカメラを含む複数のカメラと接続可能であり、
前記検査部は、前記ノーマルカメラから取得した検査対象画像に対する前記検査処理を実行し、当該検査処理の結果と、前記スマートカメラから受け取った当該スマートカメラによる検査処理の結果とに基づいて最終結果を判定する、コントローラ。
【請求項12】
請求項1に記載のコントローラにおいて、
画像検査機能を搭載しないノーマルカメラを含む複数のカメラと接続可能であるとともに、接続されたカメラがスマートカメラかノーマルカメラかの種別を認識可能に構成され、
前記設定部は、前記認識された種別に応じてカメラに対する設定可能な処理を変えるように構成されている、コントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像検査用のスマートカメラが接続可能なコントローラに関する。
【背景技術】
【0002】
画像検査システムとして、ワークを撮像するカメラと、カメラが接続されるコントローラとを備え、カメラが撮像した画像に対してコントローラで検査を実行するコントローラタイプのシステムが従来から知られている。
【0003】
このコントローラタイプとは別に、昨今、コントローラが不要で撮像から画像検査まで単独で実行可能なスマートカメラが用いられるケースもある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のようなスマートカメラは、コントローラの設置場所を気にしなくて良いことや配線周りも簡素化されるというメリットがある。
【0006】
一方で、AI(人工知能)を用いた画像検査技術の発展に伴い、推論や学習の負荷により、スマートカメラ単独では処理能力が不足する事態が起こり得る。つまり、スマートカメラ単独で画像検査の運用を開始した後、処理能力を増強するためにコントローラを使用した検査の運用に切り替えたいというニーズが想定される。
【0007】
処理能力の増強のためであれば、スマートカメラを増設して対応することも考えられるが、一般的にスマートカメラは高額であり、またコントローラの方が高い処理能力が見込めるため、スマートカメラの増設ではなくコントローラを導入する方が効果的な場合がある。
【0008】
ところが、スマートカメラは、単独で画像生成から画像検査まで実行することが前提の装置であるため、従来のスマートカメラは、特に検査処理に関してコントローラとの連携面が十分に想定されているとは言えない。
【0009】
本開示は、かかる点に鑑みてなされたものであり、その目的とするところは、スマートカメラとの連携が可能なコントローラを提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本開示の一態様は、スマートカメラが接続可能なコントローラを前提とすることができる。コントローラは、当該コントローラに接続された前記スマートカメラが単独で、検査対象画像の生成処理と当該検査対象画像に対する検査処理とを実行する第1モード、および前記コントローラに接続された前記スマートカメラが、検査対象画像の生成処理と当該検査対象画像の前記コントローラへの転送処理とを実行し、前記コントローラが、当該転送された検査対象画像に対する検査処理を実行する第2モードのいずれかのモードの設定を受け付ける設定部を備えている。さらに、コントローラは、前記設定部が前記第2モードの設定を受け付けた場合に前記検査処理を実行する検査部も備えている。
【0011】
この構成によれば、第1モードに設定されると、スマートカメラが単独で検査対象画像の生成処理から検査処理まで実行する。一方、第2モードに設定されると、スマートカメラが検査対象画像の生成処理とコントローラへの転送処理とを実行し、検査処理はコントローラが実行する。つまり、スマートカメラで検査処理まで実行可能な場合にはスマートカメラ単独で検査処理を完結させ、スマートカメラ単独では処理能力が不足するような場合にはコントローラで検査処理を実行できるので、必要に応じてスマートカメラとコントローラとを連携させることができる。
【0012】
別の態様に係る設定部は、前記第2モードで、前記コントローラに接続された一つのスマートカメラが生成した検査対象画像に対する検査処理が実行されずに転送された当該検査対象画像に対する検査処理の全てを実行する、第1形態の選択を更に受け付け可能に構成されていてもよい。これにより、すべての検査処理をコントローラに実行させることができるので、スマートカメラを検査対象画像の生成に専念させることができ、検査を効率化できる。
【0013】
別の態様に係る設定部は、前記第2モードで、前記コントローラに接続された複数のスマートカメラが生成した検査対象画像に対する検査処理が実行されずに転送された複数の検査対象画像に対する検査処理の全てを実行し、当該複数の検査対象画像に対する各検査処理の結果に基づいて総合判定を実行する、第2形態の選択を更に受付可能に構成されていてもよい。この構成によれば、スマートカメラを検査対象画像の生成に専念させることに加えて、複数の検査対象画像を用いた検査が必要な検査対象物であっても効率的に検査を実行できる。
【0014】
別の態様に係る設定部は、前記第2モードで、前記コントローラに接続された一つのスマートカメラが生成した前記検査対象画像に対する検査処理の一部が実行されて転送された前記検査対象画像に対する検査処理の残りの処理を実行する、第3形態の選択を更に受付可能に構成されていてもよい。この構成によれば、時間のかかる検査処理であっても、同一の検査対象画像に対する検査をスマートカメラとコントローラとで分担することができるため、効率的に検査を実行できる。
【0015】
別の態様に係る設定部は、前記第2モードで、前記コントローラに接続された複数のスマートカメラが生成した複数の検査対象画像に対する各検査処理の一部がそれぞれ実行されて転送された前記複数の検査対象画像に対する各検査処理の残りの処理を実行し、当該複数の検査対象画像に対する各検査処理の結果に基づいて総合判定を実行する、第4形態の選択を更に受付可能に構成されていてもよい。この構成によれば、時間のかかる検査処理で、複数の検査対象画像を用いた検査が必要な検査対象物であっても効率的に検査が実行できる。
【0016】
別の態様に係る検査部は、前記第2モードで、前記スマートカメラが画像処理を適用して生成した検査対象画像を当該スマートカメラから取得し、当該画像処理後の検査対象画像に対して前記検査処理を実行することができる。この構成によれば、スマートカメラによる画像処理を施した検査対象画像をコントローラで検査処理することで、より複雑な画像検査を効率よく実行できる。
【0017】
別の態様に係る検査部は、前記第2モードで、前記スマートカメラが複数の撮像画像を合成して生成した合成画像を当該スマートカメラから取得し、当該合成画像に対して前記検査処理を実行することができる。
【0018】
別の態様に係る検査部は、前記第2モードで、前記スマートカメラが複数の撮像画像に基づいて生成した3次元形状データを当該スマートカメラから取得し、当該3次元形状データに対して前記検査処理を実行することができる。
【0019】
すなわち、撮像画像の合成や3次元形状データの生成など、大きな負荷がかかる画像処理をスマートカメラに専念させることができる。
【0020】
別の態様では、画像検査機能を搭載しないノーマルカメラを含む複数のカメラと接続可能であってもよい。この場合、前記検査部は、前記ノーマルカメラから取得した検査対象画像に対する前記検査処理を実行し、当該検査処理の結果と、前記スマートカメラから受け取った当該スマートカメラによる検査処理の結果とに基づいて、最終結果を判定することができる。この構成によれば、スマートカメラには単独で撮像から検査処理まで実行させるとともに、コントローラはノーマルカメラから取得した検査対象画像に対して検査処理を実行し、両検査結果に基づいて最終結果の判定が可能であるため、幅広い組合せの使い方ができる。
【0021】
別の態様に係るコントローラは、画像検査機能を搭載しないノーマルカメラを含む複数のカメラと接続可能であるとともに、接続されたカメラがスマートカメラかノーマルカメラかの種別を認識可能に構成することもできる。前記設定部は、前記認識された種別に応じてカメラに対する設定可能な処理を変えてもよい。つまり、コントローラに接続されたカメラの種別を認識することで、カメラに対して実行可能な処理をカメラの種別に応じて設定することで、ユーザの操作性が向上する。
【発明の効果】
【0022】
以上説明したように、スマートカメラ単独で検査対象画像の生成処理から検査処理まで実行できるとともに、必要に応じて、スマートカメラが生成した検査画像の検査をコントローラで実行できるので、スマートカメラとコントローラとを連携させることができる。
【図面の簡単な説明】
【0023】
【
図1】本発明の実施形態に係る画像検査システムの構成を示す概略図である。
【
図3】カメラ連動モードの概要を説明する図である。
【
図4】カメラ独立モードの概要を説明する図である。
【
図5】既存のスマートカメラを、増設したコントローラに接続する例を示す図である。
【
図6】スマートカメラの第1検査設定を、PCを介してコントローラに移す場合の手順の例を示すフローチャートである。
【
図7】スマートカメラの第1検査設定をコントローラに直接移す場合の手順の例を示すフローチャートである。
【
図8】複数台のスマートカメラを同数のノーマルカメラに置き換えたシステム例を示す図である。
【
図9】複数台のスマートカメラの第1検査設定を、PCを介してコントローラに移す場合の手順の例を示すフローチャートである。
【
図10】スマートカメラとノーマルカメラとを併用して画像検査システムを構築する例を示す図である。
【
図11】スマートカメラで設定した第1検査設定をコントローラに移す場合の手順の例を示すフローチャートである。
【
図12】画像検査システムの運用例を示す図である。
【
図13】画像検査システムのモードの選択手順の一例を示すフォローチャートである。
【
図14】画像検査システムの第2モードの4つの使用形態を説明する図である。
【
図15】画像検査システムの運用例を説明する図である。
【
図16】接続されたカメラの種別認識に基づく設定手順の一例を示すフォローチャートである。
【
図17】スマートカメラで使用可能な画像生成処理の表示例を示す図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0025】
図1は、本発明の実施形態に係る画像検査システム1の構成を示す概略図であり、また、
図2は、画像検査システム1のブロック図である。画像検査システム1は、画像生成機能を搭載したノーマルカメラ101と、画像生成機能に加えて画像検査機能を搭載したカメラであるスマートカメラ102と、ノーマルカメラ101およびスマートカメラ102が接続可能なコントローラ10とを備えている。画像生成機能とは、ワーク(検査対象物ともいう)を撮像して検査対象画像を生成する機能である。また、画像検査機能とは、検査対象画像に対して一または複数種の検査処理を実行可能な機能であり、ノーマルカメラ101には搭載されていない。つまり、ノーマルカメラとは、画像検査機能を搭載しないカメラを意味する。画像検査機能は、スマートカメラ102だけでなく、コントローラ10にも搭載されている。
【0026】
画像検査システム1は、ノーマルカメラ101またはスマートカメラ102で撮像されたワークを検査するシステムである。ノーマルカメラ101およびスマートカメラ102は、例えば、複数のワークが順次搬送されるライン等に設置されており、搬送されてくるワークを順次撮像可能になっている。
【0027】
ノーマルカメラ101には画像検査機能が搭載されていないので、ノーマルカメラ101が生成した検査対象画像の検査はコントローラ10の画像検査機能によって実行される。一方、スマートカメラ102には画像検査機能が搭載されているので、スマートカメラ102が生成した検査対象画像の検査はスマートカメラ102で実行可能になっている。尚、後述するが、スマートカメラ102が生成した検査対象画像の検査の全部または一部をコントローラ10の画像検査機能によって実行してもよい。
【0028】
図1、
図2では、1台のノーマルカメラ101と、1台のスマートカメラ102をコントローラ10に同時に接続した運用形態について示しているが、接続されるカメラの数は、これに限られるものではなく、複数台のノーマルカメラ101と、複数台のスマートカメラ102をコントローラ10に同時に接続した運用形態を採ることもできる。
【0029】
また、1台または複数台のノーマルカメラ101をコントローラ10に接続し、スマートカメラ102をコントローラ10に接続しない運用形態を採ることや、1台または複数台のスマートカメラ102をコントローラ10に接続し、ノーマルカメラ101をコントローラ10に接続しない運用形態を採ることもできる。
【0030】
スマートカメラ102は、それ単独で検査対象画像の検査を実行することができるので、コントローラ10に接続することなく、使用することができる。例えば、ワークが搬送されているラインが1つであり、ワークの1箇所のみ検査すればよい場合には、1台のスマートカメラ102を現場に導入し、コントローラ10を導入することなく運用することで特段の問題は生じない。
【0031】
ところが、AI(人工知能)を用いた画像検査技術の発展に伴い、推論や学習の負荷により、スマートカメラ102単独では処理能力が不足する事態が起こり得る。つまり、スマートカメラ102単独で画像検査の運用を開始した後、処理能力を増強するためにコントローラ10を使用した検査の運用に切り替えたいというニーズが想定される。
【0032】
また、スマートカメラ102の導入後、ラインを増やしたり、ワークの複数箇所を同時に検査したくなった場合には、処理能力の増強を図るため、複数台のカメラを追加導入する必要がある。このとき、スマートカメラ102を複数台導入することも考えられるが、スマートカメラ102は画像検査機能が搭載されている分、コストが高く、複数台の導入に要するコストは高額になる。そこで、より安価なノーマルカメラ101を複数台導入して処理能力を増強することが考えられる。ノーマルカメラ101は画像検査機能が搭載されていないので、コントローラ10と一緒に導入することが前提となるが、コントローラ10には複数台のノーマルカメラ101が接続可能になっており、各ノーマルカメラ101で生成された画像を高速で検査できるので、コントローラ10の導入台数は少なくて済み、トータルで見たときの導入コストはスマートカメラ102を複数台導入する場合に比べて削減できる。
【0033】
後からノーマルカメラ101とコントローラ10を導入した場合に問題となるのが、新たに導入したノーマルカメラ101を使用した検査をコントローラ10で実行しようとした時、検査設定をコントローラ10側で新たに作り直す必要があり、手間と時間がかかる点である。本実施形態に係る画像検査システム1では、この問題を解決することができる機能を搭載している。以下、各カメラ101、102の構成およびコントローラ10の構成について具体的に説明する。
【0034】
(ノーマルカメラの構成)
図2に示すように、ノーマルカメラ101は、撮像部101aと照明部101bとを備えている。撮像部101aは、例えばCCD(電荷結合素子)、CMOS(相補性金属酸化膜半導体)等からなるイメージセンサで構成されているが、ワークを撮像可能なイメージセンサであればよい。照明部101bは、撮像部101aによる撮像時にワークを照明する部分であり、例えば発光ダイオード等の発光体を有している。また、
図1に示すように、ノーマルカメラ101にはワークから反射した光が入射するレンズで構成された光学系101dが設けられている。
【0035】
撮像部101aおよび照明部101bは、ノーマルカメラ101に内蔵されたカメラ側制御部101cによって制御される。例えば外部からトリガ信号が入力されると、予め設定された撮像設定に従ってカメラ側制御部101cが撮像部101aおよび照明部101bを制御し、照明部101bが所定のタイミングでワークを照明し、照明されたワークを撮像部101aが所定の露光時間で撮像する。照明部101bの光量や撮像部101aのゲイン等は、撮像設定で規定されている。尚、カメラ側制御部101cは、ノーマルカメラ101以外の機器、例えばコントローラ10に内蔵されていてもよい。また、照明部101bは、ノーマルカメラ101とは別体とされていてもよく、撮像部101aとは異なる場所からワークを照明するように構成されていてもよい。この場合、照明部101bの制御は、コントローラ10によって行うことができる。
【0036】
また、カメラ側制御部101cは、撮像部101aで取得された画像に例えば前処理等の各種処理を実行することにより、検査対象画像を生成する。従って、ノーマルカメラ101の画像生成機能は、撮像部101aとカメラ側制御部101cとによって構成される。ノーマルカメラ101の画像生成機能により生成された検査対象画像は、信号線を介してコントローラ10に出力される。尚、撮像部101aを制御する部分と、撮像部101aで取得された画像に各種処理を実行する部分とは、別に構成されていてもよい。また、撮像部101aで取得された画像をそのままコントローラ10に出力してもよい。この場合、ノーマルカメラ101の画像生成機能は、撮像部101aによって構成されることになる。
【0037】
(スマートカメラの構成)
スマートカメラ102は、撮像部102aと照明部102bとカメラ側制御部102cと光学系102dとを備えている。スマートカメラ102の撮像部102aおよび照明部102bは、ノーマルカメラ101の撮像部101aおよび照明部101bと同様に構成されている。従って、スマートカメラ102の画像生成機能は、撮像部102aとカメラ側制御部102cとによって構成される。スマートカメラ102のカメラ側制御部102cおよび光学系102dも、ノーマルカメラ101のカメラ側制御部101cおよび光学系101dと同様に構成されている。
【0038】
スマートカメラ102の画像生成機能は、取得した画像を、画像検査に適した画像に加工し、画像検査の性能向上/処理負荷を軽減することが可能な機能を含んでいる。例えば、ソベルフィルタにより、エッジ情報を強調した画像に加工する処理や、事前に学習した情報に基づき、検査対象の欠陥部分を強調した画像に加工する処理を実現する機能も、スマートカメラ102の画像生成機能に含まれる。
【0039】
スマートカメラ102の画像生成機能は、画像合成処理も含んでいる。例えば、撮像条件が異なる複数枚の画像を取得し、それらを合成することで、画像検査に適した画像に加工する処理も実行可能である。具体的には、露光時間を変化させて複数枚の画像を取得し、それらを合成することで、高ダイナミックレンジ画像を生成する機能や、異なる照明条件(照明の光量、光の波長、照明方向など)で取得した複数枚の画像を合成することで、検査対象の欠陥部分を強調した画像を生成する機能である。欠陥部分は、例えば傷等である。
【0040】
スマートカメラ102の画像生成機能は、取得した画像の一部を切り出すROI処理も含んでいる。例えば、事前に設定されたピクセル位置情報に基づき、取得画像の一部を切り出す処理や、取得画像の中から検査対象の位置をサーチし、検査対象が映っている部分の画像を切り出す処理である。
【0041】
スマートカメラ102は、記憶部102eおよび検査部102fも備えている。記憶部102eは、スマートカメラ102のハードウェアに関する第1環境設定と、当該スマートカメラ102で撮像された画像に対する第1検査設定とを記憶する部分である。第1環境設定は、スマートカメラ102のハードウェアと第1検査設定との間でハードウェアの違いを吸収する役割を持っており、ハードウェアが異なれば第1環境設定も異なる。
【0042】
第1環境設定には、スマートカメラ102のハードウェアが有する入出力端子の設定、ネットワーク設定、データサイズなどの産業用イーサネット設定、カメラの名称、アカウント設定等が含まれている。さらに、ネットワーク設定には、IPアドレス設定、出力設定の出力先としてのFTPサーバー設定が含まれている。また、産業用イーサネットとしては、例えばEtherNet/IP、PROFINET、EtherCATなどが挙げられる。また、アカウント設定には、管理者権限のパスワード、オペレーター権限での各操作可否(検査設定切換可否、検査設定保存可否など)が含まれている。また、スマートカメラ102のハードウェアが有する入出力端子と、当該端子を介して外部から受信する信号に関する情報との対応関係は、第1環境設定に含まれる。
【0043】
一方、第1検査設定は、スマートカメラ102のハードウェアに依存しないものであり、検査についての設定のみで構成されている。よって、ハードウェアが異なっても第1検査設定は同じ場合がある。この第1検査設定には、カメラの撮像設定に関連する撮像設定ツール、カメラにより撮像された検査対象画像に対する検査領域の位置決めを行う位置決め設定に関連する位置決め設定ツール、位置決めされた検査領域に対する検査内容を設定する検査設定に関連する検査設定ツール、検査結果の出力に関する設定を行う出力設定に関連する出力ツール、運転画面設定等が含まれている。位置決め設定ツールが撮像設定ツールの後に実行され、検査設定ツールが位置決め設定ツールの後に実行され、出力ツールが検査設定ツールの後に実行される。
【0044】
撮像設定ツールには、スマートカメラ102の第1撮像条件が含まれている。さらに、撮像設定ツールとしては、スマートカメラ102の撮像設定に関する第1撮像設定も含まれており、第1撮像設定はスマートカメラ102の記憶部102eに記憶される。
【0045】
コントローラ10に複数のカメラが接続されている場合、撮像設定ツールには、コントローラ10に接続された複数のカメラのいずれかを指定するためのカメラ指定パラメータを含むことができる。カメラ指定パラメータにより、特定のカメラを指定することが可能になる。
【0046】
スマートカメラ102が後述するコントローラ10から第2検査設定を取得した場合、記憶部102eにはコントローラ10から取得した第2検査設定が記憶される。この第2検査設定は、コントローラ10に接続されたカメラで撮影された画像に対する検査設定であり、コントローラ10の記憶部14に記憶されている。
【0047】
スマートカメラ102の検査部102fは、ハードウェアで構成されていてもよいし、ハードウェアとソフトウェアとの組み合わせで構成されていてもよい。検査部102fは、記憶部102eに記憶されている第1検査設定を取得し、第1検査設定に基づく検査を実行する部分である。具体的に説明すると、検査部102fは、スマートカメラ102で生成された検査対象画像に対する検査領域の位置決め処理を実行した後、位置決めされた検査領域に対して予め設定された検査内容で検査処理を実行し、検査結果を外部に出力する出力処理を実行する。検査部102fによる位置決め処理では、予め設定された位置決め設定が用いられる。例えばワークの一部のみを検査対象とする場合には、その検査対象領域のワークにおける相対的な位置および大きさを特定する情報が位置決め設定に含まれる。また、位置決め設定には、検査対象領域を抽出する処理、検査対象領域が所望の姿勢となるように当該検査対象領域を回転したり、検査対象領域が所望の大きさとなるように当該検査対象領域を拡大ないし縮小させる処理なども含まれる。
【0048】
検査部102fによる検査処理では、予め設定された検査設定が用いられる。検査設定には、位置決めされた検査領域に対する検査内容が含まれる。具体例を示すと、ワークに組み付けられている部品の有無、傷の有無、基準寸法内であるか否か、印字の有無といった検査内容が含まれる。
【0049】
検査部102fによる出力処理では、予め設定された出力設定が用いられる。出力設定には、出力するデータ(検査対象画像を出力するか否かなど)、検査結果の出力先、出力タイミング等のように、検査結果の出力に関する設定が含まれる。
【0050】
スマートカメラ102は、コントローラ10に接続されたか否かを自動で検出可能に構成されている。すなわち、例えば、スマートカメラ102がコントローラ10と産業用イーサネットを介して接続される場合、スマートカメラ102は、当該スマートカメラ102の産業用イーサネットにコントローラ10が接続されているか否かを判定し、その判定結果に基づいてコントローラ10に接続されていることを検出すると、画像検査機能を実行することなく、画像の生成だけを実行することが可能に構成されている。この場合、スマートカメラ102は、ノーマルカメラ101のように動作することになる。尚、ユーザ設定により、スマートカメラ102をノーマルカメラ101のように動作させてもよい。
【0051】
(コントローラおよび周辺機器の構成)
コントローラ10には、表示部30および操作部40が接続されている。表示部30および操作部40は、画像検査システム1を構成するものである。表示部30は、例えば液晶ディスプレイ装置や有機ELディスプレイ装置等で構成されており、コントローラ10によって制御される。表示部30には、例えば、コントローラ10で生成された表示画像、ノーマルカメラ101およびスマートカメラ102で生成された検査対象画像、検査結果等が表示される。
【0052】
操作部40は、ユーザが各種入力操作を行うための操作機器等で構成されている。操作部40が操作されると、その操作内容がコントローラ10の入力部13で検出される。操作部40には、例えばキーボード40a、マウス40b、タッチパネル40c等が含まれる。タッチパネル40cは、ユーザによるタッチ操作を検出可能に構成されている。タッチパネル40cと表示部30とは一体化してもよく、この場合、例えば表示部30に表示したユーザインタフェースをタッチパネル40cで直接的に操作してもよい。
【0053】
画像検査システム1は、
図1にのみ示すパーソナルコンピュータ(以下、PCという)35を含んでいてもよい。PC35を含む場合、表示部30や操作部40は、PC35の本体部分に接続されていてもよい。この場合、PC35の本体部分を介して表示部30が制御され、また操作部40の操作状態はPC35の本体部分を介してコントローラ10で取得される。
【0054】
また、PC35を含む場合、コントローラ10の機能の一部のみまたは全部をPC35で実行可能にしてもよい。すなわち、コントローラ10の機能の一部のみまたは全部は、PC35に内蔵されているCPU(中央演算処理装置)、ROM、RAM等によって構成可能な部分であるため、コントローラ10以外の機器で当該コントローラ10の機能を実行することもできる。
【0055】
コントローラ10は、当該コントローラ10に接続されているスマートカメラ102、又はノーマルカメラ101で撮像した画像を取得する取得部11と、検査部12と、入力部13と、記憶部14と、設定部15とを備えている。記憶部14は、例えばソリッドステートドライブやハードディスクドライブ等で構成される。記憶部14は、PC35に設けられていていてもよく、この場合もコントローラ10に設けた場合と同様に各種データを記憶させることができる。また、記憶部14は、ネットワークを介してコントローラ10やPC35に接続された外部記憶装置で構成されていてもよい。
【0056】
取得部11、検査部12、入力部13および設定部15は、ハードウェアで構成されていてもよいし、ハードウェアとソフトウェアとの組み合わせで構成されていてもよい。例えば、コントローラ10にはCPUが内蔵されている。このCPUは、ROM、RAMなどに接続されており、与えられた信号やデータを処理して各種の演算を行い、演算結果を出力する。そのような動作を実行可能なCPU、ROM、RAMなどによって取得部11、検査部12、入力部13および設定部15が構成されていてもよい。また、取得部11、検査部12、入力部13および設定部15は、各々が独立した演算処理装置で構成されていてもよい。
【0057】
取得部11は、スマートカメラ102が生成した検査対象画像以外にも、スマートカメラ102に設定されている第1検査設定も取得する。取得部11がスマートカメラ102から取得した第1検査設定は、記憶部14に記憶される。また、記憶部14には、コントローラ10に接続されたノーマルカメラ101またはスマートカメラ102で撮影された画像に対する第2検査設定も記憶される。
【0058】
さらに、記憶部14には、コントローラ10のハードウェアに関する第2環境設定も記憶される。第2環境設定は、ハードウェアの違いを吸収する役割を持っており、スマートカメラ102のハードウェアに関する第1環境設定と同様な項目が含まれている。すなわち、第2環境設定には、コントローラ10のハードウェアが有する入出力端子の設定、ネットワーク設定、データサイズなどの産業用イーサネット設定、カメラの名称、アカウント設定等が含まれている。また、コントローラ10のハードウェアが有する入出力端子と、当該端子を介して外部から受信する信号に関する情報との対応関係は、第2環境設定に含まれる。
【0059】
コントローラ10の検査部12は、取得部11により取得した画像に対して第1検査設定に基づく検査を実行する部分である。取得部11がノーマルカメラ101から検査対象画像を取得した場合、検査部12は、ノーマルカメラ101から取得した検査対象画像に対して第1検査設定に基づく検査を実行する。コントローラ10の検査部12は、少なくとも、スマートカメラ102の検査部102fと同等の処理が実行可能に構成されている。本実施形態では、コントローラ10の検査部12の方がスマートカメラ102の検査部102fよりも処理性能が高くなっており、複雑な処理を高速で完了できる。コントローラ10の検査部12では、例えばAIを用いた推論処理等も高速で処理できる。
【0060】
また、取得部11がスマートカメラ102から検査対象画像を取得した場合、検査部12は、スマートカメラ102から取得した検査対象画像に対して第1検査設定に基づく検査を実行することもできる。本実施形態では、上述したようにスマートカメラ102がコントローラ10に接続されたことを検出すると、画像検査機能を実行することなく、検査対象画像の生成だけを実行可能に構成されているので、コントローラ10の検査部12は、当該コントローラ10に接続されたスマートカメラ102により生成された画像に対して、第1検査設定に基づいて検査を実行する。また、記憶部14に第2検査設定が記憶されている場合には、検査部12は、スマートカメラ102が生成した画像に対して第2検査設定に基づく検査を実行する。これにより、コントローラ10側の第2検査設定をスマートカメラ102で使うこともできるようになるため、コントローラ10を用いた運用からスマートカメラ102単独運用への切り替えも容易に行える。
【0061】
本実施形態では、コントローラ10の検査部12が複数のコアを備えている。コントローラ10に複数のカメラ(ノーマルカメラ101および/またはスマートカメラ102)が接続されている場合には、複数のコアを構成している各コアは、当該コントローラ10に接続された複数のカメラの各カメラごとに割り当てられ、対応するカメラが生成した画像に対して、第1検査設定に基づく検査を実行する。
図2では、検査部12が第1コア12aおよび第2コア12bを備えている例を示している。この例の場合、コントローラ10に第1カメラと第2カメラが接続されているとすると、第1カメラに第1コア12aが割り当てられ、対応する第1カメラが生成した画像に対して、第1検査設定に基づく検査を実行し、また第2カメラに第2コア12bが割り当てられ、対応する第2カメラが生成した画像に対して、第1検査設定に基づく検査を実行する。コアの数は、3つ以上であってもよく、コントローラ10に接続されるカメラも3台以上であってもよい。このように、マルチコアの各コアをカメラごとに割り当てることで、コア間のジッター(信号波形の揺らぎ)を抑えることができる。
【0062】
スマートカメラ102はノーマルカメラ101に比べて高性能なカメラであることが多く、スマートカメラ102では実行可能な撮像条件であっても、ノーマルカメラ101では実行できない場合がある。このことに対応して、コントローラ10の検査部12は、ノーマルカメラ101が、スマートカメラ102の第1撮像条件に含まれるパラメータ値を再現できない場合、当該パラメータ値を修正した第2撮像条件を生成し、第1検査設定の第1撮像条件を第2撮像条件に置き換えた検査設定に基づいて、ノーマルカメラ101が生成した画像に対して検査を実行する。
【0063】
すなわち、検査部12は、ノーマルカメラ101が実行可能なパラメータ値を読み込んでおき、スマートカメラ102の第1撮像条件に含まれるパラメータ値と、ノーマルカメラ101が実行可能なパラメータ値とを比較する。そして、スマートカメラ102の第1撮像条件に含まれるパラメータ値をノーマルカメラ101が再現可能な否かを検査部12が判定する。スマートカメラ102の第1撮像条件に含まれるパラメータ値をノーマルカメラ101が再現可能と判定される場合には、スマートカメラ102の第1撮像条件でノーマルカメラ101が生成した画像に対して、検査部12が検査を実行する。一方、スマートカメラ102の第1撮像条件に含まれるパラメータ値をノーマルカメラ101が再現不可と判定される場合には、ノーマルカメラ101で対応可能なパラメータ値に修正した第2撮像条件でノーマルカメラ101が生成した画像に対して、検査部12が検査を実行する。
【0064】
例えば、スマートカメラ102はズーム機能を有しているが、ノーマルカメラ101はズーム機能を有していない場合がある。このような場合、スマートカメラ102のパラメータ値のうち、ノーマルカメラ101で再現可能となるパラメータ値としては、露光時間、ゲイン、ROI等である。
【0065】
一方、ズーム機能を有するスマートカメラ102のパラメータ値のうち、ノーマルカメラ101で再現不可となるパラメータ値としては、ズームレンズ位置、フォーカスレンズ位置、ダウンスケーリング係数等がある。ダウンスケーリングとは、対象となる画像の画素分解能を下げる処理のことをいう。例えば撮像素子の全部または一部の領域である出力領域に対応する撮像画像に対して、ダウンスケーリングを実行することによって、当該撮像画像よりも小さな画素数の検査対象画像を生成することができるものである。
【0066】
また、スマートカメラ102の第1撮像条件には、スマートカメラ102でのみ実行できる機能、即ちノーマルカメラ101では実行できない機能が含まれている場合がある。このように、ノーマルカメラ101がスマートカメラ102の第1撮像条件を実行するための機能を備えていない場合には、コントローラ10の検査部12は、第1検査設定のうち、第1撮像条件を無効化する。ノーマルカメラ101では実行できない機能としては、例えば高度な画像処理等を挙げることができる。
【0067】
コントローラ10の検査部12が第1撮像条件を無効化した場合、無効化したことをエラー情報として外部に出力してもよい。例えば、表示部30のユーザインタフェースにエラー情報を表示させることで、第1撮像条件を無効化したことをユーザに報知できる。
【0068】
入力部13は、ノーマルカメラ101の撮像に関する第2撮像設定の入力を受け付け可能に構成されている。ユーザは、表示部30に表示されたユーザインタフェースを見ながら、操作部40を用いて第2撮像設定の入力操作を行うことができる。ユーザの入力操作は、入力部13で受け付けられ、第2撮像設定として記憶部14に記憶される。この場合、コントローラ10の検査部12は、第2撮像設定に基づいてノーマルカメラ101が生成した画像に対して、第1検査設定に基づく検査を実行する。つまり、検査設定を、環境設定だけでなく撮像設定とも切り分けることができ、検査設定を取得してきたスマートカメラ102とは異なるノーマルカメラに対しても、第2撮像設定として撮像設定だけ別途追加することで、スマートカメラ102から取得した第1検査設定を適用することができる。
【0069】
コントローラ10の検査部12は、ノーマルカメラ101から取得した検査対象画像に対する検査処理を実行した場合、当該検査処理の結果と、スマートカメラ102から受け取った当該スマートカメラ102による検査処理の結果とに基づいて最終結果を判定するように構成することもできる。この場合、ノーマルカメラ101から取得した検査対象画像に対する検査処理の結果と、スマートカメラ102による検査処理の結果との一方でも不良であれば、最終結果を不良としてもよいし、ノーマルカメラ101から取得した検査対象画像に対する検査処理の結果と、スマートカメラ102による検査処理の結果との両方が良でなければ、最終結果を良としないようにしてもよい。
【0070】
(カメラ独立モード・カメラ連動モード)
コントローラ10は、カメラ独立モードとカメラ連動モードとに切替可能に構成されている。カメラ独立モードは、コントローラ10に接続された複数のカメラの各カメラごとに設定された検査設定に基づいて、各カメラから取得した画像の検査を実行するモードである。カメラ独立モードでは、コントローラに接続された各カメラがスマートカメラのように独立して動作する。カメラごとに検査設定を分けて設定可能であり、互いの設定内容は異なってもよいし、同じでもあってもよい。
【0071】
一方、カメラ連動モードは、コントローラ10に接続された複数のカメラに共通の検査設定に基づいて、各カメラから取得した画像の検査を実行するモードである。カメラ連動モードでは、コントローラ10に接続されたすべてのカメラが連携して動作し、コントローラ10に対して検査設定が割り当てられる。例えば、1つのワークを異なる角度・方法で撮影し、複数の画像に対して単一の検査設定に基づいて検査する場合などに適用できる。
【0072】
ユーザが操作部40を操作することで、カメラ独立モードとカメラ連動モードとのうち、いずれかのモードの選択を行うことができる。この操作はモード選択操作である。入力部13は、いずれかのモードの選択を受け付けることが可能に構成されている。
【0073】
入力部13がカメラ連動モードの選択を受け付けた場合には、コントローラ10のモードがカメラ連動モードとなる一方、入力部13がカメラ独立モードの選択を受け付けた場合には、コントローラ10のモードがカメラ独立モードとなる。これにより、幅広い使い方が可能になる。
【0074】
コントローラ10がカメラ連動モードの場合、スマートカメラ102とコントローラ10とで同じ検査設定を使うことができない。カメラ連動モードにおける検査設定は複数のカメラで使用するものであり、撮像設定ツールにおいてカメラの指定が必要になるためである。一方、カメラ独立モードやスマートカメラ102で検査する場合には、撮像部は1つなので撮像設定ツールにおいてカメラの指定は不要である。
【0075】
このことに対応して、コントローラ10の検査部12は、入力部13がカメラ独立モードの選択を受け付け、カメラ独立モードでの動作時にのみ、スマートカメラ102から取得した第1検査設定を、他のカメラから取得した画像に対して適用可能に構成されている。
【0076】
また、入力部13は、カメラ連動モードの選択を受け付けた場合、共通の検査設定のカメラ指定パラメータを介して、コントローラ10に接続された複数のカメラの指定を受け付ける一方、カメラ独立モードの選択を受け付けた場合、各カメラごとに検査設定を受付可能に構成されている。すなわち、カメラ連動モードでは、各カメラに共通の検査設定に含まれる撮像設定ツール内でカメラ連動モードの対象となる複数のカメラを指定する。このカメラの指定が必要となるため、撮像設定ツールでカメラの指定が不要なスマートカメラ102の検査設定を使うことができないが、カメラ独立モードでは、各カメラごとに検査設定が割り当てられるため、カメラの指定が不要であり、スマートカメラ102との間で検査設定を共通化できる。
【0077】
例えば、
図3にカメラ連動モードの概要を示しているように、ノーマルカメラであるカメラAとカメラBとがコントローラ10に接続されていた場合、検査設定と環境設定とが共に共通化される。一方、
図4は、例えば同じ検査を実行するラインが現場に複数あり、コントローラ10のモードがカメラ独立モードである場合を示している。
【0078】
図4では、スマートカメラ102と、ノーマルカメラであるカメラAとカメラBとが接続されたコントローラ10があり、スマートカメラ102には検査設定と環境設定とがそれぞれ記憶されている。スマートカメラ102の検査設定には、トリガ信号による撮像か、トリガ信号によらない定期的な撮像かの情報が含まれるとともに、撮像時にワークを照明するか否かの情報も含まれる。
スマートカメラ102の環境設定に含まれる端子設定の「端子1」は撮像実行信号としてのトリガ信号であり、「端子2」は照明実行信号として照明信号である。この関係は、ハードウェアが有する端子と、当該端子を介して外部から受信する信号に関する情報との対応関係である。
【0079】
コントローラ10の検査設定には、トリガ信号による撮像か、トリガ信号によらない定期的な撮像かの情報が含まれるとともに、撮像時にワークを照明するか否かの情報も含まれる。コントローラ10の環境設定に含まれる端子設定の「端子1」はカメラAに対する撮像実行信号としてのトリガ信号であり、「端子2」はカメラAに対する照明実行信号としての照明信号であり、「端子3」はカメラBに対する撮像実行信号としてのトリガ信号であり、「端子4」はカメラBに対する照明実行信号としての照明信号である。このように、どの端子で撮像実行信号または照明信号を受信するのかを示す物理的な情報がコントローラ10の環境設定に含まれている。検査設定には、トリガ信号による撮像か、トリガ信号によらない定期的な撮像かの情報が含まれるとともに、撮像時にワークを照明するか否かの情報も含まれる。
【0080】
(具体事例1)
例えば、
図5の上側に示すように、スマートカメラ102のみで検査を実行していたが、検査したい項目が追加された場合や、検査ツールを追加したところ、処理時間が長くなってしまい、検査のタクトに間に合わなくなってしまう場合がある。一方、コントローラ10は、スマートカメラ102よりも処理能力が高い。そこで、
図5の下側に示すように、既存のスマートカメラ102に加えてコントローラ10を増設して対応することとした。
【0081】
この事例では、既存のスマートカメラ102をコントローラ10に接続し、スマートカメラ102で使っていた第1検査設定をコントローラ10の取得部11が取得して記憶部14に記憶させる。コントローラ10の検査部12は、スマートカメラ102が生成した画像に対して第1検査設定に基づく検査を実行する。コントローラ10に接続されたスマートカメラ102では画像検査機能を使わないので、ノーマルカメラ101と同様なカメラとして動作することになる。
【0082】
スマートカメラ102で使っていた第1検査設定をコントローラ10で取得する方法としては少なくとも2通りある。一つはスマートカメラ102の第1検査設定を、PC35を介してコントローラ10に移す方法であり、もう一つはスマートカメラ102の第1検査設定をコントローラ10に直接移す方法である。
【0083】
図6は、スマートカメラ102の第1検査設定を、PC35を介してコントローラ10に移す場合の手順の例を示すフローチャートである。スタート後のステップSA1では、PC35をスマートカメラ102に接続する。ステップSA2では、スマートカメラ102の第1検査設定をPC35に移し、PC35で一旦保存する。ステップSA2の後、ステップSA3では、スマートカメラ102をコントローラ10に接続する。ステップSA4ではPC35をコントローラ10に接続する。ステップSA3とステップSA4の順番が反対であってもよいし、同時であってもよい。ステップSA4の後、ステップSA5では、PC35内に保存されている第1検査設定をコントローラ10に移す。
【0084】
図7は、スマートカメラ102の第1検査設定を、PC35を介することなく、コントローラ10に直接移す場合の手順の例を示すフローチャートである。スタート後のステップSB1では、スマートカメラ102をコントローラ10に接続する。その後、ステップSB2に進み、スマートカメラ102の第1検査設定をコントローラ10に移す。
【0085】
(具体事例2)
図8の左側に示すように、あるラインでは3台のスマートカメラ102を使用して画像検査システムを構成していたとする。これと同等な検査を実行可能な画像検査システムが別ラインで必要になった場合、安価に構築する場合には、高価なスマートカメラ102をノーマルカメラ101に置き換えるとともにコントローラ10を増設する。これにより、トータルのコストを低減できる。尚、一般的には、2台以上のスマートカメラ102を、同数のノーマルカメラ101とコントローラ10の組み合わせに置き換えることで、コストメリットがある。
【0086】
この場合、既存のスマートカメラ102をコントローラ10に接続し、各スマートカメラ102で使っていた第1検査設定をコントローラ10の取得部11が取得して記憶部14に記憶させる。3台のスマートカメラ102の第1検査設定が互いに異なる場合があり、その場合には、3つの第1検査設定をコントローラ10の取得部11が取得して記憶部14に記憶させる。コントローラ10の検査部12は、各ノーマルカメラ101が生成した画像に対して対応する第1検査設定を割り当て、割り当てた第1検査設定に基づく検査を実行する。
【0087】
図9は、複数台のスマートカメラ102の第1検査設定を、PC35を介してコントローラ10に移す場合の手順の例を示すフローチャートである。スタート後のステップSC1では、PC35をスマートカメラ102に接続する。ステップSC2では、スマートカメラ102の第1検査設定をPC35に移し、PC35で一旦保存する。ステップSC3では、ステップSC1、ステップSC2をスマートカメラ102の台数分繰り返す。これにより、複数のスマートカメラ102の第1検査設定を全てPC35に保存できる。
【0088】
その後、ステップSC4に進み、PC35をコントローラ10に接続する。ステップSC5では、ステップSC2でPC35に移した第1検査設定を当該PC35からコントローラ10に移す。ステップSC6では、ステップSC5をノーマルカメラ101の台数分繰り返す。
【0089】
(具体事例3)
図10は、スマートカメラ102とノーマルカメラ101とを併用して画像検査システムを構築する例を示している。前提として、コントローラ10に接続可能なカメラの上限台数が4台であるとする。現場にはワークが搬送されるラインが5つあり、ライン1~5にそれぞれカメラを設置する必要がある。コントローラ10とノーマルカメラ101を併用する場合には、コントローラ10に接続可能なカメラの台数が4台までなので、1台足らない。新たに2台目のコントローラ10とノーマルカメラ101を導入する方法もあるが、コントローラ10とノーマルカメラ101を合わせたコストは、1台のスマートカメラ102よりも高額になるので、スマートカメラ102を1台組み合わせてライン1~5の検査に対応可能にする。
【0090】
この場合、スマートカメラ102の第1検査設定をコントローラ10の取得部11が取得して記憶部14に記憶させる。コントローラ10の検査部12は、各ノーマルカメラ101が生成した画像に対し、対応する第1検査設定を割り当て、割り当てた第1検査設定に基づく検査を実行する。
【0091】
具体的には、
図11のフローチャートに示すように、スタート後のステップSD1ではスマートカメラ102で第1検査設定を行う。ステップSD2では、PC35をスマートカメラ102に接続する。ステップSD3では、スマートカメラ102の第1検査設定をPC35に移してPC35で保存する。ステップSD4では、PC35をコントローラ10に接続する。ステップSD5では、ステップSD3でPC35に保存した第1検査設定をPC35からコントローラ10に移す。尚、図示しないが、コントローラ10で検査設定を先に行っている場合には、コントローラ10の検査設定をスマートカメラ102に移して当該スマートカメラ102の検査処理で検査を実行してもよい。
【0092】
(運用例)
図12は、画像検査システム1の運用例を示す図である。画像検査システム1は、コントローラ10に接続されたノーマルカメラ101と、PLC(プログラマブルロジックコントローラ)9に接続されたスマートカメラ102とを備えている。PLC9には、検査開始ボタン9aが接続されている。
【0093】
ワークWには、第1部品W1と第2部品W2とが組み付けられている。第1部品W1と第2部品W2とが組み付けられたワークWは、図示しない載置台に載置されて検査される。ノーマルカメラ101は、第1部品W1の有無を検出するためのカメラであり、またスマートカメラ102は、第2部品W2の有無を検出するためのカメラである。
【0094】
ユーザが検査開始ボタン9aを操作すると、PLC9からコントローラ10およびスマートカメラ102にトリガ信号が出力される。トリガ信号を受信したノーマルカメラ101およびスマートカメラ102は撮像処理を実行して検査対象画像を生成する。ノーマルカメラ101が生成した検査対象画像は、コントローラ10の検査部12で検査処理されて検査結果がコントローラ10からPLC9に出力される。一方、スマートカメラ102が生成した検査対象画像は当該スマートカメラ102の検査部102fで検査処理されて検査結果がスマートカメラ102からPLC9に出力される。
【0095】
PLC9は、コントローラ10から出力された検査結果と、スマートカメラ102から出力された検査結果とを総合してワークWが良品であるか不良品であるかを判定する。判定結果は、図示しない表示部等に表示される。不良品であれば、画像上で不良箇所が明示される。
【0096】
(スマートカメラ内検査モード・コントローラ内検査モード)
コントローラ10は、スマートカメラ内検査モード(第1モード)とコントローラ内検査モード(第2モード)とに切替可能に構成されている。スマートカメラ内検査モードは、コントローラ10に接続されたスマートカメラ102が単独で、検査対象画像の生成処理と当該検査対象画像に対する検査処理とを実行するモードであり、検査対象画像に対する検査処理は、スマートカメラ102の検査部102fで実行する。
【0097】
一方、コントローラ内検査モードは、コントローラ10に接続されたスマートカメラ102が、検査対象画像の生成処理と当該検査対象画像のコントローラ10への転送処理とを実行し、コントローラ10が、当該転送された検査対象画像に対する検査処理を実行するモードであり、検査対象画像に対する検査処理は、コントローラ10の検査部12が実行する。
【0098】
コントローラ10の検査部12は、コントローラ内検査モードで、スマートカメラ102が取得した画像に当該スマートカメラ102が画像処理を適用して生成した検査対象画像を、当該スマートカメラ102から取得することもできる。この場合、コントローラ10の検査部12は、スマートカメラ102で画像処理された後の検査対象画像に対して検査処理を実行する。
【0099】
また、コントローラ10の検査部12は、コントローラ内検査モードで、スマートカメラ102が取得した複数の画像を当該スマートカメラ102が合成して生成した検査対象画像(合成画像)を、当該スマートカメラ102から取得することもできる。この場合、コントローラ10の検査部12は、スマートカメラ102で合成された合成画像に対して検査処理を実行する。
【0100】
また、コントローラ10の検査部12は、コントローラ内検査モードで、スマートカメラ102が複数の撮像画像に基づいて生成した3次元形状データを、当該スマートカメラ102から取得することもできる。3次元形状データは検査対象画像を構成するデータであり、この場合、コントローラ10の検査部12は、スマートカメラ102で生成した3次元形状データに対して検査処理を実行する。
【0101】
ユーザが操作部40を操作することで、スマートカメラ内検査モードとコントローラ内検査モードとのうち、いずれかのモードの設定を行うことができる。この操作は、モード設定操作である。また、コントローラ10が、スマートカメラ内検査モードとコントローラ内検査モードとのうち、いずれかのモードの設定処理を行ってもよく、この場合、モード設定処理である。モード設定操作およびモード設定処理は、設定部15によって受け付けられる。
【0102】
設定部15がスマートカメラ内検査モードの設定を受け付けた場合には、コントローラ10のモードがスマートカメラ内検査モードとなる一方、設定部15がコントローラ内検査モードの選択を受け付けた場合には、コントローラ10のモードがコントローラ内検査モードとなるので、コントローラ10の検査部12が検査対象画像に対する検査処理を実行する。
【0103】
設定部15は、コントローラ内検査モードが設定されている場合、コントローラ10に接続された一つのスマートカメラ102が生成した検査対象画像に対する検査処理が実行されずに転送された当該検査対象画像に対する検査処理の全てを実行する、第1形態の選択を更に受け付け可能に構成されている。設定部15で第1形態の選択が受け付けられると、コントローラ10の検査部12は検査処理の全てを実行するように動作する。すなわち、検査対象画像に対して複数の検査処理を実行するように設定されている場合があり、スマートカメラ102では処理の負担が大きくなる場合がある。この場合に、スマートカメラ102よりも処理能力の高いコントローラ10の検査部12が全ての検査処理を実行することで、スマートカメラ102は、画像生成に専念させることができ、検査を効率化できる。
【0104】
これに限られるものはなく、複数のスマートカメラ102がコントローラ10に接続されている場合には、次のようなことも可能である。例えば、設定部15は、コントローラ内検査モードが設定されている場合、コントローラ10に接続された複数のスマートカメラ102が生成した検査対象画像に対する検査処理が実行されずに転送された複数の検査対象画像に対する検査処理の全てを実行し、当該複数の検査対象画像に対する各検査処理の結果に基づいて総合判定を実行する、第2形態の選択を更に受付可能に構成されていてもよい。設定部15で第2形態の選択が受け付けられると、コントローラ10の検査部12は検査処理が実行されていない複数の検査対象画像に対する検査処理の全てを実行する。そして、検査部12は、複数の検査結果を取得し、各検査処理の結果に基づいて総合判定を実行する。例えば、複数の検査結果のうち1つでも不良である場合には総合判定を不良にする、または複数の検査結果の全てが良でなければ総合判定を良にしないといった判定を実行する。
【0105】
また、設定部15は、コントローラ内検査モードが設定されている場合、コントローラ10に接続された一つのスマートカメラ102が生成した検査対象画像に対する検査処理の一部が実行されて転送された検査対象画像に対する検査処理の残りの処理を実行する、第3形態の選択を更に受付可能に構成されていてもよい。設定部15で第3形態の選択が受け付けられると、コントローラ10の検査部12は実行されていない残りの検査処理を実行する。
【0106】
また、設定部15は、コントローラ内検査モードが設定されている場合、コントローラ10に接続された複数のスマートカメラ102が生成した複数の検査対象画像に対する各検査処理の一部がそれぞれ実行されて転送された複数の検査対象画像に対する各検査処理の残りの処理を実行し、当該複数の検査対象画像に対する各検査処理の結果に基づいて総合判定を実行する、第4形態の選択を更に受付可能に構成されていてもよい。設定部15で第4形態の選択が受け付けられると、コントローラ10の検査部12は複数の検査対象画像に対して残りの検査処理を実行する。
【0107】
(モードの選択)
本実施形態の画像検査システム1は、上述したようにスマートカメラ102とノーマルカメラ101を自由に接続して使用できる。画像検査システム1のモードの選択手順について
図13に示すフローチャートに基づいて説明する。
図13に示すフローチャートのスタート後のステップSE1では、画像検査の処理に必要な時間を算出する。ステップSE2では、スマートカメラが単独で検査処理を実行する第1モードでタクトタイムを満たすか否かを判定する。第1モードでタクトタイムを満たさない場合にはステップSE3に進み、スマートカメラとコントローラとが連携して検査処理を実行する第2モードを選択する。第1モードでタクトタイムを満たす場合にはステップSE4に進み、第1モードを選択する。
【0108】
ステップSE5は検査内容の変更である。例えばワークが変更されたことなどによって検査内容が変更された場合にはステップSE6に進み、処理内容を変更して処理に必要な時間を算出する。ステップSE7では、第1モードでタクトタイムを満たすか否かを判定する。第1モードでタクトタイムを満たさない場合にはステップSE8に進み、第2モード へ変更する。第1モードでタクトタイムを満たす場合にはステップSE9に進み、第1モードのまま使用する。
【0109】
第1モードで運用していたところ処理性能が不足したために第2モードへ移行する場合がある。この場合、第1モードで設定していたパラメータを第2モードに簡単に流用することが可能である。その方法として、コントローラ10が画像検査に必要なパラメータをカメラから取得し、画像検査を実行する方法を挙げることができる。
【0110】
次に、スマートカメラとコントローラとが連携して検査処理を実行する第2モードの使用形態1、使用形態2、使用形態3、使用形態4について、
図14に基づいて説明する。
図14のFIG.14Aは、使用形態1を示しており、スマートカメラ102で画像を取得し、検査対象画像を生成した後、検査対象画像をコントローラ10が取得してコントローラ10の検査部12が検査処理を実行する形態である。
【0111】
図14のFIG.14Bは、使用形態2を示しており、スマートカメラA、Bでそれぞれ画像を取得し、スマートカメラA、Bがそれぞれ検査対象画像を生成した後、複数の検査対象画像をコントローラ10が取得してコントローラ10の検査部12が複数の検査対象画像に対して検査処理を実行し、結果統合(最終結果の判定)を行う形態である。
【0112】
図14のFIG.14Cは、使用形態3を示しており、スマートカメラ102で画像を取得し、スマートカメラ102が検査対象画像を生成して検査部102fで検査処理の一部(カメラ担当分)を実行した後、検査対象画像をコントローラ10が取得してコントローラ10の検査部12が検査対象画像に対して残りの検査処理(コントローラ担当部分)を実行する形態である。
【0113】
図14のFIG.14Dは、使用形態4を示しており、スマートカメラA、Bでそれぞれ画像を取得し、スマートカメラA、Bがそれぞれ検査対象画像を生成して検査部102fで検査処理の一部(カメラ担当分)を実行した後、複数の検査対象画像をコントローラ10が取得してコントローラ10の検査部12が各検査対象画像に対して残りの検査処理(コントローラ担当部分)を実行する形態である。
【0114】
(運用例)
図15は、画像検査システム1の2つの運用例を示している。
図15のFIG.15Aは、刻印検査を行う例を示している。刻印検査を行う際には、まず、スマートカメラ102でワークを複数回撮像して複数の画像を取得する。取得した複数の画像を合成し、形状画像を生成する。スマートカメラ102は、生成した形状画像をコントローラ10に転送する。コントローラ10は、スマートカメラ102から転送された形状画像に基づいて文字領域を特定し、特定した文字領域に対してOCR処理(文字の読取処理)を実行する。コントローラ10は得られた読取結果を外部へ出力する。
【0115】
刻印検査と傷検査を行う際には、2台のスマートカメラを使用する。まず、スマートカメラAでワークを複数回撮像して複数の画像を取得する。取得した複数の画像を合成し、形状画像を生成する。スマートカメラBもワークを複数回撮像して複数の画像を取得し、取得した複数の画像を合成し、形状画像を生成する。スマートカメラAおよびスマートカメラBは、それぞれ、生成した形状画像をコントローラ10に転送する。コントローラ10は、スマートカメラAから転送された形状画像に基づいて文字領域を特定し、特定した文字領域に対してOCR処理を実行する。コントローラ10は得られた読取結果を外部へ出力する。また、コントローラ10は、スマートカメラBから転送された形状画像に基づいて傷の有無を判定する。コントローラ10は、文字の読取結果が期待値であると判定され、かつ、傷が無いと判定された場合に、「良」と判定する。
【0116】
図15のFIG.15Bは、文字領域の特定までスマートカメラ102で実行する例を示している。スマートカメラ102でワークを複数回撮像して複数の画像を取得する。取得した複数の画像を合成し、形状画像を生成する。スマートカメラ102は、生成した形状画像に基づいて文字領域を特定し、形状画像のうち、特定された文字領域のみをコントローラ10に転送する。これにより転送速度が向上する。コントローラ10は、スマートカメラ102が特定した文字領域に対してOCR処理を実行する。コントローラ10は得られた読取結果を外部へ出力する。なお、スマートカメラ102は、形状画像に基づいて文字領域を特定する処理と並列して、形状画像をコントローラ10に転送する処理を実行した後、特定した文字領域の位置情報をコントローラ10に転送しても良い。コントローラは、転送された形状画像に対して、当該位置情報に基づいて文字領域のOCR処理を実行することができる。一般的に画像の転送処理と比較して位置情報の転送処理には時間がかからないため、この場合も処理時間を短縮することができる。
【0117】
刻印検査と色違い部品の組付検査を行う場合には、スマートカメラ102とノーマルカメラ101とコントローラ10を使用する。スマートカメラ102でワークを複数回撮像して複数の画像を取得する。取得した複数の画像を合成し、形状画像を生成する。スマートカメラ102は、生成した形状画像をコントローラ10に転送する。コントローラ10は、スマートカメラ102から転送された形状画像に基づいて文字領域を特定し、特定した文字領域に対してOCR処理および識別し易さの算出を実行する。コントローラ10は、OCR処理結果からワークの種類を識別し、ノーマルカメラ101でワークを撮像して生成した検査対象画像中の所定の位置にあるべき部品の色を決定する。ノーマルカメラ101は検査対象画像を生成してコントローラ10に転送する。コントローラ10は、ノーマルカメラ101から転送された検査対象画像中の所定の位置に上記色の部品が存在するか否かを判定する。コントローラ10は、OCR処理の識別し易さが閾値以上で、かつ、検査対象画像の検査位置に上記色の部品が存在すると判定された場合に、「良」と判定する。ここでは、スマートカメラ102が生成して転送した形状画像に対して、コントローラ10がOCR処理および識別し易さの算出を実行した例を示したが、スマートカメラ102がOCR処理および識別し易さの算出まで実行し、OCR処理および識別し易さの結果をコントローラ10に転送しても良い。この場合、コントローラ10の検査部12は、ノーマルカメラから取得した検査対象画像に対して実行した検査処理の結果と、スマートカメラから受け取った検査処理の結果とに基づいて最終結果を判定することができる。
【0118】
(接続されたカメラの種別認識に基づく設定手順)
コントローラ10は、接続されたカメラがスマートカメラ102であるか、ノーマルカメラ101であるかの種別を認識可能に構成されている。スマートカメラ102およびノーマルカメラ101から種別の認識が可能な信号ないし情報をコントローラ10に出力する。スマートカメラ102およびノーマルカメラ101から出力された情報から特定されるカメラ型式が、コントローラ10に予め登録された型式の中に含まれていれば、カメラ種別が認識される。カメラの型式に基づいて、画素数、カラー撮像の可否、機能等を特定することができる。
【0119】
設定部15は、認識された種別に応じてカメラに対する設定可能な処理を変えるように構成されている。スマートカメラ102の場合には、スマートカメラ102に設定可能な処理とする一方、ノーマルカメラ101の場合には、ノーマルカメラ101に設定可能な処理とする。
【0120】
以下、
図16に示すフローチャートに基づいて接続されたカメラの種別認識に基づく設定手順を具体的に説明する。スタート後のステップSF1では、コントローラ10に接続されたカメラの種別を上述した方法で認識する。ステップSF2では、コントローラ10にスマートカメラ102が接続されているか否かを判定する。コントローラ10にスマートカメラ102が接続されている場合にはステップSF3に進む。ステップSF3では、コントローラ10に接続されているスマートカメラ102で使用可能な画像生成処理をコントローラ10が表示部30に表示させる。
図17は、使用可能な画像生成処理の表示例を示すものである。この表示例では、複数の画像生成処理を一覧形式で表示し、その中から任意の1つの画像生成処理をユーザが選択可能に構成されている。ステップSF3では、ユーザが選択した画像生成処理が特定されて一時的に記憶される。
【0121】
一方、コントローラ10にノーマルカメラ101が接続されている場合にはステップSF4に直接進む。ステップSF4では、コントローラ10でもスマートカメラ102でも実行可能な画像検査処理を設定する。
【0122】
その後、ステップSF5に進み、画像検査処理の分担を自動設定するか否かを判定する。画像検査処理の分担とは、画像検査処理が複数の処理を含んでいる場合に、スマートカメラ102で実行する処理と、コントローラ10で実行する処理とを分けることである。この判定はユーザの入力操作に基づいて行われる。ユーザが画像検査処理の分担を自動設定すると入力した場合にはステップSF6に進む一方、ユーザが画像検査処理の分担を自動設定しないと入力した場合にはステップSF7に進む。
【0123】
ステップSF6では、スマートカメラ102で実行する処理と、コントローラ10で実行する処理をコントローラ10が自動的に決定する。例えば、画像検査処理の前半部分を、スマートカメラ102で実行する処理とし、画像検査処理の後半部分を、コントローラ10で実行する処理とする。
【0124】
ステップSF7では、スマートカメラ102で実行する処理と、コントローラ10で実行する処理をユーザが指定する。以上で、接続されたカメラの種別認識に基づく設定が終了する。
【0125】
(実施形態の作用効果)
以上説明したように、例えばスマートカメラ102のみを運用していた現場に、後から検査ラインを増設してノーマルカメラ101とコントローラ10とを導入した場合には、コントローラ10にスマートカメラ102も接続することができる。スマートカメラ102の第1検査設定は画像に対する設定であることから、ノーマルカメラ101とコントローラ10を用いた画像検査でも使用可能である。このため、スマートカメラ102の第1検査設定を、コントローラ10の記憶部14に記憶させてノーマルカメラ101とコントローラ10を用いた画像検査時に使用することで、検査設定をコントローラ10側で作り直す必要がなくなり、ユーザの負担を軽減できる。
【0126】
また、画像検査システム1では、スマートカメラ102が単独で検査対象画像の生成処理から検査処理まで実行するモードと、スマートカメラ102が検査対象画像の生成処理とコントローラ10への転送処理とを実行し、検査処理はコントローラ10が実行するモードを選択できる。つまり、スマートカメラ102で検査処理まで実行可能な場合にはスマートカメラ102単独で検査処理を完結させ、スマートカメラ102単独では処理能力が不足するような場合にはコントローラ10で検査処理を実行できるので、必要に応じてスマートカメラ102とコントローラ10とを連携させることができる。
【0127】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【0128】
以上説明したように、本発明は、例えばワークを撮像した画像を用いて各種検査を実行可能な画像検査システムとして利用できる。
【符号の説明】
【0129】
1 画像検査システム
10 コントローラ
11 取得部
12 検査部
12a 第1コア
12b 第2コア
13 入力部
14 記憶部
15 設定部
101 ノーマルカメラ
102 スマートカメラ
102e 記憶部
102f 検査部