I'm developing software as part of my BSc. IT (Hons) course. The aim of the software is to determine the affective state (mood) of a person who is using the system based on facial expressions. In order to do this, the program pulls images from a webcam and processes them to determine the affective state displayed in that frame.
At the moment this process is really slow, taking on average 5 to 6 seconds to analyse a single image. I plan on optimizing this code to improve efficiency but I've been looking into possibly using multi-threading and/or parallel programming as well, so that i don't have to wait for the first image to be processed before I start on the next one.
At the moment, the program uses the background worker thread, as the affective state monitoring will work in the background while the person using the program will be participating in a flash game or something else running on the UI thread.
I've looked at parallel programming and understand the basics of how it works but I can't figure out exactly how to apply it to my program, within the background worker thread, so that it can also give feedback to the UI thread during and after analysis of each image.
If anyone could advise me on how to do this, give me a starting point or point me in the direction of a tutorial that will help me apply the concepts to this application, I would really appreciate it.