【代码调试】《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》
论文地址:https://arxiv.org/pdf/2103.05950.pdf
代码地址:https://github.com/megvii-research/FSCE
论文阅读:https://blog.csdn.net/qiankendeNMY/article/details/128390284
我的配置:
Python :3.8(ubuntu18.04)
Pytorch :1.6.0
Cuda :10.1
GPU:RTX 2080 Ti(11GB) * 2
1、依赖安装
requirements.txt文件下载:https://github.com/ucbdrive/few-shot-object-detection
pip install -r requirements.txt
2、 安装pycocoapi
pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
3、安装fvcore库
pip install 'git+https://github.com/facebookresearch/fvcore'
报错:
解决参考:
https://blog.csdn.net/weixin_45355608/article/details/116528406
4、Build
python setup.py build develop
4.1、报错1
解决:
(1)修改 ./fedet/model_zoo下configs文件的内容,改成configs文件夹所在的路径
(2)执行以下命令,创建软链接
ln -sf 【configs文件夹所在的路径】 ./fsdet/model_zoo
例如:
ln -sf /root/autodl-tmp/configs ./fsdet/model_zoo
4.2、报错2
解决:
降低pytorch的版本,原来我的pytorch版本是1.6,降低到了1.4就可以正常运行了:
https://github.com/megvii-research/FSCE/issues/19
build成功
5、下载VOC数据集
cd datasets
wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
tar xf VOCtrainval_11-May-2012.tar
tar xf VOCtrainval_06-Nov-2007.tar
tar xf VOCtest_06-Nov-2007.tar
6、训练基础检测器
python tools/train_net.py --num-gpus 2 --config-file configs/PASCAL_VOC/base-training/R101_FPN_base_training_split1.yml
6.1、报错1
解决:
手动下载pkl文件:
https://dl.fbaipublicfiles.com/detectron2/ImageNetPretrained/MSRA/R-101.pkl
然后,修改yml.py中pkl文件的路径,改为pkl文件在本机上的存储路径,例如: /path/to/ImageNetPretrained/MSRA/R-101.pkl.
6.2、报错2
Traceback (most recent call last):File "/root/miniconda3/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 20, in _wrapfn(i, *args)File "/root/autodl-tmp/fsdet/engine/launch.py", line 84, in _distributed_workermain_func(*args)File "/root/autodl-tmp/tools/train_net.py", line 116, in mainreturn trainer.train()File "/root/autodl-tmp/fsdet/engine/defaults.py", line 397, in trainsuper().train(self.start_iter, self.max_iter)File "/root/autodl-tmp/fsdet/engine/train_loop.py", line 132, in trainself.run_step()File "/root/autodl-tmp/fsdet/engine/train_loop.py", line 212, in run_steploss_dict = self.model(data)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 458, in forwardoutput = self.module(*inputs[0], **kwargs[0])File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/modeling/meta_arch/rcnn.py", line 166, in forward_, detector_losses = self.roi_heads(images, features, proposals, gt_instances)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/modeling/roi_heads/roi_heads.py", line 443, in forwardlosses = self._forward_box(features_list, proposals) # get losses from fast_rcnn.py::FastRCNNOutputsFile "/root/autodl-tmp/fsdet/modeling/roi_heads/roi_heads.py", line 464, in _forward_boxbox_features = self.box_pooler(features, [x.proposal_boxes for x in proposals]) # [None, 256, POOLER_RESOLU, POOLER_RESOLU]File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/modeling/poolers.py", line 233, in forwardoutput[inds] = pooler(x_level, pooler_fmt_boxes_level)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/layers/roi_align.py", line 93, in forwardreturn roi_align(File "/root/autodl-tmp/fsdet/layers/roi_align.py", line 19, in forwardoutput = _C.roi_align_forward(
RuntimeError: Not compiled with GPU support
这个问题死活解决不了,删了所有环境重新配置之后就没有再出现这个问题了。但是花了不少时间,希望有大佬看到的话能够提出解决方案。
基础训练完成:
7、随机初始化新类别的权重
python tools/ckpt_surgery.py --src1 checkpoints/voc/faster_rcnn/faster_rcnn_R_101_FPN_base1/model_final.pth --method randinit --save-dir checkpoints/voc/faster_rcnn/faster_rcnn_R_101_FPN_all1
8、数据集split
方法一:
python datasets/prepare_voc_few_shot.py --seeds 1 30
方法二:直接选择下载作者提供的网页数据集
wget -r -R index.html http://dl.yf.io/fs-det/datasets
将下载好的VOC数据集存放在datasets文件夹中的vocsplit文件夹下:
注:
9、微调
修改模型的权重路径为model_resnet_surgery.pth文件的保存路径:
python tools/train_net.py --num-gpus 2 \--config-file configs/PASCAL_VOC/split1/10shot_CL_IoU.yml
微调结束:
10、评估
python tools/test_net.py --num-gpus 2 \--config-file configs/PASCAL_VOC/split1/10shot_CL_IoU.yml \--eval-only
报错:
解决:
参考:https://github.com/megvii-research/FSCE/issues/9
评估结束:
如有错误,欢迎指正!
【代码调试】《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》相关推荐
- 《Look at Boundary: A Boundary-Aware Face Alignment Algorithm 》阅读笔记
文章目录 摘要 1.前言 2. 相关工作 3. 边界感知人脸对齐算法 3.1 边界感知 landmark 回归器 3.2 边界热力图估计 3.3 边界有效性评估器 3.4 跨数据集人脸对齐 扩展知识 ...
- 《Look at Boundary: A Boundary-Aware Face Alignment Algorithm》代码调试
文章目录 1. 在 pycharm 中打开项目 1. 在 pycharm 中打开项目 项目打开后,设置 system interpreter,编译器设置好后,会自动检索你调用的包,并提示你需要 imp ...
- http 协议上传文件multipart form-data boundary 说明--转载
原文地址:http://xixinfei.iteye.com/blog/2002017 含义 ENCTYPE="multipart/form-data" 说明: 通过 http ...
- Dense Label Encoding for Boundary Discontinuity Free Rotation Detection
Dense Label Encoding for Boundary Discontinuity Free Rotation Detection 原文链接 代码链接 文章目录 Author Abstra ...
- 人脸对齐算法调研(Face Alignment)
人脸对齐算法调研(Face Alignment) 转载自 https://zhuanlan.zhihu.com/p/101250334 一.人脸对齐的定义与作用(引用): https://blog.c ...
- Data alignment
C语言,在对一个 struct variable使用 sizeof operator(操作符)的时候,往往得到的结果并不是我们想象中--struct内所有member的size之和. 当清楚了什么是 ...
- 人脸对齐--One Millisecond Face Alignment with an Ensemble of Regression Trees
One Millisecond Face Alignment with an Ensemble of Regression Trees CVPR2014 http://www.csc.kth.se/~ ...
- 人脸检测对齐--Joint Cascade Face Detection and Alignment
Joint Cascade Face Detection and Alignment ECCV2014 https://github.com/kensun0/Joint_Cascade_Face_De ...
- CVPR 2018 paper list(论文列表)
原文链接:http://cvpr2018.thecvf.com/program/main_conference 52 Embodied Question Answering Abhishek Das ...
- linux链接器脚本,vmlinux-lds 连接器脚本
vmlinux-lds 连接器脚本 /* * Automatically generated C config: don't edit * Linux/arm 3.0.15 Kernel Config ...
最新文章
- 【Paper】31_[18]On a Dynamic Extension of the Theory of Graphs
- Android+NDK+OpenGLES开发环境配置
- 全球及中国乳酸异辛酯行业发展趋势及投资前景规划报告2022-2027年
- 接口使用jwt返回token_JWT实现token验证
- HDU - 3333 Turing Tree(线段树+离线处理)
- Alpine Linux详解
- 原创电子书:C#难点逐个击破
- vba 保存word里面的图片_笔记7 【office精华课】一套课程学会Word+Excel+PPT(一)【Word】(2020年第37周 周五)...
- java启动RabbitMQ消息报异常解决办法
- 卷积神经网络 第三周作业:Residual+Networks+-+v1
- 自适应短视频源码php下载,php在线短视频解析下载API源码
- WPS自动生成目录。
- Navicat注释乱码
- 用Excel或WPS做两独立样本的T检验
- java mysql连接池配置_Java数据库连接池的几种配置方法(以MySQL数据库为例)
- 使用字符映射完成简单的对称加密
- c语言中scanf(“%d %d\n“)的问题
- php八字喜用神实现博客,八字喜用神测算方法
- 旺季选品逻辑:用数据思维找到潜力爆款
- ajax的leiku,AJAX实现汉字和拼音搜索自动提示的效果(asp.net)
热门文章
- 小红书2020校招前端笔试题卷一
- [算法系列] 深入递归本质+经典例题解析——如何逐步生成, 以此类推,步步为营
- 【文献阅读】Expanding the mutation and phenotype spectrum of MYH3-associated skeletal disorders
- 微信小程序使用第三方库(第三方js)问题
- 服务器地址 端口 协议 密码,服务器地址和端口及密码
- 【图像评价指标】PSNR和SSIM
- 不忘初心,砥砺前行!
- win ce车载系统_【新器械】雅培在美国推出治疗慢性神经系统疼痛的IonicRF射频消融发生器...
- html5 梵高 星,复华文旅:穿越吧!梵高
- debian安装无线网卡驱动