处理抢劫案夜间闭路电视录像?

时间:2017-05-14 06:42:15

标签: opencv video video-processing

我有一个关于自行车抢劫的cctv镜头,视频不清楚。我正在努力增强视频,以查找有关车辆或面部的详细信息或其中的任何其他信息。 https://drive.google.com/file/d/0B8ZjiDWHZ1j-QkVKZFV4ZkV1ODA/view?usp=sharing original原始histogram equalised直方图均衡CLAHE CLAHE

到目前为止我在python opencv中所做的一切

  1. 基本直方图均衡,因为它是夜晚的镜头。
  2. 由于影片中有明亮的热点,我应用了对比度受限的自适应组均衡(CLAHE),并尝试了限幅1到10,网格大小从4到32。
  3. 我一直在使用gabor滤镜来减少自行车的前照灯闪光但是无法将其调到合适的参数。
  4. 由于视频中存在一些噪音,因此想到使用fastNlDenoising对其进行去噪,但没有结果。
  5. 由于图像很小,我尝试使用SeRanet SeRanet on github对图像进行超分辨率。但即使在单张图像上也很慢,并且结果不足以验证视频中的脸部。 (至少在我运行SeRanet的框架上)。
  6. 有关如何从视频中收集更多信息的任何帮助(或者由于某些限制而死路一条)

    import numpy as np
    import cv2
    import time
    cap = cv2.VideoCapture('./bike_robbery.mp4')
    clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(32,32))
    count=0
    sig = 1
    th = 0
    lm = 1.0
    gm = 0.02
    ps = 0;
    ksize =31
    gaborKernel=cv2.getGaborKernel((ksize,ksize), sig, th, lm, gm, ps);
    sleeptime=0.001
    while(cap.isOpened()):
        ret, frame = cap.read()
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        cl1 = clahe.apply(gray)
        equ = cv2.equalizeHist(gray)
        #denoise=cv2.fastNlMeansDenoising(cl1,None,3,90,2)
        ths=cv2.threshold(equ, 230, 255, cv2.THRESH_BINARY)[1]
        gab=cv2.filter2D(cl1,0 , cv2.CV_32F, gaborKernel);
        kernel = np.array([[-1,-1,-1], [-1,18,-1], [-1,-1,-1]])
        im = cv2.filter2D(equ, -1, kernel)
        res = np.hstack((gray,equ,cl1)) #stacking images side-by-side
        cv2.imwrite("./clahe_pics/frame%d.jpg" % count, cl1)
        cv2.imwrite("./hist_pics/frame%d.jpg" % count, equ)
        count = count + 1
        cv2.imshow('frame',res)
        time.sleep(sleeptime)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        if cv2.waitKey(1) & 0xFF == ord('s'):
            sleeptime+=0.05
        if cv2.waitKey(1) & 0xFF == ord('f'):
            sleeptime-=.05
    cap.release()
    cv2.destroyAllWindows()
    

1 个答案:

答案 0 :(得分:-1)

根据这个问题,如果你想找到人类和自行车的存在,你可以使用一些分类器,如人体检测和车辆检测。对于人体检测,您可以轻松找到预训练的哈尔分类器模型。对于检测自行车,您可以训练模型。好像这是一个实时问题。  但如果您担心照明问题,可以使用LAB图像并增强图像的L通道并调整图像的亮度。 对于人体检测,您可以在opencv的这条路径中找到模型:directory:opencv\sources\data\haarcascades