{ "templateVersion": "DSE-OMR-v3.1-four-large-markers-only", "pageDimensions": [ 3093, 4374 ], "strictMarkerMode": true, "answerRegionBounds": { "left": 829, "top": 1598, "right": 2917, "bottom": 4170 }, "largeCornerMarkers": { "top_left": [ 720, 1410 ], "top_right": [ 3015, 1410 ], "bottom_left": [ 720, 4285 ], "bottom_right": [ 3015, 4285 ] }, "largeMarkerOuterSize": 144, "largeMarkerNestedLevels": 5, "detection": { "minNestedDepth": 3, "minQuadrilateralAreaRatio": 0.2, "minHorizontalSpanRatio": 0.48, "minVerticalSpanRatio": 0.48, "maxMarkerSizeCv": 0.42, "candidateSideScaleRange": [ 0.38, 2.5 ], "maxCandidatesPerCorner": 8, "topBottomWidthRatioRange": [ 0.48, 1.85 ], "leftRightHeightRatioRange": [ 0.48, 1.85 ], "diagonalRatioRange": [ 0.55, 1.8 ] }, "notes": [ "This variant keeps only the four 144 px five-layer large corner markers.", "All 16 small markers between five-question groups have been removed.", "V3.1 strict full-page detection remains the first stage.", "Local corner-ROI rescue remains available when phone or hand shadow degrades one or two large markers.", "Recovered points must still pass full four-point geometry validation.", "No local group-marker correction is performed or required in this project." ], "localRescue": { "enabled": true, "minimumGlobalCandidates": 2, "maxRescueCorners": 2, "roiHalfWidthRatio": 0.22, "roiHalfHeightRatio": 0.2, "templateMatchThreshold": 0.4, "templateMatchScales": [ 0.68, 0.78, 0.88, 0.98, 1.08, 1.18, 1.28 ], "templateMatchAngles": [ -10, 0, 10 ], "adaptiveBlockSize": 31, "adaptiveC": 7 } }