New Zealand
English
Share

深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介

生活作者: 陈绍元
深度学习理论与实战:提高篇(13)——Faster R-CNN代码简介
摘要编者按:本文节选自《深度学习理论与实战:提高篇 》一书,原文链接http://fancye……

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

以下为正文。

hougarden

目录

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# 安装virtualenvvirtualenv -p /usr/bin/python3.6 venvsource 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.pytorchwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

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

tar xvf VOCtrainval_06-Nov-2007.tartar xvf VOCtest_06-Nov-2007.tartar xvf VOCdevkit_08-Jun-2007.tar# mkdir data && cd dataln -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 --cudaSaving cached annotations to /bigdata/lili/faster-rcnn.pytorch/data/VOCdevkit2007/VOC2007/ImageSets/Main/test.txt_annots.pklAP for aeroplane = 0.7534AP for bicycle = 0.8044AP for bird = 0.7760AP for boat = 0.6076AP for bottle = 0.5756AP for bus = 0.8021AP for car = 0.8283AP for cat = 0.8664AP for chair = 0.5332AP for cow = 0.8147AP for diningtable = 0.6709AP for dog = 0.8700AP for horse = 0.8561AP for motorbike = 0.7939AP for person = 0.7834AP for pottedplant = 0.4588AP for sheep = 0.7238AP for sofa = 0.7499AP for train = 0.7524AP for tvmonitor = 0.6907Mean AP = 0.7356python 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

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

hougarden

图:Faster R-CNN检测效果


转载声明转载声明:本文系后花园转载发布,仅代表原作者或原平台态度,不代表我方观点。后花园仅提供信息发布平台,文章或有适当删改。对转载有异议和删稿要求的原著方,可联络[email protected]
评论
验证码