Elbrusプラットフォヌム甚のViola and Jonesメ゜ッドの最適化

Viola and Jones [1]の方法アルゎリズムは、画像内のオブゞェクトの境界を識別する方法の1぀です。 2001幎にP. ViolaずM. Jonesによっお開発されたアルゎリズムは、圓初は画像内の顔をすばやく怜玢するこずを目的ずしおいたしたが、珟圚では、この人気のあるアルゎリズムのさたざたなバリ゚ヌションが境界を芋぀けるさたざたな問題でうたく䜿甚されおいたす









ほが同じ角床で画像に存圚する他のオブゞェクトず同様に。 ノィオラずゞョヌンズの方法の修正のこの皮の人気は、オブゞェクトの怜玢の高い粟床ず、幟䜕孊的歪みず茝床倉化の䞡方に察する高い抵抗力によっお説明されたす。







Viola and Jones Methodの説明



Viola and Jonesアルゎリズムは、画像内のオブゞェクトを怜出する問題を、画像内の各ポむントでのバむナリ分類問題に枛らしたす。 この方法は、「スラむディングりィンドり」技術に基づいおいたした。 事前に蚓緎された分類噚怜出噚の助けを借りお、あらゆる皮類のシフトずスケヌルで撮圱された画像の各長方圢領域に぀いお、この領域での怜玢オブゞェクトの有無に関する仮説を確認する必芁がありたす。 すべおの地域を完党に調査するず、1぀の画像で䜕十䞇もの分類噚が実行されたす。 そのため、分類噚には2぀の厳密な芁件がありたす高性胜ず少数の誀怜知です。







この䜜業では、ViolaずJonesは人間の顔の分類噚に぀いお説明したした。 トレヌニングサンプルは、24x24ピクセルにスケヌリングされた4916の顔画像 正のサンプル ず、顔画像がなく、顔のないゟヌンがランダムに抜出された9500のフルサむズ画像 負のサンプル で構成されおいたした。







特城空間を構築するために、明るさの特城的な違いを瀺すHaar特城が遞択されたした。 Haarの笊号は、画像の積分衚珟を䜿甚しお簡単に蚈算されたす。 寞法が24x24の画像の堎合、1぀の属性の構成の数は45396に関連しおいるこずが刀明したした。







Viola and Jonesメ゜ッドでは、AdaBoostアルゎリズム[5]が䜿甚されたした。これにより、最も有益な機胜を遞択し、バむナリ分類噚を構築できたす。 これを行うために、著者は各属性に匱い分類噚を関連付けたした。これは単䞀レベルの決定ツリヌを衚し、その埌AdaBoostアルゎリズムに䟛絊されたす。







Viola and Jonesメ゜ッドの必芁な郚分は、構築された匷力な分類噚を結合する手順です。これにより、顔画像を含む可胜性のある調査画像の領域をロヌカラむズするこずで、顔怜出プロセスの生産性を倧幅に向䞊できたす。







䞊蚘のように、Viola and Jonesアルゎリズムでは、分類子がトレヌニングされるず、Haarりェヌブレットに戻るHaar機胜のファミリがオブゞェクトの蚘述に䜿甚されたす[6]。 この遞択は䞻に、Haarの特城が明るさの違いに関連する怜出されたオブゞェクトの特城的な特城を適切に蚘述するずいう事実によるものです。 Haarの兆候により、人の顔の画像では、目の郚分が錻の郚分よりも暗いこずがわかりたす図1d。 説明したアルゎリズムには、2぀の長方圢の特城図1a、3぀の長方圢の特城図1b、および4぀の長方圢の特城図1cの3぀のクラスの特城が含たれおいたした。







各Haar属性の倀は、同じサむズの黒ず癜の長方圢内の画像領域のピクセルの合蚈の差に等しくなりたした。 2長方圢および3長方圢のHaarサむンは、垂盎方向図1を参照たたは氎平方向に向けるこずができたす。 Haar笊号の迅速な蚈算のために、画像の積分衚珟が䜿甚されたす[7]。







AdaBoostアルゎリズムでは、Viola and Jonesメ゜ッドを孊習するずきに、1぀のブランチず2぀のリヌフを持぀認識ツリヌ 決定切り株ず呌ばれ、察応する属性の倀をしきい倀ず比范するが匱い分類噚ずしお䜿甚されたす。 特性f j 、しきい倀Ξj 、およびパリティp jに基づく圢匏的に匱い分類噚b j  x は、次のように定矩されたす。









このような倚くの匱い分類噚は、トレヌニングセットずずもに、AdaBoostアルゎリズムの入力に䟛絊されたす。









図1-トレヌニングで䜿甚される長方圢Haarサむン

分類噚a2-長方圢の蚘号。 b3-長方圢のサむン;

c4-長方圢の蚘号; d暙識の䜍眮の䟋

スキャンりィンドりに関連゜ヌス[7]







カスケヌド分類子 cascade は、調査察象の画像に぀いお、怜玢オブゞェクトを含たない「ポゞティブ」゚リアの数が、このオブゞェクトを含む゚リア「ネガティブ」゚リアよりも数桁倧きいずいう仮定の䞋で䜜成されたす。 オブゞェクト怜出噚の速床を䞊げるには、できるだけ早く画像のネガティブ領域を考慮するこずを拒吊するこずが有甚です。 たたは、ネガティブ゚リアを分析するためのフィヌチャの数は、ポゞティブ゚リアに察しお蚈算されるフィヌチャの数よりも倧幅に少なくする必芁がありたす。







怜玢オブゞェクトの存圚に぀いお分析される各画像領域は、 カスケヌドレベルず呌ばれる分類噚の順序付けられたシヌケンスの入力に䟛絊されたす 。 分類子のシヌケンスを進めるに぀れお、レベルの蚈算の耇雑さが増したす。 分類子が特定の領域の認識を拒吊した堎合぀たり、その領域が負ずしお分類された堎合、この領域は残りの分類子によっお凊理されなくなりたす。







カスケヌド分類子の定矩によれば、次の関係が有効です。









ここで、 FPRはカスケヌドの誀怜出の割合、 TPRはカスケヌドの誀怜出の割合、 Kはカスケヌドのレベル数、 fpr iはカスケヌドのi番目のレベルの誀怜出の割合、 tpr iはカスケヌドのi番目のレベルの誀怜出の割合です。







各分析領域に぀いお蚈算される蚈算された特性の掚定数は、次の匏によっお蚈算されたす。









ここで、 n iはi番目のレベルの匱分類噚の数、 pr iはi番目のレベルの応答の割合です。







分類噚のトレヌニングアルゎリズムは、最適化の問題を解決し、最適なFPRおよびTPRむンゞケヌタヌを䜿甚しおカスケヌドを構築し、蚈算された属性Nの予想数を最小限に抑えるようにしたす。 FPR 、 TPR 、およびNの倀の間に明確なリンクがないため、たずこの問題を解決するのが非垞に難しいこずは明らかです。







肯定的な䟋ず吊定的な䟋を含む、既存のラベル付きトレヌニングサンプルでカスケヌドをトレヌニングする簡単なアむデアが知られおいたす。 事前に3぀のパラメヌタヌを遞択する必芁がありたす。









その埌、カスケヌド分類噚が反埩的に構築され、各反埩でAdaBoostアルゎリズムを䜿甚しおトレヌニングが実行されたす。 FPR *倀で指定された目暙品質に達するたで、レベルがカスケヌドに远加されたす。 カスケヌドの各レベルのトレヌニング入力で、そのようなトレヌニングサンプルを提出する必芁がありたす。その䟋は、珟時点で既にトレヌニングされおいるカスケヌド分類噚の誀怜知です。







パスポヌトのスキャン画像を怜出するタスクでオブゞェクト怜出噚をトレヌニングするための説明されたアプロヌチを研究したした。 トレヌニングセットは、2぀のセットで構成されたした。









テストサンプルは、300枚の写真ずパスポヌトスキャンで構成されおいたした䞡方のペヌゞが同時に画像䞊に存圚しおいたした。 パスポヌトのトップペヌゞ2ペヌゞ目の補本品質は0.967でした。 パスポヌトの䞋郚ペヌゞ3ペヌゞ目の綎じ品質は0.98でした。







Elbrusのアヌキテクチャの機胜



Elbrusアヌキテクチャは、幅広いコマンドワヌドVery Long Instruction Word、VLIWの原則を䜿甚したアヌキテクチャのカテゎリに属したす。 VLIWアヌキテクチャヌのプロセッサヌでは、コンパむラヌはコマンドのグルヌプのシヌケンス広矩のコマンドワヌドを生成したす。各グルヌプ内のチヌム間に䟝存関係はなく、異なるグルヌプのチヌム間の䟝存関係は最小限に抑えられたす。 さらに、各グルヌプ内のコマンドは䞊行しお実行され、コマンドレベルで高レベルの䞊列凊理を実珟したす。







コマンドレベルでの䞊列化は最適化コンパむラによっお完党に提䟛されるずいう事実により、たずえばx86アヌキテクチャの堎合のように、䞊列化タスクを解決しないため、コマンドを実行するための機噚が倧幅に簡玠化されたす。 VLIWプロセッサの消費電力が削枛されたした。これらのタスクはすべおコンパむラに割り圓おられるため、オペランド間の䟝存関係を分析したり、操䜜を䞊べ替えたりする必芁がなくなりたした。 コンパむラは、゜ヌスコヌドのハヌドりェアアナラむザよりもはるかに倚くのコンピュヌティングリ゜ヌスず時間リ゜ヌスを持っおいるため、より培底的な分析を実行し、より独立した操䜜を芋぀けるこずができたす[8]。







さらに、Elbrusアヌキテクチャの機胜は、メモリを操䜜する方法です。 倚くの堎合、倖郚メモリぞのアクセスにはかなりの時間がかかり、蚈算が遅くなりたす。 キャッシュはこの問題を解決するために䜿甚されたすが、キャッシュのサむズは厳密に制限されおおり、䞀般的なキャッシュアルゎリズムは頻繁に䜿甚されるデヌタのみをキャッシュに保存するこずを目的ずしおいるため、欠点がありたす。







メモリアクセスの効率を高めるもう1぀の方法は、デヌタの事前ペヌゞング方法を䜿甚するこずです。 これらの方法により、メモリアクセスを予枬し、䜿甚する前にキャッシュたたは他の特別なデバむスにデヌタを送り蟌むこずができたす。 それらは゜フトりェアずハ​​ヌドりェアに分けられたす。 ゜フトりェア方匏では、コンパむル段階で特別な事前ペヌゞング呜什が蚈画されおいたす。 通垞のメモリアクセスず同じ方法で凊理されたす。 ハヌドりェアメ゜ッドは、プログラムの実行䞭に機胜し、メモリアクセスに関する動的情報を䜿甚しお予枬したす。 マむクロプロセッサの䞀郚ずしお远加のモゞュヌルが必芁ですが、特別なスワッピング呜什を必芁ずせず、非同期で動䜜できたす。







Elbrusプロセッサは、ハヌドりェアず゜フトりェアのスワップ方匏をサポヌトしおいたす。 同時に、マむクロプロセッサハヌドりェアにはアレむにアクセスするための特別なデバむスArray Access Unit、AAUが含たれおいたすが、スワッピングの必芁性は、特別な呜什AAUの初期化、事前スワッププログラムの開始ず停止、非同期事前スワップ呜什および同期デヌタ転送呜什を生成するコンパむラによっお決定されたす配列のスワップバッファヌArray Prefetch Buffer、APBからレゞスタファむルぞ。 キャッシュに配列芁玠を配眮するよりもスワップデバむスを䜿甚する方が効率的です。配列芁玠はほずんどの堎合連続しお凊理され、2回以䞊䜿甚されるこずはめったにないからです[9]。 ただし、Elbrusでプリペヌゞングバッファヌを䜿甚できるのは、アラむメントされたデヌタを操䜜する堎合のみであるこずに泚意しおください。 このため、䜍眮合わせされたデヌタの読み取り/曞き蟌みは、䜍眮合わせされおいないデヌタの察応する操䜜よりもはるかに高速に行われたす。







たた、Elbrusマむクロプロセッサは、コマンドレベルでの䞊列凊理に加えお、いく぀かのタむプの䞊列凊理をサポヌトしおいたす。ベクトル䞊列凊理、制埡フロヌの䞊列凊理、マルチマシンコンプレックスのタスクの䞊列凊理です。







Elbrusプラットフォヌムでプログラムコヌドのパフォヌマンスを改善するためのツヌル



ベクトル䞊列凊理を実装する高性胜EMLラむブラリず組み蟌み関数を䜿甚しお、Elbrusアヌキテクチャプロセッサで開発されたアルゎリズムの速床を䞊げるこずができたす。







EMLラむブラリは、ナヌザヌに信号、画像、ビデオ、および数孊関数ず挔算を凊理するためのさたざたな方法のセットを提䟛する高性胜ラむブラリです[10]。 C / C ++で曞かれたプログラムで䜿甚するためのものです。 EMLラむブラリには、次の機胜グルヌプがいく぀か含たれおいたす。







- Vector —      () ; - Algebra —   ; - Signal —   ; - Image —   ; - Video —   ; - Volume —    ; - Graphics —    .
      
      





デヌタ配列の堎合、たずえば、加算、芁玠ごずの乗算、配列の平均倀の蚈算など、最も芁求される操䜜が決定されたす。







開発者は、Elbrusプラットフォヌムでベクトル䞊列凊理を盎接䜿甚できたす。぀たり、耇数のデヌタ芁玠を含む単䞀のレゞスタで同じ操䜜を䞀床に実行できたす。 このために、組み蟌み関数が䜿甚され、その呌び出しは、このプラットフォヌム甚の高性胜コヌドを備えたコンパむラヌによっお眮き換えられたす。 Elbrus-4Cマむクロプロセッサは、レゞスタサむズが64ビットであるバヌゞョン3の呜什セットをサポヌトしおいたす。 64ビットレゞスタを䜿甚するず、2぀の実32ビット数、4぀の16ビット敎数、たたは8぀の8ビット敎数を同時に凊理できるため、パフォヌマンスが向䞊したす。 Elbrusマむクロプロセッサの組み蟌み関数のセットは、組み蟌み関数SSE、SSE2のセットにほが類䌌しおおり、デヌタ倉換、ベクトル芁玠の初期化、算術挔算、ビットごずの論理挔算、ベクトル芁玠の眮換などの操䜜が含たれたす。







Elbrusアヌキテクチャヌ向けのViolaおよびJones分類噚の最適化



ノィオラずゞョヌンズの開発された分類アルゎリズムの実隓的怜蚌は、ロシア連邊のパスポヌトの番号ずシリヌズ、およびロシア連邊の垂民の姓、名前、ミドルネヌム、性別、日付ず出生地を含むロシア連邊のパスポヌトの3ペヌゞ目を怜出するタスクで実行されたした。 この問題を解決するために、バむナリ分類噚がトレヌニングされ、その入力はグレヌ画像を受け取り、480 x 360ピクセルのサむズに瞮小されたした。 このサむズに瞮小しおも入力画像の比率が維持されない堎合、画像の最小寞法は察応するサむズに瞮小され、比率は維持されたたた2番目のサむズが瞮小されたす。 分類子の出力は、パスポヌトペヌゞの有無ずしお解釈され、その偎面がフレヌムの端に平行になるように方向付けられたす。







開発された分類噚は、積分画像に基づいお蚈算された修正Haar二重長方圢蚘号で動䜜したす。









ここで、 Iは積分画像、 W 、 Hは合蚈を蚈算する長方圢の幅ず高さ、 x 、 y はサブりィンドりの巊䞊隅の座暙、 p 、 q は合蚈を蚈算する2番目の長方圢のシフト、 rは属性の蚈算結果です。 埓来のHaarのバむセントラル機胜ずは察照的に、このような機胜は元の画像の明るさの倉化に察しおより耐性がありたす。







怜出䞭、これらの蚈算は゜ヌス画像の各サブりィンドりに察しお実行されたす。 分類噚の堎合、これらのサブりィンドりが䜿甚されるステップは氎平および垂盎の䞡方で1に等しいため、゜ヌスむメヌゞの各行のフォヌム1の操䜜は、次のようなベクトルEML操䜜を䜿甚しお簡単に実装できたす。







 - eml_Status eml_Vector_AddShift_32S(const eml_32s *pSrc1, const eml_32s *pSrc2, eml_32s *pDst, eml_32s len, eml_32s len) -       32-  Src1  pSrc2    2^shift      pDst. - eml_Status eml_Vector_SubShift_32S(const eml_32s *pSrc1, const eml_32s *pSrc2, eml_32s *pDst, eml_32s len, eml_32s len) -       32-  Src1  pSrc2    2^shift      pDst. - eml_Status eml_Vector_AddCShift_32S(const eml_32s *pSrc, eml_32s val, eml_32s *pDst, eml_32s len, eml_32s shift) -    val      32-  pSrc    2^shift      pDst. - eml_Status eml_Vector_DivShift_32S(const eml_16s *pSrc1, const eml_16s *pSrc2, eml_16s *pDst, eml_32s len, eml_32s shift) -       32-  Src1  pSrc2    2^shift      pDst.
      
      





したがっお、2-rectangular Haar特城の蚈算はベクトル化されたした。 図2は、分類噚の氎平アプリケヌションの数に応じた、このような機胜の蚈算時間を瀺しおいたす。 実隓は、Elbrus-4Cプロセッサを搭茉したマシンで実行されたした。 EMLを䜿甚するず、オブゞェクトを怜出するプロセスで2長方圢Haar機胜を蚈算する時間を最倧10倍高速化できるこずがわかりたす。これは、64以䞊の分類アプリケヌションの数を蚈算するずきに最も効果的です。







次に、元の画像の長さに応じお、1぀のサブりィンドりの分類時間を掚定したす図3を参照。 EMLの䜿甚により、ロシア連邊のパスポヌトのペヌゞの怜出時間が30倍に短瞮されたこずがわかりたす。









図2-修正された2長方圢Haar属性Tの蚈算時間のアプリケヌション数ぞの䟝存性









図3-分類噚nの氎平方向の適甚回数に察する分類Tの蚈算時間の䟝存性







同様の結果は予想をはるかに超えおいたした。 どうやら、この理由は、STL実装基本実装で䜿甚の機胜ずElbrusでメモリを操䜜する特性たずえば、配列亀換デバむス特別なElbrusチップを䜿甚するためのアラむメントの必芁性です。 EMLラむブラリの操䜜はこれらの状況を考慮し、開発者がアヌキテクチャのニュアンスを「深く掘り䞋げる」必芁なく、䜎レベルの操䜜をクヌルに加速できるこずを明らかにしたした。







 Elbrusコンピュヌタヌず補品はChipEXPO-2017でご芧いただけたす







䜿甚された゜ヌスのリスト



  1. Viola P.、Jones M. Robust Real-time Object Detection // International Journal of Computer Vision。 2001. [7]
  2. Viola P.、Jones M.、Snow D.動きず倖芳のパタヌンを䜿甚した歩行者の怜出// Int。 J.蚈算 ノィス 2005. Vol。 63、No。2。P.153–161。 [30]
  3. Moutarde F.、Stanciulescu B.、Breheret A.新しい効率的なadaBoost機胜を䜿甚した車䞡ず歩行者のリアルタむム芖芚怜出// 2008 IEEE International Conference on Intelligent RObots SystemsIROS 2008。 2008. [33]
  4. Chen S.、Hsieh J.道路暙識の怜出ず認識を匷化// 2008 Int。 確認 マッハ。 孊ぶ。 サむバヌン。 2008幎。7月。 P. 3823–3826。 [36]
  5. Freund Y.、Schapire REオンラむン孊習の決定理論的䞀般化ず埌抌しぞの応甚// Journal of Computer and System Sciences、No. 55. Issue 1、August 1997、P. 119-139
  6. Papageorgiou CP、Oren M.、Poggio T.オブゞェクト怜出の䞀般的なフレヌムワヌク// Sixth Int。 確認 蚈算。 ノィス IEEEカタログNo98CH36271。 1998. Vol。 6、1月号。 P. 555-562 [47]
  7. テクスチャマッピング甚のCrow FC Summed-areaテヌブル// ACM SIGGRAPH Computer Graphics。 1984。 18、No. 3. P. 207–212 [49]
  8. キムA.K.、ビチコフI.N. およびパヌ゜ナルコンピュヌタヌ、サヌバヌ、スヌパヌコンピュヌタヌ向けのその他のロシア技術「゚ルブラス」//珟代の情報技術ずIT教育、M .:むンタヌネットメディア開発のための基金、IT教育、人間の可胜性「むンタヌネットメディアリヌグ」、2014幎、番号10。39-50。
  9. Kim A.K.、Perekatov V.I.、Ermakov S.G. Elbrusファミリヌのマむクロプロセッサヌおよびコンピュヌティングシステム。 -サンクトペテルブルクピヌタヌ、2013幎-272 S.
  10. Ishin P.A.、Loginov V.E.、Vasiliev P.P. Elbrusアヌキテクチャ向けの高性胜な数孊およびマルチメディアラむブラリを䜿甚した蚈算の高速化//航空宇宙防衛のヘラルド、M。Scientific and Production Association "Diamond"それら。 Acad。 A.A. Raspletina、2015幎、No。48。 64-68。



All Articles