trainer = contenders[idx].getTrainer() detectorData = easy.train( trainer, runset, \ trainerProperties=contenders[idx].trainerProps ) rocData_optimal.append([detectorData,\ rocData_full[idx][0],rocData_full[idx][1],\ rocData_full[idx][2]]) ''' ROC zip ''' rocZip = easy.makeROCdata(rocData_optimal) ''' Extract only optimal ROC points ''' detector = easy.getDetector( strDetector ) detectorProps = easy.getDetectorProperties(detector) #specify either a desired falseAlarmRate or recall, but not both: priority = "recall" if priority=="falseAlarmRate": detectorProps.falseAlarmRate = 0.01 #x-axis print("falseAlarmRate = {0}".format(detectorProps.falseAlarmRate)) else: detectorProps.recall = 0.90 #y-axis print("recall = {0}".format(detectorProps.recall)) results = easy.detect( detector, rocZip, runset, detectorProperties = detectorProps) easy.printResults( results ) else: ############################################################### # Without background data ''' Execute jousting for generating ROC points
def getDetectorProps( self ): if not self.detectorProps: self.detectorProps = easy.getDetectorProperties( self.getDetector() ) return self.detectorProps
def test_cvacdatadir(self): print("testing cvac data dir") if sys.platform == 'win32': datadir = os.getenv("CVAC_DATADIR", None) datadir = datadir.replace("/", "\\") easy.CVAC_DataDir = datadir print("Testing using back slashes") print("Using CVAC_DATADIR as " + datadir) testset = [] easy.misc.searchDir(testset, datadir + '\\testImg', recursive=True, video=False, image=True) runset = cvac.RunSet() easy.addToRunSet(runset, testset, 'pos') modelfile = 'detectors/bowUSKOCA.zip' detector = easy.getDetector("BOW_Detector") props = easy.getDetectorProperties(detector) props.verbosity = 3 results = easy.detect(detector, modelfile, runset, detectorProperties=props) easy.printResults(results) else: print("Skipping back slash test on this platform") #run it again with all forward slashes datadir = os.getenv("CVAC_DATADIR", None) datadir = datadir.replace("\\", "/") print("Testing using all forward slashes") print("Using CVAC_DATADIR as " + datadir) easy.CVAC_DataDir = datadir testset = [] easy.misc.searchDir(testset, datadir + '/testImg', recursive=True, video=False, image=True) runset = cvac.RunSet() easy.addToRunSet(runset, testset, 'pos') modelfile = 'detectors/bowUSKOCA.zip' detector = easy.getDetector("BOW_Detector") props = easy.getDetectorProperties(detector) props.verbosity = 3 results = easy.detect(detector, modelfile, runset, detectorProperties=props) easy.printResults(results) #run it for forward slashes and relative path origDir = datadir curDir = os.getcwd() curDir = curDir.replace("\\", "/") datadir = datadir.replace("\\", "/") print("using relative paths for " + curDir + " in data dir " + datadir) if datadir.startswith(curDir): datadir = datadir[len(curDir)+1:] easy.CVAC_DataDir = datadir print("Using CVAC_DataDir as " + datadir) testset = [] easy.misc.searchDir(testset, origDir + '/testImg', recursive=True, video=False, image=True) runset = cvac.RunSet() easy.addToRunSet(runset, testset, 'pos') modelfile = origDir + '/detectors/bowUSKOCA.zip' detector = easy.getDetector("BOW_Detector") props = easy.getDetectorProperties(detector) props.verbosity = 3 results = easy.detect(detector, modelfile, runset, detectorProperties=props) easy.printResults(results) else: RuntimeError("Bad datadir")
c.detectorData = "detectors/dpmStarbucksLogo.zip" c.foundMap = { 'Positive': easy.getPurpose('pos'), 'Negative': easy.getPurpose('neg') } contenders.append(c) # OpenCVCascade, with special settings for anticipated poor performance if (easy.getTrainer("OpenCVCascadeTrainer") == None): print("Cascade service(s) are insufficiently configured, skipping.") else: c = ev.Contender("cascade") c.trainerString = "OpenCVCascadeTrainer" c.detectorString = "OpenCVCascadeDetector" # c.foundMap = {'any':easy.getPurpose('pos')} c.foundMap = {'positive': posPurpose, 'negative': negPurpose} detector = easy.getDetector(c.detectorString) detectorProps = easy.getDetectorProperties(detector) c.detectorProps = detectorProps c.detectorProps.props["maxRectangles"] = "200" c.detectorProps.minNeighbors = 0 # This prevents hang up in evaluator when training has too few samples contenders.append(c) runset = easy.createRunSet("trainImg/kr", "pos") easy.addToRunSet(runset, "trainImg/ca", "neg") easy.printRunSetInfo(runset, printArtifacts=False, printLabels=True) perfdata = ev.joust(contenders, runset, folds=3) ev.printEvaluationResults(perfdata[0])
def test_cvacdatadir(self): print("testing cvac data dir") if sys.platform == 'win32': datadir = os.getenv("CVAC_DATADIR", None) datadir = datadir.replace("/", "\\") easy.CVAC_DataDir = datadir print("Testing using back slashes") print("Using CVAC_DATADIR as " + datadir) testset = [] easy.misc.searchDir(testset, datadir + '\\testImg', recursive=True, video=False, image=True) runset = cvac.RunSet() easy.addToRunSet(runset, testset, 'pos') modelfile = 'detectors/bowUSKOCA.zip' detector = easy.getDetector("BOW_Detector") props = easy.getDetectorProperties(detector) props.verbosity = 3 results = easy.detect(detector, modelfile, runset, detectorProperties=props) easy.printResults(results) else: print("Skipping back slash test on this platform") #run it again with all forward slashes datadir = os.getenv("CVAC_DATADIR", None) datadir = datadir.replace("\\", "/") print("Testing using all forward slashes") print("Using CVAC_DATADIR as " + datadir) easy.CVAC_DataDir = datadir testset = [] easy.misc.searchDir(testset, datadir + '/testImg', recursive=True, video=False, image=True) runset = cvac.RunSet() easy.addToRunSet(runset, testset, 'pos') modelfile = 'detectors/bowUSKOCA.zip' detector = easy.getDetector("BOW_Detector") props = easy.getDetectorProperties(detector) props.verbosity = 3 results = easy.detect(detector, modelfile, runset, detectorProperties=props) easy.printResults(results) #run it for forward slashes and relative path origDir = datadir curDir = os.getcwd() curDir = curDir.replace("\\", "/") datadir = datadir.replace("\\", "/") print("using relative paths for " + curDir + " in data dir " + datadir) if datadir.startswith(curDir): datadir = datadir[len(curDir) + 1:] easy.CVAC_DataDir = datadir print("Using CVAC_DataDir as " + datadir) testset = [] easy.misc.searchDir(testset, origDir + '/testImg', recursive=True, video=False, image=True) runset = cvac.RunSet() easy.addToRunSet(runset, testset, 'pos') modelfile = origDir + '/detectors/bowUSKOCA.zip' detector = easy.getDetector("BOW_Detector") props = easy.getDetectorProperties(detector) props.verbosity = 3 results = easy.detect(detector, modelfile, runset, detectorProperties=props) easy.printResults(results) else: RuntimeError("Bad datadir")