# substation_security **Repository Path**: sunup19880702/substation_security ## Basic Information - **Project Name**: substation_security - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-17 - **Last Updated**: 2025-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### README.md ```markdown # 变电站综合安全防护与监控系统 ## 项目介绍 本项目旨在提升变电站的安全管理水平,通过基于智能识别技术的变电站综合安全防护与监控系统及分析装置, 实现对非授权人员的身份识别、作业人员不规范行为的识别,以及对变电站内小动物的自动识别与数量统计。 系统集成了实时监控和智能分析,能够及时向变电站综合安全防护与监控系统推送识别结果,提醒运维人员进行现场管控,确保变电站的安全运行。 ## 功能模块 1. **非授权人员身份识别与告警模块** - 实现对进入变电站区域的非授权人员进行身份识别并发出告警。 2. **作业人员行为异常识别与告警模块** - 实现对作业人员的不规范行为(如不戴安全帽、吸烟、高空作业不系安全带等)进行识别并发出告警。 3. **小动物识别与数量统计模块** - 实现对变电站内小动物(如猫、狗、鼠等)的识别和数量统计,并生成小动物侵扰情况报告。 ## 项目结构 ``` substation_security │ ├── main.py ├── app.py ├── requirements.txt ├── config │ ├── config.py │ ├── dev.yaml │ ├── prod.yaml │ ├── behaviors_dataset.yaml │ └── animals_dataset.yaml ├── utils │ ├── video_processing.py │ ├── face_recognition.py │ ├── behavior_recognition.py │ ├── animal_recognition.py │ ├── alert_system.py │ ├── db_operations.py │ └── image_preprocessing.py ├── models │ ├── yolo_v8 │ │ ├── behavior_model.pt │ │ └── animal_model.pt │ └── face_recognition_model │ └── face_model.dat ├── data │ ├── authorized_faces │ │ ├── face1.jpg │ │ ├── face2.jpg │ │ └── ... │ └── sample_videos │ ├── face_video.mp4 │ ├── behavior_video.mp4 │ └── animal_video.mp4 ├── ajax_response.py ├── train_behavior_model.py └── train_animal_model.py ``` ## 本地启动 ### 环境准备 1. 安装 Python 3.8 及以上版本。 2. 安装 MySQL 数据库,并创建对应的数据库。 ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 配置文件 根据需要修改 `config/dev.yaml` 和 `config/prod.yaml` 文件中的数据库连接信息和其他配置。 #### config/dev.yaml ### 初始化数据库 ```python from utils.db_operations import init_db from app import create_app app = create_app() init_db(app) ``` ### 启动服务 ```bash export FLASK_ENV=development python main.py ``` ## 部署到阿里云服务器 ### 环境准备 1. 准备一台阿里云服务器,并安装 CentOS 7 操作系统。 2. 安装 Python 3.8 及以上版本。 3. 安装 MySQL 数据库,并创建对应的数据库。 4. 配置防火墙,开放端口。 ### 安装依赖 在服务器上执行以下命令: ```bash pip install -r requirements.txt ``` ### 配置文件 根据需要修改 `config/prod.yaml` 文件中的数据库连接信息和其他配置。 ### 初始化数据库 ```python from utils.db_operations import init_db from app import create_app app = create_app() init_db(app) ``` ### 启动服务 ```bash export FLASK_ENV=production python main.py ``` ### 使用 Supervisor 管理服务 安装 Supervisor: ```bash sudo yum install -y epel-release sudo yum install -y supervisor ``` ## 项目开发与维护 ## 项目简介 本项目涉及到多个模块的集成,包括视频采集、人脸识别、行为识别、小动物识别和告警系统。 我们将利用OpenCV进行视频处理,face_recognition库进行人脸识别,YOLOv8进行行为和小动物识别。 设置环境变量并运行项目 在开发环境中运行 bash 复制代码 export FLASK_ENV=development python main.py 在生产环境中运行 bash 复制代码 export FLASK_ENV=production python main.py 通过使用 FLASK_ENV 环境变量,您可以根据需要切换开发环境和生产环境,并确保加载相应的配置文件。 ## 项目快速启动方式 进入项目路径,执行以下命令: ```bash ./sh_substation_security_start.sh ``` 运行:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 如果报错,执行下面命令: pip install flask flask-restful flask-sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pyyaml opencv-python face_recognition -i https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy pandas mysql-connector-python -i https://pypi.tuna.tsinghua.edu.cn/simple pip install flask-socketio eventlet -i https://pypi.tuna.tsinghua.edu.cn/simple pip install redis -i https://pypi.tuna.tsinghua.edu.cn/simple pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple [//]: # 增加websocket订阅() pip install websockets -i https://pypi.tuna.tsinghua.edu.cn/simple 下面会报错,暂时不运行: [//]: # (pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple) [//]: # (报错的依赖执行下面命令) # 安装 dlib pip install path\to\dlib-19.24.99-cp312-cp312-win_amd64.whl 安装部署 mkdir /home/software/python apt install python3.8-venv cd /home/software/python python -m venv shared_venv [//]: # ([//]: # 执行下面命令,添加执行权限()) source /home/software/python/shared_venv/bin/activate chmod +x substation_security_start.sh [//]: # (边缘主机运行识别功能,并通过websocket订阅) source /home/software/python/shared_venv/bin/activate export FLASK_ENV=production python reco_websocket_shibiehebing.py chmod +x sh_many_substation_security_start.sh chmod +x sh_many_substation_security_restart.sh chmod +x sh_many_reco_websocket_all_start.sh chmod +x sh_many_reco_websocket_all_restart.sh [//]: # (边缘主机运行多个识别功能,并通过websocket订阅) cd /home/guoying/python_project/substation_security ./sh_many_substation_security_start.sh ./sh_many_reco_websocket_all_start.sh sudo chmod +x /home/guoying/python_project/substation_security/start_projects.sh sudo systemctl daemon-reload sudo systemctl enable guoying_projects.service sudo systemctl start guoying_projects.service sudo systemctl status guoying_projects.service