Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Computer Vision Libraries

by rkosai (Beadle)
on Apr 15, 2006 at 01:48 UTC ( [id://543472]=perlquestion: print w/replies, xml ) Need Help??

rkosai has asked for the wisdom of the Perl Monks concerning the following question:

Hello,

Does anyone have experience trying to do facial recognition in Perl? I've done some previous work with PDL (Perl Data Language) for image analysis, but I'm not sure where to start for this problem.

Searching CPAN and Google, it seems that to get a function to determine similarity between eigenfaces would require me to write the algorithm myself. Has anybody tried solving a similar computer vision problem that could be easily adapted?

I also am considering attempting to integrate the Intel OpenCV or similar library, written in C++. I'd like to avoid this if there is already a prewritten library that I can access in Perl.

Another solution would be to find a "Microsoft" solution, because they tend to have good OLE Automation interfaces, and I could use Win32::OLE for some of that.

Any ideas?

Replies are listed 'Best First'.
Re: Computer Vision Libraries
by kvale (Monsignor) on Apr 15, 2006 at 08:15 UTC
    I did some facial recognition work years ago using eigenfaces and some work by Joe Atick, author of the FaceIt facial recognition program.

    Human faces are special; we seem to have specialized areas in our brain devoted to face recognition and reading facial expressions. So, other than image registration and normalization, the usual CV techniques of edge dectection and image segmentation don't work so well here. In other words, generic computer vision libraries won't be so helpful.

    If I wanted to solve this problem, I would first check out some of the open source face recognition programs, find one I liked and then create a perl binding. One of the stronger programs out there is the CSU face recognition program It has a number of algorithms to compare and the C source is available.

    -Mark

Re: Computer Vision Libraries
by TedPride (Priest) on Apr 15, 2006 at 08:01 UTC
    I've read that the best way to match faces that may differ quite a bit by hair and eye color and so on (not to mention scale) is to compare the proportions of the face - the angles formed by connecting the eyes, nose, and mouth, for instance. I don't know how you'd go about identifying what is a face and what isn't, and what feature is where, though...

    EDIT: On second thought, perhaps not my most helpful post ever. You'd do that with a preprocessing image library of some sort, again written in C or C++. I really don't think Perl is going to be useful here for anything other than the highest level manipulations, however, since facial recognition requires a lot of number crunching, and any code you find is going to be written in a low-level language to maximize efficiency. Perhaps you can compile a C program for processing the images and identifying important points and angles between points, then use Perl just for feeding it the images and storing the results in a database?

    http://www.cs.colostate.edu/evalfacerec/algorithms5.html

Re: Computer Vision Libraries
by etj (Deacon) on Jun 21, 2022 at 19:16 UTC
    Note from THE FUTURE: work is ongoing to make a PDL binding for OpenCV, which in 2022 is now a C++ library, and is now arguably the premier computer-vision library. See https://github.com/PDLPorters/pdl/issues/362 for more and/or to contribute.
Re: Computer Vision Libraries
by Knom (Beadle) on Apr 23, 2006 at 10:52 UTC
    I am interested in a possible collaboration with you on this, however I need more information about what it is you're trying to accomplish. We should exchange personal e-mail addresses, but I'm not quite sure yet on how to do that privately on this forum.
      I am interested in a possible collaboration with you on this

      me too!

      btw, private messages can be sent through the chatterbox. Follow the How do I use this? link for instructions.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://543472]
Approved by TStanley
Front-paged by planetscape
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (2)
As of 2024-04-20 05:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found