Face detection add on (and save to photo album and facebook share)

I added a face detection function to my Codea addon. Hopefully the new release of Codea will show up soon on the app store.

Here is the updated code for it:

And here is an example drawing a rect in front of your face and ellipsis over your eyes and mouth using the front camera stream.

-- FaceDetection

-- Use this function to perform your initial setup
function setup()
    m = mesh()
    m.texture = CAMERA
    img = image(WIDTH, HEIGHT)
    face = {}
    detectTimer = ElapsedTime + 0.2

-- This function gets called once every frame
function draw()
    if ElapsedTime > detectTimer then -- update every 0.2 seconds
        detectTimer = ElapsedTime + 0.2

    if face and face.x then
        rect(face.x, face.y, face.width, face.height)
        if face.leftEye then
            ellipse(face.leftEye.x, face.leftEye.y, 50)
        if face.rightEye then
            ellipse(face.rightEye.x, face.rightEye.y, 50)

        if face.mouth then
            ellipse(face.mouth.x, face.mouth.y, 50)

function updateFeatures()
    face = detectFaceFeatures(img)

The other features in my library are used like this:

-- will show a popup with facebook sharing options for the image

-- will save the image to the photo album. showing a dialog to allow access the first time

That looks great @tnlogy - So your C code in your Gist is integrated in the next release of Codea as a face detection Lua lib? Cool. I guess you’re only a few steps away then from some sort of more sophisticated Augmented Reality functionality… Hmmmm… Interesting. :smiley:

The process will be to export your Lua code to a Xcode project from within Codea. Then you can add this addon to the Xcode project to use this functionality. Of course it would be nice if TTL would add some of the addons to the Codea app in future releases. As it is now, you have to simulate the functionality in Codea, since it is only available in the runtime.

Thanks for the info. So I guess this means you can only really test this from within Xcodes simulator, although in practice you’d really need to compile it and test on the iPad (to use the camera). You’re right though, integrating it directly into Codea would make more sense for this very reason. I notice @Reefwing has a new tutorial on developing additional Lua libs and integrating them into the runtime which opens up a whole range of possibilities such as this.

Any update on making a face detection add on/lib available?

@aciolino - the link to the code is up the top of this thread: https://gist.github.com/tnlogy/5371725

Yes, just add the two ImageTools files linked in the first post to your XCode project and it should work with the example code. :slight_smile:

HI @tnlogy, Thanks for creating the addon. I am not experienced enough to understand fully how to get this working and need your help (or anyone else) please?
I have your Codea example exported loaded up in Xcode and I have added the other two files from the Gisthub - ImageTools.mm and ImageTools.h - trying different locations to figure out where these should be - Addons folder?
Nevertheless, for all my efforts so far I cannot get anything to run in the simulator.
All I really need to do is to get an example working - Once I see this happen then I aim to add ‘save to camera roll’ functionality to an app I am creating.
Any guidance is vastly appreciated - thankyou!

@jasl - check out http://codeatuts.blogspot.com.au/

There are 4 tutes about using add on functionality. You should be able to use this to understand how to apply tnlogy’s add on.

I’m going to try and incorporate this into my game StackIt so you can control it with your head. Let’s see how it goes…