手撸keras-yolov3测试代码

测试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)

注:原创不易,如需转载,请标明作者与出处

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
资源为视频检测算法代码包括算法的模型,算法实现的原理是:首先在视频检测跟踪之前,对所有目标已经完成检测,那么当第一帧进来时,以检测到的目标初始化并创建新的跟踪器,标注ID,输出行人图片,输出一组向量,通过比对两个向量之间的距离,来判断两副输入图片是否是同一个行人。在后面帧进来时,先到卡尔曼滤波器中得到由前面帧box产生的状态预测和协方差预测,并且使用确信度较高的跟踪结果进行预测结果的修正。求跟踪器所有目标状态与本帧检测的box的IOU,通过匈牙利算法寻找二分图的最大匹配,在多目标检测跟踪问题中为寻找前后两帧的若干目标的匹配最优解,得到IOU最大的唯一匹配,在去掉匹配值小于iou_threshold的匹配对。 用本帧中匹配到的目标检测box去更新卡尔曼跟踪器,计算卡尔曼增益,状态更新和协方差更新。并将状态更新值输出,作为本帧的跟踪box,再对于本帧中有匹配到的目标重新初始化跟踪器。 yolo v3首先通过特征提取网络对输入图像提取特征,得到一定size的feature map,通过尺寸聚类确定anchor box。对每个bounding box网络预测4个坐标偏移。如果feature map某一单元偏移图片左上角坐标,bounding box预选框尺寸为,即anchor尺寸,那么生成对预测坐标为,此为feature map层级.而为真值在feature map上的映射,通过预测偏移使得与一致。类别预测方面为多标签分类,采用多个scale融合的方式做预测。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值