RefineDet for Pytorch

根据研究内容需要选择合适的目标检测算法,不要求速度但是需要保证较高的识别检测的准确度。

学习参考

Single-Shot Refinement Neural Network for Object Detection paper code code1 code2 code3

RefineDet(2)_论文_CVPR2018
RefineDet (CVPR, 2018)
CVPR2018 目标检测(object detection)算法总览

Object Detection in 20 Years: A Survey
密歇根大学40页《20年目标检测综述》最新论文,带你全面了解目标检测方法

Benchmarking Robustness in Object Detection:Autonomous Driving when Winter is Coming
目前最先进的目标检测能用于自动驾驶吗?

环境配置

GPU训练测试

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
blas                      1.0                         mkl  
bzip2                     1.0.6                h14c3975_5  
ca-certificates           2019.5.15                     0  
cairo                     1.14.12              h8948797_3  
certifi                   2019.6.16                py36_0  
cffi                      1.12.3           py36h2e261b9_0  
cudatoolkit               9.0                  h13b8566_0  
cudnn                     7.6.0                 cuda9.0_0  
ffmpeg                    4.0                  hcdf2ecd_0  
fontconfig                2.13.0               h9420a91_0  
freeglut                  3.0.0                hf484d3e_5  
freetype                  2.9.1                h8a8886c_1  
glib                      2.56.2               hd408876_0  
graphite2                 1.3.13               h23475e2_0  
harfbuzz                  1.8.8                hffaf4a1_0  
hdf5                      1.10.2               hba1933b_1  
icu                       58.2                 h9c2bf20_1  
intel-openmp              2019.4                      243  
jasper                    2.0.14               h07fcdf6_1  
jpeg                      9b                   h024ee3a_2  
libedit                   3.1.20181209         hc058e9b_0  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 9.1.0                hdf63c60_0  
libgfortran-ng            7.3.0                hdf63c60_0  
libglu                    9.0.0                hf484d3e_1  
libopencv                 3.4.2                hb342d67_1  
libopus                   1.3                  h7b6447c_0  
libpng                    1.6.37               hbc83047_0  
libstdcxx-ng              9.1.0                hdf63c60_0  
libtiff                   4.0.10               h2733197_2  
libuuid                   1.0.3                h1bed415_2  
libvpx                    1.7.0                h439df22_0  
libxcb                    1.13                 h1bed415_1  
libxml2                   2.9.9                hea5a465_1  
mkl                       2018.0.3                      1  
mkl_fft                   1.0.6            py36h7dd41cf_0  
mkl_random                1.0.1            py36h4414c95_1  
nccl                      1.3.5                 cuda9.0_0  
ncurses                   6.1                  he6710b0_1  
ninja                     1.9.0            py36hfd86e86_0  
numpy                     1.16.4                    <pip>
numpy                     1.15.4           py36h1d66e8a_0  
numpy-base                1.15.4           py36h81de0dd_0  
olefile                   0.46                     py36_0  
opencv                    3.4.2            py36h6fd60c2_1  
openssl                   1.1.1c               h7b6447c_1  
pcre                      8.43                 he6710b0_0  
pillow                    6.0.0            py36h34e0f95_0  
pip                       19.1.1                   py36_0  
pixman                    0.38.0               h7b6447c_0  
py-opencv                 3.4.2            py36hb342d67_1  
pycparser                 2.19                     py36_0  
python                    3.6.8                h0371630_0  
pytorch                   0.4.1            py36ha74772b_0  
pyzmq                     18.0.2                    <pip>
readline                  7.0                  h7b6447c_5  
setuptools                41.0.1                   py36_0  
six                       1.12.0                    <pip>
six                       1.12.0                   py36_0  
sqlite                    3.28.0               h7b6447c_0  
tk                        8.6.8                hbc83047_0  
torchfile                 0.1.0                     <pip>
torchvision               0.2.1                    py36_0  
tornado                   6.0.3                     <pip>
visdom                    0.1.8.8                   <pip>
websocket-client          0.56.0                    <pip>
wheel                     0.33.4                   py36_0  
xz                        5.2.4                h14c3975_4  
zlib                      1.2.11               h7b6447c_3  
zstd                      1.3.7                h0b5b093_0 

代码运行

  • 下载数据集
    VOC0712和COCO2014
sh data/scripts/VOC2007.sh
sh data/scripts/VOC2012.sh

修改mkdir -p ~/data -> mkdir -p ./data
这样下载的数据集会保存在项目根目录下面
因此训练集的路径位置 /RefineDet.PyTorch/data/datasets/VOCdevkit/VOC2007
/RefineDet.PyTorch/data/datasets/VOCdevkit/VOC2012

sh data/scripts/COCO2014.sh
  • 下载预训练模型
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth

保存在/RefineDet.PyTorch/weights路径下

  • 训练代码
./train_refinedet512.sh

也可以根据custom datasets 输入训练代码,训练显存7GB

CUDA_VISIBLE_DEVICES=0 python train_refinedet_urpc.py --save_folder weights/ --input_size 512 --batch_size 8 --dataset_root custom
  • 测试代码
./eval_refinedet.sh

可以根据测试要求输入测试代码

CUDA_VISIBLE_DEVICES=1 python eval_refinedet.py --trained_model weights/refinedet_testVOC.pth --save_folder eval_refinedet/ 

问题汇总

  • NameError: name 'viz' is not defined
    定义一个全局变量
    解决方式:
    修改train_refinedet.py line93为
if args.visdom:
    import visdom
    global viz
    viz = visdom.Visdom()
  • 训练时 loss 出现nan
    解决方式:
    修改batch_size,将default 32改为8,但是测试mAP结果下降

  • RuntimeError

RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/torch/lib/THC/THCGeneral.c:70

问题原因:没有检测到CUDA设备如显卡驱动等
解决方案:
1.运行nvidias-smi查看显卡

nvidia-smi

2.检查代码配置文件等

os.environ["CUDA_VISIBLE_DEVICES"] = config.gpus

gpus序号应为可运行的GPU设备

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351