• 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.

Facial Recognition - customize your mirror for every user!

Scheduled Pinned Locked Moved Troubleshooting
215 Posts 55 Posters 460.1k Views 57 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.
  • J Offline
    JavierTSalas
    last edited by Aug 15, 2017, 6:34 PM

    Hey guys. I’m having difficulty using my webcam with the capture.py script. I’m able to use fswebcame and motion to capture video but I keep getting errors running the script. I’m using a the playstion eye as a webcam. Any ideas?

    1 Reply Last reply Reply Quote 0
    • S Offline
      salamures
      last edited by Nov 1, 2017, 10:04 PM

      Hi there, maybe someone is able to help me out.
      I am trying to run capture.py but getting this Error

      Traceback (most recent call last):
         File "capture.py", line 18, in 
            import lib.capture as capture
         File "/home/pi/MagicMirror/modules/MMM-Facial-Recognition-Tools/lib/capture.py", line 21, in 
           from . import config
         File "/home/pi/MagicMirror/modules/MMM-Facial-Recognition-Tools/lib/config.py", line 15, in 
           (CV_MAJOR_VER, CV_MINOR_VER, mv1, mv2) = cv2.__version__.split(".")
      ValueError: not enough values to unpack (expected 4, got 3)
      
      A 1 Reply Last reply Nov 2, 2017, 4:28 PM Reply Quote 0
      • A Offline
        avinash @salamures
        last edited by Nov 2, 2017, 4:28 PM

        @salamures said in Facial Recognition - customize your mirror for every user!:

        Hi there, maybe someone is able to help me out.
        I am trying to run capture.py but getting this Error

        Traceback (most recent call last):
           File "capture.py", line 18, in 
              import lib.capture as capture
           File "/home/pi/MagicMirror/modules/MMM-Facial-Recognition-Tools/lib/capture.py", line 21, in 
             from . import config
           File "/home/pi/MagicMirror/modules/MMM-Facial-Recognition-Tools/lib/config.py", line 15, in 
             (CV_MAJOR_VER, CV_MINOR_VER, mv1, mv2) = cv2.__version__.split(".")
        ValueError: not enough values to unpack (expected 4, got 3)
        

        I am also facing the same issue. Any effort to resolve it will be appreciated.

        S 1 Reply Last reply Nov 2, 2017, 5:59 PM Reply Quote 0
        • S Offline
          salamures @avinash
          last edited by salamures Nov 2, 2017, 8:25 PM Nov 2, 2017, 5:59 PM

          Are you using OpenCV 3.3? Then i might can help you.

          1 Reply Last reply Reply Quote 0
          • S Offline
            salamures
            last edited by Nov 2, 2017, 6:03 PM

            Got another problem. My picam is not able to open. I am using opencv 3.3.

            Remember to set the name list environment variable FACE_USERS
            Using default FACE_ALGORITM: 1
            Traceback (most recent call last):
            File "facerecognition.py", line 30, in 
            camera = config.get_camera(preview)
            File "/home/pi/MagicMirror/modules/MMM-Facial-Recognition-Tools/lib/config.py", line 101, in get_camera
            return webcam.OpenCVCapture(device_id=0)
            File "/home/pi/MagicMirror/modules/MMM-Facial-Recognition-Tools/lib/webcam.py", line 29, in __init__
            self._camera.open()
            TypeError: Required argument 'device' (pos 1) not found
            

            any suggestions?

            1 Reply Last reply Reply Quote 0
            • P Offline
              PrivatVoidMarmot
              last edited by Nov 18, 2017, 9:15 AM

              Hello!

              I have an problem wirth the Facial Regonition Module. I have tried it with the PiCam and an normal webcam. It worked not really good with die webcam and after i’ve tried it with die PiCam it doesn’t work any more. I’ve updatet the config.js.

              This is the npm output:

              0_1510996315204_mmm.PNG

              config.js:

              On the mirror nothing is shown. {
              			module: 'MMM-Facial-Recognition',
              			config: {
              				// 1=LBPH | 2=Fisher | 3=Eigen
              				recognitionAlgorithm: 1,
              				// Threshold for the confidence of a recognized face before it's considered a
              				// positive match.  Confidence values below this threshold will be considered
              				// a positive match because the lower the confidence value, or distance, the
              				// more confident the algorithm is that the face was correctly detected.
              				lbphThreshold: 50,
              				fisherThreshold: 250,
              				eigenThreshold: 3000,
              				// force the use of a usb webcam on raspberry pi (on other platforms this is always true automatically)
              				useUSBCam: true,
              				// Path to your training xml
              				trainingFile: 'modules/MMM-Facial-Recognition-Tools/training.xml',
              				// recognition intervall in seconds (smaller number = faster but CPU intens!)
              				interval: 1,
              				// Logout delay after last recognition so that a user does not get instantly logged out if he turns away from the mirror for a few seconds
              				logoutDelay: 15,
              				// Array with usernames (copy and paste from training script)
              				users: ['Jenny'],
              				//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",
              				// Boolean to toggle welcomeMessage
              				welcomeMessage: true
              			}
              

              Any suggestions?

              1 Reply Last reply Reply Quote 0
              • T Offline
                thebeetleuk @mc_landin
                last edited by Nov 20, 2017, 8:32 PM

                @mc_landin I’m at this stage as well! for some reason the classes dont change whats displayed when a new face is seen. So in this example the “default” is seen all the time and then when a generic face is seen then the “everyone” class isnt shown. Has anyone got this working?

                            {
                                    module: "updatenotification",
                                    position: "top_bar",
                                    classes: 'default'
                            },
                            {
                                    module: "clock",
                                    position: "top_left",
                                    classes: 'everyone'
                            },
                            {
                                    module: 'MMM-Facial-Recognition',
                                    config: {
                                            recognitionAlgorithm: 1, // 1=LBPH | 2=Fisher | 3=Eigen
                                            // Threshold for the confidence of a recognized face before it's considered a
                                            // positive match.  Confidence values below this threshold will be considered
                                            // a positive match because the lower the confidence value, or distance, the
                                            // more confident the algorithm is that the face was correctly detected.
                                            lbphThreshold: 50,
                                            fisherThreshold: 250,
                                            eigenThreshold: 3000,
                                            useUSBCam: true, // force the use of a usb webcam on raspberry pi (on other platforms this is always true automatically)
                                            trainingFile: 'modules/MMM-Facial-Recognition-Tools/training.xml', // Path to your training xml
                                            interval: 2, // recognition intervall in seconds (smaller number = faster but CPU intens!)
                                            logoutDelay: 15, // Logout delay after last recognition so that a user does not get instantly logged out if he turns away from the mirror f$
                                            users: [], // Array with usernames (copy and paste from training script)
                                            defaultClass: "default", //Module set used for strangers and if no user is detected
                                            everyoneClass: "everyone", //Set of modules which should be shown for every user
                                            welcomeMessage: true // Boolean to toggle welcomeMessage
                                    }
                            },
                
                T 1 Reply Last reply Nov 20, 2017, 9:53 PM Reply Quote 0
                • T Offline
                  thebeetleuk @thebeetleuk
                  last edited by Nov 20, 2017, 9:53 PM

                  This post is deleted!
                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    thebeetleuk
                    last edited by Nov 20, 2017, 10:58 PM

                    Hi All, I have found out that if you want to use your USB webcam for training you can update the file https://github.com/paviro/MMM-Facial-Recognition-Tools/blob/master/lib/config.py in the appropriate directory with the following. for some reason it doesnt seem to want to fall over to the webcam so I just commented out the pi web cam and added the usb one.

                    def get_camera(preview=True):
                        try:
                    #        from . import picam
                    #        capture = picam.OpenCVCapture(preview)
                    #        capture.start()
                    #        return capture
                            from . import webcam
                            return webcam.OpenCVCapture(device_id=0)
                            capture.start()
                            return capture
                        except Exception:
                            from . import webcam
                            return webcam.OpenCVCapture(device_id=0)
                    
                    1 Reply Last reply Reply Quote 1
                    • T Offline
                      thebeetleuk
                      last edited by Nov 21, 2017, 12:26 AM

                      OK after lots and lots of trial and error I hope this helps people… these are the settings and results I had and as far as I can tell the everyone setting doesnt do what I would expect…

                      I don’t hink you have a way of identifying a stranger and do something specific for them?

                      defaultClass: "default", //Module set used for strangers and if no user is detected
                      

                      It looks like when everyone is specified on its own then the logic doesnt seem to work. See classes: “everyone” below…

                                                      users: ['martin'], // Array with usernames (copy and paste from training script)
                                                      defaultClass: "default", //Module set used for strangers and if no user is detected
                                                      everyoneClass: "everyone", //Set of modules which should be shown for every user
                                                      welcomeMessage: false // Boolean to toggle welcomeMessage
                                              }
                                      },
                                      {
                                              module: "clock",
                                              position: "top_left",
                                              classes: "default" // displays with no face detection (OK) - not displayed when martin detected (OK) - displayed with no specific user detected (OK?)
                                      },
                                      {
                                              module: "clock",
                                              position: "top_right",
                                              classes: "default everyone" // displays with no face detection (OK) - displayed with no specific user and martin (OK)
                                      },
                                      {
                                              module: "clock",
                                              position: "bottom_right",
                                              classes: "default martin" // displays with no face detection (OK) - displayed with no specific user and martin (OK)
                                      },
                                      {
                                              module: "clock",
                                              position: "bottom_left",
                                              classes: "everyone" // never displays (??? I would expect this to display when Martin is detected - or any other user)
                                      },
                                      {
                                              module: "compliments",
                                              position: "lower_third",
                                              classes: "martin" // only displayed when martin detected (OK)
                                      },
                      
                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 18
                      • 19
                      • 20
                      • 21
                      • 22
                      • 20 / 22
                      • 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