def generate_hog_negative(folder, winW=400, winH=400): from src.utils.features import HOG from src.utils.io import filename2arr from src.utils.util import sliding_window X = [] Y = [] for dirName, subdirList, fileList in os.walk(folder): for filename in fileList: parts = filename.split('.') if parts[0] == '': continue print "generating file " + dirName + '/' + filename arr_big = filename2arr(dirName + '/' + filename) for (arr, m, n) in sliding_window(arr_big, winW=winW, winH=winH): fd = HOG(arr) X.append(fd) Y.append(0) return X, Y
################################### constructing pyramids and use sliding windows to match features. ################################### """ from src.utils.features import sift_descriptor m_kp, m_des = sift_descriptor(model, show=False) from skimage.transform import pyramid_gaussian from src.utils.util import sliding_window winH, winW = 400, 400 # for (i, resized) in enumerate(pyramid_gaussian(target, downscale=2)): for resized in [target]: if resized.shape[0] < winH or resized.shape[1] < winW: break for (x, y, window) in sliding_window(resized): if window.shape[0] != winH or window.shape[1] != winW or window.max() == 0: continue lighter = float(window[np.where(window > (window.max() - 100))].size) if lighter / window.size < 0.1: continue """ ################################### extract features and do match ################################### """ # t_kp, t_des = sift_descriptor(window,show=False) # from src.utils.features import matcher_Flann_KNN # matcher_Flann_KNN(t_kp, t_des, window, m_kp, m_des, model_arr)