(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】クロスドメイン距離学習のシステム及び方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20241216BHJP
G06N 3/08 20230101ALI20241216BHJP
G06N 3/045 20230101ALI20241216BHJP
【FI】
G06T7/00 350C
G06N3/08
G06N3/045
【外国語出願】
(21)【出願番号】P 2020132375
(22)【出願日】2020-08-04
【審査請求日】2023-08-01
(32)【優先日】2019-08-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100135633
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】リウ レン
(72)【発明者】
【氏名】マオ イェ
(72)【発明者】
【氏名】ヂーシン ヤン
【審査官】山田 辰美
(56)【参考文献】
【文献】米国特許出願公開第2017/0169315(US,A1)
【文献】米国特許出願公開第2019/0188537(US,A1)
【文献】特表2018-536244(JP,A)
【文献】米国特許出願公開第2019/0147221(US,A1)
【文献】特開2017-142780(JP,A)
【文献】特開2019-079469(JP,A)
【文献】Tang Lee et al.,Cross-Domain Image-Based 3D Shape Retrieval by View Sequence Learning,2018 International Conference on 3D Vision (3DV),米国,IEEE,2018年09月05日,p.258-p.266,https://ieeexplore.ieee.org/document/8490976
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06N 3/08
G06N 3/045
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
畳み込みニューラルネットワーク(CNN)の方法であって、
第1のCNNに提供されるアンカー画像に応答して意味空間内でアンカーベクトルを生成するステップであって、前記アンカー画像は2次元RGB画像であり、前記第1のCNNは、1つ以上の第1の畳み込み層、1つ以上の第1の最大プーリング層、第1の平坦化層、第1のドロップアウト層及び第1の全結合層を含む、ステップと、
第2のCNNに提供される負の画像及び正の画像に応答して前記意味空間内で正のベクトル及び負のベクトルを生成するステップであって、前記負の画像は第1の3次元CAD画像であり、前記正の画像は第2の3次元CAD画像であり、前記第2のCNNは、1つ以上の第2の畳み込み層、1つ以上の第2の最大プーリング層、第2の平坦化層、第2のドロップアウト層及び第2の全結合層を含む、ステップと、
前記アンカーベクトル、前記正のベクトル及び前記負のベクトルを用いて前記意味空間内で画像特徴を抽出するように動作可能なクロスドメイン深層距離学習アルゴリズムを適用するステップと、
前記意味空間内で抽出された前記画像特徴を分析することにより段階認識を行うステップと、
を含む方法。
【請求項2】
畳み込みニューラルネットワーク(CNN)の方法であって、
第1のCNNに提供されるアンカー画像に応答して意味空間内でアンカーベクトルを生成するステップであって、前記アンカー画像は2次元RGB画像であり、前記第1のCNNは、1つ以上の第1の畳み込み層、1つ以上の第1の最大プーリング層、第1の平坦化層、第1のドロップアウト層及び第1の全結合層を含む、ステップと、
第2のCNNに提供される負の画像及び正の画像に応答して前記意味空間内で正のベクトル及び負のベクトルを生成するステップであって、前記負の画像は第1の3次元CAD画像であり、前記正の画像は第2の3次元CAD画像であり、前記第2のCNNは、1つ以上の第2の畳み込み層、1つ以上の第2の最大プーリング層、第2の平坦化層、第2のドロップアウト層及び第2の全結合層を含む、ステップと、
前記アンカーベクトル、前記正のベクトル及び前記負のベクトルを用いて前記意味空間内で画像特徴を抽出するように動作可能なクロスドメイン深層距離学習アルゴリズムを適用するステップと、
前記意味空間内での前記画像特徴の分析に基づいて無効な修復シーケンスが発生したかどうかを判別するステップと、
を含む方法。
【請求項3】
前記クロスドメイン深層距離学習アルゴリズムは、前記意味空間内の前記アンカーベクトルと前記正のベクトルとの間の第1の距離を小さくし、かつ、前記意味空間内の前記アンカーベクトルと前記負のベクトルとの間の第2の距離を大きくするように動作可能なTripletLossアルゴリズムである、請求項1
又は2に記載の方法。
【請求項4】
前記1つ以上の第1の畳み込み層及び前記1つ以上の第2の畳み込み層は、1つ以上の活性化関数を適用するように動作可能である、請求項1
又は2に記載の方法。
【請求項5】
前記1つ以上の活性化関数は、正規化線形ユニットを用いて実装される、請求項
4に記載の方法。
【請求項6】
前記第1のCNN及び前記第2のCNNは、1つ以上の正規化層をさらに含む、請求項
4に記載の方法。
【請求項7】
前記第2のCNNは、シャムネットワークを用いて設計されている、請求項1
又は2に記載の方法。
【請求項8】
前記第1のCNN及び前記第2のCNNは、スキップコネクションアーキテクチャを利用する、請求項1
又は2に記載の方法。
【請求項9】
拡張現実システムであって、
1つ以上のRGB画像を取得するように動作可能な視覚化装置と、
コントローラと、
を含み、
前記コントローラは、第1のCNNに提供されるアンカー画像に応答して意味空間内でアンカーベクトルを生成するように動作可能であり、前記アンカー画像は2次元RGB画像であり、前記第1のCNNは、1つ以上の第1の畳み込み層、1つ以上の第1の最大プーリング層、第1の平坦化層、第1のドロップアウト層及び第1の全結合層を含み、
前記コントローラは、第2のCNNに提供される負の画像及び正の画像に応答して前記意味空間内で正のベクトル及び負のベクトルを生成するように動作可能であり、前記負の画像は第1の3次元CAD画像であり、前記正の画像は第2の3次元CAD画像であり、前記第2のCNNは、1つ以上の第2の畳み込み層、1つ以上の第2の最大プーリング層、第2の平坦化層、第2のドロップアウト層及び第2の全結合層を含み、
前記コントローラは、前記アンカーベクトル、前記正のベクトル及び前記負のベクトルを用いて前記意味空間内で画像特徴を抽出するように動作可能なクロスドメイン深層距離学習アルゴリズムを適用するように動作可能であ
り、
前記コントローラは、作業手順の現在の段階を判別するように動作可能である、
拡張現実システム。
【請求項10】
前記コントローラは、前記1つ以上のRGB画像内の画像オブジェクトの姿勢を判別するようにさらに動作可能である、請求項
9に記載の拡張現実システム。
【請求項11】
前記コントローラは、前記意味空間内の前記アンカーベクトルと前記正のベクトルとの間の第1の距離を小さくし、かつ、前記意味空間内の前記アンカーベクトルと前記負のベクトルとの間の第2の距離を大きくするようにさらに動作可能である、請求項
9に記載の拡張現実システム。
【請求項12】
前記コントローラは、前記作業手順の前記現在の段階に基づいて前記視覚化装置に命令を表示するようにさらに動作可能である、請求項
9に記載の拡張現実システム。
【請求項13】
前記第2のCNNは、シャムネットワークを用いて設計されている、請求項
9に記載の拡張現実システム。
【請求項14】
拡張現実の方法であって、
第1のCNNに提供されるアンカー画像に応答して意味空間内でアンカーベクトルを生成するステップであって、前記アンカー画像は2次元RGB画像であり、前記第1のCNNは、1つ以上の第1の畳み込み層、1つ以上の第1の最大プーリング層、第1の平坦化層、第1のドロップアウト層及び第1の全結合層を含む、ステップと、
第2のCNNに提供される負の画像及び正の画像に応答して前記意味空間内で正のベクトル及び負のベクトルを生成するステップであって、前記負の画像は第1の3次元CAD画像であり、前記正の画像は第2の3次元CAD画像であり、前記第2のCNNは、1つ以上の第2の畳み込み層、1つ以上の第2の最大プーリング層、第2の平坦化層、第2のドロップアウト層及び第2の全結合層を含む、ステップと、
前記アンカーベクトル、前記正のベクトル及び前記負のベクトルを用いて異なるモダリティから1つ以上の画像特徴を抽出するステップと、
前記意味空間内で抽出された前記画像特徴を分析することにより段階認識を行うステップと、
を含む方法。
【請求項15】
拡張現実の方法であって、
第1のCNNに提供されるアンカー画像に応答して意味空間内でアンカーベクトルを生成するステップであって、前記アンカー画像は2次元RGB画像であり、前記第1のCNNは、1つ以上の第1の畳み込み層、1つ以上の第1の最大プーリング層、第1の平坦化層、第1のドロップアウト層及び第1の全結合層を含む、ステップと、
第2のCNNに提供される負の画像及び正の画像に応答して前記意味空間内で正のベクトル及び負のベクトルを生成するステップであって、前記負の画像は第1の3次元CAD画像であり、前記正の画像は第2の3次元CAD画像であり、前記第2のCNNは、1つ以上の第2の畳み込み層、1つ以上の第2の最大プーリング層、第2の平坦化層、第2のドロップアウト層及び第2の全結合層を含む、ステップと、
前記アンカーベクトル、前記正のベクトル及び前記負のベクトルを用いて異なるモダリティから1つ以上の画像特徴を抽出するステップと、
前記意味空間内での前記画像特徴の分析に基づいて無効な修復シーケンスが発生したかどうかを判別するステップと、
を含む方法。
【請求項16】
前記意味空間内の前記アンカーベクトルと前記正のベクトルとの間の第1の距離を小さくし、かつ、前記意味空間内の前記アンカーベクトルと前記負のベクトルとの間の第2の距離を大きくするように動作可能なTripletLossアルゴリズムを適用するステップをさらに含む、請求項
14又は15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下は、概して、機械学習拡張現実(AR)のシステム及び方法に関する。
【背景技術】
【0002】
発明の背景
概して、機械学習(ML)アルゴリズムは、パターン及び推論を用いて所定の課題を実行するように動作可能である。一般に、機械学習アルゴリズムは、要求される課題を実行するように明確にプログラミングされることなく予測又は決定を行う「訓練用データ」に依存する数学的モデルに基づいている。
【発明の概要】
【課題を解決するための手段】
【0003】
発明の概要
一実施形態において、1つ以上の畳み込みニューラルネットワーク(CNN)を処理するように動作可能なコントローラと、1つ以上の2次元RGB画像を取得するように動作可能な視覚化装置とを含み得る拡張現実システム(ARシステム)及び拡張現実の方法を開示する。コントローラはまた、第1の畳み込みニューラルネットワーク(CNN)に提供されるアンカー画像に応答して意味空間内でアンカーベクトルを生成し得る。アンカー画像は、視覚化装置により取得された2次元RGB画像のうちの1つであるものとするとよい。コントローラはまた、第2のCNNに提供された負の画像及び正の画像に応答して意味空間内で正のベクトル及び負のベクトルを生成し得る。負の画像は、第1の3次元コンピュータ支援設計(CAD)画像であるものとするとよく、正の画像は、第2の3次元CAD画像であるものとするとよい。第1のCAD画像及び第2のCAD画像の両方が、データベースからARシステムに提供可能である。
【0004】
第1のCNN及び第2のCNNは、1つ以上の第1及び第2の畳み込み層、1つ以上の第1及び第2の最大プーリング層、第1及び第2の平坦化層、第1及び第2のドロップアウト層並びに第1及び第2の全結合層を含み得ることが考えられる。コントローラは、アンカー画像、正の画像及び負の画像を用いて意味空間内で画像特徴を抽出するように動作可能なクロスドメイン深層距離学習アルゴリズムを適用し得ることも考えられる。さらに、コントローラは、アンカーベクトル、正のベクトル及び負のベクトルを用いて異なるモダリティから1つ以上の画像特徴を抽出するように動作可能であり得ることも考えられる。
【0005】
クロスドメイン深層距離学習アルゴリズムは、意味空間内のアンカーベクトルと正のベクトルとの間の第1の距離を小さくし、かつ、意味空間内のアンカーベクトルと負のベクトルとの間の第2の距離を大きくするように動作可能なTripletLossアルゴリズムとして実装可能である。また、第1のCNN及び第2のCNN内に含まれる畳み込み層は、正規化線形ユニットを含み得る1つ以上の活性化関数を用いて実装可能である。
【0006】
第1のCNN及び第2のCNNがスキップコネクションアーキテクチャを利用し得ることが考えられる。第2のCNNはシャムネットワークとして設計可能である。コントローラは、意味空間内で抽出された画像特徴を分析することにより段階認識を行うことが可能である。最後に、コントローラはまた、意味空間内での画像特徴の分析に基づいて無効な修復シーケンスが発生したかどうかを判別するように動作可能であり得る。
【0007】
コントローラは、1つ以上のRGB画像内の画像オブジェクトの姿勢を判別するようにさらに動作可能であるものとし得ることが考えられる。コントローラは、後処理画像アルゴリズムを1つ以上のRGB画像に適用するものとしてもよい。
【図面の簡単な説明】
【0008】
【
図1】一実施形態による例示的な拡張現実(AR)システムである。
【
図2A】深層学習ネットワークにより適用されるTripletLoss関数の学習処理を例示的に示す図である。
【
図2B】深層学習ネットワークにより適用されるTripletLoss関数の学習処理を例示的に示す図である。
【
図3】訓練フェーズ中に動作する畳み込みニューラルネットワークを例示的に示す図である。
【
図4】試験フェーズ又は実行時フェーズ中に動作する畳み込みニューラルネットワークを例示的に示す図である。
【
図5】無効段階検出処理中に処理されるRGB画像を示す図である。
【
図6】RGB画像から各部分を識別するためのバウンディングボックスを示す図である。
【発明を実施するための形態】
【0009】
詳細な説明
詳細な各実施形態を必要に応じて本明細書に開示する。しかしながら、開示する実施形態は例示的なものにすぎず、様々な代替的形態により具現化可能であることを理解されたい。各図は、必ずしも縮尺通りでなく、いくつかの構成は、特定の構成要素の詳細を示すために、実際よりも大きくされ又は最小化されている場合がある。従って、本明細書に開示する特定の構造的詳細及び機能的詳細は、限定的な基礎としてではなく、ここでの各実施形態の様々な態様での使用を当業者に教示するための代表的な基礎としてのみ解釈されるべきである。
【0010】
作業手順の異なる状態又は段階(例えば、車両を修理するのに必要な正しい段階)を認識するように動作可能な視覚ベースのARシステムが所望され得ることが考えられる。視覚ベースのARシステムは、手順全体の3次元(3D)モデル(例えば、車両及び車両部分のサブセットの3Dモデル)を用いて異なる段階を認識するように動作可能であるものとするとよい。ARシステムが、異なるドメインから入力データを受信し、かつ、その入力データを高次元の特徴ベクトルとして符号化する機械学習アルゴリズムを利用し得ることが考えられる。また、機械学習アルゴリズムは、距離測定のために、符号化された特徴を1つの意味空間に変換するように動作可能であるものとするとよい。
【0011】
図1は、例示的な一実施形態によるARシステム100を示している。クライアントシステム110は、ユーザが装着した際に、1つ以上の2次元RGB画像113(即ち、2次元カラー画像)を撮像するように動作可能であり得る視覚化装置112を含み得る。例えば、視覚化装置112は、RGB画像113を撮像するように動作可能な一体化デジタルカメラ又はビデオカメラ(例えば、デジタル一眼レフカメラ又はミラーレスデジタルカメラ)を含む、1組のAR眼鏡を含み得る。
【0012】
クライアントシステム110は、さらに、コントローラ114及びメモリ116を含み得る。コントローラ114は、コマンドを処理する1つ以上の演算装置、例えば、クアッドコアプロセッサ、コンピュータプロセッサ、マイクロプロセッサ、又は、本明細書において考察する演算を実行可能な任意の他の装置、一連の装置若しくは他の機構であるものとしてよい。メモリ116は、命令及びコマンドを格納するように動作可能であるものとするとよい。命令は、ソフトウェア、ファームウェア、コンピュータコード、又は、これらの何らかの組合せの形態であるものとしてもよい。メモリ116は、任意の形態の1つ以上のデータ記憶装置、例えば、揮発性メモリ、不揮発性メモリ、電子メモリ、磁気メモリ、光メモリ、又は、任意の他の形態のデータ記憶装置であるものとしてよい。メモリ116は、クライアントシステム110の内部にあるものとしてよく(例えば、DDRメモリ)、又は、メモリは、リムーバブルメモリ部品(例えば、マイクロSDカードメモリ)を含むものとしてもよい。
【0013】
RGB画像113は、コントローラ114によるさらなる処理のために視覚化装置112により撮像され得る。例えば、コントローラ114は、VisualOdometryアルゴリズム、同時位置特定及び地図作成(SLAM)アルゴリズム、及び/又は、モデルベーストラッキングアルゴリズムを用いて、RGB画像113に撮像されたオブジェクトの位置及び向き(即ち、姿勢)を判別するように動作可能であるものとするとよい。
【0014】
クライアントシステム110は、サーバシステム120に接続可能であり、これと通信可能である。例えば、クライアントシステム110は、有線ネットワーク(例えば、LAN)を用いて、又は、無線ネットワーク通信(例えば、Wi-Fi、セルラ、Bluetooth又はZigbee)を用いて、データを送受信するように動作可能なクライアント通信機118を含み得る。サーバシステム120は、有線ネットワーク(例えば、LAN)を用いて、又は、無線ネットワーク通信(例えば、Wi-Fi、セルラ、Bluetooth又はZigbee)を用いて、やはりデータを送受信するように動作可能なサーバ通信機122を含み得る。クライアント通信機118は、データ、例えば、RGB画像113及び姿勢データを、サーバ通信機122に送信するように動作可能であるものとし得ることが考えられる。なお、クライアントシステム110及びサーバシステム120が1つのユニットに含まれ、従って、クライアント通信機118及びサーバ通信機122を設けることが要求されない場合があることもさらに考えられる。
【0015】
サーバシステム120は、メモリ116と同様の、クライアントシステム110から受信したRGB画像113及び姿勢データを格納するメモリ126も含み得ることが考えられる。サーバシステム120は、コントローラ114と同様に、後処理アルゴリズムをRGB画像113について実行するように動作可能なコントローラ124も含み得る。サーバシステム120はまた、対象作業手順の3次元コンピュータ支援設計(3D-CAD)モデル(即ち、3D画像)を格納するデータベース128に接続可能であり、これと通信可能である。サーバシステム120は、サーバ通信機122を用いてデータベース128と通信することもできる。データベース128がサーバシステム120内に含まれ、従って、サーバ通信機122を設けることが要求されない場合があることも考えられる。コントローラ124は、3D-CADモデルの1つ以上のノーマルマップ画像を生成するコンピュータグラフィックレンダリングアルゴリズムを適用するように動作可能であるものとするとよく、当該ノーマルマップ画像は、クライアントシステム110から受信した姿勢データによって規定されるビューに基づいて、RGB画像113と比較可能である。コントローラ124はまた、クライアントシステム110から受信したRGB画像113に後処理画像アルゴリズムを適用するように動作可能であるものとしてもよい。
【0016】
コントローラ124はまた、1つ以上の深層ニューラルネットワーク(DNN)アルゴリズムを適用するように動作可能であるものとしてよい。コントローラ124は、ノーマルマップ画像及びRGB画像113を用いて作業手順の状態(例えば、現在の段階)を予測するDNN状態予測アルゴリズムを適用可能であることが考えられる。サーバシステム120は、クライアントシステム110に、視覚化装置112により視覚的に表示可能な命令を返送することができる。
【0017】
DNNは、画像認識アプリケーションを扱う畳み込み層及びプーリング層を含む畳み込みニューラルネットワーク(CNN)であるものとし得ることが考えられる。CNNは、ファイングレインド分類(fine-grained classification)のために双線形特徴ベクトルを取得するように動作可能な2分岐のCNNであるものとするとよい。CNNは、固有の特徴を学習して所定の画像の複数のファイングレインドカテゴリ(fine-grained category)を比較するように動作可能であるものとしてもよい。機械学習アルゴリズムが重要な関心領域(ROI)における小さい変動量を捕捉し、かつ、ノイズが入った背景画像、照明及び視点の変化を回避するように動作可能であり得ることも考えられる。コントローラ124が、認識処理を訓練フェーズ中に提供される手順のみに限定しないことにより、CNNの性能をさらに向上させるために深層距離学習(例えば、クロスドメイン深層距離学習)を利用するように動作可能であり得ることがさらに考えられる。
【0018】
例えば、コントローラ124は、ユーザが実行している現在の段階を判別するCNNを利用し、かつ、ユーザが実行しなければならない次の段階の命令を提供する(即ち、「段階認識」)ように動作可能であるものとするとよい。コントローラ124は、ユーザの行動が予め格納された段階のシーケンスから逸脱しているかどうかを検出する(即ち、「無効段階検出」)ためにCNNを利用するように動作可能であるものとしてもよい。ユーザが無効な段階を実行したことを検出すると、コントローラ124は、既に行われた正しくない行動をどのように是正するかをユーザに通知するための命令をクライアントシステム110に送信することができる。コントローラ124は、評価される対象作業手順に対応する、データベース128に格納された3D-CADモデルを用いて「段階認識」及び「無効段階検出」を実行するように動作可能であるものとし得ることが考えられる。
【0019】
CNNが、視覚化装置112により取得された2D RGB画像113とデータベース128に格納された3D-CADデータとの間の類似性測定値を決定するように訓練されるクロスドメイン深層距離学習アルゴリズムとして設計可能であることが考えられる。CNNを訓練することにより、コントローラ124は、以下の方程式(1)により表されるTripletLossアルゴリズムの変形を用いて元のデータ(即ち、元の2D画像及び3D CADモデル)と意味空間に変換されたデータとの間の類似性又は距離を比較するように動作可能であるものとするとよい。
【0020】
【0021】
ここで、Ltripletは、計算されたTripletLoss関数であり、fRGBは、RGB画像113のCNN特徴符号化の分岐であり、fnormalは、データベース128に3D CADモデルとして格納されたノーマルマップ画像から特徴を抽出するTripletLoss関数の分岐である。TripletLoss関数が、アンカー画像、正の画像及び負の画像を含む特徴ベクトルのトリプレットに作用し得ることが考えられる。
【0022】
図2A及び
図2Bは、TripletLossアルゴリズムを用いてCNNがどのように訓練され得るかを例示的に示した図である。この場合も、アンカー画像210、正の画像220及び負の画像230を含む画像のトリプレットが生成可能である。
図2Aは、正の画像220からアンカー画像210までの距離が負の画像230からアンカー画像210までの距離よりも長いことを示している。
図2Bに示すように、CNNは、TripletLoss関数(方程式1)を適用してアンカー画像210と正の画像220との間のベクトル距離を小さくし、かつ、アンカー画像210と負の画像230との間の距離を大きくすることができる。
【0023】
図3は、TripletLossアルゴリズムで使用可能なアンカー画像310、正の画像320及び負の画像330を示している。図示されるように、クライアントシステム110により取得された複数のRGB画像113のうちの1つが、アンカー画像310として割り当て可能となる。次に、CNNは、データベース128内に格納された3D-CADモデルにより生成されて予め格納されたノーマルマップ画像から、正の画像320及び負の画像330を受信することができる。CNNアルゴリズムは、意味空間内でアンカー画像310及びノーマルマップ画像(即ち、正の画像320及び負の画像330)から特徴を抽出するように訓練可能である。
【0024】
コントローラ124は、クライアントシステム110により取得されたRGB画像113とデータベース128内に3D-CADモデルとして格納されたノーマルマップ画像とから高次元の特徴を抽出する2分岐のCNNを実行するように動作可能であるものとし得ることも考えられる。CNNの各分岐が、様々なサイズ(例えば、3×3又は5×5)のカーネルを有する1つ以上の畳み込み層を含み得ることが考えられる。カーネルの数及びサイズは、所定のアプリケーションに応じて調整可能である。
【0025】
CNNが、活性化関数としての正規化線形ユニット(ReLU)又はハイパボリックタンジェント(tanh)を利用する1つ以上の畳み込み層、CNNの性能及び安定性を向上させるように動作可能な1つ以上の正規化層、並びに、次元を低減することが可能な最大プーリング層を含み得ることも考えられる。CNNは、対象データの分散の複雑さに基づいて1つ以上のスタックモジュールを含み得る。CNNは、CNNの1つの層の出力がCNNの次に続く層に直接入力されない場合を有するスキップコネクションアーキテクチャを利用することもできる。これに代えて、スキップコネクションアーキテクチャによって、1つの層の出力を非順次層の入力に関連づけ可能であるものとしてもよい。
【0026】
以下の表1は、8,468,784個のパラメータを有する設計を含み得る1つの分岐に対して、CNNが使用可能な例示的な構造を示している。
【表1】
【0027】
示されるように、CNNは、1つ以上の畳み込み層、1つ以上の最大プーリング層、平坦化層、ドロップアウト層及び高密度層(即ち、全結合層又は線形層)を含み得る。CNNの各層に入力されるデータのサイズ(即ち、「入力サイズ」)、及び、CNNの所定の層により出力される対応するデータのサイズ(即ち、「出力サイズ」)が示されている。各畳み込み層のカーネルサイズは、異なり得ることが考えられるが、所定のアプリケーションによっては、カーネルサイズが同等であり得ることも考えられる。また、CNNは、畳み込み層ごとにReLU活性化関数を利用するものとしてもよい。なお、活性化関数は、所定のアプリケーションに基づいて可変であり、CNNは、他の既知の活性化関数(例えば、tanh活性化関数)を利用し得ることが考えられる。
【0028】
図4は、訓練フェーズ中に利用可能な2分岐のCNN400を示している。CNN400は、
図4に示すアーキテクチャに従って設計可能であることが考えられる。層の数、各層のサイズ、及び、活性化関数は、所定のアプリケーションに応じて可変であることが考えられる。
【0029】
CNN400は、アンカー画像420を入力データ(例えば、RGB画像113)として受信可能なRGBネットワーク410を有する分岐を含み得る。RGBネットワーク410は、CNNの分岐を表す関数fRGBを、複数のRGB画像113のうちの1つのRGB画像の特徴符号化に適用することができる。CNN400は、入力データとして正の画像440及び負の画像450(例えば、データベース128内に格納された複数の3D-CADモデルのうちの1つ)を受信可能な正規化ネットワーク430を有する分岐も含み得る。
【0030】
RGBネットワーク410の出力データは、RGB符号化特徴460に提供可能である。また、正規化ネットワーク430の出力データは、正の符号化特徴470及び負の符号化特徴480に提供可能である。次に、(上記方程式1を参照して考察した)TripletLossアルゴリズム490を利用して、アンカー画像420と正の画像440との間のベクトル距離を小さくし、かつ、アンカー画像420と負の画像450との間のベクトル距離を大きくすることができる。
【0031】
正規化ネットワーク430は、形成された正の画像440及び負の画像450の互いに異なるベクトル距離を演算するために協働して動作することが可能である「シャムネットワーク(Siamese Network)」として実装し得ることが考えられる。RGBネットワーク410及び正規化ネットワーク430は、所定のアプリケーションに応じて異なる訓練用データを利用する異なる層(即ち、畳み込み層、最大プーリング層、平坦化層、ドロップアウト層、認識層及び高密度層)を含み得ることも考えられる。
【0032】
図5は、試験フェーズ又は実行時動作中に利用可能なCNN500を示している。CNN500も「シャムネットワーク」を用いて設計することができるが、所定のアプリケーションに応じて他のネットワーク設計も使用可能であることが考えられる。RGBネットワーク510及び正規化ネットワーク530は、所定のアプリケーションに応じて畳み込み層、最大プーリング層、平坦化層、ドロップアウト層及び高密度層の異なる変形形態を含み得ることが考えられる。
【0033】
RGBネットワーク510(即ち、fRGB)に、入力としてRGB画像520を提供することができる。この場合も、RGB画像520は、クライアントシステム110により受信されたRGB画像113であるものとしてよい。CNN500は、訓練フェーズ中に抽出される1つ以上の正規化画像540を受信する正規化ネットワーク530(fnormalization)も含み得る。RGBネットワーク510は、出力ベクトルデータをRGB符号化特徴550に提供可能であり、正規化ネットワーク530は、出力ベクトルデータを1つ以上のノーマル符号化特徴560、570に提供可能である。
【0034】
次に、CNN500は、RGB符号化特徴550及び1つ以上のノーマル符号化特徴560、570により、提供された出力ベクトルデータを用いて、正規化画像540の特徴ベクトル及びRGB画像520内で符号化された特徴ベクトルから、距離ベクトル580のセットを演算することができる。次に、CNN500は、意味空間内で最も短い距離を有する距離ベクトルを選択することができる。
【0035】
この場合も、CNNは、ユーザにより実行される所定の段階又はシーケンスが手順のいずれの段階にも一致しない可能性があることを示す「無効な」状態を検出するように動作可能であるものとし得ることが考えられる。CNNは、無効状態がユーザにより実行された正しくない演算シーケンスの結果であった可能性があると判定することができる。クライアントシステム110により取得されたRGB画像113を分析することにより、CNNは、手順の決定的(critical)部分を分析して無効状態を認識し得ることが考えられる。
【0036】
図6は、クライアントシステム110により取得されてサーバシステム120に送信され得るRGB画像600を示している。コントローラ124は、RGB画像600を処理して、ユーザによる無効な演算に起因する予測されない部分を検出することができる。例えば、コントローラは、各部分の存在又は不存在につきRGB画像600を用いて画像クロッピングアルゴリズムを適用し、第1のバウンディングボックス610、第2のバウンディングボックス620、第3のバウンディングボックス630及び第4のバウンディングボックス640を生成することができる。次に、CNNは、RGB画像600内の各部分の存在又は不存在に基づいて無効状態が存在するかどうかを判定することができる。又は、CNNは、RGB画像600内の各部分の存在若しくは不存在に基づいて、ユーザが正しくない段階を実行したかどうかを判定することもできる。
【0037】
RGB画像600内の当該部分の存在又は不存在は、
図4に関連した考察したTripletLossアルゴリズムを用いて訓練される2分岐のCNNネットワークにより処理可能であることが考えられる。コントローラ124が、データベース128内に格納された1つ以上の3D-CADモデルを用いる画像クロッピングアルゴリズムを適用し、本質的部分又は決定的(critical)部分として予めプログラミング可能なものにつき1つ以上の3D-バウンディングボックス(例えば、第1のバウンディングボックス610)を生成するように動作可能であるものとし得ることが考えられる。CNNを訓練及び試験するときに、現在の姿勢に基づいて3D-バウンディングボックスを画像空間に投影し得ることが考えられる。また、3D-バウンディングボックスの2次元投影をCNNにより用いて、特定の部分を含む可能性があるRGB画像600内の関心領域を画定し得ることも考えられる。当該部分は、CNNにより所定の関心領域に基づいてRGB画像600をクロッピングし、クロッピングした画像をレンダリングすることにより生成可能である。
【0038】
CNNが複数の3Dバウンディングボックスのうちの1つ(例えば、第1のバウンディングボックス610)をアンカー画像として利用し得ることも考えられる。データベース128により提供されたアンカー画像並びに負及び正の画像を用いて、CNN400が無効段階認識処理を利用するように訓練することも考えられる。訓練フェーズ中に、アンカー画像と正の画像とは、同一部分を含み得るのに対して、負の画像は、アンカー画像とは同一でない部分を含み得る。この場合も、アンカー画像、正の画像及び負の画像を用いるTripletLossアルゴリズムを利用して、所定の関心領域内にある一部分が検出された場合又は存在しない場合を判別するように、CNN400を訓練し得ることが考えられる。
【0039】
訓練が行われると、CNN500は、試験フェーズ又は実行時動作中の無効な段階又は正しくない段階の検出を提供するために利用することが可能となる。試験又は実行時動作により、撮像画像(例えば、クライアントシステム110が受信したRGB画像113)をクロッピングして種々の部分とすることができる。この場合、CNNは、画像中の当該部分を2つ以上のノーマルマップ画像中の対応する区域と比較するように動作可能であるものとするとよい。一方のノーマルマップ画像が当該部分を含み、他方のノーマル画像が当該部分を含まない場合があることが考えられる。画像から抽出された特徴が当該部分を含むノーマルマップ画像により近い場合、CNNは当該部分が検出されたと判定することができる。撮像画像から抽出された特徴が当該部分を含まないノーマルマップ画像により近い場合、CNNは、当該部分が検出されなかった(即ち、「なし」)と判定することができる。
【0040】
以下の表2は、無効段階認識処理中にCNN500により生成され得る出力を示している。
【表2】
【0041】
示されるように、CNN500は、2つ以上の画像(例えば、画像1、画像2、画像3、画像4)について無効段階認識処理を利用することができる。例えば、表2は、CNN500が、「画像1」につき、「部分1」から「部分5」に、「検出、検出、なし、なし、なし」という出力を生成し得ることを示している。これらの出力に基づいて、無効段階認識処理は、出力を標準的な修復段階にマッピングするように動作可能であるものとするとよい。示されるように、画像1、画像2及び画像3については、無効段階認識処理により、無効な段階が行われなかったと判定されている。換言すれば、画像1乃至画像3については、ユーザが正しいシーケンスの修復段階に従っていたと、CNN500により判定されている。
【0042】
しかし、「画像4」については、無効段階認識処理により「無効状態」が発生したと判定されている。ユーザが誤って正しくない修復シーケンスを実行したために、無効状態の出力が生成された可能性がある。例えば、修復シーケンスにおける第4の段階は、「部分1」を「検出」するように要求することがあり得る。CNN500は、「部分1」の存在を検出しなかったので、無効なシーケンスが検出されたのである。これに代えて、ユーザが正しい修復シーケンスから或る部分を誤って再追加しようとした場合にも、無効状態が生成され得る。例えば、「部分1」が現在、追加部分(例えば、部分5)の背後にあり又は追加部分によって遮られているために、画像5につき「部分1」が不存在として検出されることがあり得る。「部分1」が見えないため、無効段階認識処理により、さらに「無効状態」が出力され得る。なぜなら、後の修復シーケンスとなるまで、「部分5」の再構築が要求されなかったからである。
【0043】
本明細書に開示する処理、方法又はアルゴリズムは、任意の既存のプログラミング可能な電子制御ユニット又は専用の電子制御ユニットを含み得る処理装置、コントローラ又はコンピュータに伝送可能であり、及び/又は、これらに実装可能である。同様に、処理、方法又はアルゴリズムは、書き込み不可能な記憶媒体、例えば、ROM装置に持続的に格納される情報、及び、書き込み可能な媒体、例えば、フロッピーディスク、磁気テープ、CD、RAM装置、並びに、他の磁気及び光媒体に変更可能に格納されている情報を含むがこれらに限定されない多くの形態により、コントローラ又はコンピュータにより実行可能なデータ、ロジック及び命令として格納可能である。処理、方法又はアルゴリズムはソフトウェアで実行可能なオブジェクトにも実装可能である。これに代えて、処理、方法又はアルゴリズムは、好適なハードウェア部品、例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、状態マシン、コントローラ、又は、他のハードウェア部品若しくは装置、又は、ハードウェア部品、ソフトウェア部品及びファームウェア部品の組合せを用いて、全体的又は部分的に具現化可能である。
【0044】
例示的な複数の実施形態を上記において説明したが、これらの実施形態によって、本発明の、考えられる総ての形態を説明することは、意図していない。むしろ、本明細書において用いている語句は、限定ではなく説明のためのものであり、本発明の趣旨及び範囲から逸脱することなく、様々な変更を行い得ることが理解される。さらに、様々な実施形態の特徴を組み合わせて、本発明のさらなる実施形態を形成することができる。