@@ -87,9 +87,12 @@ def __init__(self):
8787 self ._cnn_classifiers = {}
8888 cnn_model = config .Config .get ().get ("cnn_default_model" , "" )
8989 if cnn_model != "" :
90- self ._cnn_classifiers [cnn_model ] = CNNManager .get_instance ().load_model (cnn_model )
91- self ._cnn_classifier_default = self ._cnn_classifiers [cnn_model ]
92- logging .info ("loaded: " + cnn_model + " " + str (self ._cnn_classifier_default ))
90+ try :
91+ self ._cnn_classifiers [cnn_model ] = CNNManager .get_instance ().load_model (cnn_model )
92+ self ._cnn_classifier_default = self ._cnn_classifiers [cnn_model ]
93+ logging .info ("loaded: " + cnn_model + " " + str (self ._cnn_classifier_default ))
94+ except :
95+ logging .warning ("model not found: " + cnn_model )
9396
9497 self ._camera .grab_start ()
9598 self ._image_cv = self .get_image ()
@@ -354,7 +357,7 @@ def find_ar_code(self):
354357 img = self .get_image ()
355358 return img .find_ar_code ()
356359
357- def cnn_classify (self , model_name = None ):
360+ def cnn_classify (self , model_name = None , top_results = 3 ):
358361 classifier = None
359362 if model_name :
360363 classifier = self ._cnn_classifiers .get (model_name )
@@ -364,12 +367,17 @@ def cnn_classify(self, model_name=None):
364367 else :
365368 classifier = self ._cnn_classifier_default
366369
367- img = self .get_image ()
368- classes = classifier .classify_image (img .mat ())
370+ classes = None
371+ try :
372+ img = self .get_image ()
373+ classes = classifier .classify_image (img .mat (), top_results = top_results )
374+ except :
375+ logging .warning ("classifier not available" )
376+ classes = [("None" , 1.0 )]
369377 return classes
370378
371379 def find_class (self ):
372- return self .cnn_classify () [0 ]
380+ return self .cnn_classify (top_results = 1 )[ 0 ] [0 ]
373381
374382 def sleep (self , elapse ):
375383 logging .debug ("sleep: " + str (elapse ))
0 commit comments