# digit-detection models and setting detect_model = "model/digit-detector/detector_model.hdf5" recognize_model = "model/digit-detector/recognize_model.hdf5" mean_value_for_detector = 107.524 mean_value_for_recognizer = 112.833 model_input_shape = (32,32,1) preproc_for_detector = preproc.GrayImgPreprocessor(mean_value_for_detector) preproc_for_recognizer = preproc.GrayImgPreprocessor(mean_value_for_recognizer) char_detector = cls.CnnClassifier(detect_model, preproc_for_detector, model_input_shape) char_recognizer = cls.CnnClassifier(recognize_model, preproc_for_recognizer, model_input_shape) digit_spotter = detector.DigitSpotter(char_detector, char_recognizer, rp.MserRegionProposer()) # open the csv file of player-face-detection and find out the cloths color for each teams df = pd.read_csv('C:/Users/shing/Desktop/player_info.csv', names =('Team','Num','Name','R','G','B')) RDB_med = df.groupby('Team').median() R0_med, G0_med, B0_med = RDB_med.iloc[0,1:4] R1_med, G1_med, B1_med = RDB_med.iloc[1,1:4] def process (input_image, params, model_params): #oriImg = cv2.imread(input_image) # B,G,R order oriImg = input_image multiplier = [x * model_params['boxsize'] / oriImg.shape[0] for x in params['scale_search']] heatmap_avg = np.zeros((oriImg.shape[0], oriImg.shape[1], 19))
preprocessor_for_detector = preproc.GrayImgPreprocessor( mean_value_for_detector) preprocessor_for_recognizer = preproc.GrayImgPreprocessor( mean_value_for_recognizer) detector = cls.CnnClassifier(detect_model, preprocessor_for_detector, model_input_shape) recognizer = cls.CnnClassifier(recognize_model, preprocessor_for_recognizer, model_input_shape) proposer = rp.MserRegionProposer() # 2. create detector det = detect.DigitSpotter(detector, recognizer, proposer) # 3. Evaluate average precision evaluator = eval.Evaluator(det, annotator, rp.OverlapCalculator()) recall, precision, f1_score = evaluator.run(img_files) # recall value : 0.1757938334100322, precision value : 0.18070009460737937, f1_score : 0.1782132027058549 # 4. Evaluate MSER detector = cls.TrueBinaryClassifier(input_shape=model_input_shape) preprocessor = preproc.NonePreprocessor() # Todo : detector, recognizer 를 none type 으로 det = detect.DigitSpotter(detector, recognizer, proposer) evaluator = eval.Evaluator(det, annotator, rp.OverlapCalculator()) recall, precision, f1_score = evaluator.run(img_files, do_nms=False) # recall value : 0.7165209387942936, precision value : 0.015586989818902604, f1_score : 0.030510268067095156