Overview
Step 1. Compute filter responses to the feature pyramid
Each level of features (e.g. 46) is convolved with every stored part filters (e.g. 54), the result subsequently goes to the corresponding filter entry in model.symbols struct. Therefore each model.symbols{i}.score is a 1x46 cell.
Step 2. Apply deformation and structural rule
Deformation rule is applied first to each part filter (e.g. 54). New scores are saved to corresponding model.rules{i}.score, together with Ix and Iy
Structual rule is applied at last.
In current model, the number of structural rules equal to the number of component.
They are aggregated into one rule which is indicated by model.start.
Dynamic Prgramming is implemented during the realisation of structural rules
Step 3. Parse resulting scores to find optimal solution (can be multiple hypotheses)
Some Implementation Details
symbols <---> rules: 1-to1 correspondence
symbols 只有兩種:terminal 和nonterminal
terminal symbol refers back to one entry in filters. In other words, terminal == filter
Run Time Variables
1. model.symbols{i}.score: 第i個filter對所有特徵金字塔的響應。e.g. 1x46 cell。在filter_responses中被初次計算
2. model.rules{i}.[score | Ix | Iy]:應用第i條規則後的新的score值,以及位置資訊。
3. model.scoretpt: TBD
function symbol_score
- 對Deformatable Rule,只是簡單的把新的score值放回symbols{i}.score中
- 對Structure Rule,找出最大值(好像!)