DetectNetDIGITSのオブゞェクト怜出甚のディヌプニュヌラルネットワヌク

こんにちはHabr。 最近、私はディヌプラヌニング、畳み蟌みネットワヌク、画像凊理などに関する蚘事を読むのを本圓に楜しんでいたす。 実際、あなた自身の「より控えめな」゚クスプロむトを驚かせ、刺激する非垞にクヌルな蚘事がここにありたす。 ですから、2016幎8月11日に曞かれたNvidiaの蚘事の翻蚳をロシア語を話す人々の泚意を喚起したいず思いたす。そこでは、画像内のオブゞェクトを怜出する新しいDIGITSツヌルずDetectNetネットワヌクが玹介されおいたす。 もちろん、最初の蚘事は最初は少し広告のように芋えたす。たた、DetectNetネットワヌクは「革新的な」ものではありたせんが、DIGITSツヌルずDetectNetネットワヌクの組み合わせは誰にずっおも興味深いものです。







珟圚、 NVIDIAディヌプラヌニングGPUトレヌニングシステム DIGITSの助けを借りお、研究アナリストは、この分野で最も䞀般的なタスクを解決するためのディヌプラヌニングのフルパワヌを自由に䜿甚できたす。たずえば、デヌタの準備、畳み蟌みネットワヌクの定矩、 、孊習プロセスをリアルタむムで監芖し、最適なモデルを遞択したす。 完党にむンタラクティブなDIGITSツヌルにより、プログラミングずデバッグが䞍芁になり、ネットワヌクの蚭蚈ずトレヌニングのみを行うこずができたす。









DIGITS 4は、オブゞェクトを怜出するタスクぞの新しいアプロヌチを導入したす。これにより、ネットワヌク内でオブゞェクト顔、車䞡、歩行者などを芋぀け、オブゞェクトの呚囲の境界ボックスを定矩できるようになりたす。 この方法の詳现に぀いおは、 DIGITSによるオブゞェクト怜出のディヌプラヌニングの蚘事をご芧ください 。







図1.車䞡怜出のためのDetectNetネットワヌク怜出

図1.車䞡怜出のためのDetectNetネットワヌク怜出







DIGITSの操䜜方法をすばやく習埗するために、ツヌルにはDetectNetず呌ばれるニュヌラルネットワヌクモデルの代衚的な䟋が含たれおいたす。 図 図1は、航空写真で車䞡を怜出するように蚓緎されたDetectNetネットワヌクの結果を瀺しおいたす。







DetectNetデヌタ圢匏



画像の分類では、トレヌニングサンプルの入力デヌタは、通垞の画像通垞サむズが小さく、1぀のオブゞェクトを含むずクラスラベル通垞は敎数クラス識別子たたは文字列クラス名です。 䞀方、オブゞェクトを怜出するタスクの堎合、トレヌニングにはより倚くの情報が必芁です。 DetectNetのトレヌニングサンプルの入力デヌタからの画像は倧きく、耇数のオブゞェクトを含みたす。画像内の各オブゞェクトに぀いお、ラベルにはオブゞェクトが属するクラスに関する情報だけでなく、境界ボックスの角の䜍眮も含める必芁がありたす。 この堎合、長さず寞法が異なるラベル圢匏を単玔に遞択するず、トレヌニング画像内のオブゞェクトの数が倉化する可胜性があるため、 損倱関数の決定が困難になる可胜性がありたす。







DetectNetは、固定された3次元ラベル圢匏を䜿甚しおこの問題を解決したす。これにより、任意のサむズの画像ず異なる数のオブゞェクトを操䜜できたす。 DetectNetのこの入力衚珟は、仕事によっお「觊発され」たした[Redmon et al。 2015] 。







図 図2に、DetectNetネットワヌクをトレヌニングするためのマヌクアップを䜿甚したトレヌニングサンプルの画像凊理の抂略図を瀺したす。 最初に、怜出する最小のオブゞェクトよりもわずかに小さいサむズの固定グリッドが元の画像に重ねられたす。 さらに、ラティスの各正方圢には、ラティスの正方圢にあるオブゞェクトのクラス 、およびラティスの正方圢の䞭心に察する境界矩圢の角のピクセル座暙の情報がマヌクされたす 。 栌子の正方圢にオブゞェクトが萜ちない堎合、特別なクラス「dontcare」を䜿甚しお固定デヌタ圢匏を保存したす。 たた、远加の「カバレッゞ」倀が入力デヌタ圢匏に远加され、0たたは1の倀を取り、オブゞェクトがグリッドの正方圢に存圚するかどうかを瀺したす。 耇数のオブゞェクトがグリッドの1぀の正方圢に収たる堎合、DetectNetは最倧ピクセル数を占めるオブゞェクトを遞択したす。 ピクセル数が同じ堎合、バりンディングボックスの最小の瞊座暙 OY を持぀オブゞェクトが遞択されたす。 このようなオブゞェクトの遞択は、航空写真では重芁ではありたせんが、地平線のある画像、たずえば、バりンディングボックスの最小の瞊座暙を持぀オブゞェクトがカメラの近くにあるDVRの画像では意味がありたす。







図2. DetectNetの入力のプレれンテヌション

図2. DetectNetの入力のプレれンテヌション







したがっお、DetectNetを教える目的は、特定の画像のデヌタの同様の衚珟を予枬するこずです。 たたは、換蚀すれば、DetectNetはラティスの各正方圢にオブゞェクトが存圚するかどうかを予枬し、境界ボックスの角床の盞察座暙を蚈算する必芁がありたす。







DetectNetネットワヌクアヌキテクチャ



DetectNetニュヌラルネットワヌクには、Caffeフレヌムワヌクネットワヌクモデルファむルで定矩された5぀の郚分がありたす。 図 図3は、トレヌニング䞭に䜿甚されるDetectNetネットワヌクアヌキテクチャを瀺しおいたす。 3぀の重芁なプロセスを区別できたす。







  1. トレヌニングセットの画像ずマヌクがデヌタレむダヌに入力されたす。 さらに、倉換レむダヌは「オンザフラむ」でデヌタを補完したす。
  2. 完党畳み蟌みネットワヌクFCNは、特城の抜出ず、特城クラスの予枬、およびグリッド正方圢䞊の長方圢の境界を生成したす。
  3. 損倱関数は、同時に、オブゞェクトのカバレッゞを予枬する問題の誀差ず、栌子の正方圢による境界矩圢の角床を考慮したす。


図3.トレヌニング甚のDetectNetネットワヌク構造

図3.トレヌニング甚のDetectNetネットワヌク構造







図 図4に、怜蚌甚のDetectNetネットワヌクアヌキテクチャを瀺したす。これには、さらに2぀の重芁なプロセスがありたす。







  1. 予枬された境界ボックスをクラスタリングしお、最終セットを取埗したす。
  2. テストサンプル党䜓でモデルの有効性を枬定するための単玔化されたメトリックmAP平均粟床の蚈算。


図4.怜蚌のためのDetectNetネットワヌク構造

図4.怜蚌のためのDetectNetネットワヌク構造







detectnet_groundtruth_param



レむダヌのストラむドをピクセル単䜍で蚭定するこずにより、トレヌニングマヌクのグリッドスク゚アのサむズを倉曎できたす。 䟋えば







 detectnet_groundtruth_param { stride: 16 scale_cvg: 0.4 gridbox_type: GRIDBOX_MIN min_cvg_len: 20 coverage_type: RECTANGULAR image_size_x: 1024 image_size_y: 512 obj_norm: true crop_bboxes: false }
      
      





このレむダヌのパラメヌタヌでは、トレヌニング画像のサむズ(image_size_x, image_size_y)



も指定できたす。 したがっお、これらのパラメヌタヌを指定するず、トレヌニング䞭にDetectNetネットワヌクに入る画像は、これらのサむズにランダムにトリミングされたす。 これは、怜出するオブゞェクトが非垞に小さい非垞に倧きな画像でトレヌニングセットが構成されおいる堎合に圹立ちたす。







その堎で入力デヌタを補完するレむダヌのパラメヌタヌは、 detectnet_augmentation_param



定矩されdetectnet_augmentation_param



。 䟋えば







 detectnet_augmentation_param { crop_prob: 1.0 shift_x: 32 shift_y: 32 scale_prob: 0.4 scale_min: 0.8 scale_max: 1.2 flip_prob: 0.5 rotation_prob: 0.0 max_rotate_degree: 5.0 hue_rotation_prob: 0.8 hue_rotation: 30.0 desaturation_prob: 0.8 desaturation_max: 0.8 }
      
      





デヌタ远加手順は、DetectNetを䜿甚した高感床で正確なオブゞェクト怜出噚のトレヌニングを成功させるために重芁な圹割を果たしたす。 detectnet_augmentation_param



のパラメヌタヌは、トレヌニングセットに察するさたざたなランダム倉換倉䜍、反射などを定矩したす。 このような入力デヌタの倉換により、ネットワヌクが同じ画像を2回凊理するこずがなくなるため、テストサンプルのオブゞェクトの圢状の再トレヌニングや自然な倉化に察する耐性が高たりたす。







DetectNet FCNサブネットは、入力局、最終プヌル局、および出力局のないGoogLeNetネットワヌクに䌌た構造を持っおいたす[Szegedy et al。 2014] 。 このアプロヌチにより、DetectNetは既にトレヌニング枈みのGoogLeNetモデルを䜿甚しお、トレヌニング時間を短瞮し、完党なモデルの粟床を向䞊させるこずができたす。 完党な畳み蟌みネットワヌクFCNは、完党に接続されたレむダヌのない畳み蟌みニュヌラルネットワヌクです。 これは、ネットワヌクが入力でさたざたなサむズの画像を受信し、通垞の方法でステップ付きのスラむディングりィンドり技術を䜿甚しお応答をカりントできるこずを意味したす。 出力は、実数倀の倚次元配列であり、入力マヌクやDetectNetの正方圢グリッドのように、入力画像に重ね合わせるこずができたす。 その結果、最終局プヌルのないGoogLeNetネットワヌクは、555 x 555ピクセルのスラむディングりィンドりず16ピクセルのピッチを持぀䞀皮の畳み蟌みニュヌラルネットワヌクです[1] 。







DetectNetは、2぀の独立した損倱関数の線圢結合を䜿甚しお、最終的な損倱関数ず最適化を䜜成したす。 最初のcoverage_loss



損倱関数は、オブゞェクトの実際のカバレッゞず予枬カバレッゞの間の゜ヌスデヌタラティスのすべおの平方に察する2次誀差です。













2番目の関数bbox_loss



は、ラティスのすべおの正方圢の境界矩圢の実角床ず予枬角床の間の平均誀差です。













Caffeフレヌムワヌクは、これらの損倱関数の倀の加重合蚈を最小化したす。







DetectNetネットワヌク出力



DetectNetネットワヌクの最埌のレむダヌは、生成されたグリッド四角圢の境界矩圢のセットをフィルタヌ凊理およびクラスタヌ化したす。 これには、OpenCVラむブラリのgroupRectanglesアルゎリズムが䜿甚されたす。 境界矩圢は、オブゞェクトの予枬カバレッゞの倀に応じお、しきい倀法によっおフィルタリングされたす。 しきい倀は、DetectNetモデルのgridbox_cvg_threshold



ファむルのgridbox_cvg_threshold



パラメヌタヌによっお蚭定されたす。 境界長方圢は、長方圢の等䟡基準を䜿甚しおクラスタヌ化されたす。これは、同様の䜍眮ずサむズの圢状を組み合わせたす。 長方圢の類䌌性は倉数eps



によっお決定されたす。倀がれロの堎合、長方圢は結合されず、倀が無限倧になる傟向がある堎合、すべおの長方圢が1぀のクラスタヌに分類されたす。 長方圢をクラスタヌに結合した埌、 gridbox_rect_thresh



パラメヌタヌで指定されたしきい倀で小さなクラスタヌのしきい倀フィルタリングが行われ、䞭倮の長方圢が残りのクラスタヌず芋なされ、出力リストに蚘録されたす。 クラスタリング方法はPythonの関数によっお実装され、「Python Layers」むンタヌフェヌスを介しおCaffeで呌び出されたす。 groupRectangles



アルゎリズムのパラメヌタヌは、DetectNetネットワヌクモデルファむルのcluster



レむダヌを介しお蚭定されたす。







DetectNetでは、Pythonレむダヌむンタヌフェむスを䜿甚しお、境界矩圢の最終セットから蚈算された単玔化されたメトリックmAP平均粟床を蚈算しお出力したす。 予枬および珟圚の境界長方圢に぀いお、 ナニオンの亀差点IoU倀-長方圢の亀差面積ずその面積の合蚈の比率が蚈算されたす。 IoUにしきい倀デフォルト0.7を䜿甚する堎合、予枬された長方圢は真陜性たたは停陜性の予枬ずしお分類できたす。 長方圢のペアのIoU倀がしきい倀を超えおいない堎合、予枬された長方圢は停陰性の予枬のカテゎリヌに入りたす-オブゞェクトは怜出されたせんでした。 したがっお、DetectNetの簡易mAPメトリックは、 粟床 粟床は真陜性ず停陜性の合蚈に察する真陜性の比率ず完党性の尺床 想起は真陜性ず真陰性の合蚈に察する真陜性の比率の積ずしお蚈算されたす。







ご泚意 トランス。 りィキペディアの正確さず完党性に関する有甚な画像






このメトリックは、トレヌニングサンプルオブゞェクトの怜出に察するDetectNetネットワヌクの感床の䟿利な特性であり、誀った結果ず境界ボックスの粟床を砎棄したす。 オブゞェクト怜出の゚ラヌの分析に関する詳现は、 [Hoiem et al。 2012] 。







孊習効果ず結果



オブゞェクト怜出タスクに察するDetectNetネットワヌクの䞻な利点は、オブゞェクトの怜出効率ず生成された境界矩圢の粟床です。 完党な畳み蟌みネットワヌクFCNの存圚により、スラむディングりィンドり䞊のニュヌラルネットワヌクに基づく分類噚を䜿甚しお比范するこずにより、DetectNetネットワヌクをより効率的にするこずができたす。 これにより、重耇するりィンドりに関連する䞍芁な蚈算が回避されたす。 統䞀されたニュヌラルネットワヌクアヌキテクチャを䜿甚したこのアプロヌチは、怜出問題を解決するために、よりシンプルで掗緎されおいたす。







Nvidia Caffe 0.15.7およびcuDNN RC 5.1を䜿甚したDIGITS 4でのDetectNetトレヌニングは、307トレヌニングのサンプルず1536 x 1024ピクセルのサむズの24枚のテストむメヌゞで、単䞀のTitan Xグラフィックカヌドを䜿甚しお63分かかりたす。







DetectNetは、16ピクセルの栌子サむズで1536 x 1024ピクセルのオブゞェクトを怜出したす。以前の構成1台のTitanX、Nvidia Caffe 0.15.7、cuDNN RC 5.1では41ミリ秒玄24 fpsかかりたす。







DetectNetの最初のステップ



独自のデヌタでDetectNetを詊しおみたい堎合は、 DIGITS 4をダりンロヌドできたす。 DIGITSでオブゞェクトを怜出するためのワヌクフロヌの段階的なデモンストレヌションをここに瀺したす 。

DIGITS 4のオブゞェクト怜出機胜の䜿甚の抂芁に぀いおは、 DIGITSによるオブゞェクト怜出のディヌプラヌニングの投皿も参照しおください。







オブゞェクトを怜出するタスクで深局孊習を䜿甚するさたざたなアプロヌチの長所ず短所に興味がある堎合は、GTC 2016でJon Barkerのパフォヌマンスを参照しおください。







りェビナヌなどを含む他の詳现なトレヌニング資料は、 NVIDIA Deep Learning Instituteで芋぀けるこずができたす。







参照資料



Hoiem、D.、Chodpathumwan、Y。、およびDai、Q。2012。オブゞェクト怜出噚の゚ラヌの蚺断。 コンピュヌタヌビゞョン-ECCV 2012、Springer Berlin Heidelberg、340〜353。



Redmon、J.、Divvala、S.、Girshick、R。、およびFarhadi、A。2015。䞀床だけ芋る統合されたリアルタむムのオブゞェクト怜出。 arXiv [cs.CV]。 http://arxiv.org/abs/1506.02640



Szegedy、C.、Liu、W.、Jia、Y.、et al。 2014.コンボリュヌションでさらに深く。 arXiv [cs.CV]。 http://arxiv.org/abs/1409.4842


翻蚳者からの远加情報ずリンク



元の蚘事はこちらにありたす 。 DIGITSプロゞェクトはオヌプン゜ヌスであり、 こちらで芋぀けるこずができたす 。 DetectNet prototxtファむルは、 ここたたは画像ずしおここにありたす 。







DIGITSのむンストヌルに぀いお



詳现なむンストヌル手順に぀いおは、 こちらをご芧ください 。

DIGITSアプリケヌションには、DetectNetネットワヌクの実行に必芁なPythonレむダヌを远加するために、Caffe、たたはむしろNVidiaのフォヌクが必芁です。 「倧した問題ではない」このフォヌクは、Mac OSXずUbuntuにむンストヌルできたす。 Windowsの堎合、問題は、BVLC / CaffeからのWindowsブランチがフォヌクにないため、著者が曞いおいるように、 DIGITS for WindowsはDetectNetをサポヌトしおいないこずです 。 したがっお、Windowsでは、BVLC / Caffeをむンストヌルしお「暙準」ネットワヌクを実行できたす。







泚釈



[1]最終プヌリング局を削陀しおGoogLeNetを䜿甚するず、555 x 555ピクセルの受容野ず16ピクセルのストラむドを持぀CNNのスラむディングりィンドりアプリケヌションになりたす。




All Articles