from pylab import cm from dnn_predict import get_instance as dnn_instance from io_module.video_reader import VideoReader from io_module.video_writer import VideoWriter; from io_module.block_reader import BlockReader from saliency import SaliencyProps,SaliencyMethods,get_instance as sal_instance from bg_sub import get_instance as bg_instance,BGMethods from tracker import get_instance as tracker_instance,TrackerMethods from smoothing import get_instance as smooth_instance,SmoothMethods from features.pixellete import allFeats as feats from features.color import GRAY from utils import normalize sal = sal_instance(SaliencyMethods.REGION_CONTRAST,SaliencyProps()) bg = bg_instance(BGMethods.FRAME_DIFFERENCING); smoothner = smooth_instance(feats,SmoothMethods.GMM_BASED); tracker = tracker_instance(TrackerMethods.MIXTURE_BASED); KERNEL = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3)); def __morphologicalOps__(mask): #_mask = binary_fill_holes(mask) _mask = cv2.medianBlur(np.uint8(mask),3) _mask = cv2.morphologyEx(_mask, cv2.MORPH_CLOSE,KERNEL) _mask = binary_fill_holes(_mask) _mask = remove_small_objects(_mask,min_size=128,connectivity=2) kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5)) _mask = cv2.dilate(np.uint8(_mask),kernel,iterations = 1) return _mask; def load_labels(fileName): idx = 0; labels ={}
if __name__ == "__main__": import argparse parser = argparse.ArgumentParser(description='Event tracking algorithm using saliency and bg subtraction') parser.add_argument("input",nargs='?',help = "input path",default="../examples/videos/sample_video1.avi"); parser.add_argument("output",nargs='?',help = "output path",default="test_results/final.avi"); parser.add_argument("--bg",nargs='?',help = "background subtraction method 1-FD, 2-ES, 3-MG default-2",default=1,type=int); parser.add_argument("--sal",nargs='?',help = "saliency method 1-CF, 2-CA, 3-RC, 4-SD default-3",default=3,type=int); parser.add_argument("--smoothner",nargs='?',help = "smoothing method 1-Eigen, 2-GMM, 3-SSL, default-2",default=2,type=int); parser.add_argument("--write",nargs='?',help = "write path default-Dont write",default="test_results/final.avi",type=str); parser.add_argument("--extract",nargs='?',help = "extract path default-Dont extract",default="test_results/final.feats",type=str); parser.add_argument("--num_prev_frames",nargs='?',help = "num prev frames default-3",default=2,type=int); parser.add_argument("--num_blocks",nargs='?',help = "num blocks default-6",default=6,type=int); parser.add_argument("--rsz_shape",nargs='+',help = "overlap default-[80 60]",default=[80,60],type=int); parser.add_argument("--write_gray",nargs ='?',help = "Write gray value default-0",default=0,type=int); parser.add_argument("--write_bgsub",nargs='?',help = "Write bgsub default-0",default=0,type=int); parser.add_argument("--window",nargs='?',help = "window size default-5",default=5,type=int); parser.add_argument("--overlap",nargs='?',help = "overlap default-2",default=2,type=int); args = parser.parse_args() inp = args.input; out = args.output vidreader = VideoReader(inp) sal = sal_instance(args.sal,SaliencyProps()) bg = get_instance(args.bg); smoothner = smooth_instance(feats,args.smoothner); start = time.time(); process(vidreader,sal,bg,smoothner,args.num_prev_frames,args.num_blocks,args.write,args.extract, args.write_gray==1,args.write_bgsub==1,args.window,args.overlap,args.rsz_shape); print "Event Tracker ...",inp,"[DONE] in",(time.time()-start),"seconds";
type=int) parser.add_argument("--write_bgsub", nargs='?', help="Write bgsub default-0", default=0, type=int) parser.add_argument("--window", nargs='?', help="window size default-5", default=5, type=int) parser.add_argument("--overlap", nargs='?', help="overlap default-2", default=2, type=int) args = parser.parse_args() inp = args.input out = args.output vidreader = VideoReader(inp) sal = sal_instance(args.sal, SaliencyProps()) bg = get_instance(args.bg) smoothner = smooth_instance(feats, args.smoothner) start = time.time() process(vidreader, sal, bg, smoothner, args.num_prev_frames, args.num_blocks, args.write, args.extract, args.write_gray == 1, args.write_bgsub == 1, args.window, args.overlap, args.rsz_shape) print "Event Tracker ...", inp, "[DONE] in", (time.time() - start), "seconds"