首页 > 科技快讯 > 潮科技行业入门指南 | 深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介

潮科技行业入门指南 | 深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介

编者按:本文节选自《深度学习理论与实战:提高篇 》一书,原文链接http://fancyerii.github.io/2019/03/14/dl-book/ 。作者李理,环信人工智能研发中心vp,有十多年自然语言处理和人工智能研发经验,主持研发过多款智能硬件的问答和对话系统,负责环信中文语义分析开放平台和环信智能机器人的设计与研发。

以下为正文。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介

目录

安装

数据准备

训练

测试

预测

Faster R-CNN有很多开源的版本,我们这里介绍PyTorch实现的用法。前面介绍过原理,这里就不分析源代码了,有兴趣的读者开源自己阅读源代码。

安装

建议使用virtualenv安装。

# 获取代码
git clone https://github.com/jwyang/faster-rcnn.pytorch.git
#或者使用作者fork的版本,保证代码和作者使用的一致
# git clone https://github.com/fancyerii/faster-rcnn.pytorch.git

# 安装virtualenv
virtualenv -p /usr/bin/python3.6 venv
source venv/bin/activate

# 安装pytorch 0.4.0(注意这个实现只支持0.4.0,不能安装0.4.1或者更新版本)
# whl包需要去PyTorch的官网下载,更加自己的Python版本,GPU进行选择合适的下载安装
# 这里有老的版本下载: https://pytorch.org/get-started/previous-versions/

# 安装其它依赖
pip install -r requirements.txt

数据准备

有很多数据集可以选择,我们这里使用PASCAL VOC数据集,这是官网。

cd faster-rcnn.pytorch
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

解压这3个tar包,创建data目录并且建立符号链接。

tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar

# mkdir data && cd data
ln -s ../VOCdevkit VOCdevkit2007

训练

使用如下脚本进行训练,比较重要的参数是lr,如果太大可能会出现nan/inf,作者使用这个参数是可以收敛的。

python trainval_net.py --dataset pascal_voc --net res101 --bs 1 --nw 1
--lr 0.0004 --lr_decay_step 8 --cuda

测试

接下来是用测试集合进行测试,作者训练后得到的mAP在73.5%左右。读者可以多调调超参数,源代码作者得出的mAP是在75.2%左右。

python test_net.py --dataset pascal_voc --net res101
--checksession 1 --checkepoch 20 --checkpoint 10021
--cuda

Saving cached annotations to /bigdata/lili/faster-rcnn.pytorch/data/VOCdevkit2007/VOC2007/ImageSets/Main/test.txt_annots.pkl
AP for aeroplane = 0.7534
AP for bicycle = 0.8044
AP for bird = 0.7760
AP for boat = 0.6076
AP for bottle = 0.5756
AP for bus = 0.8021
AP for car = 0.8283
AP for cat = 0.8664
AP for chair = 0.5332
AP for cow = 0.8147
AP for diningtable = 0.6709
AP for dog = 0.8700
AP for horse = 0.8561
AP for motorbike = 0.7939
AP for person = 0.7834
AP for pottedplant = 0.4588
AP for sheep = 0.7238
AP for sofa = 0.7499
AP for train = 0.7524
AP for tvmonitor = 0.6907
Mean AP = 0.7356

python demo.py --net res101
--checksession 1 --checkepoch 20 --checkpoint 10021
--cuda --load_dir models --image_dir testimgs

预测

我们创建一个测试目录testimgs,在里面放几张图片,看看实际检测的效果。

python demo.py --net res101 --checksession 1 --checkepoch 20 --checkpoint 10021
--cuda --load_dir models --image_dir testimgs

下图是上面命令检测的实际效果,汽车都被正确的检测出来了。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介

图:Faster R-CNN检测效果

相关推荐

潮科技行业入门指南 | 深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介
潮科技行业入门指南 | 深度学习理论与实战:提高篇(12)Fast/Faster/Mask R-CNN总结
潮科技行业入门指南 | 深度学习理论与实战:提高篇(9)——目标检测算法Faster R-CNN
潮科技行业入门指南 | 深度学习理论与实战:提高篇(14)——​Mask R-CNN代码简介
潮科技行业入门指南 | 深度学习理论与实战:提高篇(11)——实例分割
潮科技行业入门指南 | 深度学习理论与实战:提高篇(10)——目标检测算法FPN
潮科技行业入门指南 | 深度学习理论与实战:提高篇(20)—— ​强化学习简介(六)
潮科技行业入门指南 | 深度学习理论与实战:提高篇(8)——目标检测算法Fast R-CNN
潮科技行业入门指南 | 深度学习理论与实战:提高篇(7)——目标检测算法R-CNN
潮科技行业入门指南 | 深度学习理论与实战:提高篇(6)—— 视觉任务简介

网址: 潮科技行业入门指南 | 深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介 http://m.xishuta.com/newsview2107.html

所属分类:互联网创业