# 电力人工智能数据竞赛决赛——安全帽未佩戴行为目标检测赛道基准模型
以下为电力人工智能数据竞赛决赛-安全帽未佩戴行为目标检测赛道基准模型介绍。其中包含了智源联邦学习框架的简化版本(真实版本后期会以论文的形式发布)和基于 [YOLOv3模型](https://github.com/eriklindernoren/PyTorch-YOLOv3) 完成的实验。
* 决赛和初赛的区别:
* 决赛联邦学习框架
* 升级了联邦学习通信框架,当前基于 [fastapi](https://github.com/tiangolo/fastapi) 和 [aiohttp](https://github.com/aio-libs/aiohttp) 的实现不仅提升了通信效率和安全,而且解决了超时问题
* 联邦学习框架会启动 [差分隐私模块](https://github.com/pytorch/opacus) 保护通信过程中模型参数隐私性
* 完成一个联邦学习流程后,`baai-client`和`sgcc-client`会把本地`log`文件夹的日志`.log`和`.json`结果文件推送到`contestant-server`的`log`文件夹,方便选手分析日志和提交结果
* 决赛数据集
* [决赛数据集](https://open.baai.ac.cn/data-set-detail/MTI2NTE=/Njk=/true) 为国网电力真实场景的安全帽图片(包含没有安全帽的背景图),共计15000张
* 决赛选手权限
* 无法访问和接触决赛数据集
* 只能操作`contestant-server`(基于智源提供的`CPU`机器,每位选手提供一台),智源和国网电力操作`baai-client`和`sgcc-client`(基于智源和国网电力提供的`GPU`机器,两个`client`处于不同的`GPU`机器,每个`client`提供一块`Tesla V100 32GB`),以完成真实场景的联邦学习
* 完成提交之后,主办方会提供具体访问`CPU`和`GPU`机器的方式
* 决赛选手流程:
* 将新的联邦学习框架跟初赛的数据集和模型结合,于本地跑通整个流程
* 决赛前半段(`12月20日——12月31日`):由于部分选手提交的代码和文档存在逻辑、规范问题,主办方会对选手提交文件进行审查,代码、文档存在问题的取消本次实验机会,需要重新提交;没有问题的跟决赛后半段流程保持一致
* 决赛后半段(`12月31日——1月15日`):在官网完成`zip`压缩文件的提交,每日可提交`5`次,主办方下载本日最后一次提交,于次日启动`baai-client`和`sgcc-client`,并通知选手启动`contestant-server`开始联邦学习
* 完成联邦学习的训练、测试、检测流程之后,下载日志`.log`和`.json`结果文件,在官网提交`.json`结果文件更新排行榜
* 分析日志`.log`文件,根据整体情况优化项目,再次提交`zip`压缩文件,开启下一次联邦学习
* 注意事项:
* 选手在提交`zip`文件时一定按照要求(初赛提交时部分选手不符合,决赛缺一不可)
* 提交次数:每天最多提交`5`次
* 提交大小限制:不超过`500M`
* 提交文件:一个`zip`压缩文件,包括以下部分:可复现结果的代码(基于联邦学习框架),预训练模型,详细说明文档(可以独立写文档或者写在`README.md`中,包括队伍名称、选手单位、选手姓名和联系方式,项目解读,运行环境(系统型号、`CUDA`版本、`GPU`版本和配置),需要安装的`Python`库(代码所使用的库和版本可写在`requirements.txt`中),运行方式等等)
* 请各位选手重视代码和文档的逻辑、规范问题(下面给出典型例子),这样不仅能够提升主办方的部署效率,而且可以增加本支队伍和其他队伍的实验机会
* 文档需要说明清楚实验环境(系统型号、`CUDA`版本、`GPU`版本和配置等等)
* `Python`库安装方式和版本指定清楚
* 公开工具库若有修改,文档需要说明修改部分和使用方式
* 配置文件存在的变量需要以配置文件指定值为准,不能在代码中“另起炉灶”
* 配置文件若有修改,文档需要说明修改字段和指定配置文件位置
* 代码有时会新建文件夹,需在文档说明清楚
* 删除无实际功能和调用的冗余代码,优化代码结构
## 环境要求
服务器环境:
* `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_ser
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
全国大学生电子设计竞赛(National Undergraduate Electronics Design Contest),试题,解决方案及源码。计划或参加电赛的同学可以用来学习提升和参考。程序均是实战案例,经过测试可直接运行。 全国大学生电子设计竞赛(National Undergraduate Electronics Design Contest),试题,解决方案及源码。计划或参加电赛的同学可以用来学习提升和参考。程序均是实战案例,经过测试可直接运行。
资源推荐
资源详情
资源评论
收起资源包目录
电力人工智能数据竞赛决赛——安全帽未佩戴行为目标检测赛道基准模型.zip (46个子文件)
res
sgcc-client
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
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
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 11KB
共 46 条
- 1
资源评论
白话机器学习
- 粉丝: 9490
- 资源: 7681
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功