コード例 #1
0
ファイル: EasyTest.py プロジェクト: permikomnaskaltara/CVAC
    def test_getLabelableList(self):
        print("testing getLabelableList")
        sys.stdout.flush()
        labelList = easy.getLabelableList("easyTestData")
        '''verify that the labels are correct
           They should be , the root directory "easyTestData",
           "kitchen" and "MITmountain"
           
        '''
        for entry in labelList:
            print("label name " + entry.lab.name)
            if entry.lab.name != "easyTestData" and \
               entry.lab.name != "kitchen" and \
               entry.lab.name != "MITmountain":
                raise RuntimeError(
                    "Not a valid label name in test getLabelableList")
            if entry.lab.name == "kitchen":
                # should find easyTestData, inside, house properties
                if "easyTestData" not in entry.lab.properties:
                    raise RuntimeError("easyTestData not in properties")
                if "inside" not in entry.lab.properties:
                    raise RuntimeError("inside not in properties")
                if "house" not in entry.lab.properties:
                    raise RuntimeError("house not in properties")
        ''' verify that we can make a runset and use it with the labelableList
        '''
        runset = cvac.RunSet()
        posPurpose = easy.getPurpose('pos')
        easy.addToRunSet(runset, labelList, posPurpose)
        if not easy.isProperRunSet(runset):
            raise RuntimeError(
                "test getLabelableList failed with an invalid runset")
        labelList = easy.getLabelableList("easyTestData", recursive=False)
        ''' should only have one label "easyTestData"
        '''
        for entry in labelList:
            if entry.lab.name != "easyTestData":
                raise RuntimeError(
                    "recursive option failed in test getLabelableList")
            if len(entry.lab.properties) > 0:
                raise RuntimeError("labelable should not have any properties")

        if not easy.isProperRunSet(runset):
            raise RuntimeError(
                "test getLabelableList failed with an invalid runset with non-recursive call"
            )
コード例 #2
0
ファイル: EasyTest.py プロジェクト: AlgorithemJourney/CVAC
 def test_getLabelableList(self):
     print("testing getLabelableList")
     sys.stdout.flush()
     labelList = easy.getLabelableList("easyTestData")
     '''verify that the labels are correct
        They should be , the root directory "easyTestData",
        "kitchen" and "MITmountain"
        
     '''
     for entry in labelList:
         print ("label name " + entry.lab.name)
         if entry.lab.name != "easyTestData" and \
            entry.lab.name != "kitchen" and \
            entry.lab.name != "MITmountain":
             raise RuntimeError("Not a valid label name in test getLabelableList")
         if entry.lab.name == "kitchen":
             # should find easyTestData, inside, house properties
             if "easyTestData" not in entry.lab.properties:
                 raise RuntimeError("easyTestData not in properties")
             if "inside" not in entry.lab.properties:
                 raise RuntimeError("inside not in properties")
             if "house" not in entry.lab.properties:
                 raise RuntimeError("house not in properties")
                 
     
     ''' verify that we can make a runset and use it with the labelableList
     '''
     runset = cvac.RunSet()
     posPurpose = easy.getPurpose('pos')
     easy.addToRunSet(runset, labelList, posPurpose)
     if not easy.isProperRunSet(runset):
         raise RuntimeError("test getLabelableList failed with an invalid runset")
     labelList = easy.getLabelableList("easyTestData", recursive=False)
     ''' should only have one label "easyTestData"
     '''
     for entry in labelList:
         if entry.lab.name != "easyTestData":
             raise RuntimeError("recursive option failed in test getLabelableList")
         if len(entry.lab.properties) > 0:
             raise RuntimeError("labelable should not have any properties")
             
     if not easy.isProperRunSet(runset):
         raise RuntimeError("test getLabelableList failed with an invalid runset with non-recursive call")
コード例 #3
0
# a simple RunSet with just one unlabeled image;
# remember that paths are relative to CVAC.DataDir
rs1 = easy.createRunSet( "testImg/italia.jpg" )
print("=== RunSet 1: ===");
easy.printRunSetInfo( rs1, printLabels=True )

# to give samples a purpose, state the purpose:
rs2 = easy.createRunSet( "testImg/italia.jpg", "POSITIVE" )
print("\n=== RunSet 2: ===");
easy.printRunSetInfo( rs2, printLabels=True )

# add more samples to a runset; anything starting with "pos"
# will be added into the POSITIVE sequence of labeled items
easy.addToRunSet( rs2, "testImg/TestKrFlag.jpg", "POS" )
easy.addToRunSet( rs2, "testImg/TestCaFlag.jpg", "neg" )
easy.addToRunSet( rs2, "testImg/TestUsFlag.jpg", "0" )
print("\n=== RunSet 2, after appending: ===");
easy.printRunSetInfo( rs2, printLabels=True )

# create a runset from a folder with sub-folders
rs3 = easy.createRunSet( "trainImg" )
print("\n=== RunSet 3: ===");
easy.printRunSetInfo( rs3, printLabels=True )

# you can check wether the runset has been properly constructed:
if easy.isProperRunSet( rs3 ):
    print("correctly constructed runset")
else:
    print("improperly constructed runset")
コード例 #4
0
ファイル: Recognition.py プロジェクト: AlgorithemJourney/CVAC
categories, lablist = easy.getDataSet( corpus, corpusServer=cs )
print('Obtained {0} labeled artifact{1} from corpus "{2}":'.format(
    len(lablist), ("s","")[len(lablist)==1], corpus.name ));
easy.printCategoryInfo( categories )

# if desired, you can draw the images and their annotations,
# one image at a time, at a given maximum size (width, height)
#easy.drawLabelables( lablist, (512, 512) )

print("==== Training runset: ====")
posPurpose = easy.getPurpose('pos')
negPurpose = easy.getPurpose('neg')
trainset = cvac.RunSet()
easy.addToRunSet(trainset, categories[objname], posPurpose);
#trainset = easy.createRunSet( categories, purpose=posPurpose );
correct = easy.isProperRunSet(trainset, deleteInvalid=True)
if not correct:
    print("failed Integrity test!!!!")
    exit()
#trainset = easy.createRunSet( categories, purpose=posPurpose );
#easy.printRunSetInfo( trainset, printLabels=True )
easy.printRunSetInfo( trainset )

#
# Connect to the trainer for a Bag of Words algorithm, then
# train with the given runset
#
#trainer = easy.getTrainer( "BOW_Trainer")
trainer = easy.getTrainer( "BOW_Trainer:default -p 10103")
trainedModel = easy.train( trainer, trainset )
zipfname = easy.getFSPath( trainedModel )
コード例 #5
0
categories, lablist = easy.getDataSet(corpus, corpusServer=cs)
print('Obtained {0} labeled artifact{1} from corpus "{2}":'.format(
    len(lablist), ("s", "")[len(lablist) == 1], corpus.name))
easy.printCategoryInfo(categories)

# if desired, you can draw the images and their annotations,
# one image at a time, at a given maximum size (width, height)
#easy.drawLabelables( lablist, (512, 512) )

print("==== Training runset: ====")
posPurpose = easy.getPurpose('pos')
negPurpose = easy.getPurpose('neg')
trainset = cvac.RunSet()
easy.addToRunSet(trainset, categories[objname], posPurpose)
#trainset = easy.createRunSet( categories, purpose=posPurpose );
correct = easy.isProperRunSet(trainset, deleteInvalid=True)
if not correct:
    print("failed Integrity test!!!!")
    exit()
#trainset = easy.createRunSet( categories, purpose=posPurpose );
#easy.printRunSetInfo( trainset, printLabels=True )
easy.printRunSetInfo(trainset)

#
# Connect to the trainer for a Bag of Words algorithm, then
# train with the given runset
#
#trainer = easy.getTrainer( "BOW_Trainer")
trainer = easy.getTrainer("BOW_Trainer:default -p 10103")
trainedModel = easy.train(trainer, trainset)
zipfname = easy.getFSPath(trainedModel)