diff --git a/scripts/attributesWeighted.py b/scripts/attributesWeighted.py new file mode 100644 index 0000000..14b97b2 --- /dev/null +++ b/scripts/attributesWeighted.py @@ -0,0 +1,27 @@ +import os +import sys + +if not (len(sys.argv)) == 3: + print("ERROR: Input requires 3 parameters\nUsage: attributesWeighted.py ") +else: + mask = "MEDS.mask" + fr_matrix = "faceRecognition.mtx" + attr_matrix = "attributes.mtx" + min_weight = sys.argv[1] + max_weight = sys.argv[2] + constant = 1 + + if not os.path.isfile(mask): + print("ERROR: No mask found, run compareFaceRecognitionToAttributes.py first then try again") + elif not os.path.isfile(fr_matrix): + print("ERROR: No face recognition matrix found, run compareFaceRecognitionToAttributes.py first then try again") + elif not os.path.isfile(attr_matrix): + print("ERROR: No attributes matrix found, run compareFaceRecognitionToAttributes.py first then try again") + else: + for i in range(int(min_weight), int(max_weight)): + print("Using weights " + str(i) + ":" + str(constant)) + os.system("br -fuse " + fr_matrix + " " + attr_matrix + " ZScore Sum" + str(i) + ":" + str(constant) + " weightedFusion.mtx") + os.system("br -eval weightedFusion.mtx " + mask + " weightedFusion.csv") + os.system("br -eval faceRecognition.mtx " + mask + " faceRecognition.csv") + os.system("br -eval attributes.mtx " + mask + " attributes.csv") + os.system("br -plot faceRecognition.csv attributes.csv weightedFusion.csv weightedFusion_" + str(i) + ".pdf") diff --git a/scripts/compareFaceRecognionToAttributes.py b/scripts/compareFaceRecognionToAttributes.py new file mode 100755 index 0000000..05cef60 --- /dev/null +++ b/scripts/compareFaceRecognionToAttributes.py @@ -0,0 +1,46 @@ +import os +import sys + +if not (len(sys.argv) == 2 or len(sys.argv) == 4): + print("ERROR: Input requires 1 or 3 input parameters\n Usage: compareFaceRecognitionToAttributes.py [optional]< >") +else: + data = sys.argv[1] + compareData = "../data/MEDS/img" + attrDir = "Attributes" + attrPath = attrDir + "/all.model" + mask = "MEDS.mask" + if len(sys.argv) == 4: + query = sys.argv[2] + target = sys.argv[3] + else: + query = "../data/MEDS/sigset/MEDS_frontal_query.xml" + target = "../data/MEDS/sigset/MEDS_frontal_target.xml" + + #Create Evaluation Mask + if not os.path.isfile(mask): + os.system("br -makeMask ../data/MEDS/sigset/MEDS_frontal_target.xml ../data/MEDS/sigset/MEDS_frontal_query.xml " + mask) + + #Train FaceRecognition Algorithm (Already trained from "make install") + #os.system("br -algorithm FaceRecognition -path " + data + " -train results1194v2.turk faceRecognition.model") + #Train Attributes Algorithm + if not os.path.isfile(attrPath): + os.system("mkdir -p " + attrDir) + os.system("br -algorithm AllAttributesMatching -path " + data + " -train results1194v2.turk " + attrPath) + + #Run FaceRecognition Comparison + os.system("br -path " + compareData + " -algorithm FaceRecognition -compare " + target + " " + query + " faceRecognition.mtx") + #Run Attributes Comparison + os.system("br -path " + compareData + " -TurkTargetHuman false -TurkQueryMachine true -algorithm " + attrPath + " -compare " + target + " " + query + " attributes.mtx") + + #Fuse the Matricies + os.system("br -fuse faceRecognition.mtx attributes.mtx ZScore Sum fusion.mtx") + + #Evaluate all three matricies + os.system("br -eval faceRecognition.mtx " + mask + " faceRecognition.csv") + os.system("br -eval attributes.mtx " + mask + " attributes.csv") + os.system("br -eval fusion.mtx " + mask + " faceRecognitionVSAttributes.csv") + + #Plot results + os.system("br -plot faceRecognition.csv faceRecognition.pdf") + os.system("br -plot attributes.csv attributes.pdf") + os.system("br -plot faceRecognition.csv attributes.csv faceRecognitionVSAttributes.csv faceRecognitionVSAttributes.pdf")