從該blog開始,逐步介紹DPM + Latent SVM。關於OpenCV下DPM+Latent SVM簡單介紹參考上一篇博文:OpenCV Latent SVM Discriminatively Trained Part
Based Models for Object Detection
以Cat.xml(opencv安裝目錄下sample/c內)為例
<Model>
<!-- Number of components -->
<NumComponents>2</NumComponents>
<!-- Number of features -->
<P>31</P>
<!-- Score threshold -->
<ScoreThreshold>-1.0028649999999999</ScoreThreshold>
<Component>
<!-- Root filterdescription -->
<RootFilter>
<!-- Dimensions-->
<sizeX>5</sizeX>
<sizeY>9</sizeY>
<!-- Weights(binary representation) -->
<Weights>
...
</Weights>
<!-- Linear termin score function -->
<LinearTerm>-2.2535784347835031</LinearTerm>
</RootFilter>
<!-- Part filtersdescription -->
<PartFilters>
<NumPartFilters>6</NumPartFilters>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
</PartFilters>
</Component>
<Component>
<!-- Root filterdescription -->
<RootFilter>
<!-- Dimensions-->
<sizeX>5</sizeX>
<sizeY>9</sizeY>
<!-- Weights(binary representation) -->
<Weights>
...
</Weights>
<!-- Linear termin score function -->
<LinearTerm>-2.5835343890077622</LinearTerm>
</RootFilter>
<!--Part filters description -->
<PartFilters>
<NumPartFilters>6</NumPartFilters>
<!-- Part filter? description -->
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
<PartFilter>...</PartFilter>
</PartFilters>
</Component>
</Model>
PartFilter內部結構:
<PartFilter>
<sizeX>6</sizeX>
<sizeY>6</sizeY>
<!-- Weights (binary representation)-->
<Weights></Weights>
<!-- Part filter offset -->
<V>
<Vx>3</Vx>
<Vy>1</Vy>
</V>
<!-- Quadratic penalty functioncoefficients -->
<Penalty>
<dx>0.0004031731821276</dx>
<dy>-0.0003745111759062</dy>
<dxx>0.0100010270581015</dxx>
<dyy>0.0205820897831230</dyy>
</Penalty>
</PartFilter>
註:1.裡面的資料僅是為了說明,weight節點資料量太大,省略,PartFilter節點有點複雜,單列出來;
2.其中有些簡潔說明性文字,不是很全,PartFilter中Vx,Vy為HOG的位移。Penalty節點下的各項是為了計算deformation
model。