Мы используем Виолу-Джонса для распознавания лиц. Алгоритм работает неплохо, ложных срабатываний практически нет. Однако у нас есть ложные негативы. Мы обнаружили одну очень четкую закономерность ложных негативов, которая представляет собой очень высокий контраст между значением серой шкалы пикселей лица по сравнению с пикселями фона.
Для ложноотрицательных результатов, если бы изображение было преобразовано в единую матрицу шкалы серого, мы бы увидели что-то вроде этого: 255 означает белые пиксели, то есть фон, а гораздо более низкие значения - это пиксели лица (т.е. более темные).
255 255 255 255 255 255 80
255 255 255 255 255 110 100
255 255 255 255 90 100 110
255 255 255 90 100 105 100
В этих обстоятельствах алгоритм не может обнаружить лицо. Я попробовал наш собственный код и доступный в Интернете api с аналогичными результатами (ни один из них не обнаружил лица на соответствующих изображениях.
Для истинных положительных результатов контраст не такой высокий, и вы можете увидеть что-то вроде этого:
215 203 193 180
205 196 182 175
199 195 186 183
202 201 197 193
209 204 196 187
214 202 185 172
198 182 171 159
192 174 164 156
Где более высокие значения - это пиксели фона (остроумные, но не полностью белые, у них немного серого), а более низкие значения соответствуют лицу (темнее).
Кто-нибудь сталкивался с этой проблемой и / или есть предложения?