USB Camera program

USB 카메라 구동 프로그램 
import os
import sys
import time
import math
import getopt
import numpy as np
import cv2
import threading
import subprocess
from collections import deque
from lock_manager import Lock_Manager
from util import Util
class UsbWebCamera(threading.Thread):
    def __init__(self, fps=10, video_source=0, source=None):
        
        threading.Thread.__init__(self)
        self.name = self.__class__.__name__
        self.archive = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'archive')
        self.current_frame = None
        self.codec = cv2.VideoWriter_fourcc('M','J', 'P', 'G')
        self.OBSERVER_LENGTH = 5 # Time in seconds to be observed for motion
        self.threshold = 15
        self.CAMERA_SOURCE = video_source
        self.REMAIN_RECORDING_FILES = 10 # 10이상 부터 삭제 후 저장
        self.source = cv2.VideoCapture(self.CAMERA_SOURCE) if source is not None else self.init_camera()
        #self.fps = self.find_fps(self.source)
        self.fps = fps
        Util.log(self.name, "Setting FPS to " + str(self.fps))      
        self.source.set(cv2.CAP_PROP_FPS,self.fps)
        #self.height, self.width = self.get_dimensions(self.source)
        Util.log(self.name, "Initializing pi camera class with video_source=" + str(self.CAMERA_SOURCE))
        #Util.log(self.name,"width: {"+str(self.width)+"}, height : {"+str(self.height)+"}")
        self.lock_manager = Lock_Manager("motion")
    def __del__(self):
        self.source.release()
        cv2.destroyAllWindows()
        self.lock_manager.remove()
    def get_captureFrame(self):
        return self.current_frame if self.current_frame is not None else None
    def get_frame(self):
        return self.frame_to_jpg(self.current_frame) if self.current_frame is not None else None
    def frame_to_jpg(self, frame):
        ret, jpeg = cv2.imencode('.jpg', self.current_frame)
        return jpeg.tobytes()
    def get_dimensions(self, source):
        frame = cv2.cvtColor(source.read()[1],cv2.COLOR_RGB2GRAY)
        return frame.shape[0: 2]
    def find_fps(self, source):
        Util.log(self.name, "Determining FPS...")
        num_frames = 120
        start = time.time()
        for i in range(0, num_frames):
            ret, frame = source.read()
        end = time.time()
        fps = int(math.floor(num_frames / (end - start)))
        Util.log(self.name, "Setting FPS to " + str(fps))
        return fps
    def init_camera(self):
        camera = cv2.VideoCapture(self.CAMERA_SOURCE)
        time.sleep(0.5)
        return camera
    def run(self):
        while True:           
            (grabbed, self.current_frame) = self.source.read()
            # End of feed
            if not grabbed:
                break