目标检测:Yolov3网络实现

最近在学习目标检测,以Yolov3网络为首例进行详细学习,每次都不愿意去深入理解它们的本质,我要克服这种心理,一起加油!
很幸运在一开始搜索资料时候找到了不错的一份资料,代码原址,让代码之旅变得容易了很多。
我运行代码时候是远程,不过应该没有太多区别吧。好啦,正题开始,全程终端进行,我用的python3.5。

首先进行一个小测试:

#1.下载原代码
$ git clone https://github.com/YunYang1994/tensorflow-yolov3.git
#2.安装必须的包
$ cd tensorflow-yolov3
$ pip install -r ./docs/requirements.txt
#3.下载coco权重文件
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py
$ python freeze_graph.py
#4.得到 .pb 文件,然后测试,可以自己拍照片放进去测试
$ python image_demo.py

嘻嘻,得到检测的图片时候还有点激动,觉得好神奇。

在VOC数据集上训练

#下载VOC数据集
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
#数据集符合这个结构

VOC           # path:  ./tensorflow-yolov3-master/VOC
├── test
|    └──VOCdevkit
|        └──VOC2007 (from VOCtest_06-Nov-2007.tar)
└── train
     └──VOCdevkit
         └──VOC2007 (from VOCtrainval_06-Nov-2007.tar)
         └──VOC2012 (from VOCtrainval_11-May-2012.tar)
                     
$ python scripts/voc_annotation.py --data_path ./tensorflow-yolov3-master/VOC
#修改 ./core/config.py ,一定修改好,我当时错过了这步,导致错误

__C.YOLO.CLASSES                = "./data/classes/voc.names"
__C.TRAIN.ANNOT_PATH            = "./data/dataset/voc_train.txt"
__C.TEST.ANNOT_PATH             = "./data/dataset/voc_test.txt"

#两种训练方式:

#(1) 从头训练:
$ python train.py
$ tensorboard --logdir ./data
#(2) 从 COCO 权重开始训练,我用的这个:
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py --train_from_coco
$ python train.py

VOC数据集上evaluate,可以得到测试图片及mAP结果

$ python evaluate.py
$ cd mAP
$ python main.py -na

在这个步骤中,远程时候无法显示图片,

报错:_tkinter.TclError: no display name and no $DISPLAY environment variable

在main.py文件中的调用库之前写入:

import matplotlib
#Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')

整个过程就成功啦。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值