不说环境,都是耍流氓。
$ git clone https://github.com/eriklindernoren/PyTorch-YOLOv3
$ cd PyTorch-YOLOv3/
$ sudo pip3 install -r requirements.txt
打开requirements.txt
,需要的依赖为:
下载完成时,输出:
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,所以就暂时不解决这个问题了。
$ cd weights/
$ bash download_weights.sh
网速可能很慢,要么耐心等待,要么寻求其他办法。如果网速太慢,不想等,那么这里只下载yolov3.weights
文件就够用了。
$ cd data/
$ bash get_coco_dataset.sh
下载COCO会更慢,而且只有训练和测试时才会用到它,所以直接放弃了。
直接运行下面的代码,就会对路径~/PyTorch-YOLOv3/data/samples
下的图片进行目标检测。
python3 detect.py
但是,很不顺利,遇到很多问题。
如果安装了Python 3.6以上的版本,可能就不会遇到下面的问题,但我的Python版本为3.5.2。
f-Strings
是Python 3.6开始才支持的一种新的字符串格式化方法,语法如下:
f ' { } ... '
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
中也有很多这个错误,全部改正即可。
报错:
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
报错:
AttributeError: ‘Darknet’ object has no attribute ‘load_darknet_weights’
解决办法:
# model.load_darknet_weights(opt.weights_path)
model.load_weights(opt.weights_path)
检测结果保存在路径~/PyTorch-YOLOv3/output
下。
几个示例: