yolov2 论文地址:YOLO9000: Better, Faster, Stronger
github 项目地址:YAD2K
YAD2K 的实现用了 90% 的 Keras 和 10% Tensorflow
可以使用 anaconda 环境或者在全局安装。
(1)下载项目 git clone https://github.com/allanzelener/yad2k.git
,也可以先下载好放入目录地址下
(2)安装项目所需包,直接运行 conda env create -f environment.yml
,该文件会创建一个名为 yad2k
的环境,并在该环境下将需要的包一次性进行安装
(3)激活项目环境 conda activate yad2k
(4)[ 可选 ] 如果选择在全局环境下安装 numpy
,h5py
,pillow
等一系列包,可执行:
pip install numpy h5py pillow
pip install tensorflow-gpu # CPU-only: conda install -c conda-forge tensorflow
pip install keras # Possibly older release: conda install keras
(1)下载 Darknet 模型的 cfg
文件和 weights
:
yolov2.weights
下载:yolov2 weightsyolov2.cfg
在 Darknet 项目文件里的 cfg
(2)将 Darknet YOLO_v2 模型转换为 Keras 模型:
./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5
输出这样就说明转换成功了,这时 model_data
文件夹下也会多一个 yolo.h5
文件:
(3)在 image\
里的小型测试集上测试一下模型是否转换成功:
./test_yolo.py model_data/yolo.h5 # output in images/out/
输出这样就说明转换没有问题,/images/out
文件夹下会有 imgaes/
下几张图片的测试结果:
项目说明里并没有提及,但是最好用 yolov2 的 weights 和 cfg,不要直接用最新版的 yolo.weights
,不然转换模型时很可能报错!
yolov2 官网:yolov2 website
执行语句:
./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5
和
./test_yolo.py model_data/yolo.h5
报错:bash: ./*.py: Permission denied
尝试使用管理员命令运行:$ sudo ./*.py
,但仍然得到 error sudo: ./tools/demo.py: command not found
解决:
$ chmod +x ./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5
或者
$ python ./yad2k.py yolov2.cfg yolov2.weights model_data/yolo.h5
哪个管用用哪个。
packages/tensorflow/python/_pywrap_t ensorflow.so: undefined symbol: cudnnCreate
Aborted (core dumped)
一般是 CUDA 和 tensorflow-gpu 的版本对不上,在这里看到 CUDA、cuDNN 和 tensorflow-gpu 版本的推荐配置:configure page
截个图,方便查看:
查看自己的 CUDA 和 cudnn 的版本:
1)直接用 nvcc --version
查看:
2)CUDA 一般安装在 /usr/local/cuda/ 路径下,该路径下有一个version.txt文档,里面记录了 CUDA 的版本信息,执行语句:
cat /usr/local/cuda/version.txt
3)cuDNN 的信息在其头文件里,执行语句:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
这里可以到看到 CUDA 版本是 9.0,cuDNN 版本是 7.0.5,官方推荐的 tensorflow 对应版本是:1.5 / 1.6 / 1.7 / 1.8 / 1.9 / 1.10 / 1.11 / 1.12
解决:
pip uninstall tensorflow-gup==1.0.1
pip install tensorflow-gpu==1.5.0
numpy.core.umath failed to import
解决:仍然是 Tensorflow-gpu 的版本问题,命令行输入:
pip install -U numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/
PermissionError: [Errno 13] Permission denied: 'images/out/dog.jpg'
解决:是因为 /image 目录下已经有了 out
文件夹,导致冲突,删除 out 文件夹即可。