refactor(actpred): 默认图像分辨率改回 640×480
实机测速显示 1080p 采集的预处理缩放(约 45ms)主导端到端延迟 (测速报告 §6.1),640×480 下端到端 18.6ms,与 NPU/ORT 推理开销 更匹配。640×480 亦能被 16 整除,部署导出池化无损失。 已有 checkpoint 自带配置不受影响,仅改新训练默认值。
This commit is contained in:
1 parent
823e91a30e
commit
8af8dec1b0
6 files changed
+18
-18
No files matched your search
+3
-3
@@ -120,8 +120,8 @@ recorder.flush()
|
||||
|
||||
| 参数 | 默认值 | 说明 |
|
||||
|------|--------|------|
|
||||
| `--image-width` | 1920 | 图像缩放宽度 |
|
||||
| `--image-height` | 1080 | 图像缩放高度 |
|
||||
| `--image-width` | 640 | 图像缩放宽度 |
|
||||
| `--image-height` | 480 | 图像缩放高度 |
|
||||
| `--action-dim` | 18 | 动作向量维度(对齐 bot4cj 18 列:10 舵机 + 2 云台 + 扬声器频率 + 延时 + 4 预留)|
|
||||
| `--history-len` | 5 | 历史动作窗口长度 |
|
||||
| `--frame-len` | 3 | 输入图像帧数(含当前帧,旧帧在前)|
|
||||
@@ -131,7 +131,7 @@ recorder.flush()
|
||||
| `--attn-layers` | 2 | TransformerEncoder 层数 |
|
||||
| `--epochs` | 100 | 训练轮数 |
|
||||
| `--lr` | 0.001 | 学习率 |
|
||||
| `--batch-size` | 4 | 批次大小(默认分辨率 1920×1080 下 CPU/Pi 内存受限;小分辨率可调大) |
|
||||
| `--batch-size` | 4 | 批次大小(默认分辨率 640×480;更高分辨率需调小,小分辨率可调大) |
|
||||
| `--normalize-actions` | False | 动作归一化(`--no-normalize-actions` 关闭) |
|
||||
| `--dropout` | 0.1 | Dropout 率 |
|
||||
| `--weight-decay` | 0.0001 | 权重衰减 |
|
||||
|
||||
+4
-4
@@ -5,8 +5,8 @@ from typing import Optional
|
||||
|
||||
@dataclass
|
||||
class DataConfig:
|
||||
image_width: int = 1920
|
||||
image_height: int = 1080
|
||||
image_width: int = 640
|
||||
image_height: int = 480
|
||||
action_dim: int = 18
|
||||
history_len: int = 5
|
||||
frame_len: int = 3
|
||||
@@ -28,8 +28,8 @@ class ModelConfig:
|
||||
|
||||
@dataclass
|
||||
class TrainConfig:
|
||||
# 默认输入分辨率 1920×1080,batch=32 在 CPU/Pi 上内存不可行;
|
||||
# 高分辨率训练取小 batch,小分辨率可用 --batch-size 调大
|
||||
# 默认输入分辨率 640×480(1080p 采集的预处理缩放在实机测速中主导
|
||||
# 端到端延迟,见测速报告 §6.1);更高分辨率训练时需调小 batch
|
||||
batch_size: int = 4
|
||||
epochs: int = 100
|
||||
lr: float = 1e-3
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ def _natural_key(p):
|
||||
|
||||
class ActionDataset(Dataset):
|
||||
def __init__(self, data_dir: str, history_len: int, action_dim: int,
|
||||
image_width: int = 1920, image_height: int = 1080,
|
||||
image_width: int = 640, image_height: int = 480,
|
||||
normalize_actions: bool = False,
|
||||
action_stats_path: str = None, episode_indices: list = None,
|
||||
frame_len: int = 3):
|
||||
|
||||
@@ -60,7 +60,7 @@ def build_image_samples(n_samples, frame_len, height, width, rng,
|
||||
"""生成 (n_samples, frame_len, 3, H, W) uint8 校准图像
|
||||
|
||||
存 uint8 原始像素值(0~255),加载时再做 ToTensor+Normalize,节省磁盘。
|
||||
经 memmap 分块填充后返回:1080p 默认分辨率下整块数组约 600MB,
|
||||
经 memmap 分块填充后返回:高分辨率(如 1080p)下整块数组可达 ~600MB,
|
||||
一次性分配容易挤爆内存,分块写盘把峰值压到 chunk_samples 帧量级。
|
||||
"""
|
||||
if chunk_samples < 1:
|
||||
|
||||
@@ -305,8 +305,8 @@ class TestConfig(unittest.TestCase):
|
||||
|
||||
def test_default_config(self):
|
||||
cfg = Config()
|
||||
self.assertEqual(cfg.data.image_width, 1920)
|
||||
self.assertEqual(cfg.data.image_height, 1080)
|
||||
self.assertEqual(cfg.data.image_width, 640)
|
||||
self.assertEqual(cfg.data.image_height, 480)
|
||||
self.assertEqual(cfg.data.action_dim, 18)
|
||||
self.assertEqual(cfg.data.history_len, 5)
|
||||
self.assertEqual(cfg.data.frame_len, 3)
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
设备:Raspberry Pi 5(4×A76)+ AI HAT 2(Hailo-10H)
|
||||
模型:actpred(~450K 参数,frame_len=3,history_len=5,action_dim=18)
|
||||
|
||||
> ⚠️ **基线分辨率说明(2026-08-12 补注,N-3 修复)**
|
||||
> ⚠️ **基线分辨率说明(2026-08-13 更新)**
|
||||
>
|
||||
> 本报告 §1~§4 的全部数据均在 **640×480** 输入分辨率下测得。
|
||||
> 提交 `91b3004`(2026-08-12)已将模块默认输入分辨率改为
|
||||
> **1920×1080**(`config.py` 默认 `image_width/image_height`,与 pybot
|
||||
> 相机采集分辨率对齐)。**推理延迟随输入像素量近似线性增长
|
||||
> (1920×1080 ≈ 640×480 的 6.75 倍像素),本报告数字不能直接外推到
|
||||
> 新默认分辨率。** x86 参考机上的 1920×1080 复测数据见 §5;
|
||||
> Pi 5 / Hailo 板载在新分辨率下的数据待补测。
|
||||
> 提交 `91b3004`(2026-08-12)曾将模块默认输入分辨率改为
|
||||
> **1920×1080**(与 pybot 相机采集分辨率对齐);2026-08-13 实机测速
|
||||
> 发现 1080p 采集的预处理缩放(约 45ms)主导端到端延迟(§6.1),
|
||||
> 默认分辨率**改回 640×480**(`config.py` 默认
|
||||
> `image_width/image_height`),§1~§4 数据重新适用。
|
||||
> 1920×1080 的 x86 复测数据见 §5,仅作分辨率影响趋势参考。
|
||||
|
||||
## 1. 测试方法
|
||||
|
||||
|
||||
Reference in new issue
Block a user