外卖网站怎么做销量,光谷企业网站建设,深圳福田天气,深圳专门做网站的公司有哪些#x1f4cc;测试用例
PythonAPI/examples/client_bounding_boxes.py
客户端侧 3D 边界框#xff08;Client-Side Bounding Boxes#xff09;可视化示例#xff0c;用于#xff1a;
手动驾驶一辆主车#xff08;WASD 控制#xff09;实时计算并绘制周围车辆的 3D 边界框…测试用例PythonAPI/examples/client_bounding_boxes.py客户端侧 3D 边界框Client-Side Bounding Boxes可视化示例用于手动驾驶一辆主车WASD 控制实时计算并绘制周围车辆的 3D 边界框所有边界框计算在客户端Python完成不依赖 CARLA 服务端 主要模块解析1.ClientSideBoundingBoxes类3D 边界框核心引擎这是脚本的核心技术模块完全在客户端实现 3D→2D 投影。核心方法get_bounding_box(vehicle, camera)获取车辆 8 个 3D 顶点的世界坐标通过世界→相机坐标变换→相机内参投影→归一化设备坐标返回 8 个 2D 像素点 深度值_create_bb_points(vehicle)根据vehicle.bounding_box.extent生成局部坐标系下的 8 个顶点顺序底面 4 点顺时针 顶面 4 点对应底面坐标变换链车辆局部坐标→世界坐标→相机坐标→2D 像素draw_bounding_boxes()使用pygame.draw.line绘制 12 条边底面 4 顶面 4 竖边 4颜色固定为BB_COLOR (248, 64, 24)橙红色✅关键优势不依赖 CARLA 的实例分割传感器仅需 RGB 摄像头 车辆列表即可生成 3D 框。2.BasicSynchronousClient类主控制循环管理仿真、渲染和用户输入。核心组件同步模式self.set_synchronous_mode(True)确保每帧精确控制避免传感器数据错位自定义摄像头分辨率960x5401920/2 x 1080/2FOV90°位置车后方 5.5 米高度 2.8 米俯角 -15°第三人称视角手动控制逻辑按键功能W前进throttle1, reverseFalseS倒车throttle1, reverseTrueA/D左/右转向±0.05 增量Space手刹图像同步机制self.captureTrue# 请求下一帧# 回调中: if self.capture: self.image img; self.capture False避免多线程竞争确保渲染与控制同步3. **坐标系处理脚本完整实现了CARLA 坐标系到标准计算机视觉坐标系的转换步骤变换1. 车辆局部坐标(x,y,z)CARLA 标准2. 世界坐标通过vehicle.get_transform()3. 相机坐标通过camera.get_transform().get_inverse_matrix()4.CV 坐标系(x,y,z) → (y, -z, x)关键5. 2D 投影K * [y, -z, x]^T 注释中的cords_y_minus_z_x正是这一步转换。4.相机内参校准calibrationnp.identity(3)calibration[0,2]VIEW_WIDTH/2.0# cxcalibration[1,2]VIEW_HEIGHT/2.0# cycalibration[0,0]calibration[1,1]VIEW_WIDTH/(2.0*tan(FOV/2))# fxfyself.camera.calibrationcalibration手动构建3x3 相机内参矩阵 K用于get_bounding_box()中的 3D→2D 投影 与服务端方案对比特性客户端方案本脚本服务端方案instance_segmentation依赖仅需 RGB 摄像头 车辆列表需要 instance_segmentation 传感器精度基于车辆真实 bounding_box基于像素分割可能有锯齿性能CPU 计算投影PythonGPU 渲染分割图⚠️ 注意事项仅显示其他车辆vehicles self.world.get_actors().filter(vehicle.*)包含所有车但未过滤主车主车自身也会显示边界框可通过if vehicle.id ! self.car.id过滤深度过滤bounding_boxes[bbforbbinbounding_boxesifall(bb[:,2]0)]移除相机后方的物体深度 ≤ 0坐标系假设假设车辆 bounding_box 中心在(0,0,0)CARLA 默认若车辆模型偏移需调整_vehicle_to_world✅ 总结该脚本是 CARLA客户端 3D 感知的经典实现展示了如何从车辆物理属性bounding_box生成 3D 顶点如何实现完整的 3D→2D 投影管线如何在纯 Python 客户端实现 3D 边界框可视化它是学习自动驾驶 3D 目标检测基础的绝佳起点尤其适合理解坐标变换、相机模型、投影几何等核心概念。