# LJ360 - 360全景人员接近预警系统 LJ360是一个基于OpenCV开发的360度全景人员接近预警系统,支持多摄像头拼接、雷达距离检测和人体检测、web配置等功能。 ## 更新 - 2025-12-25: CPP版本360环视成功运行 - 2025-12-23: 增加Flask框架,支持WEB预览 - 2025-12-20: 增加YOLOv5模型,支持人员检测 - 2025-12-19: Python版本360环视成功运行 - 2025-12-16: 单路摄像头投影生成 - 2025-12-15: 加载V4L2后端 移除gstreamer - 2025-12-12:模拟摄像头内参矩阵和畸变系数计算 --- - 2025-12-02: 本地视频360合成 - 2025-11-03:YOLO融合 雷达预警 - 2025-11-01:网络摄像头四分屏 - 2025-10-30:初始版本发布 ## 功能 - **多摄像头拼接**:支持4个鱼眼摄像头实时拼接成360度全景视图 - **图像校正**:自动对鱼眼镜头的畸变进行校正 - **雷达检测**:支持串口雷达距离检测,实时显示障碍物距离 - **人体检测**:集成YOLO目标检测算法,实时检测行人 - **Web界面**:提供Web界面查看全景视频流 - **硬件加速**:支持RKNN神经网络加速和OpenCL GPU加速 ## 系统要求 - Python 3.8 - OpenCV 4.0+ - NumPy - RKNN Toolkit Lite (用于神经网络加速) - Serial (用于雷达通信) - Flask (用于Web界面) ## 硬件要求 - 4个鱼眼摄像头 (1920*1080@25fps) - 4路AHD转MIPI TP2815接口板 - 摄像头映射关系:video0(前)、video1(左)、video2(后)、video3(右) - 雷达模块 (支持串口通信) - RK3588平台 (用于RKNN加速和系统主控) ## 安装步骤 1. 克隆项目代码: ```bash git clone cd LJ360 ``` 2. 安装依赖: ```bash NULL ``` 3. 配置摄像头参数: - 在`yaml/`目录下为每个摄像头创建配置文件 - 配置文件包含摄像头的内参、外参和畸变参数 4. 配置雷达参数: - 在`web.py`中修改雷达串口配置 - 调整距离阈值参数 ## 使用方法 ### 1. 主要运行文件 (推荐) ```bash python3 web.py ``` 该脚本是系统的主要运行文件,同时实现: - 4个摄像头的实时图像捕获 - 鱼眼图像校正和拼接 - 360度全景视图生成 - Web服务器启动,提供全景视频流访问 启动后,在浏览器中访问`http://localhost:5000`查看全景视频流。 显示器同步显示360度全景视图和YOLO检测结果。 ### 2. 运行摄像头校准 ```bash python run_calibrate_camera.py ``` 用于校准摄像头参数,生成yaml配置文件。 ### 3. 生成投影映射 ```bash python run_get_projection_maps.py ``` 生成图像投影映射,用于提高拼接效率。 ### 4. 生成权重矩阵 ```bash python run_get_weight_matrices.py ``` 生成图像拼接的权重矩阵,用于平滑过渡。 ## 项目结构 ``` LJ360/ ├── cpp/ # C++实现的相关功能 开发中 │ └── AdasSourrondView/ # 360度全景视图C++实现 ├── py_utils/ # Python工具模块 │ ├── rknn_executor.py # RKNN模型执行器 │ └── coco_utils.py # COCO数据集工具 ├── surround_view/ # 全景视图核心模块 │ ├── birdview.py # 鸟瞰图生成 │ ├── fisheye_camera.py # 鱼眼相机模型 │ ├── capture_thread.py # 图像捕获线程 │ └── process_thread.py # 图像处理线程 ├── yaml/ # 摄像头配置文件 ├── model/ # 深度学习模型 ├── images/ # 静态图像资源 ├── web.py # 主程序 ├── run_live_demo.py # 实时演示脚本 ├── run_calibrate_camera.py # 摄像头校准脚本 ├── run_get_projection_maps.py # 生成投影映射脚本 ├── run_get_weight_matrices.py # 生成权重矩阵脚本 └── README.md # 项目说明文档 ``` ## 配置文件说明 ### 摄像头配置文件 (yaml/*.yaml) 每个摄像头需要一个yaml配置文件,包含以下参数: - `camera_matrix`: 相机内参矩阵 - `dist_coeffs`: 畸变系数 - `rotation_vector`: 旋转向量 - `translation_vector`: 平移向量 - `projection_matrix`: 投影矩阵 ### 雷达配置 在`web.py`中配置雷达参数: - `RADAR_SERIAL_PORT`: 雷达串口 - `RADAR_BAUDRATE`: 波特率 - `DISTANCE_THRESHOLD`: 距离阈值 ### YOLO配置 在`web.py`中配置YOLO目标检测参数: - `YOLO_MODEL_PATH`: YOLO模型路径 - `OBJ_THRESH`: 目标检测阈值 - `NMS_THRESH`: 非极大值抑制阈值 - `IMG_SIZE`: 输入图像大小 ## 注意事项 1. 确保所有摄像头的分辨率设置一致 2. 摄像头校准需要使用棋盘格进行 3. 雷达模块需要正确连接到串口 4. RKNN模型需要使用RKNN Toolkit转换生成 5. 运行前请确保所有依赖已正确安装 ## 故障排除 ### 摄像头无法连接 - 检查摄像头ID是否正确 - 确保摄驱动框架V4L2已安装 - 检查MIPI接口连接 ### 图像拼接异常 - 检查摄像头校准参数 - 确保所有摄像头的视角重叠区域足够 - 调整权重矩阵参数 ### 雷达无数据 - 检查串口连接 - 检查雷达波特率设置 - 确保雷达模块正常工作 ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持4摄像头拼接 - 集成雷达距离检测 - 支持人体检测 - 提供Web界面 ## 许可证 本项目采用MIT许可证,详见LICENSE文件。 ## 联系方式 如有问题或建议,请联系项目维护者。