Eu tenho alguma experiência na área sim.
Existem vários desafios no reconhecimento de caracteres de placas de carro, são eles:
- Encontrar a placa na foto e segmenta-la;
- Segmentar cada caractere da foto;
- Identificar o caractere.
Eu já tratei o desafio um através de algorítmos genéticos, e acabei montando uma API para tratar com genéticos no geral:
Se você quer lidar com reconhecimento, sugiro que você monte uma base com placas perfeitamente alinhadas, e fotografadas com uma luminosidade padrão. Ou mesmo com imagens geradas por você. Assim, você elimina a necessidade de lidar com o desafio 1, e concentra-se somente no 3 (e de leve no 2, embora segmentar nessas condições seja muito fácil).
Uma vez segmentadas as letras, existem diversos algoritmos de classificação que podem ser explorados, como o svm, kmm, kmeans, cadeias de markov e, claro, as redes neurais. Dê uma olhada em especial no svm, pois seus bons resultados tem tornado ele um bom algorítmo hoje em dia.
Se você quiser concentrar-se no problema 1, esqueça a parte de identificação dos caracteres da placa (ou baixe uma API de OCR pronta). Concentre-se então somente em localizar a placa na foto. Para isso, você pode utilizar-se de algoritmos genéticos, ou técnicas de segmentação como limiar múltiplo ou técnicas baseadas em polígonos.
Finalmente, há a possiblidade de não implementar nada disso, e baixar algorítmos prontos da internet e tentar combina-los. Assim, você poderia ter as duas etapas do processo, e elaborar apenas comparativos. De todos, acho que esse é o trabalho mais fácil, porém um dos mais braçais. Entretanto, artigos de comparações geralmente são muito populares, e facilmente aceitos em feiras e congressos. Se feito direitinho, pode ser uma ótima experiência.
É importante também escolher com cuidado sua base de testes, seria interessante que você obtivesse em torno de 500 placas, sendo que parte seriam separadas para sua base de treinamento, e parte seria usada na sua base de testes. Não misture as placas da base de teste com as de treinamento. Procure também fazer a classificação manual de todas as placas, para conseguir medir a qualidade dos seus algorítmos.
Considere a possibildade de usar C principalmente por existir a opencv, apis gratuitas para o svm, o pacote boost::math e diversas implementações de redes neurais.