Tensorflow+Keras+Yolo v3在anaconda3下配置全过程
写在前面:这个配置过程仅为安装和测试教程,不涉及训练部分,最终使用的权重是YOLO官网提供已经训练好的,下载链接:https://pjreddie.com/media/files/yolov3.weights
环境:
硬件平台:战神Z6-SL7D1
- Intel Core i7-6700HQ四核处理器
- GTX960M(2G显存)
- 12G内存
软件平台:win10专业版+Anaconda3
- Python 3.5.2
- Keras 2.1.5
- tensorflow 1.6.0
- OpenCV 3.x
第一步:从GitHub上下载由qqwweee大神提供的工程,链接:https://github.com/qqwweee/keras-yolo3
下载完成并解压缩后会得到下图所示的文件
把刚才下载下来的权重文件yolov3.weights复制到上图所在的目录
第二步:配置软件环境
1、运行anaconda prompt,然后在命令行运行如下代码:【其中[ num]代表代码输入的第几步,:后边为输入的指令,若输入指令后,命令窗口出现询问确认命令,按照提示输入:y】
[1] : conda create -n tensorflow-keras-yolo3 python = 3.5.2 #(指定python版本)
[2] : activate tensorflow-keras-yolo3
[3] : pip install tensorflow==1.6.0
[4] : pip install keras==2.1.5
[5] : pip install h5py #这一步是为了后面的权重格式转换所使用
[6] : pip install opencv==3.4 #【这时会出现错误提示信息,而且会告诉你可选的有哪些,比如3.4.6一类的,选择一个版本再安装opencv】
[7] : pip install pillow
以上这些就基本上配置完了,然后回到下载的代码文件夹下,鼠标右键,pycharm打开(图中:1.摄像头测试文件 2、3. 照片测试文件,4.视频测试文件 5.下载的权重文件)
记得在pycharm中选择刚才配置的虚拟环境(这一步我就不赘述了)
第三步:由于原作者并没有提供测试图像,所以这里使用的是YOLOv3官方提供的测试图像:dog.jpg和person.jpg,还有自己录制的视频文件,你也可以随意找几张测试用的照片和测试视频放入到文件夹中,就是上图的2、3、4
第四步:添加摄像头测试代码,对摄像头是否可用进行测试
import cv2
def camera_capture_img():
cap = cv2.VideoCapture(0)#括号里的0表示是笔记本的摄像头,若为外接摄像头,我的需要改为1
while(1):
ret, frame = cap.read()
#show a frame
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
return frame
if __name__ == '__main__':
img = camera_capture_img()
第五步:需要修改一丢丢下载下来的代码,要不然摄像头捕获无法打开,文件为yolo.py,屏蔽掉2中的代码,添加1中的代码
if (os.path.exists(video_path)):
vid = cv2.VideoCapture(video_path)
else:
vid = cv2.VideoCapture(0)
res, frame = vid.read()
if not res:
print("file open failed and camera can not open")
第六步:由于tensorflow所支持的权重格式为h5文件,所以这里需要将yolov3.weights进行格式转换,代码的作者qqwweee已经在keras-yolo3中写好了转换脚本文件(convert),点击pycharm下的terminal,
[1] 首先查验命令行前边是不是自己的虚拟空间,若不是,点击“+”,或者查看自己的配置是否正确
[2] 执行python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
[3] 执行python yolo.py –image #注意:有两个“-”
若出现和我一样的AVX2等信息,可以不用管
在图中3位置输入测试图片,比如dog.jpg
图中4为检测结果,图形界面如下:
如果你要测试视频,使用下面的命令:
python yolo_video.py --input test.mp4
之后你就可以看到视频中的检测结果了
如果你要测试摄像头捕获,使用下面的命令:
python yolo_video.py
然后就等待摄像头启动吧
之后你就可以看到视频中的检测结果了
如果你要测试摄像头捕获,使用下面的命令:
python yolo_video.py
然后就等待摄像头启动吧
安装测试完毕!