Я ищу несколько предложений о том, как подойти к следующей проблеме компьютерного зрения. Ниже приведены 4 образца набора данных для отслеживания глаз, с которыми я работаю. Я хотел бы написать код, взяв одно такое изображение и вычислив положение (x, y) центра зрачка. В настоящее время я использую MATLAB, но я открыт для использования другого программного обеспечения.Прослеживание глаз: поиск зрачка (x, y)
Может кто-то рекомендовать подход, который я мог бы использовать для этой задачи? Вот некоторые вещи, которые я уже пробовал, но не очень хорошо работал.
- Я попытался использовать преобразование hough круга, но это требует от меня угадать радиус зрачка, что немного проблематично. Кроме того, из-за искажений ученик не всегда представляет собой круг, который может сделать этот подход еще сложнее.
- Я попытался создать изображение на основе яркости пикселей и использовать функцию regionprops MATLAB для поиска области примерно (примерно) 200-пиксельной области с очень низким эксцентриситетом (т. Е. Как можно более круговым). Однако это очень чувствительно к пороговому значению, а некоторые изображения глаза ярче других, в зависимости от условий освещения. (Обратите внимание, что 4 образца ниже уже нормализованы, и все же одно из изображений ярче других, вероятно, из-за какого-то очень темного случайного пикселя где-то)
Любые комментарии/предложения будут оценены!
EDIT: спасибо за комментарий Stargazer. Алгоритм в идеале должен быть в состоянии определить, что зрачок отсутствует в изображении, как это имеет место для последнего образца. Это неважно, если я немного потеряю его. Это намного хуже, если это дает мне неправильный ответ.
Ну, по крайней мере, не разочаровывайтесь, если найдете алгоритм, который работает только для первых трех. Даже я не могу найти ученика в 4-м. – riwalk
Я это понимаю, конечно. В этом случае алгоритм должен в идеале определить это. – karpathy
Это должно сделать трюк для вас! http://stackoverflow.com/a/11316882/1458387 – Anirudh