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
| """ NVIDIA Omniverse NuRec 在座舱数据合成中的应用 基于Omniverse + Isaac Sim + OpenUSD
适用场景: 1. 疲劳检测训练数据生成(不同光照/姿态/种族) 2. 分心检测(手机/交谈/操作中控) 3. CPD儿童检测(不同年龄/姿态/遮挡) 4. OOP异常姿态(脚在仪表板/前倾/躺平) """
CABIN_SYNTHESIS_CONFIG = { 'environment': { 'vehicle_model': 'SUV_interior.usd', 'lighting': [ {'condition': 'day', 'lux': 5000, 'angle': 45}, {'condition': 'dusk', 'lux': 500, 'angle': 10}, {'condition': 'night', 'lux': 5, 'source': 'IR'}, {'condition': 'tunnel', 'lux': 50, 'flicker': True}, ], }, 'driver': { 'metahuman_models': ['asian_male_30', 'caucasian_female_45', 'asian_female_25', 'african_male_50'], 'poses': { 'normal_driving': {'torso_angle': 90, 'head_pitch': 0}, 'fatigue_mild': {'torso_angle': 85, 'head_pitch': 15, 'eye_closure': 0.3}, 'fatigue_severe': {'torso_angle': 75, 'head_pitch': 30, 'eye_closure': 0.7}, 'distraction_phone': {'head_yaw': -30, 'right_hand': 'lap'}, 'distraction_reach': {'torso_angle': 60, 'right_hand': 'rear'}, }, }, 'passenger': { 'child_models': ['infant_6mo', 'toddler_2yr', 'child_5yr', 'child_8yr'], 'positions': ['safety_seat_rear', 'footwell', 'under_blanket', 'leaning'], }, 'sensors': { 'dms_camera': {'resolution': '1920x1200', 'fps': 30, 'fov': 50}, 'ir_camera': {'resolution': '640x480', 'fps': 30, 'wavelength': '940nm'}, 'mmwave_radar': {'frequency': '60GHz', 'tx_rx': '4x4'}, }, 'generation_rate': '1000 fps', 'auto_label': True, }
def generate_cabin_dataset(scenario, num_samples=10000): """ 生成座舱训练数据集 返回: 图像 + 完美标注 """ samples = [] for i in range(num_samples): lighting = random.choice(CABIN_SYNTHESIS_CONFIG['environment']['lighting']) driver_model = random.choice(CABIN_SYNTHESIS_CONFIG['driver']['metahuman_models']) pose = random.choice(list(CABIN_SYNTHESIS_CONFIG['driver']['poses'].keys())) samples.append({ 'image_id': f'synth_{scenario}_{i:06d}', 'lighting': lighting['condition'], 'driver_model': driver_model, 'pose': pose, 'auto_labeled': True, }) return samples
|