Unverified Commit 3fb0494b authored by Xiaomeng Zhao's avatar Xiaomeng Zhao Committed by GitHub

Merge pull request #696 from icecraft/fix/caption_match

fix: caption|footnote match algorithm
parents 763688c0 f31433b8
......@@ -119,15 +119,13 @@ class MagicModel:
if left or right:
l1 = bbox1[3] - bbox1[1]
l2 = bbox2[3] - bbox2[1]
minL, maxL = min(l1, l2), max(l1, l2)
if (maxL - minL) / minL > 0.5:
return float('inf')
if bottom or top:
else:
l1 = bbox1[2] - bbox1[0]
l2 = bbox2[2] - bbox2[0]
minL, maxL = min(l1, l2), max(l1, l2)
if (maxL - minL) / minL > 0.5:
return float('inf')
if l2 > l1 and (l2 - l1) / l1 > 0.5:
return float('inf')
return bbox_distance(bbox1, bbox2)
def __fix_footnote(self):
......@@ -370,7 +368,7 @@ class MagicModel:
dis[j][i] = dis[i][j]
continue
dis[i][j] = self._bbox_distance(all_bboxes[i]['bbox'], all_bboxes[j]['bbox'])
dis[i][j] = self._bbox_distance(all_bboxes[subject_idx]['bbox'], all_bboxes[object_idx]['bbox'])
dis[j][i] = dis[i][j]
used = set()
......@@ -461,7 +459,7 @@ class MagicModel:
if is_nearest:
nx0, ny0, nx1, ny1 = expand_bbbox(list(seen) + [k])
n_dis = self._bbox_distance(
n_dis = bbox_distance(
all_bboxes[i]['bbox'], [nx0, ny0, nx1, ny1]
)
if float_gt(dis[i][j], n_dis):
......@@ -557,7 +555,7 @@ class MagicModel:
# 计算已经配对的 distance 距离
for i in subject_object_relation_map.keys():
for j in subject_object_relation_map[i]:
total_subject_object_dis += self._bbox_distance(
total_subject_object_dis += bbox_distance(
all_bboxes[i]['bbox'], all_bboxes[j]['bbox']
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment