EZ-Face is the first in what I plan to develop into a suite of supporting application for ARC and other robotics applications. EZ-Face performs multiple face recognition. It has a interface for training faces and assigning names. When the application sees faces that are recognized the names are displayed and visually you'll see boxes around the faces with the names assigned. If a face is detected but not recognized there will be a display of a box around the face with no name. The more pictures of a face you train, the easier it is for the application to recognize a face.
This is a stand alone application developed in C# under Visual Studio.NET 2013. You should have .NET framework 4.5 and it is for Windows7 and Windows8.x systems.
This project showcase explains the technology behind the application and highlights development milestones.
Technology: Developed in .NET Visual Studio 2013 (you can use express versions with the source code) Designed to work with ARC but could be integrated into other software or robotic systems Is a standalone application Is open source, source code is included Uses emgu cv wrapper for .NET (Open CV)
Resources: (Things I found helpful in creating the application) ARC Telnet interface tutorial (Enable Telnet as the first part Shows, this is used to test communications manually to ARC via TCP/IP): https://synthiam.com/Tutorials/Help.aspx?id=159 If you do not have Telnet installed on your system go to this site: http://technet.microsoft.com/en-us/library/cc771275 ARC SDK Tutorial 52: https://synthiam.com/Community/Questions/4952&page=1 ARC script for listening to the TCP/IP port for variables: https://synthiam.com/Community/Questions/5255
Acknowledgements: DJ Sures, for making EZ-Robot and ARC so robust Rich, for his help with ARC scripting Sergio, for his emgu cv examples
Basic Usage Direction (after download and install): 1.) Open ARC and load the included EZ-Face example 2.) Click on the Script start button (this sets up the communications from the ARC side of things) 3.) Open the EZ-Face application 4.) Refresh your camera list (click the button) 5.) Select your camera (in the drop down list) 6.) Click the "1. Detect and recognize" button 7.) Train at least one face 8.) Change the local address and port number as needed (the local IP address may not be your computer's address - you can enter "localhost" and leave the port set to 6666 unless you changed that setting in ARC) 9.) Click File and select Save User Settings (to store your changes) 10.) Click Connection (this opens the communication line to ARC from the EZ-Face app side 11.) Allow EZ-Face to recognize the face you trained - then with your computer speakers turned on ARC should speak "Hello (the name of the face you trained)" 12.) If the example work - integrate in your EZ-Robot applications as you see fit
Tips: 1.) If after training several faces if you get false recognition of faces (faces recognized with the wrong name) - to correct this you should train the incorrectly recognized faces with the correct name. After a couple of training pictures are stored the accuracy of the face recognition will improve. 2.) Do not train faces with one camera, then switch to another camera for face recognition - recognition accuracy will drop.
Using Two Cameras: What I found worked best was to start ARC, select the camera I wanted and started the camera feed, then I started EZ-Face. If I reverses the process (even though I was selecting a different camera) I would get a black image in ARC.
2.26.14 Update: I still have several improvements I want to make before I upload the first public version of the application.
3.2.14 Update: The first public version is ready for release and is posted at the link below. This version has many user improvements to allow you store many settings, including http and port address, camera device, logging of faces in a text file (up to 1mb of data before the file auto deletes), face variable output to ARC, face training and more.
3.3.14 Update:
I updated the script, version 3.3.14 has the HTTP server panel (which is not used - you don't need to start it) but it does show you your computer's IP address so you can enter it in EZ-Face. Remember to save your settings under the File Menu. I also changed the script so it will no only speak for variable values greater than "" or NULL.
EZ-Face3.3.14.EZB
3.7.14 Update: I updated the EZ-Face application: "localhost" is now the default address, new option for auto connect, functions to receive commands from ARC or other 3rd party application to stop and start the camera feed within EZ-Face. There is also a new ARC project with several new scripts to test out the functions. Please go to my site to download the latest version. You will also find a video there that demonstrations the new functions and provides directions for setup and usages.
Download: The latest version will be published here: http://www.j2rscientific.com/software For support and reporting any errors please use the ContactUs feature from http://www.j2rscientific.com with the subject line "EZ-Face".
I welcome any and all feedback!
Thank you
Other robots from Synthiam community

Smarty's Ez-Robot Halloween Witch Esmeralda

Faengelm's A Fun Use Of Virtual Servos

@Jack Your InMoov is looking good. I am looking forward to getting my EZ-Robot controllers so I can switch my InMoov over.
Pretty impressed with the EZ-Face.
My web camera is on the wall above the deep freeze in my workshop and looks towards my work bench. The software software is set to zoom in on faces to assists in motion tracking, etc.
This evening when I went to grab the ice-cream "Lawrence", my household A.I., piped up and said "Hello, Wayne".
Made me just jump out of my skin!
LOL
Hello Friends... Justin, I'm having a really hard time to make the ARC trigger the Eazy-face.. actually, it runs the program, but the recognition does not work, and the turn on, turn off camera fails every time... any tip ? and.. there will be a newer version ? thanks ?
@tevans it clearly sounds like EZ-Face and your instance of ARC are not communicating at all. Go through all the setup steps again. Make sure EZ-Face is configured to auto connect to your camera and to auto connect for the communications. If you have ARC open, and EZ-Face does not auto connect, check your settings, reset them and save them as needed. Manually click the connection button. If the connection fails (which would be displayed in the black box at the bottom of EZ-Face) then you need to check to make sure ARC is configured to communication on the local port still.
Hello and first of all, scuse me for my bad english.
Well, surely, face-recognition and object-recognition is the "dream" of anyone building a robot..... So, it is mine dream too. I am working from about 18 months on a robot-project and i really would like to use this face-recognition. But my robot is a 'stand-alone' robot based on a "onboard pc" and controlling ez-board via Visual basic. Is it possible to use ez-face with visual basic? And is really impossible to run it on Win Xp?
Thank you and scuse me again for my bad english.
@odt - I think your English is pretty good.
To answer your questions - the EZ-Face application is optimized to integrate with ARC, as seen in the video.
Will it work with Visual Basic - yes.
Is it programmed in Visual Basic - no. It was developed in c#.Net and Visual Basic is part of .Net so you can integrate .Net projects between C#, VB and others as long as they were created in .Net.
EZ-Face was designed to integrate with other 3rd party applications so if you already have a VB.Net application that you want to integrate EZ-Face with that should be straight forward with a TCP/IP communication protocol (which is how it connects to ARC).
Is it impossible to run EZ-Face on Win XP - No. I just ran it on a WinXP system - It's not recommended and future updated version may not work. But the current version will run on Windows XP with .Net 4.0 installed.
Hello Justin and thank you for your fast reply.
Well, i have downloaded the software and i have run it on the little pc in my robot. But i have had an error : system io.filenotfoundexception This error happens when i press 'detect and recognise', after i have selected videocamera.
1- I refresh camera list 2- I select videocamera and the led on the videocamera start, but no images on the screen 3- i press 'detect and recognise' 4- i have the error
I have done the same thing on another pc running Win xp and everything runs ok. Both pc are running Win xp and .Net 4.0.
It's a mistey..... can you suggest something to solve the problem?
On the one that is failing, are you logged on as the administrator? Sounds like maybe a file or folder permissions issue.
Alan