Isso é um “pedaço” do meu tema de mestrado, que vou fazer daqui a 2 anos (espero!).
Pra fazer detecção de faces (eu sei que não é o seu caso, mas enfim), muitos trabalhos usaram wavelets.
Agora… é o que o thingol falou… E se ele usar óculos ou piscar durante um período de tempo maior que o normal? Outra coisa, e se ele “pendular” para um lado ou até mesmo virar o rosto?
Eu não sei se seria o ideal, mas uma coisa que você poderia usar são técnicas de I.A. (tipo uma rede neural), para saber o que é um olho. Você treina ela com, digamos 100 imagens de um olho e coloca ela pra procurar na imagem real. Não sei se funcionaria, na verdade, vou fazer isso só ano que vem, mas é interessante discutir essas técnicas.
Se estiver interessado, procure por trabalhos do grupo IMAGO, que é um grupo de pesquisa na área de processamento de imagens. Eles fizeram umas coisas muito interessante (por exemplo, o cursor do mouse ser controladora pelo nariz da pessoa). Eu acho que vale a pena.
thingol,
Você falou que Java e C++ são lentos em processametno de imagens. Mas quando são imagens dinâmicas, né? Se for só pegar uma imagem, pegar os pixels dela, redimensionar ela, acho que não tem muito problema de velocidade, tem?