@@ -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 ()
@@ -355,7 +358,7 @@ def find_ar_code(self):
355358 img = self .get_image ()
356359 return img .find_ar_code ()
357360
358- def cnn_classify (self , model_name = None ):
361+ def cnn_classify (self , model_name = None , top_results = 3 ):
359362 classifier = None
360363 if model_name :
361364 classifier = self ._cnn_classifiers .get (model_name )
@@ -365,12 +368,17 @@ def cnn_classify(self, model_name=None):
365368 else :
366369 classifier = self ._cnn_classifier_default
367370
368- img = self .get_image ()
369- classes = classifier .classify_image (img .mat ())
371+ classes = None
372+ try :
373+ img = self .get_image ()
374+ classes = classifier .classify_image (img .mat (), top_results = top_results )
375+ except :
376+ logging .warning ("classifier not available" )
377+ classes = [("None" , 1.0 )]
370378 return classes
371379
372380 def find_class (self ):
373- return self .cnn_classify () [0 ]
381+ return self .cnn_classify (top_results = 1 )[ 0 ] [0 ]
374382
375383 def sleep (self , elapse ):
376384 logging .debug ("sleep: " + str (elapse ))
0 commit comments