# 电力人工智能数据竞赛决赛——安全帽未佩戴行为目标检测赛道基准模型
以下为电力人工智能数据竞赛决赛-安全帽未佩戴行为目标检测赛道基准模型介绍。其中包含了智源联邦学习框架的简化版本(真实版本后期会以论文的形式发布)和基于 [YOLOv3模型] 完成的实验。
## 环境要求
服务器环境:
* `nvidia/cuda:10.2-devel-ubuntu18.04`
Python库环境:
* `aiohttp==3.7.3`
* `fastapi==0.62.0`
* `Flask==1.1.1`
* `loguru==0.5.3`
* `numpy==1.18.1`
* `Pillow==7.0.0`
* `Python==3.7.6`
* `python-multipart==0.0.5`
* `torch==1.7.1`
* `terminaltables==3.1.0`
* `torchvision==0.8.2`
* `tqdm==4.42.1`
* `uvicorn==0.13.1`
详情请参考`finals-helmet-baseline`下面的`requirements.txt`
## 项目结构
```
.
├── README.md
├── baai-client # 智源联邦学习客户端
│ ├── api
│ │ └── client_api.py # 选手联邦学习服务端需要调用智源联邦学习客户端的函数(训练、测试等)
│ ├── config
│ │ ├── base_conf.py # 本机IP地址和端口号配置
│ │ ├── finals_contest_helmet_federal_conf
│ │ │ ├── create_finals_contest_helmet_federal_model_conf.sh # 构建yolov3模型的bash脚本
│ │ │ └── finals_contest_helmet_federal_conf.data # 决赛安全帽数据集路径信息
│ │ ├── options_conf.py # 初始化参数函数
│ │ └── routes_conf.py # 配置调用方法
│ ├── main.py # 智源联邦学习客户端启动主函数
│ ├── module
│ │ └── models_module.py # yolov3模型相关类
│ ├── service
│ │ └── federated
│ │ └── client_service.py # 智源联邦学习客户端类
│ └── utils
│ ├── common_utils.py # 常用功能函数
│ ├── custom_error_utils.py # 自定义错误信息类
│ ├── data_utils.py # 处理加载数据集相关函数
│ ├── result_utils.py # 通信结果封装类
│ └── tool_utils.py # 辅助功能函数
├── contestant-server # 选手联邦学习服务端
│ ├── config
│ │ ├── finals_contest_helmet_federal_conf
│ │ │ └── create_finals_contest_helmet_federal_model_conf.sh # 构建yolov3模型的bash脚本
│ │ └── options_conf.py # 初始化参数函数
│ ├── http_request
│ │ └── async_request.py # 异步调用方法类
│ ├── module
│ │ └── models_module.py # yolov3模型相关类
│ ├── service
│ │ └── federated
│ │ └── server_service.py # 选手联邦学习服务端类
│ └── utils
│ ├── common_utils.py # 常用功能函数
│ ├── custom_error_utils.py # 自定义错误信息类
│ ├── data_utils.py # 处理加载数据集相关函数
│ ├── result_utils.py # 通信结果封装类
│ └── tool_utils.py # 辅助功能函数
├── requirements.txt # 需要安装的python库
└── sgcc-client # 国网电力联邦学习客户端(功能与智源联邦学习客户端相同,此处不展开介绍)
├── api
│ └── client_api.py
├── config
│ ├── base_conf.py
│ ├── finals_contest_helmet_federal_conf
│ │ ├── create_finals_contest_helmet_federal_model_conf.sh
│ │ └── finals_contest_helmet_federal_conf.data
│ ├── options_conf.py
│ └── routes_conf.py
├── main.py
├── module
│ └── models_module.py
├── service
│ └── federated
│ └── client_service.py
└── utils
├── common_utils.py
├── custom_error_utils.py
├── data_utils.py
├── result_utils.py
└── tool_utils.py
```
## 下载地址
* [决赛安全帽数据集](https://open.baai.ac.cn/data-set-detail/MTI2NTE=/MzA=/true)
* 决赛选手不可访问决赛安全帽数据集,此处给出统计信息说明
* [yolov3预训练模型](http://dorc-data.ks3-cn-beijing.ksyun.com/2015682aasdf154asdfe5d5aq961fa6eg/weights_yolov3_pre_model/weights.tar.gz)
* 当前主要采用`weights`下面的`darknet53.conv.74`
## 运行方式
### 智源联邦学习客户端
* 进入`baai-client/config/finals_contest_helmet_federal_conf`目录
* 修改`finals_contest_helmet_federal_conf.data`当中的数据路径
* 生成`yolov3`模型的`cfg`文件(先删除旧的`cfg`文件)
`bash create_finals_contest_helmet_federal_model_conf.sh 2`
* 进入`baai-client/config`
* 修改`base_conf.py`当中的`host`和`port`
* 进入`baai-client/config`目录
* 配置`options_conf.py`当中的参数,特别是`data_config`,`model_def`,`server_ip`,`server_port`,`client_ip`,`client_port`
* 启动智源联邦学习客户端
* 进入`baai-client`,运行以下指令
`python main.py`
### 国网电力联邦学习客户端
* 进入`sgcc-client/config/finals_contest_helmet_federal_conf`目录
* 修改`finals_contest_helmet_federal_conf.data`当中的数据路径
* 生成`yolov3`模型的`cfg`文件(先删除旧的`cfg`文件)
`bash create_finals_contest_helmet_federal_model_conf.sh 2`
* 进入`sgcc-client/config`
* 修改`base_conf.py`当中的`host`和`port`
* 进入`sgcc-client/config`目录
* 配置`options_conf.py`参数,特别是`data_config`,`model_def`,`server_ip`,`server_port`,`client_ip`,`client_port`
* 启动国网电力联邦学习客户端
* 进入`sgcc-client`,运行以下指令
`python main.py`
### 选手联邦学习服务端
* 把下载好的 [yolov3预训练模型](http://dorc-data.ks3-cn-beijing.ksyun.com/2015682aasdf154asdfe5d5aq961fa6eg/weights_yolov3_pre_model/weights.tar.gz) 拷贝到`contestant-server/service/federated/weights`
* 进入`contestant-server/config/finals_contest_helmet_federal_conf`目录
* 生成`yolov3`模型的`cfg`文件(先删除旧的`cfg`文件)
`bash create_finals_contest_helmet_federal_model_conf.sh 2`
* 进入`contestant-server/config`目录
* 配置`options_conf.py`参数,特别是`pretrained_weights`,`model_def`,`server_ip`,`server_port`,`client_ips`,`client_ports`
* 启动选手联邦学习服务端
* 进入`contestant-server`,运行以下指令
`PYTHONPATH=your/project/path/contestant-server python service/federated/server.py`
## 实验结果
基于默认实验参数,决赛安全帽测试集基于YOLOv3模型的结果:
<div class="table">
<table border="1" cellspacing="0" cellpadding="10" width="100%">
<thead>
<tr class="firstHead">
<th colspan="1" rowspan="1">false detection rate</th> <th>missed detection rate</th> <th>object detection correct rate</th> <th>sgcc helmet image score</th>
</tr>
</thead>
<tbody>
<tr>
<td>0.7039337474120083</td>
<td>0.18664383561643835</td> <td>0.6044609665427509</td> <td>0.6163901512767285</td>
</tr>
</tbody>
</table>
</div>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
环境要求 服务器环境: nvidia/cuda:10.2-devel-ubuntu18.04 Python库环境: * `aiohttp==3.7.3` * `fastapi==0.62.0` * `Flask==1.1.1` * `loguru==0.5.3` * `numpy==1.18.1` * `Pillow==7.0.0` * `Python==3.7.6` * `python-multipart==0.0.5` * `torch==1.7.1` * `terminaltables==3.1.0` * `torchvision==0.8.2` * `tqdm==4.42.1` * `uvicorn==0.13.1`
资源推荐
资源详情
资源评论
收起资源包目录
finals-helmet-baseline-code.zip (50个子文件)
finals-helmet-baseline-code
.DS_Store 6KB
sgcc-client
.DS_Store 6KB
main.py 769B
api
client_api.py 1KB
utils
custom_error_utils.py 354B
result_utils.py 859B
tool_utils.py 14KB
data_utils.py 7KB
common_utils.py 2KB
service
federated
client_service.py 13KB
module
models_module.py 14KB
log
D_finals_contest_helmet_federal_conf_M_yolov3_SE_20_CE_5_ID_2.json 4.42MB
D_finals_contest_helmet_federal_conf_M_yolov3_SE_20_CE_5_ID_2.log 1.8MB
config
finals_contest_helmet_federal_conf
create_finals_contest_helmet_federal_model_conf.sh 8KB
finals_contest_helmet_federal_conf.data 396B
base_conf.py 82B
routes_conf.py 75B
options_conf.py 4KB
baai-client
.DS_Store 6KB
main.py 769B
api
client_api.py 1KB
utils
custom_error_utils.py 354B
result_utils.py 859B
tool_utils.py 14KB
data_utils.py 7KB
common_utils.py 2KB
service
federated
client_service.py 13KB
module
models_module.py 14KB
log
D_finals_contest_helmet_federal_conf_M_yolov3_SE_20_CE_5_ID_1.log 1.8MB
D_finals_contest_helmet_federal_conf_M_yolov3_SE_20_CE_5_ID_1.json 4.42MB
config
finals_contest_helmet_federal_conf
create_finals_contest_helmet_federal_model_conf.sh 8KB
finals_contest_helmet_federal_conf.data 396B
base_conf.py 82B
routes_conf.py 75B
options_conf.py 4KB
contestant-server
.DS_Store 6KB
utils
custom_error_utils.py 354B
result_utils.py 859B
tool_utils.py 14KB
data_utils.py 7KB
common_utils.py 2KB
service
federated
server_service.py 12KB
module
models_module.py 14KB
http_request
async_request.py 9KB
log
D_finals_contest_helmet_federal_M_yolov3_SE_20_CE_5.log 46KB
config
finals_contest_helmet_federal_conf
create_finals_contest_helmet_federal_model_conf.sh 8KB
options_conf.py 2KB
requirements.txt 192B
.gitignore 2KB
README.md 7KB
共 50 条
- 1
资源评论
MarcoPage
- 粉丝: 2925
- 资源: 2980
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 部署yolov8的tensorrt模型支持检测分割姿态估计的C++源码+部署步骤.zip
- 以简单、易用、高性能为目标、开源的时序数据库,支持Linux及Windows, Time Series Database.zip
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
- python-leetcode面试题解之第168题Excel表列名称-题解.zip
- python-leetcode面试题解之第167题两数之和II输入有序数组-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功