|
|
@@ -80,7 +80,7 @@ pip install ultralytics
|
|
|
编辑 `config/camera.py` 配置摄像头组。系统默认使用示例环境:
|
|
|
|
|
|
- 枪机:Hikvision `192.168.8.2`,RTSP-only(不经过 Dahua SDK 登录)
|
|
|
-- 球机:Dahua `192.168.8.5`,吸顶安装,pan 方向翻转
|
|
|
+- 球机:Dahua `192.168.8.5`,竖装且设备端已做倒影,代码层按 `wall` 处理,`pan` 不翻转
|
|
|
|
|
|
```python
|
|
|
CAMERA_GROUPS = [
|
|
|
@@ -105,8 +105,10 @@ CAMERA_GROUPS = [
|
|
|
'username': 'admin',
|
|
|
'password': 'Aa1234567',
|
|
|
'channel': 0,
|
|
|
- 'mount_type': 'ceiling', # 吸顶安装
|
|
|
- 'pan_flip': True, # 球机与枪机朝向相反
|
|
|
+ # 竖装+设备端倒影后,代码层按 wall 处理;若球机与枪机朝向相反则 pan_flip=True
|
|
|
+ 'mount_type': 'wall',
|
|
|
+ 'pan_flip': False,
|
|
|
+ 'tilt_flip': False,
|
|
|
'rtsp_url': 'rtsp://admin:Aa1234567@192.168.8.5:554/cam/realmonitor?channel=1&subtype=1',
|
|
|
},
|
|
|
}
|
|
|
@@ -198,6 +200,32 @@ python main.py --force-calibration
|
|
|
- 预置点设置/调用
|
|
|
- 平滑移动跟踪
|
|
|
|
|
|
+### 独立扫描与手动校准
|
|
|
+当自动特征匹配不可靠时,可使用独立扫描脚本生成可人工复核的图片集,再基于确认的关键点生成校准文件。
|
|
|
+
|
|
|
+```bash
|
|
|
+# 1. 球机水平 360°、步长 20°,每个水平位置由下朝上扫描 tilt
|
|
|
+# 每个位置保存球机图(文件名带 pan/tilt)和全景图
|
|
|
+python scripts/calibration_scanner.py
|
|
|
+
|
|
|
+# 2. 用 ORB 重新匹配已扫描图片,生成 lookup_table_orb.json 与复核 CSV
|
|
|
+python scripts/re_match_orb.py
|
|
|
+```
|
|
|
+
|
|
|
+扫描结果保存在 `calibration_scan/`(可在脚本中修改路径)。人工确认图片后,编辑生成的 JSON 或手动编写 `calibration_group1.json`:
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "pan_lookup": [[0.15, 252.0], [0.55, 288.0], [0.80, 305.0]],
|
|
|
+ "tilt_lookup": [[0.45, -5.0], [0.50, -5.0], [0.65, -25.0]],
|
|
|
+ "mount_type": "wall",
|
|
|
+ "pan_flip": false,
|
|
|
+ "tilt_flip": false
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+`pan_lookup` 按 `[[x_ratio, pan_angle], ...]` 分段线性插值;`tilt_lookup` 同理。运行时 `tilt_linear_enabled=True` 会优先使用 `config/ptz.py` 中的 `tilt_y0/tilt_y1` 线性映射。校准文件路径在 `config/camera.py` 的 `calibration_file` 中配置。
|
|
|
+
|
|
|
### 配对图片保存
|
|
|
- 全景图与球机抓拍图按时间窗口归入同一目录
|
|
|
- 支持 OSS 上传与第三方平台推送
|