(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023093421
(43)【公開日】2023-07-04
(54)【発明の名称】画像処理のためのシステムおよび方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20230627BHJP
G01N 23/04 20180101ALI20230627BHJP
G01N 23/10 20180101ALI20230627BHJP
G06N 3/0464 20230101ALI20230627BHJP
【FI】
G06T7/00 350C
G01N23/04
G01N23/10
G06N3/0464
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023027642
(22)【出願日】2023-02-24
(62)【分割の表示】P 2019564499の分割
【原出願日】2018-05-22
(31)【優先権主張番号】62/509,676
(32)【優先日】2017-05-22
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.UNIX
(71)【出願人】
【識別番号】502255483
【氏名又は名称】レイドス・セキュリティ・ディテクション・アンド・オートメーション・インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】デイヴィッド・ペルティコーネ
(72)【発明者】
【氏名】アンドリュー・ディー・フォーランド
(57)【要約】 (修正有)
【課題】x線画像中の物品を識別するためのコンピューティングデバイス実装システムおよび方法が記載される。
【解決手段】方法は、機械学習アルゴリズムを、x線画像の少なくとも1つのトレーニングデータ集合でトレーニングして、少なくとも1つの機械学習モデルを生成するステップを含む。方法は、物品を含む少なくとも1つの描画されたx線画像を受け取るステップと、少なくとも1つのモデルを使用して物品を識別するステップと、物品に関連する自動検出表示を生成するステップとをさらに含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プロセッサを備えた少なくとも1つのコンピューティングデバイスを使用してx線画像中の物品を識別するための、コンピューティングデバイスで実施される方法であって、
前記少なくとも1つのコンピューティングデバイスを使用して少なくとも1つの機械学習モデルを実行するステップであって、前記少なくとも1つの機械学習モデルが、x線画像の少なくとも1つのトレーニングデータ集合でトレーニングされたものであり、前記少なくとも1つのトレーニングデータ集合が、危険物を含有する物品のx線画像の第1の集合および危険物を含有しない物品のx線画像の第2の集合を含み、前記少なくとも1つの機械学習モデルが、畳み込みニューラルネットワーク(CNN)であり、x線画像の前記第1の集合またはx線画像の前記第2の集合が、1つまたは複数の容積測定x線画像または1つまたは複数の投影x線画像を含む、ステップと、
前記少なくとも1つのコンピューティングデバイスにより、物品を含む少なくとも1つの描画されたx線画像を受け取るステップと、
前記少なくとも1つのコンピューティングデバイスにより、前記少なくとも1つの機械学習モデルを使用して前記物品を識別するステップと、
前記少なくとも1つのコンピューティングデバイスにより、前記物品に関連する自動検出表示を生成するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、その内容が全体として参照により本明細書に組み込まれる、2017年5月22日に出願された、発明の名称を「Systems and Methods for Image Processing」とする米国仮特許出願第62/509,676号の優先権および利益を主張する。
【背景技術】
【0002】
x線コンピュータ断層撮影法、磁気共鳴映像法(MRI)、陽電子射出断層撮影法(PET)、および多くの他のものを含む撮像技術は、医療用撮像、貨物検査と多岐にわたる用途で広範囲に使用されてきた。貨物の画像は、危険物検出のため、保安要員によって手動で評価されている。
【発明の概要】
【課題を解決するための手段】
【0003】
一実施形態では、プロセッサを備えた少なくとも1つのコンピューティングデバイスを使用してx線画像中の物品を識別するための、コンピューティングデバイスで実施される方法が提供される。方法は、少なくとも1つのコンピューティングデバイスを使用して、機械学習アルゴリズムを、x線画像の少なくとも1つのトレーニングデータ集合でトレーニングして、少なくとも1つの機械学習モデルを生成するステップを含む。少なくとも1つのトレーニングデータ集合は、危険物を含有する物品のx線画像の第1の集合および危険物を含有しない物品のx線画像の第2の集合を含む。機械学習アルゴリズムは、畳み込みニューラルネットワーク(CNN)である。方法は、少なくとも1つのコンピューティングデバイスにより、物品を含む少なくとも1つの描画されたx線画像を受け取るステップをさらに含む。方法は、少なくとも1つのコンピューティングデバイスにより、少なくとも1つのモデルを使用して物品を識別するステップをやはり含む。方法は、少なくとも1つのコンピューティングデバイスにより、物品に関連する自動検出表示を生成するステップをさらに含む。
【0004】
別の実施形態では、x線画像中の物品を識別するためのシステムが提供される。システムは、少なくとも1つのx線画像を描画するように構成されたスキャナと、スキャナと通信するプロセッサを備えたコンピューティングデバイスとを含む。コンピューティングデバイスは、機械学習アルゴリズムをx線画像の少なくとも1つのトレーニングデータ集合でトレーニングして、少なくとも1つの機械学習モデルを生成するように構成される。少なくとも1つのトレーニングデータ集合は、危険物を含有する物品のx線画像の第1の集合および危険物を含有しない物品のx線画像の第2の集合を含む。機械学習アルゴリズムは、畳み込みニューラルネットワーク(CNN)である。コンピューティングデバイスは、スキャナから少なくとも1つの描画されたx線画像を受け取るようにやはり構成される。少なくとも1つの描画されたx線画像は物品を含み、コンピューティングデバイスは、少なくとも1つのモデルを使用して物品を識別するようにさらに構成される。コンピューティングデバイスは、物品に関連する自動検出表示を生成するようにやはり構成される。
【0005】
さらに別の実施形態では、プロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読媒体が提供される。命令を実行すると、プロセッサに、x線画像中の物品を識別するための方法を実施させる。方法は、機械学習アルゴリズムを、x線画像の少なくとも1つのトレーニングデータ集合でトレーニングして、少なくとも1つの機械学習モデルを生成するステップを含む。少なくとも1つのトレーニングデータ集合は、危険物を含有する物品のx線画像の第1の集合および危険物を含有しない物品のx線画像の第2の集合を含む。機械学習アルゴリズムは、畳み込みニューラルネットワーク(CNN)である。方法は、物品を含む少なくとも1つの描画されたx線画像を受け取るステップをやはり含む。方法は、少なくとも1つのモデルを使用して物品を識別するステップと物品に関連する自動検出表示を生成するステップとをさらに含む。
【0006】
図面は主に説明目的のためであり、本明細書に記載される主題の範囲を限定することが意図されていないことを当業者なら理解するであろう。図面は、必ずしも原寸に比例せず、いくつかの事例では、本明細書に開示される主題の様々な態様は、異なる特徴の理解を促進するために、図面中で誇張または拡大して示される場合がある。図面では、同様の参照符号は、一般的に、同様の特徴(たとえば、機能的に同様の要素または構造的に同様の要素)のことを言う。
【0007】
本開示によって提供される、上記および他の特徴および利点は、添付図面と一緒に読めば、例示的な実施形態の以下の記載からより十分に理解されよう。
【図面の簡単な説明】
【0008】
【
図1】例示的な実施形態による、モジュールの観点から見た画像処理システムを示すブロック図である。
【
図2】例示的な実施形態による、画像処理システムに採用される例示的な方法を図示するフローチャートである。
【
図3】例示的な実施形態による、画像処理システムに採用される例示的な畳み込みニューラルネットワークを図示する図である。
【
図4A】例示的な実施形態による、画像処理システムによって提供される出力画像を示す図である。
【
図4B】例示的な実施形態による、画像処理システムによって提供される出力画像を示す図である。
【
図4C】例示的な実施形態による、画像処理システムによって提供される出力画像を示す図である。
【
図4D】例示的な実施形態による、画像処理システムによって提供される出力画像を示す図である。
【
図5A】例示的な実施形態による、画像処理システムによって提供される出力画像を示す図である。
【
図5B】例示的な実施形態による、画像処理システムによって提供される出力画像を示す図である。
【
図6】例示的な実施形態による、画像処理システムの偽陽性および真陽性の誤り率を図示するグラフである。
【
図7】例示的な実施形態による、機械学習アルゴリズムをトレーニングするための例示的なシステムを概略的に描く図である。
【
図8】例示的な実施形態による、画像処理システムを実装するためのシステムを描くネットワーク図である。
【
図9】例示的な実施形態により提供される方法の1つまたは複数のステップを実行するために使用できる例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0009】
本明細書で記載されるのは、画像を処理して画像中の1つまたは複数の物品を識別するためのシステム、方法、およびコンピュータ可読媒体である。例示的な実施形態は、自動的に画像を分析する機械学習フレームワークを含む画像処理システムを提供する。いくつかの実施形態では、画像は、検問所で、スキャナまたはスクリーニングデバイスを介して得ることができるx線画像からなる。記載されるフレームワークに実装される機械学習アルゴリズムは、画像中の特定の物体のタイプ(たとえば、ラップトップ、靴、ビン(bottle)、兵器など)を識別し、その物品タイプに固有のタスクを実行する。たとえば、タスクは旅客バッグまたは安全ベルト付き物入れ内のラップトップにおける危険物検出を含む場合がある。例示的な実施形態では、本明細書に記載されるシステムおよび方法は、(荷物またはパッケージのx線画像を分析することによって)対象の荷物またはパッケージの中に特定の物品が存在するか、また存在する場合特定の物品が危険物(たとえば、爆発用デバイス)を含むかについて、自動的な決定を行うために使用することができる。いくつかの実施形態では、分析した画像中の特定の物品を識別する画像処理システムにより生成される出力画像中にラベルが含まれる。いくつかの実施形態では、特定の物品の位置が、画像処理システムの出力画像中に示される、または強調表示される。別の実施形態では、本明細書に記載されるシステムおよび方法は、荷物またはパッケージが危険物を含む特定の物品を含むことを保安要員に視覚的または音声的に示すために使用することができる。一実施形態では、機械学習フレームワークは、ディープラーニング畳み込みニューラルネットワーク(CNN)を採用して、物品、荷物、およびパッケージのx線画像を分析する。
【0010】
本明細書に記載されるシステムおよび方法は、限定しないが、保安要員が物品、荷物、パッケージ、またはコンテナの画像を危険物について評価する、様々な保安用途で使用することができる。たとえば、本明細書に記載される画像処理システムは、検問所で旅客の荷物を検査するために空港で運輸保安局(TSA)が使用することができる。画像処理システムは、旅客の預け入れ荷物をTSAがスキャンするために使用することもできる。画像処理システムは、運送または配送車両上の貨物を検査するために使用することもできる。画像処理システムは、郵便システムを介して郵送されたパッケージを検査するために使用することもできる。例示的な実施形態では、本明細書に記載されるシステムおよび方法は、旅客によって、彼もしくは彼女の体に付けて、または彼もしくは彼女の体の中に隠された物品を識別するために、旅客の体をx線スキャンする期間に作成される画像を処理するためにも使用することができる。
【0011】
例示的な実施形態では、機械学習アルゴリズムが、機械学習フレームワークまたはプラットフォーム上で実行される。機械学習アルゴリズムは、たとえば、x線容積測定画像または投影画像といった、画像の特定の形式またはタイプを分析するために、トレーニングデータ集合を使用してトレーニングされる。容積の投影画像は、x線システムの撮像センサの放射線によって直接的に、または、容積測定画像の容積への数学的加算演算によって合成的に形成することができる。トレーニングした機械学習アルゴリズムは、トレーニングデータ集合に基づいて、1つまたは複数のモデルを生成する。生成したモデルは、記憶され、1つまたは複数の入力画像を分析するために使用される。入力画像は、x線機械を介して得られた物品、荷物またはパッケージの画像である。本明細書で使用する投影画像とは、放射線が検出器に達するまで、入射する放射線が通過したすべての重なった物体の重ね合わせを表す。
【0012】
機械学習アルゴリズムをトレーニングするため使用されたトレーニングデータ集合に基づいて、画像処理システムは、指定された物品を識別することが可能である。たとえば、トレーニングデータ集合は、ラップトップを含有する画像の集合、およびラップトップを含有しない対応する画像の集合を含むことができる。そのようなデータ集合は、ラップトップが入力画像中にあるかを機械学習モデルを介して識別するように画像処理システムをトレーニングするために使用される。例示的な実施形態では、本明細書に記載されるシステムおよび方法は、指定された物品が、危険物、爆発物、液体、固体、気体、ゲル、加圧された液体または気体などといった、対象の物品を含有するかを識別するために使用することができる。たとえば、トレーニングデータ集合は、液体を有するコンテナを含む画像の集合、および固体を有するコンテナを含む画像の集合を含むことができる。そのようなデータ集合は、入力画像が液体を有するコンテナまたは固体を有するコンテナを含むかを機械学習モデルを介して識別するように画像処理システムをトレーニングするために使用される。
【0013】
図1は、例示的な実施形態による、モジュールの観点から見た画像処理システム100を示すブロック図である。モジュールのうちの1つまたは複数は、
図7に示されるように、デバイス710、スキャニングデバイス720、サーバ730、および/またはデータベース740を使用して実装することができる。モジュールは、機械学習アルゴリズムモジュール110、トレーニングデータ集合モジュール120、入力データモジュール130、出力データモジュール140を含む。モジュールは、様々な回路、回路要素、および1つまたは複数のソフトウェア構成要素、プログラム、アプリケーション、または1つまたは複数のプロセッサによって実行されるように構成されたコードベースの他の単位または命令を含むことができる。いくつかの実施形態では、モジュール110、120、130、140のうちの1つまたは複数をサーバ730に含むことができ、一方モジュール110、120、130、140のうちの他のものは、デバイス710またはスキャニングデバイス720に設けられる。モジュール110、120、130、および140は、
図1では個別モジュールとして示されるが、モジュール110、120、130、および140を、図示されるよりも少ないまたは多いモジュールとして実装できることを理解されたい。モジュール110、120、130、および140のうちのいずれかが、デバイス710、スキャニングデバイス720、サーバ730、またはデータベース740などといった、システム700(
図7)に含まれる1つまたは複数の構成要素と通信できることを理解されたい。
【0014】
機械学習アルゴリズムモジュール110は、機械学習アルゴリズムを実行する、または走らせるように構成されたハードウェア実装されるモジュールであってよく、機械学習アルゴリズムを実行するのに必要なパラメータ、変数、データ、および他の構成要素を記憶および管理することができる。例示的な実施形態では、機械学習アルゴリズムは、ディープラーニング畳み込みニューラルネットワーク(以降では、「ディープラーニングCNN」と呼ばれる)である。
【0015】
トレーニングデータ集合モジュール120は、画像処理システム100によって採用される機械学習アルゴリズムのためのトレーニングデータ集合を管理および記憶するように構成された、ハードウェア実装されるモジュールであってよい。例示的な実施形態では、トレーニングデータ集合は、物品、荷物またはパッケージのx線スクリーニングマシンまたはデバイスを使用して得られた複数の画像を含む。物品としては、ラップトップ、ビン、靴、または他の指定された物体が挙げられる。荷物またはパッケージは、ラップトップ、ビン、靴、または他の指定された物体のうちの1つまたは複数を含有することができる。一例の実施形態では、トレーニングデータ集合は、複数のカラー化したx線画像を含む。
【0016】
入力データモジュール130は、画像内の指定された物体の存在を識別するため、画像処理システム100によって分析される入力画像を管理および記憶するように構成された、ハードウェア実装されるモジュールであってよい。
【0017】
出力データモジュール140は、機械学習アルゴリズムの出力を管理および記憶するように構成されたハードウェア実装されるモジュールであってよい。いくつかの実施形態では、出力は、入力画像が指定された物体を含むか、また指定された物体が危険物を含むかの表示である。例示的な実施形態では、出力は、入力画像中の指定された物体を視覚的に強調することまたは目立たせることによって、指定された物体の存在を示す出力画像である。一実施形態では、出力画像は、指定された物体を識別するラベルを含むことができる。別の例示的な実施形態では、出力は、それぞれの物品、荷物またはパッケージの画像の分析に基づいて、物品、荷物またはパッケージが危険物を含むことを操作者または保安要員に示すため、保安用スクリーニングマシンまたはデバイスで生成される警報または警告である。
【0018】
図2は、例示的な実施形態による、画像処理システムに採用される例示的な方法200を図示するフローチャートである。方法200は、上で記載したシステム100の1つまたは複数のモジュールを使用して実行することができる。
【0019】
ブロック202において、画像処理システム100に採用される機械学習アルゴリズムは、画像の特定の形式またはタイプを分析するために、トレーニングデータ集合を使用してトレーニングされる。機械学習アルゴリズムモジュール110は、機械学習アルゴリズムを実行するように構成することができる。トレーニングデータモジュール120は、トレーニングのために、トレーニングデータ集合を機械学習アルゴリズムモジュール110に提供するように構成することができる。
【0020】
例示的な実施形態では、トレーニングデータ集合は、物品、荷物、およびパッケージの複数のx線画像を含む。例示的な実施形態では、トレーニングデータ集合は、危険物を含有する物品のx線画像の第1の集合および危険物を含有しない物品のx線画像の第2の集合を含む。このトレーニングデータ集合は、物品のx線画像が危険物を含有するか、または危険物を含有しないかを決定するよう、機械学習アルゴリズムをトレーニングするために使用することができる。別の実施形態では、トレーニングデータ集合は、指定された物品(たとえば、個人用電子デバイス、ラップトップ、コンテナ、靴など)を含有するx線画像の第1の集合および指定された物品を含有しないx線画像の第2の集合を含む。このトレーニングデータ集合は、x線画像中の指定された物品を識別するため機械学習アルゴリズムをトレーニングするために使用することができる。
【0021】
例示的な実施形態では、機械学習アルゴリズムは、既存の爆発物検出システムの結果または出力に基づくトレーニングデータ集合を使用してトレーニングされる。既存の爆発物検出システムは、入力x線画像が爆発物または他の武器物品を含むかを自動的に決定することができる。既存の爆発物検出システムの結果または出力は、画像が爆発物または他の武器物品を含むという表示を有する出力画像を含むことができる。
【0022】
例示的な実施形態では、トレーニングデータ集合における画像は、指定された物品を含む、または指定された物品を含まないとして、手動で識別される、またはラベル付けされる。代替実施形態では、トレーニングデータ中の画像は、自動化したシステムを使用して、指定された物品を含む、または指定された物品を含まないとして、自動的に識別またはラベル付けされる。自動化したラベル付けシステムは、トレーニングデータに注釈を付けること、または分類することについて、人間と同じ機能を実行することができる。
【0023】
画像は、x線スクリーニングマシンまたはデバイスを介して得られたTRI-MAT画像であってよく、ここで、TRI-MAT画像は、画像中の物品を、有機物、無機物、または金属性物体と識別する。物体の各タイプは、TRI-MAT画像中で異なる色として描かれる。非限定の例では、トレーニングデータ集合のための画像は、空港、バスターミナル、駅、政府施設、港または国境検査所、安全な商業施設などといった、施設における検問所で設置されるスキャニングデバイスから得られる。
【0024】
例示的な実施形態では、トレーニングデータ集合は、2D画像を含むことができる。別の例では、トレーニングデータ集合は、物体の異なる層を表す複数の2D画像を含むことができる。2D画像は、物体の断面画像またはスライスであってよい。さらに別の例では、トレーニングデータ集合は、各々が物体の異なる視野を表す複数の画像を含むことができる。
【0025】
例示的な実施形態では、トレーニングデータ集合は、x線画像を分析し、指定される物体の存在を識別するため機械学習アルゴリズムをトレーニングするための画像を含む。指定される物体は、たとえば、電子デバイス、モバイルコンピューティングデバイス、パーソナルコンピューティングデバイス、ラップトップ、タブレット、スマートフォン、セルラフォン、スマートウォッチ、ビン、コンテナ、特定のタイプのコンテナ(たとえば、エアロゾル、液体コンテナ、固体コンテナなど)、片方または1足の靴、兵器、銃、ナイフであってよい。指定される物体は、爆発用デバイスを収納するために使用できる物品または物体であってよい。例示的な実施形態では、トレーニングデータ集合は、x線画像を分析し、危険物(たとえば、爆発用デバイス)の存在を識別するために機械学習アルゴリズムをトレーニングするための画像を含む。この目的のために機械学習アルゴリズムをトレーニングするため、トレーニングデータ集合は、指定される物体を含む物品、荷物、またはパッケージを描く画像を含む第1のトレーニングデータ集合を含むことができる。トレーニングデータ集合は、指定される物体を含まない物品、荷物、またはパッケージを描く画像を含む第2のトレーニングデータ集合を含むことができる。トレーニングデータ集合は、危険物(たとえば、爆発用デバイス)を含む物品、荷物、またはパッケージを描く画像を含む第3のトレーニングデータ集合を含むことができる。トレーニングデータ集合は、指定される物体および指定される物体中に含まれる危険物を含む物品、荷物、またはパッケージを描く画像を含む第4のトレーニングデータ集合を含むことができる。
【0026】
例示的な実施形態では、画像処理システム100に採用される機械学習アルゴリズムは、ディープラーニングCNNである。機械学習では、畳み込みニューラルネットワーク(CNN)は、そのニューロン間の接続性パターンが動物の視覚野の組織によってもたらされる、1つのタイプのフィードフォワード人工ニューラルネットワークである。個々の皮質ニューロンは、受容野として知られる空間の限られた領域中の刺激に応答する。視覚野をタイル表示するように、異なるニューロンの受容野は部分的に重複する。個々のニューロンの、そのそれぞれの領域内の刺激に対する応答は、畳み込み演算によって数学的に近似することができる。
【0027】
例示的な実施形態では、ディープラーニングCNNのための画像処理システム100によって採用されるアルゴリズムアーキテクチャは、Google Inc.によって提供または開発されたアルゴリズムアーキテクチャであって、Google Inception(商標)と呼ばれる。例示的な実施形態では、ディープラーニングCNNアルゴリズムアーキテクチャは、AlexNet(商標)またはGoogLeNet(商標)である。
【0028】
例示的な実施形態では、人工ニューラルネットワークは、それに数百万のトレーニング例を示し、人工ニューラルネットワークが所望の分類を実現するまでネットワークパラメータを徐々に調整することによってトレーニングされる。一例では、ネットワークは、人工ニューロンの10から30のスタックした層からなる。各画像は、入力層に送られ、入力層は次いで次の層に通信し、その後最終的に「出力」層に達する。ネットワークの「答」または分析は、この最終出力層によって提供される。
【0029】
画像が何を示すかについて最終層が決定を行うまで、ニューラルネットワークの各層は、画像のより高いレベルの特徴を漸次抽出する。たとえば、第1の層は、縁部または角を識別してよい。中間層は、扉または葉のような、全体的な形状または構成要素を捜すため、基本的な特徴を解釈してよい。最後の少数の層は、それらを完全な解釈へと組み立てる。
【0030】
例示的な実施形態では、機械学習アルゴリズムは、好適なフレームワークまたはプラットフォームを使用してトレーニングおよび実行される。例示的な実装形態では、Google Inceptionアルゴリズムアーキテクチャは、カリフォルニア大学バークリー校が提供したCaffeフレームワークを使用して実行される。Caffeフレームワークの組織は、ネット、層、およびブロブを含む。Caffeフレームワークは、階層化組成モデルの前進計算および後退計算を含む。Caffeフレームワークによって学習されなければならないタスクは、「損失(loss)」と呼ばれる。Caffeフレームワークは、モデル最適化を協調させるためのソルバをやはり含む。
【0031】
ディープネットワークは、データのかたまりに働く相互接続された層の集合として自然に表される組成モデルである。Caffeフレームワークは、それ自体のモデルスキーマ中で、層ごとにネットを規定する。ネットワークは、入力データから損失に、全モデルをボトムツートップで規定する。データおよび派生物が前方および後方へのパスでネットワークを通して流れると、Caffeは、情報をブロブとして記憶、通信、および操作する。Caffeに関連して使用されるブロブは、標準的なアレイであり、フレームワークのための統合されたメモリインターフェースである。層は、モデルと計算の両方の基礎として次に来る。ネットは、層の集合および接続として続く。ブロブの詳細は、どのようにして情報が、層およびネットに記憶され、層およびネットにわたって通信されるかを記載する。
【0032】
本明細書で使用するブロブは、Caffeによって処理されパスされる実際のデータを覆うラッパーであり、フードの下で、CPUとGPUの間の同期機能も提供する。数学的には、ブロブは、C連続の様式で記憶されるN次元アレイである。Caffeは、ブロブを使用してデータを記憶し通信する。ブロブは、たとえば、画像のバッチ、モデルパラメータ、および最適化のための派生物といった、データを保持する統合されたメモリインターフェースを提供する。ブロブは、CPUホストからGPUデバイスに必要に応じて同期することによって、CPU/GPU動作を混合することによる計算のオーバヘッドおよび精神的オーバヘッドを隠す。ホストおよびデバイス上のメモリは、効率的にメモリを使用するために、要求に応じて(ゆるく)割り当てられる。
【0033】
画像データのバッチのための従来型のブロブの次元は、数N x チャネルK x 高さH x 幅Wである。ブロブメモリは、レイアウトでは行主体であり、そのため、最後/最も右の次元が最も速く変化する。たとえば、4Dブロブでは、指標(n, k, h, w)の値は、物理的に、指標((n * K + k) * H + h) * W + wにあり、ここで、数/Nは、データのバッチサイズである。バッチ処理は、通信およびデバイス処理で、よりよいスループットを達成する。256画像のトレーニングバッチでは、N = 256である。チャネル/Kが特徴の次元であり、たとえば、RGB画像では、K = 3である。
【0034】
パラメータブロブの次元は、層のタイプおよび構成にしたがって変わる。11 x 11の空間次元および3入力の96フィルタを有する畳み込み層では、ブロブは、96 x 3 x 11 x 11である。内積/1000出力チャネルおよび1024入力チャネルを有する完全接続層では、パラメータブロブは、1000 x 1024である。
【0035】
ブロブは、同期の詳細を隠し、データ転移を最小化するために、CPUとGPU間で値を同期する。実際には、GPUが存在するとき、ディスクからブロブにCPUコードでデータをロードし、GPU計算を行うようにデバイスカーネルをコールし、ブロブを次の層に運んで、高レベルの性能を維持しながら低レベルの詳細を無視する。すべての層がGPUの実装を有する限り、すべての中間データおよび勾配がGPU中に残ることになる。
【0036】
層は、モデルの本質であり、計算の基本単位である。層は、フィルタを畳み込み、プールし、内積を行い、正規化線形関数およびシグモイド関数ならびに他の要素ごとの変換のような非線形関数を適用し、正規化し、データをロードし、ソフトマックス関数およびヒンジ関数のような損失を計算する。
【0037】
層は、ボトム接続を介して入力を受け取り、トップ接続を介して出力する。各層のタイプが、3つの重要な計算、すなわち、設定、前進、および後退を規定する。設定期間に、Caffeは、モデル初期化で一度、層およびその接続を初期化する。前進期間に、ボトムから入力を与えられたCaffeは、出力を計算して、トップに送る。後退期間に、トップ出力に関する勾配を与えられたCaffeは、入力に関する勾配を計算して、ボトムに送る。パラメータを有する層は、そのパラメータに関する勾配を計算し、それを内部に記憶する。
【0038】
より詳細には、1つはCPUに、1つはGPUに実装される、2つの前進機能および後退機能がある。GPUバージョンが実装されない場合、層は、バックアップオプションとして、CPU機能に戻る。これは、追加のデータ転移コストを伴う可能性があるが、簡単な実験には有用である(その入力は、GPUからCPUにコピーされ、その出力は、CPUからGPUにコピーされて戻される)。
【0039】
層は、全体としてネットワークの動作にとって2つの鍵となる責務を有する。すなわち、入力を受け取り出力を生成する前進パス、および出力に関する勾配を受け取り、パラメータに関する、また入力に関する勾配を計算し、次いで勾配をより早い層に逆伝播する後退パスである。これらのパスは、各層の前進および後退の合成にすぎない。
【0040】
カスタム層を開発するのは、ネットワークの合成性およびコードのモジュール性によって、必要な努力が最小となる。層についての設定、前進および後退を規定すれば、ネットに含めるための準備ができる。
【0041】
ネットは、機能とその勾配を、合成および自動識別によって一緒に規定する。あらゆる層の出力の合成によって、所与のタスクを行うための機能を計算し、あらゆる層の後退の合成によって、タスクを学習するために損失から勾配を計算する。Caffeモデルは、エンドツーエンド機械学習エンジンである。ネットは、計算グラフ、正確には有向非巡回グラフ(DAG)で接続される層の集合である。Caffeは、前進および後退パスの正しさを確保するために、層の任意のDAGについてすべての記帳を行う。典型的なネットは、ディスクからロードするデータ層で始まり、分類または再構築などのタスクのための目的を計算する損失層で終了する。
【0042】
ネットは、プレーンテキストモデリング言語における、層およびそれらの接続の集合として規定される。ネットワークの構築は、デバイス不可知であり、ブロブおよび層は、モデル定義から実装の詳細を隠す。構築後に、ネットワークをCPUまたはGPUのいずれかで走らせる。層は、(数値誤差まで)同じ結果をもたらす、対応するCPUおよびGPUルーチンを伴う。
【0043】
モデルは、プレーンテキストプロトコルバッファスキーマ(prototxt)で規定され、一方、学習したモデルは、バイナリプロトコルバッファ(binaryproto).caffemodelファイルとして直列化される。
【0044】
Caffeは、Google Protocol Bufferを以下の強み、すなわち、直列化したときの最小サイズの2進数列、効率的な直列化、2進数バージョンと互換性があり人間が読めるテキスト形式、およびとりわけC++およびPythonといった複数言語の効果的なインターフェース実装について説いている。これらすべてが、Caffeにおけるモデリングの柔軟性および拡張性に寄与する。
【0045】
前進および後退パスは、ネットの計算である。前進パスは、推測のため入力を与えられた出力を計算する。前進では、Caffeは、モデルにより表される「機能」を計算するため各層の計算を合成する。このパスは、ボトムからトップに向かう。後退パスは、学習のため損失を与えられた勾配を計算する。後退では、Caffeは、自動識別によって全モデルの勾配を計算するため、各層の勾配を逆合成する。これが後方伝播である。このパスは、トップからボトムに向かう。
【0046】
後退パスは、損失で始まり、出力に関しての勾配を計算する。モデルの残りに関する勾配は、連鎖法則によって、層ごとに計算される。パラメータを有する層は、後退ステップの期間に、それらのパラメータに関する勾配を計算する。これらの計算は、モデルを規定するとすぐに後に続く。Caffeは、前進および後退パスを計画して実行する。
【0047】
ソルバは、出力および損失をもたらすために最初に前進をコールし、次いで、モデルの勾配を生成するために後退をコールし、次いで、損失を最小化するように試みる重みの更新に勾配を組み込むことによってモデルを最適化する。ソルバ、ネット、および層の間で労力を分割することによって、Caffeをモジュール式にして、開発をオープンに保つ。
【0048】
解決(solving)は、モデル化と最適化を切り離すために別個に構成される。ソルバは、損失を改善するように試みるパラメータ更新を形成するため、ネットワークの前進推測と後方勾配を協調させることによって、モデル最適化を取りまとめる。学習の責務は、最適化を監督しパラメータ更新を生成するためのソルバと、損失および勾配をもたらすためのネットとの間で分割される。
【0049】
Caffeでは、学習は、損失関数(誤差、コスト、または目的関数としても知られている)によって駆動される。損失関数は、パラメータ設定の「悪さ」を指定するスカラー値にこれらのパラメータ設定(すなわち、現在のネットワーク重み)をマッピングすることによって学習のゴールを指定する。したがって、学習のゴールは、損失関数を最小化する重みの設定を発見することである。
【0050】
Caffeにおける損失は、ネットワークの前進パスによって計算される。各層は、入力(ボトム)ブロブの集合を受け取り、出力(トップ)ブロブの集合を生成する。一実施形態では、これらの層の出力のいくつかは、損失関数で使用することができる。
【0051】
Caffeモデルを作成するため、モデルアーキテクチャは、プロトコルバッファ定義ファイル(prototxt)で規定される。データは、ネットのボトムにあるデータ層を通してCaffeに入る。データは、効率的なデータベース(LevelDBまたはLMDB)から、メモリから直接、または効率が重要でないときにはHDF5または通常の画像フォーマットでディスク上のファイルから来ることができる。
【0052】
Caffeを使用してCNNをトレーニングするには、4つのステップがある。第1のステップは、データ準備を含む。このステップでは、画像は、きれいにされ、Caffeが使用することができる形式で記憶される。例示的な実施形態では、入力データモジュール130によって実行されるPythonスクリプトは、画像前処理ならびにトレーニング集合のための好適な画像の記憶、選択、およびカラー化などといった、任意の前処理ステップの適用を扱うことができる。
【0053】
第2のステップは、モデル定義を含む。このステップでは、CNNアーキテクチャが選択され、そのパラメータは構成ファイルに規定される。たとえば、本明細書に記載される画像処理システムのために選択されるCNNアーキテクチャは、Google Inception version 1であってよい。当業者は、多くの多層CNNモデルアーキテクチャが利用可能であり、検出タスクの性能を可能にすると理解されよう。
【0054】
第3のステップでは、ソルバパラメータが構成ファイルで規定される。ソルバは、モデル最適化を担う。
【0055】
第4のステップでは、モデルは、本明細書に記載されるトレーニングデータ集合を使用してトレーニングされる。モデルをトレーニングした後、Caffeは、トレーニングしたモデルをファイル中に生成する。
【0056】
トレーニングフェーズ後、生成したトレーニングしたモデルを使用して、入力画像内に指定された物体の存在を識別し、画像中に指定された物体が存在する場合、指定された物体が危険物を含むかを決定することができる。
【0057】
他の実施形態では、他の機械学習フレームワークを使用して、ディープラーニングCNNアルゴリズムを実装することができる。他のフレームワークとしては、Torch(商標)、Theano(商標)、およびTensorFlow(商標)が挙げられる。
【0058】
画像処理システム100は、トレーニングされた機械学習アルゴリズムにより生成される1つまたは複数のモデルを記憶する。例示的な実施形態では、ディープラーニングCNNによって生成されたモデルは、
図3に描かれるように、入力層、少なくとも2つの隠れ層、および出力層からなる。上で述べたように、機械学習モデルは、CNNアルゴリズムをトレーニングするのに固有の、機械学習重み、係数、および形式を含む。
【0059】
図2の議論を続けて、ブロック204において、入力データモジュール130は、物品を含む、少なくとも1つの描画されたx線画像を受け取る。非限定の例では、入力x線画像は、空港、バスターミナル、駅、政府施設、港、または国境検査所、安全な商業施設などといった、施設における検問所で設置されるスキャニングデバイスから得られる。
【0060】
画像処理システム100は、トレーニングデータ集合を使用して機械学習アルゴリズムをトレーニングすることにより生成される1つまたは複数の機械学習モデルを実行して、入力画像を分析し、指定される物体の存在を識別する。
【0061】
ブロック206において、機械学習アルゴリズムモジュール110は、生成されたモデルを使用して、ブロック204で受け取った入力画像を分析し、入力画像が指定された物体を含むかを自動的に決定するように構成される。指定される物体が存在する、または画像中に含まれると決定した後、例示的な実施形態では、画像処理デバイスは、指定された物体が危険物を含むかを決定する。たとえば、画像処理システム100は、画像がラップトップ(指定される物体)を含むと決定する。次いで、画像処理システム100は、ラップトップが危険物、たとえば、爆発用デバイスを含むかを決定する。
【0062】
ブロック208において、出力データモジュール140は、入力画像中に識別された物品に関連する、自動検出表示を生成する。例示的な実施形態では、自動検出表示は、入力画像中の指定される物品を識別するテキストラベルまたは他の図式表示である。自動検出表示は、ユーザデバイスのディスプレイに提供される出力画像上に表示する、または出力画像中に含むことができる。出力画像は、指定される物品の存在の表示を有する入力画像(たとえば、描画されたx線画像)であってよい。本明細書に記載されるように、ユーザに出力または自動検出表示が提供されるユーザデバイスは、保安用スキャニングデバイス、コンピューティングデバイス、またはサーバに結合される表示デバイスを含むことができる。別の実施形態では、自動検出表示は、入力画像中の指定される物品の位置を示す視覚表示であってよい。そのような視覚表示は、指定される物品を囲む色付きのボックス形状であってよい。別の実施形態では、自動検出表示は、危険物を含有する物品が入力画像中に検出されたことをユーザに警告する、図式表示および/または可聴表示であってよい。
【0063】
自動検出表示は、入力画像中の物品の機械学習した特徴に少なくとも部分的に基づき、物品の機械学習した特徴は、x線画像のトレーニングデータ集合に基づく。
【0064】
自動検出表示は、ユーザデバイス、または施設中の保安用スキャニングデバイスに結合されるコンピューティングデバイスに送信することができる。いくつかの実施形態では、保安用スキャニングデバイスは、空港または他の保安施設中のx線スクリーニングマシンであってよい。自動検出表示は、画像処理システム100で入力画像が受け取られたときに対して、実時間またはほぼ実時間で生成および送信することができる。
【0065】
画像処理システム中で採用される機械学習アルゴリズムは、トレーニングおよび設定のための時間を必要とする。トレーニング後、機械学習アルゴリズムは、入力画像を分析して、出力を実時間またはほぼ実時間で生成することが可能である。一度トレーニングすると、画像処理システムを、検問所で、事前スクリーニングシステムとして使用することができる。一実施形態では、機械学習アルゴリズムの第1の短縮部を、事前スクリーニングを実行するために使用することができる。いくつかの実施形態では、画像処理システムの出力は、画像に対応する荷物をさらに処理する必要があるという警告であってよい。一実施形態では、警告の生成の後に、機械学習アルゴリズムの第2のより時間集約的部分を画像または荷物に実行することができる。一方、最初の事前スクリーニングがすべてクリアである表示を生成する場合、荷物をさらに分析しなくてよい。こうして、本明細書に記載される画像処理システムは、画像処理の効率を上げて、施設における保安用スキャニングプロセスを高速化するために採用することができる。
【0066】
例示的な実施形態では、画像処理システム100は、ブロック206において識別された物品が、爆発物検出システムにとって、一般的な偽警告物体であると決定する。例示的な実施形態では、一般的な偽警告物体のリストがデータベースに記憶される。画像処理システムによって識別される偽警告物体は、システムによって採用される機械学習アルゴリズムに依存する。例示的な実施形態では、画像処理システムによって識別される場合があるが、危険物または爆発物という観点では一般的な偽警告物体である物体を集約して、一般的な偽警告物体のリストを生成し、特定の機械学習アルゴリズムを利用可能にして、偽警告物体を考慮する。
【0067】
図4Aおよび
図4Bは、それぞれ、本明細書に記載される画像処理システムによって提供される出力画像400および410を示す。出力画像400および410は、画像処理システムが、画像内で、指定される物体、この場合はラップトップの存在を識別することに成功したことを図示する。
【0068】
図4Cおよび
図4Dは、それぞれ、本明細書に記載される画像処理システムによって提供される出力画像400および410を示す。出力画像420および430は、画像処理システムが、画像内で、指定される物体、この場合はラップトップの存在を識別することに成功したことを図示する。
【0069】
図5Aは、画像処理システム100の出力画像500を示す。出力画像500は、
図4Aの画像に描かれる荷物の前面透視図および側面透視図を含む。
図5Bは、画像処理システム100の出力画像510を示す。出力画像510は、
図4Bの画像に描かれる荷物の前面透視図および側面透視図を含む。本明細書に記載されるように、出力画像は、入力画像に基づき、自動検出表示を含む。画像500および510に示されるように、指定される物品(たとえば、ラップトップ)の位置が、それぞれ、色付きの形状502および512を使用して示される。例示的な実施形態では、入力の描画されたx線画像は、保安目的でスキャンされた物品、荷物、またはパッケージの透視図を含む。
【0070】
本明細書に記載される画像処理システムによって採用される例示的なトレーニングした機械学習アルゴリズムの試験では、画像中の危険物の、95.6%の検出確率(PD)を示した。システムを試験した結果に基づいて、特定のタイプの危険物を識別するさらなる用途において、
図6に図示されるグラフ600(相対的動作特性)が提供される。グラフに示されるように、x軸は偽警告の確率(PFA)を示し、y軸はPDを示す。曲線の下の区域(AUC)は、0.917と計算される。
【0071】
この方法では、本明細書に記載される画像処理システムは、画像の分析、および指定される物品および危険物の自動識別を可能にする。画像処理システムは、画像を分析するために、ディープラーニングCNNなどといった機械学習アルゴリズムを採用する。物品、荷物、およびパッケージ中の危険物を検出するためx線画像を分析するためにディープラーニングCNNアルゴリズムをトレーニングする他者の過去の試みは、そのような機械学習アルゴリズムをトレーニングするのに必要なトレーニングデータ集合のサイズが分からなかったために失敗だった。従来では、トレーニングデータ集合は非常に大きい必要があり、機械学習アルゴリズムをトレーニングするためのそのような大きいデータ集合を得ることができないと仮定された。しかし、本明細書に記載される画像処理システムの実施形態は、物品、荷物、およびパッケージ中の指定される物体および危険物を識別するためx線画像を分析するために、より小さいトレーニングデータ集合でトレーニングすることができる(たとえば、およそ5000から10000の画像を使用してディープラーニングCNNアルゴリズムをトレーニングすることができる)。さらに、本明細書に記載されるように、実施形態は、特定のタイプのトレーニングデータ集合を使用して、ディープラーニングCNNアルゴリズムをトレーニングし、X線画像を分析して、物品、荷物、およびパッケージ中の指定される物体および危険物を識別する。
【0072】
従来では、当業者は、既存のディープラーニングCNNアルゴリズムを使用して、光学像または2D画像を分析することができている。しかし、x線画像または色付きx線画像を分析するために既存のディープラーニングCNNアルゴリズムを使用する試みは、無意味な出力の結果となる。対照的に、本発明の実施形態は、本明細書に記載される画像処理システムが、本明細書に記載される機能を実現することを可能にしてx線画像および/または色付きx線画像の正確な分析をもたらすために、x線画像または色付きx線画像からなるトレーニングデータ集合を使用してディープラーニングCNNアルゴリズムを再トレーニングする。
【0073】
従来では、当業者は、彼または彼女の入力データに分析を行うために、トレーニングされたディープラーニングCNNアルゴリズムを採用する場合があり、彼または彼女の所望の分析を行うために、ディープラーニングCNNアルゴリズムを再トレーニングする場合がある。従来では、この再トレーニングは、CNNについて転移された学習技法に基づいて、あるパーセンテージの層だけ、たとえば、50~80%の層を再トレーニングすることによって行われている。しかし、本発明のいくつかの実施形態では、ディープラーニングCNNアルゴリズムの100%の層が再トレーニングされて、x線画像または色付きx線画像を分析して指定される物品および危険物を識別することを可能にする。一実施形態では、ディープラーニングCNNアルゴリズムの層のうちの95%以上の層が再トレーニングされて、x線画像または色付きx線画像を分析して指定される物品および危険物を識別することを可能にする。
【0074】
ディープ多層CNN手法の使用では、従来、複雑で完全なエンドツーエンドの特徴抽出、表現、および分類プロセスの構築を容易にするために、大量のトレーニングデータが必要である。現在のCNN手法は、典型的には、層構造内の様々な数の層(3~22)を含む。現在では、そのようなCNNは、(典型的には、サイズが106の)巨大なデータ集合にわたって、バッチサイズ、重み減衰、運動量および学習速度などといった様々なパラメータを有する確率的勾配低下手法を使用してトレーニングを実行するネットワークの結果として得られるパラメータ化で手動で設計される。しかし、そのような大きいデータセットが利用可能でない問題に対して、そのようなトレーニングおよびパラメータ最適化技法を限定的に適用することによって、転移学習の概念が生じる。
【0075】
x線保安用スクリーニングの文脈内で、対象の特定の物品についてのトレーニングの可用性が限定されることによって、問題が生じる可能性がある。この問題点を克服するため、実施形態は、転移学習パラダイムを採用し、その結果、主として十分なトレーニングデータが存在する一般化した画像分類タスクのためにトレーニングされた、事前トレーニングしたCNNを、特定の応用領域を目標とする後の2次プロセスとして具体的に最適化することができる。CNN中の各隠れ層は、明確な特徴表現に関する特性を有しており、とりわけ、より低い層が一般的な特徴抽出能力を提供し、一方、より高い層が本来の分類タスクへとだんだんと固有さを増す情報を担持する。この発見は、CNN中のより低い層の一般化した特徴抽出および表現の文字通りの再使用を容易にし、一方、より高い層は、本来に関する特性で2次問題領域に向けて微調整される。このパラダイムを使用して、実施形態は、x線画像内の限定された物体クラス検出の特定の問題領域に向けて最適化する出発点として、汎用の1000+の物体クラス問題について、既存の十分にトレーニングされたネットワークの事前CNNパラメータ化を活用する。ランダムなパラメータ初期化を有する新しいCNNを設計する代わりに、実施形態では、事前トレーニングされたCNNを採用して、そのパラメータ化を特定の分類領域に向けて微調整する。一実施形態は、600万のパラメータを有するGoogle Inception version 1を使用する。一実施形態では、ゼロ以上の層を、再トレーニングしない場合がある。
【0076】
図7は、CNNをトレーニングするための例示的なシステムを概略的に描く。本明細書に記載されるように、CNNアルゴリズムのトレーニングは、一連の層710、初期パラメータ集合720、およびトレーニングデータ集合730で開始する。例示的な実施形態では、トレーニングデータ730は、複数の画像のフォルダとして記憶され、ここで、各フォルダは、データの1つのクラスに対応する。すなわち、第1のフォルダがラップトップを有する画像を含有することができ、第2のフォルダがラップトップなしの画像を含有することができ、第3のフォルダがビンを有する画像を含有することができ、第4のフォルダがビンなしの画像を含有することができ、などである。トレーニング期間に、各層のパラメータ720を、ロックアイコン715によって示されるように、更新または凍結することができる。トレーニング後、更新したパラメータおよび一連の層を有するCNNモデルが使用されて、入力画像を分析し、指定される物品およびその中の危険物を識別する。
【0077】
いくつかの従来型システムは、事前トレーニングしたCNNのある種の既存の機械学習した特徴を使用するために、事前トレーニングしたCNNアルゴリズムのある層を凍結する。例示的な実施形態では、本明細書に記載されるシステムおよび方法は、既存のCNNアルゴリズムのすべての層を再トレーニングして、CNNアルゴリズムが、トレーニングデータ集合に基づいて、新しく機械学習した特徴、重み、および係数を生成することを可能にする。いくつかの従来型システムは、指定される物品を含有する画像の特定の部分またはセクションについて機械学習アルゴリズムをやはりトレーニングする。しかし、本明細書に記載されるシステムおよび方法は、物品を含有する画像の一部を分離するのではなく、むしろ、指定される物品を含有する全画像または完全な画像上で機械学習アルゴリズムをトレーニングする。例示的な実施形態では、本明細書に記載される画像処理システムは、
図5Aおよび
図5Bに図示されるように、画像の複数の視野または次元上でトレーニングされる。例示的な実施形態では、本明細書に記載される画像処理システムは、特定の物品のクラスについて、同じ数の画像を使用してトレーニングされる。すなわち、トレーニングデータ集合は、指定される物品を有する同じ数の画像と、指定される物品を有さない同じ数の画像を含む。同様に、トレーニングデータ集合は、危険物を含有する物品を含む同じ数の画像と、危険物なしの物品を含む同じ数の画像を含む。対照的に、従来型システムは、特定の物品のクラスについて、等しくない数の画像を有するトレーニングデータ集合を使用する。
【0078】
本明細書に記載の画像処理システムを実装するため、例示的な実施形態は、LINUX(登録商標)が走るコンピューティングデバイス、1つまたは複数のグラフィックス処理カードまたはユニット(GPU)、トレーニングのための数千の画像、およびディープラーニングCNNフレームワーク(たとえば、Caffe)を採用する。
【0079】
本開示で提出される付録Aは、コンテナ(たとえば、ビン)を含む、例示的なx線入力画像を分析するために、本開示にしたがってトレーニングされた例示的なCNNアルゴリズムのステップを図示する。付録Aの例示的なCNNは、Google Inception(商標) CNNアルゴリズムをトレーニングすることによって生成される。付録Aは、例示的なネットワークアーキテクチャ、および本明細書に記載される画像処理システムによって採用される機械学習アルゴリズムについての各ステージにおけるネットワークの出力を図示する。
【0080】
本開示で提出される付録Bは、本開示にしたがってトレーニングされず、むしろ、CNNのある種の層が凍結される従来型の方法を使用してトレーニングされた例示的なCNNアルゴリズムのステップを図示する。付録Bに見られるように、トレーニング後にビンを正しく示す分類出力は、既存の事前トレーニングされた機械学習アルゴリズムでは、そうしない。
【0081】
図8は、例示的な実施形態による、画像処理システムを実装するためのシステム800を描くネットワーク図を図示する。システム800は、ネットワーク805、複数のデバイス、たとえば、デバイス810、スキャニングデバイス820、サーバ830、およびデータベース840を含むことができる。デバイス810、820、サーバ830、およびデータベース840の各々は、ネットワーク805と通信する。
【0082】
例示的な実施形態では、ネットワーク805の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスワイドエリアネットワーク(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、公衆交換電話網(PSTN)の一部、セルラ電話ネットワーク、ワイヤレスネットワーク、WiFiネットワーク、WiMaxネットワーク、任意の他のタイプのネットワーク、または2つ以上のそれらのネットワークの組み合せであってよい。
【0083】
デバイス810は、限定しないが、ワークステーション、コンピュータ、汎用コンピュータ、インターネット機器、ハンドヘルド型デバイス、ワイヤレスデバイス、ポータブルデバイス、ウエラブルコンピュータ、セルラまたはモバイル電話、ポータブルデジタルアシスタント(PDA)、スマートフォン、タブレット、ウルトラブック、ネットブック、ラップトップ、デスクトップ、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータなどが挙げられる。デバイス810は、有線接続またはワイヤレス接続を介してネットワーク805に接続することができる。
【0084】
スキャニングデバイス820は、x線機械またはシステムを含み、荷物、パッケージ、コンテナ、および他の物品などといった物品をスキャンし、スキャニングデバイス820に結合される表示デバイス上に、スキャンした物品の描画されたx線画像生成することができる。例示的な実施形態では、スキャニングデバイス820は、空港の検問所における保安用スクリーニングシステムである。スキャニングデバイス820は、保安目的で旅客の荷物および機内持込物品をスキャンするために使用することができる。例示的な実施形態では、スキャニングデバイス820によって生成された画像は、本明細書に記載されるように機械学習アルゴリズムをトレーニングするためのデータセットとして使用される。他の実施形態では、スキャニングデバイス820は、画像処理システム100のための入力画像を生成する。入力画像が処理された後、出力画像を、スキャニングデバイス820に結合される表示デバイスに表示することができ、ここで、出力画像は、識別された物品のためのラベル、画像内の物品の位置の表示、および物品の危険状態の表示を含むことができる。例示的な実施形態では、スキャニングデバイス820は、市販されているClearScan(登録商標)デバイスである。
【0085】
アドオンモジュールとして、本明細書に記載される画像処理システムは、既存の保安用検問デバイス上、または1つもしくは複数のデバイスにネットワーク接続される既存のサーバ上にソフトウェアモジュールとしてロードすることができる。画像処理システムは、それらのデバイスまたはサーバ上に設置することができる任意の他の検出技術に加えて、警報を生成して、保安用検問デバイスの操作者に、検出した危険物について警告する。この方法では、画像処理システムは、それらのデバイスまたはサーバ上に実装される他のチャネルまたはプログラムを介して警報を生成することになる物品を取り除くことなく、検出能力を追加する。
【0086】
当業者は、アドオン能力を任意のx線撮像デバイスに加えることができる一方で、一実施形態では、別個のアルゴリズムで以前に汎用検出要件をパスしたClearScan(登録商標)保安用検問スキャナにアドオン能力を加えることができることが理解できる。この方法では、本明細書に記載される画像処理システムアドオンによって生成される警報は、他の検出ソフトウェアによって生成される警報と一緒にスクリーン上に表示することができる。
【0087】
例示的な実施形態では、デバイス810、820は、本明細書に記載される画像処理システム100の機能のうちの1つまたは複数を実現することができる。デバイス810、820は、
図8のコンピューティングデバイス800の1つまたは複数の構成要素を含むことができる。デバイス810、820は、機械学習アルゴリズムをトレーニングするために使用し、次に、トレーニングしたアルゴリズムを入力画像に使用して、指定される物体および危険物の存在を識別することができる。
【0088】
例示的な実施形態では、画像処理システム100は、サーバ830上に含まれる場合があり、サーバ830が、本明細書に記載される画像処理システム100の機能のうちの1つまたは複数を実現する。いくつかの実施形態では、デバイス810、820が機能のうちの一部を実現することができ、サーバ830が本明細書に記載される他の機能を実現する。
【0089】
データベース840の各々、およびサーバ830は、有線またはワイヤレス接続を介してネットワーク805に接続される。サーバ830は、ネットワーク805を介してデバイス810、820と通信するように構成された1つまたは複数のコンピュータまたはプロセッサを含む。サーバ830は、
図9のデバイス900のうちの1つまたは複数の構成要素を含むことができる。サーバ830は、デバイス810、820によってアクセスされ、および/またはデータベース840の内容へのアクセスを容易にする、本明細書に記載される画像処理システムを含む、1つもしくは複数のアプリケーションまたはウェブサイトをホストする。データベース840は、サーバ830および/またはデバイス810、820が使用するための、データおよび/または命令(またはコード)を記憶するための、1つまたは複数の記憶デバイスを含む。データベース840およびサーバ830は、各々から、またはデバイス810、820から1つまたは複数の地理的に分散された場所に配置することができる。あるいは、データベース840を、サーバ830内に含むことができる。
【0090】
図9は、例示的な実施形態により提供される方法の1つまたは複数のステップを実行するために使用できる例示的なコンピューティングデバイス900のブロック図である。たとえば、コンピューティングデバイス900は、限定しないが、
図8に記載されるような、デバイス810、820、およびサーバ830であってよい。コンピューティングデバイス900は、例示的な実施形態を実装するための1つまたは複数のコンピュータ実行可能な命令またはソフトウェアを記憶するための、1つまたは複数の非一時的コンピュータ可読媒体を含む。非一時的コンピュータ可読媒体は、限定しないが、1つまたは複数のタイプのハードウェアメモリ、非一時的有形媒体(たとえば、1つまたは複数の磁気記憶ディスク、1つまたは複数の光ディスク、1つまたは複数のUSBフラッシュドライブ)などが挙げられる。たとえば、コンピューティングデバイス900に含まれるメモリ906は、例示的な実施形態を実装するための、コンピュータ可読およびコンピュータ実行可能命令またはソフトウェアを記憶することができる。コンピューティングデバイス900は、メモリ906中に記憶されるコンピュータ可読およびコンピュータ実行可能命令またはソフトウェア、ならびにシステムハードウェアを制御するための他のプログラムを実行するために、プロセッサ902および関連するコア904、ならびに任意選択で、(たとえば、複数のプロセッサ/コアを有するコンピュータシステムの場合に)1つまたは複数の追加のプロセッサ902'および関連するコア904'をやはり含む。プロセッサ902およびプロセッサ902'は、各々、単一コアのプロセッサまたは複数コア(904および904')のプロセッサであってよい。コンピューティングデバイス900は、グラフィックス処理ユニット(GPU)905をやはり含む。いくつかの実施形態では、コンピューティングデバイス900は、複数のGPUを含む。
【0091】
コンピューティングデバイス900に仮想化を採用することができ、その結果、コンピューティングデバイス中のインフラストラクチャーおよびリソースを動的に共有することができる。複数のプロセッサ上で走るプロセスに対処するために仮想マシン914を設けることができ、その結果、プロセスは、複数のコンピューティングリソースではなく、むしろただ1つのコンピューティングリソースを使用しているように見える。複数の仮想マシンを、1つのプロセッサで使用することもできる。
【0092】
メモリ906は、DRAM、SRAM、EDO RAMなどといった、コンピュータシステムメモリまたはランダムアクセスメモリを含むことができる。メモリ906は、同様に、他のタイプのメモリ、またはそれらの組み合せを含むことができる。ユーザは、1つまたは複数のユーザインターフェース919を表示できる、タッチスクリーンディスプレイまたはコンピュータモニタなどといった仮想表示デバイス918を通してコンピューティングデバイス900と相互作用することができる。仮想表示デバイス918は、例示的な実施形態に関連する他の態様、要素、および/もしくは情報またはデータを表示することもできる。コンピューティングデバイス900は、たとえば、キーボード、または任意の好適なマルチポイントタッチインターフェース908、ポインティングデバイス910(たとえば、ペン、スタイラス、マウス、またはトラックパッド)といった、ユーザから入力を受け取るための他のI/Oデバイスを含むことができる。キーボード908およびポインティングデバイス910は、仮想表示デバイス918に結合することができる。コンピューティングデバイス900は、他の好適な従来型I/O周辺機器を含むことができる。
【0093】
コンピューティングデバイス900は、本明細書に記載されるような通知システムの例示的な実施形態を実装する
図1に示されるシステム100の1つまたは複数のモジュールなどといった、ディスプレイ918上にインターフェース919を生成するために実行することができる、データならびにコンピュータ可読命令および/もしくはソフトウェアまたはその部分を記憶するために、ハードドライブ、CD-ROM、または他のコンピュータ可読媒体などといった1つまたは複数の記憶デバイス924を含むこともできる。例示的な記憶デバイス924は、例示的な実施形態を実装するために必要な任意の好適な情報を記憶するための1つまたは複数のデータベースを記憶することもできる。データベースは、データベース中に1つまたは複数の項目を追加、削除、または更新するため、任意の好適な時間に、ユーザによって、または自動的に更新することができる。例示的な記憶デバイス924は、本明細書に記載されるシステムおよび方法の例示的な実施形態を実装するために使用される以前のデータ、および他のデータ/情報を記憶するために、1つまたは複数のデータベース926を記憶することができる。
【0094】
コンピューティングデバイス900は、限定しないが、標準的な電話線、LANまたはWANリンク(たとえば、802.11、T1、T3、56kb、X.25)、広帯域接続(たとえば、ISDN、フレームリレー、ATM)、ワイヤレス接続、コントローラエリアネットワーク(CAN)、または上記の一部または全部のいくつかの組み合せを含む様々な接続を通して、たとえば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)またはインターネットといった1つまたは複数のネットワークで、1つまたは複数のネットワークデバイス922を介してインターフェース接続するように構成されたネットワークインターフェース912を含むことができる。ネットワークインターフェース912は、通信することおよび本明細書に記載される動作を実行することが可能な任意のタイプのネットワークにコンピューティングデバイス900をインターフェース接続するのに好適な、組み込み型ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、ワイヤレスネットワークアダプタ、USBネットワークアダプタ、モデム、または任意の他のデバイスを含むことができる。さらに、コンピューティングデバイス900は、通信が可能であり、本明細書に記載される動作を実行するのに十分なプロセッサパワーおよびメモリ容量を有する、ワークステーション、デスクトップコンピュータ、サーバ、ラップトップ、ハンドヘルドコンピュータ、タブレットコンピュータ(たとえば、iPad(登録商標)タブレットコンピュータ)、モバイルコンピューティングまたは通信デバイス(たとえば、iPhone(登録商標)通信デバイス)、または他の形のコンピューティングまたは遠隔通信デバイスなどといった任意のコンピュータシステムであってよい。
【0095】
コンピューティングデバイス900は、Microsoft(登録商標)Windows(登録商標)オペレーティングシステムのバージョンのいずれか、UnixおよびLinux(登録商標)オペレーティングシステムの様々なリリース、MacintoshコンピュータのためのMacOS(登録商標)の任意のバージョン、任意の組み込み型オペレーティングシステム、任意の実時間オペレーティングシステム、任意のオープンソース型オペレーティングシステム、任意の自社開発のオペレーティングシステム、モバイルコンピューティングのための任意のオペレーティングシステム、またはコンピューティングデバイス上で走り本明細書に記載された動作を実行することが可能な任意の他のオペレーティングシステムなどといった、任意のオペレーティングシステム916を走らせることができる。例示的な実施形態では、オペレーティングシステム916は、ネイティブモードまたはエミュレーションモードで走ることができる。例示的な実施形態では、オペレーティングシステム916は、1つまたは複数のクラウドマシンインスタンス上で走ることができる。
【0096】
例示的な実施形態を記載する際に、明瞭にするために、特有の用語が使用される。記載のために、各特定の用語は、同様の目的を達成するために同様の方法で動作するすべての技術的および機能的等価物を少なくとも含むことが意図される。加えて、特定の例示的な実施形態が複数のシステム要素、デバイス構成要素、または方法ステップを含むいくつかの事例では、それらの要素、構成要素、またはステップは、単一の要素、構成要素、またはステップで置き換えることができる。同様に、単一の要素、構成要素、またはステップは、同じ目的を満たす、複数の要素、構成要素、またはステップで置き換えることができる。さらに、例示的な実施形態がそれらの特定の実施形態を参照して示され記載されている一方で、当業者は、形式および詳細における様々な代替および変更を、本開示の範囲から逸脱することなくそこに行うことができることを理解されよう。それでも依然として、他の実施形態、機能、および利点は、やはり本開示の範囲内である。
【符号の説明】
【0097】
100 画像処理システム
110 機械学習アルゴリズムモジュール
120 トレーニングデータモジュール、トレーニングデータ集合モジュール
130 入力データモジュール
140 出力データモジュール
400 出力画像
410 出力画像
420 出力画像
430 出力画像
500 出力画像
502 色付きの形状
510 出力画像
512 色付きの形状
600 グラフ
710 一連の層、デバイス
715 ロックアイコン
720 初期パラメータの集合、スキャニングデバイス
730 トレーニングデータ集合、サーバ
740 データベース
800 システム
805 ネットワーク
810 デバイス
820 スキャニングデバイス
830 サーバ
840 データベース
900 コンピューティングデバイス
902 プロセッサ
902' プロセッサ
904 コア
904' コア
905 グラフィックス処理ユニット(GPU)
906 メモリ
908 マルチポイントタッチインターフェース、キーボード
910 ポインティングデバイス
912 ネットワークインターフェース
914 仮想マシン
916 オペレーティングシステム
918 視覚表示デバイス、仮想表示デバイス、ディスプレイ
919 インターフェース
920 ネットワークデバイス
924 記憶装置、記憶デバイス
926 データベース
928 マイクロフォン
930 アンテナ
932 画像キャプチャデバイス
【外国語明細書】