def __init__(self, background_subtractor=BackgroundSubtractor(), segmenter: MRFVideo = MRFVideo(), descriptor: Descriptor = HistogramOfGradients()): super().__init__(descriptor, segmenter) self.background_subtractor = background_subtractor self.segmenter = segmenter
def __init__(self, descriptor: Descriptor = HistogramOfGradients(), img_size=(30, 30), segmenter=GrayThresh()): PreProcessor.__init__(self) self.segmenter = segmenter self.descriptor = descriptor self.roi_size = img_size
def get_codebook( self, images, k_words=128, ): descriptors = np.vstack([ HistogramOfGradients(self.winsize, self.n_bins).get_descr(img) for img in images ]) return KMeans(n_clusters=k_words).fit(descriptors).cluster_centers_
from preprocessing.PreProcessorVideo import PreProcessorVideo from preprocessing.representation.HistogramOfGradients import HistogramOfGradients from preprocessing.segmentation.BackgroundSubtractor import BackgroundSubtractor from preprocessing.segmentation.MRFVideo import MRFVideo camera = cv2.VideoCapture(0) # keep looping, until interrupted keypress = cv2.waitKey(1) & 0xFF calibrate_print_flag = calibrated_print_flag = False roi_left = 0 roi_right = 0 roi_top = 0 roi_bottom = 0 preprocessor = PreProcessorVideo(BackgroundSubtractor(0.5), segmenter=MRFVideo(), descriptor=HistogramOfGradients()) estimator = EstimatorVideo("../../resource/models/model_hog_asl.pkl") num_frames = 0 while keypress != ord("q"): # observe the keypress by the user keypress = cv2.waitKey(10) & 0xFF # get the current frame (grabbed, frame) = camera.read() # resize the frame frame = imutils.resize(frame, width=800) # flip the frame so that it is not the mirror view frame = cv2.flip(frame, 1) # clone the frame clone = frame.copy()
estimator = EstimatorVideo( model_path='../../../resource/models/model_hog_asl.pkl') predictions = [] score = 0 for letter_i, letter in enumerate(letters): for i in range(1, 5): diff_image = FileProvider.read_img(test_image_path + letter + '/Difference' + str(i) + ".jpg") test_image = FileProvider.read_img(test_image_path + letter + '/Original' + str(i) + ".jpg") if i == 1: preprocessor = PreProcessorVideo( background_subtractor=BackgroundSubtractorDummy( diff_image, test_image), descriptor=HistogramOfGradients(n_bins=16)) preprocessor.calibrate_object(test_image) test_image = preprocessor.preprocess(test_image) descr = preprocessor.get_descr(test_image) estimator.stack_descr(descr) class_ = estimator.predict() predictions.append(class_ - 1) if letter is letters[class_ - 1]: score += 1 accuracy = score / 24 print("Accuracy: " + str(accuracy))
def get_descr(self, img): return self.get_codebook_dist( HistogramOfGradients(self.winsize, self.n_bins).get_descr(img), self.codebook)
def __init__(self, descriptor: Descriptor = HistogramOfGradients(), segmenter: Segmenter = MRFAsl(), img_size=(60, 60)): self.img_size = img_size self.descriptor = descriptor self.segmenter = segmenter
from app.FrameHandler import FrameHandler from app.UserInterface import UserInterface from classification.EstimatorVideo import EstimatorVideo from preprocessing.PreProcessorVideo import PreProcessorVideo from preprocessing.representation.HistogramOfGradients import HistogramOfGradients from preprocessing.segmentation.BackgroundSubtractor import BackgroundSubtractor from preprocessing.segmentation.MRFVideo import MRFVideo preprocessor = PreProcessorVideo(BackgroundSubtractor(0.5), segmenter=MRFVideo(), descriptor=HistogramOfGradients(window_size=6, n_bins=16)) frame_handler = FrameHandler( preprocessor, EstimatorVideo(model_path="../../resource/examples/model_hog_asl.pkl")) ui = UserInterface(frame_handler) frame_handler.daemon = True frame_handler.start() ui.run()
import random import cv2 from datagen.FileProviderAsl import FileProviderAsl from preprocessing.PreProcessorAsl import PreProcessorAsl from preprocessing.representation.HistogramOfGradients import HistogramOfGradients from preprocessing.segmentation.MRFAsl import MRFAsl letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y"] example_image_file = "../../resource/dataset/fingerspelling5/dataset5/A/a/color_0_0027.png" pp = PreProcessorAsl(segmenter=MRFAsl(), descriptor=HistogramOfGradients(), img_size=(120, 120)) # read image img = FileProviderAsl.read_img(example_image_file) cv2.imshow('depth', cv2.normalize(img[1], None, 0, 255, cv2.NORM_MINMAX)) cv2.imshow('image', img[0]) img = pp.preprocess(img) cv2.imshow("after prefiltering", img) descriptor = pp.get_descr(img) print("Descriptor: \n" + str(descriptor)) # print("dim: \n" + str(descriptor.shape[1])) cv2.waitKey(30000) cv2.destroyAllWindows() exit(0)