安装并运行PyTorch-YOLOv3

1 安装

1.0 环境

不说环境,都是耍流氓。

  • Ubuntu 16.04
  • Python 3.5.2(强烈建议安装Python 3.6+)
  • PyTorch 1.3.1

1.1 下载代码

$ git clone https://github.com/eriklindernoren/PyTorch-YOLOv3

1.2 安装依赖

$ cd PyTorch-YOLOv3/
$ sudo pip3 install -r requirements.txt

打开requirements.txt,需要的依赖为:

  • numpy
  • torch>=1.0
  • torchvision
  • matplotlib
  • tensorflow
  • tensorboard
  • terminaltables
  • pillow
  • tqdm

下载完成时,输出:

Successfully installed absl-py-0.8.1 astor-0.8.1 cachetools-3.1.1 certifi-2019.11.28 chardet-3.0.4 cycler-0.10.0 gast-0.2.2 google-auth-1.8.2 google-auth-oauthlib-0.4.1 google-pasta-0.1.8 grpcio-1.25.0 h5py-2.10.0 idna-2.8 keras-applications-1.0.8 keras-preprocessing-1.1.0 kiwisolver-1.1.0 markdown-3.1.1 matplotlib-3.0.3 oauthlib-3.1.0 opt-einsum-3.1.0 protobuf-3.11.1 pyasn1-0.4.8 pyasn1-modules-0.2.7 requests-2.22.0 requests-oauthlib-1.3.0 rsa-4.0 tensorboard-2.1.0 tensorflow-2.0.0 tensorflow-estimator-2.0.1 termcolor-1.1.0 terminaltables-3.1.0 tqdm-4.40.2 urllib3-1.25.7 werkzeug-0.16.0 wrapt-1.11.2

但是,还有个错误提示:

ERROR: tensorflow 2.0.0 has requirement tensorboard<2.1.0,>=2.0.0, but you’ll have tensorboard 2.1.0 which is incompatible.

意思是tensorflow 2.0.0需要的tensorboard版本要小于2.1.0,大于或等于2.0.0,而上面安装的tensorboard版本为2.1.0。

真是奇怪,这是默认安装的啊!

根据提示,只能降低tensorboard版本,但是感觉这个可能只影响tensorboard的使用,而我这里只是跑个Demo,所以就暂时不解决这个问题了。

1.3 下载预训练权重

$ cd weights/
$ bash download_weights.sh

网速可能很慢,要么耐心等待,要么寻求其他办法。如果网速太慢,不想等,那么这里只下载yolov3.weights文件就够用了。

1.4 下载COCO

$ cd data/
$ bash get_coco_dataset.sh

下载COCO会更慢,而且只有训练和测试时才会用到它,所以直接放弃了。

2 测试

直接运行下面的代码,就会对路径~/PyTorch-YOLOv3/data/samples下的图片进行目标检测。

python3 detect.py

但是,很不顺利,遇到很多问题。

如果安装了Python 3.6以上的版本,可能就不会遇到下面的问题,但我的Python版本为3.5.2。

2.1 错误1

f-Strings是Python 3.6开始才支持的一种新的字符串格式化方法,语法如下:

f ' <text> { <expression> <optional !s, !r, or !a> <optional : format specifier> } <text> ... '

Python 3.5.2不支持f-Strings,会报错:

File “detect.py”, line 140
plt.savefig(f"output/{filename}.png", bbox_inches=“tight”, pad_inches=0.0)

SyntaxError: invalid syntax

解决办法:

# plt.savefig(f"output/{filename}.png", bbox_inches="tight", pad_inches=0.0)
plt.savefig('output/{0}.png'.format(filename), bbox_inches="tight", pad_inches=0.0

modle.py中也有很多这个错误,全部改正即可。

2.2 错误2

报错:

raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package

更新源:

sudo apt-get update

可能报错:

W: 仓库 “http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial Release” 没有 Release 文件。
N: 无法认证来自该源的数据,所以使用它会带来潜在风险。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
E: 无法下载 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu/dists/xenial/main/binary-amd64/Packages  403  Forbidden [IP: 91.189.95.83 80]
E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

解决办法:

cd /etc/apt/sources.list.d
sudo rm jonathonf-ubuntu-python-3_6-xenial.list
sudo apt-get update
sudo apt-get install python3-tk

2.3 错误3

报错:

AttributeError: ‘Darknet’ object has no attribute ‘load_darknet_weights’

解决办法:

# model.load_darknet_weights(opt.weights_path)
model.load_weights(opt.weights_path)

3 结果

3.1 终端输出

在这里插入图片描述

3.2 输出图片

检测结果保存在路径~/PyTorch-YOLOv3/output下。

几个示例:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值