• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

MMM-Face-Reco-DNN - All new Face Recognition

Scheduled Pinned Locked Moved Utilities
36 Posts 14 Posters 15.2k Views 17 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    nischi @ChrizZz
    last edited by Jul 28, 2019, 3:31 PM

    @ChrizZz
    Thanks for your solution. Usually it’s because the link for cv2 is to the wrong python Version.
    Happy to hear that it works.

    1 Reply Last reply Reply Quote 0
    • C Offline
      ChrizZz
      last edited by Jul 28, 2019, 8:59 PM

      is it common that it takes 40sec between face recognition and turning the TV on?

      I see it happen after a freshly restarted pi, that it takes 40/45sec. The scenario is that I restart my pi, mm is autostarting and the TV is turned off by the module. Between the restart and the 1st face recognition is ~3min time.

      N 1 Reply Last reply Jul 29, 2019, 2:39 PM Reply Quote 0
      • N Offline
        nischi @ChrizZz
        last edited by Jul 29, 2019, 2:39 PM

        @ChrizZz
        Sound a little bit long to me, for me it works faster. But it took a while until they are startet. Do you use default settings?

        C 1 Reply Last reply Jul 30, 2019, 8:45 PM Reply Quote 0
        • C Offline
          ChrizZz @nischi
          last edited by Jul 30, 2019, 8:45 PM

          @nischi said in MMM-Face-Reco-DNN - All new Face Recognition:

          @ChrizZz
          Sound a little bit long to me, for me it works faster. But it took a while until they are startet. Do you use default settings?

          My logs file is also a bit weird:

          [MMM-Face-Reco-DNN] Users ChrizZz logged in.
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          [MMM-Face-Reco-DNN] Users ChrizZz logged out.
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          [MMM-Face-Reco-DNN] Users ChrizZz logged in.
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          [MMM-Face-Reco-DNN] Users ChrizZz logged out.
          [MMM-Face-Reco-DNN] Users ChrizZz logged in.
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          [MMM-Face-Reco-DNN] Users ChrizZz logged out.
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          CECControl received (current, new): off on
          CECControl received (current, new): on off
          
          

          This is a 3min part of the logs and the 1st time I was in front of the mirror and recognized by the module this evening.

          My settings are:

          		{
          			module: 'MMM-CECControl',
              				config: {
                					  // Comport of your Raspberry Pi
                					  comport: 'RPI',
                					  // Turn the TV off if the Mirror start
                 					 offOnStartup: true
              					}
          		},
          		{
              			module: 'MMM-MotionControl',
             				 config: {
               					   // Delay to turn the TV off
                 						 delay: 60000,
                 					 // Interval to check modules
           					       interval: 5000,
           				       // Use the module MMM-Facial-Recognition-OCV3
            				      useFacialRecognitionOCV3: false,
             				     // Use the module MMM-Face-Reco-DNN
             				     useMMMFaceRecoDNN: true,
             				     // Array where tv should be on
          				        ontime: []
          					    }
          		},
          		{
          			module: 'MMM-Face-Reco-DNN',
              				config: {
                					// Logout 15 seconds after user was not detecte anymore, if they will be detected between this 15 Seconds, they delay will start again
                					logoutDelay: 30000,
                					// How many time the recognition starts, with a RasPi 3+ it would be good every 2 seconds
                					checkInterval: 2000,
                					// Module set used for strangers and if no user is detected
                					defaultClass: 'default',
                					// Set of modules which should be shown for every user
                					everyoneClass: 'everyone',
                					// XML to recognize with haarcascae
                					cascade: 'modules/MMM-Face-Reco-DNN/tools/haarcascade_frontalface_default.xml',
                					// Pre encoded pickle with the faces
                					encodings: 'modules/MMM-Face-Reco-DNN/tools/encodings.pickle',
                					// You wanna use pi camera or usb / builtin (1 = raspi camera, 0 = other camera)
                					usePiCamera: 1,
                					// Method of face detection (dnn = deep neural network, haar = haarcascade)
                					method: 'dnn',
                					// Which face detection model to use. "hog" is less accurate but faster on CPUs. "cnn" is a more accurate deep-learning model which is GPU/CUDA accelerated (if available).
                					detectionMethod: 'hog',
                					// How fast in ms should the modules hide and show (face effect)
                					animationSpeed: 0,
                					// Path to Python to run the face recognition (null / '' means default path)
                					pythonPath: null,
                					// Should shown welcome message over alert module from MagicMirror
                					welcomeMessage: true
              					}
          		},
          
          1 Reply Last reply Reply Quote 0
          • D Offline
            dragontattoo
            last edited by Jul 31, 2019, 5:12 AM

            Is it working fine??

            C 1 Reply Last reply Aug 1, 2019, 8:48 PM Reply Quote 0
            • C Offline
              ChrizZz @dragontattoo
              last edited by Aug 1, 2019, 8:48 PM

              @dragontattoo said in MMM-Face-Reco-DNN - All new Face Recognition:

              Is it working fine??

              Depends on how you define working fine…The face recognition is working quite good, setting it up is easy with the advice you get in this thread. For me it’s just the “slow” reaction to activate the display which is an issue. But I’m optimistic that there is a way to solve it and I have a special environment with a display which hasn’t CEC control.

              N 1 Reply Last reply Aug 2, 2019, 11:48 AM Reply Quote 0
              • N Offline
                nischi @ChrizZz
                last edited by Aug 2, 2019, 11:48 AM

                @ChrizZz
                Yes i know this issue. i’m currently working on a bugfix. will tell you if i’m done.

                1 Reply Last reply Reply Quote 2
                • I Offline
                  Ivanov_d
                  last edited by Aug 6, 2019, 10:50 AM

                  I am turning on the monitor using a PIR sensor and it is instant. Keep in mind that it also depends on your monitor, some are slower to respond - this is my second monitor, the first one was very slow to respond to any HDMI related commands.

                  1 Reply Last reply Reply Quote 0
                  • C Offline
                    ChrizZz
                    last edited by Aug 15, 2019, 6:05 PM

                    I have a new strange error and I think it’s just if I restart mm with “pm2 restart mm”. If I reboot my pi, everything is fine.

                    SyntaxError: Unexpected token m in JSON at position 0
                        at JSON.parse (<anonymous>:null:null)
                        at PythonShell.asJson (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:375:21)
                        at /home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:326:42
                        at Array.forEach (<anonymous>:null:null)
                        at PythonShell.receiveInternal (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:322:15)
                        at PythonShell.receiveStderr (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:306:21)
                        at Socket.<anonymous> (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:109:22)
                        at Socket.emit (events.js:182:13)
                        at addChunk (_stream_readable.js:279:12)
                        at readableAddChunk (_stream_readable.js:260:13)
                        at Socket.Readable.push (_stream_readable.js:219:10)
                        at Pipe.onread (net.js:636:20)
                    
                    SyntaxError: Unexpected token T in JSON at position 0
                        at JSON.parse (<anonymous>:null:null)
                        at PythonShell.asJson (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:375:21)
                        at /home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:326:42
                        at Array.forEach (<anonymous>:null:null)
                        at PythonShell.receiveInternal (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:322:15)
                        at PythonShell.receiveStderr (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:306:21)
                        at Socket.<anonymous> (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:109:22)
                        at Socket.emit (events.js:182:13)
                        at addChunk (_stream_readable.js:279:12)
                        at readableAddChunk (_stream_readable.js:260:13)
                        at Socket.Readable.push (_stream_readable.js:219:10)
                        at Pipe.onread (net.js:636:20)
                    
                    { Error: mmal: mmal_vc_port_enable: failed to enable port vc.null_sink:in:0(OPQV): ENOSPC
                    mmal: mmal_port_enable: failed to enable connected port (vc.null_sink:in:0(OPQV))0x631b2f0 (ENOSPC)
                    mmal: mmal_connection_enable: output port couldn't be enabled
                    Traceback (most recent call last):
                      File "modules/MMM-Face-Reco-DNN/tools/facerecognition.py", line 56, in <module>
                        vs = VideoStream(usePiCamera=True).start()
                      File "/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/tools/stream.py", line 18, in __init__
                        framerate=framerate)
                      File "/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/tools/picam.py", line 10, in __init__
                        self.camera = PiCamera()
                      File "/usr/lib/python3/dist-packages/picamera/camera.py", line 433, in __init__
                        self._init_preview()
                      File "/usr/lib/python3/dist-packages/picamera/camera.py", line 513, in _init_preview
                        self, self._camera.outputs[self.CAMERA_PREVIEW_PORT])
                      File "/usr/lib/python3/dist-packages/picamera/renderers.py", line 558, in __init__
                        self.renderer.inputs[0].connect(source).enable()
                      File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 2212, in enable
                        prefix="Failed to enable connection")
                      File "/usr/lib/python3/dist-packages/picamera/exc.py", line 184, in mmal_check
                        raise PiCameraMMALError(status, prefix)
                    picamera.exc.PiCameraMMALError: Failed to enable connection: Out of resources
                    
                        at PythonShell.parseError (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:268:21)
                        at terminateIfNeeded (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:139:32)
                        at ChildProcess.<anonymous> (/home/pi/MagicMirror/modules/MMM-Face-Reco-DNN/node_modules/python-shell/index.js:131:13)
                        at ChildProcess.emit (events.js:182:13)
                        at Process.ChildProcess._handle.onexit (internal/child_process.js:237:12)
                    
                      executable: 'python3',
                      options: null,
                      script: 'modules/MMM-Face-Reco-DNN/tools/facerecognition.py',
                      args:
                       [ '--cascade=modules/MMM-Face-Reco-DNN/tools/haarcascade_frontalface_default.xml',
                         '--encodings=modules/MMM-Face-Reco-DNN/tools/encodings.pickle',
                         '--usePiCamera=1',
                         '--method=dnn',
                         '--detectionMethod=hog',
                         '--interval=2000',
                         '--output=0' ],
                      exitCode: 1 }
                    
                    1 Reply Last reply Reply Quote 0
                    • B Offline
                      Blauenfeldt
                      last edited by Oct 22, 2019, 9:41 AM

                      I get this too, when my PI can’t connect to the camera. I know that, because if i use
                      Raspistill -o s.jpg
                      I will get an error there too. A reboot seems to fix it though. I don’t know what makes it happen, but i suspect the cable.

                      S 1 Reply Last reply Oct 22, 2019, 10:54 AM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 2 / 4
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy