这次实训我们主要的任务是,提供车辆的图片或者是视频,我们需要返回标注了车辆位置和类型的图片和视频。
实训第一天,我们直接学习跑了yolov3模型进行学习。
快速使用方法
0.pip安装opencv-python,h5py,Pillow,tensorflow,keras,matplotlib
例:终端 pip install opencv-python
1、下载yolov3代码:https://github.com/qqwweee/keras-yolo3 ,并解压缩之后用pycharm打开。
2、下载权重:https://pjreddie.com/media/files/yolov3.weights并将权重放在keras-yolo3的文件夹下。如下图所示:
3.将权重转换为h5文件,并注意YOLO类中路径设置
python convert.py yolov3.cfg yolov3.weight model_data/yolo.h5
class YOLO(object):
_defaults = {
"model_path": 'C:/Users/HPuser/PycharmProjects/summer/keras_yolo3_master/model_data/yolo.h5',
"anchors_path": 'C:/Users/HPuser/PycharmProjects/summer/keras_yolo3_master/model_data/tiny_yolo_anchors.txt',
"classes_path": 'C:/Users/HPuser/PycharmProjects/summer/keras_yolo3_master/model_data/voc_classes.txt',
"score" : 0.3,
"iou" : 0.45,
"model_image_size" : (416, 416),
"gpu_num" : 1,
}
4.由于代码已经被修改过,现在新增了一个yolo_video.py,我们需要在命令行下启动这个py
python yolo_video.py --image
Input image filename:2.jpg
5.结果展示
之后我们考虑对源码的修改和训练自己的数据
--------------------------------可爱的分割线-------------------------------------------------
6.20日下午,我将原本需要在命令行进行的图片识别修改成了可以根据图片路径查询。下面附上我的代码
这里的1.jpg是我直接拷贝到当前目录上的一张图片,用于进行测试。
from yolo import YOLO, detect_video
from PIL import Image
def detect_img(yolo,src):
#while True:
#img = input('Input image filename:')
try:
image = Image.open(src)
except:
print('Open Error! Try again!')
#continue
else:
r_image = yolo.detect_image(image)
r_image.show()
yolo.close_session()
detect_img(YOLO(),'1.jpg')