AI_ML_DL’s diary

人工知能、機械学習、ディープラーニングの日記

Kaggleに挑戦-8

Kaggleに挑戦-8

課題1:GitHubのexperiencor / image-to-3d-bboxのプログラムコードを理解すること

課題2:3D Bounding Box Estimation Using Deep Learning and Geometry, A. Mousavian et.al., arXiv:1612.00496v2 [cs.CV] 10 Apr 2017を理解すること

今日の課題

*入力データの前処理:昨日の調査で、Faster R-CNN等では、bounding boxは、直接形成するのではなく、ancor boxと称するいくつかの分割領域を形成する手法をとっており、それにヒントを得て、orientationの見積もりにMultiBinという手法を提案したとあったので、bounding boxの作り方につき、Faster R-CNNに学ぶ。

*損失関数の理解:損失関数についてもFaster R-CNNに学ぶ。

 

*bounding boxとは何か。

KITTIに関する情報を得ることにより、論文やプログラムコードの理解が進んだ。それならばということで、Faster R-CNNを理解するために、その評価に用いられているPASCAL VOCを調べてみた。コンペは2006年に始まり、2012年で終了している。

その後のR-CNN、Faster R-CNNの開発につながる、重要なコンペサイトだったようだが、その後、データー量が桁違いに多い、ILSVRCのようなコンペサイトがいくつか出てきて、その役割を終えたようだ。

PASCAL VOCの評価項目は最終的には以下のような5項目だった。

1.Classification:物体の分類

2.Detection : 物体検出:分類した物体の場所をbounding boxで示す。

3.Segmentation:分類した物体の場所をピクセル単位で示す。

4.Action Classification:bounding boxで示した物体の行動を特定する。

5.Person Layout:ヒトの手や足などの場所をboundhing boxで示す。

 

前処理のプログラムの最初に、def compute_anchors(angle)という関数が定義されている。このanchorが重要。

def compute_anchors(angle):
      anchors = [ ]
      wedge = 2.*np.pi/BIN
      l_index = int(angle/wedge)
      r_index = l_index + 1
      if (angle - l_index*wedge) < wedge/2 (1+OVERLAP/2):
      anchors.append([l_index, angle - l_index*wedge])
      if (r_index*wedge - angle) < wedge/2* (1+OVERLAP/2):
      anchors.append([r_index%BIN, angle - r_index*wedge])
return anchors

 

今日は、Ancorとか、BINとか、よくわからないことがあって、Faster R-CNNの論文の関連しているところを読んだりしていたのだが、理解できないことが多くて、文章にできなかった。

上に示したcompute_anchorsのコードの解読も殆ど進まなかった。

明日は、中断するけど、あさってから、また続けよう!

着実に、前に、進みたい。

  

f:id:AI_ML_DL:20191218075437j:plain

style 050

f:id:AI_ML_DL:20191218075522p:plain

DeepDream