-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
72 lines (54 loc) · 1.76 KB
/
Copy pathmain.py
File metadata and controls
72 lines (54 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
"""LuLing-OCR 命令行入口。
Usage:
python main.py train 训练模型
python main.py finetune 微调模型(强化数字+重复字符)
python main.py evaluate 评估模型
python main.py infer <image> 识别单张图片
python main.py export 导出 ONNX 模型
"""
import sys
import os
# 确保项目根目录在 path 中
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
def print_usage():
print(__doc__)
def main():
if len(sys.argv) < 2:
print_usage()
return
command = sys.argv[1]
if command == "train":
from src.train import train
train()
elif command == "finetune":
from src.train import finetune
# 支持可选参数:python main.py finetune [epochs] [lr]
kwargs = {}
if len(sys.argv) >= 3:
kwargs["epochs"] = int(sys.argv[2])
if len(sys.argv) >= 4:
kwargs["lr"] = float(sys.argv[3])
finetune(**kwargs)
elif command == "evaluate":
from src.evaluate import evaluate
evaluate()
elif command == "infer":
if len(sys.argv) < 3:
print("Usage: python main.py infer <image_path>")
return
image_path = sys.argv[2]
if not os.path.exists(image_path):
print(f"File not found: {image_path}")
return
from src.inference import OCREngine
engine = OCREngine()
result = engine.recognize(image_path)
print(f"Result: {result}")
elif command == "export":
from export.export_onnx import export_to_onnx
export_to_onnx()
else:
print(f"Unknown command: {command}")
print_usage()
if __name__ == "__main__":
main()