Add pilot small-scope image audit method
@@ -116,6 +116,7 @@ For the current 20nm visual baseline, prefer:
|
||||
|
||||
- [`navsea_strict_audit.py`](/root/sourceserver/pbf/navsea_strict_audit.py)
|
||||
- [`strict_audit_hotspots_20nm.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm.json)
|
||||
- [`strict_audit_hotspots_20nm_pilot.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json)
|
||||
- visual review page:
|
||||
- `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html`
|
||||
|
||||
@@ -125,6 +126,13 @@ Even when 10nm delivery is rebuilt and audited:
|
||||
- use `10nm` as the object-level backend audit reference only
|
||||
- do not silently switch the user's visual review baseline away from `20nm compare`
|
||||
|
||||
For small-scope image audit experiments:
|
||||
|
||||
- keep the style under test fixed to:
|
||||
- [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
|
||||
- prefer the 3-hotspot pilot config first
|
||||
- use full hotspot coverage only when pilot hotspots are no longer enough
|
||||
|
||||
This script combines:
|
||||
|
||||
- browser-rendered screenshot diff from the fixed compare page
|
||||
|
||||
155
NavSea_20nm_Small_Scope_Audit_Method.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# NavSea 20nm Small Scope Audit Method
|
||||
|
||||
## Goal
|
||||
|
||||
用小范围图像对比去服务两件事:
|
||||
|
||||
- 整理出当前继续收敛的唯一 `style.json`
|
||||
- 建立一套比“只看后台数字”更可信的审计方法
|
||||
|
||||
这份方法不追求一次解释全部问题,只服务当前固定视觉基线:
|
||||
|
||||
- compare page:
|
||||
- `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html`
|
||||
|
||||
## Current Style Under Test
|
||||
|
||||
当前继续整理、继续改的唯一 style 文件是:
|
||||
|
||||
- repo source:
|
||||
- [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
|
||||
- deployed copy:
|
||||
- `/mnt/sda1/www/newpec/domain/style.navsea-delivery-karatsu-10nm.json`
|
||||
|
||||
说明:
|
||||
|
||||
- 虽然文件名里仍写着 `10nm`
|
||||
- 但当前 `20nm compare` 右侧实际就是用这份 style
|
||||
- 所以后续视觉复原应继续收敛这一个文件
|
||||
- 不再新增新的 delivery style 主文件,除非明确要分叉方案
|
||||
|
||||
## Why Small Scope
|
||||
|
||||
整屏图像 diff 太粗,只能说明“还是不一样”。
|
||||
|
||||
当前更有效的方法是:
|
||||
|
||||
- 只盯 3 个代表性热点
|
||||
- 每个热点绑定一类 backend 容易误判的问题
|
||||
- 用小范围截图 + 点击拾取 + backend issue family 一起判断
|
||||
|
||||
这样做的目的不是追求一个漂亮的整屏 diff 数字,而是:
|
||||
|
||||
- 让 style 修改有明确观察点
|
||||
- 让 backend audit 的问题项能和肉眼问题真正对应上
|
||||
|
||||
## Pilot Hotspots
|
||||
|
||||
当前试验版热点配置文件:
|
||||
|
||||
- [`strict_audit_hotspots_20nm_pilot.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json)
|
||||
|
||||
这 3 个热点分别代表:
|
||||
|
||||
1. `takashima_main_harbor_marks`
|
||||
- 看灯塔、小灯、红绿标识、近岸航标
|
||||
- 对应 backend:
|
||||
- `p航路標識群`
|
||||
- `safety_icon_missing`
|
||||
- `text_missing_in_engineering`
|
||||
|
||||
2. `takashima_inner_nearshore_hazards`
|
||||
- 看鱼礁、碍航点、近岸混合符号
|
||||
- 对应 backend:
|
||||
- `p投錨注意障害物`
|
||||
- `p航行危険障害物`
|
||||
- `p航路標識群`
|
||||
|
||||
3. `east_breakwater_marks`
|
||||
- 看远一点的防波堤灯台、港口标记
|
||||
- 对应 backend:
|
||||
- `p航路標識群`
|
||||
- `safety_icon_missing`
|
||||
|
||||
## Pilot Run
|
||||
|
||||
当前试验版报告:
|
||||
|
||||
- [`report/strict_audit_pilot/strict_audit_summary.md`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.md)
|
||||
- [`report/strict_audit_pilot/strict_audit_summary.json`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.json)
|
||||
|
||||
热点截图目录:
|
||||
|
||||
- [`report/strict_audit_pilot/hotspots`](/root/sourceserver/pbf/report/strict_audit_pilot/hotspots)
|
||||
|
||||
本轮试验结果:
|
||||
|
||||
- `takashima_main_harbor_marks`
|
||||
- changed ratio: `0.783759`
|
||||
- `takashima_inner_nearshore_hazards`
|
||||
- changed ratio: `0.744246`
|
||||
- `east_breakwater_marks`
|
||||
- changed ratio: `0.617833`
|
||||
|
||||
当前解读:
|
||||
|
||||
- 这 3 个热点都足够敏感,能稳定反映当前 style 还没有复原到位
|
||||
- 其中主港航标区最适合做第一优先级视觉回归观察点
|
||||
- 东侧防波堤区差异最小,适合做“有没有被新改动误伤”的回归点
|
||||
|
||||
## Trustworthy Audit Method
|
||||
|
||||
当前建议的可信审计方法是四件事一起用:
|
||||
|
||||
1. 固定视觉页面
|
||||
- 只看 `20nm compare`
|
||||
|
||||
2. 小范围 AOI 图像审计
|
||||
- 只跑固定热点,不看整屏大 diff 做结论
|
||||
|
||||
3. 点击拾取
|
||||
- 在 compare 页里点具体对象
|
||||
- 看右侧实际命中的 `source`、`source-layer`、`render layer` 和属性
|
||||
|
||||
4. 对象级 backend audit
|
||||
- 用 `10nm rerun` 那套可回对口径
|
||||
- 主要检查:
|
||||
- `missing`
|
||||
- `extra`
|
||||
- `mismatch`
|
||||
|
||||
## Decision Rule
|
||||
|
||||
以后判断一次 style 修改是否可信,按这个顺序:
|
||||
|
||||
1. 修改 [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
|
||||
2. 部署到 `/mnt/sda1/www/newpec/domain/style.navsea-delivery-karatsu-10nm.json`
|
||||
3. 用固定页面肉眼看 3 个 pilot hotspots
|
||||
4. 跑一次:
|
||||
|
||||
```bash
|
||||
python3 navsea_strict_audit.py \
|
||||
--hotspots-json /root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json \
|
||||
--output-dir /root/sourceserver/pbf/report/strict_audit_pilot
|
||||
```
|
||||
|
||||
5. 对热点里仍然不对的对象做点击拾取
|
||||
6. 再决定问题属于:
|
||||
- style 表达式问题
|
||||
- sprite / runtime 问题
|
||||
- delivery PBF 语义字段不足,需要回 builder
|
||||
|
||||
## Current Conclusion
|
||||
|
||||
当前已经可以固定下来的东西是:
|
||||
|
||||
- 视觉基线:
|
||||
- `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html`
|
||||
- style source of truth:
|
||||
- [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
|
||||
- 小范围试验审计:
|
||||
- [`strict_audit_hotspots_20nm_pilot.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json)
|
||||
- 可信方法:
|
||||
- `20nm compare 肉眼审图 + 小范围 AOI 图像对比 + 点击拾取 + 10nm 对象级 backend audit`
|
||||
|
||||
这套方法比“只看 20nm backend 总数”更可信,也比“只看整屏图像 diff”更可操作。
|
||||
@@ -887,6 +887,71 @@ Style 语义专项里仍最重要的是:
|
||||
- 严格对象级 render audit
|
||||
- 检查 `missing / extra / mismatch`
|
||||
|
||||
## Small Scope Image Audit Pilot
|
||||
|
||||
本轮已把“小范围图像对比测试”正式跑通,目的有两个:
|
||||
|
||||
- 整理出当前继续收敛的唯一 `style.json`
|
||||
- 建立一个更可信的视觉审计方法
|
||||
|
||||
当前固定的 style source of truth:
|
||||
|
||||
- [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
|
||||
|
||||
虽然名字里仍是 `10nm`,但当前 `20nm compare` 右侧实际就是用它,因此:
|
||||
|
||||
- 后续继续收敛这一个 delivery style 文件
|
||||
- 不再新增新的主 delivery style 文件来分散口径
|
||||
|
||||
本轮新增的小范围热点配置:
|
||||
|
||||
- [`strict_audit_hotspots_20nm_pilot.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json)
|
||||
|
||||
它只保留 3 个最代表当前问题的热点:
|
||||
|
||||
1. `takashima_main_harbor_marks`
|
||||
2. `takashima_inner_nearshore_hazards`
|
||||
3. `east_breakwater_marks`
|
||||
|
||||
试验版输出:
|
||||
|
||||
- [`report/strict_audit_pilot/strict_audit_summary.md`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.md)
|
||||
- [`report/strict_audit_pilot/strict_audit_summary.json`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.json)
|
||||
- [`report/strict_audit_pilot/hotspots`](/root/sourceserver/pbf/report/strict_audit_pilot/hotspots)
|
||||
|
||||
本轮 pilot 结果:
|
||||
|
||||
- `takashima_main_harbor_marks`
|
||||
- changed ratio: `0.783759`
|
||||
- `takashima_inner_nearshore_hazards`
|
||||
- changed ratio: `0.744246`
|
||||
- `east_breakwater_marks`
|
||||
- changed ratio: `0.617833`
|
||||
|
||||
当前判断:
|
||||
|
||||
- 这 3 个热点足够小,也足够稳定
|
||||
- 它们比整屏 diff 更适合指导 style 迭代
|
||||
- 其中:
|
||||
- `takashima_main_harbor_marks` 适合作为第一主观察点
|
||||
- `east_breakwater_marks` 适合作为回归保护点
|
||||
|
||||
本轮也补了一份方法文档:
|
||||
|
||||
- [`NavSea_20nm_Small_Scope_Audit_Method.md`](/root/sourceserver/pbf/NavSea_20nm_Small_Scope_Audit_Method.md)
|
||||
|
||||
当前认可的“可信审计方法”是:
|
||||
|
||||
- `20nm compare` 肉眼审图
|
||||
- 小范围 AOI 图像对比
|
||||
- compare 页点击拾取
|
||||
- `10nm rerun` 对象级 backend audit
|
||||
|
||||
而不是:
|
||||
|
||||
- 只看整屏图像 diff
|
||||
- 或只看 `20nm` backend 总量数字
|
||||
|
||||
## Quick Resume Prompt
|
||||
|
||||
下次开机如果要快速接上,可以先看这份文件,再按下面这句继续:
|
||||
|
||||
BIN
report/strict_audit_pilot/compare_diff.png
Normal file
|
After Width: | Height: | Size: 241 KiB |
BIN
report/strict_audit_pilot/compare_full.png
Normal file
|
After Width: | Height: | Size: 533 KiB |
BIN
report/strict_audit_pilot/compare_left.png
Normal file
|
After Width: | Height: | Size: 270 KiB |
BIN
report/strict_audit_pilot/compare_right.png
Normal file
|
After Width: | Height: | Size: 191 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 24 KiB |
323
report/strict_audit_pilot/strict_audit_summary.json
Normal file
@@ -0,0 +1,323 @@
|
||||
{
|
||||
"compare_url": "http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html",
|
||||
"compare_version": "20nm-r7-20260331-2044",
|
||||
"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": 230361,
|
||||
"changed_ratio": 0.899848,
|
||||
"mean_abs_rgb": [
|
||||
27.394,
|
||||
28.0012,
|
||||
51.399
|
||||
],
|
||||
"rms_rgb": [
|
||||
42.1614,
|
||||
40.8117,
|
||||
66.9404
|
||||
],
|
||||
"diff_bbox": [
|
||||
0,
|
||||
0,
|
||||
640,
|
||||
400
|
||||
],
|
||||
"full_crop_left": [
|
||||
0,
|
||||
150,
|
||||
640,
|
||||
550
|
||||
],
|
||||
"full_crop_right": [
|
||||
640,
|
||||
150,
|
||||
1280,
|
||||
550
|
||||
],
|
||||
"hotspots": [
|
||||
{
|
||||
"image_width": 147,
|
||||
"image_height": 80,
|
||||
"total_pixels": 11760,
|
||||
"changed_pixels": 9217,
|
||||
"changed_ratio": 0.783759,
|
||||
"mean_abs_rgb": [
|
||||
25.8832,
|
||||
26.3819,
|
||||
35.8165
|
||||
],
|
||||
"rms_rgb": [
|
||||
40.7513,
|
||||
43.6982,
|
||||
55.4931
|
||||
],
|
||||
"diff_bbox": [
|
||||
0,
|
||||
0,
|
||||
147,
|
||||
80
|
||||
],
|
||||
"id": "takashima_main_harbor_marks",
|
||||
"label": "高岛主港航标区",
|
||||
"notes": "主港口灯塔、红绿标识、近岸障碍标记。优先验证灯塔、小灯、红绿标识是否真正恢复。",
|
||||
"backend_focus": [
|
||||
"p航路標識群",
|
||||
"safety_icon_missing",
|
||||
"text_missing_in_engineering"
|
||||
],
|
||||
"pane_box_norm": [
|
||||
0.34,
|
||||
0.05,
|
||||
0.57,
|
||||
0.25
|
||||
],
|
||||
"pane_box_pixels": [
|
||||
218,
|
||||
20,
|
||||
365,
|
||||
100
|
||||
],
|
||||
"left_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_main_harbor_marks_left.png",
|
||||
"right_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_main_harbor_marks_right.png",
|
||||
"diff_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_main_harbor_marks_diff.png"
|
||||
},
|
||||
{
|
||||
"image_width": 115,
|
||||
"image_height": 68,
|
||||
"total_pixels": 7820,
|
||||
"changed_pixels": 5820,
|
||||
"changed_ratio": 0.744246,
|
||||
"mean_abs_rgb": [
|
||||
26.0925,
|
||||
28.3926,
|
||||
32.3252
|
||||
],
|
||||
"rms_rgb": [
|
||||
40.8552,
|
||||
45.3891,
|
||||
51.1523
|
||||
],
|
||||
"diff_bbox": [
|
||||
0,
|
||||
0,
|
||||
115,
|
||||
68
|
||||
],
|
||||
"id": "takashima_inner_nearshore_hazards",
|
||||
"label": "高岛近岸碍航与鱼礁区",
|
||||
"notes": "近岸鱼礁、碍航点、灯塔与小灯混合区。优先验证鱼礁和碍航物是否还在。",
|
||||
"backend_focus": [
|
||||
"p投錨注意障害物",
|
||||
"p航行危険障害物",
|
||||
"p航路標識群"
|
||||
],
|
||||
"pane_box_norm": [
|
||||
0.44,
|
||||
0.14,
|
||||
0.62,
|
||||
0.31
|
||||
],
|
||||
"pane_box_pixels": [
|
||||
282,
|
||||
56,
|
||||
397,
|
||||
124
|
||||
],
|
||||
"left_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_inner_nearshore_hazards_left.png",
|
||||
"right_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_inner_nearshore_hazards_right.png",
|
||||
"diff_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_inner_nearshore_hazards_diff.png"
|
||||
},
|
||||
{
|
||||
"image_width": 109,
|
||||
"image_height": 64,
|
||||
"total_pixels": 6976,
|
||||
"changed_pixels": 4310,
|
||||
"changed_ratio": 0.617833,
|
||||
"mean_abs_rgb": [
|
||||
14.5257,
|
||||
14.9903,
|
||||
20.7008
|
||||
],
|
||||
"rms_rgb": [
|
||||
30.1275,
|
||||
32.1947,
|
||||
39.6306
|
||||
],
|
||||
"diff_bbox": [
|
||||
0,
|
||||
4,
|
||||
109,
|
||||
64
|
||||
],
|
||||
"id": "east_breakwater_marks",
|
||||
"label": "东侧防波堤灯台区",
|
||||
"notes": "防波堤灯台和港口标记区。优先验证远一点的灯台/航标是否也能稳定打出来。",
|
||||
"backend_focus": [
|
||||
"p航路標識群",
|
||||
"safety_icon_missing"
|
||||
],
|
||||
"pane_box_norm": [
|
||||
0.83,
|
||||
0.0,
|
||||
1.0,
|
||||
0.16
|
||||
],
|
||||
"pane_box_pixels": [
|
||||
531,
|
||||
0,
|
||||
640,
|
||||
64
|
||||
],
|
||||
"left_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/east_breakwater_marks_left.png",
|
||||
"right_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/east_breakwater_marks_right.png",
|
||||
"diff_image": "/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/east_breakwater_marks_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."
|
||||
]
|
||||
}
|
||||
104
report/strict_audit_pilot/strict_audit_summary.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# NavSea Strict Audit Summary
|
||||
|
||||
## Scope
|
||||
|
||||
- Compare page: `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html`
|
||||
- Compare version: `20nm-r7-20260331-2044`
|
||||
- Backend render audit: `/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_20nm_2026-03-31.r7.json`
|
||||
|
||||
## Visual Audit
|
||||
|
||||
- changed pixels: `230361` / `256000`
|
||||
- changed ratio: `0.899848`
|
||||
- mean abs rgb: `[27.394, 28.0012, 51.399]`
|
||||
- rms rgb: `[42.1614, 40.8117, 66.9404]`
|
||||
- left crop: `[0, 150, 640, 550]`
|
||||
- right crop: `[640, 150, 1280, 550]`
|
||||
|
||||
Artifacts:
|
||||
|
||||
- `/root/sourceserver/pbf/report/strict_audit_pilot/compare_full.png`
|
||||
- `/root/sourceserver/pbf/report/strict_audit_pilot/compare_left.png`
|
||||
- `/root/sourceserver/pbf/report/strict_audit_pilot/compare_right.png`
|
||||
- `/root/sourceserver/pbf/report/strict_audit_pilot/compare_diff.png`
|
||||
|
||||
## Hotspot AOI Audit
|
||||
|
||||
### 高岛主港航标区
|
||||
|
||||
- id: `takashima_main_harbor_marks`
|
||||
- notes: `主港口灯塔、红绿标识、近岸障碍标记。优先验证灯塔、小灯、红绿标识是否真正恢复。`
|
||||
- backend focus: `['p航路標識群', 'safety_icon_missing', 'text_missing_in_engineering']`
|
||||
- changed pixels: `9217` / `11760`
|
||||
- changed ratio: `0.783759`
|
||||
- mean abs rgb: `[25.8832, 26.3819, 35.8165]`
|
||||
- pane box norm: `[0.34, 0.05, 0.57, 0.25]`
|
||||
- pane box pixels: `[218, 20, 365, 100]`
|
||||
- left image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_main_harbor_marks_left.png`
|
||||
- right image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_main_harbor_marks_right.png`
|
||||
- diff image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_main_harbor_marks_diff.png`
|
||||
|
||||
### 高岛近岸碍航与鱼礁区
|
||||
|
||||
- id: `takashima_inner_nearshore_hazards`
|
||||
- notes: `近岸鱼礁、碍航点、灯塔与小灯混合区。优先验证鱼礁和碍航物是否还在。`
|
||||
- backend focus: `['p投錨注意障害物', 'p航行危険障害物', 'p航路標識群']`
|
||||
- changed pixels: `5820` / `7820`
|
||||
- changed ratio: `0.744246`
|
||||
- mean abs rgb: `[26.0925, 28.3926, 32.3252]`
|
||||
- pane box norm: `[0.44, 0.14, 0.62, 0.31]`
|
||||
- pane box pixels: `[282, 56, 397, 124]`
|
||||
- left image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_inner_nearshore_hazards_left.png`
|
||||
- right image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_inner_nearshore_hazards_right.png`
|
||||
- diff image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/takashima_inner_nearshore_hazards_diff.png`
|
||||
|
||||
### 东侧防波堤灯台区
|
||||
|
||||
- id: `east_breakwater_marks`
|
||||
- notes: `防波堤灯台和港口标记区。优先验证远一点的灯台/航标是否也能稳定打出来。`
|
||||
- backend focus: `['p航路標識群', 'safety_icon_missing']`
|
||||
- changed pixels: `4310` / `6976`
|
||||
- changed ratio: `0.617833`
|
||||
- mean abs rgb: `[14.5257, 14.9903, 20.7008]`
|
||||
- pane box norm: `[0.83, 0.0, 1.0, 0.16]`
|
||||
- pane box pixels: `[531, 0, 640, 64]`
|
||||
- left image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/east_breakwater_marks_left.png`
|
||||
- right image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/east_breakwater_marks_right.png`
|
||||
- diff image: `/root/sourceserver/pbf/report/strict_audit_pilot/hotspots/east_breakwater_marks_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.
|
||||
34
strict_audit_hotspots_20nm_pilot.json
Normal file
@@ -0,0 +1,34 @@
|
||||
[
|
||||
{
|
||||
"id": "takashima_main_harbor_marks",
|
||||
"label": "高岛主港航标区",
|
||||
"notes": "主港口灯塔、红绿标识、近岸障碍标记。优先验证灯塔、小灯、红绿标识是否真正恢复。",
|
||||
"pane_box_norm": [0.34, 0.05, 0.57, 0.25],
|
||||
"backend_focus": [
|
||||
"p航路標識群",
|
||||
"safety_icon_missing",
|
||||
"text_missing_in_engineering"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "takashima_inner_nearshore_hazards",
|
||||
"label": "高岛近岸碍航与鱼礁区",
|
||||
"notes": "近岸鱼礁、碍航点、灯塔与小灯混合区。优先验证鱼礁和碍航物是否还在。",
|
||||
"pane_box_norm": [0.44, 0.14, 0.62, 0.31],
|
||||
"backend_focus": [
|
||||
"p投錨注意障害物",
|
||||
"p航行危険障害物",
|
||||
"p航路標識群"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "east_breakwater_marks",
|
||||
"label": "东侧防波堤灯台区",
|
||||
"notes": "防波堤灯台和港口标记区。优先验证远一点的灯台/航标是否也能稳定打出来。",
|
||||
"pane_box_norm": [0.83, 0.0, 1.0, 0.16],
|
||||
"backend_focus": [
|
||||
"p航路標識群",
|
||||
"safety_icon_missing"
|
||||
]
|
||||
}
|
||||
]
|
||||