diff --git a/STEP_RECORD.md b/STEP_RECORD.md index 6fadaba..d9d3bcf 100644 --- a/STEP_RECORD.md +++ b/STEP_RECORD.md @@ -12,7 +12,7 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` 当前页面版本体系: -- `HTML: compare-r15-20260401-1705` +- `HTML: compare-r16-20260401-1734` 当前页面支持 2 个 profile,但仍是同一张 HTML: @@ -41,6 +41,9 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` - HTML / Style / PBF 三层版本可见 - 页面现在还支持 URL 相机参数,便于同一张页面切到热点区做自动截图: - `?profile=karatsu20¢er=130.335,33.6385&zoom=12.2` +- 页面现在还支持纯地图审计模式: + - `?profile=karatsu20&audit=1¢er=130.335,33.6385&zoom=12.2` + - 会隐藏 pane tag / inspect panel / status / 地图控件,避免截图被页面 UI 污染 ## Current Truth @@ -228,6 +231,12 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` - `20nm` backend 仍不适合当严格对象级审计 - 博多港 AOI 现在也已经纳入固定截图审计 - `r10` 的设施文字层试验让热点差异变大,已回退;当前线上保留 `r11` +- `r12` 开始改用 `audit=1` 纯地图截图: + - overall changed ratio: `0.604496` + - `hakata_central_passage_marks`: `0.822115` + - `hakata_route_outline_facility`: `0.741461` + - `hakata_inner_harbor_facilities`: `0.697737` +- 这说明此前 `r9/r11` 的 `0.80` 级别差异里,有相当一部分是页面 UI 噪音,不是地图本体差异 - 当前正式审计顺序已经明确为: - 先 `object preservation audit` - 再 `render audit` diff --git a/report/strict_audit_20nm_hakata_r12/strict_audit_summary.json b/report/strict_audit_20nm_hakata_r12/strict_audit_summary.json new file mode 100644 index 0000000..f9917b0 --- /dev/null +++ b/report/strict_audit_20nm_hakata_r12/strict_audit_summary.json @@ -0,0 +1,325 @@ +{ + "compare_url": "http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=karatsu20&audit=1¢er=130.335,33.6385&zoom=12.2", + "compare_version": "compare-r16-20260401-1734", + "backend_audit_json": "/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_20nm_2026-03-31.r7.json", + "visual_metrics": { + "image_width": 640, + "image_height": 400, + "total_pixels": 256000, + "changed_pixels": 154751, + "changed_ratio": 0.604496, + "mean_abs_rgb": [ + 22.2124, + 22.2692, + 28.3782 + ], + "rms_rgb": [ + 47.361, + 45.344, + 50.87 + ], + "diff_bbox": [ + 0, + 0, + 640, + 400 + ], + "full_crop_left": [ + 0, + 150, + 640, + 550 + ], + "full_crop_right": [ + 640, + 150, + 1280, + 550 + ], + "hotspots": [ + { + "image_width": 256, + "image_height": 104, + "total_pixels": 26624, + "changed_pixels": 21888, + "changed_ratio": 0.822115, + "mean_abs_rgb": [ + 23.1315, + 24.5684, + 31.9945 + ], + "rms_rgb": [ + 35.546, + 39.042, + 48.0697 + ], + "diff_bbox": [ + 0, + 0, + 256, + 104 + ], + "id": "hakata_central_passage_marks", + "label": "博多港中央航路灯标区", + "notes": "校验 31135x 灯标、红绿小灯和航路文字是否仍然可见。", + "backend_focus": [ + "p航路標識群", + "navigation_marks", + "display_code" + ], + "pane_box_norm": [ + 0.02, + 0.1, + 0.42, + 0.36 + ], + "pane_box_pixels": [ + 13, + 40, + 269, + 144 + ], + "left_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_central_passage_marks_left.png", + "right_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_central_passage_marks_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_central_passage_marks_diff.png" + }, + { + "image_width": 269, + "image_height": 128, + "total_pixels": 34432, + "changed_pixels": 25530, + "changed_ratio": 0.741461, + "mean_abs_rgb": [ + 20.8115, + 23.0896, + 36.146 + ], + "rms_rgb": [ + 33.8787, + 37.7114, + 52.8807 + ], + "diff_bbox": [ + 0, + 0, + 269, + 128 + ], + "id": "hakata_route_outline_facility", + "label": "博多港航路边界与设施点区", + "notes": "校验紫色航路虚线是否存在,以及 class 505/520/530/550 设施点是否不再被画成通用图标。", + "backend_focus": [ + "P航路ククリ", + "p施設・境界線等", + "route_outline", + "facility_boundary_point" + ], + "pane_box_norm": [ + 0.2, + 0.2, + 0.62, + 0.52 + ], + "pane_box_pixels": [ + 128, + 80, + 397, + 208 + ], + "left_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_route_outline_facility_left.png", + "right_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_route_outline_facility_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_route_outline_facility_diff.png" + }, + { + "image_width": 243, + "image_height": 160, + "total_pixels": 38880, + "changed_pixels": 27128, + "changed_ratio": 0.697737, + "mean_abs_rgb": [ + 24.8118, + 27.3435, + 36.5061 + ], + "rms_rgb": [ + 39.8053, + 44.6497, + 56.216 + ], + "diff_bbox": [ + 0, + 0, + 243, + 160 + ], + "id": "hakata_inner_harbor_facilities", + "label": "博多港内港设施区", + "notes": "校验港湾、渔港、海之驿、码头设施点是否保留细分类图标。", + "backend_focus": [ + "p施設・境界線等", + "facility_boundary_point", + "class_code" + ], + "pane_box_norm": [ + 0.48, + 0.36, + 0.86, + 0.76 + ], + "pane_box_pixels": [ + 307, + 144, + 550, + 304 + ], + "left_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_inner_harbor_facilities_left.png", + "right_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_inner_harbor_facilities_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r12/hotspots/hakata_inner_harbor_facilities_diff.png" + } + ] + }, + "backend_summary": { + "original_feature_instances": 258317, + "engineering_feature_instances": 258317, + "result_count": 516634, + "status_counts": { + "extra_in_engineering": 258317, + "missing_in_engineering": 258317 + }, + "top_annotation_issues": [ + { + "issue": "extra_text_in_engineering", + "source_layer": "bathymetry_line", + "count": 24168 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "L海底地形", + "count": 24168 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "depth_contour", + "count": 11929 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "L等深線", + "count": 11929 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "seabed_text_point", + "count": 4499 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p底質", + "count": 4499 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "navigation_marks", + "count": 1516 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p航路標識群", + "count": 1516 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p地名", + "count": 1444 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "place_label_sea", + "count": 1444 + } + ], + "top_style_semantic_issues": [ + { + "issue": "depth_numeric_missing", + "source_layer": "L海底地形", + "count": 24168 + }, + { + "issue": "depth_numeric_missing", + "source_layer": "L等深線", + "count": 11929 + }, + { + "issue": "safety_icon_missing", + "source_layer": "p航路標識群", + "count": 1885 + }, + { + "issue": "depth_numeric_missing", + "source_layer": "L概略等深線", + "count": 350 + }, + { + "issue": "clearance_numeric_missing", + "source_layer": "p高さ制限", + "count": 33 + } + ], + "top_source_layer_issues": [ + { + "status": "extra_in_engineering", + "source_layer": "baseline_outline", + "count": 87709 + }, + { + "status": "missing_in_engineering", + "source_layer": "P基本線ククリ", + "count": 87709 + }, + { + "status": "extra_in_engineering", + "source_layer": "baseline_area", + "count": 50421 + }, + { + "status": "missing_in_engineering", + "source_layer": "P基本線", + "count": 50421 + }, + { + "status": "extra_in_engineering", + "source_layer": "depth_contour", + "count": 36460 + }, + { + "status": "missing_in_engineering", + "source_layer": "L等深線", + "count": 36460 + }, + { + "status": "extra_in_engineering", + "source_layer": "bathymetry_line", + "count": 35940 + }, + { + "status": "missing_in_engineering", + "source_layer": "L海底地形", + "count": 35940 + }, + { + "status": "extra_in_engineering", + "source_layer": "onshore_structure_line", + "count": 10544 + }, + { + "status": "missing_in_engineering", + "source_layer": "L陸上構造物陸", + "count": 10544 + } + ] + }, + "notes": [ + "Visual metrics are browser-rendered screenshot diff metrics from the fixed compare page.", + "Backend metrics are current render-audit summary metrics and may remain blind to sprite-load failures." + ] +} \ No newline at end of file diff --git a/report/strict_audit_20nm_hakata_r12/strict_audit_summary.md b/report/strict_audit_20nm_hakata_r12/strict_audit_summary.md new file mode 100644 index 0000000..fb5fcd1 --- /dev/null +++ b/report/strict_audit_20nm_hakata_r12/strict_audit_summary.md @@ -0,0 +1,104 @@ +# NavSea Strict Audit Summary + +## Scope + +- Compare page: `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=karatsu20&audit=1¢er=130.335,33.6385&zoom=12.2` +- Compare version: `compare-r16-20260401-1734` +- Backend render audit: `/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_20nm_2026-03-31.r7.json` + +## Visual Audit + +- changed pixels: `154751` / `256000` +- changed ratio: `0.604496` +- mean abs rgb: `[22.2124, 22.2692, 28.3782]` +- rms rgb: `[47.361, 45.344, 50.87]` +- left crop: `[0, 150, 640, 550]` +- right crop: `[640, 150, 1280, 550]` + +Artifacts: + +- `report/strict_audit_20nm_hakata_r12/compare_full.png` +- `report/strict_audit_20nm_hakata_r12/compare_left.png` +- `report/strict_audit_20nm_hakata_r12/compare_right.png` +- `report/strict_audit_20nm_hakata_r12/compare_diff.png` + +## Hotspot AOI Audit + +### 博多港中央航路灯标区 + +- id: `hakata_central_passage_marks` +- notes: `校验 31135x 灯标、红绿小灯和航路文字是否仍然可见。` +- backend focus: `['p航路標識群', 'navigation_marks', 'display_code']` +- changed pixels: `21888` / `26624` +- changed ratio: `0.822115` +- mean abs rgb: `[23.1315, 24.5684, 31.9945]` +- pane box norm: `[0.02, 0.1, 0.42, 0.36]` +- pane box pixels: `[13, 40, 269, 144]` +- left image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_central_passage_marks_left.png` +- right image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_central_passage_marks_right.png` +- diff image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_central_passage_marks_diff.png` + +### 博多港航路边界与设施点区 + +- id: `hakata_route_outline_facility` +- notes: `校验紫色航路虚线是否存在,以及 class 505/520/530/550 设施点是否不再被画成通用图标。` +- backend focus: `['P航路ククリ', 'p施設・境界線等', 'route_outline', 'facility_boundary_point']` +- changed pixels: `25530` / `34432` +- changed ratio: `0.741461` +- mean abs rgb: `[20.8115, 23.0896, 36.146]` +- pane box norm: `[0.2, 0.2, 0.62, 0.52]` +- pane box pixels: `[128, 80, 397, 208]` +- left image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_route_outline_facility_left.png` +- right image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_route_outline_facility_right.png` +- diff image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_route_outline_facility_diff.png` + +### 博多港内港设施区 + +- id: `hakata_inner_harbor_facilities` +- notes: `校验港湾、渔港、海之驿、码头设施点是否保留细分类图标。` +- backend focus: `['p施設・境界線等', 'facility_boundary_point', 'class_code']` +- changed pixels: `27128` / `38880` +- changed ratio: `0.697737` +- mean abs rgb: `[24.8118, 27.3435, 36.5061]` +- pane box norm: `[0.48, 0.36, 0.86, 0.76]` +- pane box pixels: `[307, 144, 550, 304]` +- left image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_inner_harbor_facilities_left.png` +- right image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_inner_harbor_facilities_right.png` +- diff image: `report/strict_audit_20nm_hakata_r12/hotspots/hakata_inner_harbor_facilities_diff.png` + +## Backend Render Audit + +- original feature instances: `258317` +- delivery feature instances: `258317` +- result count: `516634` + +Status counts: + +- `extra_in_engineering`: `258317` +- `missing_in_engineering`: `258317` + +Top annotation issues: + +- `extra_text_in_engineering` | `bathymetry_line` | `24168` +- `text_missing_in_engineering` | `L海底地形` | `24168` +- `extra_text_in_engineering` | `depth_contour` | `11929` +- `text_missing_in_engineering` | `L等深線` | `11929` +- `extra_text_in_engineering` | `seabed_text_point` | `4499` +- `text_missing_in_engineering` | `p底質` | `4499` +- `extra_text_in_engineering` | `navigation_marks` | `1516` +- `text_missing_in_engineering` | `p航路標識群` | `1516` +- `text_missing_in_engineering` | `p地名` | `1444` +- `extra_text_in_engineering` | `place_label_sea` | `1444` + +Top style semantic issues: + +- `depth_numeric_missing` | `L海底地形` | `24168` +- `depth_numeric_missing` | `L等深線` | `11929` +- `safety_icon_missing` | `p航路標識群` | `1885` +- `depth_numeric_missing` | `L概略等深線` | `350` +- `clearance_numeric_missing` | `p高さ制限` | `33` + +## Interpretation + +- This report intentionally puts browser-rendered visual output and backend render-audit summary in one place. +- If the browser screenshot improves but backend counts do not, the current backend audit is likely blind to a browser/runtime issue such as sprite resolution. diff --git a/src/pbf/navsea-compare-karatsu-20nm.html b/src/pbf/navsea-compare-karatsu-20nm.html index 307ef2c..74eb15c 100644 --- a/src/pbf/navsea-compare-karatsu-20nm.html +++ b/src/pbf/navsea-compare-karatsu-20nm.html @@ -221,6 +221,15 @@ text-overflow: ellipsis; } + body.audit-mode .pane-tag, + body.audit-mode .inspect-panel, + body.audit-mode .status, + body.audit-mode .maplibregl-ctrl-top-right, + body.audit-mode .maplibregl-ctrl-bottom-right, + body.audit-mode .maplibregl-ctrl-bottom-left { + display: none !important; + } + @media (max-width: 980px) { .layout { grid-template-columns: 1fr; @@ -314,7 +323,7 @@