JP2019082978A - スキップアーキテクチャ・ニューラルネットワーク装置及び改良されたセマンティックセグメンテーションのための方法 - Google Patents

スキップアーキテクチャ・ニューラルネットワーク装置及び改良されたセマンティックセグメンテーションのための方法 Download PDF

Info

Publication number
JP2019082978A
JP2019082978A JP2017214985A JP2017214985A JP2019082978A JP 2019082978 A JP2019082978 A JP 2019082978A JP 2017214985 A JP2017214985 A JP 2017214985A JP 2017214985 A JP2017214985 A JP 2017214985A JP 2019082978 A JP2019082978 A JP 2019082978A
Authority
JP
Japan
Prior art keywords
layer
pooling
image
output
weighting factor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017214985A
Other languages
English (en)
Other versions
JP6584477B2 (ja
Inventor
玖 徐
Jiu Xu
玖 徐
ビヨン シュテンガー
Stenger Bjorn
ビヨン シュテンガー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rakuten Inc filed Critical Rakuten Inc
Publication of JP2019082978A publication Critical patent/JP2019082978A/ja
Application granted granted Critical
Publication of JP6584477B2 publication Critical patent/JP6584477B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document
    • G06V30/422Technical drawings; Geographical maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Abstract

【課題】精細な及び/又は複雑な画像を効率よく正確に処理するための新規な装置と方法を創作する。【解決手段】畳み込みニューラルネットワークシステムを使用して画像のセマンティックセグメンテーションを行うためのコンピュータを使用する方法であって、プロセッサが、複数のフィルタで入力画像を畳み込み、第1の出力ボリュームを出力してプーリングし、第1の活性化マップを生成し、セマンティックセグメンテーションへの第1の活性化マップの影響のレベルを判定し、第1の活性化マップをアッププーリングして入力画像と同じ画素数を持つ出力画像を形成し、確率的セグメンテーションの結果を出力し、各画素に対し特定のラベルが貼られる確率をラベリングするよう構成され、セマンティックセグメンテーションに対する第1の活性化画像の影響のレベルについての判定はプーリング層とアッププーリング層の間に位置するゲート層を用いて行われる、方法。【選択図】図4

Description

画像認識とコンピュータビジョンは、大学が人工知能の開発を開始した1960年代には既に存在していた。従前、画像認識を行おうとする際には、視点の変化、スケーリング、方向、変形、オクルージョン、照明条件、背景のノイズ、クラス内変動、オブジェクトの検出及び認識等に係る困難があった。これらの画像認識についての困難に鑑み過去50年に渡って改良と発達がなされてきたが、現在の方法でも、効率的で正確な画像の特定には依然困難が存在する。
図1は、コンピュータビジョンによる認識が非常に困難な画像の例である。図1は、典型的な間取図画像2を示す。図からわかるように、様々な大きさの部屋空間が種々示されている。回転式ドアとスライド式クローゼットドアの両方が描かれており、器具や備品を表す典型的な記号が示されている。実際にありうることであるが、本例においても面積の大きさが様々な測定単位で示される。エリア10は、従来の日本式測定単位である「j」又は「畳」で記述される一方、区域12は、「m」又は「平方メートル」の測定単位で記述される。また、間取図画像2は、内外壁8とドア6を示している。更に、間取図画像2は、寝室10、バルコニー12、及び居室14をも示している。図1が示す間取図画像の付加的な要素のそれぞれが、コンピュータが画像と画像内のオブジェクトを認識するのをより困難にしている。これは、オブジェクトの数が大きくなるほど、画像に対して必要な画像処理が増えるからである。例えば、画像オブジェクトのそれぞれから、線、エッジ、コーナー、形状等、画像データから抽出される必要のある特徴が生み出される。これら抽出された特徴のそれぞれについて、セグメンテーション(画素のラベリング)及びオブジェクト検出(画素グループをカテゴリに分類すること)を決定するための処理決定が行われなければならない。画像認識及びコンピュータビジョンの処理が、多大なコンピュータ処理資源を必要とすることは理解される。
図2Aは、間取図画像200の低質な画像認識を示す。画像220内のボックス222及び224が示すように、コンピュータ処理は、これらが特定する区域を検出することができなかった。入力画像220の対応区域を見ると、区域202及び210は、他の画像206、204及び208よりも精細度の高い特徴を有している。このことが、コンピュータがこれらの区域をより精細に認識することを妨げている。
図2Bは、他の低質なコンピュータビジョンの例を示す。本例では、入力画像における垂直線280が、コンピュータが間取図画像270を認識しようとするに当たり問題となった。出力画像275に示されるように、この垂直線は、ボックス区域290において示されているように、間取図画像275の特徴と解釈されてしまっている。
上述したコンピュータビジョンの技術的な問題に鑑み、発明者は、込み入った、精細な及び/又は複雑な画像を、効率よく正確に処理するための新規な装置と方法を作り上げた。発明者は畳み込みニューラルネットワークシステム(以下、「CNNシステム」又は「CNN」)と、端から端まで画素ごとに訓練されており、入力画像を取得し、画像に対し効率よく正確にセマンティックセグメンテーションを実施することの出来る全層畳み込みニューラルネットワークアーキテクチャを選択する方法と、を発明した。例えば、新たな層がプーリング層においてネットワークに導入され、ネットワークは、処理の際に、プーリング層が処理下にある対象画像に何らかの影響を持つか否か、もしそうならどの程度までかを学習する。プーリング層が閾値レベルの影響を及ぼしていなければ、当該プーリング層はスキップされてよい。このことによってこの新たなネットワーク層は、処理層の自己編集、及びより重要なこととして高処理効率のためのアーキテクチャの最適化をネットワークに可能にさせる、自己適応型CNNアーキテクチャを生成する。
更に、CNNの出力するセグメント化画像は原入力画像と同じ画素サイズを持ち、CNNは画像の各画素にセマンティックにラベリングをする。ここで開示する畳み込みニューラルネットワークシステムとそのアーキテクチャの自己選択方法が、正確な画素予想を可能にし、これにより、局所区域の分類のみならず、画像全体としての分類も同様に改善される。このことが、上述したような多種の処理困難な画像を、適切に処理して分類するCNNの能力を、大いに高めることができる。ここで記載されるシステムにより、画素ごとの分類が画像内の全ての画素に対して行なわれることが可能になる。これにより、分類対象の入力画像の詳細につき、細かな粒状化が可能となる。
畳み込みニューラルネットワークは、ネットワークの深さ、フィルタの数、及びフィルタのサイズ等の要素によっては、高い計算コストを有する可能性がある。また、複数のフィルタによる画像の畳み込みは、途方もない量のデータの生成につながる可能性がある。更に、畳み込みニューラルネットワークに追加された各追加層の計算コストも、同様に増加する。画像は、数百から数百万もの画素を含むことがあり、またCNNでは、複数の算術的演算が画素ごとに行われる。詳細は後述するが、ここで記載するCNNシステム及びアーキテクチャは、不要な処理ステップを除いて効率的に画像のセグメント化をすることで、効率的な画像セグメンテーションにつながる。
典型的なCNNシステムアーキテクチャは、一連の畳み込み層、修正層、及びプーリング層より構成される。これらの層のセットは直列に配列され、入力画像の処理とセグメント化を行う。
一実施形態に係るCNNシステムでは、各プーリング層の出力は、次の畳み込み層に送られるだけではなく、プーリングのスコアリングをする層、例えばスコアリング層へと送ることもできる。このスコアリング層は、プーリング層から対応するアッププーリング層にチャネルをマッピングし、最終的なセグメント化画像に対し、更なる詳細を付け加えるのを助けることができる。
しかし、全てのプーリング層がセグメント化画像に対し多大な影響を持っているわけではない。発明者は、計算コストを削減するために、指定されたプーリング層のためのスコアリング層を除去すること、又は、当該スコアリング層のスキップの決定を行うことができるCNNシステムアーキテクチャを選択する方法を創作した。ここで議論されるタイプの画像処理は、携帯デバイスやパソコン等の計算能力が限られたデバイスを通じ行うことが望ましいことを勘案すれば、計算コストの削減は重要である。例えばセマンティックセグメンテーションは、携帯デバイスにおいて当該デバイスのウェブブラウザを使用して、又は、例えばデバイス上で実行される専用のアプリケーションにおいて、実行することができる。この改善された処理能力は、実質的に無限の応用可能性をもたらす。
例えば、間取図画像等の画像のセグメンテーションを、リアルタイムで行うことができる。このため、処理時間の短縮はいかなる形であれ望ましいものである。間取図画像は、建築物のレイアウトについて一般的な空間的理解を提供するために、不動産やその他の分野においてよく使用される。間取図画像データから特徴や大きさについての情報を信頼できる形で抽出する能力には、様々な用途がある。例えば、間取図画像は、分析されて、寸法データが当該画像のメタデータに加えられることがある。これによって、処理された間取図画像が、所望の部屋のサイズや範囲で検索又は分類されることができる。あるいは、アパートや家の潜在的な購買者(又は賃借者)が、家具が部屋や廊下に合うか否か知りたいかもしれない。このような疑問に対しては、ここでの開示に係る間取図画像処理によって答えを得ることが可能となる。
今日に至るまで、間取図画像の特徴の特定/分析に係る分野では、間取図画像の高解像度スキャン画像を処理することが重要とされてきた。一般に、これらの種類の画像の分析のための従来の試みは、画像2値化に依存されてきた。画像2値化とは、間取図画像の壁その他の特徴を1か0で特定することを試みる技術である。通常、1は通常、壁等の物質的な特徴を表し、0は通常、部屋の内部等のオープンスペースを表す。
この画像2値化によるアプローチは、標準的な間取の特徴及びデザインを有する間取図の超高解像度画像に対しては、ある程度の成功を収めていた。しかし、実社会では、間取図特徴の表記法と間取図画像の画質の大きなバラつきのゆえに、全体として満足のいく結果は得られていなかった。間取図特徴の表記法の上記バラつきに加え、多くの場合、画像が古くて低解像度なために、画像2値化の従来の方法は、間取図画像の様々な特徴の正確な分類に失敗してきた。
更に、間取図の2次元・3次元間の双方向の変換が試みられてきた。こういった画像変換のための技術には、画像2値化技術、構造とテキストの分離技術、及びシンボルの認識/ベクトル化技術が採用されている。しかし、上記画像2値化技術における困難性により、これらの変換技術は、正確な間取図検出結果をもたらすことに失敗してきた。
そのため、低解像度間取図画像の正確な解析の提供が可能な間取図画像認識/間取図特徴検出の技術の提供が望まれることが分かる。更に、間取図特徴を正確に特定する、間取図画像認識/特徴検出の技術の提供が望ましい。ここで開示される技術で、間取図画像認識/間取図特徴検出、より具体的に言えば間取図画像セグメンテーションが、低解像度入力画像を含むいかなる種類の入力画像を用いたときでも、正確にセグメント化された間取図画像を出力するデバイスと方法を開発されたことにより、改良される。
開示の実施形態によって、低解像度画像の画像解析を用いる間取図画像認識/間取図特徴検出を提供するデバイスと方法が開示される。
更に、開示の実施形態によって、間取図画像認識、及び間取図特徴を正確に特定する間取図特徴検出を提供するデバイスと方法が開示される。
更に、開示の実施形態によって、画像認識を提供するデバイスと方法が改良され、より素早くセグメント化された画像をユーザが取得することを可能にするデバイスと方法が開発されることが開示される。
更に、開示の実施形態によって、改良された自己適応型画像認識アーキテクチャを提供するデバイスと方法が開示される。このシステムと方法は、画像のセグメント化に際し計算コストを減少させる。
以下の図は、本明細書で開示の発明の様々な構成要素の例を示すものであり、例示を目的とする。
間取図画像の例である。 間取図画像の低質なセグメンテーションの一例である。 間取図画像の低質な検出の第2の例である。 訓練前の、本発明の第1の実施形態である。 訓練後の、本発明の第1の実施形態である。 畳み込みの一例である。 最大プーリングの一例である。 アッププーリングの一例である。 フラクショナル畳み込みの一例である。 どのようにλを決定するかのフローチャートである。 学習率の決定の実施形態である。 CNNシステムアーキテクチャの決定のフローチャートである。 第1の実施形態に係る訓練されたCNNシステムである。 第1の実施形態の訓練されたCNNシステムに係るセグメンテーション結果である。 第1の実施形態の訓練されたCNNシステムに係るセグメンテーション結果である。 第1の実施形態の訓練されたCNNシステムに係るセグメンテーション結果である。 本発明の実施形態に係る3次元間取図である。 CNNシステムを走らせるために使用され得るハードウェアの一例である。
ニューラルネットワークとCNNについての分野は、コンピュータサイエンス分野において、新規かつ迅速に進歩している。そのため、本明細書で使用する用語の幾つかは、スタンダードな専門用語として定着しておらず、多くの場合、いくつかの類義語がある。例えば、この開示において、特徴マップ/アクティベーションマップといいった用語は、相互に交換可能なものとして使用される。その他に、デコンボリューションやフラクショナルコンボリューションといった用語は、コンピュータビジョン関連のコミュニティでは、一般的な認知を得るためにまだ競い合っている。この文書の時点では、発明者は、最も一般的に受け入れられている用語を使用している。しかしながら、当業者は、専門用語は時とともに変化し得るものの、本発明は、専門用語の如何にかかわらず本明細書で開示の概念と方法に関するものであることを理解するであろう。
本開示では、セグメント化画像に対する学習ベースのアプローチを実現し、全層畳み込みニューラルネットワークス(FCNNs:以降、CNNと省略して記載)を用いてオブジェクトを検出する。本開示は、間取図画像のセグメント化に関する実施形態を記載するが、それに限定されない。当業者は、間取図画像に限らずいかなる画像も、本明細書で記載の発明に使用することができることを理解するだろう。例えば、一実施形態においては、開示のシステムは、自律走行車両、建築図面(architectural drawings)、写真、類似検索、CADモデル生成、及びレンダリングのための3Dモデル生成における画像セグメンテーション及び検出に適用してもよいし、インタラクティブな3次元ウォークスルー、家具のフィッティング、及び施工計画等に適用してもよい。更に、本明細書で開示のCNNシステムのアーキテクチャ選択は、音声認識及び制御システム等にも利用することもできる。本明細書で開示のシステムは、CNNシステムの実行に係る計算コストを減少させる。このため当該システムは、CNNシステムが使用されるいかなるアプリケーションに対しても利用可能である。
大まかに言えば、CNNシステムは、畳み込み層やプーリング層を含む多層ネットワークを使用して動作する。畳み込み層では、処理対象の画像は、畳み込み演算において複数のフィルタの1つを用いて数学的に畳み込まれる。プーリング層は、畳み込み層の出力を次の層に統合する。例えば、最大プーリングでは、次の畳み込み層における画素グループを表すために、画素グループの最大値が選択される。同様に、平均プーリングでは、次の畳み込み層における画素グループを表すために、平均画素値が選択される。CNNシステムにおいては、フィルタの重み又は係数は、訓練プロセスで学習される。訓練は、セグメンテーションの前提を得るために、訓練画像のセットがCNNシステムによって処理されるプロセスである。訓練画像は、画像に対する正しいセグメンテーションが既知であるとして使用される。正しいセグメンテーション画像は、教師データとしてとして理解される。ひとたび教師画像が理解されると、処理されるべき画像がCNNシステムに入力される。この画像についてのCNNシステムの出力は、正しいデータ教師画像と比較され、CNNシステムが画像の特徴に対してどれだけ正確にラベリングをしたか、又は、セグメント化及び特定をしたかを判定することができる。
図13A,13B及び13Cは、上記の例を示す図であり、3つの間取図画像1210、1216、及び1222がそれぞれ示されている。CNNシステムは、これらの画像を入力画像として受け取り、間取図画像がそれぞれどのような特徴を含むかを判定する。即ち、CNNシステムは、例えば、間取図画像の壁がどこにあるかを判定する。CNNシステムは、間取図画像の壁がどこにあるかを画素ごとに判定し、特定の画素のラベルを決定する。間取図の一般的なラベルとしては、例えば部屋、壁、窓、ドア、風呂場、居室、寝室、バルコニー等である。
訓練で使用される教師画像は、一般に手作業で作成される。即ち、人間が間取図画像を解析し、間取図内の各画素に対する正しいラベルを決定する。教師画像は、ある入力画像に対するCNNシステムの理想的な出力であり、「正しい答え」である。例えば、図13A,13B及び13Cに示されているように、画像1214、1220、及び1226は、画像1210、1216、及び1222それぞれに対する教師画像を表したものである。
処理の後、本実施形態のCNNシステムは、入力画像に基づくセグメント化画像、例えば、符号1212、1218、及び1224によって示されるものを出力する。
CNNシステムにおいて使用されるフィルタは、誤差逆伝播法と呼ばれる処理で作成/学習される。教師画像をCNNシステムの理想的な出力として使用し、CNNシステムの出力は教師画像と比較される。CNNシステムが、正確で教師画像に近いセグメント化画像を出力する場合、CNNシステムが教師画像からかけ離れたセグメント化画像を出力する場合と比べ、畳み込みフィルタは殆ど(或いは全く)改変を受けない。出力画像の精度を決定する方法は、後述する。CNNシステムの出力におけるエラーが教師データに比べて大きい場合、畳み込みフィルタと投票の重み付けは、より大きく変更される。このようにして、CNNシステムは「訓練され」、「学習する」。
より具体的には、CNNシステムの畳み込みフィルタは、勾配降下法を用いて改変することができる。勾配降下法は、エラーがどのように変化するか判定するために、投票の重み付けを少量増減したり、各フィルタ調整したりするために使用可能である。大きなエラーは、大きな調整となり、小さなエラーは、小さな調整となる。エラーがなければ、調整されない。
図3に戻り、本開示のCNNシステムアーキテクチャの概要を説明する。同図に示すように、一般的には、その後に数字を伴う略語である「Con」又は「Conv」は、畳み込み処理層を表し、数字は、各畳み込み層の番号を表す。その後に数字の伴う略語である「Pool」は、プーリング処理層を表し、数字は各プーリング層の番号を表す。同様に、その後に数字が伴う用語「UpPool」は、アッププーリング処理層を表し、数字は各アッププーリング層の番号を表す。先述したように、プーリング層は、畳み込み層の出力を結合して次の層とする。この処理より、画像が畳み込み層及びプーリング層の各々を移動するときに、画像サイズ又は画像量が減少する。アッププーリングは、逆の作用をする。即ち、後述する図7に示すように、アッププーリングにおいては、画素数の増加に従って画像サイズの総量が増加する。同様に、後述するように、ScorePoolを含むスコアリング層と、Gateよりなるゲート層と、が完全に定義及び記述される。
図3は、入力画像をセグメント化するためのCNNシステムアーキテクチャの実施態様を示す。例えば、入力画像は、図1に示す間取図画像であってもよい。図3のCNNシステムは、Conv1、Conv2、Conv3、Conv4、Conv5、及びConv6の6つの異なる畳み込み層を有する。代替的な実施形態においては、CNNシステムアーキテクチャの畳み込み層の数は、6つに限定されない。CNNシステムにおいては、これよりも多くてもよいし少なくてもよい又は。これより多くの層が使用された場合、追加された層は、CNNシステムの出力における精度の向上につながる傾向があり、CNNシステムがセグメンテーション結果をより速く取得する可能性がある。しかし、通常の場合通常、層数の増加は、CNNシステムの計算コストの増加を意味する。更に、より多い層を使用すると、精度が向上するものの、ある一定のレベルまでしか向上しない。CNNシステムがひとたびセグメンテーション結果を取得できるようになると、追加された層は、必ずしも出力精度に寄与するわけではなく、単に計算コストが高くなるだけである。
本開示において計算コストとは、CPU又はGPUによる演算ステップ、揮発性及び不揮発性のメモリを含むメモリの使用量、電力消費、及び使用時間のうちの何れか又は全てを意味する。
畳み込み層についての詳細な議論については、後述する「畳み込み」という名のセクションを参照されたい。
一般的に、ReLuと略称される修正線形ユニットも、畳み込み層とプーリング層との間で使用可能である。図3のCNNシステムを理解しやすくするために、ReLuは図示していない。ReLuとは、その名が示唆するように、いかなる負値をもゼロに変えるよう、特徴マップの出力を修正する。ReLu層の詳細については、後述する「修正線形ユニット」のセクションの詳細を参照してほしい。
図3のCNNシステムは、5つのプーリング層、即ちPool1、Pool2、Pool3、Pool4、及びPool5を含む。しかし、CNNシステムアーキテクチャのプーリング層の数は、5つに限定されない。ネットワークに含まれるプーリング層は、これよりも多くてもよいし、少なくてもよい。図3のCNNシステムは、畳み込み層の出力がプーリング層に入力される構造を有する。例えば、Conv1の出力はPool1に入力される。ただし、Pool1は、2つの出力を有する。Pool1の第1の出力は、第2の畳み込み層であるConv2に入力され、Pool1の第2の出力は、Gate1に入力される。開示のCNNシステムにおいては、ゲートは、プーリング層の出力データのスケーリングを(スケーリング因子λで)行い、閾値化機能を実行する。この閾値化機能は、プーリング層のアクティビティと影響の評価に役立つ閾値化因子θにより、実現される。例えば、Gate1は、スコアプーリング層がアクティブであるか否か、又は、スコアプーリング層がCNNシステムの出力に何らかの意義ある影響を与えるに十分なほどアクティブであるか否かを判定する。プーリング層の影響又はアクティビティの水準は、後述するハイパーパラメータθによって判定される。一般に、セグメンテーション出力へのスコアプーリング層の影響が小さければ、プーリング層及びそれに対応するアッププーリング層の間の接続は切断され、当該層は「スキップ」されたと言うことができる。この接続除去プロセスは、図4に関連し、詳細を後述する。
同様の畳み込み−プーリング−畳み込み構造とゲート構造は、Pool4層まで繰り返される。Pool4層の出力の1つは、Conv5層に入力される。Conv5層の出力は、Pool5層に入力される。しかし、Pool5層は、Conv6層に対してのただ一つの出力を行うのみである。これは、図3のCNNシステムは、畳み込みブロック6つ有しているからである。従って、最後の畳み込み層であるConv6層の出力は、実際には常に対応するアッププーリング層に入力される。いずれの実施形態でも、Conv6層の出力がUpPool5層に必ずしも入力されねばならないわけではないが、Conv6層がいかなる画素のラベル指定にも影響を及ぼさない場合、Conv6層は、画像のセグメント化のために、いかなるパフォーマンスの向上も生み出さない余剰の計算コストであるとして、削除されてもよい。
プーリング層に戻り、Pool1、Pool2、Pool3、及びPool4の第2の出力は、それぞれGate1、Gate2、Gate3、及びGate4の入力に接続される。ゲートは、画像画素ラベルの指定に対する各プーリング層の影響量を判定する閾値化機能をもたらす。ゲートは、閾値化の結果に基づいて、データをブロック又は通過させる。ゲート及びその閾値化機能については、後述する「ゲート」という名のセクションで記載される。
ひとたびゲートの閾値化が行われると、プーリング層の出力は、図3に示すように、対応するスコアプーリング層又はスコアプール番号の入力へと廻される。この層は、対応するアッププーリング層の規模と適用させるために、チャネルマッピング又はプーリング層出力の規模を変更する。プーリング層の出力は、対応するアッププーリング層の特徴マップに対して影響し、その結果、最終的なラベルの指定に影響する。チャネルマッピング機能の詳細については、下記の「スコアプーリング」という名のセクションを参照されたい。
[畳み込み]
CNNシステムに対する畳み込みでは、入力空間の全ボリューム(行列)に対し、2次元フィルタ(行列)の使用と、ドット積(スカラー積としても知られる)の取得と、が行われる。これが入力空間の全画素に対して繰り返され、この演算の結果が特徴マップと呼ばれる。
図5は、例えば図3のCNNシステムに描かれたConv1層のいずれか1つで起こりうる畳み込み層の処理の一例を示す。畳み込み層は、畳み込みネットワークの中核となる構成要素である。畳み込み層は、通常、入力画像を示すデータのボリュームである入力ボリュームを受け取ることによって動作する。一実施形態においては、入力ボリュームは、深さとして3色の画素を有する32画素×32画素の画像を適用可能である。これは、32×32×3のボリュームということもできるし、32×32×3のアレイと考えることもできる。この場合、3は、画像の深さを示す。この深度は、ネットワークが有する畳み込み層やプーリング層等の層の数を示すCNNシステムの深さとは異なる。例えば、図3に記載のCNNシステムは、6ブロックの深さを示す。しかし、各畳み込みブロックは、2〜3個の畳み込み層により構成されてもよい。更に、本発明のブロックの数は、図3の例に限定されるものではなく、より多い又は少ないブロックが使用されてもよい。これとは異なり、図5の入力画像のボリュームは、3の深さを有する。「深さ」と「チャネルの数」とは、相互に置き換えることができ、混乱を回避するために、以降では「チャネル」と記載する。従って、3の深さを有する画像は、3つのチャネルを有するということもできる。なお、画像入力ボリュームは、通常、ここで記載されるものよりも大きな値になりうることも重要である。例えば、入力画像ボリュームは、224×224×56又はそれ以上になりうる。
CNNにおいては、入力画像ボリュームは、フィルタで畳み込まれる。畳み込みステップの目的は、画像から特徴を抽出することであり、この点は、画像の画素を一連の異なるフィルタで畳み込むことによって達成される。各フィルタは、画像ボリュームに含まれる異なる側面又は特徴を強調するために機能する。例えば、あるフィルタは、入力画像に含まれるはっきりとした垂線を検出し、他のフィルタは、オブジェクトの間のエッジを検出する。
フィルタは、対象画像よりも小さな画素エリアサイズを有する。通常のフィルタは、比較的小さい。例えば、フィルタは、3×3又は5×5の画素エリアを覆うことができる。通常、畳み込みフィルタは、奇数の行列画素サイズであるが、2×2又は4×4といった画素エリア等の偶数のサイズであってもよい。フィルタは、深さ/チャネルの要素も有する。3チャネルを有する上記の入力画像例が用いられる場合、対応するフィルタは、2×2×3フィルタ、3×3×3フィルタ、又は5×5×3フィルタとなりうる。フィルタは、通常、入力画像の全ての深さ(又はチャネル数)にわたって畳み込む。
フィルタは、入力画像ボリューム上の始点となる角に配置される。ひとたびこのように配置されると、画素ごとの畳み込みが、入力画像の画素とフィルタにおける対応する画素との間で実行される。この処理の後、フィルタは、所定の画素分だけ移動され、入力画像ボリューム上に再配置される。畳み込み処理は、この新たな位置におけるデータに対し、再び実行される。この移動は、「ストライド」と呼ばれ、移動する画素数を「ストライド」ということもある。例えば、フィルタが、移動前の位置から2画素分離れた位置に再配置される場合、「ストライド2」と呼ばれる。
上記畳み込みとストライドの処理は、フィルタが全ての入力ボリュームに渡って移動又はストライドされるまで、繰り返し実行される。当該移動又はストライドのプロセスは、活性化マップを作成する。このプロセスは、畳み込みとも呼ばれる。
図5に示すように、32×32×3の入力ボリューム510を、5×5×3のフィルタ520によって、ストライド1で畳み込むと、28×28×1のサイズを持つ活性化マップ530が作成される。なお、活性化マップは、入力ボリュームの大きさよりも小さい。入力画像と同じサイズの出力画像とするために、次の畳み込み層に送られる前(そして異なるフィルタに適用される前)に活性化マップに対して「0」で外縁を付与するプロセスであるパディングが実行されてもよい。パディングは、通常、画像サイズが畳み込み層により縮まないようにするために、CNNにおいて実行される。
本実施形態で使用される「畳み込む」又は「畳み込み」といった用語は、画像ベクトルとフィルタベクトルとのドット積又は内積を計算することを意味する。数学では、「ドット積」は、2つの同じ長さの数の並び(例えばベクトル)を用いて、単一の数値を返す代数演算である。このため、作成された活性化マップは、入力画像ベクトルと畳み込み層で使用される特定のフィルタのドット積を一意に表すデータポイントのセットを表す。適用されるフィルタを変更すると、活性化マップが変化する。このようにして、複数のフィルタは、畳み込みプロセスを通じて、入力画像から異なる情報を抽出する。
通常の畳み込み層は、多数のフィルタを含んでいる。また、これら複数のフィルタは、フィルタバンクとも呼ばれる。計算の簡略化のために、フィルタバンクの複数のフィルタのボリュームは、一般的にサイズが同一である。上記の例であれば、第1のフィルタは、5×5×3のボリュームの青フィルタであり、第2のフィルタは、5×5×3のボリュームの赤フィルタであり、第3のフィルタは、5×5×3のボリュームの緑フィルタであってよい。青フィルタの出力は、入力ボリュームにおける青画素の位置を示す活性化マップになる。赤フィルタの出力は、入力ボリュームにおける赤画素の位置を示す活性化マップになる。緑フィルタの出力は、入力ボリュームにおける緑画素の位置を示す活性化マップになる。畳み込みに使用されるフィルタは、互いから独立したものである。即ち、あるフィルタは、他のフィルタに対し、何の影響も与えない。3つのフィルタは、3つの活性化マップのセットを出力し、このセットが全体で28×28×3の大きさを有する活性化マップのセットを生み出す。フィルタのセットは、元の入力画像の再表現ということができる。
[ハイパーパラメータ]
ハイパーパラメータとは、解析される特定のデータに応じて設定されるCNNシステムの変数である。これらの変数については、許容される最善の設定方法が常に存在するわけではない。ハイパーパラメータの一例として、CNNシステムにおいて使用されるフィルタの数がある。フィルタの数は、CNNシステムに処理されるパラメータの数に直接的に関連することがある。CNNシステムは、何百万ものパラメータを含むことができるので、畳み込み層の数の設定は、CNNシステムアーキテクチャを実行させているコンピュータのメモリの制約が考慮されることがある。
同様に、選択されたフィルタ領域のサイズは、ハイパーパラメータであって、CNNシステムアーキテクチャを実行するコンピュータ又は処理システムの利用可能なメモリ量に基づいて選択されることがある。
プーリング層のフィルタストライドは、ハイパーパラメータの他の例である。通常、フィルタストライドは、パラメータボリュームにおける詳細な特徴を特定するために、小さく設定される。しかしながら、詳細な特徴を特定しなくてもよいアプリケーションにおいては、大きなストライド数であっても、十分に効果がある。
全結合層の数もまたハイパーパラメータであり、CNNシステムを実行させているコンピュータのメモリ量に基づいて決定されることがある。
畳み込み層とプーリング層の数もハイパーパラメータである。
なお、CNNシステムにおける層の数を決定するために重要な要因は、訓練データセットのサイズ及びCNNシステムを訓練するのに必要な時間量である。これらのハイパーパラメータは、後述するの「訓練」のセクションにおいて、より詳しく説明する。
[修正線形ユニット]
一般的に、ReLUと略称される修正線形ユニットは、負の値を0にするように、特徴マップの出力を修正する。フィルタは負の値を含むことがあるので、活性化マップもまた負のデータ値を含むことがある。具体的には、ReLU層は、要素に対し、値に対して閾値を0にする要素活性化関数を適用する。このため、いかなる負の値も0に設定される。他の値に対しては1を乗算し、単に元の数字を戻す。例えば、−6は0に修正され、6は6のままである。そして、0は0のままである。
[プーリング]
図6は、プーリングの一例を示す。プーリング層は、データ(例えば、活性化マップ)のサイズを減らすが、最も重要な情報は保持する。プーリング技術としては、種々の技術が知られている。プーリング技術の1つとしては、最大フィルタリング又は最大プーリングと呼ばれるものがある。この技術は、プーリングフィルタの中の最大値を出力する。例えば、よくあるプーリングフィルタは、2×2のサイズでありストライド2であり、そのウィンドウ内の修正特徴マップから最大の要素を選択する。別の言い方をすれば、2×2フィルタが活性化マップ(フィルタリングされた画像)上にある場合、2×2フィルタ内の4つの画素のうち、最大値のみがプーリング後の画像に示される。フィルタリングを受けるデータの実際の位置は、プーリングに影響しない。フィルタリングされた画像のプーリングにより、重大なデータ損失をすることなく、画像のサイズを効果的に減らすことができる。
図6に示すように、4×4の入力画像610は、2画素のストライド又は2のストライドを有する2×2フィルタ620が使用される最大プーリング処理の対象となる。その処理結果であるフィルタリングされた出力630は、最大プーリング値を含む2×2画像である。原画像610は16画素のサイズであったが、フィルタリングされた画像630は、4画素のサイズとなる。フィルタ620は、4画素中の1画素が有する最大値を使用するので、2画素のストライドの2×2フィルタのプーリング層については、全画素のうちの75%が破棄される。更に、画像のサイズは、1/2に減少する。即ち、2のストライドの2×2フィルタを使用するプーリングの対象となる224×224の画像については、112×112の画素エリアサイズの画像になる。同様に、2のストライドの2×2フィルタを使用するプーリングの対象となる8×8の画像については、画素エリアサイズが4×4の画像になる。
[スコアプーリング]
スコアプーリング層は、プーリング層から対応するアッププーリング層に対するチャネルマッピング機能を提供する。スコアプーリング層は、ネットワークにおいて互いに異なる大きさのプーリング層からの各プーリング層の出力ボリュームを使用する。より下の層(例えば、最後の畳み込み層より下にある全ての層)における出力ボリュームは、スケーリングされ対応するアッププーリング層に入力された際、画像内のフィンガーグレイン構造を特定するのに役立つ。これは、より下の層の出力ボリュームが、より小さなレセプティブフィールドを有するためである。このため、スコアプーリング層は、画像の詳細、とりわけ画像内のオブジェクトの境界の改善に役立つ。このため、セマンティックセグメンテーションのラベルに対する出力ボリュームの影響を判定することは、出力画像のフィンガー構造を認識することの影響力を判定することである。つまり、出力ボリュームの影響は、各プーリング層の出力ボリュームから導かれる追加的な重み付けによる、セマンティックセグメンテーションの改善と相関関係がある。
訓練の間、セマンティックセグメンテーションの結果を教師画像と対比して評価することができ、出力ボリュームの影響を確認することができる。
先述したように、チャネルの数は、プーリング層の出力ボリュームの深さにも等しい。図12の例であれば、Pool2層の出力は、56×56×128のボリュームを有する。このため、当該ボリュームには、128のチャネルがある。しかしながら、対応するアッププーリング層であるUpPool2層によると、この層には、たった2つのチャネルしかない。この例では、当該層における当該2つのチャネルは、壁であるか壁でないかの可能性を示す。なお、より多数のチャネルを使用してオブジェクトを検出することもでき、この点は本発明の範囲に含まれる。ここでは説明の簡略化のために、2チャネルの出力に対するマッピングについて説明する。
チャネルの数を128から2まで適切に変更するには、プーリングボリュームの出力の大きさを変更し、対応するアッププーリング層にマッピングする必要がある。これを実現する例としては、それぞれが1×1のサイズを有する2つのフィルタを使用することが挙げられる。1×1のフィルタサイズを使用する畳み込みは、その結果が単純に元の入力画素を生み出すもののように思われるため、最初は直感に反すると感じるかもしれない。しかし、先述したように、畳み込みは、入力ボリュームのチャネルの深さ/数の全体に対して実行される。このため、この例では、入力ボリュームは、128チャネルを有する。
これらの1×1フィルタは、1の畳み込みストライドを利用して、プーリングされた特徴マップに対して畳み込まれる。その結果となる出力は、56×56×2のサイズを有する2つの特徴マップである。このため、プーリングされた特徴マップのチャネルは、上記技術を用いて2つのチャネルへと減らすことができる。下記に説明するように、スコアプーリング層からの結果は、アッププーリング層に重みを付けるのに使用される。
[フィルタ重みを用いるアッププーリング]
先述したように、一般的に、アッププーリング層は、処理された画像のサイズを、オリジナルの入力ボリュームサイズへと増加させる。図7は、アップサンプリング、デコンボリューション、又はフラクショナルサンプリングとも呼ばれるアッププーリングの一例を示す。図7は、スコアプーリング層からの影響が全くない単純な例を示す。図7に示すように、2×2の入力730が、2のストライドの2×2のフィルタ720によって、4×4の出力710へとスケーリングされる。ここに示されているように、入力ボリュームの左上の値である6が伝播し、4×4の出力ボリュームのうち、左上の2×2のボリュームに格納される。残りの入力値も同様に拡大される。実際の応用では、アッププーリングは、実質的にプーリングの逆演算ということができる。例として、3×3のフィルタが代わりに使われた場合、出力空間における重複した領域となる。この場合、重複した領域の値は、互いに加算される。
アッププーリングの例に関し、図4に示すように、Conv6層の出力は、7×7×4096のボリュームを有する活性化マップである。上記スコアプーリングのセクションに記載したように、ScorePool5層は、出力を2チャネル(壁であるか壁でないか)にマッピングする。このため、ScorePool5層のマッピングの後は、ScorePool5層の出力は7×7×2となる。7×7のエリアは、Conv6層の出力に対応し、2の深さは、最終画像の形成及びセマンティックセグメンテーションラベリングに必要な壁であるか壁でないかの2チャネルに対応する。このように、UpPool5層への入力は、7×7×2である。UpPool5層は、アッププーリングを実行する。このケースでは、2倍アッププーリングを実行し、14×14×2のボリュームを出力する。
一実施形態においては、アッププーリングは、対応するプーリング層から、重み付け要因の影響も更に受ける。図12は、この例を示す。図12では、Pool2層の出力とPool3層の出力は、それぞれUpPool2層とUpPool3層に入力される。
もし仮に、Conv6層からの出力だけが、画像のアップスケーリングに使用されたとすると、画像における細かな特徴が失われる可能性がある。即ち、Conv6層の7×7(×4096)の出力は、入力画像の入力寸法である224×224に合うように、再度スケーリングされてもよい。しかしながら、中間のプーリング層がアップサンプリングで使用される場合には、より多くの画像の詳細を特定することができる。つまり、画像内の特徴の位置に関するより多くのグレイン情報を確認することができる。セグメント化画像は、これにより画像の境界線がよりはっきりとシャープなものになる。このため、この方法により、画像のアップスケーリングは有用である。
図8は、アップスケーリングの特徴がどのように中間プーリング情報を考慮するかの一例を示す。図8の例は、アッププーリングは、2×2の入力820から始まり、4×4の出力830に至ることを示している。3×3のフィルタウィンドウ810は、2のストレイドが利用される。2×2の入力820は、4×4の出力830に付与される値を有している。フィルタ810は、2×2の入力820により付与されるスカラー又は重みを有している。このため、図8に示すように、3×3のフィルタウィンドウ810が、オリジナルの入力エリアのコピーを作成し、2×2の入力820に基づく重みを付与する。スカラーウエイトは、単純に、オリジナルの入力エリアのコピー値の倍数である。このため、2×2の入力820の各値は、デコンボリューション処理におけるフィルタの重みを与える。
図4の例に戻り、ScorePool2層の56×56×2の出力は、以下のようにUpPool2層に影響を与えるよう、重み付けされる。図4の例では、2のストライドを使用し、それぞれ4×4×1のサイズを持つ2つの畳み込みフィルタを使うことができる。
[訓練]
訓練は、ニューラルネットワークの生成において重要な部分である。本開示においては、フィルタマップを訓練するためのスタンダードな訓練も適用される。しかし、フィルタマップの調整によるCNNシステムの訓練に加えて、CNNシステムは、訓練プロセスを通して更なる変数λを発見する。変数λは、プーリング層に接続されたゲートの一部である。変数λの訓練については後述する。
本実施形態における訓練の実現には、図3に示すベースCNNシステムアーキテクチャが使用される。即ち、各プーリング層は、アッププーリング層に接続されるゲートとスコアプーリング層とを含む。訓練が進行すると、CNNシステムのアーキテクチャは、自動的に形成され、例えば図4に示すように、Gate1層及びGate4層がそれぞれのスコアプーリング層を除去し、例えば、これらの層はスキップされる。このアーキテクチャの効果は、後述する。
図4に示すCNNシステムを訓練するために、教師画像のセットは、3つのグループ(検査グループ、訓練グループ、及びテストグループ)に分けることができる。訓練グループは、フィルタマップと変数λの訓練に使用される。検査グループは、CNNシステムが訓練されている際の検査エラーを発見するために使用される。テストグループは、訓練されたCNNシステムをテストして、CNNシステムの精度を判定するために使用される。
例えば、CNNシステムは、検査エラーが所定量に達するまで、訓練することができる。他にも例えば、CNNシステムは、一定の時間訓練してもよく、その時点での検査エラーを測定してもよい。ひとたびエラー量又は時間が所定値に達すると、CNNシステムは、精度についてのテストをすることができる。これにより、CNNシステムは、より簡単に比較されることができる。
[学習率]
学習率は、訓練プロセスにおいて、フィルタの重みに対し、どれだけ速くの変化が与えられたかにより決定される。一般的な技術としては、誤差逆伝播法/勾配降下法を利用したり、損失関数を最小化するためにフィルタの重みを変化させたりすることがある。学習率が高すぎると、フィルタの重み値は、多くのステップを要することがあり、最小コストが得られる重みがスキップすされることがある。しかし、学習率が低すぎる場合は、CNNは素早く訓練されない。CNNシステムの学習率は、ハイパーパラメータによって決まる。
[ゲート]
ゲート層の役割は、訓練中において、ネットワーク構造を自動的に最適化することである。これは、特徴を追加することは、より良い性能を保証するとは限らないからである。後述するコスト関数に基づいて、訓練プロセスは、他のスコアプーリング層を加えることがより良い結果に結びつくか否かを決定する。
図3においては、Gate1層〜4層は、主に3つの要素を有する。即ち、スケールパラメータとしても知られ、学習されるパラメータであるスケールパラメータλ、閾値レベルに達したか決定するθ、及びハイパーパラメータであって閾値化処理において使用されるp(不図示)、である。
初期のCNNシステムアーキテクチャにおける全てのゲートは、対応するλ値を有し、この値は、画像ラベリング全体に対する各々のプーリング層の影響を表すパラメータである。θは、スコアプーリング層におけるチャネルマッピングの計算コストと、アッププーリング層におけるフィルタの重み付けと、を保証するために、各々のプーリング層が画像のラベリングにおいて大きく十分な影響を有するか否かを判定するための閾値を提供する閾値化ハイパーパラメータである。ハイパーパラメータpは、それを基準にλが評価される値である。λ、θ、及びpは以下の関係にある。
Figure 2019082978
プーリング層が最終的なセグメンテーションラベルに対して小さな影響しか及ぼさなかったり全く影響を及ぼさなかったりする場合、アッププーリング層におけるスコアプーリング処理及びフィルタの重みづけは省略されてもよい。スコアプーリング層と、対応するアッププーリング層での重みづけと、を省略すると、時間、メモリ、及び処理電力といった計算コストを減少させることができる。この点は、CNNシステムの訓練プロセスにおいて特に当てはまるが、訓練後のCNNシステムにも当てはまる。例えば、本実施形態では、訓練時間の5〜20%の削減と、これに対応する計算コストの削減と、が達成された。
Figure 2019082978
表1は、3つのCNNシステムの比較例を示す。平均精度、平均IOU(Intersection over Union)、及びJaccard係数は、全てCNNシステムの精度の測定方法である。精度の測定方法の詳細は、本願では省略するが、それぞれの評価方法は、互いに異なる方法で精度を測定する。
表1のCNNスタンダードの例は、本実施形態のスキップアーキテクチャを実行しないCNNシステムからのデータを示す。表1のCNNスキップ1の例は、ゲート層が実行を停止したためにScorePool1層及び4層が実行されなかった場合の本実施形態のCNNシステムからのデータを示す。例えば、このCNNシステムアーキテクチャは、図4にも示されている。表1のCNNスキップ2の例は、ゲート層が実行を停止したためにScorePool1層、3層、及び4層が実行されなかった場合の本実施形態のCNNシステムからのデータを示している。
表1に示すように、CNNスタンダードシステムは、訓練に20時間を費やしており、本発明の実施形態を評価するためのベースラインを提供する。CNNスキップ1のデータは、訓練に18時間しかかかっていないこと、及び、精度がCNNスタンダードシステムとほぼ同一であることを示している。即ち、CNNシステムの訓練において、効率に関して10%分の利得に等しい2時間分の改善が得られたことになる。しかしセグメンテーションの精度は、CNNシステムの訓練後も維持されている。
計算量を抑えることができた原因の1つは、CNNシステムによって処理される必要のあるパラメータが減少したことにある。
CNNスキップ2のデータは、CNNスキップ1のシステムよりも、更に積極的なゲート設定を有するCNNシステムを示している。つまり、CNNスキップ2のアーキテクチャでは、Pool1層、3層、及び4層のゲートが実現されていない。これにより訓練時間が17時間にまで短縮しているが、表1が示すように精度が多少犠牲になっている。
Figure 2019082978
表2は、表1に示す各CNNシステムがセグメント化画像を出力するのに要した時間を示す。表2に示すように、スキップアーキテクチャを実装するCNNシステムの両方において、セグメンテーション時間の改善が得られた。CNNスキップ1アーキテクチャは、短い計算時間が得られ、スキップアーキテクチャを有さないCNNシステムの場合より、13%短い時間に相当する0.02秒の短縮がなされている。CNNスキップ2アーキテクチャも、短い計算時間が得られており、スキップアーキテクチャを有さないCNNシステムの場合より20%短い時間に相当する0.03秒の計算時間の短縮がなされている。
先述したように、λは、訓練フェーズにおいて決定される。λは、逆伝播がなされる間、繰り返し工程のたびに更新される。各訓練イテレーションλは、下記のように更新される。
Figure 2019082978
ここで、d/dλは、連鎖率による最上層からの勾配降下法を用いて計算される。このため、λ勾配は、学習率と掛け合わされ、λの新たな値が得られる。CNNの訓練フェーズにおいて、λは、繰り返しのたびにごとに続けて更新される。λは、訓練の過程で増減する。例えば、λは、1の値となるよう初期化され、訓練が実行される間、誤差逆伝播法における変数λは、各ゲート/プーリング層において最終的なセグメンテーションラベルに対するプーリング層の関連性に応じて増減する。訓練フェーズにおける正しいセグメンテーション結果は既知であり、λは、全ての繰り返しでよりよいλ値を得られるように、逆伝播されることが可能である。逆伝播により各ゲートのλを決定するプロセスは、各畳み込み層において適用されるフィルタを発見するプロセスに似ている。
図9は、所定のゲートに対するλの決定法の例を示す。まず、ステップ910において、λは1に初期化される。そして、λを1に設定した状態のCNNシステムの出力は、ステップ920においてチェックされる。CNNシステムの精度は、ステップ920において判定され、教師画像に対する既知の方法(例えば、先述した方法の1つ)を利用して解析される。次にステップ930においては、CNNシステムが訓練を反復するか否かが判定される。つまり、ステップ950では、CNNシステムの繰り返しが完了したか判定される。判定結果が肯定であれば、プロセスは終了し、現状のλ値が所定のゲートに対して設定される。判定結果が否定であれば、ステップ940において、λが上記の式に従いインクリメントされ、プロセスが再度ステップ920から始まる。図9は、1つのゲートに対し1つのλを設定するプロセスを示したものであるが、各ゲートはそれぞれ対応するλを有するので、このプロセスは全てのゲートに対して繰り返される。
図10は、ゲート層で使用される方程式の一例を示す。入力画像が与えられると、まず、CNNシステムは、入力画像を複数の畳み込み層で解析し、各層は、関数として、ht+1(x)=max(wt+1(x)+bt+1)を計算する。ここでは、tは層のインデックスであり、bはバイアスであり、h(x)=Xである。
チャネルのサイズcを有し、1つ前の畳み込み層の出力である特徴ベクトルh(x)が取得されると、ゲート接続は、入力としてh(x)を受け取り、このベクトルをスケーリング層f(x)に与える。当該スケーリング層f(x)は、f(x)=λh(x)で定義されるただ1つのスカラーλを含む。これは、チャネルの数を出力チャネル(例えば、2チャネル)に等しいサイズでマッピングするためである。そして、ゲート接続は、f(x)を他のスコアプーリング層g(x)に解析させる。ここで、g(x)=wf(x)である。なお、この層ではバイアスは導入されず、カーネルサイズは1である。
[CNNアーキテクチャの選択]
図11は、CNNシステムの訓練が完了した後に、CNNシステムアーキテクチャがどのように選択されるかの例を示す。ステップ1010において、CNNシステムの訓練が完了し、ステップ1012において、特定のゲートのλ値が取得される。ステップ1014においては、λ値は、閾値θと比較され、ゲートのλ値がこの閾値より大きいかを判定する。ゲートのλ値が閾値θより大きくなければ、ステップ1016で特定のプーリング層及びそれに対応するアッププーリング層の間の接続が除去される。ゲートのλ値が閾値θより大きければ、ステップ1018で各プーリング層及びそれらに対応するアッププーリング層の間の接続が維持される。この工程が全てのゲートに対して繰り返される。ステップ1020において、全てのゲートについてチェックが実行されたか否かが判定される。全てのゲートがチェック済みであれば、CNNシステムアーキテクチャについての判定がなされ、プロセスがストップする。全てのゲートについてチェックされたわけではない場合、ステップ1022において、ゲートが1つインクリメントされ、次のゲートが確認される。プロセスは、全てのゲートがチェックされるまで繰り返される。
[例示]
図12は、本発明の実施形態の例を示す。図12において、図4のCNNシステムの構成要素と同一のものについては説明を省略する。この例においては、224×224の画素サイズを有するサンプル画像が入力となる。また、入力画像は、3の深さ(又は3チャネル)を有し、3つの性質を表現し、それぞれの性質は赤、青、又は緑の原色である。入力画像の深さは、ネットワークの深さとは異なる。CNNシステムの目標は、入力画像を取得し、当該画像のセマンティックセグメンテーションを行うことである。この場合、ラベルの数は、壁であるか壁ではないかを示すために、2に設定される。
図11に示すように、まず、入力画像は、畳み込み層であるConv1層に入力される。Conv1層は、64のフィルタセットを使用する。各フィルタは、3×3のエリアを有し、3の深さ(又は3チャネル)を有する。このため、各フィルタのボリュームは、3×3×3である。ストライドは、2に設定される。このため、3×3のフィルタの各々が、一回あたり2画素分移動することで、入力画像上を移動する。処理結果である活性化マップは、特定のフィルタに対して224×224×1のサイズを有する。この結果は、先述したパディング画素の使用への追加も含む。合計で64のフィルタが用いられ、224×224×64の大きさを有する活性化マップのセットが生成される。
次のステップでは、プーリング演算がPool1層で行われる。ここでは、最大プーリングには、2のストライドの2×2のフィルタが適用される。先述したように、処理結果である出力では、x次元、y次元でサイズが50%削減されており(即ち、224×224から112×112)、パラメータでは75%の削減を達成している(即ち、50176から12544)。なお、チャネルの深さ/数は、プーリング層が動作している間は、個々の活性化マップで同一値に留まる。このため、活性化マップの数は、活性化マップのプーリング演算の前後を通じて同一である。このため、プーリング層であるPool1層の出力は、64チャネルを有し、Pool1層の出力の全次元は、112×112×64なので、合計で802816のパラメータに等しくなる。
先述したように、ゲート層は、プーリング層とそのスケーリング因子の影響が各々のアッププーリング層に適用されるか否かを制御できる。本実施例においては、CNNシステムの訓練により、Pool1層は、セグメンテーション結果に十分な影響を有しておらず、ScorePool1層は除去される。先述したように、ScorePool1層が除去されることにより、セマンティック出力の質を大きく犠牲にすることなく、セマンティックセグメンテーションを決定するための計算コストを減らすことができる。
Pool1層の出力は、Conv2層へと入力される。Conv2層とConv1層の畳み込みプロセスは、同じように作用する。Conv2層は、128個のフィルタのセットを使用する。各フィルタは、3×3のエリアと、64のチャネルを有する。先述したように、フィルタの深さは、入力ボリュームの深さと一致する。ここでは、入力ボリュームの深さは、64である。このため、Conv2層におけるフィルタの深さもまた64でなければならない。このため、各フィルタのボリュームは3×3×64となる。ストライドは2に設定される。このため、3×3のフィルタの各々は、一回あたり2画素分移動し、入力画像上を移動する。処理結果として特定のフィルタに対して取得される活性化マップは、224×224×1である。この結果は、先述したパディング画素の使用への追加も含む。合計で64のフィルタにより、224×224×64の次元を有する活性化マップのセットが生成され、パラメータの数は、合計で3211264となる。
Conv2層の出力は、プーリング層であるPool2層に入力される。Pool2層は、Pool1層と同じように動作する。ここでは、最大プーリングには、2のストライドの2×2のフィルタが適用される。先述したように、処理結果の出力は、x次元とy次元において50%のサイズ削減となり(即ち、112×112から56×56になり)、パラメータにおいては75%の削減を達成する(即ち、12544から3136になる)。なお、深さは、プーリング層が個々の活性化マップ上で動作しているときと同様にして保持されるので、活性化マップの数は、プーリング動作の前後を通じて同一である。このため、プーリング層であるPool2層の出力は、128の深さ/チャネル数を有し、Pool2層の出力の次元は、合計で56×56×128であり、それは合計で401408のパラメータに等しい。
Pool2層の出力は、ScorePool2層に入力される。ここで、Pool2層とScorePool2層の間には、いかなるゲートも存在しない。これは、訓練プロセスの際に、ゲートは、既に最も効率的なCNNシステムアーキテクチャを決定しているからである。即ち、ゲートは、どのプーリング層がセグメンテーション出力に十分大きな影響を持ち、計算コストを適正なものにするかについて判定しているということである。本実施形態の例では、先述したように、Pool1層は、スコアプーリング層を計算して対応するアッププーリング層に入力するための追加計算コストを正当化できるほどには、セグメンテーションラベルに対する影響を十分には有していない。
しかし、Pool2層は、セマンティックセグメンテーションラベルに対し、追加計算コストを正当化できるほど十分な影響をもっているので、Pool2層の出力は、ScorePool2層にも入力される。スコアプーリング層については、アッププーリング層の説明のときに説明する。
残りの畳み込み層であるConv3層、Conv4層、Conv5層、及びConv6層は、先述したConv1層とConv2層と同様に動作する。更に、残りのプーリング層であるPool3層、Pool4層、及びPool5層も、先述したPool1層とPool2層と同様に動作する。
畳み込み層であるConv3層は、56×56×256のボリュームを有し、プーリング層であるPool3層は、28×28×256のボリュームを有する。Conv4層は、28×28×512のボリュームを有し、Pool4層は、14×14×512のボリュームを有する。Conv5層は、14×14×512のボリュームを有し、Pool5層は、7×7×512のボリュームを有する。Conv6層は、7×7×4096のボリュームを有する。
Conv6層の出力は、スコアプーリング層であるScorePool5層に入力される。スコアプーリング層は、アッププーリング層(又は、アップサンプリング層)に対する重み因子をもたらす。アッププーリング層は、学習可能な層であり、学習可能な入力がスコアプーリング層からもたらされる。アッププーリング層の目的の1つは、画像をx方向及びy方向にアップサンプリングして、究極的には、当該画像が入力画像のサイズとx方向及びy方向でマッチするようにすることである。図12の例においては、画像サイズは、7×7にまで減少し、チャネルの深さ/数は、4096である。一方で原画像は、224×224であり、チャネルの深さ/数は、3である。
図12に戻り、スコアプーリングのセクションで説明したように、ScorePool5層の出力は、チャネルの深さ/数として2(即ち、2チャネル:壁であるか壁でないか)を有する。このため、ScorePool5層によるマッピングの後は、ScorePool5層の出力は、7×7×2となる。7×7のエリアは、Conv6層の出力に対応し、チャネルの深さ/数が2なのは、最終画像の構成とセマンティックセグメンテーションラベルに必要な2つのチャネル(壁であるか壁でないか)に対応しているためである。ScorePool5層は、7×7×4096のボリュームを有するConv6層の活性化マップを取得し、ボリュームを7×7×2に減少させる。このため、UpPool5層への入力は、7×7×2である。UpPool5層は、アッププーリング(この場合では上述した2倍にするアッププーリング)を行い、14×14×2のボリュームを出力する。
UpPool4層では、2倍アッププーリングが別途実行される。要するに、これは、UpPool5層における4倍にするアッププーリングということもできる。UpPool4層の出力は、28×28×2のボリュームである。ここでも、チャネルの深さ/数は2に維持され、2つのチャネル、壁であるか壁でないか、を表している。14×14の入力サイズは、倍にされて28×28となる。ScorePool4層は、UpPool4層に入力され、14×14×2のボリュームを有する。
アッププーリング層に影響を与えるスコアリング層が無い理由は、訓練フェーズにおいて、CNNシステムのアーキテクチャが設定されるためであることと、Gate4層により、最終セマンティックセグメンテーションラベルに対するPool4層の影響が、計算コストに見合わないと判定されるためである。このため、ScorePool4層は、削除されて計算コストが減らされる。
UpPool4層の出力は、UpPool3層に入力される。UpPool3層は、ScorePool3層から入力された重み付けの使用を含むアッププーリングを行い、出力ボリュームを入力サイズの2倍のサイズとする。ScorePool3層は、28×28×2のボリュームを有する。プーリング層及びデコンボリューション層といった2つのストリームがネットワークに結合される。これを実現するためには、結合される層のサイズと出力に整合性が取られていなければならない。これをどのように実現するかについては、スコアプーリングに関する記載と、アッププーリングに関する記載と、を参照されたい。UpPool3層の出力ボリュームは、56×56×2である。
UpPool2層とUpPool1層において、アッププーリングプロセスは更に2回繰り返される。
これら2つのアッププーリング層は、先述した前のアッププーリング層と同様にして動作する。アッププーリング層であるUpPool2層は、112×112のエリアを持ち、同じくアッププーリング層であるUpPool1層は224×224のエリアを持つ。これらのアッププーリング層の各々は、チャネルの深さ/数が2であり、これは壁であるか壁でないかのチャネルに対応している。
更に、ScorePool2層は、56×56×2の出力ボリュームを有し、ScorePool1層は、112×112×2の出力ボリュームを有する。
最後に、全結合層は、UpPool1層の後に、出力画像の全画素のラベル(壁であるか壁でないか)を決定するために使用される。出力は、CNNシステムの重み付けに基づく、所定チャネルが正しいかどうかの確からしさの確率的表現である。例えば、所定の画素が壁であることは90%確からしく、壁でないことは10%確からしいことがあり得る。CNNシステムの1つの出力は、単純に、最も確からしい画素ラベルであるが、CNNシステムのより完全な出力は、全ての画素と全てのラベルの確率的セグメンテーション結果の提供であってもよい。
なお、理解を容易にするため、本実施形態の例では、壁であるか壁でないかの2つのチャネルのみについて説明している。実際には、多数のチャネルを使用可能であり、間取図画像においては壁、部屋、ドア、窓、屋外、部屋のドア、引き戸、クローゼット扉等のチャネルが使用されてもよい。このようなCNNシステムの出力は、壁60%、部屋30%、屋外5%、部屋のドア1%、引き戸1%、クローゼット扉3%といったものであってもよい。
図12の例は、モメンタム(値0.9、重み減衰5−4)とバッチサイズ1による確率的勾配降下法によって訓練されたものである。
最適なストライド値を見出すには、CNNシステムアーキテクチャが異なる最終ストライド層に対して比較される。32画素ストライドのFCN−32sから開始し、VFF−16パラメータで初期化され、各モデルは、その前のモデルのパラメータで初期化される。学習率は10−11に設定される。この値は、異なる学習率を持つ2つの訓練プロセスを走らせ、より速くエラーを減らす学習率を選択することにより、選択される。
[CNNの例の評価]
本開示のCNNシステムの評価のために、500の間取図画像のデータセットが、不動産業者が公開するウェブサイトから集められた。この画像訓練データセットは、辺の長さが156画素〜1427画素の範囲にあり、異なるサイズの画像を含む。画像は、不動産業者のツールであって、色彩や濃淡についての異なるスキームや装飾要素の使用といった、間取図作成にあたってのある程度の美術的自由さを許容する形で描かれたものである。他の公開画像データセットと比較すると、この画像データセットは、著しい差異を示す。図13A,13B,及び13Cには、本発明の訓練されたCNNシステムに入力される例示画像が、CNNシステムによって出力された対応するセグメント化画像及び作成された教師画像に並べて表示されている。図が示すように、本CNNシステムのセグメント化画像は教師画像と良く合っている。
図13Aは、当該例における訓練されたCNNシステムを使用してテストされた間取図画像を示す。間取図画像1210は、訓練されたCNNシステムに入力され、セグメント化画像1212が出力された。間取図画像は、不動産業者で使用されていた実際の画像であり、このような種類の間取図画像の典型的なものである。図で見られるように、セグメント化画像は教師画像1214に非常に良く似ており、結果としては理想的なものである。
図13Bは、当該例における訓練されたCNNシステムを使用してテストされた間取図画像を示す。間取図画像1216は、訓練されたCNNシステムに入力され、セグメント化画像1218が出力された。間取図画像は、不動産業者で使用されていた実際の画像であり、このような種類の間取図画像の典型的なものである。図で見られるように、セグメント化画像は、教師画像1220に非常に良く似ており、結果としては理想的なものである。
図13Cは、当該例における訓練されたCNNシステムを使用してテストされた間取図画像を示す。間取図画像1222は、訓練されたCNNシステムに入力され、セグメント化画像1224が出力された。間取図画像は、不動産業者で使用されていた実際の画像であり、このような種類の間取図画像の典型的なものである。図で見られるように、セグメント化画像は、教師画像1226に非常に良く似ており、結果としては理想的なものである。
図14は、本発明の実施形態であって、上で論じたCNNシステムアーキテクチャの選択方法を用いて出力されたセグメント間取図画像を、3次元間取図画像へとレンダリングするものを示している。この2次元画像から3次元画像へのレンダリングは、3次元レンダリングソフトウェアを用いて行うことができる。簡潔に言えば、ひとたび間取図画像が処理されて壁のセグメンテーションが信頼できる程度に分かってくると、壁の高さ値が選択される。3Dモデルレンダリングを作成するために、壁のセグメンテーション結果は、図14に示すように壁の全てが共通の高さでレンダリングされた高度マップ(elevation map)として扱われている。図からわかるように、セグメント化された壁であってCNNシステムにおいてラベリングされたものは、3次元間取図へと変換される。
本開示においては、CNNシステムが実装された計算デバイス、例えばスマートフォン、パソコン、サーバコンピュータ、及び画像処理コンピュータ等は、画像セグメンテーションを改善するための機能を実施してもよい。
[ハードウェア]
図15は、本発明のCNNシステムを実行することができるデバイスの例を示している。CNNシステムは、コンピュータ、携帯デバイス、又はあらゆる処理プラットフォームに実装が可能である。CNNは、ウェブブラウザ、携帯電話アプリケーション、大型スケーラブルネットワークにおいて動作することが可能である。高い処理負荷が生じることもあるが、訓練前のCNNシステムが、家庭用計算システムや携帯デバイスにおいてもセグメンテーション出力の計算が可能なこともある。勿論、CNNシステムの訓練は、ネットワークの深さ、フィルタのサイズ、入力画像のサイズ等の多数の要素によっては時として数日や数週間かかることもあり得る。
図15は、本明細書に記載された、画像を解析するためのネットワークシステムの様々な計算デバイスの実装に使用される計算デバイス1510の要素の例を示す図である。
クライアントのデバイス又は1以上のサーバとして、様々な計算デバイスを、本明細書に記載したシステムの実装や方法の実行に使用することができる。「計算デバイス」という語は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、及びその他の適当なコンピュータなど、様々な形態のデジタルコンピュータを表現するために使われる。他の計算デバイスとしては、携帯情報端末、携帯電話、スマートフォン、及び他の類似の計算デバイスなどの、様々な形態の携帯デバイスが含まれ得る。ここに示される複数の要素、それらの接続と相互関係、及びそれらの機能は、例示することを目的とするものであり、本明細書等によって記載され及び/又は権利主張される発明の実施形態を限定することを意図したものではない。
計算デバイス1510の要素のそれぞれは、様々なバスを使用して相互に接続され、共通の基板又は他の適切な手段によって搭載されてもよい。プロセッサは、計算デバイス内での実行のための指示(メモリ内又は記憶デバイス内に記憶された、画像情報をディスプレイに表示するための指示を含む)を処理することができる。CNNシステムの計算デバイス1510への出力については、ディスプレイ上での表示、他の計算デバイスへの送信、3次元レンダリングに使用、他の装置での使用、といったことがなされてよい。他の実施形態においては、複数のプロセッサ及び/又は複数のバスが、複数のメモリや複数種類のメモリとともに適宜使用されてもよい。また、複数の計算デバイスが、それらの各々が必要な演算の一部を担う状態で、相互接続されてもよい(例:サーババンク、ブレードサーバのグループ、又はマルチプロセッサシステム)。
プロセッサは、複数の独立したアナログ/デジタルのプロセッサを含む複数のチップよりなるチップセットとして実装されてもよい。加えて、プロセッサは複数のアーキテクチャのうちいずれを用いて実装されてもよい。例えばプロセッサは、x86プロセッサやRISC(Reduced Instruction Set Computer:縮小命令セットコンピュータ)プロセッサとしてよい。プロセッサはデバイスの他の構成要素、例えばユーザインターフェイスの制御部(control of user interfaces)、デバイスによって実行されるアプリケーション、及びワイヤレス通信部等と協調してもよい。複数のプロセッサや複数コアを備えたプロセッサが使用されてもよい。
プロセッサは、制御インターフェイスやディスプレイに結合されたディスプレイインターフェイスを通じて、ユーザと通信しても良い。ディスプレイは、例えばLED(Light Emitting Diode)ディスプレイ又は他の適切なディスプレイ技術に係るものであってもよい。ディスプレイインターフェイスは、画像情報や他の情報をユーザに表示するディスプレイを駆動するための適切な回路構成を含んでよい。制御インターフェイスはユーザからの命令を受け取り、プロセッサに引き渡すための変換を当該命令に行っても良い。加えて、プロセッサと通信する外部インターフェイスを設け、他のデバイスとの近距離通信を可能にしてもよい。外部インターフェイスは、例えば無線及び/又は有線通信を提供してもよい。また、複数のインターフェイスが使われてもよい。
一般的に、より多くのパラメータを有する深いCNNの方が、高い処理能力と大きなキャッシュメモリを有することによって、コンピュータシステム上でより良いパフォーマンスを発揮する。大きな並列処理能力を有するコンピュータシステム、例えばGPUは、単一のプロセッサよりももっと速く動く傾向がある。GPUは以下でより詳細に論ずる。
とりわけ画像処理アプリケーションにおいては、CPUより高い計算能力を持つGPU(Graphic Processing Unit)が使用されてもよい。実際上、大量の情報をより迅速に計算するために、何十、何百、或いは何千ものGPUのセットが使用される。GPUは通常、プロセッサと共有メモリを含む。各々のプロセッサは共有メモリから十分に情報を取得し、共通プログラムを実行することで算術処理を実施する。使用可能なGPUの例に、GeForce1080GPUがある。
複数の計算ユニット1510A,1510B,1510C,及び1510Dが示されている。改良されたセグメンテーションデバイスは、この具体構成に限定されず、単一コンピュータ、或いは多数のコンピュータでもよい。同様に、改良されたセグメンテーションデバイスは複数の並列的なCPU,GPU,又はこれらの組み合わせを含んでもよい。改良されたセグメンテーションデバイス1500はCPU1520、メモリ1550、通信ユニット1530、並列計算デバイス1560、及びバス1540を含んでいる。改良されたセグメンテーションデバイス1500は、CPU1520、メモリ1550、通信ユニット1530、並列計算デバイス1560及びバス1540を含んでいる。改良されたセグメンテーションデバイス1500は、セグメンテーション結果を出力するディスプレイ(不図示)も有していてよく、当該セグメンテーション結果は画像形式又は画素ごとのセマンティックな決定の形式のものとすることができる。
セグメンテーションデバイス1500への入力は、パソコン、サーバ、又は他の計算デバイス1590によってなされてもよい。
CPU1520は、メモリ1550に記憶されたプログラムに従って動作する。CPU1520は通信ユニット1530及び並列計算デバイス1560を制御する。プログラムは、インターネット等のネットワーク1580を通して供給されてよいし、DVD−ROMやUSBメモリ等のコンピュータ読み取り可能な情報記憶媒体に記憶されたものが供給されてもよい。
メモリ1550は、例えば、RAM/ROM、及びハードディスクドライブ等のメモリデバイスを含む。メモリ1550はプログラムを記憶する。メモリ1550は各ユニットから入力された計算結果又は情報も記憶する。
通信ユニット1530は、ウェブサーバや他のコンピュータ等の他のデバイスと通信するように構成されたネットワークカードとすることができる。通信ユニット1530は、他のデバイスから受信した情報を、CPU1520の制御に基づきCPU1520又はメモリ1550に入力し、情報を他のデバイスに送信する。
バス1540は、CPU1520、メモリ1550、通信ユニット1530、及び並列計算デバイス1560におけるデータの送受信を担うよう構成されている。例えば、CPU1520又はメモリ1550は、バス1540内の拡張バスを通じて並列計算デバイス1560に接続される。
並列計算デバイス1560は、大量の同種計算を並列計算により行うことが得意なハードウェアである。並列計算デバイス1560は、例えばGPUである。並列計算デバイス1560は、並列プロセッサユニットとデバイス内メモリ(in-device memory)を含む。各並列実行ユニットは、例えば、複数のプロセッサ、指示ユニット、高速メモリを含む。
各並列プロセッサは、デバイス内メモリと高速メモリを用い、浮動小数点計算とデータの読み書きを実施する。指示ユニットは、当該指示ユニットを含んだ並列実行ユニットに含まれる並列プロセッサに、デバイス内メモリ等に記憶されたプログラムに基づく処理を実施させる。並列実行ユニットのうちの1つに含まれる並列プロセッサは、そのような並列実行ユニットに含まれる指示ユニットからの指示に則った同一の指示を処理する。この方法によると、複数の並列プロセッサは1つの指示ユニットにより制御されることが可能となり、そのことによって指示ユニットの回路サイズの増大を抑えることができる。よって、CPU1520の場合と比べると、並列計算デバイス1560に含まれる並列プロセッサを増やすことができる。
デバイス内メモリはDRAMで構成することができる。デバイス内メモリはバス1540を通じ、CPU1520とメモリ1550とに接続される。並列計算デバイス1560は、DMA転送によるデバイス内メモリとメモリ1550の間のデータ転送のための回路も含んでいる。高速メモリは、例えば、デバイス内メモリよりも高速にアクセスできるSRAMより構成される。デバイス内メモリと高速メモリの各々は、GPU1560の並列プロセッサからアクセス可能な共有メモリである。
例示したブロック図やフローチャートは、プロセスのステップ又はブロック(プロセスにおいて特定の論理関数又はステップを実行させるための1以上の実行可能な指示を含む、コードの部分、セグメント、又はモジュールを表すことが可能なもの)を描写している。特定の例は特定の(プロセスの)ステップ又は手続を表しているが、これに替わる多くの実施も可能である。あるプロセスのステップは、例えば、機能や目的、或いは規格、従来から受け継がれてきた構造、及びユーザインターフェイス設計等への準拠に対する考慮に基づき、本明細書における具体的な記載とは異なる順序で実行されてよい。
以上、本発明につき多くの実施形態を記載した。本発明の要旨から逸脱しない範囲で種々の改変が許容されることが理解されるべきである。例えば、上で示したフローは、ステップの並べ替え、追加、又は削除により、様々な形式で使用されてよい。また、リモート端末又は携帯デバイスを認容する複数の実施形態が記載されているが、他の多くの応用が想定されていると認識されるべきである。従って、他の実施形態も以下の請求項の範囲内である。

Claims (20)

  1. 畳み込みニューラルネットワークシステムを使用して画像のセマンティックセグメンテーションを行うためのコンピュータを使用する方法であって、
    プロセッサが、
    第1の複数フィルタで入力画像を畳み込み、第1の畳み込み層により第1の出力ボリュームを出力し、
    前記第1の出力ボリュームをプーリングし、第1のプーリング層により第1の活性化マップを生成し、
    前記第1の出力ボリュームを第2の複数フィルタで畳み込み、第2の畳み込み層により第2の出力ボリュームを出力し、
    前記第2の出力ボリュームをプーリングし、第2のプーリング層により第2の活性化マップを生成し、
    前記第1の活性化マップを使用して重み係数を生成し、
    前記第2の活性化マップを使用して重み係数を生成し、
    前記第2の活性化マップをアッププーリングし、
    前記第1の活性化マップをアッププーリングし、前記重み係数を適用して出力画像を形成し、
    確率的セグメンテーションの結果を出力し、各画素に対し特定のラベルが貼られる確率をラベリングし、及び
    前記セマンティックセグメンテーションに対する前記重み係数の影響のレベルを判定し、
    前記セマンティックセグメンテーションに対する前記重み係数の前記影響のレベルについての前記判定は、プーリング層とアッププーリング層の間に位置するゲート層を用いて行われる、方法。
  2. 前記ゲート層は、前記重み係数が前記セマンティックセグメンテーションに対して閾値よりも大きい影響を持つかを判定する閾値化回路を含む、
    請求項1に記載の方法。
  3. 前記重み係数が前記セマンティックセグメンテーションに対して前記閾値よりも小さい影響を持つと判定されると、前記ゲート層は、前記重み係数が計算され対応する前記アッププーリング層に入力されることを許可せず、前記第1のプーリング層と前記第1のアッププーリング層の間の接続を除去する、
    請求項2に記載の方法。
  4. 前記重み係数が前記セマンティックセグメンテーションに対して前記閾値よりも大きい影響を持つと判定されると、前記ゲート層は、前記重み係数が計算され対応する前記アッププーリング層に入力されることを許可する、
    請求項2に記載の方法。
  5. 前記重み係数の前記影響のレベルが、λ値を計算することで判定され、前記λ値は訓練プロセスの際に決定された学習パラメータである、
    請求項1に記載の方法。
  6. 各プーリング層は、対応するゲート層を有し、各ゲート層は、固有のλ値を有する、
    請求項5に記載の方法。
  7. 前記出力画像は、前記入力画像の画素数と同じ画素数を持つ、
    請求項1に記載の方法。
  8. 前記重み係数は、より精細な出力画像をもたらす、
    請求項7に記載の方法。
  9. 前記重み係数は、各活性化マップについて生成される、
    請求項8に記載の方法。
  10. 前記λ値の各々は、誤差逆伝播法を用いて決定される、
    請求項5に記載の方法。
  11. プロセッサと、
    メモリと、を含む、
    セマンティック画像セグメント化システムであって、
    前記プロセッサは、
    第1の複数フィルタで入力画像を畳み込み、第1の畳み込み層により第1の出力ボリュームを出力し、
    前記第1の出力ボリュームをプーリングし、第1のプーリング層により第1の活性化マップを生成し、
    前記第1の出力ボリュームを第2の複数フィルタで畳み込み、第2の畳み込み層により第2の出力ボリュームを出力し、
    前記第2の出力ボリュームをプーリングし、第2のプーリング層により第2の活性化マップを生成し、
    前記第1の活性化マップを使用して重み係数を生成し、
    前記第2の活性化マップを使用して重み係数を生成し、
    前記第2の活性化マップをアッププーリングし、
    前記第1の活性化マップをアッププーリングし、前記重み係数を適用して出力画像を形成し、
    確率的セグメンテーションの結果を出力し、各画素に対し特定のラベルが貼られる確率をラベリングし、及び
    前記セマンティックセグメンテーションに対する前記重み係数の影響のレベルを判定するよう、構成され、
    前記セマンティックセグメンテーションに対する前記重み係数の前記影響のレベルについての前記判定は、プーリング層とアッププーリング層の間に位置するゲート層を用いて行われる、
    システム。
  12. 前記ゲート層は、前記重み係数が前記セマンティックセグメンテーションに対して閾値よりも大きい影響を持つかを判定するよう構成された閾値化回路を含む、
    請求項11に記載のシステム。
  13. 前記プロセッサは、前記重み係数が前記セマンティックセグメンテーションに対して前記閾値よりも小さい影響を持つと判定された場合に、前記ゲート層が前記重み係数を計算し対応する前記アッププーリング層に入力することを許可せず、前記第1のプーリング層と前記第1のアッププーリング層の間の接続を除去するよう構成されている、
    請求項12に記載のシステム。
  14. 前記プロセッサは、前記重み係数が前記セマンティックセグメンテーションに対して前記閾値よりも大きい影響を持つと判定された場合に、前記ゲート層に対し、前記重み係数が計算され対応する前記アッププーリング層に入力されることを許可させるよう構成されている、
    請求項12に記載のシステム。
  15. 前記重み係数の前記影響のレベルが、λ値を計算することで判定され、前記λ値は訓練プロセスの際に決定され、学習されたパラメータである、
    請求項11に記載のシステム。
  16. 各プーリング層は、対応するゲート層を有し、各ゲート層は固有のλ値を有する、
    請求項15に記載のシステム。
  17. 前記出力画像は、前記入力画像の画素数と同じ画素数を持つ、
    請求項11に記載のシステム。
  18. 前記重み係数は、より精細な出力画像をもたらす、
    請求項17に記載のシステム。
  19. 前記重み係数は、各活性化マップについて生成される、
    請求項18に記載のシステム。
  20. 各λ値は誤差逆伝播法を用いて決定される、
    請求項15に記載のシステム。
JP2017214985A 2017-10-30 2017-11-07 スキップアーキテクチャ・ニューラルネットワーク装置及び改良されたセマンティックセグメンテーションのための方法 Active JP6584477B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/798,349 US10410350B2 (en) 2017-10-30 2017-10-30 Skip architecture neural network machine and method for improved semantic segmentation
US15/798,349 2017-10-30

Publications (2)

Publication Number Publication Date
JP2019082978A true JP2019082978A (ja) 2019-05-30
JP6584477B2 JP6584477B2 (ja) 2019-10-02

Family

ID=66244087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017214985A Active JP6584477B2 (ja) 2017-10-30 2017-11-07 スキップアーキテクチャ・ニューラルネットワーク装置及び改良されたセマンティックセグメンテーションのための方法

Country Status (2)

Country Link
US (1) US10410350B2 (ja)
JP (1) JP6584477B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020204863A (ja) * 2019-06-17 2020-12-24 富士フイルム株式会社 学習装置、学習装置の作動方法、および学習装置の作動プログラム
JP2021005846A (ja) * 2019-06-27 2021-01-14 オリンパス株式会社 積層型撮像デバイス、撮像装置、撮像方法、学習方法及び画像読み出し回路

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395147B2 (en) * 2017-10-30 2019-08-27 Rakuten, Inc. Method and apparatus for improved segmentation and recognition of images
EP3506211B1 (en) 2017-12-28 2021-02-24 Dassault Systèmes Generating 3d models representing buildings
EP3506160B1 (en) * 2017-12-28 2022-06-01 Dassault Systèmes Semantic segmentation of 2d floor plans with a pixel-wise classifier
US11636665B2 (en) * 2018-01-15 2023-04-25 Shenzhen Corerain Technologies Co., Ltd. Streaming image semantic segmentation method, logical integrated circuit system and electronic device
CN110119507A (zh) * 2018-02-05 2019-08-13 阿里巴巴集团控股有限公司 词向量生成方法、装置以及设备
US10535141B2 (en) * 2018-02-06 2020-01-14 Google Llc Differentiable jaccard loss approximation for training an artificial neural network
CN110188865B (zh) * 2019-05-21 2022-04-26 深圳市商汤科技有限公司 信息处理方法及装置、电子设备和存储介质
US11586918B2 (en) 2019-06-06 2023-02-21 Bluebeam, Inc. Methods and systems for automatically detecting design elements in a two-dimensional design document
CN110298320B (zh) * 2019-07-01 2021-06-22 北京百度网讯科技有限公司 一种视觉定位方法、装置及存储介质
CN110555847B (zh) * 2019-07-31 2021-04-02 瀚博半导体(上海)有限公司 一种基于卷积神经网络的图像处理方法及装置
CN110569851B (zh) * 2019-08-28 2022-03-15 广西师范大学 门控多层融合的实时语义分割方法
CN110659653A (zh) * 2019-09-12 2020-01-07 复旦大学 一种可充分保留图像特征的特征提取模型及特征提取方法
CN112836554A (zh) * 2019-11-25 2021-05-25 广东博智林机器人有限公司 图像校验模型的构建方法、图像校验方法和装置
CN111179160A (zh) * 2020-01-02 2020-05-19 广东博智林机器人有限公司 一种信息过滤方法、装置、电子设备及存储介质
CN111612803B (zh) * 2020-04-30 2023-10-17 杭州电子科技大学 一种基于图像清晰度的车辆图像语义分割方法
CN111882565B (zh) * 2020-07-28 2023-07-07 深圳市雨滴科技有限公司 一种图像二值化方法、装置、设备及存储介质
CN112036408B (zh) * 2020-07-31 2022-04-12 北京航空航天大学 一种复杂场景底层视觉信息提取方法
US11699001B2 (en) * 2020-10-13 2023-07-11 Flyreel, Inc. Generating measurements of physical structures and environments through automated analysis of sensor data
US20230153377A1 (en) * 2021-11-12 2023-05-18 Covera Health Re-weighted self-influence for labeling noise removal in medical imaging data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5988862A (en) 1996-04-24 1999-11-23 Cyra Technologies, Inc. Integrated system for quickly and accurately imaging and modeling three dimensional objects
WO2009080034A2 (en) 2007-12-20 2009-07-02 3Djam Aps System and method for conversion and distribution of graphical objects
US8229176B2 (en) 2008-07-25 2012-07-24 Navteq B.V. End user image open area maps
US8099237B2 (en) 2008-07-25 2012-01-17 Navteq North America, Llc Open area maps
US8339417B2 (en) 2008-07-25 2012-12-25 Navteq B.V. Open area maps based on vector graphics format images
US8774525B2 (en) 2012-02-03 2014-07-08 Eagle View Technologies, Inc. Systems and methods for estimation of building floor area
WO2016205246A1 (en) 2015-06-15 2016-12-22 Knit Health, Inc. Remote biometric monitoring system
CN106548127B (zh) 2015-09-18 2022-11-04 松下电器(美国)知识产权公司 图像识别方法
US10426364B2 (en) 2015-10-27 2019-10-01 Cardiologs Technologies Sas Automatic method to delineate or categorize an electrocardiogram
US9965705B2 (en) 2015-11-03 2018-05-08 Baidu Usa Llc Systems and methods for attention-based configurable convolutional neural networks (ABC-CNN) for visual question answering
US10115032B2 (en) 2015-11-04 2018-10-30 Nec Corporation Universal correspondence network
US10192129B2 (en) 2015-11-18 2019-01-29 Adobe Systems Incorporated Utilizing interactive deep learning to select objects in digital visual media
US9881234B2 (en) 2015-11-25 2018-01-30 Baidu Usa Llc. Systems and methods for end-to-end object detection
CN108475415B (zh) * 2015-12-21 2022-05-27 商汤集团有限公司 用于图像处理的方法和系统
US10402700B2 (en) * 2016-01-25 2019-09-03 Deepmind Technologies Limited Generating images using neural networks
EP3596659A4 (en) * 2017-03-17 2021-01-27 Magic Leap, Inc. SPACE LAYOUT APPRAISAL METHODS AND TECHNIQUES

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020204863A (ja) * 2019-06-17 2020-12-24 富士フイルム株式会社 学習装置、学習装置の作動方法、および学習装置の作動プログラム
JP7195220B2 (ja) 2019-06-17 2022-12-23 富士フイルム株式会社 学習装置、学習装置の作動方法、および学習装置の作動プログラム
JP2021005846A (ja) * 2019-06-27 2021-01-14 オリンパス株式会社 積層型撮像デバイス、撮像装置、撮像方法、学習方法及び画像読み出し回路

Also Published As

Publication number Publication date
JP6584477B2 (ja) 2019-10-02
US20190130573A1 (en) 2019-05-02
US10410350B2 (en) 2019-09-10

Similar Documents

Publication Publication Date Title
JP6584477B2 (ja) スキップアーキテクチャ・ニューラルネットワーク装置及び改良されたセマンティックセグメンテーションのための方法
Huang et al. Architectural drawings recognition and generation through machine learning
RU2720070C1 (ru) Системы и способы сегментации изображения с использованием свёрточной нейронной сети
RU2720440C1 (ru) Способ сегментации изображения с использованием нейронной сети
JP6843086B2 (ja) 画像処理システム、画像においてマルチラベル意味エッジ検出を行う方法、および、非一時的コンピューター可読記憶媒体
Patravali et al. 2D-3D fully convolutional neural networks for cardiac MR segmentation
JP7102531B2 (ja) コンピュータ断層撮影血管造影における解剖学的構造のセグメンテーションのための方法、コンピュータ・プログラム、コンピュータ可読記憶媒体、および装置
JP6584478B2 (ja) 画像の改良されたセグメンテーション及び認識のための方法と装置
US20180211157A1 (en) Image processing method and device
CN110276402B (zh) 一种基于深度学习语义边界增强的盐体识别方法
EP3867883A1 (en) 3d scene synthesis techniques using neural network architectures
CN105917354A (zh) 用于图像处理的空间金字塔池化网络
JP2018513507A (ja) 人工ニューラルネットワークの関連性スコア割当て
CN104484886B (zh) 一种mr图像的分割方法及装置
US20220335600A1 (en) Method, device, and storage medium for lesion segmentation and recist diameter prediction via click-driven attention and dual-path connection
Cheng et al. Building simplification using backpropagation neural networks: a combination of cartographers' expertise and raster-based local perception
JP2023533907A (ja) 自己注意ベースのニューラルネットワークを使用した画像処理
WO2021064585A1 (en) Method and system for predicting permeability of hydrocarbon reservoirs using artificial intelligence
Song et al. Pixel-level crack detection in images using SegNet
CN111091010A (zh) 相似度确定、网络训练、查找方法及装置和存储介质
JP2021096850A (ja) 視差推定システムと方法、電子機器及びコンピュータ可読記憶媒体
JP2022185144A (ja) 対象検出方法、対象検出モデルのレーニング方法および装置
Karadag et al. EDU-AI: a twofold machine learning model to support classroom layout generation
CN113435461B (zh) 一种点云局部特征提取方法、装置、设备及存储介质
CN113554653A (zh) 基于互信息校准点云数据长尾分布的语义分割方法

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20171204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190903

R150 Certificate of patent or registration of utility model

Ref document number: 6584477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250