测试keras-yolov3模型,直接使用yolo_video.py时报错:
不知道是什么原因,无法打开摄像头或者视频,总之过程比较复杂(是本人没读懂说明),不如动手撸一段代码进行测试,说干就干,代码如下。主要有两种方式,视频和图片,视频测试分为对已录制的视频进行目标检测,另一种是opencv打开摄像头实时进行目标检测,代码比较粗鲁,
from yolo import YOLO, detect_video
from PIL import Image
import cv2
import numpy as np
# 参数配置
yolo_test_args = {
"model_path": 'model_data/yolo.h5',
"anchors_path": 'model_data/yolo_anchors.txt',
"classes_path": 'model_data/coco_classes.txt',
"score" : 0.4,
"iou" : 0.40,
"model_image_size" : (416, 416),
"gpu_num" : 1,
}
# 定义图片检测方式辅助函数
def test_image(image_path):
img = cv2.imread(image_path,1)
image = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
r_image = yolo_test.detect_image(image)
r_image.show()
# 定义视频方式检测辅助函数
def test_video():
while(True):
_,img = cap.read()
image = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) #opencv->pil
r_image = yolo_test.detect_image(image)
op_image = cv2.cvtColor(np.asarray(r_image), cv2.COLOR_RGB2BGR) #pil->opencv
cv2.imshow('test',op_image)
if cv2.waitKey(16)==ord('q'):
cap.release()
cv2.destroyAllWindows()
break
# 主函数
if __name__=='__main__':
yolo_test = YOLO(**yolo_test_args)
# 1 视频测试:两种模式:1.1读取本地视频;1.2打开摄像头
video_path = './images/test_video.mp4' #本地视频路径
cap = cv2.VideoCapture(video_path) # 读取本地视频方式
# cap = cv2.VideoCapture(0) #打开摄像头方式
test_video()
# 2 测试图片
# image_path = './images/bus.jpg' #图片路径
# test_image(image_path)
注:原创不易,如需转载,请标明作者与出处