MathProf
@JustinRatliff In a previous thread you mentioned that EZ-Face would need to be retrained when a camera is replaced. If my development project goes as planned, I will have several humanoid heads interacting with multiple persons, not necessarily paired up the same way, from day-to-day. So, my plan is, in a few months, to investigate the algorithm that matches the presented face image with archived face images, and see if I can improve so that any bot head in the system can recognize any particular face if already scanned and stored. Clearly a network is required as well as a central storage of face images.
If anyone digs into this enhancement in the near future, I'd like to hear about results. Otherwise I'll start reading CV code down the road.
With the new object recognition built into ARC, there is no need for ezface. Also, we have doing tests where the object recognized can tell the difference between happy and sad expressions on an individual as well.
That's pretty powerful. I still have plenty to learn about ARC.
My advice is to use ARC for as much as possible. With the work DJ has done to improve the object recognition I would choose that as my first option. EZ-Face does not have enough robust controls for what you are envisioning.
For visual recognition of any kind that is not native to ARC, a good secondary software is RoboRealm which has ARC interface and it's free to try.
From what you are envisioning I could see where you could try to make that work with ARC and you may find it will do everything you want. The main technical question I would have for you MathProf is what sort of faces are you looking to recognize? If the faces are "static" (meaning a preset group of people like family members) and you can train them as Custom Object in ARC that should work.
If your goal is to detect faces (not recognize them) in a crowd of unknown people, ARC can do that too with Face Tracking. Meaning it sees a "face" but does not know who it is.
If your goals were to recognize and learn faces in a crowd of unknown people, you are likely looking at creating a custom piece of software. Which I can tell you is not a task for the faint of heart or unexperienced coder.
@justinRatliff Thanks for taking the time to respond (sorry it's taken me so long to get back to this thread). This might help to better define the task:
Consider a standard computer lab found at most community colleges, colleges, and universities, let's say with 25 PCs. My intent is to place one JD head at each such workstation, and have image processing software good enough that any bot in this "networked system" could recognize and interact with any one of possibly several hundred of students (of course after initial "training" of one of the bots).
I've taken a look at some of the C++ coding in Open CV (I've got a whole bunch of heavy duty experience developing and implementing C++ based AI research projects). In particular, I've started looking at SIFT and SURF, and I see a need for a good deal of focused study there - but in a few months. (And for the past couple of years I've been researching the details of image processing and the kinds of math used there.)
Given the reply above from DJ regarding the new object recognition built in to ARC, I believe my direct attack (in a few months) will be to purchase a second camera, and try to identify, for a fixed image, the difference in the "processed images" produced via the two cameras. That should be interesting and fun.
Thanks again Justin, I value your experience, time, and opinion.
Ron
You are very welcome Ron. You project sounds really neat, I hope to hear more about it as you develop it.