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

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

▶ ルカス サントス フェレイラの特許一覧 ▶ パトリック パーションの特許一覧 ▶ シュテッフェン マルコースキーの特許一覧 ▶ リウ リャンの特許一覧 ▶ カール オーストレームの特許一覧

特表2024-520223画像の畳み込みのためのシステムおよび方法
<>
  • 特表-画像の畳み込みのためのシステムおよび方法 図1
  • 特表-画像の畳み込みのためのシステムおよび方法 図2
  • 特表-画像の畳み込みのためのシステムおよび方法 図3
  • 特表-画像の畳み込みのためのシステムおよび方法 図4
  • 特表-画像の畳み込みのためのシステムおよび方法 図5
  • 特表-画像の畳み込みのためのシステムおよび方法 図6
  • 特表-画像の畳み込みのためのシステムおよび方法 図7
  • 特表-画像の畳み込みのためのシステムおよび方法 図8
  • 特表-画像の畳み込みのためのシステムおよび方法 図9
  • 特表-画像の畳み込みのためのシステムおよび方法 図10
  • 特表-画像の畳み込みのためのシステムおよび方法 図11
  • 特表-画像の畳み込みのためのシステムおよび方法 図12
  • 特表-画像の畳み込みのためのシステムおよび方法 図13
  • 特表-画像の畳み込みのためのシステムおよび方法 図14
  • 特表-画像の畳み込みのためのシステムおよび方法 図15
  • 特表-画像の畳み込みのためのシステムおよび方法 図16
  • 特表-画像の畳み込みのためのシステムおよび方法 図17
  • 特表-画像の畳み込みのためのシステムおよび方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-23
(54)【発明の名称】画像の畳み込みのためのシステムおよび方法
(51)【国際特許分類】
   G06F 17/10 20060101AFI20240516BHJP
【FI】
G06F17/10 A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023528006
(86)(22)【出願日】2021-11-05
(85)【翻訳文提出日】2023-06-20
(86)【国際出願番号】 SE2021051108
(87)【国際公開番号】W WO2022098290
(87)【国際公開日】2022-05-12
(31)【優先権主張番号】2051293-5
(32)【優先日】2020-11-06
(33)【優先権主張国・地域又は機関】SE
(81)【指定国・地域】
(71)【出願人】
【識別番号】523166142
【氏名又は名称】ルカス サントス フェレイラ
(71)【出願人】
【識別番号】523166153
【氏名又は名称】パトリック パーション
(71)【出願人】
【識別番号】523166164
【氏名又は名称】シュテッフェン マルコースキー
(71)【出願人】
【識別番号】523166175
【氏名又は名称】リウ リャン
(71)【出願人】
【識別番号】523166186
【氏名又は名称】カール オーストレーム
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100153729
【弁理士】
【氏名又は名称】森本 有一
(74)【代理人】
【識別番号】100151459
【弁理士】
【氏名又は名称】中村 健一
(72)【発明者】
【氏名】ルカス サントス フェレイラ
(72)【発明者】
【氏名】パトリック パーション
(72)【発明者】
【氏名】シュテッフェン マルコースキー
(72)【発明者】
【氏名】リウ リャン
(72)【発明者】
【氏名】カール オーストレーム
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB26
5B056HH03
(57)【要約】
画像畳み込みアクセラレータシステムは、生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素であって、テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、処理要素と、画像の同じ行からの画像データが、テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素に割り当てられたとき、カーネル要素に画像データを乗算するために処理要素をアクティブ化するように構成された画像コントローラとを備える。
【特許請求の範囲】
【請求項1】
二重ブロック巡回行列である生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素(PE)であって、前記テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、処理要素(PE)と、
前記画像の同じ行からの画像データが、前記テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、前記カーネル要素に画像データを乗算するために前記処理要素(PE)をアクティブ化するように構成された画像コントローラ(10)と
を備える、画像畳み込みアクセラレータシステム。
【請求項2】
前記処理要素(PE)および/または記憶要素による前記乗算を加算するように構成された算術論理ユニットをさらに備える、請求項1に記載の画像畳み込みアクセラレータシステム。
【請求項3】
少なくとも1つの記憶要素をさらに備える、請求項1または2に記載の画像畳み込みアクセラレータシステム。
【請求項4】
前記記憶要素は、少なくとも、前記画像の列数-前記所望の畳み込みカーネルの次元+1を記憶するように構成される、請求項3に記載の画像畳み込みアクセラレータシステム。
【請求項5】
記憶要素の数が、前記所望の畳み込みカーネルの次元-1として計算される、請求項3~4に記載の画像畳み込みアクセラレータデバイス。
【請求項6】
前記処理要素間で画像データのタイミングをとるように構成されたタイミング論理をさらに備える、請求項1に記載の画像畳み込みアクセラレータデバイス。
【請求項7】
入力画像を収集するように構成された撮像ユニットと、
二重ブロック巡回行列である生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素(PE)であって、前記テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、処理要素(PE)と、
前記画像の同じ行からの画像データが、前記テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、前記カーネル要素に画像データを乗算するために前記処理要素(PE)をアクティブ化するように構成された画像コントローラ(10)と
を備える、画像畳み込みアクセラレータシステムと
を備える、撮像装置。
【請求項8】
二重ブロック巡回行列であるテプリッツ様カーネルを生成するステップであって、前記テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、生成するステップと、
前記画像の同じ行からの画像データが、前記テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、カーネル要素が画像データを乗算されるように、前記生成されたテプリッツ様カーネルに対応する前記カーネル要素を備える処理要素をアクティブ化するステップと
を備える、画像処理方法。
【請求項9】
二重ブロック巡回行列であるテプリッツ様カーネルを生成するステップであって、前記テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、生成するステップと、
前記画像の同じ行からの画像データが、前記テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、カーネル要素が画像データを乗算されるように、前記生成されたテプリッツ様カーネルに対応する前記カーネル要素を備える処理要素をアクティブ化するステップと
を、コンピュータに実行させる、プログラム。
【請求項10】
請求項9に記載のプログラムを記憶した非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの畳み込みのためのシステムおよび方法に関する。より具体的には、本発明は、テプリッツ様カーネル行列との行列乗算による画像の畳み込みのためのシステムおよび方法に関する。
【背景技術】
【0002】
自律車両、ドローン、仮想現実アプリケーションなどの現在の増加に伴って、堅牢、高速、効率的な画像処理の必要性が極めて重要になっている。これらの画像処理システムは、典型的には、限られたエネルギー収支および限られた物理的サイズで、いくつかの困難で計算集約的なタスクをリアルタイムで実施しなければならない。これは、限られたバッテリ容量と限られた物理的サイズの両方が問題となる、自律ドローンおよび仮想現実アプリケーションの場合、特に明白になる。例えば、5kgのバッテリおよびフルサイズのグラフィックスカードは、ドローンが飛行することを予想すると、小型屋内ドローンに取り付けることができない。
【0003】
これらすべての用途において共通していることは、それらが、画像を使用して世界の3D構造ならびにそこにおけるそれらの位置および向きを推定することである。これを達成するために、目立つ点または特徴点と呼ばれる、画像内の特殊な点が抽出される。これらの点は、それらが他の画像内でも一貫して抽出されることを可能にする、高いテクスチャ、一意性など、特殊な特性を有する。これらの特徴をいくつかの画像にわたって整合させることによって、世界の3D構造、ならびに画像が撮られたときのカメラの向きおよび位置が推定され得る。これは、オンボードシステムが、ドローン、車両および/または人が環境内のどこにいるかを追跡することを可能にする。
【0004】
画像内のこれらの目立つ点を見つけるために、各点の周りの様々なパターンを抽出して、その点の特性を評価しなければならない。画像内のピクセル点の数は、通常、非常に大きく、数十万から数十億まで変動し得る。分解能が高いほど、解がより正確に推定され得る。これは、特徴抽出が処理および電力の観点から非常に重い動作であることを意味する。典型的には、このステップは、システムにおけるかなりの量の処理時間および電力消費に寄与する。
【0005】
したがって、改善された画像処理が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したことを考慮して、本発明の目的は、先行技術の上記で特定された制限のうちの1つまたは複数を少なくとも部分的に克服することである。特に、改善された画像処理システムおよび方法を有することが目的である。
【課題を解決するための手段】
【0007】
第1の態様によれば、生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素であって、テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、処理要素と、画像の同じ行からの画像データが、テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素に割り当てられたとき、カーネル要素に画像データを乗算するために処理要素をアクティブ化するように構成された画像コントローラとを備える画像畳み込みアクセラレータシステムである。
【0008】
第2の態様によれば、入力画像を収集するように構成された撮像ユニットと、生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素であって、テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、処理要素、および、画像の同じ行からの画像データが、テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素に割り当てられたとき、カーネル要素に画像データを乗算するために処理要素をアクティブ化するように構成された画像コントローラを備える、画像畳み込みアクセラレータシステムとを備える、撮像装置である。
【0009】
第3の態様によれば、テプリッツ様カーネルを生成するステップであって、テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、生成するステップと、画像の同じ行からの画像データが、テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素に割り当てられたとき、カーネル要素が画像データを乗算されるように、生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素をアクティブ化するステップとを備える、画像処理方法である。
【0010】
第4の態様によれば、テプリッツ様カーネルを生成するステップであって、テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、生成するステップと、画像の同じ行からの画像データが、テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、カーネル要素が画像データを乗算されるように、生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素をアクティブ化するステップとを、コンピュータに実行させる、プログラムである。
【0011】
本出願では、テプリッツ様カーネルは、二重にブロックされた巡回行列カーネルであると理解されるべきである。
【0012】
本開示のさらなる例は、従属請求項において定義され、本開示の第4および後続の態様のための特徴は、必要な変更を加えた第1~第3の態様のための特徴のようである。
【0013】
本開示のいくつかの例は、処理要素および/または記憶要素によって部分結果をまとめることを提供する。
【0014】
本開示のいくつかの例は、部分結果を記憶することを提供する。
【0015】
本開示のいくつかの例は、処理要素間の画像データのタイミングをとることを提供する。
【0016】
一般に、特許請求の範囲において使用されるすべての用語は、本明細書で別段に明示的に定義されていない限り、技術分野におけるそれらの通常の意味に従って解釈されるべきである。「1つの(a/an)/その(the)[要素、デバイス、構成要素、手段、ステップなど]」へのすべての言及は、別段に明記されていない限り、前記要素、デバイス、構成要素、手段、ステップなどの少なくとも1つのインスタンスを指すものとして広く解釈されるべきである。本明細書で開示される任意の方法のステップは、明記されていない限り、開示された正確な順序で実施される必要はない。
【0017】
本発明の、上記のならびに追加の目的、特徴および利点は、添付の図面を参照して、本発明の以下の例示的および非限定的な詳細な説明によってより良く理解され、同様の要素のために同じ参照番号が使用される。
【図面の簡単な説明】
【0018】
図1】画像畳み込みアクセラレータシステムの概略図である。
図2】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図3】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図4】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図5】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図6】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図7】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図8】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図9】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図10】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図11】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図12】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図13】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図14】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図15】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図16】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図17】3×3カーネルを展開することから取得されたテプリッツ様カーネルで画像を畳み込むときの画像畳み込みアクセラレータシステムの概略図である。
図18】画像畳み込みアクセラレータシステムおよびカメラを備えるドローンの上面図である。
【発明を実施するための形態】
【0019】
次に、本発明は、本発明の現在の好ましい例が示されている添付の図面を参照しながら以下でより十分に説明される。しかしながら、本発明は、多くの異なる形態で例示され得、本明細書に記載の例に限定されると解釈されるべきではなく、むしろ、これらの例は、徹底性および完全性のために提供され、本発明の範囲を当業者に十分に伝える。
【0020】
図1は、画像畳み込みアクセラレータシステム100を示す。簡単のために、処理要素PEが行および列で配置されたアクセラレータシステム100が示されている。処理要素PEは、行および列以外の方法でも配置され得る。
【0021】
処理要素PEは、生成されたテプリッツ様カーネルに対応する。テプリッツ様の生成されたカーネルは、所望のカーネルに基づき、ゼロでパディングされる。テプリッツ様の生成されたカーネルは対応する処理要素PEにロードされ、これは、例えば処理要素PEのうちの1つの隣のk00によって示される。アクセラレータシステムは、画像が、生成されたテプリッツ様カーネルを乗算され、それと合計されるように、生成されたテプリッツ様カーネルkXY内の非ゼロカーネル要素に基づいて、および非ゼロカーネル要素が1つの行内のすべての処理要素PEに割り当てられたときに処理要素PEをアクティブ化するように構成されたコントローラ10をさらに備える。その場合、画像がテプリッツ様カーネルで畳み込まれる結果になり得る。畳み込みも、カーネルにおける近似がないため、損失が少ない。
【0022】
上記のテプリッツ様カーネルkXYに基づく実装は、畳み込みを実施するために必要とされる単純な制御論理から恩恵を受ける。さらに、処理要素PEは動作を実施するときにのみアクティブであるため、システムは、他の畳み込みシステムと比較して非常に低い電力消費を有する。
【0023】
テプリッツ様カーネルkXYは、所望の3×3カーネルに基づいて生成され得る。
【表1】
次いで、テプリッツ様カーネルkXYが所望のカーネルに基づいて生成され、ゼロでパディングされ得、これは、以下を生じる。
【表2】
次いで、畳み込みは、テプリッツ様カーネルに行スタック平坦化入力画像を乗算することによって実施され得る。行スタック平坦化は、画像の行が単一の行内で互い違いに配置されていると理解されるべきである。テプリッツ様カーネルkXYも転置され、行スタック平坦化入力画像を乗算され得る。入力画像は、いくつかの例では、ベクトル形式で直接ストリーミングされるかまたは読み取られ得る。例えば、入力画像は、画像センサによって作り出されたものとして走査線において直接読み取られ得る。画像畳み込みアクセラレータは、任意の入力バッファの必要性を排除するので、有利である。
【0024】
アクセラレータシステム100による畳み込みの一例が図2~17に示されている。図示のアクセラレータシステムでは、第1の行は第1の対角K00、K01、K02の計算を実施し、第2の行は第2の対角K10、K11、K12の計算を実施し、第3の行は第3の対角K20、K21、K22の計算を実施する。対角は、有効な部分和を考慮する。
【0025】
この例では、入力画像は4×4画像である。
【表3】
テプリッツ様カーネルkXYにおける対角の間のゼロの数は、所望のカーネルの画像サイズおよび次元に依存する。例えば、この例における所望のカーネルは3×3であり、したがって次元は3である。さらに、画像内の列数は4つであり、ゼロの数は4-3=1つとなる。したがって、画像が10×10画像である場合、K10要素の前に10-3=7つのゼロがある。さらに、第1の行を除く対角の前のゼロの数も、所望のカーネルサイズに依存する。例えば、行番号モジュラス(カーネルの次元-1)が0に等しい場合、所望のカーネルの次元-1個のゼロが対角の前に追加される。
【0026】
次に、アクセラレータシステム100におけるテプリッツ様カーネルkXYによる画像の畳み込みが、サイクルごとステッププロセスにおいて説明される。
【0027】
クロックサイクル0
図2において開始して、入力値i00は画像データを表し、画像データは、処理要素PEの第1の行においてクロッキングされる。図2では、処理要素PEの行および/または列の間で、入力値、画像データのタイミングをとるように構成されたタイミング論理が示されている。タイミング論理は、例えば、入力値をブロックする単純なカウンタであり得る。
【0028】
このクロックサイクルでは、すべての処理要素PEは、電力を節約するために非アクティブであり、これは、影付きPE記号によって示される。アクティブ化された処理要素は、影付きでないPE記号によって示されている。
【0029】
入力値i00は、処理要素PEの2行目および3行目についてスキップされる。
【0030】
アクセラレータシステム100、およびシステム内で畳み込みがどのように進行するかの説明の下に、対応するテプリッツ様カーネルkXYと、畳み込み全体にわたる異なる段階におけるテプリッツ様カーネルkXYの適用例とがある。
【0031】
クロックサイクル1
図3では、画像の次の入力値i01が第1の行でクロッキングされる。このクロックサイクルでは、すべての処理要素PEは、電力を節約するために非アクティブ化される。
【0032】
クロックサイクル2
図4、ここで画像の第3の入力値i02が、第1の行にクロッキングされる。これは、第1の行の3つの処理要素PEすべてが割り当てられ、処理要素PEがアクティブ化されることを意味する。処理要素PEは、それぞれのテプリッツ様第1行カーネル要素k00、k01、k02に、割り当てられた画像データi00、i01、i02を乗算することによって、部分結果を計算する。部分結果は、加算器として示されている算術論理ユニットによってまとめられる。まとめられた結果は、FIFOとして示される第1の記憶要素に記憶される。
【0033】
テプリッツ様カーネルkXYの第1の対角の第1の行が畳み込みのために適用されていることも分かる。
【0034】
クロックサイクル3
図5、次の入力値i03が第1の行においてクロッキングされる。この場合も、第1の行の3つの処理要素PEすべてが割り当てられ、処理要素PEがアクティブ化される。処理要素PEは、それぞれのテプリッツ様第1行カーネル要素k00、k01、k02に、割り当てられた画像データi01、i02、i03を乗算することによって、部分結果を計算する。部分結果はまとめられ、まとめられた結果は記憶要素に記憶される。
【0035】
さらに、テプリッツ様カーネルkXYの第1の対角の第2の行が、現在、畳み込みのために適用されている。
【0036】
クロックサイクル4
図6では、画像の第2の行の次の入力値i10が、第1の行および第2の行でクロッキングされる。次に、スキップ論理は、スキップ論理の条件が満たされたため、入力値i10を第1の行から第2の行に渡す。条件は、画像内の列数に基づき、この数の入力値がスキップされることである。
【0037】
この場合も、すべての処理要素PEが非アクティブ化される。
【0038】
クロックサイクル5
図7では、画像の第2の行についての次の入力値i11が、第1の行および第2の行でクロッキングされる。依然として、すべての処理要素PEが非アクティブ化される。
【0039】
クロックサイクル6
図8、ここで画像の第3の入力値i12が、第1の行および第2の行にクロッキングされる。これは、第1の行および第2の行の3つの処理要素PEすべてが割り当てられ、第1の行および第2の行の処理要素PEがアクティブ化されることを意味する。処理要素PEは、それぞれのテプリッツ様第1行カーネル要素k00、k01、k02に、割り当てられた画像データi10、i11、i12を乗算し、第2行カーネル要素k10、k11、k12に、割り当てられた画像データi10、i11、i12を乗算することによって、部分結果を計算する。第1の行の部分結果は、まとめられ、第1の記憶要素に記憶される。第2の行の部分結果は、画像の第1の行の第1のまとめられた結果を表す第1の記憶要素内の第1の記憶されたデータと共に、まとめられ、加算される。この加算は、次いで、同じくFIFOとして示される第2の記憶要素に記憶される。
【0040】
以下に示されるように、テプリッツ様カーネルkXYの第1の対角の第3の行は、現在、畳み込みのためにテプリッツ様カーネルkXYの第2の対角の第1の行と同様に適用されている。
【0041】
クロックサイクル7
図9、次の入力値i13が第1の行および第2の行においてクロッキングされる。この場合も、第1の行および第2の行の3つの処理要素PEすべてが割り当てられ、処理要素PEがアクティブ化される。
【0042】
第1の行の部分結果は、まとめられ、第1の記憶要素に記憶される。第2の行の部分結果は、画像の第1の行の第2のまとめられた結果を表す第1の記憶要素内の第2の記憶されたデータと共に、まとめられ、加算される。この加算は、次いで、第2の記憶要素に記憶される。
【0043】
現在、テプリッツ様カーネルkXYの第1の対角の第4の行は、畳み込みのためにテプリッツ様カーネルkXYの第2の対角の第2の行と同様に適用されている。
【0044】
クロックサイクル8
図10では、画像の第3の行についての入力値i20が、第2の行および第3の行でクロッキングされる。第1の対角k00、k01、k02の計算は前のサイクル7において完了したため、現在、パイプライン方式で、新しい第2の畳み込みのための新しいカーネル要素を処理要素PEの第1の行にロードすることが可能である。すべての処理要素PEが非アクティブ化される。
【0045】
クロックサイクル9
図11では、画像の第3の行についての入力値i21が、第2の行および第3の行にクロッキングされる。すべての処理要素PEが、依然として非アクティブ化される。
【0046】
クロックサイクル10
図12、画像の第3の行の第3の入力値i22が、第2の行および第3の行にクロッキングされる。この場合も、第2の行および第3の行の3つの処理要素PEすべてが割り当てられ、第2の行および第3の行の処理要素PEがアクティブ化される。処理要素PEは、それぞれのテプリッツ様第2行カーネル要素k10、k11、k12に、割り当てられた画像データi20、i21、i22を乗算し、第3行カーネル要素k20、k21、k22に、割り当てられた画像データi20、i21、i22を乗算することによって、部分結果を計算する。
【0047】
第2の行の部分結果は、画像の第2の行の第1のまとめられた結果を表す第1の記憶要素内の第3の記憶されたデータと共にまとめられ、加算される。この加算は、次いで、第2の記憶要素に記憶される。第3の行の部分結果は、画像の第1の行および第2の行の第1のまとめられた結果を表す第2の記憶要素内の第1の記憶されたデータと共に、まとめられ、加算される。
【0048】
以下に示されるように、テプリッツ様カーネルkXYの第2の対角の第3の行は、畳み込みのためにテプリッツ様カーネルkXYの第3の対角の第1の行と同様に適用されている。
【0049】
クロックサイクル11
図13、画像の第3の行の第4の入力値i23が、第2の行および第3の行にクロッキングされる。この場合も、第2の行および第3の行の3つの処理要素PEすべてが割り当てられ、第2の行および第3の行の処理要素PEがアクティブ化される。処理要素PEは、それぞれのテプリッツ様第2行カーネル要素k10、k11、k12に、割り当てられた画像データi21、i22、i23を乗算し、第3行カーネル要素k20、k21、k22に、割り当てられた画像データi21、i22、i23を乗算することによって、部分結果を計算する。
【0050】
第2の行の部分結果は、画像の第2の行の第2のまとめられた結果を表す第1の記憶要素内の第4の記憶されたデータと共に、まとめられ、加算される。この加算は、次いで、第2の記憶要素に記憶される。第3の行の部分結果は、画像の第1の行および第2の行の第2のまとめられた結果を表す第2の記憶要素内の第2の記憶されたデータと共に、まとめられ、加算される。
【0051】
以下に示されるように、テプリッツ様カーネルkXYの第2の対角の第4の行は、畳み込みのためにテプリッツ様カーネルkXYの第3の対角の第2の行と同様に適用されている。
【0052】
クロックサイクル12
図14では、画像の第4の行についての入力値i30が、第3の行でクロッキングされる。第2の対角k10、k11、k12の計算は前のサイクル11において完了したため、現在、パイプライン方式で、サイクル8において開始された第2の畳み込みの新しいカーネル要素を処理要素PEの第2の行にロードすることが可能である。すべての処理要素PEが非アクティブ化される。
【0053】
クロックサイクル13
図15では、画像の第4の行についての入力値i31が、第3の行でクロッキングされる。すべての処理要素PEが、依然として非アクティブ化される。
【0054】
クロックサイクル14
図16では、画像の第4の行についての入力値i32が、第3の行でクロッキングされる。これは、第3の行の3つの処理要素PEすべてが割り当てられ、第3の行の処理要素PEがアクティブ化されることを意味する。
【0055】
処理要素PEは、それぞれのテプリッツ様第3行カーネル要素k20、k21、k22に、割り当てられた画像データi30、i31、i32を乗算することによって、部分結果を計算する。第3の行の部分結果は、画像の第2の行および第3の行の第1のまとめられた結果を表す第2の記憶要素内の第1の記憶されたデータと共に、まとめられ、加算される。
【0056】
テプリッツ様カーネルkXYの第3の対角の第3の行が、現在、畳み込みのために使用されている。
【0057】
クロックサイクル15
図17では、画像の第4の行についての最後の入力値i33が、第3の行でクロッキングされる。これは、第3の行の3つの処理要素PEすべてが割り当てられ、第3の行の処理要素PEがアクティブ化されることを意味する。
【0058】
処理要素PEは、それぞれのテプリッツ様第3行カーネル要素k20、k21、k22に、割り当てられた画像データi31、i32、i33を乗算することによって、部分結果を計算する。第3の行の部分結果は、画像の第2の行および第3の行の第2のまとめられた結果を表す第2の記憶要素内の第2の記憶されたデータと共に、まとめられ、加算される。
【0059】
テプリッツ様カーネルkXYの第3の対角の第4の行が、現在、畳み込みのために使用されている。
【0060】
したがって、16×4テプリッツ様カーネルkXYによる4×4画像の完全な畳み込みは、16個のクロックサイクルにおいて達成される。
【0061】
この例では、処理要素PEを充填するために2つのクロックサイクルが中断として使用され、次いで、結果の計算のために2つのクロックサイクルが使用される。2つのクロックサイクルは、テプリッツ様カーネルにおける2つの追加のゼロに起因する。
【0062】
いくつかの例では、生成されたテプリッツ様カーネル(kXY)に対応する処理要素(PE)の配置は、各々が5つの処理要素(PE)を有する5つの行を有する5×5カーネルまたは各々が7つの処理要素を有する7つの行を有する7×7カーネルなど、他のカーネルのためにスケーリングされる。
【0063】
各々が7つのPEを有する7つの行を有する7×7カーネルを組み合わせ、1つの追加のPEを追加し、7×7+1PEを生じることも可能である。それは、7×7カーネルによる1回の畳み込み、5×5カーネルによる2回の並列畳み込みまたは3×3カーネルによる5回の並列畳み込みを可能にする(5つのPEがアイドルであり、非アクティブ化され得る)。したがって、生成されたテプリッツ様カーネルに対応するように処理要素PEを配置する多くの異なる方法がある。処理要素またはオブジェクトを備えるソフトウェアソリューションなど、上記の異なるカーネルソリューションに適応するように構成または再構成され得る論理を使用することも可能である。
【0064】
より大きい処理要素配置が使用される場合、およびそれがより小さいカーネル畳み込みを並列に実装するようにも構成される場合、記憶要素は、並列のより小さいカーネルに必要とされるだけの数である必要がある。例えば、7×7カーネルを使用し、また、5回の3×3カーネル畳み込みを並列に行うことができるようにしたい場合、6つの記憶要素が必要とされる。または、5回の3×3カーネルが所望される場合、5*2個の記憶要素=10個の記憶要素である。一般に、記憶要素の数量は、サポートされるカーネルの最大次元-1として計算される。
【0065】
より小さいサイズのより多くの記憶要素に適応するために記憶要素を分割することも可能である。このようにして、異なるサイズの畳み込みごとにいくつかの異なるサイズの記憶要素、またはFIFOを有することに起因して利用率が低くなる代わりに、全メモリのより多くの使用が達成され得る。次いで、記憶要素またはFIFOは、少なくとも、画像内の列数-カーネルの次元+1、処理要素の計算を記憶するように構成され得る。
【0066】
いくつかの例では、撮像装置400は、図18に示されている、入力画像を収集するように構成された撮像ユニット410と、画像畳み込みアクセラレータシステム100とを備え、ここではドローンが示されている。そのような撮像装置は、自律走行車または拡張現実装置であり得る。一般に、画像畳み込みアクセラレータシステム100は、任意の種類の畳み込みベース機械学習システムにおいて使用され得、それは、例えば、癌検出、オブジェクト検出、セグメンテーション、深さ予測、分類、画像再構成、圧縮、ビッグデータ処理、データの匿名化、認識などのために使用され得る。
【0067】
画像畳み込みアクセラレータシステム100の機能および動作は、メモリなどの非一時的コンピュータ可読媒体に記憶された実行可能論理ルーチン(例えば、コード行、ソフトウェアプログラムなど)の形態で具現化され得る。論理ルーチンは、プロセッサなどの制御回路によって実行され得る。さらに、画像畳み込みアクセラレータシステム100の機能および動作は、スタンドアロン・ソフトウェア・アプリケーションであるか、または、画像畳み込みアクセラレータシステム100に関連する追加のタスクを実行するソフトウェアアプリケーションの一部を形成し得る。説明された機能および動作は、対応するデバイスが実行するように構成される方法と考えられ得る。また、説明された機能および動作はソフトウェアで実装され得るが、そのような機能は、専用ハードウェアまたはファームウェア、あるいはハードウェア、ファームウェアおよび/またはソフトウェアの何らかの組合せを介しても実行され得る。
【0068】
ソフトウェアは、テプリッツ様カーネルkXYを生成するステップであって、テプリッツ様の生成されたカーネルkXYが、所望のカーネルに基づき、ゼロでパディングされる、生成するステップと、生成されたテプリッツ様カーネルkXYに対応する行および列で配置された処理要素PEを割り当てるステップと、入力画像が、生成されたテプリッツ様カーネルkXYを乗算されるように、生成されたテプリッツ様カーネルkXY内の非ゼロカーネル要素に基づいて、および非ゼロカーネル要素が1つの行内のすべての処理要素PEに割り当てられたときに処理要素PEをアクティブ化するステップとをコンピュータに実行させるソフトウェアプログラムであり得る。ソフトウェアプログラムは、非一時的記憶媒体に記憶され得る。
【0069】
さらに一層改善された画像処理性能のために、畳み込みアクセラレータシステム100は、多くの異なるデータパターンの同時書込みおよび読取りをサポートする並列メモリシステムと組み合わせられ得る。並列メモリシステムは、複数のメモリバンクと、画像をタグ付けし、それを異なるメモリバンクに分配する方法と、高い実装効率で柔軟なデータアクセスを可能にするための補助機能/回路とを備える。並列メモリシステムは、本出願と同日に同じ発明者によって出願された「SYSTEM AND METHOD FOR HIGH-THROUGHPUT IMAGE PROCESSING」というタイトルの出願においてより詳細に説明される。
【0070】
本発明は、示された実施形態に限定されないことが理解されよう。いくつかの修正および変形が、したがって、添付の特許請求の範囲によって排他的に定義される本発明の範囲内で考えられる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
【手続補正書】
【提出日】2023-07-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
二重ブロック巡回行列である生成されたテプリッツ様カーネルに対応するカーネル要素を備える処理要素(PE)であって、前記テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、処理要素(PE)と、
画像の同じ行からの画像データが、前記テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、前記カーネル要素に画像データを乗算するために前記処理要素(PE)をアクティブ化するように構成された画像コントローラ(10)と、
少なくとも、前記画像の列数から、前記所望の畳み込みカーネルの次元+1を、減算した値を記憶するように構成された少なくとも1つの記憶要素と、
を備える、画像畳み込みアクセラレータシステム。
【請求項2】
前記処理要素(PE)および/または記憶要素による前記乗算を加算するように構成された算術論理ユニットをさらに備える、
請求項1に記載の画像畳み込みアクセラレータシステム。
【請求項3】
記憶要素の数が、前記所望の畳み込みカーネルの次元-1として計算される、
請求項1又は請求項2に記載の画像畳み込みアクセラレータシステム。
【請求項4】
前記処理要素間で画像データのタイミングをとるように構成されたタイミング論理をさらに備える、
請求項1に記載の画像畳み込みアクセラレータシステム。
【請求項5】
入力画像を収集するように構成された撮像ユニットと、
請求項1から請求項4のいずれかに記載の画像畳み込みアクセラレータシステムと、
を備える、撮像装置。
【請求項6】
二重ブロック巡回行列であるテプリッツ様カーネルを生成するステップであって、前記テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、生成するステップと、
画像の同じ行からの画像データが、前記テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、カーネル要素が画像データを乗算されるように、前記生成されたテプリッツ様カーネルに対応する前記カーネル要素を備える処理要素をアクティブ化するステップと、
少なくとも1つの記憶要素に、少なくとも、前記画像の列数から、前記所望の畳み込みカーネルの次元+1を、減算した値を記憶するステップと、
を備える、画像処理方法。
【請求項7】
二重ブロック巡回行列であるテプリッツ様カーネルを生成するステップであって、前記テプリッツ様の生成されたカーネルが、所望の畳み込みカーネルに基づき、ゼロでパディングされる、生成するステップと、
画像の同じ行からの画像データが、前記テプリッツ様カーネルの非ゼロ行に対応するすべての処理要素(PE)に割り当てられたとき、カーネル要素が画像データを乗算されるように、前記生成されたテプリッツ様カーネルに対応する前記カーネル要素を備える処理要素をアクティブ化するステップと、
少なくとも1つの記憶要素に、少なくとも、前記画像の列数から、前記所望の畳み込みカーネルの次元+1を、減算した値を記憶するステップと、
を、コンピュータに実行させる、プログラム。
【請求項8】
請求項7に記載のプログラムを記憶した非一時的記憶媒体。
【国際調査報告】