Как узнать, какой результат обнаружения глаз является лучшим - PullRequest
0 голосов
/ 02 марта 2012

При обнаружении глаз с помощью функции HaarDetectObject () мы получаем результаты (детектированные объекты) следующим образом:

[((110, 47, 44, 44), 11), ((27, 45, 54, 54), 31)] 
[((114, 49, 40, 40), 10), ((28, 50, 47, 47), 17)] 
[((31, 50, 47, 47), 18), ((106, 47, 44, 44), 3)] 
[((106, 46, 44, 44), 38), ((29, 53, 45, 45), 35), ((18, 30, 74, 74), 4)] 
[((98, 54, 36, 36), 7), ((108, 48, 45, 45), 31), ((26, 52, 49, 49), 49)] 
[((109, 46, 45, 45), 28), ((29, 50, 49, 49), 38)] 
[((109, 46, 44, 44), 29), ((27, 47, 53, 53), 27), ((123, 45, 48, 48), 3)] 
[((108, 46, 44, 44), 35), ((28, 50, 49, 49), 33)] 
[((109, 47, 45, 45), 34), ((28, 53, 47, 47), 35), ((126, 50, 44, 44), 3)] 
[((109, 47, 44, 44), 29), ((29, 47, 51, 51), 39)] 
[((106, 47, 42, 42), 49), ((27, 49, 49, 49), 30)] 
[((31, 54, 42, 42), 13), ((110, 46, 44, 44), 4), ((125, 46, 44, 44), 4), ((27, 35, 66, 66), 6)] 

и т. Д.

что я знаю:

(110, 47, 44, 44), 11), что х, у, ш, ч,?

x, y - координаты верхнего левого угла обнаруженного «глаза» в «глазах» и w, h - ширина и высота, чтобы определить обнаруженную область глаза, так что это в формате cvRect

Итак, как вы видите, последнее обнаружение имеет 4 глаза - таким образом, я спрашиваю, откуда мне знать, какие из них являются моими идеально обнаруженными глазами? Я имею в виду, видя глаза [i] [0] [0] для любого i, мы можем знать, прав глаз или лев. Но здесь у нас есть два левых и два правых глаза, глаза [0] и глаза [3] - левые, а глаза [1] и глаза [2] - правые.

И это мой вопрос, теперь, если мне нужно получить только один из двух обнаруженных результатов для правого и левого глаза, как мне это сделать?

Раньше я думал, что глаз [i] [1] можно использовать как какой-то счет. У меня не было доступа к Интернету некоторое время, поэтому я предположил, что. Но это не какой-то показатель качества, как я только что обнаружил.

Таким образом, в нашем случае eyes [0] [1] - 13, а eyes [1] [1] - 4, eyes [2] [1] - 4 и eyes [3] [1] - 6. Давайте назовем это Q

В остальных случаях я обнаружил закономерность того, что Q для других моих обнаружений была высокой, обычно около 40-60, поэтому я подумал, что, возможно, Q в этом диапазоне обозначает лучшее обнаружение. Но, как я уже говорил, это не так.

Итак, как мне определить, какой «глаз» в «глазах» является лучшим обнаружением?

1 Ответ

0 голосов
/ 02 марта 2012

Я бы сказал, что вы можете использовать предыдущие результаты и дать больше очков за обнаруженные глаза, которые присутствуют для каждого изображения (при условии, что вы работаете с использованием видео).

Вы также можете использовать параметры, такие как расстояние между глазами, чтобы найти наиболее подходящую пару. Наконец, вы также можете перейти к чему-то более сложному (например, обнаружение сопряженных голов / глаз или вычитание фона), чтобы получить свою собственную картину и найти наилучшее подходящее положение глаз.

Если метод дает вам 4 глаза, вы должны либо улучшить его результаты, предварительно обработав изображение, либо добавить в алгоритм немного больше сложности, чтобы отфильтровать результаты.

...