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のコードの解読も殆ど進まなかった。
明日は、中断するけど、あさってから、また続けよう!
着実に、前に、進みたい。