hermitkk commited on
Commit
046c24e
Β·
verified Β·
1 Parent(s): d762ba1

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +19 -16
README.md CHANGED
@@ -89,22 +89,6 @@ Synthetic checkbox crops generated from PDF answer-sheet templates using the scr
89
 
90
  ---
91
 
92
- ## Limitations & Known Issues
93
- ### Gray-ink misclassification
94
- The training dataset uses synthetic marks with pixel grayscale values in the 10–80 range, simulating dark pen strokes. During real-world testing, lightly-marked checkboxes (pixel values ~128–200, typical of light gray ink or faint pencil strokes) fall outside this distribution and are frequently misclassified as empty.
95
-
96
- An interim workaround β€” applying Otsu's binarization to normalize gray marks to black before inference β€” has been deployed in the Plom integration (plom/plom!3702), but this is a pre-processing patch rather than a model fix.
97
-
98
- ### Erased-mark ambiguity
99
- Erased marks and lightly-filled marks occupy the same grayscale range (~128–200). The model currently has no mechanism to distinguish between:
100
-
101
- A checkbox lightly filled with gray ink (should be filled)
102
- A checkbox that was marked and then erased (should be empty)
103
- This is an open problem: solving it likely requires either multi-threshold classification (e.g., a three-class filled / erased / empty output) or additional context such as smear patterns or residual graphite texture.
104
-
105
- ### Future Work
106
- Retrain on a wider grayscale range: Expand the synthetic data generation to include filled marks across the full 10–200 pixel intensity range to handle gray ink natively without Otsu pre-processing (tracked in plom/plom#4277).
107
- Erased mark handling: Investigate whether texture features or a three-class head (filled / erased / empty) can separate light fills from erasure residue.
108
 
109
  ## Inference
110
 
@@ -178,3 +162,22 @@ Six answer-sheet layouts are supported. Each variant has a corresponding templat
178
  Designed for automated grading pipelines that pre-crop answer-sheet checkboxes (after scan alignment and template matching) and need a fast, CPU-friendly classifier to decide filled vs. empty. Intended to run as part of the [plom-digit-recognition-server](https://gitlab.com/plom/plom).
179
 
180
  **Out of scope**: general object detection, handwriting recognition, forms with non-checkbox mark types.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
  ---
91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
 
93
  ## Inference
94
 
 
162
  Designed for automated grading pipelines that pre-crop answer-sheet checkboxes (after scan alignment and template matching) and need a fast, CPU-friendly classifier to decide filled vs. empty. Intended to run as part of the [plom-digit-recognition-server](https://gitlab.com/plom/plom).
163
 
164
  **Out of scope**: general object detection, handwriting recognition, forms with non-checkbox mark types.
165
+
166
+
167
+ ## Limitations & Known Issues
168
+ ### Gray-ink misclassification
169
+ The training dataset uses synthetic marks with pixel grayscale values in the 10–80 range, simulating dark pen strokes. During real-world testing, lightly-marked checkboxes (pixel values ~128–200, typical of light gray ink or faint pencil strokes) fall outside this distribution and are frequently misclassified as empty.
170
+
171
+ An interim workaround β€” applying Otsu's binarization to normalize gray marks to black before inference β€” has been deployed in the Plom integration (plom/plom!3702), but this is a pre-processing patch rather than a model fix.
172
+
173
+ ### Erased-mark ambiguity
174
+ Erased marks and lightly-filled marks occupy the same grayscale range (~128–200). The model currently has no mechanism to distinguish between:
175
+
176
+ A checkbox lightly filled with gray ink (should be filled)
177
+ A checkbox that was marked and then erased (should be empty)
178
+ This is an open problem: solving it likely requires either multi-threshold classification (e.g., a three-class filled / erased / empty output) or additional context such as smear patterns or residual graphite texture.
179
+
180
+ ### Future Work
181
+ Retrain on a wider grayscale range: Expand the synthetic data generation to include filled marks across the full 10–200 pixel intensity range to handle gray ink natively without Otsu pre-processing (tracked in plom/plom#4277).
182
+ Erased mark handling: Investigate whether texture features or a three-class head (filled / erased / empty) can separate light fills from erasure residue.
183
+