# 天池淘宝直播商品识别大赛 复赛第7名方案
## 1、模型思路
```
· 先检测再根据检测框进行图像检索
· 目标检测模型 (Detectron2): 以VoVNet-v2-99-FPN为骨干网络的Faster-RCNN。输入数据为train part 1-5
· 模型细节及训练技巧: 多尺度训练,cosine-annealing lr scheduler with warmup,hflip augmentation
· 图像检索模型: 以EfficientNet-b5/b6/b7为骨干网络,ArcFace为损失函数的检索模型。输入数据为 train+valid 中每个instance检测框的crop。拥有相同instance_id的为同一identity
· 模型细节及训练技巧:
(a) 将宽高比相似的检测框crop合并成一个batch进行多尺度训练
(b) 大量的data augmentation以减少不同服装颜色,观察角度,图片及视频清晰度对检索效果产生的影响
(c) Consine-annealing lr scheduler with warmup
(d) Cross-batch memory以变相增加batch size
(f) GeM-pooling
(g) Mixed-precision training
(h) 每个视频抽取第[80, 120, 160, ..., 360]帧进行训练(很多视频的前80帧并未含有目标服饰)
(i) Head为global pooling -> linear(512) -> BN -> ArcFace
· 后处理及推理
· 用目标检测模型生成图片及视频的检测框。
(a) 只对视频第[80, 100, 120, 140, ..., 380]共16帧进行推理
(b) 图片检测框的阈值为0.9,视频检测框的阈值为0.95
(c) 推理时视频短边放大到 608 pixels
· 对每个检测框crop用检测网络输出 512维 的feature embedding
· 将四个检测模型(两个efficientnet-b5,一个b6,一个b7)所生成的feature进行l2-normalize -> concatenate -> l2-normalize处理,生成2048维的feature
· 将所有视频检测框的feature当作Gallary set,将所有图片检测框的feature当作Query set,通过以下步骤找到每个图片文件夹下所对应的视频item_id
(a) 假设某一图片文件夹下共生成N个检测框。对每一个检测框,找到其对应欧氏距离最近的视频检测框所对应的视频帧及item_id
(b) 从N个备选中,只保留欧氏距离前28%的视频item_id
(c) 我们统计出每个剩余备选视频item_id的个数,然后只保留50%出现次数较多的item_id
(d) 假设最终剩下M个备选视频item_id。如果M=0,则该图片文件夹没有对应视频item_id; 如果M=1,则将此唯一item_id作为该图片文件夹对应视频item_id; 如果M>1,则将欧氏距离最近的视频item_id当作该文件夹对应的视频item_id
(e) 找到该文件夹内拥有置信度最高的检测框的图片。此图片及对应检测框分别为img_name以及item_box
(f) 将step (a) 中所检索到的视频帧作为frame_index; 该视频帧内置信度最高的检测框为frame_box
· 因为我们把图片当作query,视频当作gallary,所以会出现同一视频对应多个图片文件夹的情况。对此我们只保留欧氏距离最近的匹配对
· 再一次移除欧式距离超过1.12的匹配对
· 以上后处理及推理过程的细节请参考./metric_sub/src_infer/run.py
```
## 2、路径信息
```
.
├── bbox_sub # 目标检测模型
| ├── config # Detectron2 模型配置文件夹
| ├── pretrained # 预训练模型
| ├── src_infer # 推理源代码
| ├── src_train # 训练源代码
| ├── Dockerfile
| └── run.sh # 执行文件
|
|
├── metric_sub # 图像检索模型及最终结果推理
| ├── pretrained # 预训练模型
| ├── src_infer # 推理源代码
| ├── src_train # 训练源代码
| ├── Dockerfile
| ├── result.json # 最终提交结果
| └── run.sh # 执行文件
|
|
└── readme.txt
```
## 3、代码运行
· 下载在ImageNet-1k预训练的[VoVNetV2-99](https://dl.dropbox.com/s/1mlv31coewx8trd/vovnet99_ese_detectron2.pth)模型权重
· 将vovnet99_ese_detectron2.pth放置到 ./bbox_sub/pretrained 文件夹下
· 先build并提交bbox_sub,再build并提交metric_sub
· 由于比赛提供的训练环境没有网络连接,所以无法直接下载EfficientNet-Noisy-Student的预训练权重。请在构建模型后手动导入预训练权重,保存为
./metric_sub/pretrained/effnet-b5-imagenet-pretrained.pt
./metric_sub/pretrained/effnet-b6-imagenet-pretrained.pt
./metric_sub/pretrained/effnet-b7-imagenet-pretrained.pt
· 代码为清理过后的代码,与实际训练和推理过程有所差别,因此运行时间可能会超过5天的时间限制
## 4、环境
参考两个Dockerfile。主要区别为bbox_sub内用的PyTorch 1.4,而metric_sub中用的为PyTorch 1.6 (nightly)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 天池淘宝直播商品识别大赛参赛源码+项目说明.zip
资源推荐
资源详情
资源评论
收起资源包目录
天池淘宝直播商品识别大赛参赛源码+项目说明.zip (104个子文件)
Dockerfile 1KB
Dockerfile 1KB
.gitattributes 66B
batch infer vid-checkpoint.ipynb 39KB
batch infer img-checkpoint.ipynb 39KB
get_pretrained.ipynb 2KB
get_pretrained-checkpoint.ipynb 2KB
result.json 0B
README.md 5KB
resnest.py 17KB
vovnet.py 12KB
vovnet.py 12KB
vovnet.py 12KB
imagesize.py 11KB
imagesize.py 11KB
imagesize.py 11KB
imagesize.py 11KB
preprocess.py 11KB
train_net_b5a.py 9KB
train_net_b5b.py 9KB
train_net_b7.py 9KB
train_net_b6.py 9KB
augmentation.py 9KB
run.py 9KB
re_ranking.py 8KB
network.py 8KB
resnet.py 8KB
read_video.py 8KB
read_video.py 8KB
read_video.py 8KB
read_video.py 7KB
train_net.py 7KB
dataset.py 7KB
sampler.py 7KB
sampler.py 7KB
sampler.py 7KB
layers.py 7KB
layers.py 7KB
optimizer.py 6KB
dataset_mapper.py 6KB
loss.py 5KB
loss.py 5KB
network.py 4KB
network.py 4KB
infer_vid.py 3KB
dataset.py 3KB
infer_img.py 2KB
dataset.py 2KB
cross_batch_memory.py 2KB
cross_batch_memory.py 2KB
dataset.py 2KB
loss.py 2KB
infer_vid.py 2KB
infer_img.py 2KB
prepare_json.py 1KB
prepare_json.py 1KB
make_dataloader.py 980B
logger.py 869B
logger.py 869B
make_dataloader.py 774B
make_dataloader.py 774B
layers.py 741B
run.py 627B
config.py 532B
config.py 532B
config.py 532B
utils.py 211B
model_resave.py 148B
utils.py 125B
resnest.cpython-36.pyc 10KB
vovnet.cpython-36.pyc 9KB
vovnet.cpython-36.pyc 9KB
read_video.cpython-36.pyc 7KB
resnet.cpython-36.pyc 7KB
read_video.cpython-36.pyc 7KB
layers.cpython-36.pyc 7KB
imagesize.cpython-36.pyc 6KB
imagesize.cpython-36.pyc 6KB
network.cpython-36.pyc 6KB
dataset.cpython-36.pyc 6KB
sampler.cpython-36.pyc 6KB
loss.cpython-36.pyc 4KB
dataset_mapper.cpython-36.pyc 4KB
network.cpython-36.pyc 3KB
infer_vid.cpython-36.pyc 3KB
infer_img.cpython-36.pyc 3KB
dataset.cpython-36.pyc 3KB
loss.cpython-36.pyc 2KB
cross_batch_memory.cpython-36.pyc 2KB
layers.cpython-36.pyc 1KB
prepare_json.cpython-36.pyc 1KB
make_dataloader.cpython-36.pyc 1KB
config.cpython-36.pyc 575B
config.cpython-36.pyc 572B
utils.cpython-36.pyc 388B
run.sh 342B
run.sh 206B
faster_rcnn_V99_FPN_run.txt 282B
Base-RCNN-VoVNet-FPN.yaml 1KB
Base-RCNN-FPN.yaml 1KB
共 104 条
- 1
- 2
资源评论
- 梦里诗几行2024-06-14资源是宝藏资源,实用也是真的实用,感谢大佬分享~
- 米酒Mia2024-10-28资源很赞,希望多一些这类资源。
土豆片片
- 粉丝: 1844
- 资源: 5824
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- json的合法基色来自红包东i请各位
- 项目采用YOLO V4算法模型进行目标检测,使用Deep SORT目标跟踪算法 .zip
- 针对实时视频流和静态图像实现的对象检测和跟踪算法 .zip
- 部署 yolox 算法使用 deepstream.zip
- 基于webmagic、springboot和mybatis的MagicToe Java爬虫设计源码
- 通过实时流协议 (RTSP) 使用 Yolo、OpenCV 和 Python 进行深度学习的对象检测.zip
- 基于Python和HTML的tb商品列表查询分析设计源码
- 基于国民技术RT-THREAD的MULTInstrument多功能电子测量仪器设计源码
- 基于Java技术的网络报修平台后端设计源码
- 基于Python的美食杰中华菜系数据挖掘与分析设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功