Прикольно. Сам, когда только изучал php, столкнулся с похожей задачей, но тогда просто уменьшал изображения до 7x6 px и сравнивал потекстово через similar_text. Оказывается, был близок к истине =)
Жаль я не был на субботнике, а то задал бы вопрос «как поведёт себя ваш алгоритм, если взять N картинок из поиска и склеить их горизонтально/вертикально?» — думаю, такое он не определит.
То о чем говорите вы, это скорее критическое отклонение от центра кластера и алгоритм сработает правильно, не отнеся это изображение ни к одному классу или отнеся его к классу шума.
Кластеризация дубликатов в Яндекс.Картинках