一 计算Hypotheses
1. 提取椭圆仿射平面。
2. 用两种描述子来提取2幅图像中椭圆仿射平面的特征。
3. 根据两种特征欧氏距离最近的原则来寻找可能匹配的
4. 将一个椭圆平面及其邻域的另外两个椭圆平面组成triple。(另外两个椭圆平面取哪两个?随即取吗?如果两幅图都随机取下面仿射的时候岂不很麻烦?)
5. 根据第一个椭圆平面,找到它在另一幅图中可能匹配的椭圆平面。
6. 以triple为单位,将其中一幅图的triple中心仿射映射到另一幅图中可能匹配triple中,比较3个椭圆的形状,大小,及夹角。
7. 找到匹配的triple后,将其邻域中其他椭圆仿射平面通过贪婪算法加入到匹配区域中。每加入一个,根据最小二乘法重新估计匹配区域中心的仿射矩阵。直到所有可能匹配的椭圆的特征距离小于阈值。
8. 将包含少于6-8个椭圆的匹配区域去除。(说明不匹配)
9. 将重合部分大于一定程度的匹配区域合并。作为Hypotheses。
二 将Hypotheses转化为完全可以通过仿射变换描述的parts
求两组对应的,离椭圆中心最近的,完全满足仿射变换的点,根据这两组对应点集,来计算仿射变换矩阵和相应的坐标系,然后将其中两组椭圆集合映射到这个坐标系中,然后取平均(描述子,长短轴长度,长轴方向)作为一个parts
三 通过将上面求得的parts,来对一系列该物体的确认图像进行匹配(训练),来消除错误的hypotheses,从而消除错配。
将上面的parts通过仿射变换,变换到确认图像中,作为hypotheses。
然后检测每个确认图像中的每个hypotheses中所包含的区域个数。
将同类的hypotheses(在所有确认图像中)包含的所有椭圆形区域个数相加,然后根据这个值将parts排序(rank),舍弃排序靠后的parts。