JP2024004266A - 検査設定装置 - Google Patents

検査設定装置 Download PDF

Info

Publication number
JP2024004266A
JP2024004266A JP2022103854A JP2022103854A JP2024004266A JP 2024004266 A JP2024004266 A JP 2024004266A JP 2022103854 A JP2022103854 A JP 2022103854A JP 2022103854 A JP2022103854 A JP 2022103854A JP 2024004266 A JP2024004266 A JP 2024004266A
Authority
JP
Japan
Prior art keywords
area
tool
inspection
tools
worksheet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022103854A
Other languages
English (en)
Inventor
直哉 内山
Naoya Uchiyama
陽介 塩田
Yosuke SHIOTA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keyence Corp
Original Assignee
Keyence Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keyence Corp filed Critical Keyence Corp
Priority to JP2022103854A priority Critical patent/JP2024004266A/ja
Priority to US18/202,456 priority patent/US20230418452A1/en
Priority to CN202310749075.9A priority patent/CN117309866A/zh
Publication of JP2024004266A publication Critical patent/JP2024004266A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/01Arrangements or apparatus for facilitating the optical investigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/183Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Biochemistry (AREA)
  • General Health & Medical Sciences (AREA)
  • Immunology (AREA)
  • Pathology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】ユーザはプログラミングスキルを習得することなく、画像処理の設定からデータ活用まで容易に実行可能にする。【解決手段】検査設定装置1は、撮像設定ツール、位置決め設定ツール、検査設定ツール、および、出力ツールを含む複数のツールを配置可能なパレット領域と、複数のツールに関するデータの参照及び演算を行うワークシート領域と、を表示する表示画面を生成する画面生成部11と、パレット領域上に配置されたツールの選択を受け付け、ワークシート領域を介して当該選択されたツールに関するデータの入力、参照、又は演算に関する設定を受け付ける入力部12とを備えている。【選択図】図2

Description

本開示は、カメラで撮像されたワークを検査する画像検査装置の設定を行うための検査設定装置に関する。
例えば特許文献1に開示されている画像検査装置を用いた画像検査の際には、画像処理だけでなく、画像処理で得られたデータの参照、解析、演算などのデータ活用、例えば画像処理で計測された複数の座標値に対する一括座標変換や、複数の計測値に対する所定の閾値での一括閾値判定などが重要になる。
従来の画像検査におけるデータ活用手段としては、スクリプトによる数値演算、変数定義する方法が知られている。
特開2015-21760号公報
ところが、上記の方法では、スクリプトを作成可能なプログラミングスキルが必要となるため、ユーザにそのスキルを習得させる際のコストが高いという問題がある。
本開示は、かかる点に鑑みたものであり、その目的とするところは、ユーザはプログラミングスキルを習得することなく、画像処理の設定からデータ活用まで容易に実行可能にすることにある。
上記目的を達成するために、本開示の一態様では、カメラで撮像されたワークを検査する画像検査装置の設定を行うための検査設定装置を前提とすることができる。検査設定装置は、カメラの撮像設定に関連する撮像設定ツール、前記カメラにより撮像された検査対象画像に対する検査領域の位置決めを行う位置決め設定に関連する位置決め設定ツール、前記位置決めされた検査領域に対する検査内容を設定する検査設定に関連する検査設定ツール、および、検査結果の出力に関する設定を行う出力設定に関連する出力ツールを含む複数のツールを配置可能なパレット領域と、前記複数のツールに関するデータの参照及び演算を行うワークシート領域と、を表示する表示画面を生成する画面生成部と、前記表示画面の前記パレット領域上に配置されたツールの選択を受け付け、前記ワークシート領域を介して当該選択されたツールに関するデータの入力、参照、又は演算に関する設定を受け付ける入力部と、を備えている。
この構成によれば、ユーザが、撮像設定ツール、位置決め設定ツール、検査設定ツール、出力ツールの中の任意の複数のツールを選択して表示画面のパレット領域に配置すると、ユーザにより選択されたパレット領域上のツールに関して、ワークシート領域を介して、データ入力、参照、演算を行うことが可能になる。これにより、ユーザはプログラミングスキルを習得することなく、画像処理の設定からデータ活用まで実行可能になる。また、画像処理についてはパレット領域のツールで設定し、ツールに関するデータ活用はワークシート領域で設定することが可能になるので、各設定を区別でき、設定操作が分かり易くなる。尚、パレット領域とワークシート領域とは一の表示画面に同時に表示させてもよいし、一方のみ表示させてもよい。
別の態様では、前記パレット領域上に配置されたツールに関するデータを表すニーモニックを生成する制御部を備えていてもよい。また、入力部は、前記パレット領域上の選択されたツールに関するデータを、前記ワークシート領域に取り込むための順参照指示を受け付けることができる。前記制御部は、前記入力部が前記順参照指示を受け付けると、前記選択されたツールに関するデータのニーモニックを前記ワークシート領域上のセルに付与することで、前記選択されたツールと当該セルとを関連付ける。すなわち、ツールに関するデータをワークシート領域に取り込むことで、データ処理をワークシート領域上で容易に行える。このとき、ニーモニックでツールとセルとを関連付けることで、計測ごとに計測値が更新されてワークシート領域に取り込まれるため、検査を効率化することができる。パレット領域は、フリーレイアウトが可能であってもよいし、ステップレイアウトが可能であってもよい。
また、任意のツールの選択操作を受け付けると、選択されたツールとワークシート領域のセルとの参照関係を示す参照関係データを作成して表示させてもよい。また、データが入力されたセルの選択操作を受け付けると、選択されたセルとツールとの参照関係を示す参照関係データを作成して表示させてもよい。
別の態様に係る入力部は、前記パレット領域上の選択されたツールに関するデータがドラッグされ、前記ワークシート領域上にドロップされるドラッグアンドドロップ操作によって、前記順参照指示を受け付け可能に構成されていてもよい。この構成によれば、パレット領域上の計測値などのデータをワークシート領域までドラッグアンドドロップ操作するだけで、当該データをワークシート領域上に簡単に配置できる。
別の態様に係る入力部は、前記パレット領域上の選択されたツールのパラメータに、前記ワークシート領域上の選択されたセルのデータを取り込むための逆参照指示を受け付けてもよい。この場合、前記制御部は、前記入力部が前記逆参照指示を受け付けると、前記パレット領域上の選択されたツールのパラメータに対して、前記ワークシート領域上の選択されたセルへの参照リンクを付与することで、前記パレット領域上の選択されたツールのパラメータと、前記ワークシート領域上の選択されたセルとを関連付けることができる。この構成によれば、ワークシート領域上のデータをパレット領域上のツールのパラメータに取り込むことができるため、パラメータ用のデータの入力がワークシート領域上で容易に行える。
別の態様に係る入力部は、前記パレット領域上の選択されたツールのパラメータに、前記ワークシート領域を介して受け付けた演算の結果が配置されたセルのデータを取り込むための逆参照指示を受け付けてもよい。この場合、前記制御部は、前記入力部がパレット領域上の選択されたツールのパラメータに、前記ワークシート領域を介して受け付けた演算の結果が配置されたセルのデータを取り込むための逆参照指示を受け付けると、前記パレット領域上の選択されたツールのパラメータに対して、当該演算の結果が配置されたセルへの参照リンクを付与することで、前記パレット領域上の選択されたツールのパラメータと、当該演算の結果が配置されたセルとを関連付けることができる。この構成によれば、ワークシート領域上で演算したデータをツールのパラメータ領域に取り込むことができるため、ワークシート領域上で所望のパラメータを容易に生成できる。
別の態様に係る制御部は、前記パレット領域上に配置された複数のツール及び前記ワークシート領域に入力されたデータの参照関係を解析し、各ツールの検査実行時の実行順序と、前記ワークシート領域におけるデータの参照順序及び演算順序とを決定することができる。これにより、複数のツールが選択された場合の実行順序と、データの参照順序及び演算順序とが自動的に決定されるので、ユーザの使い勝手が向上する。
別の態様に係る制御部は、前記パレット領域上に配置された複数のツールおよび前記ワークシート領域の複数のセルに割り当てられた識別情報を参照し、各識別情報の処理内容に基づく依存関係を解析してソートアルゴリズムを実行することにより、各ツールの検査実行時の実行順序と、前記ワークシート領域におけるデータの参照順序及び演算順序とを決定してもよい。すなわち、各ツールには、例えば撮像後に検査を実行し、取得された検査結果を出力する、といったような依存関係が存在している場合がある。また、ツールとセル間にもデータ参照など依存関係がある。このような依存関係を総合的に考慮したソートアルゴリズムを実行することで実行順序を適切に定めることができる。
別の態様に係る制御部は、前記入力部が前記出力結果を前記ワークシート領域上に取り込む指示を受け付けると、前記出力結果を前記ワークシート領域上のセルに入力する。また、制御部は、前記演算の結果を前記パレット領域に配置された出力ツールに取り込む指示を受け付けると、前記演算を実行するとともに、前記出力ツールに対して、前記演算の結果が配置されたセルへの参照リンクを付与することで、前記出力ツールと前記演算の結果が配置されたセルとを関連付けることができる。すなわち、複数の検査領域がある場合など、ワークシート領域上で各検査における判定結果を用いて演算することができるので、例えば、総合判定、最大値の抽出、一括座標変換などが簡単に行える。
別の態様に係る画面生成部は、前記パレット領域と、前記ワークシート領域と、前記カメラにより撮像された画像を表示する画像領域と、を同時に表示する表示画面を生成可能に構成されていてもよい。この構成によれば、撮像した画像を確認しながら、パレット領域でのツール設定とワークシート領域でのデータ設定を効率良く設定できる。
別の態様に係る画面生成部は、前記画像領域中の第1の検査領域、並びに、当該第1の検査領域に関するツールおよびセルと、前記画像領域中の第2の検査領域、並びに、当該第2の検査領域に関するツールおよびセルとを区別して表示する表示画面を生成可能に構成されていてもよい。複数の検査領域があった場合に、着目したい検査領域と当該領域に関するツールおよびセルを、強調表示などすることにより、他の検査領域と区別して表示することができるため、ユーザにとって見るべきポイントが明確になる。
以上説明したように、パレット領域上に配置されたツールに関するデータの入力、参照又は演算に関する設定を、ワークシート領域を介して受け付けることができるので、ユーザがプログラミングスキルを習得しなくても、画像処理の設定からデータ活用まで容易に実行できる。
本発明の実施形態に係る検査設定装置の構成を示す概略図である。 検査設定装置のブロック図である。 FIG.3Aはステップレイアウト画面の初期状態の一例を示す図であり、FIG.3Bはステップレイアウト画面のツール追加後の一例を示す図である。 フリーレイアウト画面の一例を示す図である。 参照関係を有するツールのプログラミング例を説明する図である。 FIG.6Aはフリーレイアウト画面のパレット領域に配置された複数のツールの参照関係の一例を示す図であり、FIG.6BはFIG.6Aの複数のツールの実行順序を示す図である。 ツールの追加から検査の実行までの処理の流れの一例を示すフローチャートである。 ステップレイアウト画面とフリーレイアウト画面との切替を行う場合を説明する概念図である。 FIG.9Aはステップレイアウト画面からフリーレイアウト画面への切替手順の一例を示すフローチャートであり、FIG.9Bはフリーレイアウト画面からステップレイアウト画面への切替手順の一例を示すフローチャートである。 複数のツールのグループ化した場合の表示画面の一例を示す図である。 グループウインドウの本体部分を閉じた状態を示す図10相当図である。 複数の検査設定ツールが配置された状態を示すフリーレイアウト画面である。 画像領域に複数の検査設定ツールが示された状態を示すステップレイアウト画面である。 複数の検査設定ツールを一括編集した場合の図13相当図である。 ワークシート領域を含むフリーレイアウト画面である。 パレット領域およびワークシート領域のツールの並び替えを示す概念図である。 実行順序の解析例を示す図である。 GUIとワークシートを利用した表示例を示す図である。 演算をワークシート領域で一覧視可能にする場合を説明する図である。 総合判定に適用した場合を説明する図である。 最大、ソートに適用した場合を説明する図である。 パラメータの選択に適用した場合を説明する図である。 複数のツールをグループ化する際の処理の流れを示すフローチャートである。 ツールの追加から検査の実行までの処理の流れの一例を示すフローチャートである。 FIG.25Aはパレット領域からワークシート領域に順参照する際の処理の流れを示すフローチャートであり、FIG.25Bはワークシート領域からパレット領域に逆参照する際の処理の流れを示すフローチャートである。 ニーモニックの貼り付けを実行する場合を示す図14相当図である。 ワークシート領域にグラフを表示した場合を示す図15相当図である。 ニーモニックを貼り付ける場合を示す図である。 フィルタリングの表示画面を示す図である。 設定ニーモニックの貼り付け時の表示画面を示す図である。 リンクが貼り付けられた状態を示す図である。 パレット領域に複数の検査設定ツールを配置した場合を示す図である。 複数の検査設定ツールの閾値一覧を入力した状態を示す図である。 カスタムツール化を説明する図である。 カスタムツールをコピーにより展開した状態を示す図である。 ニーモニック貼り付けで表を作成した状態を示す図である。 有効無効制御用の表示設定を作成した状態を示す図である。 グループツールを含むカスタムツールを作成する場合を説明する図である。 カスタムツールを作成した状態を示す図である。 参照関係をリストで表示する変形例に係る図である。 参照関係を矢印で表示する変形例に係る図である。 フローチャートを切り替えて表示可能にする変形例である。 複数のツールをカスタムツール化する際の処理の流れを示すフローチャートである。
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
図1は、本発明の実施形態に係る検査設定装置1の構成を示す概略図であり、また、図2は、検査設定装置1のブロック図である。図1、図2に示す検査設定装置1は、例えば第1カメラ101及び第2カメラ102を備えた画像検査装置100の設定を行うための装置である。本例では、画像検査装置100が2台のカメラ101、102を備えた例について説明するが、画像検査装置100は1台のカメラを備えていてもよいし、3台以上のカメラを備えていてもよい。
(画像検査装置の構成)
検査設定装置1を説明する前に、画像検査装置100について説明する。図2に示すように、画像検査装置100は、第1カメラ101および第2カメラ102と、コントローラ10の一部、即ち検査部20とで構成されており、第1カメラ101または第2カメラ102で撮像されたワーク(検査対象物ともいう)を検査する装置である。検査部20は、第1カメラ101に内蔵されていてもよい。この場合、第1カメラ101は、検査対象画像を生成する画像生成機能に加えて、生成した検査対象画像を検査する画像検査機能を搭載したスマートカメラで構成できる。第2カメラ102も同様である。
第1カメラ101及び第2カメラ102は、例えば複数のワークが順次搬送されるライン等に設置されている。第1カメラ101および第2カメラ102は、単一のラインに設置されていて同一のワークの異なる部分を撮像するものであってもよいし、異なるラインに設置されていて異なるワークを撮像するものであってもよい。
第1カメラ101は、撮像部101aと照明部101bとを備えている。撮像部101aは、例えばCCD(電荷結合素子)、CMOS(相補性金属酸化膜半導体)等からなるイメージセンサで構成されているが、ワークを撮像可能なイメージセンサであればよい。照明部101bは、撮像部101aによる撮像時にワークを照明する部分であり、例えば発光ダイオード等の発光体を有している。また、図1に示すように、第1カメラ101にはワークから反射した光が入射するレンズで構成された光学系101dが設けられている。
撮像部101aおよび照明部101bは、第1カメラ101に内蔵されたカメラ側制御部101cによって制御される。例えば外部からトリガ信号が入力されると、予め設定されたカメラの撮像設定に従ってカメラ側制御部101cが撮像部101aおよび照明部101bを制御し、照明部101bが所定のタイミングでワークを照明し、照明されたワークを撮像部101aが所定の露光時間で撮像する。照明部101bの光量や撮像部101aのゲイン等は、撮像設定で規定されている。撮像設定は、検査設定装置1で設定されている。尚、カメラ側制御部101cは、第1カメラ101以外の機器、例えばコントローラ10に内蔵されていてもよい。また、照明部101bは、第1カメラ101とは別体とされていてもよく、撮像部101aとは異なる場所からワークを照明するように構成されていてもよい。この場合、照明部101bの制御は、コントローラ10によって行うことができる。
第1カメラ101により撮像された画像は、検査対象画像であり、コントローラ10の検査部20に出力される。検査部20が第1カメラ101に内蔵されている場合には、第1カメラ101内の検査部20に検査対象画像が出力される。
第2カメラ102は第1カメラ101と同様に構成されている。すなわち、第2カメラ102は、撮像部102a、照明部102b、カメラ側制御部102cおよび光学系102dを備えている。照明部102bは、第2カメラ102とは別体とされていてもよい。
検査部20は、検査対象画像に対する検査領域の位置決め処理を実行した後、位置決めされた検査領域に対して予め設定された検査内容で検査処理を実行し、検査結果を外部に出力する出力処理を実行する。位置決め処理では、検査設定装置1で設定された位置決め設定が用いられる。例えばワークの一部のみを検査対象とする場合には、その検査対象領域のワークにおける相対的な位置および大きさを特定する情報が位置決め設定に含まれる。また、位置決め設定には、検査対象領域を抽出する処理、検査対象領域が所望の姿勢となるように当該検査対象領域を回転したり、検査対象領域が所望の大きさとなるように当該検査対象領域を拡大ないし縮小させる処理なども含まれる。
検査処理では、検査設定装置1で設定された検査設定が用いられる。検査設定には、位置決めされた検査領域に対する検査内容が含まれる。具体例を示すと、ワークに組み付けられている部品の有無、傷の有無、基準寸法内であるか否か、印字の有無といった検査内容が含まれる。
出力処理では、検査設定装置1で設定された出力設定が用いられる。出力設定には、出力するデータ(検査信号、計測数値、及び/又は検査対象画像を出力するか否かなど)、検査結果の出力先、出力タイミング等のように、検査結果の出力に関する設定が含まれる。
(検査設定装置の構成)
検査設定装置1は、コントローラ10と、表示部30と、操作部40とを備えている。コントローラ10は、設定用の表示画面を生成する画面生成部11と、各種ユーザ入力を受け付ける入力部12と、制御部13と、検査部20とを備えている。検査部20が第1カメラ101や第2カメラ102に内蔵されている場合には、コントローラ10に検査部20を設けなくてもよい。また、検査部20が第1カメラ101や第2カメラ102に内蔵されている場合であっても、検査部20をコントローラ10に設けてもよい。
画面生成部11、入力部12、制御部13及び検査部20は、ハードウエアで構成されていてもよいし、ハードウエアとソフトウエアとの組み合わせで構成されていてもよい。例えば、コントローラ10にはCPU(中央演算処理装置)が内蔵されている。このCPUは、ROM、RAMなどに接続されており、与えられた信号やデータを処理して各種の演算を行い、演算結果を出力する。そのような動作を実行可能なCPU、ROM、RAMなどによって画面生成部11、入力部12、制御部13及び検査部20が構成されていてもよい。また、画面生成部11、入力部12、制御部13及び検査部20は、各々が独立した演算処理装置で構成されていてもよい。
表示部30は、例えば液晶ディスプレイ装置や有機ELディスプレイ装置等で構成されており、コントローラ10に接続され、当該コントローラ10によって制御される。表示部30には、例えば、コントローラ10の画面生成部11で生成された表示画像、第1カメラ101および第2カメラ102で生成された検査対象画像、検査結果等が表示される。
操作部40は、ユーザが各種入力操作を行うための操作機器等で構成されており、コントローラ10に接続されている。操作部40が操作されると、その操作内容がコントローラ10の入力部12で検出される。操作部40には、例えばキーボード40a、マウス40b、タッチパネル40c等が含まれる。タッチパネル40cは、ユーザによるタッチ操作を検出可能に構成されている。タッチパネル40cと表示部30とは一体化してもよく、この場合、例えば表示部30に表示したユーザインタフェースをタッチパネル40cで直接的に操作してもよい。
検査設定装置1は、図1に示すパーソナルコンピュータ(以下、PCという)35を含んでいてもよい。PC35を含む場合、表示部30や操作部40は、PC35の本体部分に接続されていてもよい。この場合、PC35の本体部分を介して表示部30が制御され、また操作部40の操作状態はPC35の本体部分を介してコントローラ10で取得される。
また、PC35を含む場合、コントローラ10の画面生成部11、入力部12、制御部13および記憶部14のうち、一部のみまたは全部をPC35で実行可能にしてもよい。すなわち、画面生成部11、入力部12および制御部13は、PC35に内蔵されているCPU、ROM、RAM等によって構成可能な部分であるため、コントローラ10以外の機器に設けても、コントローラ10に設けた場合と同様な機能を発揮させることができる。また、記憶部14は、例えばソリッドステートドライブやハードディスクドライブ等で構成される部分であることから、この記憶部14がPC35に設けられていても、コントローラ10に設けた場合と同様に各種データを記憶させることができる。また、記憶部14は、ネットワークを介してコントローラ10やPC35に接続された外部記憶装置で構成されていてもよい。
画面生成部11は、表示部4に表示される表示画面として、図3に示すステップレイアウト画面50と、図4に示すフリーレイアウト画面60とを生成可能に構成されている。ステップレイアウト画面50には、パレット領域51と、パレット領域51とは異なる、検査対象画像を表示する画像領域52と、プロパティ領域53とが含まれている。第1カメラ101や第2カメラ102で撮像された検査対象画像がコントローラ10に入力されると、画面生成部11が生成するステップレイアウト画面50の画像領域52に表示されるようにレイアウトされる。
ステップレイアウト画面50のパレット領域51は、複数のツールを配置するための領域であり、ツールが自動的にカテゴライズされている。パレット領域51に配置可能なツールには、カメラ101、102の撮像設定に関連する撮像設定ツール、カメラ101、102により撮像された検査対象画像に対する検査領域の位置決めを行う位置決め設定に関連する位置決め設定ツール、位置決めされた検査領域に対する検査内容を設定する検査設定に関連する検査設定ツール、および、検査結果の出力に関する設定を行う出力設定に関連する出力ツールなどが含まれている。
ステップレイアウト画面50のパレット領域51では、初期カテゴリが定義されており、この初期カテゴリはユーザが定義する前に検査設定装置1側で予め定義されている。画像検査では、撮像設定ツール、位置決め設定ツール、検査設定ツール、出力ツールの4つのツールが必要になるので、初期カテゴリとして、撮像設定ツールが分類される「カメラ」と、位置決め設定ツールが分類される「位置決め」と、検査設定ツールが分類される「検査」と、出力ツールが分類される「出力」とがある。
画像検査ではカメラ101、102による撮像処理が最初に実行されるので、撮像設定ツールが最上流に配置可能になっており、したがって、パレット領域51では、撮像設定ツールを配置するためのエリアであるカメラエリア51aが最上流に表示される。また、撮像処理の後、検査領域の位置決め処理が実行されるので、位置決め設定ツールが撮像設定ツールの次に配置可能になっており、したがって、パレット領域51では、位置決め設定ツールを配置するためのエリアである位置決めエリア51bがカメラエリア51aの下流側に表示される。また、位置決め処理の後、検査領域に対する検査が実行されるので、検査設定ツールが位置決め設定ツールの次に配置可能になっており、したがって、パレット領域51では、検査設定ツールを配置するためのエリアである検査設定エリア51cが位置決めエリア51bの下流側に表示される。また、検査処理の後、検査結果の出力処理が実行されるので、出力ツールが最下流に配置可能になっており、したがって、パレット領域51では、出力ツールを配置するためのエリアである出力エリア51dが最下流に表示される。
図3に示す例では、画像検査の最上流が上、最下流が下に位置するように検査の流れが設定されているので、カメラエリア51aが最も上に配置され、出力エリア50dが最も下に配置される。尚、オプションツールの設定が可能に構成されていてもよく、本例では、オプションツールの設定が可能なオプションエリア51eが出力エリア50dの下に配置されている。
ステップレイアウト画面50では、パレット領域51上にカメラ、位置決め、検査、出力の順に各カテゴリが初期状態で表示されており、ユーザは、各カテゴリに設けられたツール選択ボタン510を介して、各カテゴリに属するツール群から所望のツールを選択することができる。図3に示す例では、初期状態ではカメラのカテゴリに属するツールのみが初期状態で追加されており、具体的には、カメラエリア51aにおいてのみ、「T001 撮像ツール」が1つ配置されている。パレット領域51において、初期状態ではどのツールも配置されていない状態であっても良い。
カメラのカテゴリに属するツール群には、撮像設定ツールの他、例えば、画像補正に関するツールが含まれている。位置決めのカテゴリに属するツール群には、例えば、パターンサーチ、エッジ検出やブロブ処理に関するツールが含まれている。検査のカテゴリに属するツール群には、例えば、有無検査、傷検査、寸法測定やブロブ解析(ブロブのカウントなど)に関するツールが含まれている。出力のカテゴリに属するツール群には、例えば、結果出力や画像出力に関するツールが含まれている。
このように、ステップレイアウト画面50のパレット領域51では初期状態でカメラ、位置決め、検査、出力の順に各カテゴリが表示されているため、ユーザのプログラミングスキルが低い場合であっても、表示された順序に従って、各カテゴリで必要なツールを選択するだけで所望の画像検査の設定を誘導できる。
ユーザは、操作部40を操作することで、ステップレイアウト画面50のパレット領域51にツールを配置できる。ユーザによる操作部40の操作は、コントローラ10の入力部12で検出される。例えばユーザがパレット領域51のカメラエリア51aに「T001 撮像」ツールを選択して配置する操作を行うと、その操作がツールを配置するためのユーザ入力として入力部12が受け付ける。入力部12がツールを配置するためのユーザ入力を受け付けると、制御部13は、パレット領域51のカメラエリア51aに「T001 撮像」ツールが配置されたことを認識して記憶する。一方、画面生成部11は、ステップレイアウト画面50を、パレット領域51のカメラエリア51aに「T001 撮像」ツールが配置された表示画面に更新して表示部30に表示させる。
同様にして、ユーザがパレット領域51の位置決めエリア51bに「T002 パターンサーチ」ツールを配置する操作を行うと、制御部13は、パレット領域51の位置決めエリア51bに「T002 パターンサーチ」ツールが配置されたことを認識して記憶し、画面生成部11は、パレット領域51の位置決めエリア51bに「T002 パターンサーチ」ツールが配置された表示画面に更新する。また、ユーザがパレット領域51の検査設定エリア51cに「T003 ブロブ」ツールを配置する操作を行うと、制御部13は、パレット領域51の検査設定エリア51cに「T003 ブロブ」ツールが配置されたことを認識して記憶し、画面生成部11は、パレット領域51の検査設定エリア51cに「T003 ブロブ」ツールが配置された表示画面に更新する。また、ユーザがパレット領域51の出力エリア51dに「T004 結果出力」ツールを配置する操作を行うと、制御部13は、パレット領域51の出力エリア51dに「T004 結果出力」ツールが配置されたことを認識して記憶し、画面生成部11は、パレット領域51の出力エリア51dに「T004 結果出力」ツールが配置された表示画面に更新する。
ステップレイアウト画面50のパレット領域51にツールを配置する際には、追加したツールから順に詰めた状態で並ぶので、ツールとツールの間をあけることはできない。また、ツールの順番を並び替えることができるが、プログラミングの意図をツールの位置で表示することはできない。すなわち、パレット領域51に配置したツールを一覧することはできるが、ツールのレイアウト位置の自由度に制限があるので、複雑度の低い画像検査、制御要素が少ないシンプルな画像検査の場合に適している。
ステップレイアウト画面50のプロパティ領域53では、各ツールの詳細設定としてパラメータ設定が可能になっている。パラメータ設定は、入力部12を介して行うことができる。
また、パレット領域51にツールを配置した後、ユーザが操作部40を操作し、パラメータ設定を行うと、入力部12を介して、当該ツールのパラメータの設定を受け付け、入力されたパラメータが反映される。ツールごとにパラメータの設定が可能である。
ステップレイアウト画面50では、プログラム要素を有するツールの設定が行えないように構成されている。具体的には、入力部12は、ステップレイアウト画面50が表示部30に表示されている状態では、プログラム要素を有するツールの設定入力を不可としている。ステップレイアウト画面50で設定入力が不可とされているツールは、例えば条件分岐、繰り返し、ルーチン、ルーチンスケジュール、イベント発行等である。ステップレイアウト画面50では、制御要素のない処理は分かり易く表現できるが、条件分岐に位置決め、検査、出力などの各カテゴリのツールが入り乱れると表現しづらいからである。
図4に示すフリーレイアウト画面60には、パレット領域61と、パレット領域61とは異なる、検査対象画像を表示する画像領域62と、プロパティ領域63とが含まれている。画像領域62には、ステップレイアウト画面50の画像領域52と同様な検査対象画像が表示される。また、フリーレイアウト画面60のプロパティ領域63では、各ツールの詳細設定としてパラメータ設定が可能になっている。パラメータ設定は、入力部12を介して行うことができる。手順の一例を示すと、ユーザが操作部40を操作し、パレット領域61に配置された複数のツールのうち、パラメータ設定を行うツールを選択する。ツールの選択操作は入力部12で受け付けられる。選択したツールのパラメータ設定を行う際には、ユーザが操作部40を操作する。この操作も入力部12で受け付けられて、入力されたパラメータが反映される。プロパティ領域63では、例えば、ツール名称の入力や、実行可否の設定、出力データの選択等が可能である。また、プロパティ領域53は、必要に応じて設ければよく、省略してもよい。
フリーレイアウト画面60のパレット領域61は、上述した撮像設定ツール、位置決め設定ツール、検査設定ツールおよび出力ツールを含む複数のツールを配置するための領域である。ステップレイアウト画面50のパレット領域51と異なる点は、パレット領域61内であればツールのレイアウト位置の自由度に制限がない点であり、このため、プログラム状態にかかわらず、複数のツールを自由な位置に配置することが可能になり、例えば検査箇所に応じたカテゴライズ等を行うのが簡単になる。よって、フリーレイアウト画面60は、プログラミングスキルの高いユーザに適しており、また複雑な画像処理に適している。
複雑な画像処理に対応可能となるように、フリーレイアウト画面60のパレット領域61では、プログラム要素を有するツールの設定が行えるように構成されている。すなわち、入力部12は、ステップレイアウト画面50では設定不可なツール、例えば条件分岐、繰り返し、ルーチン、ルーチンスケジュール、イベント発行等の入力を受け付け可能になっている。尚、ステップレイアウト画面50と、フリーレイアウト画面60とで設定可能なツールに差を設けなくてもよい。
フリーレイアウト画面60のパレット領域61には、ツール選択エリア61aが設けられている。ツール選択エリア61aには、撮像設定ツール、位置決め設定ツール、検査設定ツール、出力ツールのそれぞれがカテゴライズされて表示可能になっており、ユーザはツール選択エリア61aから所望のツールを選択できる。
ユーザは、操作部40を操作することで、フリーレイアウト画面60のパレット領域61上の任意の位置にツールを配置できる。すなわち、例えばユーザが「T001 撮像」ツールを選択した後、パレット領域61に配置する操作を行うと、ツールを配置するためのユーザ入力として入力部12が受け付ける。ツールをパレット領域61に配置する操作の例としては、例えばマウス40bのクリック操作やタッチパネル40cのタッチ操作等を挙げることができ、より具体的には、ツールを選択した状態でドラッグしてパレット領域61の任意の位置にドロップするドラッグアンドドロップ操作がある。このような操作を繰り返すことにより、複数のツールをそれぞれパレット領域61内の任意の位置に簡単に配置できる。パレット領域61内に配置したツールの位置修正も可能である。また、パレット領域61内に配置したツールを削除することも可能である。
入力部12がツールを配置するためのユーザ入力を受け付けると、制御部13は、パレット領域61のユーザが指定した位置(指定位置)に「T001 撮像」ツールが配置されたことを認識して記憶する。ステップレイアウト画面50とは異なり、パレット領域61内であればどこでも「T001 撮像」ツールの配置ができるため、ツールの位置の微調整も可能である。画面生成部11は、フリーレイアウト画面60を、パレット領域61の指定位置に「T001 撮像」ツールが配置された表示画面に更新して表示部30に表示させる。
図4に示す例では、「T002 パターンサーチ」ツール、「T003 ブロブ」ツール、「T004 結果出力」ツールの他に、「T005 エッジ幅」ツール、「T006 領域」ツール等もパレット領域61に配置している。
図5に示すように、あるユーザが検査実行時の実行順序を考慮せずに、ブロブ解析処理とエッジ抽出処理を順に実行するようにプログラミングすることが考えられる。検査実行時には、エッジ抽出処理の結果をブロブ解析処理が参照する必要があるので、エラーが発生する。このように、「データ参照」と「処理順序」の2つを考慮しなければならないので、検査実行時の実行順序を考慮したプログラミングは難易度が高い。
これに対し、図2に示す制御部13は、フリーレイアウト画面60のパレット領域61上に配置された複数のツールの参照関係を解析し、各ツールの検査実行時の実行順序を決定するので、図5の右側に示すようにエッジ抽出の次にブロブ解析を実行するように実行順序を自動的に変更する。これにより、ユーザは「データ参照」だけを考慮して「処理順序」を考慮することなく、ツールをパレット領域61上の任意の位置に配置できるので、プログラミングがシンプルに行える。
具体的には、制御部13は、フリーレイアウト画面60のパレット領域61上に配置された複数のツールに割り当てられた識別情報を参照し、各識別情報の処理内容に基づく依存関係を解析してソートアルゴリズムを実行することにより、各ツールの検査実行時の実行順序を決定するように構成されている。ソートアルゴリズムとしては、トポロジカルソートを用いることが好ましいが、トポロジカルソートに限るものではない。なお、依存関係には、位置決め設定ツールが撮像設定ツールの後に実行され、検査設定ツールが位置決め設定ツールの後に実行され、出力ツールが検査設定ツールの後に実行される具体的な順序性を含んでいても良い。この場合、制御部13は、フリーレイアウト画面60のパレット領域61上に配置された複数のツールのカテゴリ、即ち撮像設定ツール、位置決め設定ツール、検査設定ツールおよび出力ツールのどれに属するかを参照する。そして、制御部13は、参照して得られたカテゴリに基づいて、前記順序性を維持するように、各ツールの検査実行時の実行順序を決定する。
一例について、図6に基づいて説明する。図6のFIG.6Aは、図4のフリーレイアウト画面60のパレット領域61上に配置された6つのツール、「T001 撮像」ツール、「T002 パターンサーチ」ツール、「T003 ブロブ」ツール、「T004 結果出力」ツール、「T005 エッジ幅」ツール及び「T006 領域」ツールを示している。例えば、「T001 撮像」ツールは、識別情報として番号T001が割り当てられていることを意味している。T001などは識別情報の一例であり、識別情報は、例えば記号または文字、または記号および文字の組み合わせで構成されていてもよい。
FIG.6Aのツール間の矢印は、ツール間の参照関係を示している。具体的には、「T002 パターンサーチ」ツールは、「T001 撮像」ツールを参照している。「T003 ブロブ」ツールは、「T002 パターンサーチ」ツール及び「T006 領域」ツールを参照している。「T004 結果出力」ツールは、「T003 ブロブ」ツール及び「T005 エッジ幅」ツールを参照している。「T005 エッジ幅」ツールは、「T002 パターンサーチ」ツール及び「T006 領域」ツールを参照している。「T006 領域」ツールは、「T002 パターンサーチ」ツールを参照している。
図6のFIG.6Bは、FIG.6Aに示す複数のツールに対して、トポロジカルソートを実行した後のツールの順番を示している。つまり、閉路がない有向グラフの各有向辺が順方向になるようなソートを5つのツールに対して実行することにより、当該6つのツールの互いの参照関係が成立するように、各ツールの検査実行時の実行順序を決定し、さらにツールの並び替えを実行した場合を示している。この並び替えが実行された順番は、各ツールの実行順に相当し、実線の矢印で表される。各ツールの横から伸びる破線は、図6と同様の参照関係を示している。
Fig.6Bに示す例では、「T001 撮像」ツール、「T002 パターンサーチ」ツール、「T006 領域」ツール、「T003 ブロブ」ツール、T005 エッジ幅」ツール、「T004 結果出力」ツールの順で実行される。本例における「T003 ブロブ」ツール及び「T005 エッジ幅」ツールのように、いずれのツールが先に実行されても良い場合は、例えば、識別情報に含まれる番号が小さいものから先に実行させることができる。
図7は、ツールの追加から検査の実行までの処理の流れを示すフローチャートであり、ステップレイアウト画面50とフリーレイアウト画面60のいずれの場合も同様である。スタート後のステップSC1では、入力部12がユーザからツールを追加する入力を受け付ける。ステップSC2では、画面生成部11が、ステップSC1で受け付けたツールをパレット領域51、61に表示する。ステップSC3では、追加されたツールに対してパラメータの入力を受け付ける。なお、追加されたツールに初期パラメータが付与されていても良く、当該初期パラメータから変更の必要が無い場合は、ステップSC3はスキップしても良い。ステップSC4において、他にも追加の必要なツールがある場合は、ステップSC1に戻って、同様の処理を行う。ステップSC4において、ユーザによる検査設定が完了し、入力部12が検査実行の指示を受け付けると、ステップSC5に進む。ステップSC5では、制御部13は、追加された複数のツールの参照関係を解析する。ステップSC6では、制御部13は、ステップSC5で解析した参照関係に基づいて、検査の実行順序を決定する。ステップSC7では、検査部20は、ステップSC6で決定した実行順序に基づいて、検査を実行する。
(画面選択・画面切替)
入力部12は、図3に示すステップレイアウト画面50と図4に示すフリーレイアウト画面60とのユーザによる選択操作を受け付け可能に構成されている。図8に概念図として示すように、フリーレイアウト画面60には、撮像設定ツールに分類される3つのツール、位置決め設定ツールに分類される3つのツール、および、検査設定ツールに分類される1つのツールが配置されていたとする(出力ツールは図示略)。フリーレイアウト画面60からステップレイアウト画面50に切り替えると、実行順に対応するように、3つの撮像設定ツールが最も上に配置され、その下に3つの位置決め設定ツールが配置され、検査設定ツールが最も下に配置される。この並び替えの時には、ステップレイアウト画面50でのカテゴリが事前に割り当てられていてもよいし、ステップレイアウト画面50のどこのカテゴリに属しているのかを示すルールが記述されたカテゴライズリストを利用してもよい。
図9のFIg.9Aは、ステップレイアウト画面50からフリーレイアウト画面60への切替手順を示している。スタート後のステップSA1では、カテゴライズされた状態でツールを追加する。ステップSA2では、フリーレイアウトのシステム側のレイアウト情報を各ツールに付加する。レイアウト情報は単なる整列である。ステップSA3で、ユーザがステップレイアウト画面50からフリーレイアウト画面60への切替操作を行うと、ステップSA4では、ステップSA2で付加されたレイアウト情報に従いフリーレイアウト画面60を表示する。
図9のFIG.9Bは、フリーレイアウト画面60からステップレイアウト画面50への切替手順を示している。スタート後のステップSB1では、ユーザがフリーレイアウトの位置情報を指定する。例えばツール種別を指定して追加することができる。ステップSB2で、ユーザがフリーレイアウト画面60からステップレイアウト画面50への切替操作を行うと、ステップSB3では、ツールのカテゴリもしくはカテゴライズリストに従って変換する。ステップSB4では、カテゴリに従いステップレイアウト画面50を表示する。尚、ステップSB3の変換は、事前に行われていてもよい。
図3に示すように、ステップレイアウト画面50には、ステップレイアウト画面50からフリーレイアウト画面60への切り替えるための画面選択領域50aが設けられている。画面選択領域50aには、例えば選択ボタン、切替ボタン、ドロップダウン形式のリスト等が表示されており、操作部40を用いて画面選択領域50aをユーザが操作すると、その操作がステップレイアウト画面50からフリーレイアウト画面60への切り替え操作、即ちフリーレイアウト画面60の選択操作として入力部12で受け付けられる。画面生成部11は、画面選択領域50aが操作されたことを検出すると、フリーレイアウト画面60を生成して表示部30に表示させる。
また、図4に示すように、フリーレイアウト画面60には、フリーレイアウト画面60からステップレイアウト画面50への切り替えるための画面選択領域60aが設けられている。画面選択領域60aは、ステップレイアウト画面50の画面選択領域50aと同様に構成されており、操作部40を用いて画面選択領域60aをユーザが操作すると、その操作がフリーレイアウト画面60からステップレイアウト画面50への切り替え操作、即ちステップレイアウト画面50の選択操作として入力部12で受け付けられる。画面生成部11は、画面選択領域60aが操作されたことを検出すると、ステップレイアウト画面50を生成して表示部30に表示させる。
具体的には、図3に示すようにステップレイアウト画面50のパレット領域51上に複数のツールが配置されていた場合を前提にすると、画面生成部11は、入力部12を介して、ステップレイアウト画面50からフリーレイアウト画面60への切替操作を受け付けた際に、ステップレイアウト画面50のパレット領域51上に配置されている複数のツールを、図4に示すようにフリーレイアウト画面60のパレット領域61上に配置した表示画面を生成する。
一方、図4に示すようにフリーレイアウト画面60のパレット領域61上に複数のツールが配置されていた場合を前提にすると、画面生成部11は、入力部12を介して、フリーレイアウト画面60からステップレイアウト画面50への切替操作を受け付けた際に、フリーレイアウト画面60上で配置されている複数のツールを、図3に示すように、各ツールのカテゴリに基づいて、ステップレイアウト画面50のパレット領域51上の対応するカテゴリに属するエリアに配置した表示画面を生成する。例えば、図4において「T001 撮像」ツールは、撮像設定ツールのカテゴリに属するツールであることから、ステップレイアウト画面50のパレット領域51上で、カメラエリア51aに配置される。また、図4において「T002 パターンサーチ」ツールは、位置決め設定ツールのカテゴリに属するツールであることから、ステップレイアウト画面50のパレット領域51上で、位置決めエリア51bに配置される。また、図4において「T003 ブロブ」ツールは、検査設定ツールのカテゴリに属するツールであることから、ステップレイアウト画面50のパレット領域51上で、検査設定エリア51cに配置される。また、図4において「T004 結果出力」ツールは、出力ツールのカテゴリに属するツールであることから、ステップレイアウト画面50のパレット領域51上で、出力エリア51dに配置される。
画面生成部11は、ステップレイアウト画面50からフリーレイアウト画面60への切替操作を入力部12が受け付けた後、ステップレイアウト画面50からフリーレイアウト画面60へ切り替える際には、ステップレイアウト画面50の画像領域52に表示されている表示内容を維持した状態でフリーレイアウト画面60を生成するとともに、ステップレイアウト画面50のパレット領域51の表示内容とは異なる表示内容のパレット領域61を有するフリーレイアウト画面60を生成する。
また、反対に、画面生成部11は、フリーレイアウト画面60からステップレイアウト画面50への切替操作を入力部12が受け付けた後、フリーレイアウト画面60からステップレイアウト画面50へ切り替える際には、フリーレイアウト画面60の画像領域62に表示されている表示内容を維持した状態でステップレイアウト画面50を生成するとともに、フリーレイアウト画面60のパレット領域61の表示内容とは異なる表示内容のパレット領域51を有するステップレイアウト画面50を生成する。
これにより、フリーレイアウト画面60とステップレイアウト画面50の一方から他方に切り替える際に、ステップレイアウト画面50の画像領域52と、フリーレイアウト画面60の画像領域62との表示内容が変化しないので、ユーザインタフェースが大きく変化した印象をユーザに与えないようにすることができる。また、ステップレイアウト画面50の画像領域52と、フリーレイアウト画面60の画像領域62との位置、大きさ、形状についても、表示画面の切替前後で変わらないようにしている。尚、ステップレイアウト画面50の画像領域52と、フリーレイアウト画面60の画像領域62との位置、大きさ、形状については、表示画面の切替前後で変えてもよい。
ステップレイアウト画面50では設定不可なツールがフリーレイアウト画面60で設定されている場合には、フリーレイアウト画面60からステップレイアウト画面50に切り替えられた際、パレット領域51の外の領域に、上記設定不可なツールを自動的に配置してもよい。これにより、ステップレイアウト画面50の各カテゴリに含まれないツールであっても、ステップレイアウト画面50に反映させることができる。
(グループ化機能)
検査設定装置1は、複数のツールを1つのグループにまとめてグループツールを作成するグループ化機能を備えている。例えばワークに複数の検査部位が含まれている場合には、検査部位ごとに処理をまとめたい場合があるが、処理順序の都合上、複数の検査部位に共通の共通処理を途中で挟んだ場合に分断されてしまうことがある。このような場合に、本例のグループ化機能を用いることができる。図23のフローチャートに示す処理の流れに沿って、グループ化機能について説明する。
まず、スタート後のステップSD1では、入力部12は、パレット領域上に配置された複数のツールの中から、ユーザから、ユーザがグループ化したい複数のツールの選択を受け付ける。図10に示すように、ユーザが操作部40を操作することにより、フリーレイアウト画面60のパレット領域61上に配置された複数のツールの中から、複数のツールを選択する。このユーザの操作は、複数のツールを選択するためのユーザ入力として入力部12が受け付ける。図10では、「T005 エッジ幅」ツールと、「T003 ブロブ」ツールと、「T006 領域」ツールとが選択された場合を示している。
次いで、ステップSD2で、制御部13は、入力部12で選択を受け付けた複数のツールを1つのグループにまとめて、任意のグループツールを作成する。このとき、ユーザからのグループ化操作を別途受け付けてもよく、例えばグループ化実行ボタン等をフリーレイアウト画面60に設けておき、このグループ化実行ボタンの操作入力を入力部12が受け付けると、制御部13がグループを作成する。
ステップSD3で、制御部13により作成されたグループツールは、パレット領域61上で便宜上、「グループ 000」という名称で表示される。画面生成部11は、「グループ 000」に属するツールと、「グループ 000」に属さないツールとを、パレット領域61上で区別可能な形態で表示する。区別可能な形態としては、例えば、「グループ 000」に属する複数のツールを1つのウインドウ内に表示する形態、「グループ 000」に属する複数のツールを枠で囲んで表示する形態、「グループ 000」に属する複数のツールの色を他のツールの色と変えて表示する形態などがあり、図10では、「グループ 000」に属する3つのツールを1つのウインドウ64内にまとめて表示している。
ウインドウ64の本体部分に、グループ化された複数のツールが表示される一方、ウインドウ64の上部には、グループ名を表示するグループ名表示領域64aが設けられている。本例では、ウインドウ64の上部にグループ名表示領域64aを設けているが、グループ名表示領域64aを設ける位置は上部に限られるものではない。このグループ名表示領域64aに表示されているグループ名は変えることができる。グループ名を変えたい場合、またはグループ名を新たに入力したい場合には、ユーザは操作部40を操作してグループ名表示領域を選択し、キーボード40a等を用いて所望の文字列を入力する。この操作は、所望のグループ名を付与するためのユーザ入力である。ステップSD4において、入力部12は、制御部13が作成したグループに所望のグループ名を付与するためのユーザ入力を受け付ける。ステップSD5において、画面生成部11は、グループ名を付与するためのユーザ入力を入力部12が受け付けると、パレット領域61におけるグループツールの対応する位置、即ちグループ名表示領域64aに、入力部12で受け付けたグループ名を表示させた表示画面を生成する。
ウインドウ64には、サイズ変更ボタン64bが設けられている。ウインドウ64の本体部分が表示されている状態でサイズ変更ボタン64bがユーザによって操作され、このユーザ入力が入力部12によって受け付けられると、画面生成部11は、図11に示すように、ウインドウ64の本体部分を閉じて、グループ化された複数のツールを非表示にする。このとき、グループ名表示領域64aおよびサイズ変更ボタン64bは表示したままにする。ウインドウ64の本体部分が閉じた状態でサイズ変更ボタン64bがユーザによって操作され、このユーザ入力が入力部12によって受け付けられると、画面生成部11は、図10に示すようにウインドウ64の本体部分を表示する。
グループ化の例を図12に具体的に示す。図12に示す例では、フリーレイアウト画面60の画像領域62に表示されているワークの検査部位が部位A~部位Eまで5つある場合を示している。部位A~部位Eは、互いに異なる部位である。このように、画面生成部11は、第1の検査領域としての部位A、および第2の検査領域としての部位Bが少なくとも示された検査対象画像を表示する画像領域62を更に含む表示画面を生成する。
各検査部位を検査する際には、前半処理と後半処理とがあり、前半処理と後半処理との途中で共通処理が実行されるものとする。このような共通処理を含んでいると、ステップレイアウト画面50の場合には前半処理と後半処理が分断されてしまうが、グループ化機能を使用することで、部位A~部位Eの各々について、前半処理と後半処理を1つのグループツールとして表示させることができる。
例えば、部位Aに関連する前半処理のツールと後半処理のツールとをユーザが選択すると、その選択操作を入力部12が受け付け、制御部13は、部位Aに関連する複数のツールを、部位Aに関するツールとしてグループ化し、グループツールTAとする。他の部位B~部位Eについても同様であり、それぞれグループツールTB、TC、TD、TEとする。
各部位は、特定の検査領域と呼ぶこともできる。要するに、入力部12は、パレット領域61上に配置された複数のツールのうち、特定の検査領域に関連するツールを当該特定の検査領域単位でグループ化するためのユーザ入力を受け付け可能に構成されている。また、画面生成部11は、特定の検査領域単位でグループ化するためのユーザ入力に基づいて、当該特定の検査領域に関連するツールが検査領域単位でグループ化されたグループツールTA、TB、TC、TD、TEを表示するパレット領域61を有する表示画面を生成する。「部位A」等はグループ名であり、上述したように変更可能である。
例えば部位Aに関連するグループツール(第1グループツール)TAには、第1の検査領域としての部位Aを位置決めする位置決め設定ツールと、位置決めされた部位Aを検査する検査設定ツールとが含まれている。また、部位Bに関連するグループツール(第2グループツール)TBには、第1の検査領域とは異なる位置の第2の検査領域としての部位Bを位置決めする位置決め設定ツールと、位置決めされた部位Bを検査する検査設定ツールとが含まれている。部位C~部位Eについても同様であり、各グループツールTC、TD、TEには、位置決め設定ツールと検査設定ツールとが含まれている。このように、入力部12は、第1の検査領域を位置決めする位置決め設定ツールと当該位置決めされた第1の検査領域を検査する検査設定ツールとをグループ化することで第1グループツールを生成するための入力と、第1の検査領域とは異なる位置の第2の検査領域を位置決めする位置決め設定ツール当該位置決めされた第2の検査領域を検査する検査設定ツールとをグループ化することで第2グループツールを生成するための入力と、を受け付け可能に構成されている。
また、ツールをグループ化する際には、異なる検査領域を検査する検査設定ツールをグループ化することもできる。例えば、部位Aを検査する検査設定ツールと、部位Bを検査する検査設定ツールとが共通している場合には、部位Aを検査する検査設定ツールと、部位Bを検査する検査設定ツールとを1つのグループツールにすることが可能である。すなわち、入力部12は、パレット領域61上に配置された複数のツールのうち、入力部12を介して選択された部位Aを検査する第1の検査設定ツールと、当該第1の検査設定ツールと検査処理が共通する部位Bを検査する第2の検査設定ツールとをグループ化する入力を受け付け可能に構成されている。制御部13は、第1の検査設定ツールと第2の検査設定ツールとをグループ化する入力を入力部12が受け付けると、第1の検査設定ツールと第2の検査設定ツールとを1つのグループツールにまとめる。また、例えば前処理フィルタ、モデルデータ、検査領域などのデータは複数のツールで共有できるので、このようなデータを共有しているツールは同一のグループツールにまとめることができる。
また、ツールをグループ化する際には、位置決め設定ツールを共通とするツールごとにグループ化することもできる。すなわち、入力部12は、パレット領域上に配置された複数のツールのうち、第1の位置決め設定ツールと、第1の位置決め設定ツールを参照する第1の検査設定ツールとをグループ化することで第1グループツールを生成するための入力を受け付け可能に構成される。入力部12は、パレット領域上に配置された複数のツールのうち、第1の位置決め設定ツールとは異なる第2の位置決め設定ツールと、第2の位置決め設定ツールを参照する第2の検査設定ツールとをグループ化することで第2グループツールを生成するための入力を更に受け付け可能に構成される。検査対象画像ごとに位置決めマークがずれて表示されると、位置決めマークのずれに追従して位置決め設定ツールのパラメータが変わるため、当該位置決め設定ツールを参照する検査設定ツールのパラメータを変更する必要がある。この場合、共通の位置決め設定ツールを参照するツールをグループ化しておけば、パラメータの変更が必要なツールを速やかに特定できるため、作業効率が向上する。
また、画面生成部11は、入力部12を介して第1グループツールが選択されると、画像領域62において、第1の検査領域を第2の検査領域と区別して表示する表示画面を生成する。例えば、グループツールTAがユーザによって選択されると、画像領域62では、部位Aが部位B~Eと区別可能な形態で表示される。例えば、部位Aを囲む枠の色を、部位B~Eをそれぞれ囲む枠の色と変えて表示したり、部位Aを、部位B~Eとは異なる色に着色して表示する。これにより、現在どの部位のグループツールを選択しているのか、ユーザが容易に判別できる。
また、画面生成部11は、入力部12を介して第1グループツールが選択されると、パレット領域61において、第1グループツールを第2グループツールと区別して表示する表示画面を生成することが可能になっている。例えば、グループツールTAがユーザによって選択されると、パレット領域61でグループツールTAがグループツールTB、TC、TD、TEと区別可能な形態で表示される。例えば、グループツールTAを囲む枠の色を、グループツールTB、TC、TD、TEをそれぞれ囲む枠の色と変えて表示したり、グループツールTAを、グループツールTB、TC、TD、TEとは異なる色に着色して表示する。これにより、現在どのグループツールを選択しているのか、ユーザが容易に判別できる。
入力部12は、複数のサブグループツールを1つのグループツールにまとめることにより、複数のサブグループツールを1つのグループツールにするための入力を受け付け可能に構成されている。例えば図12では、前半処理が1つのグループツールになっており、この前半処理のグループには、複数のツールが含まれている。また、後半処理も同様に複数のツールが含まれた1つのグループツールになっている。前半処理のグループツール、および後半処理のグループツールは、それぞれサブグループツールと呼ぶことができる。これらサブグループツールをまとめることにより、グループツールTA等を構成することができる。
また、制御部13は、複数のサブグループツールと、それらをまとめたグループツール外に配置された検査処理ツールとを一連の処理とするように、各ツールの検査実行時の実行順序を決定する。本例では、共通処理がパレット領域61上でグループツールTA外に配置された検査処理ツールに相当しており、前半処理のグループツールと後半処理のグループツールとの間に共通処理が行われるように、制御部13が各ツールの検査実行時の実行順序を決定している。
(複数ツールの一括編集機能)
検査設定装置1は、フリーレイアウト画面60のパレット領域61に配置されている複数のツールを一括編集する一括編集機能を備えている。図13は、パレット領域61に検査設定ツールが8つ配置されている場合を示しており、これに対応して画像領域52には検査領域を示す8つのツール表示(円形)が縦方向に並ぶように表示されている。8つの検査設定ツールを一括編集することで、図14に示すように、ワークの検査領域を所定の方向に並べることが可能になる。このように、複数のツールの位置や並び方向、ピッチ等をパレット領域61で設定することで、複数のツールを整列させることが可能になる。
(ワークシート領域の表示)
検査設定装置1の画面生成部11は、図15に示すように、パレット領域61と、画像領域62と、ワークシート領域65とを同時に表示する表示画面の例として、例えばフリーレイアウト画面60を生成できる。尚、パレット領域61とワークシート領域65とは同時に表示しなくてもよく、例えば一方のみを表示しておき、切替操作によって他方を表示させてもよい。
ワークシート領域65は、パレット領域61に配置されている複数のツールに関するデータの参照及び演算を行うための領域であり、複数のセルを有している。ワークシート領域65のセルは、縦方向と横方向に並んでいる。尚、ステップレイアウト画面50もワークシート領域を表示する表示画面となり得る。
入力部12は、フリーレイアウト画面60のパレット領域61上に配置されたツールの選択を受け付ける。例えばユーザがパレット領域61上に配置された複数のツールのうち、任意のツールを操作部40で選択操作すると、その操作が入力部12で受け付けられ、制御部13は、入力部12で受け付けられたツールを特定する。また、入力部12は、ユーザにより選択されたツールに関するデータの入力、参照、又は演算に関する設定を、ワークシート領域65を介して受け付ける。これにより、ユーザがプログラミングスキルを習得しなくても、画像処理の設定からデータ活用まで容易に実行できる。また、画像処理についてはパレット領域61のツールで設定し、ツールに関するデータ活用はワークシート領域65で設定することが可能になるので、各設定を区別でき、設定操作が分かり易くなる。
図25のFIG.25A及びFIG.25Bのフローチャートに示す処理の流れに沿って、パレット領域とワークシート領域との間のデータ参照機能について説明する。FIG.25AのステップSF1で、制御部13は、パレット領域61上に配置されたツールに関するデータを表すニーモニックを生成する。ステップSF2で、入力部12は、パレット領域61上の選択されたツールに関するデータを、ワークシート領域65に取り込むための順参照指示をユーザから受け付ける。順参照指示は、パレット領域61上のツールの計測結果などの数値をワークシート領域65で参照し、ワークシート領域に取り込むことであり、どのような方法であってもよい。順参照指示の方法の一例を挙げると、入力部12は、パレット領域61上の選択されたツールに関するデータがドラッグされ、ワークシート領域65上にドロップされるドラッグアンドドロップ操作によって、順参照指示を受け付け可能に構成される。つまり、マウス40bを操作することで、順参照指示を容易に行うことができる。なお、ステップSF1とステップSF2の順番は逆でも良い。つまり、制御部13は、入力部12が順参照指示を受け付けた後に、順参照指示の対象となるツールのデータに関するニーモニックを生成しても良い。
ステップSF3で、制御部13は、入力部12が順参照指示を受け付けると、選択されたツールに関するデータのニーモニックをワークシート領域65上のセルに付与することで、選択されたツールと当該セルとを関連付けるように構成されている。
入力部12は、順参照指示以外にも逆参照指示も受け付け可能である。逆参照指示は、ワークシート領域65での演算結果をパレット領域61にフィードバックして使用することである。すなわち、FIG.25BのステップSG1で、入力部12は、ワークシート領域65のセルに対するデータの入力を受け付ける。ステップSG2で、入力部12は、フリーレイアウト画面60のパレット領域61上の選択されたツールのパラメータに、ワークシート領域65上の選択されたセルのデータを取り込むための第1の逆参照指示を受け付ける。この場合、ステップSG3で、制御部13は、入力部12が第1の逆参照指示を受け付けると、パレット領域61上の選択されたツールのパラメータに対して、ワークシート領域65上の選択されたセルへの参照リンクを付与する。これにより、制御部13は、パレット領域61上の選択されたツールのパラメータと、ワークシート領域65上の選択されたセルとを関連付ける。
入力部12は、逆参照指示として、パレット領域61上の選択されたツールのパラメータに、ワークシート領域65を介して受け付けた演算の結果が配置されたセルのデータを取り込むための第2の逆参照指示を受け付けることもできる。制御部13は、入力部12が第2の逆参照指示を受け付けると、パレット領域61上の選択されたツールのパラメータに対して、当該演算の結果が配置されたセルへの参照リンクを付与することで、パレット領域61上の選択されたツールのパラメータと、当該演算の結果が配置されたセルとを関連付ける。
入力部12は、パレット領域61上に配置された複数のツールのうち、任意のツールの選択操作と、ワークシート領域65におけるデータが入力されたセルの選択操作との少なくとも一方の選択操作を受け付ける。ユーザが操作部40を用いてパレット領域61上の任意のツールを選択すると、その操作が選択操作として入力部12で受け付けられ、また、ユーザが操作部40を用いてワークシート領域65のデータが入力されたセルを選択すると、その操作が選択操作として入力部12で受け付けられる。
制御部13は、パレット領域61上に配置された複数のツールおよびワークシート領域65に入力されたデータの参照関係を解析し、各ツールの検査実行時の実行順序と、ワークシート領域65におけるデータの参照順序及び演算順序とを決定する。このとき、制御部13は、入力部12で任意のツールの選択操作を受け付けた場合には、選択されたツールとワークシート領域65のセルとの参照関係を示す参照関係データを作成する一方、入力部12でデータが入力されたセルの選択操作を受け付けた場合には、選択されたセルとツールとの参照関係を示す参照関係データを作成する。画面生成部11は、後述するように、制御部13が作成した参照関係データを表示する。
また、制御部13は、パレット領域61上に配置された複数のツールおよびワークシート領域65の複数のセルに割り当てられた識別情報を参照し、各識別情報の処理内容に基づく依存関係を解析してトポロジカルソートを実行することにより、各ツールの検査実行時の実行順序と、ワークシート領域65におけるデータの参照順序及び演算順序とを決定することができる。
以下、順序の決定手順について具体的に説明する。図16は、パレット領域61で配置された画像処理ツールと、ワークシート領域65に配置された演算処理ツールの並び替えを示す概念図である。この図に示すように、ワークシート領域65とパレット領域61とを有する場合には、パレット領域61に複数の画像処理ツールが配置され、またワークシート領域65に複数の演算処理ツールが配置される場合がある。制御部13は、トポロジカルソートを実行し、パレット領域61の複数の画像処理ツールと、ワークシート領域65の複数の演算処理ツールとを最適な順序で並び替える。これにより、ユーザは、難易度の高い設計スキルは不要であり、実現したい処理、演算だけに集中してツールを追加していくだけでよい。
パレット領域61の複数の画像処理ツールは、上述したように制御部13が複数のツールの参照関係を解析し、各ツールの検査実行時の実行順序を決定する。一方、ワークシート領域65の複数の演算処理ツールは、一般的な表計算ソフトのように、セル毎に参照関係を分解して実行順序を決めることができる。これらを組み合わせることで、順参照の場合の実行順序を決定する。
ツールについては、他のどのツールの設定・結果の情報を参照するか、及び/又は、どのセルの値を参照するかの情報を持たせておく。位置決め設定ツールであれば、どの撮像設定ツールで作られた画像を参照するかの情報であり、また検査設定ツールであれば、どの位置決め設定ツールの結果を参照するかの情報であり、また出力ツールであれば、どの位置決め設定ツール・検査設定ツールの結果を参照するか、などである。これら情報の設定は、プロパティ領域63で設定できるようになっており、入力部12は、プロパティ領域63に入力された情報を受け付け、制御部13は、入力部12で受け付けた情報を、対応するツールと関連付けて保持する。
また、セルについては、そのセルがどのツールの何のデータを表しているか、それを使った演算、または他のどのセルの値を使って、どのような演算をするかの情報を持たせておく。どのツールかを特定する際に、ツールごとに設定されたツールIDを利用してもよい。また、どのセルかを特定する際に、セルごとに設定されたセルIDを利用してもよい。パレット領域・ワークシート領域に設定された全ツール・セルの参照関係を総合的に判定して、実行順序を自動的に決定する。
図17は、実行順序の解析例であり、パレット領域61およびワークシート領域65の参照順を分解して参照関係から実行順序を決定する仕組みを示している。ワークシート領域65のセルが一つの数値演算ツールとなっている。セルユニットを含めて順序解決され、ワークシート領域65のツールを分解して、パレット領域61の実行順序自動解決の仕組みを適用する。また、図24は、パレット領域だけでなく、ワークシート領域も用いて検査設定を行う場合の、ツールの追加から検査の実行までの処理の流れを示すフローチャートであり、ステップレイアウト画面50とフリーレイアウト画面60のいずれの場合も同様である。ステップSE1からステップSE3までは、図7に示すステップSC1からステップSC3と同様である。ステップSE4では、入力部12は、ステップSE2でパレット領域に配置されたツールの選択を受け付ける。ステップSE5では、入力部12は、ワークシート領域65を介して、ステップSE4で選択を受け付けたツールに関するデータの入力、参照、演算に関する設定を受け付ける。ステップSE6において、他にも追加の必要なツールがある場合は、ステップSE1に戻って、同様の処理を行う。ステップSE6において、ユーザによる検査設定が完了し、入力部12が検査実行の指示を受け付けると、ステップSE7に進む。ステップSE7では、制御部13は、複数のツールおよびワークシート領域に入力されたデータの参照関係を解析する。ステップSE7では、制御部13は、ステップSE6で解析した参照関係に基づいて、検査の実行順序と、データの参照順序および演算順序とを決定する。ステップSE9では、検査部20は、ステップSE8で決定した順序に基づいて、検査を実行する。
図18のFIG.18Aは、パレットに相当するグラフィカルユーザインタフェース(GUI)をワークシート領域とは別に追加する例を示している。この例では、画像処理とデータ活用をワークシート領域で行う一方で、画像処理ツールがパレットに相当するGUIに表示される。また、FIG.18Bのように、画像処理ツールをGUIに配置すると、ワークシートのユーザからは見えない領域(右端の列)で画像処理ツールを処理するようにしてもよい。こうすることで、ユーザは、パレットに相当するGUIで画像処理を定義し、ワークシート領域ではデータ活用を定義することができるため、それぞれの処理を区別して設定することができる。
入力部12は、パレット領域61上に配置された複数の位置決め設定ツール及び/又は検査設定ツールから出力された出力結果をワークシート領域65上に取り込む指示を受け付ける。さらに、入力部12は、ワークシート領域65のセルに配置された出力結果に基づく演算の設定および当該演算の結果をパレット領域61に配置された出力ツールに取り込む指示を受け付ける。
制御部13は、入力部12が出力結果をワークシート領域65上に取り込む指示を受け付けると、出力結果をワークシート領域65上のセルに入力する。また、制御部13は、ワークシート領域65上での演算の結果をパレット領域61に配置された出力ツールに取り込む指示を受け付けると、当該演算を実行するとともに、出力ツールに対して、演算の結果が配置されたセルへの参照リンクを付与することで、出力ツールと演算の結果が配置されたセルとを関連付けるように構成されている。また、画面生成部11が生成するフリーレイアウト画面60では、画像領域62中の第1の検査領域、並びに、当該第1の検査領域に関するツールおよびセルと、画像領域62中の第2の検査領域、並びに、当該第2の検査領域に関するツールおよびセルと、を区別して表示する。例えば、画像領域62に表示されているワークにおいて互いに異なる検査領域として、第1の検査領域と第2の検査領域とが設定されている場合、第1の検査領域と第2の検査領域を区別可能な形態で画像領域62に表示する。
図15に示すように、ワークシート領域65で検査結果を表示させることもできる。この例では、表示した検査結果に対し座標変換し、座標変換後の座標をパレット領域61のツールが参照する。この具体例について図19に示しており、図19では、パレット領域61の「T1000 キャリブレーション」ツールの演算をワークシート領域65で示すことができ、またパレット領域61の「T0001 結果出力」ツールの演算もワークシート領域65で示すことができる。
図20は、総合判定に適用した場合を説明する図である。総合判定とは、複数の判定結果を統合することによって最終的な結果を判定することを意味する。総合判定では、判定結果ごとに条件分類して判定を格納しておく。ワークシート領域65には、判定結果をテーブルにして表現できる。これにより、例えば、OR関数を用いて簡単に演算することができる。その他にも、ワークシート領域65では、AND、OR、SUM、IFといった理解の容易な制御ロジックを用いて表現することもできるため、様々な演算により複数の判定結果を統合することで総合判定を行うことができる。
図21は、最大、ソートに適用した場合を説明する図であり、例えば一致度が最大の数値を求めることや、値を小さい順または大きい順に並べ替えることもできる。この場合、ワークシート領域65では、MAX関数を使用したり、VLOOKUP、ソートツールを使用する。ワークシート領域65に表示することで、視認性がよくなり、判定ロジックも分かり易くなる。
図22では、パレット領域61に「通信の読み取りツール」と「後段のツール」とが配置されている場合を示しており、「通信の読み取りツール」ではPLC(プログラマブルロジックコントローラ)からの入力値を読み取り、例えば検査中の品種として「2」を読み取った場合には、ワークシート領域65の「品種2」を参照して「品種2」に対応するパラメータを「後段のツール」で使用する。パラメータには、撮像設定ツールの照明条件等が含まれていてもよい。PLCからの入力値に基づいて、照明を切り替えて撮像し、複数の検査対象画像を取得することもできる。この場合、各検査対象画像に対して検査を実行して良否判定する。
また、ワークシート領域65のユースケースとして、文字列をカスタマイズすることもできる。具体的には、データに使う文字列の切替などのデータ自体のカスタマイズや、フォルダ名の切替などの出力方法のカスタマイズなどが可能である。例えば、ワークシート領域65の文字列が配置された複数のセルを結合することで得られた結合後の文字列をツールのパラメータとして参照することもできる。
図14は、上述したように検査領域が複数設定されている場合を示している。この場合、図26に示すように、ニーモニックをワークシート領域65に貼り付けることができる。具体的には、ニーモニックをワークシート領域65に貼り付ける前に、所望のニーモニックをフィルタで抽出し、選択したニーモニックをまとめてワークシート領域65へドラッグアンドドロップすることで、複数のニーモニックをワークシート領域65に一度に貼り付けることができる。
図27は、ワークシート領域65にグラフを表示した場合を示している。この例では、ワークシート領域65に、数値が入力された表と、表に入力された数値を表すグラフとが表示されている。グラフは、制御部13によって生成することができ、生成されたグラフは、画面生成部11がワークシート領域65に組み込む。このように、グラフもワークシート領域65に表示させることができる。
図28は、ユーザインタフェース上の連携を示し、パレット領域61上のニーモニックをワークシート領域65に貼り付ける場合を説明する図である。ニーモニックは、図29に示す表示画面を利用してパレット領域61上でフィルタリングできる。例えばツールの名称、種類、パラメータの名称等を用いてニーモニックをフィルタリングすることで、所望のニーモニックを抽出できる。抽出したニーモニックは、上述したようにドラッグアンドドロップでパレット領域61からワークシート領域65に貼り付ける。
これにより、ニーモニックと呼ばれるキー(T1000.XXX.JG等の文字列)が割り付けられる。そのニーモニックによって、パレット領域61上のツールの数値が割り当てられる。計測ごとにその数値が更新されてワークシート領域65上に入力される。これを利用してパレット領域61からワークシート領域65に数値が反映される。
図30は、設定の貼り付け時の表示画面を示している。この図に示すように、パレット領域61上のニーモニックをワークシート領域65に貼り付けることもできる。ニーモニックも、上述したようにドラッグアンドドロップでパレット領域61からワークシート領域65に貼り付ける。すると、図31に示すように、ツール側からリンクが貼り付けられる。具体的には、図30に示す「T0003 ブロブ」ツールは、ブロブの面積上限が設定値「110」及びブロブの面積下限が設定値「100」というデータをそれぞれ有しており、パレット領域61とプロパティ領域63のフィルタ設定に当該データが表示されている。パレット領域61から「T0003 ブロブ」ツールの面積上限に関するデータをワークシート領域65にドラッグアンドドロップされると、図31のように、制御部13により、面積上限が設定値「110」を意味するニーモニックがワークシート領域65のセルに付与されることで、「T0003 ブロブ」ツールとセル「B2」とが関連付けられる。そして、プロパティ領域63のフィルタ設定において、面積上限のパラメータの表示が、セルのリンクを示す「B2」に置き換わる。これにより、ワークシート領域65の「B2」セル65aの数値を調整することで、「T0003 ブロブ」ツールのブロブの面積上限の設定値を変更することができる。
図32は、ステップレイアウト画面50のパレット領域51に複数の検査設定ツールを配置した場合を示している。このようにパレット領域51に複数の検査設定ツールを配置した後、図33に示すように、ステップレイアウト画面50のワークシート領域55に閾値一覧をドラッグアンドドロップで貼り付ける。貼り付けた後、ワークシート領域55の任意のセル内の数値を入力し直すことで、閾値の調整が簡単に行える。
図34は、カスタムツール化した場合を示す図である。カスタムツールとは、複数のツールをグループ化するとともに、当該複数のツールのパラメータのうち、カスタムツールのパラメータとして表示および/または編集可能なパラメータを選択可能にしたツールのことである。例えば、カスタムツールに含まれる複数のツールのうち、一部のツールの一部のパラメータのみを、カスタムツールのパラメータとして表示及び/又は編集可能にすることができる。つまり、ロック機能のような、各パラメータの表示可否や編集可否を含む表示用ユーザインタフェースのカスタマイズを、ユーザのアカウント権限(管理者や作業者など)ごとに設定することができる。カスタムツールのニーモニックも作成することができるため、ユーザにとって参照しやすいユーザインタフェースを作成できる。画像検査を実行する上で、ユーザにとって不要な情報は隠し、必要な情報だけを表示および/または編集できるようにすることで、ユーザビリティを向上させることができる。
図43は、上述のカスタムツール化する際の処理の流れの一例を示すフローチャートである。スタート後のステップSH1で、入力部12は、パレット領域上に配置された複数のツールの中から、カスタムツール化したい複数のツールの選択を受け付ける。ステップSH2で、入力部12は、カスタムツールのパラメータとして表示および/または編集可能なパラメータの選択を受け付ける。ステップSH3で、入力部12は、カスタムツール名の入力または変更を受け付ける。ステップSH4で、画面生成部11は、カスタムツールの対応する位置にカスタムツール名を表示する。
図34に戻って、ステップレイアウト画面50のパレット領域51の検査設定エリア51cに配置された「エッジ上」、「エッジ下」、「距離」、「OK/NGカウント」の4種類の検査設定ツールをまとめてカスタムツール化することで、カスタムツール51fが作成される。また、オプションツールとして、「エッジ用二値化フィルタ」と、「エッジ下用共有領域」とが配置されている。カスタムツール化は、ステップレイアウト画面50だけでなく、フリーレイアウト画面60においても実行可能である。
図35は、図34で設定したカスタムツール51fを複製することで、同じ検査内容の4つのカスタムツールを作成した場合を示している。カスタムツールを複製することで、複数の同じ検査内容のカスタムツールを設定する手間を省くことができる。このように、多数の検査対象領域をそれぞれ検査することが可能になる。図36に示すように、各カスタムツールのニーモニックをワークシート領域55に貼り付けることができる。例えば、各カスタムツールのパラメータのうち、フィルタを適用して「有効/無効」に関するパラメータを抽出し、ワークシート領域55に貼り付けることで、当該パラメータをワークシート領域55に表形式で表示させることができる。
図37は、図36に示した操作後の画面を示している。本例では、すべてのカスタムツールが有効化されているため、ワークシート領域55において、各カスタムツール1から4をそれぞれ示す「ペア1」「ペア2」「ペア3」「ペア4」のセルの先頭に、チェックの入ったチェックボックスが表示される。すなわち、ワークシート領域55のチェックボックスを介して、各カスタムツールを有効にするか、無効にするかを設定することができる。
図38は、グループツールとその他のツールとを含むカスタムツールを作成する場合を説明する図である。パレット領域61に配置されたグループツール「T016 グループA」ツール、「T017 円検出」ツール、「T018 前処理フィルタ」ツール、「T019 モデル登録」ツールをカスタムツール化することができる。図39は、図38で示したカスタムツール化によって、グループツールとその他のツールを含む「カスタムツール」という名称の1つのカスタムツールを生成した場合を示している。本例では、「T016 グループA」ツールに「パターンサーチ」ツールが含まれており、当該ツールの判定条件のみが、作成したカスタムツールの表示および編集可能なパラメータとしてプロパティ領域63に表示されていている。なお、グループツールだけでなく、カスタムツールを更に含むカスタムツールを作成することもできる。
(変形例)
図40は、参照関係を図示する領域を別途表示する場合を示す図であり、パレット領域61やワークシート領域65上で選択されているツール等の参照状態を表示するリンク画面80である。リンク画面80は、ツールバー80aと、参照状態を表示するリスト80bとを含んでいる。ツールバー80aには、戻るボタン80cと進むボタン80dとが設けられている。戻るボタン80cおよび進むボタン80dは、操作部40によって操作された時、ハイパーリンクによる状態遷移の戻る/進むを行うためのボタンである。ハイパーリンクで一度も遷移していない場合は非活性で操作不可となっている。一度でも遷移した場合は、最初の状態で戻るボタン80cが操作されると非活性であり、進むボタン80dが操作されると活性となる。最初から最後までの間は、戻るボタン80cおよび進むボタン80dが活性となる。最後の状態で戻るボタン80cが操作されると活性であり、進むボタン80dが操作されると非活性となる。
リスト80bには、パレット領域61で選択されているツール、ワークシート領域65で選択されているセルの参照状態をリストで表示する。グループツールが選択されている場合は、そのグループツールに含まれる全てのツールが選択された状態として表示される。また、ツールやセルが複数選択されている場合には、選択されている全てのツールやセルが表示される。
図41は、参照関係を矢印で図示する場合を示す変形例である。この図に示すように、パレット領域61上の選択されているツールから参照先のツールに向けて矢印が表示される。セルを選択した場合にも同様に参照先へ向けて矢印が表示される。
図42は、フローチャートの切り替える場合を示す変形例である。パレット領域61に複数のツールが配置されている場合には、ユーザの操作によって参照関係を示すフローチャートを表示させることもできる。
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
以上説明したように、本発明に係る検査設定装置は、カメラで撮像されたワークを検査する画像検査装置の設定を行う際に利用できる。
1 検査設定装置
11 画面生成部
12 入力部
13 制御部
50 ステップレイアウト画面
60 フリーレイアウト画面
65 ワークシート領域
100 画像検査装置

Claims (11)

  1. カメラで撮像されたワークを検査する画像検査装置の設定を行うための検査設定装置であって、
    カメラの撮像設定に関連する撮像設定ツール、前記カメラにより撮像された検査対象画像に対する検査領域の位置決めを行う位置決め設定に関連する位置決め設定ツール、前記位置決めされた検査領域に対する検査内容を設定する検査設定に関連する検査設定ツール、および、検査結果の出力に関する設定を行う出力設定に関連する出力ツールを含む複数のツールを配置可能なパレット領域と、前記複数のツールに関するデータの参照及び演算を行うワークシート領域と、を表示する表示画面を生成する画面生成部と、
    前記表示画面の前記パレット領域上に配置されたツールの選択を受け付け、前記ワークシート領域を介して当該選択されたツールに関するデータの入力、参照、又は演算に関する設定を受け付ける入力部と、
    を備える検査設定装置。
  2. 請求項1に記載の検査設定装置において、
    前記パレット領域上に配置されたツールに関するデータを表すニーモニックを生成する制御部を備え、
    前記入力部は、前記パレット領域上の選択されたツールに関するデータを、前記ワークシート領域に取り込むための順参照指示を受け付け、
    前記制御部は、前記入力部が前記順参照指示を受け付けると、前記選択されたツールに関するデータのニーモニックを前記ワークシート領域上のセルに付与することで、前記選択されたツールと当該セルとを関連付ける、検査設定装置。
  3. 請求項2に記載の検査設定装置において、
    前記入力部は、前記パレット領域上の選択されたツールに関するデータがドラッグされ、前記ワークシート領域上にドロップされるドラッグアンドドロップ操作によって、前記順参照指示を受け付け可能に構成される、検査設定装置。
  4. 請求項1に記載の検査設定装置において、
    前記入力部は、前記パレット領域上の選択されたツールのパラメータに、前記ワークシート領域上の選択されたセルのデータを取り込むための逆参照指示を受け付け、
    前記入力部が前記逆参照指示を受け付けると、前記パレット領域上の選択されたツールのパラメータに対して、前記ワークシート領域上の選択されたセルへの参照リンクを付与することで、前記パレット領域上の選択されたツールのパラメータと、前記ワークシート領域上の選択されたセルとを関連付ける制御部を備えている、検査設定装置。
  5. 請求項1に記載の検査設定装置において、
    前記入力部は、前記パレット領域上の選択されたツールのパラメータに、前記ワークシート領域を介して受け付けた演算の結果が配置されたセルのデータを取り込むための逆参照指示を受け付け、
    前記入力部が前記逆参照指示を受け付けると、前記パレット領域上の選択されたツールのパラメータに対して、当該演算の結果が配置されたセルへの参照リンクを付与することで、前記パレット領域上の選択されたツールのパラメータと、当該演算の結果が配置されたセルとを関連付ける制御部を備えている、検査設定装置。
  6. 請求項1に記載の検査設定装置において、
    前記パレット領域上に配置された複数のツールおよび前記ワークシート領域に入力されたデータの参照関係を解析し、各ツールの検査実行時の実行順序と、前記ワークシート領域におけるデータの参照順序及び演算順序とを決定する制御部を備えている、検査設定装置。
  7. 請求項6に記載の検査設定装置において、
    前記入力部は、前記パレット領域上に配置された複数のツールのうち、任意のツールの選択操作と、前記ワークシート領域におけるデータが入力されたセルの選択操作との少なくとも一方の選択操作を受け付け、
    前記制御部は、前記入力部で前記任意のツールの選択操作を受け付けると、選択されたツールと前記ワークシート領域のセルとの参照関係を示す参照関係データを作成する一方、前記入力部で前記データが入力されたセルの選択操作を受け付けると、選択されたセルとツールとの参照関係を示す参照関係データを作成し、
    前記画面生成部は、前記制御部が作成した前記参照関係データを表示する表示画面を生成する、検査設定装置。
  8. 請求項6に記載の検査設定装置において、
    前記制御部は、前記パレット領域上に配置された複数のツールおよび前記ワークシート領域の複数のセルに割り当てられた識別情報を参照し、各識別情報の処理内容に基づく依存関係を解析してソートアルゴリズムを実行することにより、各ツールの検査実行時の実行順序と、前記ワークシート領域におけるデータの参照順序及び演算順序とを決定する、検査設定装置。
  9. 請求項8に記載の検査設定装置において、
    前記入力部は、前記パレット領域上に配置された複数の位置決め設定ツール及び/又は検査設定ツールから出力された出力結果を前記ワークシート領域上に取り込む指示と、セルに配置された出力結果に基づく演算の設定および当該演算の結果を前記パレット領域に配置された出力ツールに取り込む指示と、を受け付け可能に構成され、
    前記制御部は、前記入力部が前記出力結果を前記ワークシート領域上に取り込む指示を受け付けると、前記出力結果を前記ワークシート領域上のセルに入力する一方、前記演算の結果を前記パレット領域に配置された出力ツールに取り込む指示を受け付けると、前記演算を実行するとともに、前記出力ツールに対して、前記演算の結果が配置されたセルへの参照リンクを付与することで、前記出力ツールと前記演算の結果が配置されたセルとを関連付ける、検査設定装置。
  10. 請求項1に記載の検査設定装置において、
    前記画面生成部は、前記パレット領域と、前記ワークシート領域と、前記カメラにより撮像された画像を表示する画像領域と、を同時に表示する表示画面を生成可能に構成されている、検査設定装置。
  11. 請求項10に記載の検査設定装置において、
    前記画面生成部は、前記画像領域中の第1の検査領域、並びに、当該第1の検査領域に関するツールおよびセルと、前記画像領域中の第2の検査領域、並びに、当該第2の検査領域に関するツールおよびセルと、を区別して表示する表示画面を生成可能に構成されている、検査設定装置。
JP2022103854A 2022-06-28 2022-06-28 検査設定装置 Pending JP2024004266A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022103854A JP2024004266A (ja) 2022-06-28 2022-06-28 検査設定装置
US18/202,456 US20230418452A1 (en) 2022-06-28 2023-05-26 Inspection setting device
CN202310749075.9A CN117309866A (zh) 2022-06-28 2023-06-21 检查设置装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022103854A JP2024004266A (ja) 2022-06-28 2022-06-28 検査設定装置

Publications (1)

Publication Number Publication Date
JP2024004266A true JP2024004266A (ja) 2024-01-16

Family

ID=89285433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022103854A Pending JP2024004266A (ja) 2022-06-28 2022-06-28 検査設定装置

Country Status (3)

Country Link
US (1) US20230418452A1 (ja)
JP (1) JP2024004266A (ja)
CN (1) CN117309866A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140084448A (ko) * 2012-12-26 2014-07-07 두산인프라코어 주식회사 수치제어 복합가공기의 운용 프로그램 및 공구선정 방법
JP6242098B2 (ja) * 2013-07-16 2017-12-06 株式会社キーエンス 三次元画像処理装置、三次元画像処理方法及び三次元画像処理プログラム並びにコンピュータで読み取り可能な記録媒体及び記録した機器
JP7271306B2 (ja) * 2019-05-16 2023-05-11 株式会社キーエンス 画像検査装置及び画像検査装置の設定方法

Also Published As

Publication number Publication date
CN117309866A (zh) 2023-12-29
US20230418452A1 (en) 2023-12-28

Similar Documents

Publication Publication Date Title
JP6967373B2 (ja) 画像検査装置
JP4629118B2 (ja) 欠陥検査装置およびこの欠陥検査装置に用いるパラメータ調整方法。
KR102430090B1 (ko) 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치
JP2018205005A (ja) 画像検査装置
JP5415182B2 (ja) 画像処理装置及びプログラム作成支援装置並びに画像処理方法
JP5469433B2 (ja) 画像処理装置及び画像処理方法
JP7271306B2 (ja) 画像検査装置及び画像検査装置の設定方法
CN106598622A (zh) 一种智能视觉检测平台
JP7448710B2 (ja) 画像検査装置及び画像検査装置の設定方法
JP2014109479A (ja) 画像処理装置、画像処理方法及びコンピュータプログラム
JP4442042B2 (ja) 画像処理プログラム作成方法およびそのシステム
JP2009116377A (ja) 画像処理コントローラ用のプログラム作成装置
KR20130048868A (ko) 선박설계 시 형강류 절단도면 자동 생성 및 자재 bom 자동 추출 방법
JP4944739B2 (ja) 画像処理コントローラ用のプログラム作成装置
JP2024004266A (ja) 検査設定装置
JP2018205004A (ja) 画像検査装置
JP2024004254A (ja) 検査設定装置
JP2009122823A (ja) 画像処理コントローラ用のプログラム作成装置
JP5696194B2 (ja) プログラム作成支援装置及び画像処理装置
JP7440620B2 (ja) プログラム編集装置
JP7308656B2 (ja) 画像検査装置
Reiff et al. User interface for the acquisition and characterization of defects and performed rework in multi-stage production systems
JP2013164313A (ja) 画面表示データ編集装置及び画面表示データ編集方法
JP2018204995A (ja) 画像検査装置
JP2018205001A (ja) 画像検査装置