Files
LJ360/README.md
2025-12-26 10:53:32 +08:00

207 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-03YOLO融合 雷达预警
- 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 <repository_url>
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文件。
## 联系方式
如有问题或建议,请联系项目维护者。