Я думаю, что это может занять немного больше, чем то, что предлагает OpenCV.
Учитывая ваш конкретный вопрос, вы можете просто попробовать какие-то дескрипторы формы.
По сути, попробуйте изобразить фигуры головы утки под разными углами и захватить фигуры из нее.
Теперь вы можете найти модель правдоподобия (извините за не очень точный термин), которая может подтвердить гипотезу о том, что данная захваченная фигура действительно принадлежит к классу головы утки или нет.Цвет может быть просто дополнительной функцией, которая может помочь.
Если вы новичок в этом поле - попробуйте поймать Дуда и Харт: классификация паттернов .У этого нет решения проблемы «найти утку», но оно сформирует ваше мышление.