Skip to content

Commit 438f093

Browse files
authored
修改 lanms 包安装的判定条件 (mindspore-lab#740)
* 修改 lanms 包安装的判定条件,同时满足以下两点才会安装 lanms包 (1)python 版本 <= 3.10 (2)系统为 linux * pylint 修改 * pylint 修改 * 增加真实测试用例 * 修改 pylint * 修改 测试文件路径为绝对路径 * 修改 测试文件路径为绝对路径 * 修改 测试文件路径为绝对路径
1 parent 5fd78b4 commit 438f093

File tree

7 files changed

+27
-18
lines changed

7 files changed

+27
-18
lines changed

Diff for: deploy/py_infer/src/data_process/postprocess/det_east_postprocess.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import os
2-
import platform
32
import sys
43

54
import cv2
@@ -14,10 +13,7 @@
1413
try:
1514
from lanms import merge_quadrangle_n9
1615
except ImportError:
17-
if platform.system() == "Windows":
18-
from mindocr.postprocess.nms_py.lanms_py import merge_quadrangle_n9
19-
else:
20-
raise ImportError("can not import lanms or lanms_win")
16+
from mindocr.postprocess.nms_py.lanms_py import merge_quadrangle_n9
2117

2218
__all__ = ["EASTPostprocess"]
2319

Diff for: deploy/py_infer/src/data_process/postprocess/det_sast_postprocess.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import os
2-
import platform
32
import sys
43
from typing import Tuple
54

@@ -14,10 +13,7 @@
1413
try:
1514
from lanms import merge_quadrangle_n9
1615
except ImportError:
17-
if platform.system() == "Windows":
18-
from mindocr.postprocess.nms_py.lanms_py import merge_quadrangle_n9
19-
else:
20-
raise ImportError("can not import lanms or lanms_win")
16+
from mindocr.postprocess.nms_py.lanms_py import merge_quadrangle_n9
2117

2218
__all__ = ["SASTPostprocess"]
2319

Diff for: mindocr/postprocess/det_east_postprocess.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import math
2-
import platform
32

43
import numpy as np
54

@@ -10,10 +9,7 @@
109
try:
1110
from lanms import merge_quadrangle_n9
1211
except ImportError:
13-
if platform.system() == "Windows":
14-
from .nms_py.lanms_py import merge_quadrangle_n9
15-
else:
16-
raise ImportError("can not import lanms or lanms_win")
12+
from .nms_py.lanms_py import merge_quadrangle_n9
1713

1814
__all__ = ["EASTPostprocess"]
1915

Diff for: requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ PyYAML>=6.0
1313
xml-python>=0.4.3
1414
packaging>=23.1
1515
Cython
16-
lanms>=1.0.2; sys_platform == 'linux'
16+
lanms>=1.0.2; python_version <= '3.10' and sys_platform == 'linux'
1717
sentencepiece>=0.1.99
1818
huggingface_hub>=0.16.4
1919
seqeval>=1.2.2

Diff for: tests/ut/lanms_test_jsons/test1.json

+1
Large diffs are not rendered by default.

Diff for: tests/ut/lanms_test_jsons/test2.json

+1
Large diffs are not rendered by default.

Diff for: tests/ut/test_lanms_py.py

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import json
2+
import os
3+
14
import numpy as np
25

36
from mindocr.postprocess.nms_py.lanms_py import calculate_iou, merge_quadrangle_n9, standard_nms, weighted_merge
@@ -6,6 +9,15 @@
69
box2 = np.array([8, 10, 8, 50, 30, 50, 30, 10, 0.7])
710
box3 = np.array([9, 10, 9, 60, 30, 60, 30, 10, 1.1])
811

12+
origin_boxes_test = []
13+
expect_processed_boxes_test = []
14+
lanms_test_jsons_path = os.path.join("tests/ut/lanms_test_jsons")
15+
for file in os.listdir(lanms_test_jsons_path):
16+
with open(os.path.join(lanms_test_jsons_path, file)) as f:
17+
data = json.loads(f.readline())
18+
origin_boxes_test.append(np.array(data["origin_boxes"]))
19+
expect_processed_boxes_test.append(sorted(np.array(data["processed_boxes"]), key=lambda x: x[0]))
20+
921

1022
class TestLanmsPy:
1123
def test_calculate_iou(self):
@@ -16,8 +28,15 @@ def test_weighted_merge(self):
1628
assert np.allclose(weighted_merge(box1, box2), expect_result, rtol=1e-2) is True
1729

1830
def test_standard_nms(self):
19-
assert np.allclose(standard_nms([box2, box3], 0.5), box3, 1e-5)
31+
assert np.allclose(standard_nms([box2, box3], 0.5), box3, 1e-5) is True
2032

2133
def test_lanms(self):
2234
expect_result = np.array([[8.611, 10, 8.611, 56.11, 30, 56.11, 30, 10, 1.8], [0, 0, 0, 20, 10, 20, 10, 0, 0.8]])
23-
assert np.allclose(merge_quadrangle_n9([box1, box2, box3]), expect_result, 1e-2)
35+
assert np.allclose(merge_quadrangle_n9([box1, box2, box3]), expect_result, 1e-2) is True
36+
37+
def test_real_situations(self):
38+
real_results = []
39+
for origin_box_test in origin_boxes_test:
40+
real_results.append(sorted(merge_quadrangle_n9(origin_box_test), key=lambda x: x[0]))
41+
for i, real_result in enumerate(real_results):
42+
assert np.allclose(real_result, expect_processed_boxes_test[i], 1e-2) is True

0 commit comments

Comments
 (0)