打开anaconda navigator,点击environments,然后点击creat新建一个虚拟环境,新环境命名为tensorflow,python版本选择python3.6(python版本太高会找不到匹配的tensorflow版本)。
打开anaconda prompt,输入指令进入tensorflow虚拟环境。
conda activate tensorflow
输入指令安装tensorflow2.0的cpu版本。
pip install tensorflow==2.0.0
会出现错误,表示找不到匹配的版本,可以安装的tensorflow中没有2.0.0版本,在错误提示列出的版本中选一个进行安装。
pip install tensorflow==2.2.0
安装成功!
下载地址:tf2-keras-yolo3
具体参考文章:https://blog.csdn.net/aaronjny/article/details/103658254
在根据readme文件运行代码时遇到一些错误,下面给出具体调试步骤。
点击下载链接:yolov3.weights
下载的文件保存到tf2-keras-yolo3-master文件夹内,与yolo3文件夹并列的位置。
通过convert.py脚本构建模型,并将权重转成Keras版本的。
进入D:\tf2-keras-yolo3-master\tf2-keras-yolo3-master目录下,打开终端,输入指令。
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
这里会出现错误,多次运行上述指令提示缺少几种模块,需要安装pillow、matplotlib,输入指令进行安装。
pip install pillow
pip install matplotlib
也会出现以下错误:
ImportError: numpy.core.multiarray failed to import
原因:numpy版本出问题了,与tensorflow不兼容。
解决办法:
(1)输入指令卸载所有安装的版本
pip uninstall numpy
(2)输入指令查看已经安装的numpy版本
pip show numpy
(3)发现还有1.16.4的版本,卸载该版本
pip uninstall numpy==1.16.4
(4) 再次输入指令查看是否还有numpy模块,发现找不到numpy模块表示已经卸载完成。安装与tensorflow匹配的numpy版本。
conda install numpy
安装完成后再次运行上述指令运行文件,等待转换成功。
AttributeError: ‘str’ object has no attribute ‘decode’
需要对D:\Anaconda3\envs\tensorflow\Lib\site-packages\tensorflow_core\python\keras\saving目录下的hdf5_format.py文件进行修改。
解决方法:运行该文件,对出错的位置,在所有的decode(‘utf8’)前面加上encode(‘utf8’).变成xx.encode(‘utf8’).decode(‘utf8’),问题解决。
下载一个图片命名为demo.jpg,放入D:\tf2-keras-yolo3-master\tf2-keras-yolo3-master目录下,输入指令运行yolo_video.py文件,检测图片。
python yolo_video.py --image
终端会提示你输入图片名称,输入
demo.jpg
会形成一个加上了标记框的新图片。
下载一个视频命名为video.mp4,放入D:\tf2-keras-yolo3-master\tf2-keras-yolo3-master目录下,输入指令运行yolo_video.py文件,检测视频。
python yolo_video.py --input video.mp4
会对视频逐帧进行识别和输出,形成一个加上了标记框的新视频。