ljj commited on
Commit
1b0973e
·
0 Parent(s):

feat: init

Browse files
Files changed (7) hide show
  1. .gitattributes +50 -0
  2. .gitignore +36 -0
  3. README.md +35 -0
  4. best.ckpt +3 -0
  5. config.json +69 -0
  6. configuration.json +1 -0
  7. model.safetensors +3 -0
.gitattributes ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bin.* filter=lfs diff=lfs merge=lfs -text
5
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.model filter=lfs diff=lfs merge=lfs -text
12
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
13
+ *.onnx filter=lfs diff=lfs merge=lfs -text
14
+ *.ot filter=lfs diff=lfs merge=lfs -text
15
+ *.parquet filter=lfs diff=lfs merge=lfs -text
16
+ *.pb filter=lfs diff=lfs merge=lfs -text
17
+
18
+ *.pth filter=lfs diff=lfs merge=lfs -text
19
+ *.rar filter=lfs diff=lfs merge=lfs -text
20
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
21
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
22
+ *.tflite filter=lfs diff=lfs merge=lfs -text
23
+ *.tgz filter=lfs diff=lfs merge=lfs -text
24
+ *.xz filter=lfs diff=lfs merge=lfs -text
25
+ *.zip filter=lfs diff=lfs merge=lfs -text
26
+ *.zstandard filter=lfs diff=lfs merge=lfs -text
27
+ *.tfevents* filter=lfs diff=lfs merge=lfs -text
28
+ *.db* filter=lfs diff=lfs merge=lfs -text
29
+ *.ark* filter=lfs diff=lfs merge=lfs -text
30
+ **/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
31
+ **/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
32
+ **/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
33
+
34
+
35
+ *.gguf* filter=lfs diff=lfs merge=lfs -text
36
+ *.ggml filter=lfs diff=lfs merge=lfs -text
37
+ *.llamafile* filter=lfs diff=lfs merge=lfs -text
38
+ *.pt2 filter=lfs diff=lfs merge=lfs -text
39
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
40
+ *.npy filter=lfs diff=lfs merge=lfs -text
41
+ *.npz filter=lfs diff=lfs merge=lfs -text
42
+ *.pickle filter=lfs diff=lfs merge=lfs -text
43
+ *.pkl filter=lfs diff=lfs merge=lfs -text
44
+ *.tar filter=lfs diff=lfs merge=lfs -text
45
+ *.wasm filter=lfs diff=lfs merge=lfs -text
46
+ *.zst filter=lfs diff=lfs merge=lfs -text
47
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
48
+
49
+ best.ckpt filter=lfs diff=lfs merge=lfs -text
50
+ model.safetensors filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.py[oc]
4
+ *.pyc
5
+ *.pyo
6
+ *.pyd
7
+
8
+ # IDE
9
+ .vscode/
10
+ .idea/
11
+ *.swp
12
+ *.swo
13
+
14
+ # OS
15
+ .DS_Store
16
+ Thumbs.db
17
+ desktop.ini
18
+
19
+ # Training outputs
20
+ checkpoints/
21
+ output/
22
+ logs/
23
+ tb_logs/
24
+ wandb/
25
+ runs/
26
+
27
+ # Temporary files
28
+ *.tmp
29
+ *.temp
30
+
31
+ # Secrets
32
+ .env
33
+ *.env
34
+ secrets.json
35
+ credentials.json
36
+ api_keys.json
README.md ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ExamInk-Seg
2
+
3
+ 基于 PyTorch Lightning 的墨迹二值分割模型。输入 RGB 图像,输出 1 通道墨迹掩码。
4
+
5
+ ## 模型信息
6
+
7
+ - **架构**:U-Net++ (segmentation_models_pytorch) + ResNet50 编码器 (ImageNet 预训练)
8
+ - **任务**:手写/试卷墨迹二值分割
9
+ - **框架**:PyTorch Lightning
10
+ - **输入**:3 通道 RGB,按 ImageNet 均值/方差归一化
11
+ - **输出**:1 通道 logits 掩码;对 logits 取 sigmoid 得到概率
12
+
13
+ ## 训练概要
14
+
15
+ - **Loss**:0.8 * Dice (from logits) + 0.2 * BCEWithLogits (pos_weight=2.0)
16
+ - **指标**:IoU 与 F1(阈值 0.3 和 0.5)
17
+ - **训练裁剪**:1024,随机裁剪 / 有墨迹优先裁剪,水平翻转
18
+ - **优化器**:AdamW (lr 3e-5, weight_decay 1e-5)
19
+ - **学习率调度**:ReduceLROnPlateau,监控 val_iou_05(mode=max, factor=0.5, patience=2, min_lr=1e-7)
20
+
21
+ ## 文件
22
+
23
+ - `config.json`:模型结构与训练超参数
24
+ - `model.safetensors`:导出权重
25
+ - `best.ckpt`:PyTorch Lightning checkpoint
26
+
27
+ ## 推理说明
28
+
29
+ - 归一化:mean=(0.485, 0.456, 0.406),std=(0.229, 0.224, 0.225)
30
+ - 对 logits 取 `sigmoid` 得到二值掩码概率
31
+ - 验证/推理使用滑窗:tile=1024,stride=768,可选水平翻转 TTA
32
+
33
+ ## 许可证
34
+
35
+ MIT
best.ckpt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8621c86f398fa2d4c298ffce66a683c25ba367ba3ea4449a81c2cf138e5c6241
3
+ size 614284713
config.json ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "InkEraserModel"
4
+ ],
5
+ "model_type": "unet_plus_plus",
6
+ "encoder_name": "resnet50",
7
+ "encoder_weights": "imagenet",
8
+ "in_channels": 3,
9
+ "classes": 1,
10
+ "decoder_attention_type": "scse",
11
+ "activation": "sigmoid",
12
+ "framework": "pytorch-lightning",
13
+ "task": "binary-segmentation",
14
+ "input_normalization": {
15
+ "mean": [
16
+ 0.485,
17
+ 0.456,
18
+ 0.406
19
+ ],
20
+ "std": [
21
+ 0.229,
22
+ 0.224,
23
+ 0.225
24
+ ],
25
+ "max_pixel_value": 255.0
26
+ },
27
+ "training_config": {
28
+ "optimizer": "AdamW",
29
+ "lr": 3e-05,
30
+ "weight_decay": 1e-05,
31
+ "loss": {
32
+ "dice_weight": 0.8,
33
+ "bce_weight": 0.2,
34
+ "bce_pos_weight": 2.0,
35
+ "dice_from_logits": true
36
+ },
37
+ "metrics": [
38
+ "iou_03",
39
+ "iou_05",
40
+ "f1_03",
41
+ "f1_05"
42
+ ],
43
+ "scheduler": {
44
+ "name": "ReduceLROnPlateau",
45
+ "mode": "max",
46
+ "monitor": "val_iou_05",
47
+ "factor": 0.5,
48
+ "patience": 2,
49
+ "min_lr": 1e-07
50
+ },
51
+ "train": {
52
+ "batch_size": 6,
53
+ "crop_size": 1024,
54
+ "accumulate_grad_batches": 4,
55
+ "precision": "bf16-mixed",
56
+ "max_epochs": 200,
57
+ "min_epochs": 5
58
+ }
59
+ },
60
+ "inference": {
61
+ "sliding_window": {
62
+ "tile": 1024,
63
+ "stride": 768,
64
+ "tta_hflip": true
65
+ }
66
+ },
67
+ "description": "ExamInk-Seg 二值墨迹分割模型(U-Net++ + ResNet50 编码器)。",
68
+ "license": "MIT"
69
+ }
configuration.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"framework":"pytorch-lightning","task":"binary-segmentation"}
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f23fa08ab21b5acce191c29c3f96dced710ad36cd20a319ca4bdb79f9432c42f
3
+ size 204810588