コード例 #1
0
 def __init__(self,
              background_subtractor=BackgroundSubtractor(),
              segmenter: MRFVideo = MRFVideo(),
              descriptor: Descriptor = HistogramOfGradients()):
     super().__init__(descriptor, segmenter)
     self.background_subtractor = background_subtractor
     self.segmenter = segmenter
コード例 #2
0
 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
コード例 #3
0
 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_
コード例 #4
0
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()
コード例 #5
0
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))
コード例 #6
0
 def get_descr(self, img):
     return self.get_codebook_dist(
         HistogramOfGradients(self.winsize, self.n_bins).get_descr(img),
         self.codebook)
コード例 #7
0
 def __init__(self, descriptor: Descriptor = HistogramOfGradients(), segmenter: Segmenter = MRFAsl(),
              img_size=(60, 60)):
     self.img_size = img_size
     self.descriptor = descriptor
     self.segmenter = segmenter
コード例 #8
0
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()
コード例 #9
0
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)