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

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

▶ インテル コーポレイションの特許一覧

特許7391883顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク
<>
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図1
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図2
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図3
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図4
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図5
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図6
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図7
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図8
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図9A
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図9B
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図9C
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図10
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図11
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図12
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図13
  • 特許-顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク
(51)【国際特許分類】
   G06T 7/00 20170101AFI20231128BHJP
   G06N 3/08 20230101ALI20231128BHJP
【FI】
G06T7/00 350C
G06T7/00 660A
G06N3/08
【請求項の数】 25
(21)【出願番号】P 2020568233
(86)(22)【出願日】2018-09-13
(65)【公表番号】
(43)【公表日】2022-01-20
(86)【国際出願番号】 CN2018105380
(87)【国際公開番号】W WO2020051816
(87)【国際公開日】2020-03-19
【審査請求日】2021-09-08
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェン,ユーロン
(72)【発明者】
【氏名】リー,ジャングオ
【審査官】大塚 俊範
(56)【参考文献】
【文献】国際公開第2018/067962(WO,A1)
【文献】OUPPAPHAN, Pichayoot,Corn Disease Identification from Leaf Images Using Convolutional Neural Networks,2017 21st International Computer Science and Engineering Conference (ICSEC),IEEE,2017年11月15日,p.233-238,DOI: 10.1109/ICSEC.2017.8443919
【文献】ZHAO, Ruizhe、他3名,Towards Efficient Convolutional Neural Network for Domain- Specific Applications on FPGA,Computer Vision and Pattern Recognition,ARXIV.ORG,2018年09月04日,p.1-8,インターネット:<URL: https://doi.org/10.48550/arXiv.1809.03318>
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
畳み込みニューラルネットワーク(CNN)を実装するシステムであって、
入力画像データを格納するメモリと、
前記メモリに結合されるプロセッサと、
を含み、前記プロセッサは、
複数の入力特徴マップに深さ方向分割可能畳み込みを適用して、複数の個別2D特徴マップを生成し、前記複数の入力特徴マップは、前記入力画像データに関連付けられ、
前記複数の個別2D特徴マップに圧縮ポイント方向畳み込みを適用して、第1の複数の結合特徴マップを生成し、前記第1の複数の結合特徴マップは、第1の数のチャネルを含み、
前記第1の複数の結合特徴マップに拡張ポイント方向畳み込みを適用して、第2の複数の結合特徴マップを生成し、前記第2の複数の結合特徴マップは、前記第1の数のチャネルより多い第2の数のチャネルを有し、
前記第2の複数の結合特徴マップに少なくとも部分的に基づき、前記入力画像データに対応するオブジェクト認識データを出力する、
システム。
【請求項2】
前記複数の入力特徴マップは、前記第2の数に一致するチャネル数を有する、請求項1に記載のシステム。
【請求項3】
前記プロセッサは、
前記複数の入力特徴マップ及び前記第2の複数の結合特徴マップの和により残余接続を実行して、複数の出力特徴マップを生成し、
前記複数の出力特徴マップ、又は前記複数の出力特徴マップに対応する第2の複数の出力特徴マップを、前記CNNの第2深さ方向分割可能畳み込みに提供する、
請求項2に記載のシステム。
【請求項4】
前記プロセッサは、
前記第2深さ方向分割可能畳み込み、第2圧縮ポイント方向畳み込み、及び第2拡張ポイント方向畳み込みを、前記複数の出力特徴マップまたは前記第2の複数の出力特徴マップに適用して、第3の複数の出力特徴マップを生成し、前記第3の複数の出力特徴マップは、前記第2の数のチャネルより多い第3の数のチャネルを有する、請求項3に記載のシステム。
【請求項5】
前記第2圧縮ポイント方向畳み込みは、第3の数のチャネルを有する第3の複数の結合特徴マップを生成し、前記第2拡張ポイント方向畳み込みは、第4の数のチャネルを有する第4の複数の結合特徴マップを生成し、前記第2の数のチャネルの前記第1の数のチャネルに対する比は、前記第4の数のチャネルの前記第3の数のチャネルに対する比と同じである、請求項4に記載のシステム。
【請求項6】
前記プロセッサは、
第2深さ方向分割可能畳み込み、第2圧縮ポイント方向畳み込み、及び第2拡張ポイント方向畳み込みを、前記第2の複数の結合特徴マップに適用して、第3の複数の出力特徴マップを生成し、前記第3の複数の出力特徴マップは、前記第2の数のチャネルと等しい第3の数のチャネルを有する、請求項1に記載のシステム。
【請求項7】
前記第2の数はnであり、前記プロセッサが、前記深さ方向分割可能畳み込みを適用することは、前記プロセッサが、nのk×k×1カーネルを前記複数の入力特徴マップの各々に適用することを含み、
前記第1の数はn/gであり、前記プロセッサが、前記圧縮ポイント方向畳み込みを適用することは、前記プロセッサが、n/gの1×1×nカーネルを前記複数の個別2D特徴マップに適用することを含み、
前記プロセッサが、前記拡張ポイント方向畳み込みを適用することは、前記プロセッサが、nの1x1x(n/g)カーネルを前記複数の個別2D特徴マップに適用することを含む、請求項1に記載のシステム。
【請求項8】
のチャネルのn/gのチャネルに対する比は、2より大きい圧縮係数gを含む、請求項7に記載のシステム。
【請求項9】
前記入力画像データは、RGB画像データ、RGB-D画像データ、又は赤外線画像データ、のうちの1つを含む、請求項1に記載のシステム。
【請求項10】
前記オブジェクト認識データは、前記入力画像データがユーザの顔に対応するか否かの指示子、又は複数の候補の顔のうちの1つに対応するラベル、のうちの1つを含む、請求項1に記載のシステム。
【請求項11】
畳み込みニューラルネットワーク(CNN)を実装するコンピュータにより実施される方法であって、
複数の入力特徴マップに深さ方向分割可能畳み込みを適用して、複数の個別2D特徴マップを生成するステップであって、前記複数の入力特徴マップは、入力画像データに関連付けられる、ステップと、
前記複数の個別2D特徴マップに圧縮ポイント方向畳み込みを適用して、第1の複数の結合特徴マップを生成するステップであって、前記第1の複数の結合特徴マップは、第1の数のチャネルを含む、ステップと、
前記第1の複数の結合特徴マップに拡張ポイント方向畳み込みを適用して、第2の複数の結合特徴マップを生成するステップであって、前記第2の複数の結合特徴マップは、前記第1の数のチャネルより多い第2の数のチャネルを有する、ステップと、
前記第2の複数の結合特徴マップに少なくとも部分的に基づき、前記入力画像データに対応するオブジェクト認識データを出力するステップと、
を含む方法。
【請求項12】
前記複数の入力特徴マップは、前記第2の数に一致するチャネル数を有する、請求項11に記載の方法。
【請求項13】
前記複数の入力特徴マップ及び前記第2の複数の結合特徴マップの和により残余接続を実行して、複数の出力特徴マップを生成するステップと、
前記複数の出力特徴マップ、又は前記複数の出力特徴マップに対応する第2の複数の出力特徴マップを、前記CNNの第2深さ方向分割可能畳み込みに提供するステップと、
を更に含む請求項12に記載の方法。
【請求項14】
前記第2深さ方向分割可能畳み込み、第2圧縮ポイント方向畳み込み、及び第2拡張ポイント方向畳み込みを、前記複数の出力特徴マップまたは前記第2の複数の出力特徴マップに適用して、第3の複数の出力特徴マップを生成するステップであって、前記第3の複数の出力特徴マップは、前記第2の数のチャネルより多い第3の数のチャネルを有する、ステップ、を更に含む請求項13に記載の方法。
【請求項15】
前記第2圧縮ポイント方向畳み込みは、第3の数のチャネルを有する第3の複数の結合特徴マップを生成し、前記第2拡張ポイント方向畳み込みは、第4の数のチャネルを有する第4の複数の結合特徴マップを生成し、前記第2の数のチャネルの前記第1の数のチャネルに対する比は、前記第4の数のチャネルの前記第3の数のチャネルに対する比と同じである、請求項14に記載の方法。
【請求項16】
複数の命令を含む少なくとも1つの機械可読媒体であって、前記複数の命令は、コンピューティング装置で実行されることに応答して、前記コンピューティング装置に、
複数の入力特徴マップに深さ方向分割可能畳み込みを適用して、複数の個別2D特徴マップを生成させ、前記複数の入力特徴マップは、入力画像データに関連付けられ、
前記複数の個別2D特徴マップに圧縮ポイント方向畳み込みを適用して、第1の複数の結合特徴マップを生成させ、前記第1の複数の結合特徴マップは、第1の数のチャネルを含み、
前記第1の複数の結合特徴マップに拡張ポイント方向畳み込みを適用して、第2の複数の結合特徴マップを生成させ、前記第2の複数の結合特徴マップは、前記第1の数のチャネルより多い第2の数のチャネルを有し、
前記第2の複数の結合特徴マップに少なくとも部分的に基づき、前記入力画像データに対応するオブジェクト認識データを出力させる、
ことにより畳み込みニューラルネットワーク(CNN)を実装させる、機械可読媒体。
【請求項17】
前記複数の入力特徴マップは、前記第2の数に一致するチャネル数を有する、請求項16に記載の機械可読媒体。
【請求項18】
前記コンピューティング装置で実行されることに応答して、前記コンピューティング装置に、
前記複数の入力特徴マップ及び前記第2の複数の結合特徴マップの和により残余接続を実行して、複数の出力特徴マップを生成させ、
前記複数の出力特徴マップ、又は前記複数の出力特徴マップに対応する第2の複数の出力特徴マップを、前記CNNの第2深さ方向分割可能畳み込みに提供させる、
ことにより畳み込みニューラルネットワーク(CNN)を実装させる命令を更に含む請求項17に記載の機械可読媒体。
【請求項19】
前記コンピューティング装置で実行されることに応答して、前記コンピューティング装置に、
前記第2深さ方向分割可能畳み込み、第2圧縮ポイント方向畳み込み、及び第2拡張ポイント方向畳み込みを、前記複数の出力特徴マップ又は前記第2の複数の出力特徴マップに適用して、第3の複数の出力特徴マップを生成させ、前記第3の複数の出力特徴マップは、前記第2の数のチャネルより多い第3の数のチャネルを有する
ことにより畳み込みニューラルネットワーク(CNN)を実装させる命令を更に含む請求項18に記載の機械可読媒体。
【請求項20】
前記第2圧縮ポイント方向畳み込みは、第3の数のチャネルを有する第3の複数の結合特徴マップを生成し、前記第2拡張ポイント方向畳み込みは、第4の数のチャネルを有する第4の複数の結合特徴マップを生成し、前記第2の数のチャネルの前記第1の数のチャネルに対する比は、前記第4の数のチャネルの前記第3の数のチャネルに対する比と同じである、請求項19に記載の機械可読媒体。
【請求項21】
システムであって、
複数の入力特徴マップに深さ方向分割可能畳み込みを適用して、複数の個別2D特徴マップを生成する手段であって、前記複数の入力特徴マップは、入力画像データに関連付けられる、手段と、
前記複数の個別2D特徴マップに圧縮ポイント方向畳み込みを適用して、第1の複数の結合特徴マップを生成する手段であって、前記第1の複数の結合特徴マップは、第1の数のチャネルを含む、手段と、
前記第1の複数の結合特徴マップに拡張ポイント方向畳み込みを適用して、第2の複数の結合特徴マップを生成する手段であって、前記第2の複数の結合特徴マップは、前記第1の数のチャネルより多い第2の数のチャネルを有する、手段と、
前記第2の複数の結合特徴マップに少なくとも部分的に基づき、前記入力画像データに対応するオブジェクト認識データを出力する手段と、
を含むシステム。
【請求項22】
前記複数の入力特徴マップは、前記第2の数に一致するチャネル数を有する、請求項21に記載のシステム。
【請求項23】
前記複数の入力特徴マップ及び前記第2の複数の結合特徴マップの和により残余接続を実行して、複数の出力特徴マップを生成する手段と、
前記複数の出力特徴マップ、又は前記複数の出力特徴マップに対応する第2の複数の出力特徴マップを、CNNの第2深さ方向分割可能畳み込みに提供する手段と、
を更に含む請求項22に記載のシステム。
【請求項24】
前記第2深さ方向分割可能畳み込み、第2圧縮ポイント方向畳み込み、及び第2拡張ポイント方向畳み込みを、前記複数の出力特徴マップ又は前記第2の複数の出力特徴マップに適用して、第3の複数の出力特徴マップを生成する手段であって、前記第3の複数の出力特徴マップは、前記第2の数のチャネルより多い第3の数のチャネルを有する、手段、を更に含む請求項23に記載のシステム。
【請求項25】
前記第2圧縮ポイント方向畳み込みは、第3の数のチャネルを有する第3の複数の結合特徴マップを生成し、前記第2拡張ポイント方向畳み込みは、第4の数のチャネルを有する第4の複数の結合特徴マップを生成し、前記第2の数のチャネルの前記第1の数のチャネルに対する比は、前記第4の数のチャネルの前記第3の数のチャネルに対する比と同じである、請求項4に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
圧縮-拡張深さ方向畳み込みニューラルネットワークに関する。
【背景技術】
【0002】
顔認識技術は、入力画像に予めトレーニングされた畳み込みニューラルネットワーク(convolutional neural network (CNN))を適用することを含む。このようなCNNに基づく顔認識システムは、幾つかの実装において高品質な結果を提供する。しかしながら、それらは、大きなモデルサイズ及び高い計算コストに苦しんでおり、エッジコンピューティング装置のようなリソースの限られた環境において実装を困難にしている。例えば、スマートカメラ、ハンドヘルド装置、及びデジタル監視における実装は、必要とされる膨大なメモリ、計算、及び電力リソースのために可能ではない場合がある。例えば、モバイル装置に実装するとき、このようなCNN実装は、計算リソースを消費して、その結果、バッテリ寿命が許容できないレベルにまで劣化する。
【0003】
様々なコンテキストにおいて高い精度又は少ない計算及びメモリリソース要件を有する顔認識、又はより一般的にはオブジェクト認識は有利である。これら及び他の検討に関して、現在改良が必要とされている。幾つかの改良は、様々なコンテキストにおいて顔又はオブジェクト認識を実行したいという要望がより広がっているので、重要になっている。
【図面の簡単な説明】
【0004】
本願明細書で説明される事柄は、添付の図面に例として示され、限定ではない。説明の簡単さ及び明確さのために、図中の要素は必ずしも縮尺通りではない。例えば、幾つかの要素の寸法は、明確さのために他の要素に対して誇張されていることがある。更に、適切であると考えられる場合には、対応する又は同様の要素を示すために、参照符号は複数の図に渡り繰り返される。図は以下の通りである。
図1】圧縮-拡張深さ方向段を有するCNNを使用するオブジェクト認識を実行する例示的な装置を示す。
図2】例示的な顔検出及び正規化を示す。
図3】例示的な畳み込みニューラルネットワークを示す。
図4】例示的な深さ方向圧縮-拡張畳み込みを含む例示的な畳み込みニューラルネットワーク段階を示す。
図5】例示的な深さ方向分割可能畳み込みを示す。
図6】例示的なポイント方向圧縮畳み込みを示す。
図7】例示的なポイント方向拡張畳み込みを示す。
図8】複数の深さ方向圧縮-拡張畳み込みを含む例示的な畳み込みニューラルネットワーク段階を示す。
図9A】例示的な畳み込みニューラルネットワークを示す。
図9B】例示的な畳み込みニューラルネットワークを示す。
図9C】例示的な畳み込みニューラルネットワークを示す。
図10】深さ方向圧縮-拡張畳み込みを含む畳み込みニューラルネットワークをトレーニングする例示的な処理を示すフロー図である。
図11】深さ方向圧縮-拡張畳み込みを有する畳み込みニューラルネットワークを実装する例示的な処理を示すフロー図である。
図12】深さ方向圧縮-拡張畳み込みを有する畳み込みニューラルネットワークを実装する例示的なシステムの説明図である。
図13】例示的なシステムの説明図である。
図14】本開示の少なくとも幾つかの実装により全て構成された例示的な装置を示す。
【発明を実施するための形態】
【0005】
1つ以上の実施形態又は実装は、添付の図面を参照して以下に説明される。特定の構成及び配置が議論されるが、これは説明目的でのみ行われることが理解されるべきである。当業者は、他の構成及び配置が本開示の精神及び範囲から逸脱することなく利用され得ることを理解する。本願明細書に記載の技術及び/又は構成は、本願明細書に記載された以外の種々の他のシステム及びアプリケーションで利用されてもよいことが当業者に明らかである。
【0006】
以下の説明は、例えばシステムオンチップ(SoC)アーキテクチャのようなアーキテクチャにおいて明白な種々の実装を説明するが、本願明細書に記載の技術及び/又は構成の実装は、特定のアーキテクチャ及び/又はコンピューティングシステムに限定されず、同様の目的で任意のアーキテクチャ及び/又はコンピューティングシステムにより実装されてよい。例えば、例えば複数の集積回路(IC)チップ及び/又はパッケージを利用する種々のアーキテクチャ、及び/又は種々のコンピューティング装置、及び/又は、セットトップボックス、スマートフォン等のような消費者電子機器(CE)装置は、本願明細書に記載の技術及び/又は構成を実装してよい。更に、以下の説明は、ロジック実装、システムコンポーネントの種類及び相互関係、論理区分/統合選択、等のような多数の特定の詳細事項を説明するが、請求される主題は、このような特定の詳細事項を有さず実施できる。他の例では、例えば制御構造及び完全なソフトウェア命令シーケンスのような幾つかの題材は、本願明細書に開示される題材を曖昧にすることを回避するために、詳細に示されない。
【0007】
本願明細書に開示される題材は、ハードウェア、ファームウェア、ソフトウェア、又はそれらの任意の組み合わせで実装されてよい。本願明細書に開示される題材は、1つ以上のプロセッサにより読み出され実行され得る、機械可読媒体に格納された命令として実装されてもよい。機械可読媒体は、機械(例えば、コンピューティング装置)により読み取り可能な形式で情報を格納又は送信する任意の媒体及び/又はメカニズムを含んでよい。例えば、機械可読媒体は、ROM(read only memory)、RAM(random access memory)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気/光記憶媒体、フラッシュメモリ装置、電気/光/音響又は他の形式の伝搬信号(例えば、搬送波、赤外信号、デジタル信号、等)、等を含んでよい。
【0008】
明細書における「一実装」、「実装」、「例示的な実装」等の表現は、記載される実装が、特定の特徴、構造、又は特性を含み得るが、全ての実施形態が必ずしも該特定の特徴、構造、又は特性を含まなくてよいことを示す。更に、このような語句は、必ずしも同じ実装を参照しない。更に、特定の特徴、構造、又は特性がある実施形態と関連して記載されるとき、本願明細書に明示的に記載されるか否かに関わらず、他の実装に関連するこのような特徴、構造、又は特性に影響を与えることが、当業者の知識の範囲内であると言える。本願明細書で使用されるとき、用語「約」又は「実質的に」は、特に断りのない限り、+/-5%の目標値からの逸脱を示す。
【0009】
深さ方向分割可能畳み込み、圧縮ポイント方向畳み込み、及び拡張ポイント方向畳み込み演算を伴う畳み込みニューラルネットワークを用いる顔認識に関連する方法、装置、機器、コンピューティングプラットフォーム、及び物品が本願明細書に記載される。
【0010】
上述のように、種々のコンテキストにおいて、顔認識のような意味論的なオブジェクト認識を実行することは有利であり得る。顔認識では、システムは、顔識別(つまり、ある顔をN個のオブジェクトのうちの1つとして識別する)、及び/又は顔検証(つまり、ある顔が特定の人物に属することを検証する)を提供する。例えば、顔識別は、画像及び画像アルバム、監視、等において顔を識別する際に有用であり得る。また、顔検証は、ロックした装置を解除するようなセキュリティにおいて有用であり得る。本願明細書で議論するように、オブジェクト認識入力画像データのための畳み込みニューラルネットワーク(convolutional neural network (CNN))は、入力特徴マップに、深さ方向分割可能畳み込み(depth-wise separable convolution)を適用して、複数の個別2D特徴マップを生成し、圧縮ポイント方向畳み込み(condense point-wise convolution)を個別2D特徴マップに適用して、第1の数のチャネルを有する複数の第1結合特徴マップを生成し、拡張ポイント方向畳み込み(expansion point-wise convolution)を第1結合特徴マップに適用して、第1の数のチャネルより多い第2の数のチャネルを有する第2結合特徴マップを生成する。このような処理は、CNNの1つ以上の段階(stage)で実行されえ、入力特徴マップは任意の前のCNN段階からであってよい。
【0011】
このような技術、及び本願明細書で議論される追加の技術は、圧縮-拡張深さ方向ネットワーク(condense-expansion-depth-wise network (CEDNet))に基づく超効率的オブジェクト認識(例えば、顔認識)システムを提供する。本願明細書で議論されるCNN(つまり、CEDNet)は、任意のコンテキストで実装されてよく、特にリソースの限られた装置(例えば、コンピューティングリソースの限られた、メモリリソースの限られた、バッテリ寿命リソースの限られた、等)、例えばエッジコンピューティング装置、モバイル装置、等にとって有利であり得る。幾つかの実施形態では、議論されるCNNは、1億3千万より少ない#MAdd(multiply-add、乗算-加算)演算を有する。その結果、認識精度を維持しながら、計算コストは、従前のCNNに対して削減される(例えば、最大1/115の計算コストの削減)。
【0012】
図1は、本開示の少なくとも幾つかの実装に従い構成される、圧縮-拡張畳み込み深さ方向段階を有するCNNを使用してオブジェクト認識を実行する例示的な装置100を示す。図1に示すように、装置100は、撮像装置101,顔検出及び正規化モジュール102、畳み込みニューラルネットワーク(CNN)モジュール103、及び制御部104を含む。装置100は、自動車プラットフォーム、ロボットプラットフォーム、パーソナルコンプータ、ラップトップコンピュータ、タブレット、ファブレット、スマートフォン、デジタルカメラ、ゲームコンソール、ウェアラブル装置、ディスプレイ装置、オールインワン装置、ツーインワン装置、等のような、任意の適切な形状因子の装置に実装されてよい。例えば、装置100は、本願明細書で議論されるように、オブジェクト認識を実行してよい。
【0013】
図示のように、撮像装置101は、画像データ111を獲得する。撮像装置101は、RGBカメラ等のような任意の適切な撮像装置であってよい。幾つかの実施形態では、装置100は、画像データ111又は正規化入力画像データ112を別の装置から通信チャネル(図示せず)を介して受信する。幾つかの実施形態では、画像データ111は、装置100のメモリ(図示せず)から処理のために獲得される。画像データ111は、任意の適切なピクチャ、フレーム、等、又は任意の適切な解像度でピクチャ又はフレームを表す任意のデータ構造を含んでよい。一実施形態では、画像データ111は、そのピクセルのR(赤)、G(緑)、及びB(青)値を有するRGB画像データである。一実施形態では、画像データ111は、そのピクセルのR、G、B、及びD(深さ)値を有するRGB-D画像データである。一実施形態では、撮像装置101は、3D撮像装置である。例えば、撮像装置101は、左カメラ、右カメラ、及びIR送信機を含んでよい。IR送信機は、IRテクスチャパターンをシーン上に投影し、左カメラ及び右カメラから残されたIRテクスチャパターンは立体視を実行して画像データ111の深さ値を生成するために使用される。一実施形態では、画像データ111は、その各ピクセルにおいて単一の値(例えば、強度値)を有する単一チャネルの赤外線画像データである(例えば、サーモグラム)。
【0014】
画像データ111は、顔検出及び正規化モジュール102により受信される。顔検出及び正規化モジュール102は、画像データ111を使用して、ランドマーク検出のような任意の適切な技術又は複数の技術を用いて顔検出を実行して、(もし有れば)顔の周りの境界ボックスを生成する。顔検出及び正規化モジュール102は、画像データ111内の顔を検出し、検出した顔に対応する画像データを所定のサイズ及び/又は縮尺に正規化して、正規化入力画像データ112を生成する。一実施形態では、画像データ111は、例えば、顔識別又は顔検証を含む顔認識のための問い合わせ(query、クエリ)顔を含む。
【0015】
図2は、本開示の少なくとも幾つかの実装により全て構成された例示的な顔検出及び正規化を示す。図2に示されるように、画像データ111は顔201の表現を含む。顔検出は、顔ランドマーク検出技術、Haar特徴及びカスケード分類器に基づくViola-Jonesオブジェクト検出フレームワーク、HOGs(histogram of oriented gradients)に基づく分類器、等のような任意の適切な技術又は複数の技術を用いて画像データ111を使用して実行される。図示のように、幾つかの実施形態では、ランドマーク点202(明確さのために、そのうちの1つのみがラベル付けされている)が検出され、このような顔検出に基づき特定され、このようなランドマーク点(及び/又は他の技術)は、顔201に対応する境界ボックス203を生成するために使用される。境界ボックス203及びランドマーク点202に基づき、正規化入力画像データ112が生成される。例えば、顔検出及び正規化モジュール102は、画像データ111を集め(crop)調整して、CNNモジュール103による処理のために共通サイズ及び縮尺で正規化画像データ112を生成してよい。
【0016】
正規化入力画像データ112は、任意のデータ構造を含んでよい。一実施形態では、正規化入力画像データ112は、単一チャネル(例えば、グレイスケール画像データ)を有する。その結果、正規化入力画像データ112は、そのピクセル毎に単一の値を有する。一実施形態では、正規化入力画像データ112は、3つの色チャネル(例えば、RGB画像データ)を有する。その結果、正規化入力画像データ112は、そのピクセル毎に3つの値(例えば、R値、G値、及びB値)を有する。本願明細書ではRGB画像データに関して議論されるが、任意の適切な画像データフォーマット(例えば、YUV、YCbCr、等)が使用されてよい。一実施形態では、正規化入力画像データ112は、3つの色チャネル及び深さチャネル(例えば、RGB-D画像データ)を有する。その結果、正規化入力画像データ112は、そのピクセル毎に4つの値(例えば、R値、G値、B値、及びD値)を有する。本願明細書ではRGB-D深さ画像データに関して議論されるが、任意の適切な深さ画像データフォーマットが使用されてよい。更に、正規化入力画像データ112は、任意の適切なサイズを有してよい。一実施形態では、正規化入力画像データ112は、128×128ピクセル正規化画像、100×100ピクセル正規化画像、160×160ピクセル正規化画像、等のような任意の適切なサイズの正規化入力画像を表してよい。
【0017】
図1に戻ると、正規化入力画像データ112は、CNNモジュール103により受信される。CNNモジュール103は、本願明細書に議論されるように、正規化入力画像データ112にCNNを適用して、CNN出力データ113を生成する。CNN出力データ113は、N次元ベクトルのような任意の適切なデータ構造を含んでよい。N次元ベクトルの各値は、特徴が正規化入力画像データ112の範囲内にある可能性又はスコアを示す。図示のように、CNN出力データ113は、制御部104に提供される。制御部104は、CNN出力データ113を受信し、オブジェクト認識データ114を生成する。オブジェクト認識データ114は、オブジェクト(例えば、顔)が正規化入力画像データ112内で検証されるために識別されたことを示す任意の適切なデータ構造を含む。例えば、オブジェクト又は顔認識は、実際の実装では識別及び検証に分割されてよい。
【0018】
オブジェクト又は顔識別は1:Nマッチング問題に対応し、正規化入力画像データ112がN個の被写体のうちの1つに一致するようにされてよい。例えば、バックエンドデータベースは、それぞれがK個の画像及び関連するアイデンティティを有するN個より多くの被写体を含んでよい。オブジェクト又は顔識別は、正規化入力画像データ112との最適な一致を発見し、最適な一致スコアが所定の閾値より大きい場合、例えば、オブジェクト認識データ114は、最も一致する被写体を識別する指示子を含む。一実施形態では、一致スコアが閾値より小さい場合、一致が提供されない。このような実施形態では、制御部104は、CNN出力データ113を受信し、CNN出力データ113に基づき(例えば、CNN出力データ113をN個の利用可能な被写体の出力データと比較することにより)最適な一致を決定し、任意的に、最適な一致のスコアを閾値と比較し、最適な一致のスコアが閾値に対して好ましい場合、オブジェクト認識データ114により一致を示す。例えば、オブジェクト認識データ114は、顔識別コンテキストにおいて、正規化入力画像データ112の最適な顔一致を示す識別子を含んでよい。このような最適な顔一致データは、写真に名前をタグ付けして監視下の人物を識別する等のために、装置100により使用されてよい。
【0019】
オブジェクト又は顔識別は1:1マッチング問題に対応し、正規化入力画像データ112が特定の単一の被写体に一致するようにされてよい。例えば、バックエンドデータベースは、被写体からの幾つかの画像を格納してよく、問い合わせ顔について、正規化入力画像データ112が被写体を含むか否かに関して決定が行われる。これにより、オブジェクト又は顔検証は、正規化入力画像データ112が被写体に対応するか否かを決定する。例えば、CNN出力データ113は、二乗差の和、閾値との比較、又は同様の技術を用いて、被写体の出力データと比較されてよい。このような実施形態では、制御部104は、CNN出力データ113を受信し、一致が発見されたか否かを決定し、発見された場合に、オブジェクト認識データ114により一致を示す。例えば、オブジェクト認識データ114は、顔検証コンテキストにおいて、正規化入力画像データ112について最適な顔一致が生成されたか否かを示す識別子を含んでよい。一致か否かを示すこのようなデータは、装置100へのアクセスを許可又は拒否するために(例えば、顔一致を通じて装置アクセスを提供するために)、装置100により使用されてよい。
【0020】
図3は、本開示の少なくとも幾つかの実装により構成された例示的な畳み込みニューラルネットワーク300を示す。図3に示すように、畳み込みニューラルネットワーク(CNN)300は、それぞれs1、s2、s3、s4、s5とラベル付けされた複数の段階301、302、303、304、305を含む。図示のように、段階301(s1)は、単一チャネル(例えば、グレースケール)の128×128ピクセルとして示される正規化入力画像データ112を受信する。しかしながら、正規化入力画像データ112は、本願明細書で議論される任意の適切な入力画像データを含んでよい。図示のように、段階301(s1)は、正規化入力画像データ112に作用して特徴マップ311を生成する。図示の実施形態では、特徴マップ311は、32個の出力チャネルの64×64要素特徴マップを含む。つまり、特徴マップ311は、それぞれが64×64(4096)個の特徴値を有する32個の特徴マップを含む。しかしながら、任意の数の出力チャネルの任意のサイズの特徴マップが使用されてよい。例えば、段階301(s1)は、128×128×1の次元を有するデータボリュームを受信し、64×64×32の次元を有するデータボリュームを出力する。
【0021】
段階301(s1)は、任意の適切な畳み込み技術又は複数の技術を用いて特徴マップ311を生成する。一実施形態では、段階301(s1)は、例えば32個のカーネルがそれぞれ正規化入力画像データ112内の位置に適用されるような標準的な畳み込み技術を用いて、特徴マップ311を生成する。各カーネルは、3×3、5×5、等のような任意の適切なサイズであってよく、各カーネルは同じサイズであり、又はカーネルは異なるサイズである。段階301(s1)は、当業者に知られているプーリング、スケーリング、及び/又は正規化線形ユニット(rectified linear unit (ReLU))演算も含んでよい。更に、正規化入力画像データ112が複数のチャネルを含む実施形態では、各カーネルは、正規化入力画像データ112内の各位置においてチャネルに渡り加算されてよい。例えば、CNNにおける標準的な畳み込みは、マルチチャネル及びマルチカーネル畳み込みである。「n」個の入力チャネル(例えば、正規化入力画像データ112のチャネル数)及び「m」個の出力チャネル(例えば、特徴マップ311のチャネル数)を有する畳み込み層では、カーネルサイズk×k=kである。出力チャネル毎に(つまり、カーネル毎に)、標準的な畳み込みは、入力チャネル毎に2D畳み込みを実行し、「n」個全部の畳み込み結果を出力応答として加算する。
【0022】
段階302(s2)は、特徴マップ311を入力として受信し、任意の適切な畳み込み技術又は複数の技術を用いて特徴マップ312を出力として生成する。例えば、段階302(s2)は、後述する深さ方向圧縮-拡張畳み込み(depth-wise-condense-expansion convolutions)を用いて特徴マップ312を生成してよい。一実施形態では、深さ方向圧縮-拡張畳み込みは3つの段階を含む。
【0023】
第1に、深さ方向分割可能畳み込みが、入力特徴マップ(例えば、特徴マップ311)に適用されて、複数の個別2D特徴マップを生成する。本願明細書で使用されるとき、用語「深さ方向分割可能畳み込み」は、入力チャネルに渡り情報を加算し、平均し、又は交換しない畳み込みを示す。用語「個別2D特徴マップ」は、入力チャネルに渡り情報を加算し、平均し、又は交換しない畳み込みにより実行される特徴マップを示す。例えば、深さ方向分割可能畳み込みは、「n」個の入力チャネル深さマップに、「m」個のk×k×1カーネルを適用して、「m」個の個別2D特徴マップを生成する。
【0024】
第2に、圧縮ポイント方向畳み込み(condense point-wise convolution)が、「m」個の個別2D特徴マップに適用されて、「n/g」個の結合特徴マップを生成する。その結果、結合特徴マップはn/g個のチャネルを有する。本願明細書で使用されるとき、用語「結合特徴マップ」は、入力チャネルに渡り情報を共有することにより生成された特徴マップを示すために使用される。例えば、「n/g」個の1×1×mカーネルは、個別2D特徴マップに適用されて、第1結合特徴マップを生成する。
【0025】
第3に、拡張ポイント方向畳み込み(expansion point-wise convolution)が、「n/g」個の結合特徴マップに適用されて、「n」個の結合特徴マップを生成する。その結果、結合特徴マップはn個のチャネルを有する。本願明細書で使用されるとき、用語「圧縮(condense)」は、出力チャネルの数が減少されることを示し、用語「拡張(expansion)」は、出力チャネル数が増大されることを示す。例えば、「g」は、圧縮係数として特徴付けられてよく、拡張後のチャネル数の拡張前(且つ圧縮後)のチャネル数に対する比が「g」である。例えば、「n」個の1×1×(n/g)カーネルは、第1結合特徴マップに適用されて、第2結合特徴マップを生成する。このような深さ方向圧縮-拡張畳み込みは、本願明細書に更に議論されるように種々の利点を提供する。段階302(s2)のような特定の段階で、議論される深さ方向圧縮-拡張畳み込みは、(図4に関して議論されるように)1回実行されてよく、任意的なプーリング、スケーリング、及び/又はReLU演算を伴い、又は複数回(図8に関して議論されるように2回)実行されて段階にそれらをスタックしてよい。
【0026】
図示のように、段階302(s2)は、164×64×32の次元を有するデータボリュームを受信し、32×32×64の次元を有するデータボリュームを出力する。しかしながら、任意の適切なデータサイズが使用されてよい。更に、CNN300は、追加段階303、304、305を含む。段階303、304、305は、それぞれ特徴マップ312、313、314を入力として受信し、任意の適切な畳み込み技術又は複数の技術を用いて特徴マップ313、314、315を出力として生成する。例えば、段階301、302、303、304、305のうちの任意の段階は、本願明細書で議論される標準的な畳み込み技術を使用してよい。理解されるように、特徴マップ311、312、313、314、及び特徴ベクトル315は、入力画像データ112及び/又は画像データ111を処理するときに生成される正規化入力画像データ112及び画像データ111に関連付けられる。更に、段階301、302、303、304、305のうちの任意の段階は、本願明細書で議論されるように(単一の又はスタックされた)深さ方向圧縮-拡張畳み込みを使用してよい。更に、段階301、302、303、304、305のうちの任意の段階は、深さ方向分割可能畳み込み及びポイント方向畳み込みを圧縮-拡張を伴わずに使用してよい。例えば、深さ方向分割可能畳み込み及びポイント方向畳み込みは、先ず、個別2D特徴マップを出力するチャネル毎の2D畳み込みを適用して、次に、1×1又はポイント方向畳み込みを使用して各チャネルを他のチャネルと混合してよい。
【0027】
図示のように、段階303(s3)は、32×32×64の次元を有する特徴マップ312のデータボリュームを受信し、16×16×128の次元を有する特徴マップ313のデータボリュームを出力する。段階304(s4)は、16×16×128の次元を有する特徴マップ313のデータボリュームを受信し、8×8×256の次元を有する特徴マップ314のデータボリュームを出力する。段階305(s5)は、8×8×256の次元を有する特徴マップ314のデータボリュームを受信し、任意の数の要素を有する1次元特徴ベクトル315を出力するしかしながら、任意の適切な特徴マップ及びサイズ(例えば、ボリューム)及び特徴ベクトルサイズが使用されてよい。
【0028】
図示の実施形態では、CNN300は、5個の段階を含むが、CNN300は、4、6、7、又はそれより多数のような任意の数の段階を含んでよい。更に、CNN300の各連続する段階は、減少するサイズ及び増大する数のチャネルの特徴マップを出力する。このような処理は、段階301、302,303、304、305に渡りCNN300により検出された特徴の抽象化を増大し得る。
【0029】
図4は、本開示の少なくとも幾つかの実装により構成された例示的な深さ方向圧縮-拡張畳み込みを含む例示的なニューラルネットワーク段階400を示す。図4に示すように、畳み込みニューラルネットワーク(CNN)段階400は、入力401、深さ方向畳み込み(DW-Conv)モジュール402、ポイント方向圧縮畳み込み(PW-Conv)モジュール403、ポイント方向拡張畳み込み(PW-Conv)モジュール404,任意的加算器405、及び出力406を含む。CNN段階400は、本願明細書で議論される任意のCNN段階により実装されてよい。
【0030】
図示のように、CNN段階400は、入力401を介して、例えば前のCNN段階から、入力特徴マップ411を受信する。入力特徴マップ411は「n」個のチャネルを有する。更に、入力特徴マップ411は、入力特徴マップ411が入力ボリュームをCNN段階に提供するように、任意の適切なサイズを有してよい。例えば、入力特徴マップ411は、それぞれ、H×W個の要素を有してよく、入力特徴マップ411は、「n」個のチャネルを有してよい。その結果、入力特徴マップ411は、H×W×nのデータボリュームを有する。例えば、入力特徴マップ411は、本願明細書に議論されるように64×64×32、42×32×64、16×16×128、8×8×256であってよいが、任意の適切な次元が使用されてよい。
【0031】
深さ方向畳み込みモジュール402は、入力特徴マップ411を受信し、深さ方向分割可能畳み込みを入力特徴マップ411に適用して、複数の個別2D特徴マップ412を生成してよい。例えば、深さ方向畳み込みモジュール402は、サイズk×k×1の「n」個の畳み込みカーネルを使用して「n」個の個別2D特徴マップ412を出力するチャネル毎の2D畳み込みを適用し、その結果、入力チャネル間での情報交換は存在しない。議論されるように、このような個別2D特徴マップ412は、入力特徴マップ411の「n」個の入力チャネルに渡り情報を加算し、平均し、又は交換することなく、生成される。このような処理は、チャネル間で加算又は平均する標準的な畳み込み処理と対称的である。
【0032】
図5は、本開示の少なくとも幾つかの実装により構成された例示的な深さ方向分割可能畳み込み500を示す。図5に示すように、入力特徴マップ411は、「n」個の特徴マップ501、502、503、504(1、2、3、nともラベル付けされる)を含み、これらのそれぞれはH×W個の要素又は特徴を有する。つまり、図5には、特徴マップ501、502、503、504のそれぞれの線形断面図が示される。図示のように、サイズk×k×1のカーネルは、特徴マップ501、502、503、504のそれぞれに適用される。その結果、511、512、513、514のような「n」個のカーネルが、それぞれ特徴マップ501、502、503、504に適用されて、サイズH×wの「n」個の個別2D特徴マップ521、522、523、524を生成し、個別2D特徴マップ412を提供する。議論されるように、個別2D特徴マップ521、522、523、524は、特徴マップ501、502、503、504の間のチャネル間情報交換を有さずに生成される。カーネル511、512、513、514は、3×3、5×5、等のような任意の適切なサイズであってよく、個別2D特徴マップ521、522、523、524は任意の適切なサイズであってよい。
【0033】
図示のように、特徴マップ501の特定の位置において、カーネル511は、該位置における特徴マップ501の特徴値によりカーネル511を畳み込むことにより適用されて、個別2D特徴マップ521の特徴値531を生成する。カーネル511の位置は、次に、移動され、処理は、新しい位置における特徴マップ501の特徴値を用いて繰り返され、別の特徴値を生成し、以下特徴マップ501を通じて同様である。特徴マップ502、503、504の各々は、それぞれカーネル512、513、514により同様に処理されて、個別2D特徴マップ522、523、524の特徴値532、533、534のような特徴値を生成する。
【0034】
図4に戻ると、ポイント方向圧縮畳み込みモジュール403は、個別2D特徴マップ412を受信し、ポイント方向畳み込みを個別2D特徴マップ412に適用して、結合特徴マップ413を生成する。例えば、ポイント方向圧縮畳み込みモジュール403は、「N/G」個の1×1×n畳み込みを用いて、チャネルに渡り線形混合を適用する。
【0035】
図6は、本開示の少なくとも幾つかの実装により構成された例示的なポイント方向圧縮畳み込み600を示す。図6に示すように、個別2D特徴マップ412は、図5に関して議論したように生成された「n」個の特徴マップ521、522、523、524(1、2、3、nともラベル付けされる)を含み、これらのそれぞれはH×W個の要素又は特徴を有する。つまり、図5及び6には、個別特徴マップ521、522、523、524のそれぞれの線形断面図が示される。図示のように、サイズ1×1×nのカーネル601は、個別特徴マップ521、522、523、524に渡り適用されて、例えば、結合特徴マップ612の値又は特徴を生成する。例えば、カーネル601は、個別特徴マップ521、522、523、524に渡り特定の位置で適用され、カーネル601は、該特定の位置に対応する特徴値531、532、533、534により畳み込まれて、結合特徴マップ612の特徴値622を生成する。
【0036】
カーネル601は、次に、個別特徴マップ521、522、523、524を通じて移動され、結合特徴マップ612の特徴値が各位置において生成される。同様に別の1×1×nカーネルは、個別特徴マップ521、522、523、524に渡り適用され、特徴値621を生成し、個別特徴マップ521、522、523、524を通じて移動することにより、結合特徴マップ611の各特徴値を生成する。同様の方法で、結合特徴マップ613(特徴値623を含む)、結合特徴マップ614(特徴値624を含む)、及び全ての他の「n/g」個の結合特徴マップ413の各値が生成される。例えば、カーネル601のような「n/g」個のカーネルは、個別特徴マップ521、522、523、524に適用されて、「n/g」個の出力チャネルを有する結合特徴マップ413を生成する。議論されるように、個別2D特徴マップ611、612、613、614は、個別特徴マップ521、522、523、524の間のチャネル間情報交換を伴い生成される。本願明細書で使用されるとき、「特徴マップ」の参照と結合される用語は、入力チャネルに渡る情報交換により生成される特徴マップを示す。
【0037】
図示のように、ポイント方向圧縮畳み込みは、個別2D特徴マップ412の「n」個のチャネルを、「n/g」個のチャネルに圧縮する。ここで、「g」は、本願明細書では圧縮係数として特徴付けられ、1より大きい整数である。圧縮係数「g」は、2、4、又は8のような1より大きい任意の適切な整数値であってよく、4が特に有利である。
【0038】
図4に戻ると、ポイント方向拡張畳み込みモジュール404は、結合特徴マップ413を受信し、ポイント方向拡張畳み込みを結合特徴マップ413に適用して、結合特徴マップ414を生成する。例えば、ポイント方向圧縮畳み込みモジュール403は、「N」個の1×1×(n/g)畳み込みを用いて、チャネルに渡り線形混合を適用する。
【0039】
図7は、本開示の少なくとも幾つかの実装により構成された例示的なポイント方向拡張畳み込み700を示す。図7に示すように、結合特徴マップ413は、図6に関して議論したように生成された「n/g」個の結合特徴マップ611、612、613、614(1、2、3、n/gともラベル付けされる)を含み、これらのそれぞれはH×W個の要素又は特徴を有する。つまり、図6及び7には、結合特徴マップ611、612、613、614のそれぞれの線形断面図が示される。図示のように、サイズ1×1×(n/g)のカーネル701は、結合特徴マップ611、612、613、614に渡り適用されて、例えば、結合特徴マップ712の値又は特徴を生成する。例えば、カーネル701は、結合特徴マップ611、612、613、614に渡り特定の位置で適用され、カーネル701は、該特定の位置に対応する特徴値621、622、623、624により畳み込まれて、結合特徴マップ712の特徴値722を生成する。
【0040】
カーネル701は、次に、結合特徴マップ611、612、613、614を通じて移動され、結合特徴マップ712の特徴値が各位置において生成される。同様に別の1×1×(n/g)カーネルは、結合特徴マップ611、612、613、614に渡り適用され、特徴値721を生成し、結合特徴マップ611、612、613、614を通じて移動することにより、結合特徴マップ711の各特徴値を生成する。同様の方法で、結合特徴マップ713(特徴値723を含む)、結合特徴マップ714(特徴値724を含む)、及び全ての他の「n」個の結合特徴マップ414の各値が生成される。例えば、カーネル701のような「n」個のカーネルは、結合特徴マップ611、612、613、614に適用されて、「n」個の出力チャネルを有する結合特徴マップ414を生成する。議論されるように、結合特徴マップ711、712、713、714は、個別結合特徴マップ611、612、613、614の間のチャネル間情報交換を伴い生成される。図示のように、ポイント方向拡張畳み込みは、結合特徴マップ413の「n/g」個のチャネルを、結合特徴マップ414の「n」個のチャネルに拡張する。
【0041】
図4に戻ると、加算器405は、結合特徴マップ414を受信し、結合特徴マップ414を入力特徴マップ411と合算して、出力特徴マップ415を生成する。例えば、CNN段階400は、加算器405により、特徴マップ414を入力特徴マップ411と加算することにより、残余接続(residual connection)を提供する。このような残余接続は、推定及びトレーニングを容易にし得る特徴の変化を推定するために、CNN段階に提供されてよい。しかしながら、幾つかの実施形態では、加算器405は実装されず、CNN段階は結合特徴マップ414を出力する。
【0042】
議論されるように、深さ方向圧縮-拡張畳み込みは、CNNの段階の中で提供されてよい。留意すべきことに、ポイント方向圧縮畳み込み層(例えば、ポイント方向圧縮畳み込みモジュール403において適用される)は、深さ要項畳み込み層(例えば、個別2D特徴マップ412)の「n」個のチャネル出力を、g(圧縮係数)が1より大きくなるよう(例えば、g=4)、「n/g」個の出力チャネル(例えば、結合特徴マップ413)へと圧縮する。このようなポイント方向圧縮畳み込みは、有利なことに、深さ方向畳み込み層のチャネル間の冗長性を低減し、本願明細書で更に議論されるように計算を削減する。更に、残余接続は、結合特徴マップ414を入力特徴マップ411と(例えば、加算器405により)加算することにより提供される。残余接続が動作可能性を保証するために、入力特徴マップ411及び結合特徴マップ414は、同じ解像度(例えば、H×W)及び同じチャネル数(例えば、「n」)を有する。入力特徴マップ411及び結合特徴マップ414の同じ解像度を提供するために、拡張は、ポイント方向拡張畳み込みモジュール404により提供され、結合特徴マップ413の入力チャネルの数が「n/g」であり、結合特徴マップ414の出力チャネルの数が「n」のままであるようにする。
【0043】
このような処理技術は、CNNパラメータの数が削減されるので、低い計算リソース要件及び記憶要件をもたらす。例えば、「n」個の入力チャネル、「n」個の出力チャネル、W×Hの特徴マップサイズ、及びkのカーネルサイズを有する畳み込み段階を想定すると、標準的な畳み込み処理は、w*h*k*nの計算の複雑さを要求し、圧縮及び拡張を有しない且つ残余加算を有しない深さ方向及びポイント方向畳み込みは、w*h*(k*n+n)の計算の複雑さを要求し、圧縮及び拡張を有しない且つ残余加算を有する深さ方向及びポイント方向畳み込みは、w*h*(k*n+n+n)の計算の複雑さを要求し、残余加算を有する深さ方向圧縮-拡張畳み込みは、w*h*(k*n+n/g+n/g+n)の計算の複雑さを要求する。更に、4の圧縮係数「g」を想定すると、標準的な畳み込み処理に対する計算コストの削減は9n(10+n)であり、圧縮及び拡張を有し且つ残余加算を有しない深さ方向及びポイント方向畳み込みに関する計算コストの削減は(10+n)/(10+n/2)である。従って、n=100のより小さいnについて、本願明細書で議論される技術は、標準的な畳み込み処理より8.2Xだけ、圧縮及び拡張を有しない且つ残余加算を有しない深さ方向及びポイント方向畳み込みより1.8Xだけ高速である。従って、n=500のより大きいnについて、本願明細書で議論される技術は、標準的な畳み込み処理より8.8Xだけ、圧縮及び拡張を有しない且つ残余加算を有しない深さ方向及びポイント方向畳み込みより1.96Xだけ高速である。更に、議論される技術は、トレーニング中により少ないCNNモデルパラメータ及び改良されたCNN収束を必要とする。
【0044】
図8は、本開示の少なくとも幾つかの実装により構成された複数の例示的な深さ方向圧縮-拡張畳み込みを含む例示的なニューラルネットワーク段階800を示す。図8に示すように、畳み込みニューラルネットワーク(CNN)段階800は、入力801、深さ方向畳み込み(DW-Conv)モジュール802、ポイント方向圧縮畳み込み(PW-Conv)モジュール803、ポイント方向拡張畳み込み(PW-Conv)モジュール804、任意的加算器805、深さ方向畳み込み(DW-Conv)モジュール806、ポイント方向圧縮畳み込み(PW-Conv)モジュール807、ポイント方向拡張畳み込み(PW-Conv)モジュール808、任意的加算器809、及び出力810を含む。CNN段階800は、本願明細書で議論される任意のCNN段階により実装されてよい。
【0045】
CNN段階800は、入力801を介して、例えば前のCNN段階から、入力特徴マップ811を受信する。入力特徴マップ811は「n」個のチャネルを有する。更に、入力特徴マップ811は、入力特徴マップ811が入力ボリュームをCNN段階に提供するように、任意の適切なサイズを有してよい。例えば、入力特徴マップ811は、それぞれ、H×W個の要素を有してよく、入力特徴マップ811は、本願明細書で議論されるように「n」個のチャネルを有してよい。深さ方向畳み込みモジュール802は、入力特徴マップ811を受信し、深さ方向分割可能畳み込みを入力特徴マップ811に適用して、複数の個別2D特徴マップ812を生成してよい。例えば、深さ方向畳み込みモジュール802は、サイズk×k×1の「n」個の畳み込みカーネルを使用して「n」個の個別2D特徴マップ812を出力するチャネル毎の2D畳み込みを適用し、その結果、図5に関して議論したように、入力チャネル間での情報交換は存在しない。ポイント方向圧縮畳み込みモジュール803は、個別2D特徴マップ812を受信し、個別2D特徴マップ812にポイント方向圧縮畳み込みを適用して、図6に関して議論したように「n/g」個の1×1×n畳み込みを個別2D特徴マップ812に適用することにより、「n/g」個のチャネルを有する結合特徴マップ813を生成する。ポイント方向拡張畳み込みモジュール804は、結合特徴マップ813を受信し、結合特徴マップ813にポイント方向拡張畳み込みを適用して、図7に関して議論したように「n」個の1×1×(n/g)畳み込みを個別結合特徴マップ813に適用することにより、「n」個のチャネルを有する結合特徴マップ814を生成する。加算器805は、結合特徴マップ814を受信し、結合特徴マップ814を入力特徴マップ811と合算して、中間特徴マップ815を生成する。幾つかの実施形態では、加算器805は実装されなくてよく、結合特徴マップ814が深さ方向畳み込みモジュール806に提供される。
【0046】
深さ方向畳み込みモジュール802は、中間特徴マップ815(又は結合特徴マップ814)を受信し、深さ方向分割可能畳み込みを中間特徴マップ815(又は結合特徴マップ814)に適用して、複数の個別2D特徴マップ816を生成してよい。例えば、深さ方向畳み込みモジュール806は、サイズk×k×1の「n」個の畳み込みカーネルを使用して「n」個の個別2D特徴マップ816を出力するチャネル毎の2D畳み込みを適用し、その結果、図5に関して議論したように、入力チャネル間での情報交換は存在しない。ポイント方向圧縮畳み込みモジュール807は、個別2D特徴マップ816を受信し、個別2D特徴マップ816にポイント方向圧縮畳み込みを適用して、図7に関して議論したように「n/g」個の1×1×n畳み込みを個別2D特徴マップ816に適用することにより、「n/g」個のチャネルを有する結合特徴マップ817を生成する。ポイント方向拡張畳み込みモジュール808は、結合特徴マップ817を受信し、結合特徴マップ817にポイント方向拡張畳み込みを適用して、図7に関して議論したように「n」個の1×1×(n/g)畳み込みを個別結合特徴マップ817に適用することにより、「n」個のチャネルを有する結合特徴マップ818を生成する。加算器805は、結合特徴マップ818を受信し、結合特徴マップ818を中間特徴マップ815(又は入力特徴マップ811)と合算して、出力特徴マップ819を生成する。幾つかの実施形態では、加算器805及び加算器809は実装されなくてよく、結合特徴マップ818はCNN段階800から出力される。
【0047】
図9A、9B、9Cは、本開示の少なくとも幾つかの実装により構成された例示的な畳み込みニューラルネットワーク900を示す。図9A、9B、9Cに示すように、畳み込みニューラルネットワーク(CNN)900は、畳み込み層902を介して正規化入力画像データ112を受信する。畳み込み層902は、n(例えば32)個のk×k(例えば3×3)畳み込みカーネルを正規化入力画像データ112(例えば、128×128×1画像データ)に適用する。プーリング層903は、冗長データを受信し、プーリング(例えば、ストライド2で最大プーリング)を提供して、CNN900の第1段階からの出力特徴マップ(例えば、64×64×32特徴マップ)を生成する。図9A、9B、9Cでは、数値例(例えば、畳み込み1、畳み込み2、等)は、CNN900におけるこのような処理の各インスタンスを示す。
【0048】
畳み込み層904は、特徴マップを受信し、例えば64個の1×1×32畳み込みカーネル、バッチ正規化、スケーリング、及びReLUを、第1段階からの特徴マップに適用し、結果データ(例えば、64×64×64データ)を深さ方向圧縮-拡張畳み込み層905及び加算及びReLU層906に提供する。深さ方向圧縮-拡張畳み込み層905は、サイズk×k(例えば3×3)のカーネル(例えば64個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層905は、ポイント方向畳み込み(例えば、16個=64/4の1×1×64カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、64×64×16データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層905は、ポイント方向拡張畳み込み(例えば、64個の1×1×64カーネル)を適用して、第2結合特徴マップ(例えば、64×64×64データ)を生成する。留意すべきことに、畳み込み層904及び深さ方向圧縮-拡張畳み込み層905の出力は、同じサイズである。加算及びReLU層906は、畳み込み層904及び深さ方向圧縮-拡張畳み込み層905の出力を受信し、それらを加算し、ReLUを適用して出力データを生成する。出力データは、深さ方向圧縮-拡張畳み込み層907及び加算及びReLU層908に提供される。深さ方向圧縮-拡張畳み込み層907は、サイズk×k(例えば3×3)のカーネル(例えば64個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層907は、ポイント方向圧縮畳み込み(例えば、16個=64/4の1×1×64カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、64×64×16データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層907は、ポイント方向拡張畳み込み(例えば、64個の1×1×64カーネル)を適用して、第2結合特徴マップ(例えば、64×64×64データ)を生成する。留意すべきことに、加算及びReLU層906及び深さ方向圧縮-拡張畳み込み層907の出力は、同じサイズである。加算及びReLU層908は加算及びReLU層906及び深さ方向圧縮-拡張畳み込み層907の出力を受信し、それらを加算し、ReLUを適用して、出力データを生成する。プーリング層909は、冗長データを受信し、プーリング(例えば、ストライド2で最大プーリング)を提供して、CNN900の第2段階からの出力特徴マップ(例えば、32×32×64特徴マップ)を生成する。
【0049】
図9Bを参照すると、畳み込み層910は、特徴マップを受信し、例えば128個の1×1×64畳み込みカーネル、バッチ正規化、スケーリング、及びReLUを、第2段階からの特徴マップに適用し、結果データ(例えば、32×32×128データ)を深さ方向圧縮-拡張畳み込み層911及び加算及びReLU層912に提供する。深さ方向圧縮-拡張畳み込み層911は、サイズk×k(例えば3×3)のカーネル(例えば128個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層911は、ポイント方向圧縮畳み込み(例えば、32個=128/4の1×1×128カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、32×32×32データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層911は、ポイント方向拡張畳み込み(例えば、128個の1×1×32カーネル)を適用して、第2結合特徴マップ(例えば、32×32×128データ)を生成する。畳み込み層910及び深さ方向圧縮-拡張畳み込み層911の出力は、同じサイズである。加算及びReLU層912は、畳み込み層910及び深さ方向圧縮-拡張畳み込み層911の出力を加算し、ReLUを適用して出力データを生成する。出力データは、深さ方向圧縮-拡張畳み込み層913及び加算及びReLU層914に提供される。深さ方向圧縮-拡張畳み込み層913は、サイズk×k(例えば3×3)のカーネル(例えば128個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層913は、ポイント方向圧縮畳み込み(例えば、32個=128/4の1×1×128カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、32×32×32データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層913は、ポイント方向拡張畳み込み(例えば、128個の1×1×32カーネル)を適用して、第2結合特徴マップ(例えば、32×32×128データ)を生成する。加算及びReLU層912及び深さ方向圧縮-拡張畳み込み層913の出力は、同じサイズである。加算及びReLU層914は加算及びReLU層912及び深さ方向圧縮-拡張畳み込み層913の出力を加算し、ReLUを適用して、出力データを生成する。プーリング層915は、冗長データを受信し、プーリング(例えば、ストライド2で最大プーリング)を提供して、CNN900の第3段階からの出力特徴マップ(例えば、16×16×128特徴マップ)を生成する。
【0050】
畳み込み層916は、特徴マップを受信し、例えば256個の1×1×128畳み込みカーネル、バッチ正規化、スケーリング、及びReLUを、第2段階からの特徴マップに適用し、結果データ(例えば、16×16×256データ)を深さ方向圧縮-拡張畳み込み層917及び加算及びReLU層918に提供する。深さ方向圧縮-拡張畳み込み層917は、サイズk×k(例えば3×3)のカーネル(例えば256個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層917は、ポイント方向圧縮畳み込み(例えば、64個=256/4の1×1×256カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、16×16×64データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層917は、ポイント方向拡張畳み込み(例えば、256個の1×1×64カーネル)を適用して、第2結合特徴マップ(例えば、16×16×256データ)を生成する。畳み込み層916及び深さ方向圧縮-拡張畳み込み層917の出力は、同じサイズである。加算及びReLU層918は、畳み込み層916及び深さ方向圧縮-拡張畳み込み層917の出力を加算し、ReLUを適用して出力データを生成する。図9Cを参照すると、出力データは、深さ方向圧縮-拡張畳み込み層919及び加算及びReLU層920に提供される。深さ方向圧縮-拡張畳み込み層919は、サイズk×k(例えば3×3)のカーネル(例えば256個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層919は、ポイント方向圧縮畳み込み(例えば、64個=256/4の1×1×256カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、16×16×64データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層919は、ポイント方向拡張畳み込み(例えば、256個の1×1×64カーネル)を適用して、第2結合特徴マップ(例えば、16×16×256データ)を生成する。加算及びReLU層918及び深さ方向圧縮-拡張畳み込み層919の出力は、同じサイズである。加算及びReLU層920は加算及びReLU層918及び深さ方向圧縮-拡張畳み込み層919の出力を加算し、ReLUを適用して、出力データを生成する。プーリング層921は、冗長データを受信し、プーリング(例えば、ストライド2で最大プーリング)を提供して、CNN900の第4段階からの出力特徴マップ(例えば、8×8×256特徴マップ)を生成する。
【0051】
畳み込み層922は、特徴マップを受信し、例えば512個の1×1×256畳み込みカーネル、バッチ正規化、スケーリング、及びReLUを、第2段階からの特徴マップに適用し、結果データ(例えば、8×8×256データ)を深さ方向圧縮-拡張畳み込み層923及び加算及びReLU層924に提供する。深さ方向圧縮-拡張畳み込み層923は、サイズk×k(例えば3×3)のカーネル(例えば512個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層923は、ポイント方向圧縮畳み込み(例えば、128個=512/4の1×1×512カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、8×8×128データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層923は、ポイント方向拡張畳み込み(例えば、512個の1×1×128カーネル)を適用して、第2結合特徴マップ(例えば、8×8×512データ)を生成する。畳み込み層922及び深さ方向圧縮-拡張畳み込み層923の出力は、同じサイズである。加算及びReLU層924は、畳み込み層922及び深さ方向圧縮-拡張畳み込み層923の出力を加算し、ReLUを適用して出力データを生成する。出力データは、深さ方向圧縮-拡張畳み込み層925及び加算及びReLU層926に提供される。深さ方向圧縮-拡張畳み込み層925は、サイズk×k(例えば3×3)のカーネル(例えば512個のカーネル)を、深さ方向分割可能畳み込み方法で適用して、本願明細書で議論されるように個別特徴マップを生成する。次に、深さ方向圧縮-拡張畳み込み層925は、ポイント方向圧縮畳み込み(例えば、128個=512/4の1×1×512カーネル、ここで4は圧縮率である)を適用して、第1結合特徴マップ(例えば、8×8×128データ)を生成する。最後に、深さ方向圧縮-拡張畳み込み層925は、ポイント方向拡張畳み込み(例えば、512個の1×1×128カーネル)を適用して、第2結合特徴マップ(例えば、8×8×512データ)を生成する。加算及びReLU層924及び深さ方向圧縮-拡張畳み込み層925の出力は、同じサイズである。加算及びReLU層926は加算及びReLU層924及び深さ方向圧縮-拡張畳み込み層925の出力を加算し、ReLUを適用して、出力データを生成する。プーリング層927は、結果データを受信し、プーリング(例えば、グローバル平均プーリング)を提供して、出力特徴ベクトルのような出力特徴を生成する。出力特徴は、ソフトマックス(softmax)モジュール928及び精度モジュール929に提供される。ソフトマックスモジュール928は、出力特徴ベクトルに対するソフトマックス関数を、範囲(0,1]の値の出力特徴ベクトルに実施して、全部のエントリが1だけ加算されるようにする。結果として生じた出力特徴ベクトルは、出力特徴ベクトル(例えば、閾値も超える最高値)の最良一致を決定するために、又は一致が発見されるか否かを決定するために、(制御部104により)使用されてよい。
【0052】
表1は、CNN900、乗算及び加算演算の数(#MAdd)、パラメータの数(#Parameter)、及び残余加算演算の数(Residual-ADD)を各段階で纏めたものである。表1で、(k,n)は標準的な畳み込みを示し、第1の数「k」は二乗2Dカーネルサイズ(例えば、k×k)を示し、第2の数「n」は出力チャネルの数を示す。例えば、Conv11では、(3,32)は32個の出力チャネルを有する3×3カーネルを示す。更に、<k,n>は、本願明細書で議論されるような深さ方向分割可能畳み込みを示し、第1の数「k」は2Dカーネルサイズを示し、第2の数「n」は出力チャネルの数を示す。例えば、<3,32>は、32個の分割可能な2D畳み込みを有する3×3の2Dカーネルを示す。表1に示すように、各深さ方向畳み込みの後に、本願明細書で議論したように1つの圧縮ポイント方向畳み込み及び1つの拡張ポイント方向畳み込みが続く。ネットワークでは、各畳み込み層の後に、バッチ正規化層(batch-normalization layer (BN))、スケーリング層、ReLU活性化が続く。これらは表示の明確化のために示されない。更に、提示のネットワークは、110MのMAdd及び530Kの#Parametersのみを有し、これは、従来のネットワークに対して、有意な計算の複雑さ及びモデルの圧縮をもたらす。利用可能オブジェクト検出データセットを用いてベンチマークされた本願明細書に議論されるネットワークの精度は、98.9%精度、93.6%TPR@FPR=0.1%(つまり、1000個のオブジェクトをテストする間、1個の間違い警報しか有しない正解数)、及び73.6% rank-1 DIR@FAR=1%を提供する。
【0053】
表1:CEDNet(g=4)概要
【表1】
図10は、本開示の少なくとも幾つかの実装により構成された深さ方向圧縮-拡張畳み込みを含む畳み込みニューラルネットワークをトレーニングする例示的な処理1000を示すフロー図である。処理1000は、図10に示すような1つ以上の動作1001~1004を含んでよい。処理1000は、本願明細書で議論される任意の装置又はシステムにより実行されてよく、本願明細書で議論されるような深さ方向圧縮-拡張畳み込みを有する任意のCNNをトレーニングする。処理1000又はその部分は、任意のCNNトレーニング、トレーニングセット、等について繰り返されてよい。処理1000は、本願明細書で議論される任意のCNNをトレーニングするために使用されてよい。処理1000により生成されるパラメータ重みは、メモリに格納され、例えばプロセッサにより実装されてよい。
【0054】
処理1000は、動作1001で開始し、画像データ111に関して議論された任意の特性を有する入力画像のトレーニングコーパスが取得される。トレーニングコーパス又はトレーニングデータは、正確なラベル及び誤ったラベルによりラベル付けされたCNNにより検出されるべきオブジェクト(例えば、顔)を有する画像のような画像データ111の任意の適切なコーパスを含んでよい。動作1002で処理は継続し、1つ以上の正規化入力画像がトレーニング画像の各々から抽出される。このような正規化は、任意の適切な技術又は複数の技術を用いて実行されてよく、検出及び正規化モジュール102に関して議論したような実装段階で実装されるようそれらを照合してよい。顔検出及び認識に関して議論したが、本願明細書で議論される技術を用いて任意のオブジェクト種類が検出され認識されてよい。
【0055】
処理は動作1003で継続し、動作1002で獲得された各正規化入力画像セグメント(例えば、正規化入力画像データ)は、CNNをトレーニングするために使用される。一実施形態では、CNNの実装のためのCNNパラメータ重みは、フィルタ重み及び完全結合層重みを含み、後方伝搬トレーニング技術に基づく各画像セグメントを用いて生成される。例えば、CNNフィルタサイズ、数、ストライド、及びチャネルは、マルチ段階CNNについて予めフォーマットされ又は予め選択されてよい。例えば、CNN300、CNN段階400、CNN段階800、CNN900に関して本願明細書で議論された又は任意の他のCNNの任意の特性、カーネルサイズ、数、プーリング特性、ストライド、及びチャネルは、選択されてよい。
【0056】
トレーニング中、このようなCNN特性が使用されてよく、CNNパラメータ重みはトレーニングされてよい。例えば、CNN特性は、固定されてよく、CNNパラメータ重み最初にランダムにされて、ランダムCNNパラメータ重みを確立してよい。次に、各トレーニング段階で、CNNが、順方向パスで、CNN全体を通過する画像セグメントに適用される。CNN出力データは、次に、知られているオブジェクトラベルを用いる損失関数に提供されて、平均二乗誤差のような任意の適切な技術又は複数の技術を用いて損失又は誤りを定める。次に、CNNを逆方向に通過させて、損失又は誤りに最も貢献した重みを決定し、それらを変更して損失又は誤りを低減又は最小化してよい。CNNパラメータ重みは、それにより調整され、追加トレーニング画像セグメントにより処理が継続する。更に、幾つかの又は全部の画像セグメントは、反復的方法で再び使用されてよい。このような処理は、損失目標が特定の画像サブセットについて満たされるまで、固定数の反復の後まで、等、継続してよい。
【0057】
処理は動作1004で継続し、結果として生じたCNNパラメータ重みが出力される。例えば、選択されたCNN特性及びトレーニング後に結果として生じたCNNパラメータ重みは、メモリに格納され、及び/又は別の装置へ実装のために送信されてよい。
【0058】
図11は、本開示の少なくとも幾つかの実装により構成された深さ方向圧縮-拡張畳み込みを含む畳み込みニューラルネットワークを実装する例示的な処理1100を示すフロー図である。処理1100は、図11に示すような1つ以上の動作1101~1104を含んでよい。処理1100は、畳み込みニューラルネットワーク処理の少なくとも一部を形成してよい。非限定的な例として、処理1100は、畳み込みニューラルネットワークの実装段階中に本願明細書で議論されるような装置100により実行される顔認識処理の少なくとも一部を形成してよい。更に、処理1100は、図12のシステム1200を参照して本願明細書で議論される。
【0059】
図12は、本開示の少なくとも幾つかの実装により構成された深さ方向圧縮-拡張畳み込みを含む畳み込みニューラルネットワークを実装する例示的なシステム1200の説明図である。図12に示すように、システム1200は、1つ以上の中央処理ユニット(central processing units (CPU))1201、グラフィック処理ユニット1202、及びメモリストア1203を含んでよい。また、図示のように、グラフィック処理ユニット1202は、顔検出及び正規化モジュール102、CNNモジュール102、及び制御部104を含み又は実装してよい。このようなモジュールは、本願明細書で議論される動作を実行するために実装されてよい。システム1200の例では、メモリストア1203は、入力画像データ、正規化入力画像データ、CNN出力データ、CNN重み、CNNカーネル、3D画像セグメントデータ、CNN特性及びパラメータデータ、バイナリニューラル特徴、オブジェクト認識データ、又は本願明細書で議論される任意の他のデータ又はデータ構造を格納してよい。
【0060】
図示のように、幾つかの例では、顔検出及び正規化モジュール102、CNNモジュール103、及び制御部104は、グラフィック処理ユニット1202により実装される。他の例では、顔検出及び正規化モジュール102、CNNモジュール103、及び制御部104のうちの1つ以上又はその部分は、中央処理ユニット1201又はシステム1200の画像処理ユニット(図示せず)により実装される。更に他の例では、顔検出及び正規化モジュール102、CNNモジュール103、及び制御部104のうちの1つ以上又はその部分は、画像処理パイプライン、グラフィックパイプライン、等により実装される。
【0061】
グラフィック処理ユニット1202は、本願明細書で議論されるような動作を提供し得る任意の数及び種類のグラフィック処理ユニットを含んでよい。このような動作は、ソフトウェア又はハードウェア又はそれらの組み合わせにより実装されてよい。例えば、グラフィック処理ユニット1202は、メモリストア1203から取得された画像データ、CNNデータ、等を操作するために専用の回路を含んでよい。中央処理ユニット1201は、システム1200に制御又は他の高レベル機能を提供し得る及び/又は本願明細書で議論される任意の動作を提供し得る任意の数及び種類の処理ユニット又はモジュールを含んでよい。メモリストア1203は、揮発性メモリ(例えば、静的ランダムアクセスメモリ(Static Random Access Memory, SRAM)、動的ランダムアクセスメモリ(Dynamic Random Access Memory, DRAM)、等)又は不揮発性メモリ(例えば、フラッシュメモリ、等)、等のような任意の種類のメモリであってよい。非限定的な例では、メモリストア1203はキャッシュメモリにより実装されてよい。一実施形態では、顔検出及び正規化モジュール102、CNNモジュール103、及び制御部104のうちの1つ以上又はその部分は、グラフィック処理ユニット1202の実行ユニット(execution unit (EU))により実装される。EUは、例えば、プログラマブルロジック機能の広範なアレイを提供し得るロジックコア又は複数のコアのようなプログラマブルロジック又は回路を含んでよい。一実施形態では、顔検出及び正規化モジュール102、CNNモジュール103、及び制御部104のうちの1つ以上又はその部分は、固定機能回路等のような専用ハードウェアにより実装される。固定機能回路は、専用ロジック又は回路を含んでよく、固定目的または機能の専用ロジックへマッピングし得る固定機能エントリポイントのセットを提供してよい。幾つかの実施形態では、顔検出及び正規化モジュール102、CNNモジュール103、及び制御部104のうちの1つ以上又はその部分は、特定用途向け集積回路(application specific integrated circuit (ASIC))により実装される。ASICは、本願明細書で議論される動作を実行するようカスタマイズされた集積回路を含んでよい。
【0062】
図11の議論に戻ると、処理1100は、動作1101で開始し、深さ方向分割可能畳み込みが複数の入力特徴マップに適用されて、複数の個別2D特徴マップを生成する。その結果、入力特徴マップは入力画像データに関連付けられる。入力画像データは、本願明細書で議論される任意の適切な入力画像データであってよい。一実施形態では、入力画像データはRGB画像データである。一実施形態では、入力画像データはRGB-D画像データである。一実施形態では、入力画像は、認識されるべき検出されたオブジェクト(例えば、顔)を含むよう正規化されて、入力画像データを生成する。入力特徴マップは、入力画像データに対応する。ここで、入力特徴マップは、入力画像データを処理するとき、CNNにより生成される。深さ方向分割可能畳み込みは、CNNの任意の段階で入力特徴マップに適用されてよく、入力特徴マップは、任意の次元(例えば、高さ、幅、及びチャネル)であってよい。深さ方向分割可能畳み込みは、入力特徴マップの入力チャネルに渡り情報が共有されないように、任意の適切な技術又は複数の技術を用いて適用されてよい。一実施形態では、深さ方向分割可能畳み込みの適用は、入力特徴マップの各々への多数のカーネル(例えば、k×k×1カーネル)を含む。
【0063】
処理は、動作1102で継続し、圧縮ポイント方向畳み込みが個別2D特徴マップに適用されて、第1の数のチャネルを有する複数の結合特徴マップ(例えば、第1結合特徴マップ)を生成する。圧縮ポイント方向畳み込みは、個別2D特徴マップのチャネルに渡り情報が共有されるように、任意の適切な技術又は複数の技術を用いて適用されてよい。一実施形態では、圧縮ポイント方向畳み込みの適用は、gが1より大きい圧縮係数であるように、第1の数n/gのカーネルを個別2D特徴マップに適用することを含む。一実施形態では、nは動作1101で提供されるカーネルの数、及び入動作1101で受信される力特徴マップのチャネルの数である。
【0064】
処理は、動作1103で継続し、拡張ポイント方向畳み込みが動作1102で生成された結合特徴マップに適用されて、第1の数のチャネルより多い第2の数のチャネルを有する複数の結合特徴マップ(例えば、第2結合特徴マップ)を生成する。拡張ポイント方向畳み込みは、動作1102で生成された結合特徴マップのチャネルに渡り情報が共有されるように、任意の適切な技術又は複数の技術を用いて適用されてよい。一実施形態では、拡張ポイント方向畳み込みの適用は、第2の数mの1×1×(n/g)カーネルの結合特徴マップへの適用を含む。
【0065】
処理は動作1104で継続し、オブジェクト認識データは、動作1103で生成された結合特徴マップに少なくとも部分的に基づき、入力画像データに対応する出力である。例えば、CNNは、オブジェクト認識データを生成するために使用され得るCNN入力データを生成するために更なる処理を提供してよい。オブジェクト認識データは、オブジェクト(例えば顔)が認識されたこと(又はされないこと)を示す又は特定のオブジェクト(例えば顔)が認識されたことを示す任意の適切なデータを含んでよい。一実施形態では、オブジェクト認識データは、入力画像データがユーザの顔に対応するか否かの指示子を含む。一実施形態では、オブジェクト認識データは、複数の候補の顔のうちの1つに対応するラベルを含む。
【0066】
上述のように、動作1103で生成された結合特徴マップは、CNNにより更に処理されてよい。一実施形態では、処理1100は、動作1101で受信した入力特徴マップ及び動作1103で生成された結合特徴マップを加算することにより、残余接続(residual connection)を実行して、出力特徴マップを生成するステップと、出力特徴マップ又は出力特徴マップに対応する第2出力特徴マップ(例えば、第2出力特徴マップはReLU等により第2出力特徴マップを更に処理することにより生成される)を、CNNの第2深さ方向分割可能畳み込みに提供するステップと、を更に含む。幾つかの実施形態では、処理1100は、また、第2深さ方向分割可能畳み込み、第2圧縮ポイント方向畳み込み、及び第2拡張ポイント方向畳み込みを、出力特徴マップ又は第2出力特徴マップに適用して、第3出力特徴マップを生成するステップであって、第3出力特徴マップは、上述の第2の数のチャネルより多い第3の数のチャネルを有する、ステップ、を更に含む。一実施形態では、第2圧縮ポイント方向畳み込みは、第3の数のチャネルを有する第3結合特徴マップを生成し、第2拡張ポイント方向畳み込みは、第4の数のチャネルを有する第4結合特徴マップを生成し、第2の数のチャネルの第1の数のチャネルに対する比は、第4の数のチャネルの第3の数のチャネルに対する比と同じである(例えば、両方の比が圧縮係数gである)。一実施形態では、処理1100は、第2深さ方向分割可能畳み込み、第2圧縮ポイント方向畳み込み、及び第2拡張ポイント方向畳み込みを、第2結合特徴マップに適用して、第3結合特徴マップを生成し、第3出力特徴マップは、第2の数のチャネルと等しい第3の数のチャネルを有する。
【0067】
処理1100は、入力画像データに基づき、オブジェクト(例えば、顔)認識データ又はオブジェクトラベルデータを生成するステップを提供してよい。処理1100は、任意の数の入力画像データセグメント、入力画像、等について、直列に又は並列に、任意の回数だけ繰り返されてよい。上述のように、処理1100は、低い計算及びメモリ要件により、高品質オブジェクト認識結果を提供し得る。
【0068】
本願明細書に記載されたシステムの種々のコンポーネントは、ソフトウェア、ファームウェア、及び/又はハードウェア及び/又はそれらの任意の組み合わせで実装されてよい。例えば、本願明細書で議論された装置又はシステムの種々のコンポーネントは、少なくとも部分的に、例えばコンピュータ、ラップトップコンピュータ、タブレット、又はスマートフォンのようなコンピューティングシステムに見られるようなコンピューティングSoC(System-on-a-Chip)のハードウェアにより提供されてよい。例えば、このようなコンポーネント又はモジュールは、マルチコアSoCプロセッサにより実装されてよい。当業者は、本願明細書に記載されるシステムが、対応する図面に示されない追加コンポーネントを含んでよいことを理解する。
【0069】
本願明細書で議論される例示的な処理の実装は図示された順序で示される全部の動作を実施することを含み得るが、本開示はこれに関して限定されず、種々の例では、本願明細書の例示的な処理の実装は、図示された動作の一部のみ、図示と異なる順序で実行される動作、又は追加の動作を含んでよい。
【0070】
更に、本願明細書で議論された動作のうちの任意の1つ以上は、1つ以上のコンピュータプログラムプロダクトにより提供される命令に応答して実行されてよい。このようなプログラムプロダクトは、例えばプロセッサにより実行されると本願明細書に記載の機能を提供し得る命令を提供する信号搬送媒体を含んでよい。コンピュータプログラムプロダクトは、1つ以上の機械可読媒体の任意の形式で提供されてよい。従って、例えば、1つ以上のグラフィック処理ユニット又はプロセッサコアを含むプロセッサは、1つ以上の機械可読媒体によりプロセッサへと伝達されるプログラムコード及び/又は命令又は命令セットに応答して、本願明細書の例示的な処理のブロックのうちの1つ以上を実行してよい。一般的に、機械可読媒体は、ソフトウェアを、本願明細書に記載の装置及び/又はシステムに本願明細書で議論した動作、モジュールまたはコンポーネントの少なくとも部分を実装させ得るプログラムコード及び/又は命令又は命令セットの形式で伝達してよい。
【0071】
本願明細書に記載した任意の実装で使用されるとき、用語「モジュール」は、本願明細書に記載の機能を提供するよう構成されるソフトウェアロジック、ファームウェアロジック、ハードウェアロジック、及び/又はカイロの任意の結合を表す。ソフトウェアは、ソフトウェアパッケージ、コード及び/又は命令セット又は命令として実現されてよい。ハードウェアは、本願明細書に記載の任意の実装で使用されるとき、例えば、プログラマブル回路により実行される命令を格納するハードワイヤド回路、プログラマブル回路、状態機械回路、固定機能回路、実行ユニット回路、及び/又はファームウェアのうちの単一又は任意の組み合わせを含んでよい。モジュールは、集合的に又は個別に、より大きなシステム、例えば集積回路(IC)、SoC(system-on-chip)、等の部分を形成する回路として実現されてよい。
【0072】
図13は、本開示の少なくとも幾つかの実装により全て構成された例示的なシステム1300の説明図である。種々の実装では、システム1300はコンピューティングシステムであってよいが、システム1300はこのコンテキストに限定されない。例えば、システム1300は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、ファブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、セルラ電話機、結合型セルラ電話機/PDA、テレビジョン、スマート装置(例えば、スマートフォン、スマートタブレット、又はスマートテレビジョン)、モバイルインターネット装置(MID)、メッセージ装置、データ通信装置、周辺装置、ゲームコンソール、ウェアラブル装置、ディスプレイ装置、オールインワン装置、ツーインワン装置、等に組み込まれてよい。
【0073】
種々の実装では、システム1300は、ディスプレイ1320に結合されたプラットフォーム1302を含む。プラットフォーム1302は、コンテンツサービス装置1330又はコンテンツ配信装置1340又はカメラ若しくはカメラモジュール等のような他の同様のコンテンツソースのようなコンテンツ装置からコンテンツを受信してよい。1つ以上のナビゲーション機能を含むナビゲーション制御部1350は、例えばプラットフォーム1302及び/又はディスプレイ1320と相互作用するために使用されてよい。これらのコンポーネントの各々は、以下に詳述される。
【0074】
種々の実装では、プラットフォーム1302は、チップセット1305、プロセッサ1310、メモリ1312、アンテナ1313、記憶装置1314、グラフィックサブシステム1315、アプリケーション1316、及び/又は無線機1318の任意の組み合わせを含んでよい。チップセット1305は、プロセッサ1310、メモリ1312、記憶装置1314、グラフィックサブシステム1315、アプリケーション1316、及び/又は無線機1318の間の相互通信を提供してよい。例えば、チップセット1305は、記憶装置1314との相互通信を提供可能な記憶装置アダプタ(図示せず)を含んでよい。
【0075】
プロセッサ1310は、CISC(Complex Instruction Set Computer)又はRISC(Reduced Instruction Set Computer)プロセッサ、x86命令セット互換プロセッサ、マルチコア、又は任意の他のマイクロプロセッサ又は中央処理ユニット(CPU)として実装されてよい。種々の実装では、プロセッサ1310は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ、等であってよい。
【0076】
メモリ1312は、限定ではないが、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)、又はSRAM(Static RAM)のような揮発性メモリ装置として実装されてよい。
【0077】
記憶装置1314は、限定ではないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部記憶装置、外付け記憶装置、フラッシュメモリ、バッテリバックアップSDRAM(synchronous DRAM)、及び/又はネットワークアクセス可能な記憶装置のような不揮発性記憶装置として実装されてよい。種々の実装では、記憶装置1314は、例えば複数のハードドライブが含まれるとき、貴重なデジタルメディアのための記憶性能拡張保護を向上する技術を含んでよい。
【0078】
グラフィックサブシステム1315は、表示のための静止画像、グラフィック、又はビデオのような画像の処理を実行してよい。グラフィックサブシステム1315は、例えば、グラフィック処理ユニット(graphics processing unit (GPU))、視覚処理ユニット(visual processing unit (VPU))、又は画像処理ユニットであってよい。幾つかの例では、グラフィックサブシステム1315は、本願明細書で議論されたスキャン画像レンダリングを実行してよい。アナログ又はデジタルインタフェースは、グラフィックサブシステム1315及びディスプレイ1320を通信可能に結合するために使用されてよい。例えば、インタフェースは、高解像度マルチメディアインタフェース(High-Definition Multimedia Interface)、ディスプレイポート(DisplayPort)、無線HDMI(登録商標)、及び/又は無線HD対応技術のうちのいずれかであってよい。グラフィックサブシステム1315は、プロセッサ1310又はチップセット1305に統合されてよい。幾つかの実装では、グラフィックサブシステム1315は、チップセット1305に通信可能に結合されるスタンドアロン型装置であってよい。
【0079】
本願明細書に記載される画像処理技術は、種々のハードウェアアーキテクチャで実装されてよい。例えば、画像処理機能はチップセット内に統合されてよい。代替として、個別グラフィック及び/又は画像プロセッサ、及び/又は特定用途向け集積回路が使用されてよい。更に別の実装として、画像処理は、マルチコアプロセッサを含む汎用プロセッサにより提供されてよい。更なる実施形態では、機能は、消費者電子機器に実装されてよい。
【0080】
無線機1318は、種々の適切な無線通信技術を用いて信号を送信及び受信可能な1つ以上の無線機を含んでよい。このような技術は、1つ以上の無線ネットワークに渡る通信に関連してよい。例示的な無線ネットワークは、(限定ではないが)無線ローカルエリアネットワーク(WLAN)、無線個人域ネットワーク(WPAN)、無線都市域ネットワーク(WMAN)、セルラネットワーク、及び衛星ネットワークを含む。このようなネットワークに渡る通信では、無線機1318は、任意のバージョンの1つ以上の適用可能な標準に従い動作してよい。
【0081】
種々の実装では、ディスプレイ1320は、任意の平面パネルモニタ又はディスプレイを含んでよい。ディスプレイ1320は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビのような装置、及び/又はテレビジョン、を含んでよい。ディスプレイ1320は、デジタル及び/アナログであってよい。種々の実装では、ディスプレイ1320は、ホログラフィックディスプレイであってよい。また、ディスプレイ1320は、視覚的投影を受信してよい透明な表面であってよい。このような投影は、種々の形式の情報、画像、及び/又はオブジェクトを伝達してよい。例えば、このような投影は、モバイル拡張現実(mobile augmented reality (MAR))アプリケーションであってよい。1つ以上のソフトウェアアプリケーション1316の制御下で、プラットフォーム1302は、ディスプレイ1320上にユーザインタフェース1322を表示してよい。
【0082】
種々の実装では、コンテンツサービス装置1330は、任意の国内、国際、及び/又は独立サービスによりホスティングされてよく、従って、例えばインターネットを介してプラットフォーム1302にアクセス可能であってよい。コンテンツサービス装置1330は、プラットフォーム1302及び/又はディスプレイ1320に結合されてよい。プラットフォーム1302及び/又はコンテンツサービス装置1330は、メディア情報をネットワーク1360へ及びそれから通信(例えば、送信及び/又受信)するために、ネットワーク1360に結合されてよい。コンテンツ配信装置1340も、プラットフォーム1302及び/又はディスプレイ1320に結合されてよい。
【0083】
種々の実装では、コンテンツサービス装置1330は、ケーブルテレビジョンボックス、パーソナルコンピュータ、ネットワーク、電話機、デジタル情報及び/又はコンテンツを配信可能なインターネット対応装置又は家電、コンテンツプロバイダとプラットフォーム1302とディスプレイ1320との間でネットワーク1360を介して又は直接にコンテンツを単方向又は双方向通信できる任意の他の同様の装置を含んでよい。コンテンツは、システム1300内のコンポーネントのうちの任意の1つ及びコンテンツプロバイダへ及びそれらからネットワーク1360を介して単方向及び/又は双方向通信されてよい。コンテンツの例は、例えばビデオ、音楽、医療及びゲーム情報、等を含む任意のメディア情報を含んでよい。
【0084】
コンテンツサービス装置1330は、メディア情報、デジタル情報、及び/又は他のコンテンツを含むケーブルテレビジョン番組のようなコンテンツを受信してよい。コンテンツプロバイダの例は、任意のケーブル又は衛星テレビジョン又はラジオ又はインターネットコンテンツプロバイダを含んでよい。提供された例は、本開示に従う実装をどのようにも限定することを意味しない。
【0085】
種々の実装では、プラットフォーム1302は、制御信号を、1つ以上のナビゲーション機能を有するナビゲーション制御部1350から受信してよい。ナビゲーション制御部1350のナビゲーション機能は、例えば、ユーザインタフェース1322と相互作用するために使用されてよい。種々の実施形態では、ナビゲーション制御部1350は、ユーザが空間的(例えば、連続及び多次元)データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント(具体的には、ヒューマンインタフェース装置)であってよいポインティングデバイスであってよい。グラフィックユーザインタフェース(GUI)、テレビジョン、及びモニタのような多数のシステムは、ユーザが身体的ジェスチャを用いてデータを制御し、コンピュータ又はテレビジョンにデータを提供することを可能にする。
【0086】
ナビゲーション制御部1350のナビゲーション機能の動きは、ポインタ、カーソル、焦点リング、又はディスプレイ上に表示される他の視覚的指示子の動きにより、ディスプレイ(例えば、ディスプレイ1320)上で模写されてよい。例えば、ソフトウェアアプリケーション1316の制御下で、ナビゲーション制御部1350に配置されたナビゲーション機能は、例えばユーザインタフェース1322上に表示される仮想ナビゲーション機能にマッピングされてよい。種々の実施形態では、ナビゲーション制御部1350は、個別コンポーネントでなくてよいが、プラットフォーム1302及び/又はディスプレイ1320に統合されてよい。しかしながら、本開示は、図示の又は本願明細書に記載のコンテキストに又は要素に限定されない。
【0087】
種々の実装では、装置(図示せず)は、ユーザが、テレビジョンのようなプラットフォーム1302を、例えば初期ブートアップの後に、有効にされるとき、ボタンのタッチにより瞬時にオン及びオフにできるようにする技術を含んでよい。プログラムロジックは、プラットフォーム1302が、メディアアダプタ又は他のコンテンツサービス装置1330又はコンテンツ配信装置1340に、プラットフォームが「オフ」にされているときでも、コンテンツをストリーミングできるようにしてよい。更に、チップセット1305は、例えば5.1サラウンドサウンドオーディオ及び/又は高解像度12.1サラウンドサウンドオーディオのハードウェア及び/又はソフトウェアサポートを含んでよい。ドライバは、統合グラフィックプラットフォームのためのグラフィックドライバを含んでよい。種々の実施形態では、グラフィックドライバは、PCI(peripheral component interconnect)Expressグラフィックカードを含んでよい。
【0088】
種々の実装では、システム1300内に示されたコンポーネントのうちの任意の1つ以上は、統合されてよい。例えば、プラットフォーム1302及びコンテンツサービス装置1330が統合されてよく、又はプラットフォーム1302及びコンテンツ配信装置1340が統合されてよく、又はプラットフォーム1302、コンテンツサービス装置1330、及びコンテンツ配信装置1340が統合されてよい。種々の実施形態では、プラットフォーム1302及びディスプレイ1320は統合されたユニットであってよい。例えば、ディスプレイ1320及びコンテンツサービス装置1330が統合されてよく、又はディスプレイ1320及びコンテンツ配信装置1340が統合されてよい。これらの例は、本開示を限定することを意味しない。
【0089】
種々の実施形態では、システム1300は、無線システム、有線システム、又は両者の組み合わせとして実装されてよい。無線システムとして実装されるとき、システム1300は、1つ以上のアンテナ、送信機、受信機、トランシーバ、増幅器、フィルタ、制御ロジック、等のような無線共有媒体を介して通信するために適するコンポーネント及びインタフェースを含んでよい。無線共有媒体の例は、RFスペクトル等のような無線スペクトルの部分を含んでよい。有線システムとして実装されるとき、システム1300は、入力/出力(I/O)アダプタ、I/Oアダプタを対応する有線通信媒体に接続するための物理コネクタ、ネットワークインタフェースカード(NIC)、ディスク制御部、ビデオ制御部、オーディオ制御部、等のような無線通信媒体を介して通信するために適するコンポーネント及びインタフェースを含んでよい。有線通信媒体の例は、ワイヤ、ケーブル、金属リード、印刷回路基板(PCB)、バックプレーン、スイッチ設備、半導体材料、より対線、同軸ケーブル、光ファイバ、等を含んでよい。
【0090】
プラットフォーム1302は、情報を通信するために、1つ以上の論理又は物理チャネルを確立してよい。情報は、メディア情報及び制御情報を含んでよい。メディア情報は、ユーザにコンテンツの意味を提示する任意のデータを表してよい。コンテンツの例は、例えば、ビデオ通話からのデータ、ビデオ会議、ストリーミングビデオ、電子メール(email)メッセージ、音声メールメッセージ、英数字記号、グラフィック、画像、ビデオ、テキスト、等を含んでよい。ビデオ通話からのデータは、例えば、会話情報、無音期間、背景雑音、快適雑音、トーン、等であってよい。制御情報は、自動システムにとって意味のあるコマンド、命令、又は制御語を提示する任意のデータを表してよい。例えば、制御情報は、システムを通じてメディア情報をルーティングし、所定の方法でメディア情報を処理するようノードに指示するために使用されてよい。しかしながら、実施形態は、図13に示した又は記載したコンテキストに又は要素に限定されない。
【0091】
上述のように、システム1300は、種々の物理的形式又は寸法で実現されてよい。図14は、本開示の少なくとも幾つかの実装により構成された例示的な小型装置1400を示す。幾つかの例では、システム1300は、装置1400により実装されてよい。他の例では、本願明細書で議論された他のシステム、コンポーネント、又はモジュール、又はそれらの部分は、装置1400により実装されてよい。種々の実施形態では、例えば、装置1400は、無線能力を有するモバイルコンピューティング装置として実装されてよい。モバイルコンピューティング装置は、例えば、処理システム及び1つ以上のバッテリのようなモバイル電源若しくは供給を有する任意の装置を表してよい。
【0092】
例えば、モバイルコンピューティング装置の例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、セルラ電話機、結合型セルラ電話機/PDA、スマート装置(例えば、スマートフォン、スマートタブレット、又はスマートモバイルテレビジョン)、モバイルインターネット装置(MID)、メッセージ装置、データ通信装置、カメラ(例えば、オートフォーカスカメラ、スーパーズームカメラ、デジタル一眼レフ(DSLR)カメラ)等に組み込まれてよい。
【0093】
モバイルコンピューティング装置の例は、自動車又はロボットにより実装されよう、又は手首コンピュータ、指コンピュータ、指輪コンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、腕輪コンピュータ、靴コンピュータ、衣類コンピュータ、及び他のウェアラブルコンピュータのような人間により装着されるよう、構成されるコンピュータも含んでよい。種々の実施形態では、例えば、モバイルコンピューティング装置は、コンピュータアプリケーション及び音声通信及び/又はデータ通信を実行可能なスマートフォンとして実装されてよい。幾つかの実施形態は、例としてスマートフォンとして実装されるモバイルコンピューティング装置により記載され得るが、他の実施形態は他の無線モバイルコンピューティング装置を用いて実装されてもよいことが理解される。実施形態はこのコンテキストに限定されない。
【0094】
図14に示されるように、装置1400は、前面1401及び背面1402を有する筐体を含んでよい。装置1400は、ディスプレイ1404、入力/出力(I/O)装置1406、カラーカメラ1421、カラーカメラ1422、赤外線送信機1423、及び内蔵アンテナ1408を含む。幾つかの実施形態では、カラーカメラ1421、カラーカメラ1422、赤外線送信機1423は、本願明細書で議論したような3D画像データを獲得する。幾つかの実施形態では、装置1400は、カラーカメラ1421及び1423を含まず、装置1400は、本願明細書で議論したように入力画像データ(例えば、RGB入力画像データ)を獲得する。装置1400は、ナビゲーション機能1412を含んでもよい。I/O装置1406は、モバイルコンピューティング装置に情報を入力する任意の適切なI/O装置を含んでよい。I/O装置1406の例は、英数字キーボード、数字パッド、タッチパッド、入力キー、ボタン、スイッチ、マイクロフォン、スピーカ、音声認識装置及びソフトウェア、等を含んでよい。情報は、マイクロフォン(図示せず)により置1400に入力されてよく、又は音声認識装置によりデジタル処理されてよい。図示のように、装置1400は、装置1400の背面1402(又はその他の場所)に統合されたカラーカメラ1421、1422、赤外線送信機1423、及びフラッシュ1410を含んでよい。他の例では、カラーカメラ1421、1422、赤外線送信機1423、及びフラッシュ1410は、装置1400の前面1401に統合されてよく、又はカメラの前面及び背面セットの両方が提供されてよい。カラーカメラ1421、1422、及びフラッシュ1410は、例えばディスプレイ1404へと出力される及び/又は装置1400からアンテナ1408を介して遠隔に通信される画像又はストリーミングビデオへと処理されてよいIRテクスチャ補正を有するカラー画像データを生成するカメラモジュールのコンポーネントであってよい。
【0095】
種々の実施形態は、ハードウェア要素、ソフトウェア要素、又は両者の組み合わせを用いて実装されてよい。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、キャパシタ、インダクタ、等)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理装置(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体装置、チップ、マイクロチップ、チップセット、等を含んでよい。ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はそれらの任意の組み合わせを含んでよい。実施形態がハードウェア要素及び/又はソフトウェア要素を用いて実装されるかの決定は、所望の計算レート、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計又は性能制約のような任意の数の要因に従い変化してよい。
【0096】
少なくとも一実施形態の1つ以上の態様は、機械により読み取られると、該機械に本願明細書に記載の技術を実行するためのロジックを生成させる、プロセッサ内の種々のロジックを提示する機械可読媒体に格納された代表的命令により実装されてよい。このような表現は、IPコアとして知られ、有形機械可読媒体に格納され、実際にロジック又はプロセッサを作る製造機械にロードするために種々の顧客又は製造設備に供給されてよい。
【0097】
本願明細書に記載の特定の特徴は、種々の実装を参照して説明されたが、この説明は、限定的意味と考えられることを意図しない。従って、本願明細書に記載の実装の種々の変形、及び他の実装は、本開示の関連する当業者に明らかであり、本開示の精神及び範囲内に包含されると考えられる。
【0098】
実施形態は、記載の実施形態に限定されず、添付の請求の範囲から逸脱することなく変形及び代替を行うことができることが理解される。例えば、上述の実施形態は、特徴の特定の組み合わせを含んでよい。しかしながら、上述の実施形態はこれに関して限定されず、種々の実施形態では、上述の実施形態は、このような特徴の部分集合のみを実行すること、このような特徴の異なる順序を実行すること、このような特徴の異なる組み合わせを実行すること、及び/又は明示的にリストした特徴に追加した特徴を実行することを含んでよい。実施形態の範囲は、従って、添付の請求の範囲を参照して、権利の与えられた該請求の範囲の均等な全範囲とともに、決定されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図10
図11
図12
図13
図14