(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-26
(54)【発明の名称】支援欠陥認識システムに対するデザインインターフェース
(51)【国際特許分類】
G06T 7/00 20170101AFI20231019BHJP
G01N 23/046 20180101ALI20231019BHJP
G06F 3/0484 20220101ALI20231019BHJP
【FI】
G06T7/00 610Z
G01N23/046
G06F3/0484
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023520367
(86)(22)【出願日】2021-09-29
(85)【翻訳文提出日】2023-05-24
(86)【国際出願番号】 US2021052593
(87)【国際公開番号】W WO2022072459
(87)【国際公開日】2022-04-07
(32)【優先日】2020-10-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591203428
【氏名又は名称】イリノイ トゥール ワークス インコーポレイティド
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100153729
【氏名又は名称】森本 有一
(74)【代理人】
【識別番号】100211177
【氏名又は名称】赤木 啓二
(72)【発明者】
【氏名】シーン リン
(72)【発明者】
【氏名】ヨーゼフ シュレヒト
(72)【発明者】
【氏名】カレブ ネルソン ヘイ
(72)【発明者】
【氏名】エリック ファーリー
【テーマコード(参考)】
2G001
5E555
5L096
【Fターム(参考)】
2G001AA01
2G001BA11
2G001CA01
2G001DA09
2G001HA07
2G001HA14
2G001JA08
5E555AA79
5E555BA02
5E555BA86
5E555BB02
5E555BC04
5E555CA02
5E555CA12
5E555CB08
5E555CB16
5E555CB18
5E555CB34
5E555DA01
5E555EA14
5E555FA00
5L096BA03
5L096CA02
5L096CA22
5L096EA03
5L096EA12
5L096FA06
5L096GA06
5L096GA51
5L096GA55
5L096KA04
(57)【要約】
本明細書において、カスタム支援欠陥認識(ADR)システム及び/又はワークフローをデザイン及び/又は構成するインターフェースの例について説明する。いくつかの例では、ADRシステム及び/又はワークフローは、例えば、ノードベースの処理ツール等の視覚ツールを用いて、デザイン及び/又は構成することができる。いくつかの例では、ADRワークフローを用いて、例えば、工業用X線走査システムによって生成され得る2次元(2D)及び/又は3次元(3D)画像走査を解析することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
支援欠陥認識(ADR)制御システムであって、
ディスプレイと、
プロセッサと、
コンピューター可読命令を含むコンピューター可読記憶媒体であって、前記コンピューター可読命令は、実行されると、前記プロセッサに、
前記ディスプレイを介してデザインインターフェースを提供することであって、前記デザインインターフェースはキャンバスと複数の画像処理ブロックとを含み、前記画像処理ブロックのそれぞれは画像処理機能を表し、前記画像処理ブロックのうちの画像処理ブロックを前記キャンバス上に配置して、前記画像処理ブロックのインスタンスを形成することができることと、
前記キャンバス上の前記画像処理ブロックのインスタンスと、前記キャンバス上の前記画像処理ブロックの前記インスタンス間の接続とに基づいて、画像処理ワークフローを構成することと、
前記画像処理ワークフローを介して入力画像の解析を行うことと、
前記解析の結果を出力することと、
を行わせる、コンピューター可読記憶媒体と、
を備える、ADR制御システム。
【請求項2】
前記コンピューター可読命令は、実行されると、前記プロセッサに、
ユーザーが、前記デザインインターフェースの前記キャンバス上の前記画像処理ブロックの前記インスタンスの入力及び出力を接続できるようにすることと、
前記キャンバス上の前記画像処理ブロックの前記インスタンスの前記入力及び出力の前記接続に基づいて、前記画像処理ワークフローを構成することと、
を更に行わせる、請求項1に記載のADR制御システム。
【請求項3】
前記コンピューター可読命令は、実行されると、前記プロセッサに、
ユーザーが、前記画像処理ブロックの前記インスタンスのうちの少なくとも1つにおいて使用されるパラメーターの値又は範囲を指定できるようにすることと、
前記パラメーターの前記値又は範囲に基づいて前記画像処理ワークフローを構成することと、
を更に行わせる、請求項1に記載のADR制御システム。
【請求項4】
前記コンピューター可読命令は、実行されると、前記プロセッサに、複数のトレーニング画像を用いる前記画像処理ワークフローのトレーニングに基づいて、前記パラメーターの前記値又は範囲を決定することを更に行わせる、請求項3に記載のADR制御システム。
【請求項5】
前記結果は、画像、画像の一部、数値、又はブール値である、請求項1に記載のADR制御システム。
【請求項6】
前記コンピューター可読命令は、実行されると、前記プロセッサに、前記キャンバス上の前記画像処理ブロックの前記インスタンスの選択に応答して前記解析の中間結果をプレビューすることを更に行わせる、請求項1に記載のADR制御システム。
【請求項7】
前記コンピューター可読命令は、実行されると、前記プロセッサに、ユーザーが、複数の画像処理ブロックを一緒にグループ化することと、前記グループを複合画像処理ブロックとして保存することと、前記キャンバスに加える前記複合画像処理ブロックの選択に応答して前記複合画像処理ブロックを前記キャンバスに加えることとをできるようにすることを更に行わせる、請求項1に記載のADR制御システム。
【請求項8】
前記コンピューター可読命令は、実行されると、前記プロセッサに、
X線スキャナーによって生成された画像又は前記X線スキャナーによって生成された画像から構成された3次元(3D)ボリュームにアクセスすることであって、前記画像又は3Dボリュームは、前記X線スキャナーによって走査されたコンポーネント又はアセンブリを表すことと、
前記画像又は前記3Dボリュームのスライスを前記入力画像として用いることと、
を更に行わせる、請求項1に記載のADR制御システム。
【請求項9】
前記画像処理ブロックは、画像フィルター機能、領域選択機能、エッジ検出機能、オブジェクト選択機能、輝度調整機能、画像拡大機能、画像情報機能、画像差分機能、画像注釈機能、画像結合機能、画像スライス機能、ラインプロファイリング機能、信号対雑音比機能、コントラスト対ノイズ比機能、又は閾値処理機能を含む、請求項1に記載のADR制御システム。
【請求項10】
前記結果は第1の結果を含み、前記画像処理ワークフローは第1の画像処理ワークフローを含み、前記コンピューター可読命令は、実行されると、前記プロセッサに、第2の画像処理ワークフローの第2の結果に基づいて前記第1の画像処理ワークフローの1つ以上のパラメーターを較正することを更に行わせる、請求項1に記載のADR制御システム。
【請求項11】
カスタムADRワークフローのデザインを容易にする方法であって、
ディスプレイを介してデザインインターフェースを提供することであって、前記デザインインターフェースはキャンバスと複数の画像処理ブロックとを含み、前記画像処理ブロックのそれぞれは画像処理機能を表し、前記画像処理ブロックのうちの画像処理ブロックを前記キャンバス上に配置して、前記画像処理ブロックのインスタンスを形成することができることと、
前記キャンバス上の前記画像処理ブロックのインスタンスと、前記キャンバス上の前記画像処理ブロックの前記インスタンス間の接続とに基づいて、処理回路部を介して、画像処理ワークフローを構成することと、
前記画像処理ワークフローを介して入力画像の解析を行うことと、
前記解析の結果を出力することと、
を含む、方法。
【請求項12】
ユーザーが、前記デザインインターフェースの前記キャンバス上の前記画像処理ブロックの前記インスタンスの入力及び出力を接続できるようにすることと、
前記キャンバス上の前記画像処理ブロックの前記インスタンスの前記入力及び出力の前記接続に基づいて前記画像処理ワークフローを構成することと、
を更に含む、請求項11に記載の方法。
【請求項13】
ユーザーが、前記画像処理ブロックの前記インスタンスのうちの少なくとも1つにおいて使用されるパラメーターの値又は範囲を指定できるようにすることと、
前記パラメーターの前記値又は範囲に基づいて前記画像処理ワークフローを構成することと、
を更に含む、請求項11に記載の方法。
【請求項14】
複数のトレーニング画像を用いる前記画像処理ワークフローのトレーニングに基づいて前記パラメーターの前記値又は範囲を決定することを更に含む、請求項13に記載の方法。
【請求項15】
前記結果は、画像、画像の一部、数値、又はブール値である、請求項11に記載の方法。
【請求項16】
前記キャンバス上の前記画像処理ブロックの前記インスタンスの選択に応答して前記解析の中間結果をプレビューすることを更に含む、請求項11に記載の方法。
【請求項17】
ユーザーが、複数の画像処理ブロックを一緒にグループ化することと、前記グループを複合画像処理ブロックとして保存することと、前記キャンバスに加える前記複合画像処理ブロックの選択に応答して前記複合画像処理ブロックを前記キャンバスに加えることとをできるようにすることを更に含む、請求項11に記載の方法。
【請求項18】
X線スキャナーによって生成された画像又は前記X線スキャナーによって生成された画像から構成された3次元(3D)ボリュームにアクセスすることであって、前記画像又は3Dボリュームは、前記X線スキャナーによって走査されたコンポーネント又はアセンブリを表すことと、
前記画像又は前記3Dボリュームのスライスを前記入力画像として用いることと、
を更に含む、請求項11に記載の方法。
【請求項19】
前記画像処理ブロックは、画像フィルター機能、領域選択機能、エッジ検出機能、オブジェクト選択機能、輝度調整機能、画像拡大機能、画像情報機能、画像差分機能、画像注釈機能、画像結合機能、画像スライス機能、ラインプロファイリング機能、信号対雑音比機能、コントラスト対ノイズ比機能、又は閾値処理機能を含む、請求項11に記載の方法。
【請求項20】
前記結果は第1の結果を含み、前記画像処理ワークフローは第1の画像処理ワークフローを含み、前記方法は、第2の画像処理ワークフローの第2の結果に基づいて前記第1の画像処理ワークフローの1つ以上のパラメーターを較正することを更に含む、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、「DESIGN INTERFACES FOR ASSISTED DEFECT RECOGNITION SYSTEMS」と題される2020年10月2日付けで出願された米国仮特許出願第63/086,963号号及び「DESIGN INTERFACES FOR ASSISTED DEFECT RECOGNITION SYSTEMS」と題される2021年9月29日付けで出願された米国特許出願第17/488,844号による優先権及びその利益を主張するものである。両出願は、引用することによりその内容の全体が本明細書の一部をなす。
本開示は、包括的には、支援欠陥認識システム、より詳細には、支援欠陥認識システムに対するデザインインターフェースに関する。
【背景技術】
【0002】
X線走査は、例えば、航空宇宙、自動車、電子、医療、医薬品、軍事、及び/又は防衛用途等の工業用途で使用される部品を検査するためにしばしば用いられる。X線画像を用いて、通常はヒトの目には見えない場合がある部品(複数の場合もある)の割れ、ひび、又は欠陥をチェックすることができる。ただし、ひび又は欠陥の定義は部品及び/又は用途に応じて異なる場合がある。
【0003】
このようなシステムを、図面を参照して本出願の残りの部分で述べられる本開示と比較することによって、従来の手法及び伝統的な手法の限界及び不利な点が当業者に明らかになるであろう。
【発明の概要】
【0004】
本開示は、例えば、実質的に複数の図面のうちの少なくとも1つに関連して例示及び/又は説明されるとともに請求項でより完全に記述される、支援欠陥認識システムに対するデザインインターフェースに関する。
【0005】
本開示のこれらの並びに他の利点、態様、及び新規な特徴に加えて、本開示の図示した例の詳細な内容は、以下の説明及び図面からより十分に理解される。
【図面の簡単な説明】
【0006】
【
図1】本開示の態様による一例示の工業用X線走査システムを示す図である。
【0007】
【
図2】本開示の態様による一例示の部品解析システムのブロック図である。
【0008】
【
図3a】本開示の態様によるADRワークフローを伴う一例示の支援欠陥認識(ADR)デザインインターフェースを示す図である。
【
図3b】本開示の態様によるADRワークフローを伴う一例示の支援欠陥認識(ADR)デザインインターフェースを示す図である。
【
図3c】本開示の態様によるADRワークフローを伴う一例示の支援欠陥認識(ADR)デザインインターフェースを示す図である。
【
図3d】本開示の態様によるADRワークフローを伴う一例示の支援欠陥認識(ADR)デザインインターフェースを示す図である。
【0009】
【
図4】本開示の態様による一例示のADRデザイナーの動作を示すフローチャートである。
【発明を実施するための形態】
【0010】
図は必ずしも縮尺通りではない。適切な場合、図において類似又は同一の構成要素を参照するために同一又は類似の参照番号が使用される。例えば、文字を利用する参照番号(例えば、リポジトリ258a、リポジトリ258b)は、文字が付いていない同じ参照番号(例えば、リポジトリ258)の事例を指す。
【0011】
本開示のいくつかの例は、カスタム支援欠陥認識システム及び/又はワークフローをデザイン及び/又は構成するインターフェースに関する。本明細書において使用する場合、支援欠陥認識(ADR)とは、工業用部品の品質保証検査を目的として、機械又はプログラマブル装置により人間オペレーター又は自動化システムに提供される支援を指す。本明細書において使用する場合、ADRワークフローとは、支援欠陥認識用に編成及び/又は実行される相互接続された機械動作の配置及び/又は順序付けられたシーケンスを指す。
【0012】
いくつかの例では、ADRワークフローは、例えば、ノードベースの処理/プログラミングツール等の視覚ツールを用いて、デザイン及び/又は構成することができる。いくつかの例では、これらの視覚(例えば、ノードベースの)処理/プログラミングツールは、より従来的なテキストベースのプログラミングツールと比べて、使用が簡単で、直観的で、面倒/複雑でなく、及び/又は困難でないものとすることができる。いくつかの例では、よりアクセスしやすく及び/又は直観的な視覚(例えば、ノードベースの)処理/プログラミングツールは、工業用部品を検査する工業労働者にとって役立つものとすることができる。
【0013】
いくつかの例では、ADRデザイナーによって、視覚(例えば、ノードベースの)処理/プログラミングツールを用いてADRワークフローのカスタム構成を可能にするように構成されたデザインインターフェースが提供される。ADRワークフローを用いて、例えば、工業用X線撮像/走査システムによって生成され得る、2次元(2D)及び/又は3次元(3D)放射線撮影画像/走査を解析することができる。ノードベースのプログラミング及び/又は処理ツールは、従来、コンピューター生成画像(CGI)及びコンピューターグラフィックスに対して使用することができるが、これらの従来のツールは、工業用放射線撮影画像の解析に必要なタイプの処理に対して、及び/又は工業用放射線撮影(例えば、X線)画像の解析用にADRワークフローをデザインすることに対しては、装備が不十分である。
【0014】
本開示のいくつかの例は、支援欠陥認識(ADR)制御システムであって、ディスプレイと、プロセッサと、コンピューター可読命令を含むコンピューター可読記憶媒体であって、コンピューター可読命令は、実行されると、プロセッサに、ディスプレイを介してデザインインターフェースを提供することであって、デザインインターフェースはキャンバスと複数の画像処理ブロックとを含み、画像処理ブロックのそれぞれは画像処理機能を表し、画像処理ブロックのうちの画像処理ブロックをキャンバス上に配置して、画像処理ブロックのインスタンスを形成することができることと、キャンバス上の画像処理ブロックのインスタンスと、キャンバス上の画像処理ブロックのインスタンス間の接続とに基づいて、画像処理ワークフローを構成することと、画像処理ワークフローを介して入力画像の解析を行うことと、解析の結果を出力することとを行わせる、コンピューター可読記憶媒体とを備える、ADR制御システムに関する。
【0015】
いくつかの例では、コンピューター可読命令は、実行されると、プロセッサに、ユーザーが、デザインインターフェースのキャンバス上の画像処理ブロックのインスタンスの入力及び出力を接続できるようにすることと、キャンバス上の画像処理ブロックのインスタンスの入力及び出力の接続に基づいて、画像処理ワークフローを構成することとを更に行わせる。いくつかの例では、コンピューター可読命令は、実行されると、プロセッサに、ユーザーが、画像処理ブロックのインスタンスのうちの少なくとも1つにおいて使用されるパラメーターの値又は範囲を指定できるようにすることと、パラメーターの値又は範囲に基づいて画像処理ワークフローを構成することとを更に行わせる。いくつかの例では、コンピューター可読命令は、実行されると、プロセッサに、複数のトレーニング画像を用いる画像処理ワークフローのトレーニングに基づいて、パラメーターの値又は範囲を決定することを更に行わせる。
【0016】
いくつかの例では、結果は、画像、画像の一部、数値、又はブール値である。いくつかの例では、コンピューター可読命令は、実行されると、プロセッサに、キャンバス上の画像処理ブロックのインスタンスの選択に応答して解析の中間結果をプレビューすることを更に行わせる。いくつかの例では、コンピューター可読命令は、実行されると、プロセッサに、ユーザーが、複数の画像処理ブロックを一緒にグループ化することと、グループを複合画像処理ブロックとして保存することと、キャンバスに加える複合画像処理ブロックの選択に応答して複合画像処理ブロックをキャンバスに加えることとをできるようにすることを更に行わせる。
【0017】
いくつかの例では、コンピューター可読命令は、実行されると、プロセッサに、X線スキャナーによって生成された画像又はX線スキャナーによって生成された画像から構成された3次元(3D)ボリュームにアクセスすることであって、画像又は3Dボリュームは、X線スキャナーによって走査されたコンポーネント又はアセンブリを表すことと、画像又は3Dボリュームのスライスを入力画像として用いることとを更に行わせる。いくつかの例では、画像処理ブロックは、画像フィルター機能、領域選択機能、エッジ検出機能、オブジェクト選択機能、輝度調整機能、画像拡大機能、画像情報機能、画像差分機能、画像注釈機能、画像結合機能、画像スライス機能、ラインプロファイリング機能、信号対雑音比機能、コントラスト対ノイズ比機能、又は閾値処理機能を含む。いくつかの例では、結果は第1の結果を含み、画像処理ワークフローは第1の画像処理ワークフローを含み、コンピューター可読命令は、実行されると、プロセッサに、第2の画像処理ワークフローの第2の結果に基づいて第1の画像処理ワークフローの1つ以上のパラメーターを較正することを更に行わせる。
【0018】
本開示のいくつかの例は、カスタムADRワークフローのデザインを容易にする方法であって、ディスプレイを介してデザインインターフェースを提供することであって、デザインインターフェースはキャンバスと複数の画像処理ブロックとを含み、画像処理ブロックのそれぞれは画像処理機能を表し、画像処理ブロックのうちの画像処理ブロックをキャンバス上に配置して、画像処理ブロックのインスタンスを形成することができることと、キャンバス上の画像処理ブロックのインスタンスと、キャンバス上の画像処理ブロックのインスタンス間の接続とに基づいて、処理回路部を介して、画像処理ワークフローを構成することと、画像処理ワークフローを介して入力画像の解析を行うことと、解析の結果を出力することとを含む、方法に関する。
【0019】
いくつかの例では、本方法は、ユーザーが、デザインインターフェースのキャンバス上の画像処理ブロックのインスタンスの入力及び出力を接続できるようにすることと、キャンバス上の画像処理ブロックのインスタンスの入力及び出力の接続に基づいて画像処理ワークフローを構成することとを更に含む。いくつかの例では、本方法は、ユーザーが、画像処理ブロックのインスタンスのうちの少なくとも1つにおいて使用されるパラメーターの値又は範囲を指定できるようにすることと、パラメーターの値又は範囲に基づいて画像処理ワークフローを構成することとを更に含む。いくつかの例では、本方法は、複数のトレーニング画像を用いる画像処理ワークフローのトレーニングに基づいてパラメーターの値又は範囲を決定することを更に含む。
【0020】
いくつかの例では、結果は、画像、画像の一部、数値、又はブール値である。いくつかの例では、本方法は、キャンバス上の画像処理ブロックのインスタンスの選択に応答して解析の中間結果をプレビューすることを更に含む。いくつかの例では、本方法は、ユーザーが、複数の画像処理ブロックを一緒にグループ化することと、グループを複合画像処理ブロックとして保存することと、キャンバスに加える複合画像処理ブロックの選択に応答して複合画像処理ブロックをキャンバスに加えることとをできるようにすることを更に含む。
【0021】
いくつかの例では、本方法は、X線スキャナーによって生成された画像又はX線スキャナーによって生成された画像から構成された3次元(3D)ボリュームにアクセスすることであって、画像又は3Dボリュームは、X線スキャナーによって走査されたコンポーネント又はアセンブリを表すことと、画像又は3Dボリュームのスライスを入力画像として用いることとを更に含む。いくつかの例では、画像処理ブロックは、画像フィルター機能、領域選択機能、エッジ検出機能、オブジェクト選択機能、輝度調整機能、画像拡大機能、画像情報機能、画像差分機能、画像注釈機能、画像結合機能、画像スライス機能、ラインプロファイリング機能、信号対雑音比機能、コントラスト対ノイズ比機能、又は閾値処理機能を含む。いくつかの例では、結果は第1の結果を含み、画像処理ワークフローは第1の画像処理ワークフローを含み、方法は、第2の画像処理ワークフローの第2の結果に基づいて第1の画像処理ワークフローの1つ以上のパラメーターを較正することを更に含む。
【0022】
図1は、一例示の工業用X線走査システム100を示す。例示のX線走査システム100を用いて、非破壊検査(NDT)及び/又は他の走査用途を実行することができる。図示されているように、X線走査システム100は、X線102をX線エミッター104からワークピース(及び/又は部品)108を通してX線検出器106へ送る。
【0023】
いくつかの例では、X線エミッター104は、円錐又は扇状のX線照射を放出するように構成されたX線管を含むことができる。いくつかの例では、ワークピース108は、工業用コンポーネント及び/又はコンポーネントのアセンブリ(例えば、エンジンキャスト、マイクロチップ、ボルト等)とすることができる。
図1の例において、ワークピース位置決め装置110が、ワークピース108をX線照射102の経路内でX線エミッター104と検出器106との間に保持する。
【0024】
いくつかの例では、ワークピース位置決め装置110は、ワークピース108の所望の位置及び/又は向きがX線照射102の経路内に位置するようにワークピース108を移動及び/又は回転させるように構成され得る。いくつかの例では、X線走査システム100は、X線エミッター104、X線検出器106、及び/又はワークピース位置決め装置110の位置及び/又は向きを変えるように構成された1つ以上の作動装置を更に含むことができる。いくつかの例では、X線走査システム100は、X線エミッター104、X線検出器106、ワークピース位置決め装置110、及び/又はX線走査システム100の一部を囲むハウジングを含むことができる。
図1の例ではX線エミッター104及びX線検出器106が含まれているが、他の例では、走査システム100は他の波長の放射線(例えば、ガンマ、中性子等)を用いて走査を実行してもよい。
【0025】
いくつかの例では、X線検出器106は、X線検出器106に入射するX線照射102に基づいて2Dデジタル画像(例えば、X線画像)を生成することができる。いくつかの例では、2D画像はX線検出器106自体が生成してもよい。いくつかの例では、2D画像を、X線検出器106と、X線検出器106と通信するコンピューティングシステムとの組み合わせによって生成してもよい。
【0026】
いくつかの例では、X線検出器106(及び/又は関連するコンピューティングシステム(複数の場合もある))によって生成された2D画像を結合して、3次元(3D)ボリューム及び/又は画像を形成することができる。いくつかの例では、3Dボリューム/画像の2D画像スライスを形成することもできる。「画像」という用語は本明細書においては省略表現として用いているが、「画像」は、代表的なデータを、そのデータが1つ以上の適切なコンポーネント(例えば、ディスプレイスクリーン、グラフィックス処理ユニット、X線検出器108等)によって視覚的にレンダリングされるまで含むことができることを理解されたい。
【0027】
いくつかの例では、X線検出器106は、シンチレーションを介して画像を間接的に受け取るように構成された蛍光透視検出システム及び/又はデジタル画像センサーを含むことができる、及び/又はX線を直接受け取ってデジタル画像を生成するように構成されたセンサーパネル(例えば、CCDパネル、CMOSパネル等)を用いて実装することができる。いくつかの例では、X線検出器106は、シンチレーションスクリーンに結合されたソリッドステートパネルであって、シンチレーションスクリーンの部分に対応するピクセルを有する、ソリッドステートパネルを用いることができる。例示のソリッドステートパネルは、CMOS X線パネル及び/又はCCD X線パネルを含むことができる。
【0028】
図2に、一例示の部品解析システム200を示す。図示されているように、部品解析システム200は、X線走査システム100、コンピューティングシステム250、ユーザーインターフェース(UI)202、及びリモートコンピューティングシステム299を含む。
図2の例では、X線走査システム100、コンピューティングシステム250、UI202、及びリモートコンピューティングシステム299を1つのみ示しているが、いくつかの例では、部品解析システム200は、X線走査システム100、コンピューティングシステム250、UI202、及び/又はリモートコンピューティングシステム299を複数含んでもよい。
【0029】
図2の例において、X線走査システム100は、コンピューティングシステム(複数の場合もある)250及びUI(複数の場合もある)202と電気通信している。いくつかの例では、X線走査システム100は、リモートコンピューティングシステム299とも電気通信することができる。いくつかの例では、電気通信は、1つ以上の有線又は無線媒体を介して行うことができる。
【0030】
いくつかの例では、X線走査システム100は、X線走査システム100の動作を容易にするコントローラーを含むことができる。いくつかの例では、コントローラーは、X線走査システム100による2D画像の生成を容易にすることができる。いくつかの例では、コントローラーは、一連の2D画像(例えば、ワークピース108を走査するときにX線走査システム100によって生成される)のコンピューター断層撮影を用いた1つ以上の3D画像/ボリューム(例えば、ワークピース108を表す)の構築を容易にし得る。
【0031】
いくつかの例では、X線走査システム100は、X線走査システム100と他のシステムとの間の通信を容易にする通信回路部を含むことができる。いくつかの例では、X線走査システム100は、コンピューティングシステム250及び/又はUI202を含むことができる。いくつかの例では、コンピューティングシステム250は、一連の2D画像(例えば、ワークピース108を走査するときにX線走査システム100によって生成される)のコンピューター断層撮影を用いた1つ以上の3D画像/ボリューム(例えば、ワークピース108を表す)の構築を容易にし得る。いくつかの例では、X線走査システム100は、X線走査システム100によって生成された1つ以上の(例えば、2D又は3D)デジタル画像を、UI202及び/又はコンピューティングシステム250に通信することができる。
【0032】
図2の例において、UI202は、X線走査システム(複数の場合もある)100、コンピューティングシステム(複数の場合もある)250、及びリモートコンピューティングシステム(複数の場合もある)299と(例えば、電気)通信している。いくつかの例では、UI202は、X線走査システム(複数の場合もある)100、コンピューティングシステム(複数の場合もある)250、及び/又はリモートコンピューティングシステム(複数の場合もある)299の一部であってもよい。図示されているように、UI202は、1つ以上の入力デバイス204及び/又は出力デバイス206を含む。いくつかの例では、1つ以上の入力デバイス204としては、1つ以上のタッチスクリーン、マウス、キーボード、ボタン、スイッチ、スライド、ノブ、マイクロフォン、ダイアル、及び/又は他の電気機械式の入力デバイスを挙げることができる。いくつかの例では、1つ以上の出力デバイス206としては、1つ以上のディスプレイスクリーン、スピーカー、ライト、触覚デバイス、及び/又は他のデバイスを挙げることができる。いくつかの例では、UI202は、1つ以上の外部メモリデバイス(例えば、フロッピーディスク、コンパクトディスク、デジタルビデオディスク、フラッシュドライブ等)へ接続する(及び/又はこれらを受ける)ように構成された1つ以上のレセプタクルを更に含むことができる。いくつかの例では、ユーザーは、UI(複数の場合もある)202を介して、X線走査システム(複数の場合もある)100、コンピューティングシステム(複数の場合もある)250、及び/又はリモートコンピューティングシステム(複数の場合もある)299に入力を提供する及び/又はこれらから出力を受け取ることができる。
【0033】
図2の例において、コンピューティングシステム250は、X線走査システム(複数の場合もある)100、UI(複数の場合もある)202、及びリモートコンピューティングシステム(複数の場合もある)299と(例えば、電気)通信している。いくつかの例では、通信は、直接通信(例えば、有線及び/又は無線媒体を通して)又は間接通信、例えば、1つ以上の有線及び/又は無線ネットワーク(例えば、ローカル及び/又はワイドエリアネットワーク)を通したもの等とすることができる。いくつかの例では、UI202は、コンピューティングシステム250の一部であってもよい。いくつかの例では、コンピューティングシステム250は、走査システム100の一部であってもよい。いくつかの例では、リモートコンピューティングシステム(複数の場合もある)299は、コンピューティングシステム250と同様又は同一のものとすることができる。
【0034】
図2の例において、コンピューティングシステム250は、共通の電気バスを介して互いに相互接続された通信回路部252、処理回路部254、及びメモリ回路部256を含む。いくつかの例では、メモリ回路部256は機械可読命令を含む及び/又は記憶することができる。いくつかの例では、処理回路部254は1つ以上のプロセッサを含むことができる。いくつかの例では、通信回路部252としては、1つ以上の無線アダプタ、無線カード、ケーブルアダプタ、ワイヤアダプタ、無線周波数(RF)デバイス、無線通信デバイス、Bluetooth(登録商標)デバイス、IEEE802.11準拠のデバイス、WiFiデバイス、セルラーデバイス、GPSデバイス、イーサネットポート、ネットワークポート、ライトニングケーブルポート、ケーブルポート等を挙げることができる。いくつかの例では、通信回路部252は、1つ以上の有線媒体及び/又はプロトコル(例えば、イーサネットケーブル、ユニバーサルシリアルバスケーブル等)及び/又は無線媒体及び/又はプロトコル(例えば、近距離無線通信(NFC)、超高周波電波(Bluetooth(登録商標)として一般に知られる)、IEEE802.1lx、Zigbee(登録商標)、HART、LTE、Z-Wave、WirelessHD、WiGig等)を介して通信を容易にするように構成することができる。
【0035】
いくつかの例では、メモリ回路部256は、処理回路部254によって実行され得る機械可読命令を含む及び/又は記憶することができる。
図2の例において、メモリ回路部256は、画像処理ワークフローデザイナー400、1つ以上の保存画像処理ワークフロー306、複数のワークフロー処理ノード/ブロック304、及び複数の画像リポジトリ258を含む及び/又は記憶する。図示されているように、各画像リポジトリ258は、1つ以上の画像260(及び/又は画像ファイル)を含む。いくつかの例では、記憶画像260のうちの1つ以上は、X線検出器106によって生成され、走査システム(複数の場合もある)100によって提供された及び/又は走査システム(複数の場合もある)100からインポートされた2D及び/又は3D画像とすることができる。コンピューティングシステム250のメモリ回路部256の一部として(及び/又はそこに記憶されていると)図示しているが、いくつかの例では、ワークフローデザイナー400、ワークフロー306、処理ブロック304、画像リポジトリ258、及び/又は画像260のいくつか又は全ては、リモートコンピューティングシステム(複数の場合もある)299のメモリ回路部の一部であってもよい(及び/又はメモリ回路部に記憶されてもよい)。
【0036】
いくつかの例では、ワークフローデザイナー400は、カスタマイズされた(例えば、ADR)画像処理ワークフロー306を構成し得るインターフェースを提供することができる。いくつかの例では、画像処理ワークフロー306を、或る特定のワークピース108内の欠陥の認識又はX線走査システム100の有効性の評価を支援する等の個々のユーザーのニーズに適応させることができる。例えば、ユーザーは、特定のワークピース108上の必要なマーキングの存在及び/又は特定のワークピース108の寸法を検証するワークフロー306を構築し得る。別の例として、ユーザーは、X線走査システム100自体が許容可能な動作状態にあることを検証するワークフロー306を構築してもよい。いくつかの例では、ワークフローデザイナー400は、例えばノードベースの処理ツール等の視覚ツールを用いて、ワークフロー306のデザインを容易にし得る。ワークフロー306のデザインが終了した後、将来の使用及び/又は取出しに備えて、ワークフロー306をメモリ回路部256に保存及び/又は記憶することができる。
【0037】
いくつかの例では、ワークフローデザイナー400は、異なる処理ブロック304のカスタム配列及び/又は構成を通してワークフロー306を適応させることを可能にすることができる。異なる処理ブロック304は異なる機能を規定及び/又は実行することができる。いくつかの例では、種々の異なるタイプの処理ブロック304が存在してもよい。
【0038】
例えば、いくつかの処理ブロック304は、例えば、加算、減算、乗算、除算等の算術機能を実行してもよい。いくつかの例では、これらの算術機能のうちのいずれか1つを実行するように単一の算術処理ブロック304を構成してもよい。別の例として、いくつかの処理ブロック304は、例えば、AND、OR、NOR、NAND、NOT、XOR等の論理機能を実行してもよい。いくつかの例では、これらの論理機能のうちのいずれか1つを実行するように単一の論理処理ブロック304を構成してもよい。
【0039】
別の例として、いくつかの処理ブロック304は、例えば、IF/THEN等の条件分岐機能を実行してもよい。別の例として、いくつかの処理ブロック304は、例えば、WHILE、FOR、及び/又はREPEATループ等のルーピング機能を実行してもよい。別の例として、いくつかの処理ブロック304は、例えば、ベクトル算術(例えば、加算、減算、乗算、除算等)、ベクトル作成/結合(例えば、2つ以上の数を結合してベクトルを作成する)、ベクトル分割(例えば、ベクトルを2つ以上の数に分割する)、及び/又はベクトル交点の特定等のベクトル機能を実行してもよい。いくつかの例では、これらのベクトル機能のうちのいずれか1つを実行するように単一のベクトル処理ブロック304を構成してもよい。
【0040】
別の例として、いくつかの処理ブロック304は、例えば、画像260、画像リポジトリ258、数値、座標、一連の数値又は座標、論理値(例えば、TRUE/FALSE)、ファイル、及び/又は他の項目をワークフロー306内に入力する等の入力機能を実行してもよい。いくつかの例では、これらの入力機能のうちのいずれか1つを実行するように単一の入力処理ブロック304を構成してもよい。入力処理ブロック304が3D画像260を入力する例では、入力処理ブロック304のパラメーターが3D画像の2Dスライスを規定してもよい。
【0041】
別の例として、いくつかの処理ブロック304は、例えば、画像(例えば、全体又は特定の領域)、数値、及び/又は論理値を、UI202の出力デバイス204及び/又は(例えば、メモリ回路部256内の)ファイルに出力する等の出力機能を実行してもよい。いくつかの例では、これらの出力機能のうちのいずれか1つを実行するように単一の出力処理ブロック304を構成してもよい。別の例として、いくつかの処理ブロック304は、例えば、入力値を閾値/閾値範囲と比較して、入力値が閾値を上回る/下回る及び/又は閾値範囲内にあることを検証する等の比較/検証機能を実行してもよい。別の例として、いくつかの処理ブロック304は、例えば、参照ワークフロー306を実行する(例えば、走査システム100の正常動作を検証する)、参照ワークフロー306からの値を現在のワークフロー306の一部として出力する(例えば、パラメーター較正に対する入力として用いるために)等の較正機能を実行してもよい。
【0042】
別の例として、いくつかの処理ブロック304は、例えば、画像フィルタリング(例えば、画像をぼかし及び/又は画像のコントラストを強調する)、画像切取り(例えば、対象領域を選択する)、ポリゴン画像切取り、画像拡大(例えば、閾値輝度内にある隣接ピクセルを選択することによって、選択した画像部分を拡大する)、画像結合(例えば、複数の2D画像を結合して1つの3D画像にする)、画像スライシング(例えば、3D画像から2D画像を「スライスする」)、画像注釈(例えば、画像に注釈を加える)、輝度正規化(例えば、画像内のピクセルの輝度を調整する)、エッジ検出(例えば、既知のエッジ検出アルゴリズム、又は機械学習を介して開発されたカスタムエッジ検出アルゴリズムを用いる)、オブジェクト選択(例えば、検出したエッジによって規定された画像の一部を選択する)、画像情報の決定(例えば、画像の平均輝度、画像内のピクセルの数、画像内のピクセルの輝度の標準偏差等)、画像領域情報の決定(例えば、画像の高さ/幅/サイズ/面積)、画像間の差の決定(例えば、画像情報及び/又は特定の非同一部分に関して)、ラインプロファイリング(例えば、画像内のラインに沿ってピクセルの値をマッピングする)、ライン交点の特定、コントラスト対ノイズ比(CNR)の特定、信号対雑音比(SNR)の特定、及び/又は(例えば、輝度)閾値を上回る/下回る及び/又は閾値範囲内にあるピクセルの場所及び/又は数量の特定/選択等の画像処理機能を実行してもよい。
【0043】
いくつかの例では、ユーザーは、汎用処理ブロック304のインスタンスを配置し、そして処理ブロック304の特定のタイプに従って動作するようにインスタンスを構成することができる(例えば、選択肢のドロップダウンリストからの選択を介して)。いくつかの例では、いくつかの処理ブロック304(及び/又はブロックインスタンス)を、カスタマイズした組み合わせで一緒にグループ化する、及び/又は将来の使用に備えて新しい種類のカスタム複合処理ブロック304として保存することができる。例えば、ユーザーは、2つの算術加算ブロックを一緒にグループ化して、カスタムな3数値加算ブロックを形成し得る。いくつかの例では、結果として生じるカスタム複合処理ブロック304は、いくつかの選択した処理ブロック304(及び/又はブロックインスタンス)の入力及び出力の総数に等しい(又は、これ以下である)数の入力及び出力を有し得る。いくつかの例では、いくつかの選択した処理ブロック304(及び/又はブロックインスタンス)の接続された入力及び/又は出力は省略してもよい。
【0044】
いくつかの例では、ワークフローデザイナー400は、処理ブロック304を配置、配列、及び/又は相互接続してワークフロー306をデザインすることができる、キャンバス302を提供することができる(例えば、
図3a~
図3dを参照)。いくつかの例では、キャンバス302上に処理ブロック304を配置(例えば、ドラッグ及びドロップ)したときに、処理ブロック304のインスタンス308を形成することができる。いくつかの例では、これにより、同じ処理ブロック304の複数の異なるインスタンス308を、異なるコンテキストにおいて及び/又は異なる結果を伴って用いることが可能となり得る。いくつかの例では、処理ブロック304の各インスタンス308を、例えば、名前、パラメーター、他の処理ブロック304への接続、及び/又は他の特性に関して、独立に構成することができる。
【0045】
図3a~
図3dは、(例えば、UI(複数の場合もある)202の出力デバイス(複数の場合もある)204を介して)ワークフローデザイナー400によって表示され得るワークフローデザイナーインターフェース300の例を示す。図示されているように、インターフェース300は、クイック保存アイコン310及びファイルメニュー312を伴うツールバーを含む。
図3aの例において、インターフェースは、キャンバス302上に配置することができる処理ブロック304のディスプレイウィンドウ316を見せるように選択されたドロップダウンメニュー314を更に含む。ディスプレイウィンドウ316及びドロップダウンメニュー314は、
図3b~
図3dの例では隠れている。
【0046】
図3aの例では簡単にするためにラベル付けせずに同一で示しているが、いくつかの例では、処理ブロック304は、ディスプレイウィンドウ316内で異なって表示してもよく、及び/又は固有にラベル付けしてもよい。いくつかの例では、特定の処理ブロック304についての付加情報を伴うウィンドウが、マウスホバー又は同様の相互作用に応答してインターフェース300上でポップアップすることができる。いくつかの例では、異なる種類の処理ブロック304を示すディスプレイウィンドウ316を、ドロップダウンメニュー314を選択したときにのみ表示するのではなく、インターフェース300内でピン留めする及び/又は永続的に表示することができる。いくつかの例では、同じドロップダウンメニュー314及び/又はディスプレイウィンドウ316を通してカスタム複合処理ブロック304にアクセスすることができる。いくつかの例では、例えば、ファイルメニュー312のインポート機能及び/又は何らかの他の手段を介する等、異なる方法で複合処理ブロック304にアクセスしてもよい。
【0047】
図3a~
図3dの例において、インターフェース300は、異なる処理ブロック304のいくつかのブロックインスタンス308が配置されて相互接続されたキャンバス302を更に含む。いくつかの例では、キャンバス302上に配置されたブロックインスタンス308のワークフロー306aを、クイック保存アイコン310及び/又はファイルメニュー312の保存オプションを介して保存することができる。いくつかの例では、以前に保存したワークフロー306を、ファイルメニュー312のロードオプションを介してロードすることができる。いくつかの例では、図示されているワークフロー306aは、インターフェース300を介して最近組み立てられたものとするか、又は以前に保存したワークフロー306からロードされたものとしてもよい。いくつかの例では、キャンバス302上の現在のワークフロー306aを、ファイルメニュー312内の適切な選択を介して実行及び/又はトレーニングすることができる。
【0048】
図3aの例において、表示したワークフロー306aは、フォルダーソースブロックインスタンス308a、切取り画像(又は対象領域)ブロックインスタンス308b、ピクセル閾値ブロックインスタンス308c、画像情報ブロックインスタンス308d、検証ブロックインスタンス308e、及び結果表示ブロックインスタンス308fを含む。
【0049】
図3aの例において、フォルダーソースブロックインスタンス308aは、特定の画像リポジトリ258を参照する入力処理ブロック304のインスタンスである。いくつかの例では、ユーザーは、ブロックインスタンス308aの1つ以上のパラメーターを(例えば、UI202への入力(複数の場合もある)を介して)変更することによって、どの画像リポジトリ258を参照するのかを変更してもよい。いくつかの例では、ワークフロー306を実施/実行したときに、ワークフローデザイナー400は、キャンバス302上のワークフロー306に従って、参照した画像リポジトリ258内の画像260を処理することができる。いくつかの例では、フォルダーソースブロックインスタンス308の「ウォッチモード」オプションを選択したときに、ワークフローデザイナー400は、選択した画像リポジトリ258を、ワークフロー306の実行中にモニタリングすることができ、ワークフロー306に従って任意の新しい画像260(例えば、新規作成及び/又はインポートしたもの)を自動的に処理することができる。このようにして、ワークフロー306は、新しい画像260がX線走査システム100によって生成されると、新しい画像260を連続的に処理することができる。
【0050】
図3aの例において、フォルダーソースブロックインスタンス308aは、選択した画像リポジトリ258内の第1の画像260の画像プレビュー318aを示している。
図3aの例に示しているが、いくつかの例では、画像プレビュー318は、ブロックインスタンス308の選択時にのみ示してもよい。いくつかの例では、画像プレビュー318は、画像プレビュー318の(例えば、UI202を介した)特定の選択(例えば、ダブルクリック)に応答してより大きなウィンドウ内で示してもよい。図示されているように、フォルダーソースブロックインスタンス308aは、ユーザーが、選択した画像リポジトリ258内の他の画像260のプレビュー318aを循環できるようにする矢印320を有する。このようにして、ユーザーは、正しいリポジトリ258が選択されていることを確実にし得る、及び/又は選択したリポジトリ258内の画像260を理解し得る。
【0051】
図3aの例において、フォルダーソースブロックインスタンス308aは、選択した画像リポジトリ258の画像260に対応した単一出力322を有する。図示されているように、フォルダーソースブロックインスタンス308aの画像出力322を小さい丸として示す。出力322は、ここでも小さい丸として示す、切取り画像ブロックインスタンス308bの入力324に接続されている。図示されているように、切取り画像ブロックインスタンス308bの入力324は、切取り画像ブロックインスタンス308bの画像パラメーターに対応する。
【0052】
図3aの例において、切取り画像ブロックインスタンス308bは、画像に加えていくつかの他のパラメーターも含む。詳細には、X及びYパラメーターは、切取り矩形の(例えば、中央又は角部の)頂点の座標に対応し、一方で、高さ及び幅パラメーターは、切取り矩形の高さ及び幅に対応する。
図3aの例において、これらのパラメーターは、例えば、示されたフィールドにおける数値入力及び/又はスライダーバーの調整を通して手動で設定されている。画像プレビュー318bが切取り画像ブロックインスタンス308b内に示されており、これは、フォルダーソースブロックインスタンス308aが参照した画像260が、切取り画像ブロックインスタンス308bの現在のパラメーターを考慮してどのように見え得るかを示している。
【0053】
いくつかの例では、インターフェース300は、ユーザーが、画像プレビュー318bの矩形領域又は代表的な画像領域(例えば、より大きなウィンドウ内に示す)を(例えば、カーソルを介して)選択することによってパラメーターをグラフィカルに設定することができるようにし得る。いくつかの例では、切取り画像ブロックインスタンス308bのパラメーターのうちの1つ以上を、対応する入力(複数の場合もある)324を適切な出力322に接続することによって自動的に設定することができる。いくつかの例では、ユーザーは、入力324、出力322、及び/又は接続アイコン(例えば、ファイルメニュー312及び/又はディスプレイウィンドウ316内)を選択することによって、ブロックインスタンス308の出力322を別のブロックインスタンス308の入力324に接続することができる。いくつかの例では、ブロックインスタンス308間の接続は、特定のブロックインスタンス308のパラメーターを構成すること、及びワークフロー306の実行順序を構成することの両方に役立ち得る。
【0054】
図3aの例において、切取り画像ブロックインスタンス308bは2つの出力322を有する。一方の出力322は、新たに切り取った画像に対応し、一方で他方の出力322は、当初の(切り取られていない)画像に対応する。図示されているように、切り取られていない画像の出力322は、別のブロックインスタンス308に接続されてはいない。切り取った画像の出力322は、ピクセル閾値ブロックインスタンス308cの画像入力324に接続されている。
【0055】
図3aの例において、ピクセル閾値ブロックインスタンス308cは、輝度閾値を上回る/下回る及び/又は閾値輝度範囲内にあるピクセルを特定するための処理ブロック304のインスタンスである。いくつかの例では、これは、他よりも明るく又は暗く現れ得る、白黒及び/又はグレースケールの工業用X線走査画像260内の或る特定の要素を特定するときに有用であり得る。図示されているように、ピクセル閾値ブロックインスタンス308cのパラメーターは、最大設定輝度を超える輝度を有するピクセルをフィルタリング除去するように構成される。ピクセル閾値ブロックインスタンス308cの画像プレビュー318cは、フィルタリング後にどのピクセルが残っているかを示す。
【0056】
いくつかの例では、ピクセル閾値ブロックインスタンス308cのパラメーターは、代わりに、最小設定輝度を下回る輝度を有するピクセルをフィルタリング除去するように、又は輝度範囲の外にあるピクセルをフィルタリング除去するように、代替的に構成してもよい。ピクセル閾値ブロックインスタンス308cの2つの入力324を
図3aの例に示しているが、いくつかの例では、ピクセル閾値ブロックインスタンス308cは、(例えば、閾値範囲を規定するために)より多くの入力324を含んでいてもよい。いくつかの例では、ピクセル閾値ブロックインスタンス308cのパラメーターは、代わりに、輝度ではなくいくつかの他の特性に基づいてフィルタリングするように、代替的に構成してもよい。
【0057】
図3aの例において、ピクセル閾値ブロックインスタンス308cは、最大設定輝度を上回るピクセルが除去されたフィルタリングされた画像に対応する出力322を有する。この出力322は、画像情報ブロックインスタンス308dの画像入力324に接続されている。画像情報ブロックインスタンス308dは、画像情報を決定するための処理ブロック304のインスタンス308である。
図3aの例において、画像情報ブロックインスタンス308dは、その画像入力324を介して受け取った画像260についての異なる情報に対応するいくつかの出力322を有する。図示されているように、ピクセル閾値ブロックインスタンス308cは、入力324(及び/又は任意の構成パラメーター)に基づいて、出力322の値のプレビューを示す。図示されている情報出力322は、ピクセルの数、ピクセルの平均輝度、及びピクセルの輝度における標準偏差に対応しているが、いくつかの例では、より少ないか又はより多い情報が、画像情報ブロックインスタンス308dによって決定及び/又は出力されてもよい(例えば、画像領域情報)。
【0058】
図3aの例において、画像情報ブロックインスタンス308dのピクセル数出力322は、検証ブロックインスタンス308eの入力324に接続されている。検証ブロックインスタンス308は、入力が閾値を上回る/下回る及び/又は閾値範囲内にあるか否かを検証する等の検証機能を実行する処理ブロック304のインスタンスである。図示されているパラメーター構成では、検証ブロックインスタンス308eは、その入力324(例えば、ピクセル数)の値が少なくとも或る特定の値(すなわち、436)であることを検証する。いくつかの例では、検証ブロックインスタンス308eのパラメーターは、代替的に、その入力324が或る特定の値以下であるか又は或る特定の値の範囲内であることを検証するように構成してもよい。
【0059】
図3aの例において、検証ブロックインスタンス308eに対する最小値は、以前に設定したものとして示している。いくつかの例では、値はユーザーが手入力してもよい。いくつかの例では、最小値は、トレーニングを介してワークフローデザイナー400が自動的に設定してもよい。すなわち、いくつかの例では、最小値を手動で入力する代わりに、ユーザーが、ワークフロー306aをトレーニングすることを(例えば、ファイルメニュー312を介して)代わりに選択してもよい。
【0060】
いくつかの例では、ワークフロー306aをトレーニングすることを選択すると、ワークフローデザイナー400はユーザーに、フォルダーソースブロックインスタンス308aが画像リポジトリ258を参照するのと同様に、トレーニングデータを含む画像リポジトリ258を参照するように促す。いくつかの例では、トレーニングデータは、パラメーター値を決定するためにユーザーが解析を望む画像260を含むことができる。いくつかの例では、ワークフローデザイナー400はユーザーに、キャンバス302上の各フォルダーソースブロックインスタンス308(及び/又は画像ソースブロックインスタンス308)に対するトレーニングデータを含む1つの画像リポジトリ258を参照するように促してもよい。いくつかの例では、ユーザーは、特定のフォルダーソースブロックインスタンス308(及び/又は画像ソースブロックインスタンス308)に対するトレーニングデータを参照することを拒否して、代わりに、通常参照されるフォルダー(及び/又は画像)を用いることを選択してもよい。
【0061】
いくつかの例では、トレーニングデータを特定したら、ワークフローデザイナー400は、検証ブロックインスタンス(複数の場合もある)308まで、ワークフロー306aに従ってトレーニングデータ(例えば、画像260)を処理することができる。そして、検証ブロックインスタンス(複数の場合もある)308において入力値を検証する代わりに、ワークフローデザイナー400は、トレーニング画像(複数の場合もある)に基づいて(例えば、機械学習の形態を用いて)検証ブロックインスタンス308の最小/最大パラメーター(複数の場合もある)を構成する。
図3aの例において、ワークフロー306aをトレーニングすると、ワークフローデザイナー400が、選択した領域における最大閾値を下回る各トレーニング画像におけるピクセルの数を決定することになり得る。そして、ワークフローデザイナーは、それらの数のうちの最小値を、検証ブロックインスタンス308eの最小パラメーターとして記録することができる。いくつかの例では、検証ブロックインスタンス308eは、代わりに、その数のうちの最大値、又は最大値及び最小値を記録してもよい(例えば、最大又は範囲を、最小の代わりに選択した場合)。
【0062】
いくつかの例では、検証ブロックインスタンス308を用いて、X線走査システム(複数の場合もある)100の正常動作を検証することもできる。例えば、プロセス制御ワークフロー306を、X線走査システム(複数の場合もある)100の正常動作を検証するためだけに用いる特別なワークピース108の走査画像を解析するように構成することができる。これらの特別なワークピース108は、既知の特徴及び/又は特性を有し得る。
【0063】
そのような例では、検証ブロックインスタンス308に対するパラメーターを、特別なワークピース108を示す画像の集合を用いてトレーニングすることができる。詳細には、X線走査システム100が新品であったとき及び/又は良好な動作状態であることが分かっていたときに、画像はX線走査システム100によって生成されたものとすることができる。その後、X線走査システム100の動作上の有効性を、特別なワークピース108の新しい画像を走査すること、及び特別なワークピース108の古い画像に対して以前にトレーニングしたプロセス制御ワークフロー306を用いて特別なワークピース108の新しい画像を処理することによって、定期的に評価することができる。
【0064】
プロセス制御ワークフロー306の検証ブロックインスタンス(複数の場合もある)308が、トレーニングした値(例えば、古い画像の処理からの)と新しい値との間の有意差を報告した場合、デザイナー400は、X線走査システム(複数の場合もある)100にはメンテナンスが必要であると結論付けることができる。いくつかの例では、その旨の対応する通知を(例えば、UI202及び/又は他の通信を介して)提供することができる。いくつかの例では、X線走査システム(複数の場合もある)100を、メンテナンスを提供することができるまで無効にすることができる。いくつかの例では、ワークフロー306は、検証ブロックインスタンス308の層を含むことができる。それによって、1つの層の障害があった場合には動作の僅かな劣化を意味すると解釈することができ、いくつかの(しかし、全てではない)層の障害があった場合には動作の中程度の劣化を意味し得て、多く又は大部分の層の障害があった場合には動作の重大な劣化を意味し得る。
【0065】
いくつかの例では、処理制御ワークフロー306の結果及び/又は出力を用いてADRワークフロー306を較正することができる。例えば、ADRワークフロー306は、参照ワークフロー306を実行し、参照ワークフロー306の実行を通して決定された値を出力する処理ブロック304のブロックインスタンス308を含むことができる。そして、これらの出力された値を、ADRワークフロー306のパラメーター較正に対する入力として用いることができる(例えば、ピクセル輝度、輝度閾値、平均輝度、コントラスト値、標準偏差等を調整することにより)。代替的に、プロセス制御ワークフロー306は値をファイルに出力してもよく、ADRワークフロー306は、ファイルを入力/インポートし(及び/又はファイルから一連の数値を読み取って数値を入力/インポートする)入力処理ブロック304のブロックインスタンス308を含んでもよい。
【0066】
図3aの例において、検証ブロックインスタンス308eは、結果出力322及び信頼度出力322を有する。結果出力322は論理真又は偽である。図示されているように、検証ブロックインスタンス308eは、チェックマークによって真の結果出力322をプレビューする。いくつかの例では、信頼度出力322は、結果出力322が正しいことを検証ブロックインスタンス308eが確信している程度(及び/又は割合)に対応し得る。図示されているように、検証ブロックインスタンス308eは、結果出力322が正しいという87%の信頼度をプレビューしている。
【0067】
図3aの例において、検証ブロックインスタンス308eの結果出力322は、結果表示ブロックインスタンス308fの入力324に接続されている。結果表示ブロックインスタンス308fは、結果をUI202の1つ以上のディスプレイ出力デバイス204に出力するように構成された出力処理ブロック304のインスタンス308である。いくつかの例では、検証ブロックインスタンス308eは、ディスプレイ出力デバイス(複数の場合もある)204の代わりに又はそれに加えて、1つ以上の他の出力デバイス204(例えば、スピーカー及び/又は触覚出力)に出力してもよい。複数の画像260がワークフロー306aによって処理される例では、表示ブロックインスタンス308fは各画像260に対して出力を提供してもよい。いくつかの例では、出力(複数の場合もある)は、グラフ、チャート、スプレッドシート、及び/リスト出力の形態とすることができる。いくつかの例では、出力は、各結果がどの画像260に対応するのかを示し得る。
【0068】
図3bは、第2のワークフロー306bの例を示す。図示されているように、ワークフロー306bはワークフロー306aと同様である。ただし、ワークフロー306bは、検証ブロックインスタンス308eの代わりに比較ブロックインスタンス308gを含む。
【0069】
いくつかの例では、比較ブロックインスタンス308gは、検証ブロックインスタンス308eと同様とすることができる。例えば、検証ブロックインスタンス308eのように、比較ブロックインスタンス308gは、その入力324の値(例えば、「A」)を閾値(例えば、「B」)と比較して、前者が後者よりも大きいことを検証する。いくつかの例では、比較ブロックインスタンス308gは、検証ブロックインスタンス308eに関して前述したのと同様に、トレーニングデータによって構成することもできる。比較ブロックインスタンス308gは信頼度出力322を含んではいないが、比較ブロックインスタンス308gは、チェックマークによって正しい結果をプレビューする論理TRUE/FALSE結果出力322を有する。図示されているように、比較ブロックインスタンス308gの結果出力322は、結果表示ブロックインスタンス308fに接続されている。
【0070】
図3bの例において、ユーザーは、ワークフロー306bを「テスト」することを選択している(例えば、ファイルメニュー312の適切な選択肢を介して)。いくつかの例では、品質が既知(例えば、良好又は不良)のワークピース108に対応するテスト画像のバッチを用いてワークフロー306は「テスト」することができる。いくつかの例では、ワークフロー306をテストするために用いるテスト画像を、走査システム100を介して得ることができる。
【0071】
いくつかの例では、「テスト」選択に応答して、デザイナー400は、テストの結果を示す1つ以上の(例えば、視覚)出力を提供することができる。いくつかの例では、出力(複数の場合もある)は、1つ以上のグラフ、チャート、スプレッドシート、及び/又は他の適切な媒体の形態とすることができる。いくつかの例では、テスト出力(複数の場合もある)は、テストされたワークフロー306によってテスト画像のそれぞれがどのように評価されたかを示し得る。これは、例えば、比較/検証に用いる適切な値を決定しようとするときに役立ち得る。
【0072】
図3bの例において、ワークフロー306bにおけるフォルダーソースブロックインスタンス308aは、
図3aのワークフロー306aの場合とは異なるフォルダーを参照して、異なる画像プレビュー318aを示す。いくつかの例では、これは、テスト画像の「テストフォルダー」を選択したことを反映し得る。図示されているように、フォルダーソースブロックインスタンス308aは、フォルダー内の4つのテスト画像を示している。
【0073】
図3bの例において、インターフェース300は、比較ブロックインスタンス308gについての情報を示す情報ペイン326を含む。いくつかの例では、情報ペイン326は、どのブロックインスタンス308が選択されても、それについての情報を示し得る。
図3bの例において、比較ブロックインスタンス308gの濃い色の及び/又は強調されたアウトラインが示すように、比較ブロックインスタンス308gが選択されており、したがって、情報ペイン326は、比較ブロックインスタンス308gに関する情報を示している。
【0074】
図3bの例において、情報ペイン326はまた、比較ブロックインスタンス308gが各テスト画像に関係するときの比較ブロックインスタンス308gについての情報を示すグラフ328を含む。詳細には、グラフ328は、各テスト画像に対する比較ブロックインスタンス308gの「A」値を表す丸と、比較ブロックインスタンス308gの閾値「B」値(すなわち、450)を表す点線とを示す。丸は、対応するテスト画像が、比較テストを間違って又は正しく合格/不合格にしたかに応じて黒又は白のいずれかとして示される(A/B値と、各テスト画像に対応するワークピース(複数の場合もある)108の既知の品質とに基づいて)。
【0075】
図3bの例において、グラフ328は、第1のテスト画像が、700を僅かに上回るA値を有していたことを示している。700を上回るA値は450のB値よりも大きいため(グラフ328において丸が点線を上回ることによって示されるように)、ワークフロー306bは、第1のテスト画像が比較テストに合格したと判定し、良好なワークピース108であると理論的に示す。第1のテスト画像に対するグラフ328内の白丸は、第1のテスト画像が比較テストに合格したという判定においてワークフロー306bが正しかったことを示している。なぜならば、第1のテスト画像が実際に、質の良いワークピース108を示しているからである。
【0076】
図3bの例において、グラフ328は、第2のテスト画像が、400を僅かに下回るA値を有していたことを示している。400を下回るA値は450のB値よりも小さいため(グラフ328において丸が点線を下回ることによって示されるように)、ワークフロー306bは、第2のテスト画像が比較テストに不合格だったと判定し、不良なワークピース108であると理論的に示す。第2のテスト画像に対するグラフ328内の白丸は、第1のテスト画像が比較テストに不合格であったという判定においてワークフロー306bが正しかったことを示している。なぜならば、第2のテスト画像が実際に、質の悪いワークピース108を示しているからである。
【0077】
図3bの例において、グラフ328は、第3のテスト画像が、600を僅かに下回るA値を有していたことを示す。600を下回るA値は450のB値よりも大きいため(グラフ328において丸が点線を上回ることによって示されるように)、ワークフロー306bは、第3のテスト画像が比較テストに合格したと判定し、良好なワークピース108であると理論的に示す。しかし、第3のテスト画像に対するグラフ328内の黒丸は、第3のテスト画像が比較テストに合格したという判定においてワークフロー306bは間違っていたことを示している。なぜならば、第3のテスト画像が実際に、質の悪いワークピース108を示しているからである。
【0078】
いくつかの例では、
図3bに示すテストグラフ328は、テストの間に各テスト画像がどのように評価されたかをユーザーが迅速かつ容易に理解することに役立ち得る。さらに、グラフ328に示した合格及び/又は不合格は、現時点で設定したパラメーターを調整すべきか否かをユーザーが判定することに役立ち得る。例えば、第2のテスト画像及び第3のテスト画像を正しく不合格にし、第1のテスト画像及び第4のテスト画像を正しく合格にするためには、B値を約600に上げる必要があり得ることを、ユーザーはグラフ328を見ることによって迅速に理解することが可能であり得る。
【0079】
図3cは、第3のワークフロー306cの例を示す。図示されているように、ワークフロー306cは、フォルダーソースブロックインスタンス308a、3D画像情報ブロックインスタンス308h、算術ブロックインスタンス308i、画像スライシングブロックインスタンス308j、ループブロックインスタンス308k、及び画像出力ブロックインスタンス308mを含む。いくつかの例では、ワークフロー306cは、3Dボリューム/画像の2D画像スライスを取り(例えば、画像スライシングブロックインスタンス308jを介して)、2D画像スライスに注釈を加え(例えば、ループブロックインスタンス308kを介して)、及び2D画像スライス及び注釈を出力する(例えば、画像出力ブロックインスタンス308mを介して)ように構成することができる。
【0080】
図3cの例において、フォルダーソースブロックインスタンス308aは、立方体の3Dボリューム/画像を示す画像プレビュー318aによって示すように、3Dボリューム/画像を伴うフォルダーを参照する。画像スライシングブロックインスタンス308jは、フォルダーソースブロックインスタンス308aによって入力された立方体の3Dボリューム/画像を取得して、画像プレビュー318jによって示すように、矩形の2D画像を「スライス」(及び/又は形成)するように構成されている。簡単にするために、
図3cの例では立方体の3Dボリューム/画像及び矩形の2D画像スライスを用いているが、いくつかの例では、3Dボリューム/画像及び/又は2D画像スライスは、より複雑なワークピース108の描写であってもよい。
【0081】
図3cの例において、画像スライシングブロックインスタンス308jは、2次元画像がX軸及びY軸(Z軸ではなく)において寸法を有するように、XY平面内で2D画像を形成するように構成されている。図示されているように、画像スライシングブロックインスタンス308jは、入力324として、いくつかのZボクセルを受け取る。Zボクセル入力324は、Z軸に沿ってどれだけ離して2DスライスをXY平面内で取るべきかを決定する。
【0082】
図3cの例において、3D画像情報ブロックインスタンス308hによって供給される情報に基づいて、算術ブロックインスタンス308iからZボクセル入力324を受け取る。図示されているように、3D画像情報ブロックインスタンス308hは、算術ブロックインスタンス308iに、3D画像の(例えば、Z軸に沿った)全深度のボクセルの数を提供する。算術ブロックインスタンス308iは、全深度のボクセルの数を半分にして、3D画像のほぼ中央までの深度のボクセルの数を取得し、結果を画像スライシングブロックインスタンス308jのZボクセル入力324に提供する。
【0083】
いくつかの例では、画像スライシングブロックインスタンス308jを別様に構成してもよい。例えば、画像スライシングブロックインスタンス308jを、XY平面の代わりにXZ平面又はYZ平面内で2D画像を形成するように構成してもよい。いくつかの例では、2D像平面は、2本の直交(例えば、非X/Y)ベクトル(例えば、画像スライシングブロックインスタンス308jに対する入力として提供される)を介する等の他の方法で規定してもよい。そのような例では、2D像平面を規定する2本のベクトルに基づいて第3のベクトルを決定してもよく、ボクセル入力324はその第3のベクトルに関係してもよい。いくつかの例では、画像スライシングブロックインスタンス308jは、例えば、画像プレビュー318j(及び/又は関連する情報ペイン/ウィンドウ)内での適切な部分の(例えば、カーソル)選択を介する等して、2D画像スライス(及び/又は2D画像スライスを取得するために必要なパラメーター)のグラフィカル選択を可能にすることができる。
【0084】
図3cの例において、画像出力ブロックインスタンス308mは、画像スライシングブロックインスタンス308jから2D画像スライスを受け取る。図示されているように、画像出力ブロックインスタンス308mはまた、ループブロックインスタンス308kから注釈を受け取る。画像出力ブロックインスタンス308mの濃い色の及び/又は強調されたアウトラインが示すように、画像出力ブロックインスタンス308mは選択されていると更に示している。したがって、情報ペイン326は、画像出力ブロックインスタンス308mに関係する情報を示している。詳細には、情報ペイン326は、いくつかの白い四角形の注釈(例えば、ループブロックインスタンス308kによって提供される)を伴う2D画像スライス(例えば、画像スライシングブロックインスタンス308jによって提供される)の画像プレビュー318mを示している。
【0085】
図3cの例において、ループブロックインスタンス308kは、5つのループ繰返しにわたって2D画像を処理する(例えば、注釈を付ける)ように構成されている。ループブロックインスタンス308kが2D画像を処理する正確な方法は、例えば、
図3dに関して後述するように、ループワークフロー306dを通して構成することができる。
図3cの例において、ループブロックインスタンス308kは画像出力ブロックインスタンス308mに注釈を出力しているが、いくつかの例では、ループブロックインスタンス308kは、その代わりに又はそれに加えて、変更された画像(注釈の有無にかかわらず)、画像(注釈の有無にかかわらず)の1つ以上の領域、及び/又は1つ以上のブール型の結果(例えば、注釈が加えられたか否かを示す)を出力してもよい。
【0086】
図3cの例において、5つのループに(例えば、直接のユーザー入力を介して)手動で設定しているが、いくつかの例では、ループブロックインスタンス308kのループの数は動的に決定してもよい。例えば、ループの数を、別のブロックインスタンス308によって決定して、ループブロックインスタンス308kに送ってもよい。いくつかの例では、ループブロックインスタンス308kを、2D画像全体ではなくて複数の(例えば、切り取った)2D画像領域上で動作するように構成してもよい。そのような例では、ループブロックインスタンス308kは、領域入力324を介して領域のセット(及び/又はリスト、アレイ等)を受け取ってもよい。ループブロックインスタンスが領域のセットを受け取る例では、ループの数は、領域のセットにおける領域の数に等しくなるように自動的に決定してもよい。
【0087】
図3dは、
図3cに示すワークフロー306cのループブロックインスタンス308kによって規定され及び/又はその中に取り囲まれるワークフロー306dの例を示す。いくつかの例では、ループワークフロー306dには、ループブロックインスタンス308kの特定の選択(例えば、ダブルクリック)によってアクセスすることができる。
図3dの例では図示していないが、いくつかの例では、インターフェース300は、メインワークフロー(例えば、ワークフロー306c)と埋め込まれたサブワークフロー(例えば、ループワークフロー306d)との間のスイッチングを可能にする1つ以上の視覚アイコンを含むことができる。
【0088】
図3dの例において、ループワークフロー306dはいくつかのブロックインスタンス308を含む。詳細には、ループワークフロー306dは、ループ入力ブロックインスタンス308n、ループ出力ブロックインスタンス308o、ループイテレータブロックインスタンス308p、2D画像情報ブロックインスタンス308q、切取り画像(又は対象領域)ブロックインスタンス308b、いくつかの算術ブロックインスタンス308i、及びボックス注釈ブロックインスタンス308rを含む。ループブロックインスタンス308kがその中に、ループワークフロー306dのこれらのいくつかのブロックインスタンス308を含むことを考えると、いくつかの例では、ループブロックインスタンス308kは、複合ブロックインスタンス308であると考えることができる。
【0089】
図3dの例において、ループ入力ブロックインスタンス308nは、ワークフロー306d内に、ワークフロー306dによって処理すべき画像(及び/又は画像領域)を入力する。図示されているように、ループ入力ブロックインスタンス308nの画像出力322及び領域出力322は、
図3cのループブロックインスタンス308kの画像入力324及び領域入力324に対応する。こうして、ワークフロー306dは、ワークフロー306cにおいてループブロックインスタンス308kに送られる画像及び/又は領域を処理することができる。
【0090】
図3dの例において、ループイテレータブロックインスタンス308pは、ループの数及び現在のループ繰返しに対する出力322を有し、これらの変数をループワークフロー306dの動作において用いることができる。図示されているように、ループイテレータブロックインスタンス308pのループ及び繰返し出力322は、算術ブロックインスタンス308iの入力324に接続されている。
図3dの例では用いていないが、図示されているループイテレータブロックインスタンス308pは、開始、終了、及びインクリメント出力322を介して種々の(例えば、XY)座標を通して繰り返す能力も提供する。
【0091】
図3dの例において、ループ入力ブロックインスタンス308nの画像出力322は、2D画像情報ブロックインスタンス308q及び切取り画像ブロックインスタンス308bの画像入力324に接続されている。切取り画像ブロックインスタンス308bは、2D画像情報ブロックインスタンス308q及び算術ブロックインスタンス308iからの情報を用いて、繰返しごとに矩形2D画像スライスの薄い矩形領域を選択する/切り取る(例えば、画像プレビュー318bに示すように)。詳細には、切取り画像ブロックインスタンス308bは、2D画像情報ブロックインスタンス308q及び算術ブロックインスタンス308iからの情報を用いて、繰返しごとに選択する各矩形領域が、矩形2D画像スライス全体のサイズの5分の1であることを確実にする(例えば、矩形2D画像スライス全体が5つのループにわたって処理されるように)。
【0092】
図3dの例において、ボックス注釈ブロックインスタンス308rは、繰返しごとに切取り画像ブロックインスタンス308bによって切り取られ/選択された領域を受け取る。繰返しごとに、ボックス注釈ブロックインスタンス308rは、切り取った/選択した領域上に注釈を配置する。より具体的には、ボックス注釈ブロックインスタンス308rは、繰返しごとに、切り取った/選択した領域内の指定場所に指定サイズのボックスを配置する。
【0093】
図示されているように、ボックス注釈ブロックインスタンス308rのパラメーターは、ボックスのサイズ(例えば、幅及び高さ)及び配置(例えば、角/中央のX座標及びY座標)を規定する。詳細には、ボックス注釈ブロックインスタンス308rのパラメーターは、繰返しごとに、切り取った/選択した領域の(1,1)XY座標に1×1ボックスを配置することを指定する。ボックス注釈を配置するために常に同じ座標を用いているが、座標は、その繰返しにおいて操作される特定の切り取った/選択した領域に対するものであるため、重複した注釈及び/又は冗長な注釈はない(重複した領域及び/又は冗長な領域がない限り)。
【0094】
それにもかかわらず、ボックス注釈ブロックインスタンス308rは、より大きな(例えば、切り取られていない)画像に対する各注釈の絶対配置も追跡するように構成されている。いくつかの例では、ボックス注釈ブロックインスタンス308rは注釈を、より大きな(例えば、切り取られていない)画像内に他のブロックインスタンス308によって注釈が正確に示され及び/又は配置されることを同様に可能にするメタデータとともに更に出力してもよい(例えば、
図3cの画像出力ブロックインスタンス308mの画像プレビュー318mに図示されているように)。これにより、ボックス注釈ブロックインスタンス308rは、より大きな画像の種々の領域に注釈を付けるときに特に役立つツールになる。
【0095】
図3dの例において、ボックス注釈ブロックインスタンス308rのパラメーターを手動で設定しているが、いくつかの例では、パラメーターを動的に設定してもよい(例えば、他のブロックインスタンス308からの出力322を介して)。
図3dの例において、ボックス注釈ブロックインスタンス308rは、注釈を加える/含めるか否かの動的な決定を可能にする表示(Show)入力324も含む(例えば、表示=FALSEならば注釈を加えない/含めない)。
【0096】
図3dの例において、ボックス注釈ブロックインスタンス308rとして示しているが、いくつかの例では、異なるタイプの注釈ブロックインスタンス308を用いてもよい。例えば、テキスト注釈ブロックインスタンス308を用いて、ボックスの代わりにテキストにより画像に注釈を加えてもよい。そのような例では、パラメーターのうちの1つは、注釈に用いるテキストであってもよい(例えば、ボックスのサイズではなくて)。別の例として、矢印又はピクセル注釈ブロックインスタンス308を用いて、矢印又は特定のピクセルにより画像に注釈を付けてもよい。矢印又はピクセル注釈を用いる例では、矢印/ピクセル注釈ブロックインスタンス308は、適切な関連パラメーター(例えば、矢印に対するベクトルパラメーター、ピクセル位置(複数の場合もある)/色(複数の場合もある)等)を有するであろう。
【0097】
図3dの例において、ループ出力ブロックインスタンス308oは、ボックス注釈ブロックインスタンス308rから注釈を受け取る。ループ出力ブロックインスタンス308oにおいて入力324として受け取るこれらの注釈は、
図3cにおけるワークフロー306cのループブロックインスタンス308kの一部である注釈出力322に対応する。いくつかの例では、ブロックインスタンス間で送られる注釈データには、画像全体が出力されるときに、画像の領域上に配置される注釈を正確に配置し/示すことも可能にする相対位置決め情報が含まれる(例えば、
図3cにおける情報ペイン326の画像プレビュー318に示したように)。
【0098】
図3dの例において、ループ出力ブロックインスタンス308oは、
図3cにおけるワークフロー306cのループブロックインスタンス308kの出力(複数の場合もある)322に影響を与えることができる他の入力324を有する。例えば、ループ出力ブロックインスタンス308oは、注釈を含める(Include Annotations)入力324がFALSEであるループインスタンスの間に受け取った注釈を無視し、及び/又は注釈を含める入力324がTRUE又は非接続である間の注釈のみを記録/認識することができる。別の例として、ループ出力ブロックインスタンス308oは、領域を含める(Include Regions)入力324がFALSEであるループインスタンスの間に受け取った領域を無視し、及び/又は領域を含める入力324がTRUE又は非接続であるときに受け取った領域のみを記録/認識してもよい。いくつかの例では、ループブロックインスタンス308kは、注釈/領域を含める入力324に従ってループ出力ブロックインスタンス308oが記録/認識した注釈及び/又は領域のみを出力してもよい。
【0099】
図3dの例において、ループ出力ブロックインスタンス308oはまた、
図3cにおけるワークフロー306cのループブロックインスタンス308kの結果(Result)出力322と一致する結果入力324を有する。いくつかの例では、結果出力322はブール値(例えば、TRUE/FALSE)とすることができる。いくつかの例では、ループブロックインスタンス308kの結果出力322は、いずれかのループ繰返しの間にループ出力ブロックインスタンス308oの結果入力324がTRUEであった場合にTRUEとなるように構成することができる。いくつかの例では、ループブロックインスタンス308kの結果出力322は、全てのループ繰返しの間にループ出力ブロックインスタンス308oの結果入力324がTRUEであった場合にのみTRUEとなるように構成することができる。図示されているように、ループ出力ブロックインスタンス308oは、結果入力324の隣にドロップダウンメニューを有して、ループブロックインスタンス308kの結果出力322をいずれかのアプローチの下で構成するか又は全てのアプローチの下で構成するかを、ユーザーが選択できるようになっている。
【0100】
図4は、ワークフローデザイナー400の例示の動作を示すフローチャートである。いくつかの例では、ワークフローデザイナー400を、メモリ回路部256内に記憶された機械可読(及び/又はプロセッサ実行可能)命令において実施してもよく、及び/又は処理回路部254によって実行してもよい。
【0101】
図4の例において、ワークフローデザイナー400はブロック402において始まる。ブロック402において、ワークフローデザイナー400は、ADRインターフェース300をユーザーに、UI202の1つ以上の(例えば、ディスプレイ)出力デバイス204を介して提供する。いくつかの例では、これには、キャンバス302、及び/又はキャンバス302上にワークフロー306を形成するために用いることができる処理ブロック304のディスプレイウィンドウ316を、提供することを含むことができる。いくつかの例では、キャンバス302はブランクであってもよい。いくつかの例では、キャンバス302を、メモリからロードした既存のワークフロー306のブロックインスタンス308によってポピュレートしてもよい。
【0102】
図4の例において、ワークフローデザイナー400は、ブロック402の後にブロック404に進む。ブロック404において、ワークフローデザイナー400は、キャンバス302上でのブロックインスタンス308の新しい配置及び/又は相互接続を可能にする。いくつかの例では、ワークフローデザイナー400はまた、複合ブロックインスタンス308の内部構成を含むブロックインスタンス308の適切な構成を可能にしてもよい。
【0103】
図4の例において、ワークフローデザイナー400は、ブロック404の後にブロック406に進む。ブロック406において、ワークフローデザイナー400は、1つ以上のブロックインスタンス308に対して1つ以上の画像プレビュー318及び/又は出力プレビューを構成し、生成し、及び/又は表示する(例えば、UI202を介して)。いくつかの例では、画像プレビュー(複数の場合もある)318及び/又は出力プレビュー(複数の場合もある)を、ブロックインスタンス(複数の場合もある)308の1つ以上の構成及び/又は接続に基づいて構成し、生成し、及び/又は表示してもよい。いくつかの例では、画像プレビュー(複数の場合もある)318及び/又は出力プレビュー(複数の場合もある)を、ブロックインスタンス(複数の場合もある)308のユーザー選択に応答して構成し、生成し、及び/又は表示してもよい。
【0104】
図4の例において、ワークフローデザイナー400は、ブロック406の後にブロック408に進む。ブロック408において、ワークフローデザイナー400はワークフロー306を構成する。いくつかの例では、ワークフローデザイナー400は、キャンバス302上のブロックインスタンス308、並びにブロックインスタンス308間の相互接続及び各ブロックインスタンス308の構成に基づいて、ワークフロー306を構成することができる。
【0105】
図4の例において、ワークフローデザイナー400は、ブロック408の後にブロック410に進む。ブロック410において、ワークフローデザイナー400は、現在のワークフロー306内に何らかのエラーが存在するか否かをチェックする。例えば、ワークフローデザイナー400は、ヌル又はゼロであるバイタルパラメーター値が存在しないこと、少なくとも1つの出力ブロックインスタンス308に(直接又は間接的に)接続された少なくとも1つの入力ブロックインスタンス308が存在すること、及び/又は選択した画像260(又はリポジトリ258内の画像(複数の場合もある)260)が適切なフォーマットであることを確かめるためにチェックすることができる。いくつかの例では、デザイナー400はまた、ワークフロー306が参照した各リポジトリ258内に、同じ数の画像260があることを確かめるためにチェックすることができる。ただし、いくつかの例では、異なるリポジトリ258内に異なる数の画像260があった場合に、これを許容し、デザイナー400が処理し、及び/又はエラーと考えるのではなく警告であると考えてもよい。いくつかの例では、ワークフローデザイナー400は、任意のエラー(複数の場合もある)及び/又は警告(複数の場合もある)を説明し、及び/又はエラー(複数の場合もある)及び/又は警告(複数の場合もある)をどのように修復するかを説明する1つ以上の出力(例えば、UI202を介する)を提供してもよい。図示されているように、何らかのエラーがあった場合、ワークフローデザイナー400はブロック402に戻る。
【0106】
図4の例において、ブロック410においてエラーが見出されなかった場合、ワークフローデザイナー400は、ブロック410の後にブロック412に進む。ブロック412において、ワークフローデザイナー400は、ユーザーがワークフロー306のトレーニング及び/又はテストを選択したか否かを判定する。ユーザーがワークフロー306のトレーニング及び/又はテストを選択したとワークフローデザイナー400が判定した場合、ワークフローデザイナー400はブロック414に進む。
【0107】
ブロック414において、ワークフローデザイナー400は、トレーニング及び/又はテストデータ(例えば、画像260)を含む画像リポジトリ258への参照を、ユーザーに促す。トレーニング及び/又はテストデータが提供されると、ワークフローデザイナー400は、ワークフロー306のブロックインスタンス308、接続、及び構成(例えば、画像入力ブロックインスタンス(複数の場合もある)308において始まる)に従って、トレーニング及び/又はテストデータを処理する。そして、ワークフローデザイナーは、適切な検証/比較ブロックインスタンス(複数の場合もある)308内のパラメーター(複数の場合もある)をそれ相応に構成し、及び/又はテストデータ及び/又はパラメーター構成(複数の場合もある)に関する検証(複数の場合もある)/比較(複数の場合もある)の結果(複数の場合もある)(並びに、結果(複数の場合もある)の妥当性)を示す1つ以上のグラフ及び/又はチャートを提供する。
【0108】
図4の例において、ワークフローデザイナー400は、ブロック414の後に、又はユーザーがワークフロー306のトレーニングを選択しなかったとワークフローデザイナー400が判定した場合はブロック412の後に、ブロック416に進む。ブロック416において、ワークフローデザイナー400は、ユーザーがワークフロー306の実施/実行を選択したか否かを判定する。そうである場合には、ワークフローデザイナー400はブロック418に進む。ブロック418において、ワークフローデザイナー400は、ワークフロー306内に入力された画像260(及び/又は他の入力)を、ワークフロー306のブロックインスタンス308、接続、及び構成に従って処理する。いくつかの例では、ワークフローデザイナー400は、(例えば、ウォッチモードにおいて)終了を明示的に言われるまで、ワークフロー306の実行を継続してもよい。
【0109】
図4の例において、ワークフローデザイナー400はブロック418の後に終了する。ただし、いくつかの例では、その代わりに、ワークフローデザイナー400はブロック418の後にブロック402に戻ってもよい。図示されているように、ユーザーがワークフロー306の実施/実行を選択しなかったとワークフローデザイナー400が判定した場合は、ワークフローデザイナー400はブロック416の後にブロック402に戻る。
図4のフローチャートでは判定ブロック412及び414として示しているが、いくつかの例では、ワークフロー306のトレーニング及び/又は実行に対するユーザー選択を、割り込みとして実施してもよい。
【0110】
開示したワークフローデザイナー400の例では、視覚ツール(例えば、ノード/ブロックベースの処理ツール)を用いて、X線走査システム100に対して適応されるワークフロー306の容易なカスタマイゼーションを可能にしている。ワークフローデザイナー400を用いて、ユーザーは、X線走査システム100によって生成された画像に対してADRを実行するように具体的にデザインされたワークフロー306を形成することができる。さらに、ワークフローデザイナー400は、例えば、欠陥を規定することができる或る特定のパラメーターを自動的に設定するように、ADRワークフロー306をトレーニングすることができる。トレーニングされたプロセス制御ワークフロー306を用いて、X線走査システム100がどのくらい効果的に動作しているかを決定することもでき、プロセス制御ワークフロー306の出力を用いて、ADRワークフロー306を更に較正することができる。
【0111】
本方法及び/又はシステムは、ハードウェア、ソフトウェア、及び/又はハードウェア及びソフトウェアの組み合わせで実現することができる。本方法及び/又はシステムは、少なくとも1つのコンピューティングシステムにおいて集中的に、又はいくつかの相互接続されたコンピューティング又はクラウドシステムにわたって異なる要素が分散される分散方式で、実現することができる。本明細書に記載した方法を実行するように適合された任意の種類のコンピューティングシステム又は他の装置が適している。ハードウェア及びソフトウェアの典型的な組み合わせは、汎用コンピューティングシステムを、ロードされ実行されるとコンピューティングシステムを本明細書に記載した方法を実行するように制御するプログラム又は他のコードとともに、含むことができる。別の典型的な実施態様は、特定用途向け集積回路又はチップを含むことができる。いくつかの実施態様は、非一時的機械可読(例えば、コンピューター可読)媒体(例えば、フラッシュドライブ、光ディスク、磁気記憶ディスク等)を含むことができ、そうした非一時的機械可読媒体は、機械によって実行可能なコードの1つ以上のラインを記憶し、それにより、機械に、本明細書に記載したようなプロセスを実行させる。
【0112】
本方法及び/又はシステムを、或る特定の実施態様を参照して記載してきたが、当業者であれば、本方法及び/又はシステムの範囲から逸脱することなく、種々の変更を行うことができること及び均等物に置き換えることができることを理解するであろう。加えて、本開示の範囲から逸脱することなく、本開示の教示に対して特定の状況又は材料を適合させるように多くの改変を行うことができる。したがって、本方法及び/又はシステムは、開示されている特定の実施態様に限定されないが、本方法及び/又はシステムは、添付の特許請求の範囲内に入る全ての実施態様を含むことが企図される。
【0113】
本明細書において使用する場合、「及び/又は」は、「及び/又は」によって連結されるリストにおける項目のうちの任意の1つ以上を意味する。一例として、「x及び/又はy」は、3つの要素の組{(x),(y),(x,y)}のうちの任意の要素を意味する。言い換えれば、「x及び/又はy」は、「x及びyのうちの一方又は両方」を意味する。別の例として、「x、y及び/又はz」は、7つの要素の組{(x),(y),(z),(x,y),(x,z),(y,z),(x,y,z)}のうちの任意の要素を意味する。言い換えれば、「x、y及び/又はz」は、「x、y及びzのうちの1つ以上」を意味する。
【0114】
本明細書において利用する場合、「例えば」という用語は、1つ以上の非限定的な例、事例又は例証のリストを強調する。
【0115】
本明細書において使用する場合、「連結される("coupled," "coupled to," and/or “coupled with”)」という用語は、取付け、付着、接続、接合、締結、リンク、及び/又は別様の固定であるかを問わず、構造的及び/又は電気的接続を意味する。本明細書において使用する場合、「取り付ける」という用語は、付着、連結、接続、接合、締結、リンク、及び/又は別様に固定することを意味する。本明細書において使用する場合、「接続する」という用語は、取付け、付着、連結、接合、締結、リンク、及び/又は別様に固定することを意味する。
【0116】
本明細書において使用する場合、「回路」及び「回路部」という用語は、物理的な電子構成要素(すなわち、ハードウェア)と、ハードウェアを構成することができ、ハードウェアが実行することができ、及び/又は他の方法でハードウェアに関連付けることができる、任意のソフトウェア及び/又はファームウェア(「コード」)とを指す。本明細書において使用する場合、例えば特定のプロセッサ及びメモリは、コードの第1の1つ以上のラインを実行しているとき、第1の「回路」を含むことができ、コードの第2の1つ以上のラインを実行しているとき、第2の「回路」を含むことができる。本明細書において利用する場合、回路部は、或る機能を実施するために必要なハードウェア及びコード(いずれかが必要である場合)を含む場合はいつでも、その機能の実施が(例えば、ユーザーが構成可能な設定、工場トリム等により)無効にされる又は有効にされていないか否かに関わりなく、回路部はその機能を実行するように「動作可能」である及び/又は「構成される」。
【0117】
本明細書において使用する場合、制御回路は、コントローラーの一部又は全てを構成し、及び/又は溶接プロセス及び/又は電源及びワイヤ供給機等のデバイスを制御するのに使用される1つ以上の基板上に位置する、デジタル及び/又はアナログ回路部、ディスクリート及び/又は集積回路部、マイクロプロセッサ、DSP等、ソフトウェア、ハードウェア及び/又はファームウェアを含むことができる。
【0118】
本明細書において使用する場合、「プロセッサ」という用語は、ハードウェアにおいて実装されようと、有形に具現化されたソフトウェアにおいて実装されようと、又はその両方で実装されようと、及びプログラム可能であろうとなかろうと、処理デバイス、装置、プログラム、回路、構成要素、システム、及びサブシステムを意味する。本明細書において使用する場合、「プロセッサ」という用語は、限定ではないが、1つ以上のコンピューティングデバイス、配線で接続された回路、信号を変更するデバイス及びシステム、システムを制御するデバイス及び機械、中央処理装置、プログラム可能なデバイス及びシステム、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、システムオンチップ、個別の要素及び/又は回路を備えるシステム、ステートマシン、バーチャルマシン、データプロセッサ、処理設備、並びに上記の任意の組み合わせを含む。プロセッサは、例えば、任意のタイプの汎用マイクロプロセッサ若しくは汎用マイクロコントローラー、デジタル信号処理(DSP)プロセッサ、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)、高度RISCマシン(ARM)コアを搭載した縮小命令セットコンピューター(RISC)プロセッサ等であり得る。プロセッサは、メモリデバイスに結合されてもよい、及び/又はメモリデバイスに統合されていてもよい。
【0119】
本明細書において使用する場合、「メモリ」及び/又は「メモリデバイス」という用語は、プロセッサ及び/又は他のデジタルデバイスが用いるための情報を記憶するコンピューターハードウェア又は回路部を意味する。メモリ及び/又はメモリデバイスは、任意の好適なタイプのコンピューターメモリ又は任意の他のタイプの電子記憶装置媒体、例えば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、キャッシュメモリ、コンパクトディスク読み出し専用メモリ(CDROM)、電気光学メモリ、光磁気メモリ、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、コンピューター可読媒体等とすることができる。メモリとしては、例えば、非一時的メモリ、非一時的プロセッサ可読媒体、非一時的コンピューター可読媒体、不揮発性メモリ、ダイナミックRAM(DRAM)、揮発性メモリ、強誘電体RAM(FRAM(登録商標))、先入れ先出し(FIFO)メモリ、後入れ先出し(LIFO)メモリ、スタックメモリ、不揮発性RAM(NVRAM)、スタティックRAM(SRAM)、キャッシュ、バッファ、半導体メモリ、磁気メモリ、光メモリ、フラッシュメモリ、フラッシュカード、コンパクトフラッシュ(登録商標)カード、メモリカード、セキュアデジタルメモリカード、マイクロカード、ミニカード、拡張カード、スマートカード、メモリスティック、マルチメディアカード、ピクチャーカード、フラッシュストレージ、加入者識別モジュール(SIM)カード、ハードドライブ(HDD)、ソリッドステートドライブ(SSD)等を挙げることができる。メモリは、コード、命令、アプリケーション、ソフトウェア、ファームウェア及び/又はデータを記憶するように構成することができ、プロセッサに対して外部、内部、又は両方とすることができる。
【0120】
本明細書において使用する場合、「キャンバス」という用語は、グラフィカルな作業空間又はインターフェースであって、ユーザーがその中で、例えば、処理ブロックインスタンスのフィールド、パラメーター、接続、及び/又は構成を操作し及び/又はこれらと相互に作用することによって、作業空間又はインターフェースのコンテンツをグラフィカルに操作することができる、グラフィカルな作業空間又はインターフェースを指す。
【0121】
回路部、作動装置、及び/又は他のハードウェアを無効にすることは、ハードウェア、ソフトウェア(ファームウェアを含む)、又はハードウェア及びソフトウェアの組合せを介して行うことができ、また物理的な切断、通電解除、及び/又は回路部、作動装置、及び/又は他のハードウェアを活性化するコマンドの実施を制限するソフトウェア制御を含むことができる。同様に、回路部、作動装置、及び/又は他のハードウェアを有効にすることは、無効にするために用いる同じメカニズムを用いて、ハードウェア、ソフトウェア(ファームウェアを含む)、又はハードウェア及びソフトウェアの組合せを介して行うことができる。
【国際調査報告】