def getOriginalImageInfo(originalImageFileList): originalImageInfo = {} for filename in originalImageFileList: img = cv.imread(filename) originalImageInfo[getImageID(filename)] = SubImageClassifier.getImageInfo(img) return originalImageInfo
def getImageFeatureFromImagePath(imagePath, originalImageInfo, thresholds, num_cut = 5): data = np.zeros([len(imagePath), 6+num_cut*2]) for (i,filename) in enumerate(imagePath): id = getImageID(filename) img = cv.imread(filename) thisOriginalImageInfo = originalImageInfo[id] data[i, :] = SubImageClassifier.getImageFeature(thisOriginalImageInfo, img, thresholds, num_cut) print '%d images has been collected.' %len(imagePath) return data
# originalImagePath = "/home/ec2-user/VizioMetrics/Corpus/Dismantler/train_corpus/ee_cat1_multi" # standaloneImagePath = "/home/ec2-user/VizioMetrics/Corpus/Dismantler/train_corpus/ee_cat1_multi_subimages/standalone" # auxiliaryImagePath = "/home/ec2-user/VizioMetrics/Corpus/Dismantler/train_corpus/ee_cat1_multi_subimages/auxiliary" print 'Loading images...' originalImageFileList = ImgLoader.getFileNamesFromPath(originalImagePath) standaloneImageFileList = ImgLoader.getFileNamesFromPath(standaloneImagePath) auxiliaryImageFileList = ImgLoader.getFileNamesFromPath(auxiliaryImagePath) auxiliaryImageFileList = getBatchOfImageFileList(auxiliaryImageFileList, 1) originalImageInfo = getOriginalImageInfo(originalImageFileList) allFeatures = np.vstack([getImageFeatureFromImagePath(standaloneImageFileList, originalImageInfo, Opt_train.thresholds), getImageFeatureFromImagePath(auxiliaryImageFileList, originalImageInfo, Opt_train.thresholds)]) print allFeatures.shape allLabeledNames = getLabeledName(Opt_train.classNames, [len(standaloneImageFileList), len(auxiliaryImageFileList)]) print 'All images are loaded' SVM_train = SubImageClassifier(Opt_train, isTrain = True) SVM_train.trainModel(allFeatures, allLabeledNames) # # # SVM_train = SVMClassifier(Opt_train, isTrain = True) # SVM_train.trainModel(allFeatures, allLabeledNames) print 'Model has been trained'