• 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 17.3k 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.
  • C Offline
    ChrizZz
    last edited by Jul 22, 2019, 7:22 PM

    damn - 2nd try without a virtual environment.

    @nischi: Is there a chance that you merge your module also with MMM-MotionDetector? Currently I use the camera to activate and deactive my screen and Google told me that it isn’t possible that 2 processes use the same camera. The suggested solution was to use a 2nd camera, merge both processes or stream the camera picture.

    N 1 Reply Last reply Jul 25, 2019, 12:53 PM Reply Quote 1
    • I Offline
      Ivanov_d
      last edited by Jul 24, 2019, 7:58 PM

      @ChrizZz I have used camera motion detection and I gave it up, because:

      1. It is not very reliable (maybe it was just my cheap camera that I used for testing back then)
      2. it is resource hungry

      Because of that I use an external wireless PIR sensor which is part of my smart home system to turn on/off my SmartMirror and it works great. Since the motion processing happens on my smart home system and the Mirror is turned on/off via SSH command it takes up no resources at all from the MagicMirror which is already at 60% load when using Facial Recognition.

      1 Reply Last reply Reply Quote 2
      • N Offline
        nischi @ChrizZz
        last edited by Jul 25, 2019, 12:53 PM

        @ChrizZz
        You can use my other Module https://github.com/nischi/MMM-MotionControl to control TV with my Face Reco Module. It communicate with Notifications and is not using an own Camera Stream.

        G 1 Reply Last reply Jul 25, 2020, 11:29 PM Reply Quote 1
        • C Offline
          ChrizZz
          last edited by ChrizZz Jul 26, 2019, 9:43 PM Jul 26, 2019, 3:13 PM

          oh, I didn’t know that you have a modul for it. But unfortunately it isn’t working on my Pi. Your modul doesn’t recognize a motion.

          Do I have to uninstall the MMM-MotionDetector first?
          Or do I need to run Face-Reco-DNN or the OCV3 version?

          //edit: I think I know why it isn’t working. Maybe my display isn’t HDMI-CEC ready. I changed the command of your node_helper.js.
          Default:

          turnOn: function() {
          		var self = this;
          		exec('echo "on 0" | cec-client ' + this.config.comport + ' -s -d 1', function (error, stdout, stderr) {
          			self.status = 'on';
          

          My version:

          turnOn: function() {
          		var self = this;
          		exec('vcgencmd display_power 1', function (error, stdout, stderr) {
          			self.status = 'on';
          

          Instead of sending a note to my display for standby I switch off the display_power. But I can’t wake up the display again. I think I have to use Face-Reco-DNN or Facial-Recognition-OCV3. Currently I don’t use them because I have to do the setup for the DNN version.

          N 1 Reply Last reply Jul 27, 2019, 6:07 AM Reply Quote 0
          • N Offline
            nischi @ChrizZz
            last edited by Jul 27, 2019, 6:07 AM

            @ChrizZz
            Yes you need to use one of the Face Reco Module that this works. Better my new Module ;) it’s much more accurate.

            C 1 Reply Last reply Jul 27, 2019, 11:33 AM Reply Quote 1
            • C Offline
              ChrizZz @nischi
              last edited by ChrizZz Jul 27, 2019, 12:47 PM Jul 27, 2019, 11:33 AM

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

              @ChrizZz
              Yes you need to use one of the Face Reco Module that this works. Better my new Module ;) it’s much more accurate.

              Thanks, I will use your new module.

              During the setup I have another issue. It’s when I want to start encoding I get this error message:

              Traceback (most recent call last):
                File "encode.py", line 5, in <module>
                  from imutils import paths
                File "/usr/local/lib/python3.7/dist-packages/imutils/__init__.py", line 8, in <module>
                  from .convenience import translate
                File "/usr/local/lib/python3.7/dist-packages/imutils/convenience.py", line 6, in <module>
                  import cv2
              ModuleNotFoundError: No module named 'cv2'
              

              I think it’s a problem of my OpenCV installation where I skipped the virtualenvs. In step 6 of the tutorial I should do this:

              $ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
              $ ln -s /usr/local/python/cv2/python-3.5/cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so
              $ cd ~
              

              I skipped that because I have no idea where I have to create the link when I install this without virtualenvs. But it seems that I have to link it…

              //edit: Key to success:

              cd ~/opencv-4.0.0/build/lib/python3
              sudo cp cv2.cpython-35m-arm-linux-gnueabihf.so /usr/local/lib/python3.5/dist-packages/cv2.so
              
              N 1 Reply Last reply Jul 28, 2019, 3:31 PM Reply Quote 0
              • 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
                      • 1
                      • 2
                      • 3
                      • 4
                      • 2 / 4
                      2 / 4
                      • First post
                        13/36
                        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