未验证 提交 5f3cd44f 编写于 作者: F Freya Chen 提交者: GitHub

Added validity check for polygon similarity computation related to issue #2851 (#2852)

* Added validity check for polygon similarity computation

* Updated changelog
上级 1be3194f
......@@ -63,6 +63,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed label editor name field validator (<https://github.com/openvinotoolkit/cvat/pull/2879>)
- An error about track shapes outside of the task frames during export (<https://github.com/openvinotoolkit/cvat/pull/2890>)
- Fixed project search field updating (<https://github.com/openvinotoolkit/cvat/pull/2901>)
- Fixed export error when invalid polygons are present in overlapping frames (<https://github.com/openvinotoolkit/cvat/pull/2852>)
### Security
......
......@@ -315,11 +315,14 @@ class ShapeManager(ObjectManager):
@staticmethod
def _calc_objects_similarity(obj0, obj1, start_frame, overlap):
def _calc_polygons_similarity(p0, p1):
overlap_area = p0.intersection(p1).area
if p0.area == 0 or p1.area == 0: # a line with many points
return 0
if p0.is_valid and p1.is_valid: # check validity of polygons
overlap_area = p0.intersection(p1).area
if p0.area == 0 or p1.area == 0: # a line with many points
return 0
else:
return overlap_area / (p0.area + p1.area - overlap_area)
else:
return overlap_area / (p0.area + p1.area - overlap_area)
return 0 # if there's invalid polygon, assume similarity is 0
has_same_type = obj0["type"] == obj1["type"]
has_same_label = obj0.get("label_id") == obj1.get("label_id")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册