美文网首页machine learning/deep learning
利用多次判断提高模型准确度

利用多次判断提高模型准确度

作者: 壹刀_文 | 来源:发表于2018-07-09 12:08 被阅读0次

    假如 ,使用训练好的模型在验证集上的准确率是99% ,那就是平均100张有1张错误。在视频识别的过程中,如果视频帧数为比较低的30帧,那也代表3秒内平均有3次错误。如果是流畅视频就更高了。

    理论上模型的识别是几乎没有到达100%。损失函数也几乎不可能为0,那样几乎就是过拟合了。

    为了提高在视频里面的识别准确率,采用多次判别,并且每次判别结果都一致之后,才进行输出。这是我常采用的方法。


    number_count = 0
    number =0
    N_K = 0
    def judge_number(frame,count=5):
        #在判定杀人的情况下,判定击杀人数
        global kill_number_count
        global number
        global N_K
       
        cut = cut_number(frame)
        cut = cv2.resize(cut,(50,50))
        cut = cv2.cvtColor(cut, cv2.COLOR_BGR2LAB)
        b, g, r = cv2.split(cut)
        out = g
        ret,binary=cv2.threshold(out,165,255,cv2.THRESH_BINARY_INV)  
        binary = np.expand_dims(binary, axis=0)
        
        predict=model.predict(binary)
        A = predict[0].tolist()
        result = (A.index(max(A)))+1
        number_count += 1
        if number_count >= count:
            if number == result:
                N_K += 1
                if N_K > 90:
                    number_count = 0
                    N_K = 0
                    return result
            number = result
    
    • 使用 count 来判别 连续5个画面都有查找到需要识别的内容
    • 然后使用 N_k 来判别,连续90次的结果都是一致的才进行输出

    在帧数为60的视频里,90次的画面判别也只需要1.5秒。在我目前做的项目中已经可以达到要求。关键是不能输出错误的结果
    如果调整的连续正确画面数目太大,可能会造成没有输出;但是调小之后如果造成输出不准确,有两个方面进行考虑:

    1. 调整N_K 参数,到合适的范围(这是个费时间的过程);
    2. 提高模型的准确率,提高方法就有许多了 :)

    相关文章

      网友评论

        本文标题:利用多次判断提高模型准确度

        本文链接:https://www.haomeiwen.com/subject/gxizuftx.html