IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エントルピー インコーポレーテッドの特許一覧

<>
  • 特表-単眼姿勢推定及び補正 図1A
  • 特表-単眼姿勢推定及び補正 図1B
  • 特表-単眼姿勢推定及び補正 図2A
  • 特表-単眼姿勢推定及び補正 図2B
  • 特表-単眼姿勢推定及び補正 図2C
  • 特表-単眼姿勢推定及び補正 図2D
  • 特表-単眼姿勢推定及び補正 図2E
  • 特表-単眼姿勢推定及び補正 図3
  • 特表-単眼姿勢推定及び補正 図4
  • 特表-単眼姿勢推定及び補正 図5
  • 特表-単眼姿勢推定及び補正 図6
  • 特表-単眼姿勢推定及び補正 図7A
  • 特表-単眼姿勢推定及び補正 図7B
  • 特表-単眼姿勢推定及び補正 図7C
  • 特表-単眼姿勢推定及び補正 図8
  • 特表-単眼姿勢推定及び補正 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-21
(54)【発明の名称】単眼姿勢推定及び補正
(51)【国際特許分類】
   G06T 1/00 20060101AFI20250214BHJP
【FI】
G06T1/00 500A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024513959
(86)(22)【出願日】2022-09-02
(85)【翻訳文提出日】2024-04-16
(86)【国際出願番号】 US2022042416
(87)【国際公開番号】W WO2023034548
(87)【国際公開日】2023-03-09
(31)【優先権主張番号】202121039730
(32)【優先日】2021-09-02
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】17/503,549
(32)【優先日】2021-10-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】522160790
【氏名又は名称】エントルピー インコーポレーテッド
(74)【代理人】
【識別番号】100109896
【弁理士】
【氏名又は名称】森 友宏
(72)【発明者】
【氏名】サンガッパー,ヘマンス クマル
(72)【発明者】
【氏名】エイマン,ジャイスワル
(72)【発明者】
【氏名】シールバント,ローアン
(72)【発明者】
【氏名】シャルマ,アシュレシュ
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057BA02
5B057CA01
5B057CA08
5B057CA12
5B057CA16
5B057CB01
5B057CB08
5B057CB12
5B057CB16
5B057CD02
5B057CD03
5B057DA07
5B057DA08
5B057DB03
5B057DC40
(57)【要約】
様々な実施形態が姿勢補正エンジン(「エンジン」)に向けられている。エンジンは注目対象物の基準画像を生成する。基準画像は第1の姿勢を取る注目対象物を描写している。エンジンは対象物の実例のソース画像を受信する。ソース画像は第1の姿勢から変化した姿勢を取る対象物の実例を描写している。エンジンは、基準画像の第1の姿勢とソース画像の第1の姿勢から変化した姿勢との間の相違点を決定する。エンジンは、決定された相違点に基づいて、ソース画像に描写された第1の姿勢から変化した姿勢により不明瞭になった対象物の形状の3次元(3D)マップの1以上の部分を特定する。エンジンは、ソース画像の少なくとも一部と対象物の形状の3Dマップの少なくとも1つの特定された部分とを描写する対象物の実例の姿勢補正画像を生成する。
【選択図】図3
【特許請求の範囲】
【請求項1】
コンピュータにより実施される方法であって、
第1の姿勢の対象物を描写した基準画像と、第2の姿勢の前記対象物を描写したソース画像との間の相違点を決定し、前記第2の姿勢は前記第1の姿勢から変化した姿勢を含み、
前記決定された相違点に基づいて、前記ソース画像に描写された前記第1の姿勢から変化した前記姿勢により不明瞭になった前記対象物の形状の3次元(3D)マップの1以上の部分を特定し、
前記ソース画像の少なくとも一部と前記対象物の前記形状の少なくとも1つの特定された不明瞭になった部分とを描写する前記対象物の姿勢補正画像を生成する、
方法。
【請求項2】
請求項1に記載のコンピュータにより実施される方法であって、さらに、
前記相違点を決定する前に、
前記対象物の複数の基準画像を生成し、それぞれの基準画像は、異なる姿勢の前記対象物を描写し、
前記ソース画像を受信し、
前記ソース画像に関係する、前記第1の姿勢を描写する前記基準画像を特定する、
方法。
【請求項3】
請求項1に記載のコンピュータにより実施される方法であって、前記基準画像の前記第1の姿勢と、前記ソース画像の前記第1の姿勢から変化した前記姿勢との間の相違点を決定することは、
前記基準画像のセグメント化マスク画像(「セグメント化基準画像」)と前記ソース画像のセグメント化マスク画像(「セグメント化ソース画像」)とを生成し、
前記セグメント化基準画像に基づく深度マップ画像(「深度マップ基準画像」)と前記セグメント化ソース画像に基づく深度マップ画像(「深度マップソース画像」)とを生成する
ことを含む、
方法。
【請求項4】
請求項3に記載のコンピュータにより実施される方法であって、さらに、
前記相違点を決定する前に前記ソース画像を受信する際に、前記ソース画像に対応する1以上の倍率を特定し、
前記深度マップ基準画像及び前記深度マップソース画像の生成の際に、前記特定された1以上の倍率により前記深度マップ基準画像を修正して縮尺調整された深度マップ基準画像を生成する、
方法。
【請求項5】
請求項4に記載のコンピュータにより実施される方法であって、前記倍率は、
(i) 前記ソース画像を取得したカメラに関連付けられた焦点距離、
(ii) 前記ソース画像を取得した前記カメラに関連付けられた光センサの種類、及び
(iii) 前記ソース画像に描写される前記対象物の実例に関連する定義済みサイズ測定値
のうち1つ以上を含む、
方法。
【請求項6】
前記決定された相違点に基づいて、前記第1の姿勢から変化した前記姿勢により不明瞭になった前記対象物の形状の3次元(3D)マップの1以上の部分を特定することは、
前記深度マップソース画像に基づいて前記対象物の前記形状のソース3Dマップを予測し、
前記縮尺調整された深度マップ基準画像に基づいて前記対象物の基準3Dマップを予測し、
前記ソース3Dマップ及び前記基準3Dマップのそれぞれを3D空間に投影し、
前記投影されたソース3Dマップ及び基準3Dマップの位置合わせを行って1以上の相違点を特定する
ことを含み、前記1以上の相違点は、前記ソース3Dマップの部分と前記基準3Dマップの対応する部分との間の位置ずれを含む、
請求項4に記載のコンピュータにより実施される方法。
【請求項7】
前記投影されたソース3Dマップ及び基準3Dマップの位置合わせを行って1以上の相違点を特定することは、
前記位置ずれに基づいて回転パラメータ及び平行移動パラメータのうちの少なくとも一方を決定し、
前記それぞれのパラメータを前記ソース3Dマップの前記部分に適用し、前記姿勢補正画像の一部を生成する
ことを含む、
請求項6に記載のコンピュータにより実施される方法。
【請求項8】
1以上のプロセッサと、前記1以上のプロセッサにより実行されるとシステムに動作を行わせる1以上の命令を含む非一過性コンピュータ読取可能媒体とを含むシステムであって、前記動作は、
第1の姿勢の対象物を描写した基準画像と、第2の姿勢の前記対象物を描写したソース画像との間の相違点を決定し、前記第2の姿勢は前記第1の姿勢から変化した姿勢を含み、
前記決定された相違点に基づいて、前記ソース画像に描写された前記第1の姿勢から変化した前記姿勢により不明瞭になった前記対象物の形状の3次元(3D)マップの1以上の部分を特定し、
前記ソース画像の少なくとも一部と前記対象物の前記形状の少なくとも1つの特定された不明瞭になった部分とを描写する前記対象物の姿勢補正画像を生成する
ことを含む、システム。
【請求項9】
前記相違点を決定する前に、
前記対象物の複数の基準画像を生成し、それぞれの基準画像は、異なる姿勢の前記対象物を描写し、
前記ソース画像を受信し、
前記ソース画像に関係する、前記第1の姿勢を描写する前記基準画像を特定すること
をさらに含む、請求項8に記載のシステム。
【請求項10】
前記基準画像の前記第1の姿勢と、前記ソース画像の前記第1の姿勢から変化した前記姿勢との間の相違点を決定することは、
前記基準画像のセグメント化マスク画像(「セグメント化基準画像」)と前記ソース画像のセグメント化マスク画像(「セグメント化ソース画像」)とを生成し、
前記セグメント化基準画像に基づく深度マップ画像(「深度マップ基準画像」)と前記セグメント化ソース画像に基づく深度マップ画像(「深度マップソース画像」)とを生成すること
を含む、請求項8に記載のシステム。
【請求項11】
前記相違点を決定する前に前記ソース画像を受信する際に、前記ソース画像に対応する1以上の倍率を特定し、
前記深度マップ基準画像及び前記深度マップソース画像の生成の際に、前記特定された1以上の倍率により前記深度マップ基準画像を修正して縮尺調整された深度マップ基準画像を生成すること
をさらに含む、請求項10に記載のシステム。
【請求項12】
前記倍率は、
(i) 前記ソース画像を取得したカメラに関連付けられた焦点距離、
(ii) 前記ソース画像を取得した前記カメラに関連付けられた光センサの種類、及び
(iii) 前記ソース画像に描写される前記対象物の実例に関連する定義済みサイズ測定値
のうち1つ以上を含む、請求項11に記載のシステム。
【請求項13】
前記決定された相違点に基づいて、前記第1の姿勢から変化した前記姿勢により不明瞭になった前記対象物の形状の3次元(3D)マップの1以上の部分を特定することは、
前記深度マップソース画像に基づいて前記対象物の前記形状のソース3Dマップを予測し、
前記縮尺調整された深度マップ基準画像に基づいて前記対象物の基準3Dマップを予測し、
前記ソース3Dマップ及び前記基準3Dマップのそれぞれを3D空間に投影し、
前記投影されたソース3Dマップ及び基準3Dマップの位置合わせを行って1以上の相違点を特定する
ことを含み、前記1以上の相違点は、前記ソース3Dマップの部分と前記基準3Dマップの対応する部分との間の位置ずれを含む、
請求項11に記載のシステム。
【請求項14】
前記投影されたソース3Dマップ及び基準3Dマップの位置合わせを行って1以上の相違点を特定することは、
前記位置ずれに基づいて回転パラメータ及び平行移動パラメータのうちの少なくとも一方を決定し、
前記それぞれのパラメータを前記ソース3Dマップの前記部分に適用し、前記姿勢補正画像の一部を生成する
ことを含む、請求項13に記載のシステム。
【請求項15】
1以上のプロセッサにより実行されるコンピュータ読取可能プログラムコードが内部に具現化された非一過性コンピュータ読取可能媒体を含むコンピュータプログラムプロダクトであって、前記プログラムコードは、
第1の姿勢の対象物を描写した基準画像と、第2の姿勢の前記対象物を描写したソース画像との間の相違点を決定し、前記第2の姿勢は前記第1の姿勢から変化した姿勢を含み、
前記決定された相違点に基づいて、前記ソース画像に描写された前記第1の姿勢から変化した前記姿勢により不明瞭になった前記対象物の形状の3次元(3D)マップの1以上の部分を特定し、
前記ソース画像の少なくとも一部と前記対象物の前記形状の少なくとも1つの特定された不明瞭になった部分とを描写する前記対象物の姿勢補正画像を生成する
ための命令を含む、
コンピュータプログラムプロダクト。
【請求項16】
前記相違点を決定する前に、
前記対象物の複数の基準画像を生成し、それぞれの基準画像は、異なる姿勢の前記対象物を描写し、
前記ソース画像を受信し、
前記ソース画像に関係する、前記第1の姿勢を描写する前記基準画像を特定すること
をさらに含む、請求項15に記載のコンピュータプログラムプロダクト。
【請求項17】
前記基準画像の前記第1の姿勢と、前記ソース画像の前記第1の姿勢から変化した前記姿勢との間の相違点を決定することは、
前記基準画像のセグメント化マスク画像(「セグメント化基準画像」)と前記ソース画像のセグメント化マスク画像(「セグメント化ソース画像」)とを生成し、
前記セグメント化基準画像に基づく深度マップ画像(「深度マップ基準画像」)と前記セグメント化ソース画像に基づく深度マップ画像(「深度マップソース画像」)とを生成する
ことを含む、請求項15に記載のコンピュータプログラムプロダクト。
【請求項18】
前記相違点を決定する前に前記ソース画像を受信する際に、前記ソース画像に対応する1以上の倍率を特定し、
前記深度マップ基準画像及び前記深度マップソース画像の生成の際に、前記特定された1以上の倍率により前記深度マップ基準画像を修正して縮尺調整された深度マップ基準画像を生成すること
をさらに含む、請求項17に記載のコンピュータプログラムプロダクト。
【請求項19】
前記倍率は、
(i) 前記ソース画像を取得したカメラに関連付けられた焦点距離、
(ii) 前記ソース画像を取得した前記カメラに関連付けられた光センサの種類、及び
(iii) 前記ソース画像に描写される前記対象物の実例に関連する定義済みサイズ測定値
のうち1つ以上を含む、
請求項18に記載のコンピュータプログラムプロダクト。
【請求項20】
前記決定された相違点に基づいて、前記第1の姿勢から変化した前記姿勢により不明瞭になった前記対象物の形状の3次元(3D)マップの1以上の部分を特定することは、
前記深度マップソース画像に基づいて前記対象物の前記形状のソース3Dマップを予測し、
前記縮尺調整された深度マップ基準画像に基づいて前記対象物の基準3Dマップを予測し、
前記ソース3Dマップ及び前記基準3Dマップのそれぞれを3D空間に投影し、
前記投影されたソース3Dマップ及び基準3Dマップの位置合わせを行って1以上の相違点を特定する
ことを含み、前記1以上の相違点は、前記ソース3Dマップの部分と前記基準3Dマップの対応する部分との間の位置ずれを含み、前記投影されたソース3Dマップ及び基準3Dマップの位置合わせを行うことは、
前記位置ずれに基づいて回転パラメータ及び平行移動パラメータのうちの少なくとも一方を決定し、
前記それぞれのパラメータを前記ソース3Dマップの前記部分に適用し、前記姿勢補正画像の一部を生成すること
を含む、請求項18に記載のコンピュータプログラムプロダクト。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願に対する相互参照
本出願は、2021年9月2日に提出されたインド特許出願第202121039730号の利益を主張するものであり、当該出願はその全体が参照によりここに組み込まれる。
背景
様々な業界において、再販売業界において価値が上昇したブランドや製品の増加によって人気が上昇することが起こっている。一部の種類の特別なモデルの物品の限定販売によって、そのような限定販売品は、市場において皆が最も欲しがるものの1つになっている。限定発売品の排他性のために、偽物品が市場に蔓延している。多くの市場又は店舗のうちの1つから限定販売品を購入する不運な利用者は、購入した物品が本物かどうかを知らない。市場は物品が本物であることを保証するが、消費者は何度も騙される。市場や店舗経営者であっても一部の物品の真正性について確信がないことが時々ある。これは、取引における信頼の欠如を引き起こし、最終的には様々な産業の成長を抑制することになり得る。
【発明の概要】
【0002】
概要
姿勢補正エンジン(「エンジン」)の様々な実施形態は、ユーザソース画像に描写されている対象物が不正なもの又は偽造されたものであるか否かを決定する際に使用するためのユーザソース画像の前処理を提供することにより、従来のシステムを超える顕著な改善及び利点を提供するものである。例えば、エンジンは、様々な定義済み姿勢に完全に一致した物体を描写したソース画像を取得することをユーザに要求することなく、これらの様々な定義済み姿勢の物体のソース画像を取得する柔軟性をユーザに提供する。ユーザは、ソース画像をエンジンにアップロードしてもよく、エンジンは、ユーザのソース画像に基づいて姿勢補正画像を出力する。エンジンは、定義済み姿勢に完全に一致する物体の外観をユーザが上手く取得しているかのようにソース画像を表す姿勢補正画像を出力する。
【0003】
本明細書で述べられる装置、方法、システム及びコンピュータプログラムプロダクトの様々な実施形態は、姿勢補正エンジン(「エンジン」)に向けられている。エンジンは、注目対象物の基準画像を生成する。この基準画像は、第1の姿勢を取る注目対象物(「対象物」)を描写している。エンジンは、対象物の実例のソース画像を受け取る。ソース画像は、第1の姿勢から変化した姿勢を取る対象物の実例を描写している。エンジンは、基準画像の第1の姿勢とソース画像の第1の姿勢から変化した姿勢との間の相違点を決定する。エンジンは、決定された相違点に基づいて、ソース画像に描写された第1の姿勢から変化した姿勢により不明瞭になった対象物の形状の3次元(3D)マップの1以上の部分を特定する。エンジンは、ソース画像の少なくとも一部と対象物の形状の3Dマップの少なくとも特定された部分とを描写する対象物の実例の姿勢補正画像を生成する。様々な実施形態において、注目対象物は任意の種類の物体でもよいことは理解されよう。
【0004】
ある実施形態においては、ユーザは、特定の靴が真正品であるか否かを決定しようとすることがある。ユーザは、靴の1以上のソース画像を取得し、それぞれの画像は、その靴の特定の斜視外観を描写している。ユーザは、1以上のソース画像をエンジンにアップロードする。エンジンは、特定の靴の認証処理の準備として1以上のソース画像の前処理を行う。
【0005】
エンジンは、特定の靴の基準画像にアクセスするが、この基準画像は、特定の姿勢(すなわち位置及び向き)の特定の靴を描写し得る。ソース画像は、基準画像の特定の姿勢に略類似する姿勢を取る特定の靴を描写し得る。別の表現をすれば、ソース画像の姿勢は、基準画像の特定の姿勢と完全にマッチしないこともある。エンジンは、姿勢補正画像を生成するためにセグメント化段階、深度推定段階、縮尺調整段階、及び位置合わせ段階によりソース画像及び基準画像を前処理する。エンジンにより出力される姿勢補正画像は、基準画像の特定の姿勢による特定の靴を描写するソース画像のバージョンを表している。
【0006】
様々な実施形態においては、エンジンは、1種類以上の注目対象物に対して複数の基準画像を生成及び格納する。 例えば、特定の種類の靴に対して、エンジンは、当該特定の種類の靴の複数の基準画像を生成し、それぞれの画像は、異なる姿勢の(すなわち、異なる位置及び向きの)当該特定の種類の靴を描写したものである。
【0007】
1以上の実施形態においては、エンジンは、トレーニング段階中に基準画像について機械学習ネットワークをトレーニングする。様々な実施形態においては、トレーニング段階は、フィードバック伝播ループを含んでいる。
【0008】
ある実施形態においては、エンジンにより実施されるスケーリング段階は、基準画像に基づいて1以上の倍率を深度マップ画像に適用することを含んでいる。
【0009】
様々な実施形態においては、エンジンにより実施される位置合わせ段階は、1以上の平行移動パラメータ及び1以上の回転パラメータを生成する。エンジンは、回転パラメータ中の平行移動パラメータをソース画像に適用し、姿勢補正画像を生成する。
【0010】
1以上の実施形態においては、ユーザは、特定の定義済み姿勢の物体を置いたライトボックス内に物体を配置し得る。ライトボックスは、定義済固定カメラレンズ位置のための1以上のアパーチャを含み得る。ユーザは、ライトボックスに関連付けられたカメラで1以上のソース画像を取得し得る。エンジンは、ライトボックスで取得された特定のソース画像の前処理を行って対応する姿勢補正画像を出力し得る。エンジンは、さらにライトボックスで取得された他のソース画像のそれぞれの姿勢補正画像を生成するために当該特定のソース画像の位置合わせ段階からのデータをさらに利用し得る。
【0011】
様々な実施形態は、秘密情報/データを修正し、情報/データを暗号化し、データを匿名化してユーザ及びプラットフォーム情報/データの機密性及び安全性とともに米国及び/又は国際的裁判管轄におけるデータプライバシー法に対する遵守を確保するモジュール及び/又は1以上の機能を含んでいる。
【0012】
本開示が適用できるさらなる領域は、詳細な説明、特許請求の範囲及び図面から明らかになるであろう。詳細な説明及び具体例は、説明だけを目的として意図されており、本開示の範囲を制限することを意図されたものではない。
【図面の簡単な説明】
【0013】
図面の簡単な説明
本開示は、詳細な説明及び図面からより良く理解できるようになるであろう。
【0014】
図1A図1Aは、ある実施形態が動作し得る例示的な環境を示す図である。
【0015】
図1B図1Bは、ある実施形態が動作し得る例示的な環境を示す図である。
【0016】
図2A-2B】図2A及び図2Bは、それぞれある実施形態が動作し得る例示的な環境を示す図である。
【0017】
図2C図2Cは、ある実施形態において実施され得る例示的な方法を示す図である。
【0018】
図2D図2Dは、ある実施形態が動作し得る例示的な環境を示す図である。
【0019】
図2E図2Eは、ある実施形態において実施され得る例示的な方法を示す図である。
【0020】
図3図3は、ある実施形態が動作し得る例示的な環境を示す図である。
【0021】
図4図4は、ある実施形態が動作し得る例示的な環境を示す図である。
【0022】
図5図5は、ある実施形態が動作し得る例示的な環境を示す図である。
【0023】
図6図6は、ある実施形態が動作し得る例示的な環境を示す図である。
【0024】
図7A-7C】図7A図7B及び図7Cは、それぞれある実施形態が動作し得る例示的な環境を示す図である。
【0025】
図8図8は、ある実施形態が動作し得る例示的な環境を示す図である。
【0026】
図9図9は、ある実施形態が動作し得る例示的な環境を示す図である。
【発明を実施するための形態】
【0027】
詳細な説明
本明細書においては、本発明の特定の実施形態が詳細に参照される。実施形態の一部又はそれらの態様は図面に示されている。
【0028】
説明をわかりやすくするために、特定の実施形態を参照して本発明が述べられているが、本発明は、述べられている実施形態に限定されるものではないことは理解されるべきである。反対に、本発明は、いずれかの請求項により規定される範囲内に含まれ得るような代替物、変形物、及び均等物をカバーするものである。本発明の以下の実施形態は、特許請求の範囲に記載された発明に対して普遍性を失うことなく、また制限を課すことなく、述べられるものである。以下の説明においては、本発明を完全に理解させるために具体的な詳細が述べられている。これらの具体的な詳細の一部又は全部がなくても本発明は実施され得る。加えて、本発明を不必要に不明確にするのを避けるために、公知の特徴は詳細には述べられていない場合がある。
【0029】
加えて、この例示的な特許に述べられている例示的な方法のステップは、本明細書において提示されている順番とは異なる順番で行われてもよいことは理解すべきである。また、例示的な方法の一部のステップは、連続的に行われるのではなく、並行して行われてもよい。また、例示的な方法のステップは、ネットワーク接続された環境における異なるコンピュータにより一部のステップが行われるネットワーク環境において行われてもよい。
【0030】
ある実施形態は、コンピュータシステムにより実現される。コンピュータシステムは、プロセッサ、メモリ、及び非一過性コンピュータ読取可能媒体を含み得る。メモリ及び非一過性媒体は、本明細書で述べられている方法及びステップを行うための命令を格納し得る。
【0031】
実施形態が動作し得る例示的なネットワーク環境の図が図1Aに示されている。コンピュータシステム101は、例えば、スマートフォン、スマートデバイス、スマートウォッチ、タブレット、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、サーバ、又は他の処理システムを含み得る。ある実施形態においては、コンピュータシステム101は、ユーザが有し得る形態因子に適合するように移動可能となっている。他の実施形態においては、コンピュータシステム101は固定的である。コンピュータシステム101はCPU102及びメモリ103を含み得る。コンピュータシステム101は、マイクロフォン104及びスピーカ105のような内部又は外部周辺機器を含み得る。また、コンピュータシステムは、認証アプリケーション110を含み得るもので、認証アプリケーション110は、画像取得システム111及びユーザインタフェイス(UI)システム112を含み得る。例えば、画像取得システムは、UI112を介して1以上のグラフィックオーバレイを表示するための機能に対応し得る。
【0032】
コンピュータシステム101は、ネットワーク150に接続され得る。ネットワーク150は、例えば、ローカルネットワーク、イントラネット、ワイドエリアネットワーク、インターネット、インターネット、無線ネットワーク、有線ネットワーク、Wi-Fi、Bluetooth、複数のネットワークのうちの1つのネットワーク、又は他のネットワークを含み得る。ネットワーク150は、数多くのコンピュータシステムを接続してデバイス間の通信を可能にし得る。サーバ120は、ネットワーク150越しにコンピュータシステム101に接続され得る。サーバ115は、姿勢補正エンジン120を含み得る。
【0033】
環境100は、リモートサーバ又はリモートストレージシステムを含むクラウドコンピューティング環境であり得る。クラウドコンピューティングとは、簡単に拡張性を実現できるように迅速に備蓄することが可能なプールされたネットワーク資源をいう。クラウドコンピューティングは、ソフトウェア・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、インフラストラクチャ・アズ・ア・サービス、及び類似の特徴を提供するために使用することができる。クラウドコンピューティング環境においては、ユーザは、ファイルを「クラウド」に格納することができる。「クラウド」は、ファイルを格納している実際のハードウェアはユーザにわからないが、ファイルがリモートネットワーク資源上に格納されることを意味している。
【0034】
図1Bは、相違点決定モジュール121、特定モジュール122、姿勢補正モジュール123、機械学習ネットワークモジュール124及び合成画像生成モジュール125を含む姿勢補正エンジン用の例示システム120のブロック図を示している。システム120は、1以上のソース画像を送信するユーザデバイス140と通信し得る。
【0035】
システム120の相違点決定モジュール121は、図2A図2B図2C図2D図2E図3図4図5図6図7A図7B図7C及び/又は図8に示されるような機能を実現し得る。ある実施形態においては、相違点決定モジュール121は、基準画像とソース画像との間の相違点を決定することに関連した機能を実現し得る。ここで、基準画像は、第1の姿勢の対象物を描写したものであり、ソース画像は、第1の姿勢から変化した姿勢である第2の姿勢の対象物を描写したものである。
【0036】
システム120の特定モジュール122は、図2A図2B図2C図2D図2E図3図4図5図6図7A図7B図7C及び/又は図8に示される機能を実現し得る。ある実施形態においては、特定モジュール122は、決定された相違点に基づいて、ソース画像で描写される第1の姿勢から変化した姿勢により不明瞭になった対象物の形状の3次元(3D)マップの1以上の部分を特定することに関係する機能を実現し得る。
【0037】
システム120の姿勢補正モジュール123は、図2A図2B図2C図2D図2E図3図4図5図6図7A図7B図7C及び/又は図8に示されるような機能を実現し得る。ある実施形態においては、姿勢補正モジュール123は、ソース画像の少なくとも一部及び対象物の形状の少なくとも1つの特定された不明瞭になった部分を描写する対象物の姿勢補正画像を生成することに関連する機能を実現し得る。
【0038】
システム120の機械学習ネットワークモジュール124は、図2A図2B図2C図2D図2E図3図4図5図6図7A図7B図7C及び/又は図8に示されるような機能を実現し得る。ある実施形態においては、機械学習ネットワークモジュール124は、1種類以上の機械学習ネットワークを学習させ、更新し、実行することに関連する機能を実現し得る。
【0039】
システム120の合成画像生成モジュール125は、図2A図2B図2C図2D図2E図3図4図5図6図7A図7B図7C 及び/又は図8に示されるような機能を実現し得る。ある実施形態においては、合成画像生成モジュール125は、特定の種類の対象物の複数の基準画像を合成的に生成することに関連する機能を実現し得る。
【0040】
エンジンの1以上のソフトウェアモジュールは、特定のエンドユーザ(「ユーザ」)に関連付けられたコンピュータシステム上で実現され得る。図2Aのフローチャート200に示されるように、エンジンは、ユーザインタフェイス内で1以上のグラフィックオーバレイをユーザに提示し得る(動作202)。1セットのグラフィックオーバレイは、靴のような特定の種類の物体に対する定義済み姿勢に対応し得る。特定の種類の対象物に対して複数のグラフィックオーバレイセットが存在し得るものであり、それぞれの別個のグラフィックオーバレイは、同一種類の対象物に対する単一の特定の定義済み姿勢を表していることは理解されよう。
【0041】
さらに、エンジンは、それぞれの定義済み姿勢を取る同一種類の対象物を表した基準画像に対してアクセスし得ることは理解されよう。例えば、第1のタイプの靴は、第1の定義済み姿勢に対するグラフィックオーバレイの第1セットと、第2の定義済み姿勢に対するグラフィックオーバレイの第2セットとを有し得る。第1の基準画像は、第1の定義済み姿勢を取る同一種類の靴を描写したものであり、第2の基準画像は、第2の定義済み姿勢を取る同一種類の靴を描写したものである。
【0042】
ユーザは、表示されたグラフィックオーバレイに対象物のカメラ視点をマッチさせようとする(動作204)。例えば、 1以上のグラフィックオーバレイは、ユーザインタフェイス上で視覚ガイドとして提示され得る。グラフィックオーバレイは、カメラ機能を介して見た特定の種類の靴の物理的実例の様々な部分の目標表示位置を表している。表示されたグラフィックオーバレイは、表示されたグラフィックオーバレイと対応する定義済み姿勢にマッチする姿勢の靴の実例を描写するソース画像をユーザが生成するのを手助けする視覚ガイドとしての役割を有する。
【0043】
ユーザは、コンピュータシステムに関連付けられたカメラを介して、様々な対象物姿勢変化をする対象物を描写する1以上のソース画像を取得する(動作206)。ユーザはリアルタイムでソース画像を取得するので、おそらくソース画像は、表示されたグラフィックオーバレイと対応する定義済み姿勢に正確にマッチしない姿勢を取る靴を表し得る。このため、ソース画像に描写されている姿勢は、必然的に定義済み姿勢から変化した姿勢となる。ユーザは、姿勢補正画像を生成するために、前処理用にソース画像をエンジンに送信する。姿勢補正画像は、ユーザがグラフィックオーバレイを靴の一部に完全に整列させて定義済み姿勢に完全にマッチするソース画像を生成させたかのように、ソース画像からの内容を描写している。
【0044】
様々な実施形態によれば、エンジンは、前処理用に1以上のソース画像を受信する。ソース画像は、それぞれ同一の特定の靴を描写し得るものであるが、それぞれのソース画像は、異なる斜視外観による当該同一の特定の靴を描写し得る。斜視外観は、靴の特定の位置及び向きに基づいていてもよく、それぞれの特定の位置及び向きが姿勢を構成することは理解されよう。
【0045】
特定された基準画像は、受信したソース画像に描写される姿勢に類似する定義済み姿勢に対応する。エンジンは、同一の特定の靴の様々な基準画像を特定し、それぞれの基準画像は、様々な定義済み姿勢を取る当該同一の特定の靴を描写している。例えば、ソース画像は、ソース画像が取得されたときにユーザに対して表示されたグラフィックオーバレイのセットを特定するメタデータを含み得る。エンジンは、グラフィックオーバレイの特定されたセットに関連付けられた基準画像を特定し得る。エンジンは、前処理されたソース画像のそれぞれに対する姿勢補正画像を出力するために、ソース画像のうちの1つ以上に対して様々な段階で前処理を行う。
【0046】
図2Bの図形208に示されているように、エンジンは、1以上のソース画像210を受信する。それぞれのソース画像210は、基準画像212に関連付けられた定義済み姿勢から変化した姿勢を取る対象物を描写している。エンジンは、それぞれの基準画像212を特定し、それぞれの特定された基準画像212は、定義済み姿勢の同一種類の対象物を描写している。ソース画像210と基準画像212との特定の組み合わせのそれぞれに対して、エンジンは、対となった画像210,212の間の相違点を決定し、姿勢補正画像214を生成する。
【0047】
図2Cの図形216に示されるように、エンジンによるソース画像210の前処理は、1以上の前処理段階を含み得る。ソース画像210を受信すると、エンジンは、ソース画像210及び対応する基準画像212をセグメント化段階28に入力する。セグメント化段階218は、セグメント化マスクソース画像とセグメント化マスク基準画像とを出力する。エンジンは、セグメント化マスクソース画像とセグメント化マスク基準画像とを深度推定段階220に入力する。深度推定段階220は、深度マップソース画像と深度マップ基準画像とを出力する。
【0048】
エンジンは、深度マップ基準画像に1以上の倍率を適用し222、縮尺調整された深度マップ基準画像を生成する。エンジンは、縮尺調整された深度マップ基準画像と深度マップソース画像を位置合わせ段階224に入力する。位置合わせ段階224は、出力226として姿補正画像を返す。
【0049】
図2Dのフローチャート230に示されるように、エンジンは、第1の姿勢から変化した姿勢を取る靴を描写しているソース画像232を受信する。エンジンは、第1の姿勢を取る同一種類の靴(すなわちモデル、ブランド)を描写する基準画像234を特定する。エンジンは、前処理段階218,220,222,224,226を介して画像232,234を送信する。エンジンは、姿勢補正画像236を返す。姿勢補正画像236は、受信したソース画像232からの内容を含んでおり、ソース画像232の姿勢変化により不明瞭になった靴の様々な部分を描写する内容をさらに含んでいる。
【0050】
図2Eのフローチャート240に示されるように、エンジンは、注目対象物の基準画像を生成する(動作242)。この基準画像は、第1の姿勢を取る対象物を描写している。様々な実施形態においては、エンジンは対象物の複数の基準画像を生成し、それぞれの基準画像は、異なる姿勢の対象物を描写している。エンジンは、複数の基準画像を合成的に生成し、さらに/あるいは対象物の物理的な実例の3Dスキャンに基づいて基準画像を生成する。
【0051】
エンジンは、対象物の実例のソース画像を受信する(動作244)。このソース画像は、第1の姿勢から変化した姿勢を取る対象物の実例を描写している。エンジンは、受信したソース画像と対応する基準画像を特定する。例えば、ソース画像が特定の靴メーカーにより製造される特定の靴モデルを描写するものである場合には、エンジンは、これと同じ特定の靴モデルを描写する基準画像のセットを特定する。さらに、エンジンは、特定された基準画像のセットにアクセスし、定義済み姿勢の靴を描写する基準画像を選択する。ソース画像は、定義済み姿勢を取る物理的な靴の斜視外観を生成するようにカメラを物理的に合わせるようにユーザを誘導するように意図されたグラフィックオーバレイの表示中に取得されたものである。
【0052】
エンジンは、基準画像の第1の姿勢とソース画像の第1の姿勢から変化した姿勢との間の相違点を決定する(動作246)。エンジンは、決定された相違点に基づいて、ソース画像により描写される第1の姿勢から変化した姿勢により不明瞭になった対象物の形状の3次元(3D)マップの1以上の部分を特定する(動作248)。エンジンは、ソース画像及び特定された対応する基準画像の両方に対してセグメント化マスク画像を生成する。エンジンは、セグメント化マスク画像に基づいて深度マップをさらに生成する。
【0053】
エンジンは、ソース画像の少なくとも一部及び対象物の形状の3Dマップの少なくとも上記特定された部分を描写する対象物の実例の姿勢補正画像を生成する(動作250)。エンジンは、本明細書で述べられるようなグローバル及びローカル位置合わせ段階を実施して、受信したそれぞれのソース画像に対して姿勢補正画像を生成する。
【0054】
図3の図形300に示されるように、本明細書で述べられる様々な実施形態は、トレーニングデータの様々な部分の収集及び生成を含んでいる。エンジンは、様々な種類の対象物に対する複数の3Dモデルを収集する(動作302)。例えば、エンジンは、様々な種類の靴に対するそれぞれの3Dモデルを受信する。それぞれの3Dモデルは、複数の靴製造メーカーにより提供される複数の異なる種類(すなわちモデル)の靴に対する3Dモデルを含んでいることは理解されよう。モデルは、例えば、一意なSKU識別子により参照される靴の種類であり得る。加えて、エンジンは、物体のスキャンを受信する(動作304)。例えば、特定の種類の靴の物理的な実例のスキャンである。様々な実施形態においては、エンジンは、複数のスキャンを受信し、それぞれのスキャンは異なる種類の靴を表し得る。さらに、それぞれのスキャンは、対応する3D靴モデルに変換され得る。
【0055】
エンジンは、対象物の姿勢の様々な画像を生成するために入力データ(すなわち3Dモデル、複数のスキャン)を受信し、この入力データを処理する(動作306)。例えば、靴の特定のモデルの1以上の3Dモデル及び/又はスキャンがあるとすると、エンジンは、異なる姿勢を取る同一の靴モデルの1以上の追加基準画像を合成的に生成する。対象物の姿勢は、3D空間内のx軸、y軸及びz軸上での当該対象物の特定の向きにより定義される斜視外観によって当該対象物を描写していることは理解されよう。例えば、エンジンは、特定の種類の運動靴の複数の基準画像を合成的に生成し、それぞれの基準画像は、異なる姿勢を取る同一種類の運動靴を見た表現を描写している。このため、エンジンは、特定の種類の靴に対して複数の基準画像を合成的に生成し、他の特定の種類の靴に対して複数の基準画像をさらに生成し得る。エンジンは、任意の数の靴に対してこの処理を実施してもよい。本明細書で述べられる様々な実施形態は、異なる種類の靴のみである対象物に限定されるものではないことは理解されよう。その代わりに、対象物は任意の種類の物理的物品であり得る。
【0056】
様々な実施形態においては、エンジンは、それぞれの姿勢に関して3D空間内の基準点としての役割を果たすエミュレートカメラの視点からの様々な基準画像を合成的に生成する。エンジンは、第1の種類の靴の第1の基準画像を生成し得る。エンジンは、第1の種類の靴の第1の基準画像の姿勢を修正及び/又は操作して、異なる姿勢を取る第1の種類の靴の追加基準画像を生成し得る。
【0057】
エンジンは、トレーニングデータとして1以上の基準画像を機械学習ネットワーク308に送る(動作308)。トレーニングデータとして用いられるそれぞれの基準画像については、基準画像が、対応する基準画像の各ピクセルに対する深度値をさらに含んでいる。ピクセル深度値は、基準画像中の特定のピクセルから、基準画像内の対象物の姿勢の斜視外観の基礎となるエミュレートカメラの位置までの距離を表している。例えば、ピクセル深度値は、基準画像中の特定のピクセルと、当該基準画像に描写され、x軸、y軸及びz軸により定義される対象物の向き(すなわち姿勢)に関する3D空間内のエミュレートカメラの配置との間の距離を表している。トレーニング段階中は、機械学習ネットワーク308は、本明細書の様々な実施形態において述べられるような様々な予測されるセグメント化マスク画像310と様々な予測される深度マスク画像314を出力する。トレーニング段階は、損失関数のフィードバックを含む逆伝播アルゴリズム312の実施をさらに含んでいる。
【0058】
入力トレーニング基準画像から生じるトレーニング段階中に出力される予測されるセグメント化マスク画像について、フィードバック損失関数は、予測されるセグメント化マスク画像において対象物を描写している部分と予測されるマスク画像において対象物を取り囲む背景を描写している部分との間の分類誤差の測定値の表示を提供する。分類誤差の測定値は、予測されるセグメント化マスク画像を入力トレーニング基準画像により提供される分類グランドトルースと比較することにより決定され得る。入力トレーニング基準画像から生じるトレーニング段階中に生成される予測される深度マップ画像について、フィードバック損失関数は、予測される深度を入力トレーニング基準画像のグランドトルース深度と比較する。
【0059】
図4の図形400に示されるように、エンジンにより実施されるセグメント化段階218は、入力ソース画像402を受信し、この入力ソース画像402をエンコーダ/デコーダネットワークに送る。セグメント化段階218は、ソース画像402に基づいてセグメント化マスク画像404を出力する。例えば、セグメント化マスク画像404は、入力ソース画像402の内容に基づいており、エンコーダ/デコーダネットワークは、靴のような注目対象物に対応する内容を含んでいない入力ソース画像402中の背景内容の1以上の部分を除去する。
【0060】
加えて、エンジンは、入力ソース画像402の受信の際に、対応する基準画像406を特定する。例えば、対応する基準画像は、定義済み姿勢における同一種類の対象物を描写する内容を含み、当該姿勢から変化した姿勢が入力ソース画像402に描写される。セグメント化段階218は、さらに、基準画像406に基づいてセグメント化マスク画像408を生成する。
【0061】
図5の図形500に示されるように、エンジンにより実施される深度推定段階220は、セグメント化段階218から出力されるセグメント化マスクソース画像502を受信し、セグメント化マスクソース画像502を深度推定ネットワークに入力する。深度推定段階2020は、入力されたセグメント化マスクソース画像502に基づいて深度マップソース画像504を出力する。様々な実施形態によれば、深度推定ネットワークは、入力されたセグメント化マスク画像502中のそれぞれのピクセルからエミュレートカメラまでの距離を決定し、入力されたセグメント化マスクソース画像502に表された対象物の予測される形状を表す深度マップソース画像504を生成する。エンジンは、さらに、対応するセグメント化マスクソース画像506を深度推定ネットワークに入力する。深度推定ネットワークは、基準画像508に対する深度マップも出力し、基準画像508に対する深度マップは、基準画像に描写された対象物の予測される形状を表している。
【0062】
図6のフローチャート600に示されるように、縮尺調整段階222中に、エンジンは、ソース画像402に関連付けられた1以上の倍率604を特定する。例えば、倍率604のうちの1つ以上は、ソース画像を取得したカメラに関連付けられた焦点距離、ソース画像を取得したカメラに関連付けられた光センサの種類、及びソース画像に描写された対象物の実例に関連する定義済みサイズ測定値であり得る。縮尺調整段階222は、縮尺調整された深度マップ基準画像606を生成するために画像602を修正して縮尺調整するために深度マップ基準画像602に倍率604を適用する。縮尺調整された深度マップ基準画像を生成することにより、エンジンは、現在姿勢補正のための処理が行われているソース画像を取得したのと同じカメラにより取得された画像の1以上の特定を含むように縮尺調整される基準画像を用意する。
【0063】
図7Aのフローチャート700に示されるように、位置合わせ段階224中に、深度マップソース画像702及び縮尺調整された深度マップ基準画像704が入力として受信される。エンジンは、画像702,704のそれぞれの部分の位置合わせを行うことにより画像702,704の間の相違点を決定する。エンジンは、エンジンが位置合わせをしようとしたそれぞれの画像部分間のずれの発生を特定する。エンジンは、1以上の姿勢補正パラメータ706を生成する。 例えば、姿勢補正パラメータ706は、1以上の平行移動パラメータと1以上の回転パラメータであり得る。
【0064】
エンジンは、対応する元のソース画像に姿勢補正パラメータ706を適用し、姿勢補正画像214を生成する。姿勢補正パラメータ706の適用は、ソース画像中の対象物の描写の様々な部分を図解的に回転することをエミュレートしてソース画像からの内容と一体化される追加対象物部分を生成し、一体化された追加対象物部分は、特定の定義済み姿勢に正確に位置決めされるようなソース画像における対象物の視覚的外観を生み出す。このため、一体化された追加対象物部分は、ソース画像に描写されていなかった(すなわち不明瞭になった)が、ソース画像に描写される対象物が特定の定義済み姿勢に正確に位置決めされていれば描写されるはずであった対象物のセグメント又は領域を表す。
【0065】
図7Bのフローチャート708に示されるように、位置合わせ段階224中に、エンジンは、深度マップソース画像710に基づいて対象物の形状のソース3Dマップを予測し、縮尺調整された深度マップ基準画像712に基づいて対象物の基準3Dマップを予測する。エンジンは、ソース3Dマップ及び基準3Dマップのそれぞれを3D空間に投影し、投影されたソース3Dマップ及び基準3Dマップの位置合わせをして1以上の相違点を特定する。様々な実施形態においては、エンジンは、反復最近接点アルゴリズムを実施し、投影されたソース3Dマップ及び基準3Dマップの位置合わせを行う。他の実施形態においては、エンジンは、位置合わせのためにシフトアルゴリズムを実施し得る。位置ずれは、例えば、ソース3Dマップの部分と基準3Dマップの対応する部分との間の1以上のそれぞれの相違であり得る。様々な実施形態においては、エンジンは、さらに重なり合わないソース3Dマップと基準3Dマップの様々な部分において存在する色の不一致による位置ずれを特定する。
【0066】
1以上の実施形態によれば、エンジンは、深度マップソース画像710に基づいてソース点群データ714を生成し、縮尺調整された深度マップ基準画像712に基づいて基準点群データ716を生成する。点群データ714,716は、深度マップ画像710,712に描写される対象物を表すセグメント化に基づき得ることは理解されよう。エンジンは、点群データ714,716間の相違点を特定するために点群データ714,716の位置合わせを行おうとする。例えば、エンジンは、点群データ714,716間の位置ずれ718を特定する。1以上の実施形態においては、特定される位置ずれ718は、点群データ716のそれぞれの部分に重ならない点群データ714のそれぞれの部分であり得る。そのような特定された位置ずれ718(すなわち重ならないそれぞれの部分)は、補正するために姿勢補正パラメータ706が生成される対象となる相違点としてエンジンにより特定される。
【0067】
図7Cのフローチャート730に示されるように、位置合わせ段階224中は、エンジンは、深度マップソース画像732及び縮尺調整された深度マップ基準画像736を受信し得るし、さらに画像732,736に描写される対象物の特定の定義済み部分をセグメント化し得る。例えば、対象物が靴である場合、ヒールタブ靴部が、位置合わせ段階224中に分析されるべき位置合わせ部として予め定義され得る。エンジンは、両方の画像732,736からヒールタブのセグメント化マスク734,738を生成する。セグメント化マスク734,738を生成する際に、エンジンは、ヒールタブセグメント化マスク734,738間の相違点を特定するためにヒールタブセグメント化マスク734,738の位置合わせをしようとする。
【0068】
エンジンは、 基準セグメント化マスク738に描写されるヒールタブの姿勢と位置が合うようにソースセグメント化マスク734中のヒールタブの姿勢を調整するための姿勢補正パラメータ706を生成する。エンジンは、さらに、姿勢補正画像214を生成するために、ソースセグメント化マスク734中のヒールタブに対して生成された姿勢補正パラメータ706を対応するソース画像の他の様々な部分に適用する。
【0069】
様々な実施形態によれば、位置合わせ段階224は、異なる位置での2つ以上の画像の位置合わせを行う。位置合わせ段階224は、(定義済み姿勢から変化した姿勢を取る対象物を描写する)ソース画像の位置を(正確に定義済み姿勢を取る同一種類の対象物を描写する)基準画像に幾何学上合わせることを目的としている。エンジンは、単眼深度推定ネットワークを用いてソース画像及び基準画像の両方についての深度を算出する。
【0070】
予測深度は、ソース画像及び基準画像に対して取得されるか、あるいは、基準画像の姿勢に対する深度は、深度検知センサにより取得されてもよく、コンピュータにより生成された3Dモデルが用いられてもよい。1以上の実施形態によれば、深度は、画像中の各ピクセルに対する距離値に基づいており、距離値は、それぞれのピクセルからの距離の測定値と画像の外部にあると表されるシミュレートカメラの定義済み位置及び向きを表している。
【0071】
エンジンは、ソース画像及び基準画像のそれぞれに対する3D点群を取得するために予測深度を再投影する。エンジンは、1以上の位置合わせアルゴリズムを実行し、3D点群の位置合わせを行うための変換行列を算出する。エンジンは、グローバル位置合わせとそれに続くローカル位置合わせを含む2段階位置合わせを行ってもよい。グローバル位置合わせ法は、適当な(又は適切な)初期化の測定値を必要としないアルゴリズムを含むものである。そのようなグローバル位置合わせ法は、より多くの誤差を有する位置合わせ結果を生じ、ローカル法のための初期化として用いられる。ローカル位置合わせ法は、初期位置合わせを用い、より誤差の少ない位置合わせ法を生み出す。
【0072】
様々な実施形態によれば、エンジンは、次のアルゴリズムのうち1つ以上のアルゴリズムによりグローバル位置合わせを実施する:スケール不変の特徴変換、高速ポイント特徴量ヒストグラム、ランダムサンプルコンセンサス。グローバル位置合わせに続くローカル位置合わせについては、エンジンは、次のアルゴリズムのうち1つ以上のアルゴリズムを実施する:反復最近接点(ICP) 、色付反復最近接点。
【0073】
様々な実施形態においては、エンジンは、ローカル位置合わせ中にソース点群中のそれぞれの点に対して基準点群中の最近接点をマッチさせることによりICPアルゴリズムを実施する。その後、エンジンは、前の段階である最近接点マッチングにおいて特定された対応するマッチング基準点に対してそれぞれでのソース点を最適化する(すなわち最善に位置合わせする)平均平方点間距離計量を最小にする回転及び平行移動パラメータの組み合わせを推定する。エンジンは、回転及び平行移動パラメータに基づく変換によりソース点を変換する。
【0074】
様々な実施形態においては、エンジンは、ローカル位置合わせ中にカラーICPアルゴリズムを実施する。エンジンは、基準画像のセグメント化を行って1以上のセグメントを抽出し、ソース画像中のピクセルの平均RGB値に基づいてセグメント中の各ピクセルのRGB(赤-青-緑)値を修正することによりカラーICPアルゴリズムを実施する。あるいは、エンジンは、ディープカラリゼーションネットワークを利用する。
【0075】
図8は、ライトボックスの図800を示している。様々な実施形態によれば、ライトボックスは、任意の種類の物体が様々な定義済み物理的位置及び向きで配置され得る物理的構造であり得る。例えば、靴は、ライトボックス内のプラットフォーム814上の固定位置に置かれ得る。ライトボックスは、靴の様々な部分及び様々な部分の1以上のソース画像を取得するために固定位置又は調整可能な位置に複数の撮像デバイス(例えばカメラ、スマートフォンなど)802, 804,806,808,810,812,814を有し得る。様々な実施形態においては、 靴のソース画像は、特定の撮像デバイス802により取得され得る。他のすべての撮像デバイス804,806,808,810,812の相対位置が既知であるので、エンジンは、特定の撮像802により取得された単一のソース画像のような単一のソース画像と対応する特定の定義済み姿勢とは異なる様々な定義済み姿勢に関連するソース画像の姿勢補正を実施することができる。別の表現をすれば、第1のソース画像は、第1の定義済み姿勢を取る靴を描写し得るし、 他の複数のソース画像は、様々な異なる定義済み姿勢を取る同一の靴を描写し得る。位置合わせ段階中は、エンジンは、第1のソース画像に対する姿勢補正画像を生成するための変換のためのそれぞれの平行移動及び回転パラメータを生成する。様々な異なる定義済み姿勢を取る同一の靴を描写する他のソース画像を前処理する際に、エンジンは、 追加の平行移動及び回転パラメータを生成する必要はなく、他のソース画像のそれぞれを変換する必要もない。むしろ、エンジンは、第1のソース画像に対して生成された平行移動及び回転パラメータを利用してソース画像固定位置に基づいて他のソース画像のそれぞれに対するそれぞれの平行移動及び回転パラメータをさらに生成する。
【0076】
例えば、第1のソース画像用の撮像デバイス802は、プラットフォーム814上の靴及び他のデバイス804,806,808,810,812に対するライトボックスでのデバイス802の既知の位置に基づく基準座標を有する基準デバイスとして定義され得る。その結果、特定の異なるデバイス804は、基準デバイス802の基準座標に対する相対座標を有するものとして定義され得る。エンジンは、基準デバイス802からの第1のソース画像に対する姿勢補正画像を生成するための基準変換を生成する。異なるデバイス804で取得された画像に対する姿勢補正画像を生成する際に使用される変換を生成するために、エンジンは、第1のソース画像用に使用された基準変換を異なるデバイス804からの画像と対応する相対変換にマッピングする。
【0077】
エンジンは、基準デバイス802上の中央位置から異なるデバイス804上での中央位置までの向きの変化を算出する。エンジンは、基準デバイス802の中央デバイス位置から異なるデバイス804の中央デバイス位置までの向きの変化を導き出す姿勢補正用の基準変換を調整する。得られる調整後の基準変換は、異なるデバイスにより取得された画像に対してグローバル位置合わせ及びローカル位置合わせを実行することを必要とせず生成された、異なるデバイス804により取得された画像に対する姿勢補正パラメータを表している。
【0078】
本明細書で述べられるエンジンの様々な実施形態は、これらに限定されるものではないが、人工ニューラルネットワーク、ディープラーニングのようなニューラルネットをベースとするアルゴリズム、ランダムサンプルコンセンサス、フーバー回帰、又はTheil-Sen推定量のようなロバスト線形回帰アルゴリズム、サポートベクターマシン及びカーネルリッジ回帰のようなカーネルベースのアプローチ、分類木及び回帰木、ランダムフォレスト、エクストラツリー、勾配ブーストマシン、又はオルタネーティングモデル木のような木をベースとするアルゴリズム、単純ベイズ分類器、他の好適な機械学習アルゴリズムをはじめとする、各センサに対して機械学習ネットワーク130をトレーニングするための任意の好適な機械学習トレーニング手法を用いることができることは理解されよう。
【0079】
図9は、本明細書で述べられる方法論のうち任意の1つ以上を機械に行わせるための1組の命令が実行され得るコンピュータシステムの例示機械を示している。別の実施例では、機械は、LAN、イントラネット、エクストラネット、及び/又はインターネットにおける他の機械に接続(例えばネットワーク接続)されていてもよい。機械は、クライアントーサーバネットワーク環境におけるサーバ又はクライアントマシンの能力で、ピアツーピア(又は分散)ネットワーク環境におけるピアマシンとして、又はクラウドコンピューティングインフラストラクチャ又は環境におけるサーバ又はクライアントマシンとして動作し得る。
【0080】
このマシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチ又はブリッジ、あるいはそのマシンによりなされる動作を特定する(逐次的な又はそれ以外の)1組の命令を実行可能な他のマシンであり得る。さらに、単一のマシンが図示されているが、「マシン」という用語は、本明細書で述べられる方法のうち任意の1つ以上の方法を実施する1組の(又は複数組の)命令を個々に又は一緒に実行するマシンの集合をも含むものとして解釈されるものとする。
【0081】
コンピュータシステム例900は、演算処理デバイス902、メインメモリ904(例えば、リードオンリーメモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)又はランバスDRAM(RDRAM)のようなダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ906(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びデータストレージデバイス918を含んでおり、これらはバス930を介して互いに通信するようになっている。
【0082】
演算処理デバイス902は、マイクロプロセッサ、中央演算処理ユニットなどのような1以上の汎用演算処理デバイスを表している。より具体的には、演算処理デバイスは、複合命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は他の命令セットを実施するプロセッサ、又は命令セットの組み合わせを実施するプロセッサであり得る。また、演算処理デバイス902は、専用集積回路(ASIC)、書換可能ゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどのような1以上の専用演算処理デバイスであり得る。演算処理デバイス902は、本明細書で述べられる動作及びステップを行うための命令926を実行するように構成される。
【0083】
コンピュータシステム900は、ネットワーク920越しに通信するためのネットワークインタフェイスデバイス908をさらに含み得る。また、コンピュータシステム900は、ビデオディスプレイユニット910(例えば、液晶ディスプレイ(LCD)又は陰極線管(CRT))、英数字入力デバイス912(例えばキーボード)、カーソル制御デバイス914(例えばマウス)、グラフィック処理ユニット922、信号生成デバイス916(例えばスピーカ)、グラフィック処理ユニット922、ビデオ処理ユニット928、及びオーディオ処理ユニット932を含み得る。
【0084】
データストレージデバイス918は、本明細書で述べられる方法又は機能のうちの1つ以上を具現化する1組以上の命令又はソフトウェア926が格納されている機械読取可能な記憶媒体924(コンピュータ読取可能媒体としても知られる)を含み得る。また、命令926は、機械読取可能記憶媒体をも構成するコンピュータシステム900、メインメモリ904及び演算処理デバイス902によるその実行中に、メインメモリ904内及び/又は演算処理デバイス902内に完全に又は少なくとも部分的に存在し得る。
【0085】
一実施例においては、命令926は、本明細書の開示を実施するデバイスの構成要素に対応する機能を実現するための命令を含んでいる。機械読取可能な記憶媒体924は、実施例においては単一の媒体であるものとして示されているが、「機械読取可能な記憶媒体」という用語は、1組以上の命令を格納する単一の媒体又は複数の媒体(例えば、集中データベース又は分散データベース、及び/又は関連キャッシュ及びサーバ)を含むものとして解釈されるべきである。また、「機械読取可能な記憶媒体」という用語は、本開示の方法のうち1つ以上の方法を装置に実施させる、装置による実行のための1組の命令を格納又は符号化することが可能な任意の媒体を含むものとして解釈されるものとする。したがって、「機械読取可能な記憶媒体」という用語は、固体状態メモリ、光学媒体及び磁気媒体を含むものとして解釈されるものとするが、これらに限られるものではない。
【0086】
先に述べた詳細な説明の一部は、コンピュータメモリ内のデータビット上の演算のアルゴリズム及び記号的表現の意味において提示されている。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者がその内容を他の当業者に最も効果的に伝達するために用いられるものである。ここでは、アルゴリズムは、一般的に、所望の結果に導くための自己矛盾のない一連の演算であるとして認識される。これらの演算は、物理量の物理的操作を必要とするものである。必ずしもそうではないが、通常、これらの物理量は、保存可能、組み合わせ可能、比較可能、及びそうでなければ操作可能な電気信号又は磁気信号の形態を取る。主に慣用上の理由で、これらの信号をビット、値、要素、符号、文字、語、数などというのが時として便利であることが分かっている。
【0087】
しかしながら、これらの用語及び類似の用語のすべては、適切な物理量に関連付けられているべきであり、これらの物理量に適用される便利なラベルに過ぎないことに留意すべきである。上記の議論から明らかにそうではないと特に述べていない限り、明細書を通して、「特定」又は「決定」又は「実行」又は「行う」又は「収集」又は「生成」又は「送信」などの用語を用いた説明は、物理的(電子的)な量として表されるデータをコンピュータシステムのレジスタ及びメモリ内で操作し、コンピュータシステムのメモリ又はレジスタあるいはそのような他の情報ストレージデバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステム又は同様の電子計算デバイスの動作及びプロセスを意味していると理解される。
【0088】
また、本開示は、本明細書における動作を行うための装置に関するものである。この装置は、意図した目的のために特に構成され得る。あるいは、装置は、コンピュータ内に格納されたコンピュータプログラムにより選択的にアクティベート又は再構成される汎用コンピュータを含み得る。そのようなコンピュータプログラムは、それぞれコンピュータシステムバスにそれぞれ連結される、フロッピーディスク、光ディスク、CD-ROM、光磁気ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カードのうちの任意のタイプ、あるいは電子命令を格納するのに好適な任意のタイプの媒体のようなコンピュータ読取可能記憶媒体に格納され得るが、これらに限られるものではない。
【0089】
本明細書における教示に従うプログラムとともに様々な汎用システムを用いてもよい。あるいは、方法を実施するためのより専門的な装置を構築することが便利であることが分かる場合がある。これらの様々なシステムのための構造は、上記の説明においての述べられたようなものである。加えて、本開示は、特定のプログラミング言語を参照して述べられていない。本明細書で述べられているような開示の教示を実現するために様々なプログラミング言語を用いることができることは理解されよう。
【0090】
本開示は、命令が記録された機械読取可能な媒体を含み得るコンピュータプログラムプロダクト、又はソフトウェアとして提供され得る。これは、本開示によるプロセスを実施するようにコンピュータシステム(又は他の電子デバイス)をプログラムするために使用され得る。機械読取可能な媒体は、機械(例えばコンピュータ)によって読み取ることが可能な形態で情報を格納するための任意の機構を含んでいる。例えば、機械読取可能な(例えばコンピュータ読取可能な)媒体は、リードオンリーメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどの機械(例えばコンピュータ)読取可能な媒体を含んでいる。
【0091】
上述した開示においては、本開示の実施例がその特定の実施例を参照して述べられている。以下の特許請求の範囲で述べられているような本開示の実施例のより広範な精神及び範囲から逸脱することなく、様々な改良が可能であることは明らかであろう。したがって、本開示及び図面は、限定的な意味ではなく例示的な意味で考えられるべきである。
図1A
図1B
図2A
図2B
図2C
図2D
図2E
図3
図4
図5
図6
図7A
図7B
図7C
図8
図9
【国際調査報告】