oarriaga / face_classification

Real-time face detection and emotion/gender classification using fer2013/imdb datasets with a keras CNN model and openCV.
MIT License
5.61k stars 1.59k forks source link

problem with runs code in other platform #46

Closed fadsamo closed 6 years ago

fadsamo commented 6 years ago

hello orriaga...codes works so great for me in ubuntu os... when i run video_emotion_gender_demo in raspberry pi that have raspbian stretch as os ,then i got some errors ,did you know i how overcome the errors thanks in advance

mirceaciu commented 6 years ago

Give a bit more input. How did you install dlib and opencv, what errors do you get?

fadsamo commented 6 years ago

i got this error InvalidArgumentError Traceback (most recent call last) ~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, args) 1326 try: -> 1327 return fn(args) 1328 except errors.OpError as e:

~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/client/session.py in _run_fn(session, feed_dict, fetch_list, target_list, options, run_metadata) 1296 # Ensure any changes to the graph are reflected in the runtime. -> 1297 self._extend_graph() 1298 with errors.raise_exception_on_not_ok_status() as status:

~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/client/session.py in _extend_graph(self) 1357 tf_session.TF_ExtendGraph( -> 1358 self._session, graph_def.SerializeToString(), status) 1359 self._opened = True

/usr/lib/python3.5/contextlib.py in exit(self, type, value, traceback) 65 try: ---> 66 next(self.gen) 67 except StopIteration:

~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py in raise_exception_on_not_ok_status() 465 compat.as_text(pywrap_tensorflow.TF_Message(status)), --> 466 pywrap_tensorflow.TF_GetCode(status)) 467 finally:

InvalidArgumentError: No OpKernel was registered to support Op 'Switch' with these attrs. Registered devices: [CPU], Registered kernels: device='GPU'; T in [DT_STRING] device='GPU'; T in [DT_BOOL] device='GPU'; T in [DT_INT32] device='GPU'; T in [DT_FLOAT] device='CPU'; T in [DT_FLOAT] device='CPU'; T in [DT_INT32]

 [[Node: batch_normalization_12/cond/Switch = Switch[T=DT_BOOL](batch_normalization_1/keras_learning_phase, batch_normalization_1/keras_learning_phase)]]

During handling of the above exception, another exception occurred:

InvalidArgumentError Traceback (most recent call last)

in () 28 # loading models 29 face_detection = load_detection_model(detection_model_path) ---> 30 emotion_classifier = load_model(emotion_model_path, compile=False) 31 gender_classifier = load_model(gender_model_path, compile=False) 32 ~/.virtualenvs/cv/lib/python3.5/site-packages/keras/models.py in load_model(filepath, custom_objects, compile) 241 242 # set weights --> 243 topology.load_weights_from_hdf5_group(f['model_weights'], model.layers) 244 245 # Early return if compilation is not required. ~/.virtualenvs/cv/lib/python3.5/site-packages/keras/engine/topology.py in load_weights_from_hdf5_group(f, layers) 3140 ' elements.') 3141 weight_value_tuples += zip(symbolic_weights, weight_values) -> 3142 K.batch_set_value(weight_value_tuples) 3143 3144 ~/.virtualenvs/cv/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py in batch_set_value(tuples) 2245 assign_ops.append(assign_op) 2246 feed_dict[assign_placeholder] = value -> 2247 get_session().run(assign_ops, feed_dict=feed_dict) 2248 2249 ~/.virtualenvs/cv/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py in get_session() 179 # not already marked as initialized. 180 is_initialized = session.run( --> 181 [tf.is_variable_initialized(v) for v in candidate_vars]) 182 uninitialized_vars = [] 183 for flag, v in zip(is_initialized, candidate_vars): ~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata) 893 try: 894 result = self._run(None, fetches, feed_dict, options_ptr, --> 895 run_metadata_ptr) 896 if run_metadata: 897 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr) ~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata) 1122 if final_fetches or final_targets or (handle and feed_dict_tensor): 1123 results = self._do_run(handle, final_targets, final_fetches, -> 1124 feed_dict_tensor, options, run_metadata) 1125 else: 1126 results = [] ~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/client/session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata) 1319 if handle is None: 1320 return self._do_call(_run_fn, self._session, feeds, fetches, targets, -> 1321 options, run_metadata) 1322 else: 1323 return self._do_call(_prun_fn, self._session, handle, feeds, fetches) ~/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args) 1338 except KeyError: 1339 pass -> 1340 raise type(e)(node_def, op, message) 1341 1342 def _extend_graph(self): InvalidArgumentError: No OpKernel was registered to support Op 'Switch' with these attrs. Registered devices: [CPU], Registered kernels: device='GPU'; T in [DT_STRING] device='GPU'; T in [DT_BOOL] device='GPU'; T in [DT_INT32] device='GPU'; T in [DT_FLOAT] device='CPU'; T in [DT_FLOAT] device='CPU'; T in [DT_INT32] [[Node: batch_normalization_12/cond/Switch = Switch[T=DT_BOOL](batch_normalization_1/keras_learning_phase, batch_normalization_1/keras_learning_phase)]] Caused by op 'batch_normalization_12/cond/Switch', defined at: File "/usr/lib/python3.5/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.5/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/ipykernel_launcher.py", line 16, in app.launch_new_instance() File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/traitlets/config/application.py", line 658, in launch_instance app.start() File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/ipykernel/kernelapp.py", line 477, in start ioloop.IOLoop.instance().start() File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/zmq/eventloop/ioloop.py", line 177, in start super(ZMQIOLoop, self).start() File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tornado/ioloop.py", line 888, in start handler_func(fd_obj, events) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tornado/stack_context.py", line 277, in null_wrapper return fn(*args, **kwargs) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py", line 440, in _handle_events self._handle_recv() File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py", line 472, in _handle_recv self._run_callback(callback, msg) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py", line 414, in _run_callback callback(*args, **kwargs) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tornado/stack_context.py", line 277, in null_wrapper return fn(*args, **kwargs) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/ipykernel/kernelbase.py", line 283, in dispatcher return self.dispatch_shell(stream, msg) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/ipykernel/kernelbase.py", line 235, in dispatch_shell handler(stream, idents, msg) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/ipykernel/kernelbase.py", line 399, in execute_request user_expressions, allow_stdin) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/ipykernel/ipkernel.py", line 196, in do_execute res = shell.run_cell(code, store_history=store_history, silent=silent) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/ipykernel/zmqshell.py", line 533, in run_cell return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2728, in run_cell interactivity=interactivity, compiler=compiler, result=result) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2850, in run_ast_nodes if self.run_code(code, result): File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "", line 30, in emotion_classifier = load_model(emotion_model_path, compile=False) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/models.py", line 240, in load_model model = model_from_config(model_config, custom_objects=custom_objects) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/models.py", line 314, in model_from_config return layer_module.deserialize(config, custom_objects=custom_objects) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/layers/__init__.py", line 55, in deserialize printable_module_name='layer') File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/utils/generic_utils.py", line 139, in deserialize_keras_object list(custom_objects.items()))) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/engine/topology.py", line 2500, in from_config process_node(layer, node_data) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/engine/topology.py", line 2457, in process_node layer(input_tensors[0], **kwargs) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/engine/topology.py", line 603, in __call__ output = self.call(inputs, **kwargs) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/layers/normalization.py", line 190, in call training=training) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", line 2753, in in_train_phase x = switch(training, x, alt) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", line 2688, in switch else_expression_fn) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/util/deprecation.py", line 296, in new_func return func(*args, **kwargs) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1808, in cond p_2, p_1 = switch(pred, pred) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/ops/control_flow_ops.py", line 302, in switch return gen_control_flow_ops._switch(data, pred, name=name) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/ops/gen_control_flow_ops.py", line 354, in _switch result = _op_def_lib.apply_op("Switch", data=data, pred=pred, name=name) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op op_def=op_def) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2630, in create_op original_op=self._default_original_op, op_def=op_def) File "/home/pi/.virtualenvs/cv/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1204, in __init__ self._traceback = self._graph._extract_stack() # pylint: disable=protected-access InvalidArgumentError (see above for traceback): No OpKernel was registered to support Op 'Switch' with these attrs. Registered devices: [CPU], Registered kernels: device='GPU'; T in [DT_STRING] device='GPU'; T in [DT_BOOL] device='GPU'; T in [DT_INT32] device='GPU'; T in [DT_FLOAT] device='CPU'; T in [DT_FLOAT] device='CPU'; T in [DT_INT32] [[Node: batch_normalization_12/cond/Switch = Switch[T=DT_BOOL](batch_normalization_1/keras_learning_phase, batch_normalization_1/keras_learning_phase)]] ..............................................................................................................................................................
fadsamo commented 6 years ago

also i installed opencv and dlib correctly...i compiled them correctly in pyimagesearch website solution

fadsamo commented 6 years ago

Hello guys...could you help me?? I dont know that what's my problem...please help

mirceaciu commented 6 years ago

InvalidArgumentError: No OpKernel was registered to support Op 'Switch' with these attrs. Registered devices: [CPU], Registered kernels:

Error suggests some problems with Tensorflow. Wish i knew more to help, maybe something went wrong during install?

I think I had face_classification working on RaspberryPi, I used some guide to install tensorflow

fadsamo commented 6 years ago

thank you very much , i will do and will install again

chrjxj commented 6 years ago

@dariushpt did you solve the problem already? I got the same error on raspberry pi (Ubuntu Mate).

fadsamo commented 6 years ago

Yes i solve it...you should install tensorflow again....you should ensure that h5py be installed in your virtualenvironment