1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| class CosmosCabinDataGenerator: """ 使用 NVIDIA Cosmos 3 生成座舱合成数据 三层生成策略: 1. Cosmos 3 Super: 大规模场景生成(数据中心) 2. Cosmos 3 Nano: 标准场景生成(数据中心) 3. Cosmos 3 Edge: 端侧实时增强(Jetson Thor) """ CABIN_SCENARIOS = { 'fatigue_blink': { 'description': '疲劳眨眼序列', 'difficulty': '中等', 'cosmos_model': 'Nano', 'realism_gap': '渲染OK, 眨眼物理简单', 'sim2real_risk': '低', }, 'microsleep': { 'description': '微睡眠事件', 'difficulty': '稀有', 'cosmos_model': 'Super', 'realism_gap': '需要多样光照和角度', 'sim2real_risk': '中', }, 'distraction_phone': { 'description': '手机分心', 'difficulty': '中等', 'cosmos_model': 'Nano', 'realism_gap': '手机姿态多样', 'sim2real_risk': '中', }, 'child_occluded': { 'description': '儿童被毯子遮挡', 'difficulty': '高(可变形物体)', 'cosmos_model': 'Super', 'realism_gap': '毯子形变Sim2Real未解决', 'sim2real_risk': '高', }, 'seatbelt_misuse': { 'description': '安全带误用', 'difficulty': '高(接触力学)', 'cosmos_model': 'Super', 'realism_gap': '安全带与身体接触形变', 'sim2real_risk': '高', }, 'oop_posture': { 'description': '异常姿态', 'difficulty': '中等', 'cosmos_model': 'Nano', 'realism_gap': '人体姿态多样', 'sim2real_risk': '中', }, } def generate_synthetic_dataset(self, scenario: str, num_samples: int) -> dict: """ 生成合成数据集 策略: 合成数据用于预训练 → 真实数据微调 """ config = self.CABIN_SCENARIOS[scenario] return { 'scenario': scenario, 'model_used': config['cosmos_model'], 'samples': num_samples, 'sim2real_risk': config['sim2real_risk'], 'recommended_split': { 'synthetic': int(num_samples * 0.7), 'real': int(num_samples * 0.3), }, 'post_processing': [ 'style_transfer', 'domain_randomization', 'noise_injection', ], 'validation': '必须用真实数据验证集评估', }
|