{"service": "road marking taper gate", "access": "POST needs the x-access-token header; the token is given with the competition submission", "opencv": "5.0.0", "post": {"image_base64": "JPEG or PNG, <= 3 MB encoded. red_line_gap and taper_table_4_2_7 need the camera's original resolution: at 2000 px on the long side both refuse (checked 2026-09-23 on F17/F30-32/F40). Re-save the full-size photo at JPEG 90 (about 2.2 MB, under this cap) and send it to the Function URL given with the submission: it has no 30 s limit and takes about 2.5 minutes. Through API Gateway (30 s) a full-size photo times out", "fov_deg": "horizontal field of view of the lens", "posted_kmh": "speed limit in force", "lane_width_m": "optional. Without it the width check is skipped and said to be skipped; a photograph has no scale"}, "returns": {"scenario": "what a road user meets here. Every clause either quotes a value measured in this frame or names inline the clause it is read under", "site_description_not_measured": "things that are true of this place and that this program did not measure - the drain covers under the red line, the bridge ahead. Kept apart from `scenario` so an unearned sentence has nowhere to sit", "findings": "the same thing itemised, each with its measurement, basis and state", "red_line_gap": "intact red line's inner edge to the worn line's centre, metres; the ruler is the line's own 10 cm width (§169). Reported only if at least 3 of 4 encodings of the bytes agree within 5 cm", "taper_table_4_2_7": "chevron taper ratio, set beside 表 4.2.7 (50 km/h 16:1) as a reference only: that table is written for lane shifts at turning lanes. Reported only if at least 3 of 4 encodings agree within 10%; one re-encode at quality 97 moved F40 from 11.9:1 to 23.2:1", "site_116_not_measured_from_this_photograph": "the 116 縣道 site's published figures, attached to every response, each with its results/ source. Not measured from the photograph sent", "state": "NOT_A_ROAD_PHOTOGRAPH when the road region is under 30% of the frame; then nothing was measured and every other key is empty except the site block, which is attached to every response"}, "finding_codes": {"TAPER_TOO_STEEP": "車道縮減漸變段過陡 (守則 p.9)", "TAPER_BELOW_TABLE_4_2_7": "槽化線漸變率低於表 4.2.7 該速率的比例(表 4.2.7 僅作參考)", "TWO_RED_LINES": "新舊兩條紅線,量到兩者距離 (§169 線寬當尺)", "NO_LANE_CHANGE": "雙白實線，禁止變換車道 (§167)", "EDGE_NOT_CARRIAGEWAY": "路緣紅線，可行駛路面至此為止 (§169)", "SURFACE_IN_PIECES": "行車道內有新舊鋪面銜接處 (挖掘審查原則)", "LANE_TOO_NARROW": "汽機車並行不足法定間隔 (§101)", "CENTRE_LINE_SOLID": "雙黃實線，分向限制線 (§165)。與 §167 不同:它禁止的是跨越對向"}, "not_needed": {"pitch": "the angle measured is invariant to camera rotation", "road_bearing": "the road's own markings give it", "scale": "a taper rate is dimensionless"}, "states": {"WITHIN_REFERENCE": "clear of the reference by more than the measurement's doubt", "STEEPER_THAN_REFERENCE": "past it by more than the doubt", "INDETERMINATE": "measured, but nearer the reference than this measurement can resolve", "CANNOT_MEASURE": "the photograph does not show what is needed"}}