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,找出最大值(好像!)