(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-10
(54)【発明の名称】巨視的フィンガプリンティング
(51)【国際特許分類】
G06T 7/00 20170101AFI20241203BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024536376
(86)(22)【出願日】2022-12-15
(85)【翻訳文提出日】2024-07-16
(86)【国際出願番号】 US2022053078
(87)【国際公開番号】W WO2023114435
(87)【国際公開日】2023-06-22
(31)【優先権主張番号】202121058401
(32)【優先日】2021-12-15
(33)【優先権主張国・地域又は機関】IN
(81)【指定国・地域】
(71)【出願人】
【識別番号】522160790
【氏名又は名称】エントルピー インコーポレーテッド
(71)【出願人】
【識別番号】524228317
【氏名又は名称】サンガッパー,ヘマンス
(71)【出願人】
【識別番号】524228328
【氏名又は名称】ジャイスワル,エイマン
(71)【出願人】
【識別番号】524228339
【氏名又は名称】ヤーダブ,アキレシュ
(71)【出願人】
【識別番号】524228340
【氏名又は名称】リカー,プラティック
(71)【出願人】
【識別番号】524228351
【氏名又は名称】シャルマ,アシュレシュ
(74)【代理人】
【識別番号】100109896
【氏名又は名称】森 友宏
(72)【発明者】
【氏名】サンガッパー,ヘマンス
(72)【発明者】
【氏名】ジャイスワル,エイマン
(72)【発明者】
【氏名】ヤーダブ,アキレシュ
(72)【発明者】
【氏名】リカー,プラティック
(72)【発明者】
【氏名】シャルマ,アシュレシュ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096DA02
5L096EA14
5L096FA02
5L096FA35
5L096JA03
5L096JA11
5L096KA04
5L096KA15
(57)【要約】
本明細書で述べられる装置、方法、システム及びコンピュータプログラム製品の様々な実施形態は、物体の物理的インスタンスを描写する基準画像を登録する指紋エンジンに向けられている。この指紋エンジンは、対象物体の物理的インスタンスを描写するクエリ画像を取得する。指紋エンジンは、基準画像とクエリ画像とを比較する。指紋エンジンは、基準画像とクエリ画像との間の一致度を検出することに基づいて対象物体の真正性を決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、
物体の物理的インスタンスを描写する基準画像を登録し、
対象物体の物理的インスタンスを描写するクエリ画像を取得し、
前記基準画像と前記クエリ画像とを比較し、
前記基準画像と前記クエリ画像との間の一致度を検出することに基づいて前記対象物体の真正性を決定する、
方法。
【請求項2】
前記基準画像を登録することは、
前記物体の複数のプレビュー画像からなるビデオフィードを受信し、
それぞれのプレビュー画像に対して、
前記それぞれのプレビュー画像のぼけの程度を決定し、
前記それぞれのプレビュー画像に対してぼけスコアを生成し、
前記ぼけスコアがぼけ閾値を満足するか否かを判断し、
前記ぼけスコアが前記ぼけ閾値を満足すると判断した場合に、前記物体の画像取得を開始するプロンプトをトリガし、
取得した画像を前記物体の登録画像として保存する
ことを含む、
請求項1に記載のコンピュータにより実現される方法。
【請求項3】
前記物体の複数のプレビュー画像からなるビデオフィードを受信し、
それぞれのプレビュー画像が受信されるときに、セグメント化機械学習モデルを前記それぞれのプレビュー画像に適用することにより、前記それぞれのプレビュー画像中の注目領域を特定し、
前記セグメント化機械学習モデルから前記注目領域用のテンプレートを受信し、
前記テンプレートと前記それぞれのプレビュー画像との間のアライメントがアライメント閾値を満足すると判断する際に、前記物体の画像取得を開始するプロンプトをトリガし、
前記取得された画像にぼけ検出を適用し、
前記取得された画像を前記物体の登録画像として保存する
ことをさらに含む、請求項1に記載のコンピュータにより実現される方法。
【請求項4】
対象物体の物理的インスタンスを描写するクエリ画像を取得することは、
前記対象物体の複数のプレビュー画像からなるビデオフィードを受信し、
前記登録画像の半透明のオーバレイを生成し、
それぞれの対象プレビュー画像が受信されると、前記登録画像と前記それぞれの対象プレビュー画像との間のアライメントの程度を決定し、
前記登録画像の前記半透明の画像バージョンと前記それぞれの対象プレビュー画像との間のアライメントの程度を決定し、
前記アライメントの程度がアライメント閾値を満足すると判断した場合に、前記対象物体のクエリ画像取得を開始するプロンプトをトリガする
ことを含む、
請求項1に記載のコンピュータにより実現される方法。
【請求項5】
前記登録画像の前記と前記それぞれの対象プレビュー画像との間のアライメントの程度を決定することは、
複数の対象プレビュー画像の窓に時間軸スムージングを適用し、
時間軸スムージングを適用することに基づいてアライメントスコアを決定する
ことを含み、前記アライメントは、現在のアライメントの程度を表す、
請求項1に記載のコンピュータにより実現される方法。
【請求項6】
前記基準画像と前記クエリ画像とを比較することは、
前記クエリ画像及び前記基準画像に描写されている注目領域により前記クエリ画像及び前記基準画像をクロップし、
トランスフォーマML(LoFTR)モデルを用いた局所特徴量マッチングにより前記クロップされたクエリ画像及びクロップされた基準画像を整列する
ことを含む、
請求項1に記載のコンピュータにより実現される方法。
【請求項7】
トランスフォーマML(LoFTR)モデルを用いた局所特徴量マッチングにより前記クロップされたクエリ画像及びクロップされた基準画像を整列することは、
前記LoFTRモデルにより特定される1以上のマッチング点に基づいて変換クエリ画像を生成し、
複数の対応するブロックセクションにより前記変換クエリ画像及び前記基準画像を分割し、
前記変換クエリ画像及び前記基準画像のそれぞれのブロックセクションの特徴量を抽出し、
それぞれのブロックセクションについて、前記変換クエリ画像の前記それぞれのブロックセクションの特徴量を前記基準画像の対応する前記それぞれのブロックセクションの特徴量と比較し、
前記ブロックセクションの間の類似度の分布に基づいて前記クエリ画像と前記基準画像との間の一致度を決定する
ことを含む、
請求項6に記載のコンピュータにより実現される方法。
【請求項8】
1以上のプロセッサと1組以上の命令を含む非一過性コンピュータ読取可能媒体とを備えるシステムであって、前記命令は、前記1以上のプロセッサにより実行された際に、前記システムに
物体の物理的インスタンスを描写する基準画像を登録し、
対象物体の物理的インスタンスを描写するクエリ画像を受信し、
前記基準画像と前記クエリ画像とを比較し、
前記基準画像と前記クエリ画像との間の一致度を検出することに基づいて前記対象物体の真正性を決定する
ことを含む動作を行わせる、
システム。
【請求項9】
1以上のプロセッサにより実行されるように具現化されるコンピュータ読取可能プログラムコードを有する非一過性コンピュータ読取可能媒体を含むコンピュータプログラム製品であって、前記プログラムコードは、
物体の物理的インスタンスを描写する基準画像を登録し、
対象物体の物理的インスタンスを描写するクエリ画像を受信し、
前記基準画像と前記クエリ画像とを比較し、
前記基準画像と前記クエリ画像との間の一致度を検出することに基づいて前記対象物体の真正性を決定する
命令を含む、
コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願に対する相互参照
本出願は、2021年12月15日に提出された肉眼指紋法という表題のインド特許出願202121058401の利益を主張するものであり、その全体は参照により組み込まれる。
【背景技術】
【0002】
背景
製品の世界的な偽造は深刻な問題である。皮革製品、時計、衣服、骨董品、美術などの高級な贅沢品については、この問題は、メーカ及び有名ブランドを深刻に脅かすものとなる。また、高価値であることは別として、これらの製品(又は物品)は最も需要があるものであり、これによってこれらの製品はより偽造されやすくなっている。偽造に対する保護として、ブランドは、すべての製品が一意に識別されることを求めている。
【発明の概要】
【0003】
概要
高級ブランドは、概して、製品に例えば皮革のような自然由来の(時としてそのような処理形成がなされた)材料を用いている。これらの材料の表面は、一意に識別可能なテクスチャを有している。さらに、これらの製品が手作りの場合もある。製品が機械により製造されるとしても、製造プロセスは、製品のそれぞれの個別インスタンスの表面上に一意な跡を残す。
【0004】
本明細書において指紋エンジンの様々な実施形態が開示される。これは、製品の種類(すなわち物体の種類、物品の種類)の物理的インスタンスのデジタル指紋を決定する。指紋エンジンは、さらに、対象物体が、実際に、デジタル指紋に対応する同一の物体インスタンスであるか否かを判断するために、デジタル指紋と対象物体の画像との間で比較を行う。これにより、指紋エンジンの実施形態は、それぞれの顧客が現在所有している物体の種類の物理的インスタンスの真正性を顧客が確立することを可能にする。
【0005】
本明細書で述べられる装置、方法、システム及びコンピュータプログラム製品の様々な実施形態は、物体の物理的インスタンスを描写する基準画像を登録する指紋エンジンに向けられている。この指紋エンジンは、対象物体の物理的インスタンスを描写するクエリ画像を取得する。指紋エンジンは、基準画像とクエリ画像とを比較する。指紋エンジンは、基準画像とクエリ画像との間の一致度を検出することに基づいて対象物体の真正性を決定する。真正性を決定する際に、指紋エンジンは、当該対象物体の指紋-FPを決定する。また、本明細書に開示される様々な実施形態は、物体の指紋-FPを生成することも伴い得る。
【0006】
指紋エンジンの1以上の実施形態は、登録段階と比較段階とを実行し得る。登録段階中には、あるタイプの物体の物理的インスタンスの規定領域の画像が(スマートフォンのような)モバイルコンピュータデバイスのカメラ及び指紋エンジンモバイルデバイスのソフトウェアアプリケーションを介して取得され得る。これにより、指紋エンジンは、登録段階により生成されたあるタイプの物体の当該物理的インスタンスの登録画像を保存する。その後、登録画像は、比較段階において基準画像として使用され得る。
【0007】
ある実施形態においては、指紋エンジンの第1の部分は、エンドカスタマ(すなわちエンドユーザ)が容易に利用することができるスマートフォンベースのソフトウェアアプリケーションであり得る。指紋エンジンの第2の部分は、クラウドベースシステムであり得る。ある実施形態においては、包括的物体登録のためのぼけ検出及び定義済み物体登録のためのぼけ検出を加えたセグメント化がスマートフォンベースのソフトウェアアプリケーションを介して指紋エンジンにより行われ得る。指紋エンジンは、登録画像をクラウドベースシステムに保存した。
【0008】
ある実施形態においては、包括的物体比較のための(登録画像を用いた)半透明の画像の生成及び粗いアライメントがスマートフォンベースのソフトウェアアプリケーションを介して指紋エンジンにより行われ得る。ある実施形態においては、定義済み物体比較のための半透明の画像生成、粗いアライメント及びセグメント化がスマートフォンベースのソフトウェアアプリケーションを介して指紋エンジンにより行われ得る。ある実施形態においては、半透明の画像は、登録画像の半透明のオーバレイであり得る。
【0009】
ある実施形態においては、包括的物体比較のための微細アライメント、特徴量抽出及びマッチスコアリングがクラウドベースシステムにおいて指紋エンジンにより行われ得る。ある実施形態においては、定義済み物体比較のためのホモグラフィ推定、アライメント、特徴量抽出、及びマッチスコアリングがクラウドベースシステムにおいて指紋エンジンにより行われ得る。
【0010】
本開示が適用できるさらなる領域は、詳細な説明、特許請求の範囲及び図面から明らかになるであろう。詳細な説明及び具体例は、説明だけを目的として意図されており、本開示の範囲を制限することを意図されたものではない。
【図面の簡単な説明】
【0011】
図面の簡単な説明
本明細書においては、特定の実施形態が詳細に参照される。実施形態の一部又はそれらの態様が図面に示されている。
【0012】
【
図1】
図1は、ある実施形態が動作し得る例示的な環境を示す図である。
【0013】
【
図2】
図2は、ある実施形態において実施され得る例示的な方法を示す図である。
【0014】
【
図4】
図4は、ある実施形態が動作し得る例示的な環境を示す図である。
【0015】
【
図5】
図5は、ある実施形態において実施され得る例示的な方法を示す図である。
【0016】
【
図6】
図6は、ある実施形態が動作し得る例示的な環境を示す図である。
【発明を実施するための形態】
【0017】
詳細な説明
本明細書においては、特定の実施形態が詳細に参照される。実施形態の一部又はそれらの態様は図面に示されている。
【0018】
本明細書に含まれる議論、説明、推敲及び図解は、そのすべて又はその少なくとも一部がデータにより表され得るもので、1以上のコンピュータソフトウェアモジュール及び/又はコンピュータハードウェアモジュールにより具現化及び/又は処理され得るものであることが理解される。
【0019】
加えて、本明細書に含まれる議論、説明、推敲及び図解は、非一過性コンピュータ読取可能媒体、コンピュータシステム及び/又はコンピュータプログラム製品上に実現され得る。加えて、本明細書に含まれる議論、説明、推敲及び図解に含まれるいずれの部分及びいずれの特徴もさらにデータとして表され得る。
【0020】
説明をわかりやすくするために、特定の実施形態を参照して本発明が述べられているが、本発明は、述べられている実施形態に限定されるものではないことは理解されるべきである。反対に、本発明は、いずれかの請求項により規定される範囲内に含まれ得るような代替物、変形物、及び均等物をカバーするものである。本発明の以下の実施形態は、特許請求の範囲に記載された発明に対して普遍性を失うことなく、また制限を課すことなく、述べられるものである。以下の説明においては、本発明を完全に理解させるために具体的な詳細が述べられている。これらの具体的な詳細の一部又は全部がなくても本発明は実施され得る。加えて、本発明を不必要に不明確にするのを避けるために、公知の特徴は詳細には述べられていない場合がある。
【0021】
加えて、この例示的な特許に述べられている例示的な方法のステップは、本明細書において提示されている順番とは異なる順番で行われてもよいことは理解すべきである。また、例示的な方法の一部のステップは、連続的に行われるのではなく、並行して行われてもよい。また、例示的な方法のステップは、ネットワーク接続された環境における異なるコンピュータにより一部のステップが行われるネットワーク環境において行われてもよい。
【0022】
ある実施形態は、コンピュータシステムにより実現される。コンピュータシステムは、プロセッサ、メモリ、及び非一過性コンピュータ読取可能媒体を含み得る。メモリ及び非一過性媒体は、本明細書で述べられている方法及びステップを行うための命令を格納し得る。
【0023】
実施形態が動作し得る例示的なネットワーク環境の図が
図1に示されている。この例示的な環境140においては、2台のクライアント141,142がローカルストレージ151を有するサーバ150にネットワーク145越しに接続されている。この環境におけるクライアントとサーバはコンピュータであり得る。サーバ150は、クライアントからの要求を扱うように構成され得る。
【0024】
この例示的な環境140は、簡略化のために2台のクライアントと1台のサーバだけを有するものとして図示されているが、実際には、より多く又はより少ない台数のクライアントとサーバが存在し得る。コンピュータをクライアント及びサーバと呼んでいるが、クライアントはサーバの役割も果たすことができ、サーバはクライアントの役割も果たすことができる。ある実施形態においては、クライアント141,142は、サーバと通信するだけではなく互いにも通信し得る。また、サーバ150は他のサーバと通信し得る。
【0025】
ネットワーク145は、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、電話網、無線ネットワーク、イントラネット、インターネット、又はネットワークを組み合わせたものであり得る。サーバ150は、接続媒体160越しにストレージ152に接続され得る。接続媒体160は、バス、クロスバー、ネットワーク、又は他のインタコネクト機器であり得る。ストレージ152は、複数のストレージデバイスのネットワークとして実現されてもよいが、単一物として図示されている。ストレージ152は、ファイルシステム、ディスク、データベース、又は他のストレージであり得る。
【0026】
一実施形態においては、クライアント141は、本明細書における方法200又は他の方法を実施し、その結果として、ファイルをストレージ152に格納し得る。これは、クライアント141とサーバ150との間のネットワーク145越しの通信を介して実現され得る。例えば、クライアントは、ファイルを特定の名前でストレージ152に格納する要求をサーバ150に通信し得る。サーバ150は、その要求に応答して、そのファイルを特定の名前でストレージ152に格納し得る。保存されるファイルは、クライアント141上に存在しているものであり得るか、サーバのローカルストレージ151に既に存在しているものであり得る。他の実施形態においては、サーバ150は、上記要求に応答して、上記ファイルを特定の名前でストレージ151に格納し得る。保存されるファイルは、クライアント141上に存在しているものであり得るか、ストレージ152のようなネットワークを介してアクセス可能な他のストレージに存在しているか、(例えばピアツーピアシステムにおける)クライアント142上のストレージに存在しているものでさえあり得る。
【0027】
上記の議論によれば、実施形態は、ファイルをディスクのようなローカルストレージ上又はフラッシュドライブ、CD-R、又はDVD-Rのようなリムーバブルメディア上に格納するために使用され得る。さらに、実施形態は、バス、クロスバー、ネットワーク、又は他のインタコネクト機器のような接続媒体越しにコンピュータに接続される外部ストレージデバイスにファイルを格納するために使用され得る。加えて、実施形態は、リモートサーバ上又はリモートサーバにアクセス可能なストレージデバイス上にファイルを格納するために使用され得る。
【0028】
さらに、クラウドコンピューティングは、ファイルがリモートサーバ又はリモートストレージシステム上に格納されることが多い他の例である。クラウドコンピューティングとは、簡単に拡張性を実現できるように迅速に備蓄することが可能なプールされたネットワーク資源をいう。クラウドコンピューティングは、ソフトウェア・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、インフラストラクチャ・アズ・ア・サービス、及び類似の特徴を提供するために使用することができる。クラウドコンピューティング環境においては、エンドユーザは、ファイルを「クラウド」に格納することができる。「クラウド」は、ファイルを格納している実際のハードウェアはエンドユーザにわからないが、ファイルがリモートネットワーク資源上に格納されることを意味している。
【0029】
図2のフローチャート200に示されているように、指紋エンジンは、物体の物理的インスタンスを描写する基準画像を登録する(ステップ202)。指紋エンジンは、対象物体の物理的インスタンスを描写するクエリ画像を取得する(ステップ204)。指紋エンジンは、基準画像とクエリ画像とを比較する。指紋エンジンは、基準画像とクエリ画像との間の一致度を検出することに基づいて対象物体の真正性を決定する(ステップ206)。
【0030】
図3に示されているように、指紋エンジンは、ソフトウェアアプリケーション302を介してとクラウドベースシステム304を介して同時にデプロイされ得る。ソフトウェアアプリケーション302とクラウドベースシステム304とは、指紋エンジンの1以上の動作の実行、完了及び/又は報告に関して互いにデータを送信し合う。このため、ソフトウェアアプリケーション302が指紋エンジンのフロントエンド部であってもよいし、クラウドベースシステム304が指紋エンジンのバックエンド部であってもよい。ある実施形態においては、ソフトウェアアプリケーション302は、モバイルデバイスのソフトウェアコンピュータアプリケーションであってもよい。
【0031】
様々な実施形態においては、指紋エンジンの1以上のモジュールは、ソフトウェアアプリケーション302を介して実現され得る。指紋エンジンの1以上のモジュールの一部は、ソフトウェアアプリケーション302を介して実現され得る。指紋エンジンの1以上の動作は、ソフトウェアアプリケーションを介して実行され得る。指紋エンジンの1以上の動作の一部は、ソフトウェアアプリケーション302を介して実行され得る。
【0032】
様々な実施形態においては、指紋エンジンの1以上のモジュールは、クラウドベースシステム304を介して実現され得る。指紋エンジンの1以上のモジュールの一部は、クラウドベースシステム304を介して実現され得る。指紋エンジンの1以上の動作は、クラウドベースシステム304を介して実行され得る。指紋エンジンの1以上の動作の部分は、クラウドベースシステム304を介して実行され得る。
【0033】
【0034】
登録段階:ぼけ検出及びセグメント化
【0035】
【0036】
指紋エンジンは、登録段階402においてぼけ検出及びセグメント化を実行する。
図4に示されるように、登録段階402については2つの異なるルート、包括的な物体画像登録(「包括的物体登録」)404のための第1の登録ルートと、定義済み物体画像登録(「定義済み物体登録」)406のための第2の登録ルートとが存在する。定義済み物体は、既知である特定の予想形状(又は寸法)を有するタイプの物体であることが理解される。例えば、定義済み物体は、時計又は野球ボールであり得る。ぼけ検出は、包括的物体登録404のために実行される。ぼけ検出を加えたセグメント化は、定義済み物体登録406のために実行される。
【0037】
登録段階402の包括的物体登録404のルートに関して、指紋エンジンは、ぼけ検出用の機械学習(「ML」)モデルを実現する。例えば、機械学習モデルはMobileNet V2モデルであり得る。エンドユーザは、モバイルコンピュータデバイスを介して物体の画像を取得しようとするので、指紋エンジンは、対象物体の実際の画像が取得される前に物体の画像のぼけを検出しようとする。画像のぼけは、エンドユーザがモバイルデバイスを物体に近づけすぎたり遠ざけすぎたりすることにより生じ得る。
【0038】
ぼけ検出のために、指紋エンジンは、モバイルコンピュータデバイス上のプレビュー画像におけるぼけの程度を絶えず監視している。例えば、エンドユーザは、モバイルコンピュータデバイスのカメラを物理的に物体の近くに置こうとするので、複数の画像を含むビデオフィードが生成される。ビデオフィードの画像のそれぞれは、プレビュー画像として考えることができる。すなわち、プレビュー画像は、画像取得前におけるビデオフィードのフレーム中の物体の描写である。リアルタイムでは、指紋エンジンは、プレビュー画像中に描写された現在のぼけの程度を示すぼけスコアを絶えず決定し、更新している。
【0039】
現在のぼけスコアが許容可能なぼけスコア範囲内にあることを判断する際に、指紋エンジンは、プレビュー画像が登録に適した許容可能な画像を表していることをエンドユーザに通知する。通知の受領に基づいて、エンドユーザは、物体の画像を取得し得る。取得された物体の画像は、指紋エンジンに送信され、指紋エンジンにその物体のための登録画像として格納される。
【0040】
登録段階402の定義済み物体登録406のルートについては、指紋エンジンは、ぼけ検出も実行する前に、セグメント化の付加的なステップを実行する。エンドユーザがモバイルコンピュータデバイスのカメラを介して物体の画像を取得しようとする際に、定義済み物体登録406のルートが実行される。様々な実施形態においては、指紋エンジンのセグメント化MLモデルが、定義済み物体登録のルートのためにモバイルコンピュータデバイス上に実現され得る。
【0041】
エンドユーザがモバイルコンピュータデバイスのカメラを介して物体の画像を取得しようとするとき、指紋エンジンは、プレビュー画像をセグメント化MLモデルに入力する。このセグメント化MLモデルは、物体の注目領域の形状を描写するセグメント化出力を返す。例えば、物体が時計である場合には、注目領域はベゼル及びラグであり得るし、時計のストラップは含まないこともあり得る。このため、セグメント化出力は、注目領域により定義されたテンプレート(又はセグメント化マスク)であり得る。例えば、時計である物体に対するセグメント化出力は、ベゼル及びラグの形状のシルエットであり得る。
【0042】
エンドユーザが物体の画像を取得しようとするときに、エンドユーザは、セグメント化出力をテンプレートとして用いることができる。指紋エンジンは、テンプレートと物体のプレビュー画像との間の現在のアライメントを絶えず監視している。指紋エンジンは、物体のプレビュー画像に対するテンプレートの現在の配置に基づいてダイス係数を絶えず決定する。指紋エンジンは、現在のダイス係数がダイス係数閾値内にあると判断すると、テンプレートが物体のプレビュー画像に適切に整列していることをエンドユーザに通知する。通知の受領に基づいて、エンドユーザは、テンプレートに適切に整列しているときに画像を取得することができる。指紋エンジンは、物体の取得画像を受け取り、取得画像に対してぼけ検出を実行する。
【0043】
ぼけ検出後、指紋エンジンは、その画像を物体に対する登録画像として保存する。登録段階402のいずれかのルート中の登録画像の保存は、登録画像の特徴量の抽出を含み得ることが理解される。ある実施形態においては、登録画像の保存及び特徴量抽出は、登録画像の取得がなされたモバイルコンピュータデバイスから離れた指紋エンジンのクラウドベースシステムで実行され得る。
【0044】
【0045】
比較段階:粗いアライメント、時間軸スムージング及びホモグラフィ推定
【0046】
【0047】
比較段階中は、エンドユーザは、現在所有している対象物体の物理的インスタンス(「対象物体」)の真正性を決定したいと思う場合がある。そのために、比較段階は、対象物体のクエリ画像に対して比較される基準画像として、過去に保存した登録画像を利用する。指紋エンジンは、基準画像及びクエリ画像の特徴量を比較及び分析して、クエリ画像に描写されている現在の対象物体が基準画像に描写されているものと同一の物体であるか否かを決定する。すなわち、指紋エンジンは、現在の対象物体が、基準画像として使用されている登録画像を取得するために使用された物理的物体の同一インスタンスであるか否かを決定しようとする。
【0048】
指紋エンジンは、基準画像の半透明(透明)のバージョンを生成し、その半透明の画像をエンドユーザに提供する。エンドユーザは、モバイルコンピュータデバイス上に表示される半透明の画像を同時にモバイルコンピュータデバイス上に表示される(ビデオフィードからの)対象物体のプレビュー画像に整列させようとするときのガイドとして半透明の画像を利用することができる。
【0049】
エンドユーザが対象物体のプレビュー画像を半透明の画像に整列させようとするとき、指紋エンジンは、対象物体のプレビュー画像と登録画像との間の現在のアライメントの程度の測定値に基づくアライメントスコアを絶えず決定している。現在のアライメントスコアがアライメントスコア閾値範囲内にあると判断すると、指紋エンジンは、対象物体のクエリ画像を取得するようにエンドユーザに通知する。半透明の画像をガイドとして利用することにより、基準画像にほぼ整列されたクエリ画像をエンドユーザが取得する可能性が高まる。
【0050】
ある実施形態においては、アライメントの程度を決定するために、指紋エンジンは、以前の登録段階402中に使用された1以上のMLモデルを利用する。ある実施形態においては、登録段階402の1以上のMLモデルは、モバイルコンピュータデバイスの指紋エンジンのソフトウェアアプリケーションにより実現され得る。例えば、指紋エンジンは、半透明の登録画像の現在のアライメントをクエリ画像のプレビューと比較するための特徴ベクトルとしてぼけ検出MLモデルのエンコーダ出力を使用することができる。指紋エンジンは、半透明の画像とクエリ画像のプレビュー(すなわちモバイルコンピュータデバイスからのビデオフィードの各フレーム)のアライメントの程度を決定しつつ、(登録段階402中になされたのと同様の)ダイス係数をさらに決定することができる。
【0051】
対象物体のプレビュー画像がビデオフィードのそれぞれのフレームを介し指紋エンジンに受信されると、指紋エンジンは、時間軸スムージングによりアライメントをさらに評価する。エンドユーザがプレビュー画像を半透明の画像に整列させようとモバイルコンピュータデバイスを操作するときに、それぞれのフレームのジタリネス(jitteriness)が生じ得る。ジタリネスの結果は、クエリ画像を取得するプロンプトが直ぐに現れた後に消えることによりユーザに苛立つ経験をさせ得るジッタ効果であり得る。
【0052】
ジッタ効果を避けるために、指紋エンジンは、ビデオフィードからの各プレビュー画像のアライメントスコアが平滑化されるように各プレビュー画像をさらに処理する。指紋エンジンは、複数のプレビュー画像(すなわちビデオフィードの個々のフレーム)のスムージング窓に時間軸スムージングを適用する。例えば、スムージング窓は、連続する7つのフレームを含むものとして定義され得る。指紋エンジンは、スムージング窓中のフレームの個々の未処理のアライメントスコアにメディアンフィルタを適用することにより平滑アライメントスコアを決定する。指紋エンジンは、現在の平滑アライメントスコアがクエリアライメント閾値範囲内にあるか否かに基づいてクエリを取得するようにユーザに通知する。エンドユーザは、通知されると、クエリ画像を取得する。
【0053】
図5のフローチャート500に示されるように、比較段階502が包括的な対象物体を描写しているクエリ画像を伴う場合には、指紋エンジンは、基準画像及びクエリ画像をクロップする(ステップ504)。指紋エンジンは、トランスフォーマML(LoFTR)モデルを用いた局所特徴量マッチングのようなMLモデルを介してクロップされた画像の間の点の対応関係を決定する(ステップ506)。指紋エンジンは、ホモグラフィ画像アライメントを行う(ステップ508)。指紋エンジンは、整列された画像の高密度記述子積(dense descriptor product)を決定する(ステップ510)。指紋エンジンは、ドット積の記述子のヒストグラムを決定する(ステップ512)。
【0054】
様々な実施形態においては、比較段階502中に、指紋エンジンは、クエリ画像及び基準画像の注目領域を特定する。指紋エンジンは、注目領域を描写するために両方の画像をクロップする504。クエリ画像は取得されたときに密接に整列されているので、クロップされた基準画像とクエリ画像との間の類似度は高くなる。指紋エンジンは、クロップされた基準画像とクエリ画像を、クロップされた基準画像とクエリ画像との間のマッチング点を算出する(506)トランスフォーマML(LoFTR)モデルを用いた局所特徴量マッチングによりさらに整列する。指紋エンジンは、両方の画像が最終的に完全に整列するように、クロップされたクエリ画像をマッチング点により回転及び変換する(「変換クエリ画像」)。本明細書の実施形態は、LoFTRモデルを使用することに限定されない。
【0055】
指紋エンジンは、基準画像と変換クエリ画像の両方を同数のブロックセクションにより分割する。指紋エンジンは、基準画像と変換クエリ画像の両方のそれぞれのブロックセクションの特徴量を算出する。指紋エンジンは、基準画像及び変換クエリ画像からの同一のブロックセクションの特徴量を比較する。
【0056】
指紋エンジンによる両方の画像からの特徴量の比較は、それぞれのブロックセクションに対応するヒートマップを生成する。このヒートマップは、画像間のどのブロックセクションが互いに高い相関性を有しており、画像間のどのブロックセクションがそのような相関性を有していないのかを表すものである。指紋エンジンは、ブロックセクション間の一致度の分布に基づいて画像間に一致があるか否かを決定する。分布が閾値を満足する場合には、指紋エンジンは、比較段階502の実行により基準画像とクエリ画像との間の一致が特定されたと判断し、クエリ画像に描写されている対象物体は、基準画像について使用された登録画像中の物理的物体と同一のインスタンスであると判断する。
【0057】
しかしながら、クエリ画像が定義済み対象物体を描写している場合には、比較段階502は、指紋エンジンがセグメント化ネットワークを利用してクエリ画像及び基準画像の背景領域をマスクする付加的なステップを伴う。これにより、マスク領域がクエリ画像及び基準画像の内部に特定される。一致度を決定するために、指紋エンジンは、マスク領域内に位置しているブロックセクションだけの特徴量を算出する。
【0058】
既に述べたように、指紋エンジンは、マッチング点を特定するためにLoFTRモデルを実行する。指紋エンジンは、画像解像度のより低い範囲で特徴量を抽出することによりLoFTRモデルを実行する。その後、指紋エンジンは、元の画像の解像度(すなわち基準画像の解像度、クエリ画像の解像度)に対してホモグラフィスケーリングを実行する。
【0059】
【0060】
指紋抽出
【0061】
【0062】
指紋エンジンの実施形態は照明の変化を取り扱うので、制御された照明条件は必要とされない。スマートフォンのカメラから取得される、様々な種類の物体の指紋採取可能な表面の外観には多くの変化がある。物体の指紋をその物体の画像中の照明条件によらず一貫して利用できることを保証するために、指紋エンジンのトレーニング段階が実行されてSuperPointネットワークに基づく特徴量抽出ネットワークが構築される。トレーニング段階は、様々な種類の物体の複数の画像の生成と、その後、コンピュータグラフィックツールを用いて画像中の物体のテクスチャ、また画像中の物体の照明をランダムに人工的に修正することとを含んでいる。
【0063】
別の言い方をすると、トレーニング段階は、異なる物体に対する、また異なる方向(すなわち物体に描写されている画像の眺望)に対する数多くの画像のテクスチャの質及び/又は照明条件のランダム化された修正に基づいて画像トレーニングデータセットを生成することを含んでいる。そして、画像トレーニングデータセット中の物体の画像は、その画像の数多くのバージョンにより表され得る。それぞれのバージョンは、同じ物体を様々なテクスチャと照明で描写するものである。そして、特徴量抽出ネットワークは、生成された画像トレーニングデータセット上で訓練される。
【0064】
図6は、本明細書で述べられる方法論のうち任意の1つ以上をマシンに行わせるための1組の命令が実行され得るコンピュータシステムの例示マシンを示している。別の実施例では、マシンは、LAN、イントラネット、エクストラネット、及び/又はインターネットにおける他のマシンに接続(例えばネットワーク接続)されていてもよい。マシンは、クライアントーサーバネットワーク環境におけるサーバ又はクライアントマシンの能力で、ピアツーピア(又は分散)ネットワーク環境におけるピアマシンとして、又はクラウドコンピューティングインフラストラクチャ又は環境におけるサーバ又はクライアントマシンとして動作し得る。
【0065】
このマシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチ又はブリッジ、あるいはそのマシンによりなされる動作を特定する(逐次的な又はそれ以外の)1組の命令を実行可能な他のマシンであり得る。さらに、単一のマシンが図示されているが、「マシン」という用語は、本明細書で述べられる方法のうち任意の1つ以上の方法を実施する1組の(又は複数組の)命令を個々に又は一緒に実行するマシンの集合をも含むものとして解釈されるものとする。
【0066】
コンピュータシステム例700は、演算処理デバイス702、メインメモリ704(例えば、リードオンリーメモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)又はランバスDRAM(RDRAM)のようなダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ706(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びデータストレージデバイス718を含んでおり、これらはバス730を介して互いに通信するようになっている。
【0067】
演算処理デバイス702は、マイクロプロセッサ、中央演算処理ユニットなどのような1以上の汎用演算処理デバイスを表している。より具体的には、演算処理デバイスは、複合命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は他の命令セットを実施するプロセッサ、又は命令セットの組み合わせを実施するプロセッサであり得る。また、演算処理デバイス702は、専用集積回路(ASIC)、書換可能ゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどのような1以上の専用演算処理デバイスであり得る。演算処理デバイス702は、本明細書で述べられる動作及びステップを行うための命令726を実行するように構成される。
【0068】
コンピュータシステム700は、ネットワーク720越しに通信するためのネットワークインタフェイスデバイス708をさらに含み得る。また、コンピュータシステム700は、ビデオディスプレイユニット710(例えば、液晶ディスプレイ(LCD)又は陰極線管(CRT))、英数字入力デバイス712(例えばキーボード)、カーソル制御デバイス714(例えばマウス)、グラフィック処理ユニット722、信号生成デバイス716(例えばスピーカ)、グラフィック処理ユニット722、ビデオ処理ユニット728、及びオーディオ処理ユニット732を含み得る。
【0069】
データストレージデバイス718は、本明細書で述べられる方法又は機能のうちの1つ以上を具現化する1組以上の命令又はソフトウェア726が格納されている機械読取可能な記憶媒体724(コンピュータ読取可能媒体としても知られる)を含み得る。また、命令726は、機械読取可能記憶媒体をも構成するコンピュータシステム700、メインメモリ704及び演算処理デバイス702によるその実行中に、メインメモリ704内及び/又は演算処理デバイス702内に完全に又は少なくとも部分的に存在し得る。
【0070】
一実施例においては、命令726は、本明細書の開示を実施するデバイスの構成要素に対応する機能を実現するための命令を含んでいる。機械読取可能な記憶媒体724は、実施例においては単一の媒体であるものとして示されているが、「機械読取可能な記憶媒体」という用語は、1組以上の命令を格納する単一の媒体又は複数の媒体(例えば、集中データベース又は分散データベース、及び/又は関連キャッシュ及びサーバ)を含むものとして解釈されるべきである。また、「機械読取可能な記憶媒体」という用語は、本開示の方法のうち1つ以上の方法を装置に実施させる、装置による実行のための1組の命令を格納又は符号化することが可能な任意の媒体を含むものとして解釈されるものとする。したがって、「機械読取可能な記憶媒体」という用語は、固体状態メモリ、光学媒体及び磁気媒体を含むものとして解釈されるものとするが、これらに限られるものではない。
【0071】
先に述べた詳細な説明の一部は、コンピュータメモリ内のデータビット上の演算のアルゴリズム及び記号的表現の意味において提示されている。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者がその内容を他の当業者に最も効果的に伝達するために用いられるものである。ここでは、アルゴリズムは、一般的に、所望の結果に導くための自己矛盾のない一連の演算であるとして認識される。これらの演算は、物理量の物理的操作を必要とするものである。必ずしもそうではないが、通常、これらの物理量は、保存可能、組み合わせ可能、比較可能、及びそうでなければ操作可能な電気信号又は磁気信号の形態を取る。主に慣用上の理由で、これらの信号をビット、値、要素、符号、文字、語、数などというのが時として便利であることが分かっている。
【0072】
しかしながら、これらの用語及び類似の用語のすべては、適切な物理量に関連付けられているべきであり、これらの物理量に適用される便利なラベルに過ぎないことに留意すべきである。上記の議論から明らかにそうではないと特に述べていない限り、明細書を通して、「特定」又は「決定」又は「実行」又は「行う」又は「収集」又は「生成」又は「送信」などの用語を用いた説明は、物理的(電子的)な量として表されるデータをコンピュータシステムのレジスタ及びメモリ内で操作し、コンピュータシステムのメモリ又はレジスタあるいはそのような他の情報ストレージデバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステム又は同様の電子計算デバイスの動作及びプロセスを意味していると理解される。
【0073】
また、本開示は、本明細書における動作を行うための装置に関するものである。この装置は、意図した目的のために特に構成され得る。あるいは、装置は、コンピュータ内に格納されたコンピュータプログラムにより選択的にアクティベート又は再構成される汎用コンピュータを含み得る。そのようなコンピュータプログラムは、それぞれコンピュータシステムバスにそれぞれ連結される、フロッピーディスク、光ディスク、CD-ROM、光磁気ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カードのうちの任意のタイプ、あるいは電子命令を格納するのに好適な任意のタイプの媒体のようなコンピュータ読取可能記憶媒体に格納され得るが、これらに限られるものではない。
【0074】
本明細書における教示に従うプログラムとともに様々な汎用システムを用いてもよい。あるいは、方法を実施するためのより専門的な装置を構築することが便利であることが分かる場合がある。これらの様々なシステムのための構造は、上記の説明においての述べられたようなものである。加えて、本開示は、特定のプログラミング言語を参照して述べられていない。本明細書で述べられているような開示の教示を実現するために様々なプログラミング言語を用いることができることは理解されよう。
【0075】
本開示は、命令が記録された機械読取可能な媒体を含み得るコンピュータプログラムプロダクト、又はソフトウェアとして提供され得る。これは、本開示によるプロセスを実施するようにコンピュータシステム(又は他の電子デバイス)をプログラムするために使用され得る。機械読取可能な媒体は、機械(例えばコンピュータ)によって読み取ることが可能な形態で情報を格納するための任意の機構を含んでいる。例えば、機械読取可能な(例えばコンピュータ読取可能な)媒体は、リードオンリーメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどの機械(例えばコンピュータ)読取可能な媒体を含んでいる。
【0076】
本開示においては、本開示の実施例がその特定の実施例を参照して述べられている。以下の特許請求の範囲で述べられているような本開示の実施例のより広範な精神及び範囲から逸脱することなく、様々な改良が可能であることは明らかであろう。したがって、本開示及び図面は、限定的な意味ではなく例示的な意味で考えられるべきである。
【国際調査報告】