- Что-то надо делать с лицами в профиль. Мне тут представляется такой алгоритм был бы правильным.
На это натолкнула ваша программа, которая время от времени показывает десяток лиц одного человека и спрашивает кто это. Я присваиваю имя, но поскольку у меня лимит 12 лиц, то новые имена неактивны. Но сама идея отличная. И я заметил, что предлагаемые лица из одной папки (одна одежда и т.п.).
Сейчас даже уже не помню, с чего началось у меня присвоение имен в Tonfotos. Наверное, программа вот так выдала первое предложение по лицу.
Думаю, что правильнее процесс начального распознавания делать при участии пользователя. А все программы, которые я протестировал, как раз пытаются в массе лиц самостоятельно найти схожие. И результаты плачевные. ACDSee выдала несколько тысяч лиц, сгруппированных по 2-3 шт, в лучших случаях - по 20-30 шт. Это бред, согласитесь. Я еще ничего не успел задать программе, а она уже начинает серьезную работу, чтобы сгруппировать тысячи случайных лиц, до которых мне нет никакого дела.
Вот почему мне кажется, что Wizard помог бы.
Программа делает индексирование и в ходе него накапливает какие-то предварительные результаты. Когда пользователь впервые начинает работать с распознаванием, программа ему предлагает выбрать папку, а в ней начать прописывать имена одному или нескольким персонажам (квадратики лиц уже расставлены в ходе индексирования).
Пользователь, допустим, подписывает несколько человек на первых 20 фото в папке. Этого достаточно, чтобы в данной папке гарантированно опознать эти лица в анфас. Поэтому, когда пользователь переходит к 21-му фото, то там программа ему уже подсовывает нужные имена на распознанных ей лицах. Пользователь продолжает заносить имена новых людей и лица, которые программа не распознала из-за нестандартного ракурса, размера, цвета и т.п. По лицу А программа накапливает базу: вот так выглядит А в анфас, вот так в профиль, вот так с наклоном головы… Постепенно пользователю в данной папке нужно все меньше заносить имена вручную. Когда программа понимает, что 80-90% лиц она уже сама распознает в папке уверенно, она останавливает пользователя и предлагает ему перейти к следующей папке, сообщив ему, что в текущей папке большинство лиц уже распознано, а остальные имена будут присвоены позже. Так работаем с еще несколькими папками, в которых по мнению пользователя (или программы) присутствуют текущие персонажи. Далее программа предлагает пользователю либо продолжить накапливать данные на разных персонажей, либо произвести полный поиск уже отобранных персонажей во всем архиве. Если второе - то переключаемся на режим, похожий на нынешний.
Чем это лучше. 1) Тем, что пользователь сам выбирает те лица, которые ему нужны, и игнорит те, которые не интересны. 2) Тем, что программа накапливает по нужным лицам все ракурсы и вариации. Ведь в нынешнем режиме лица в профиль и прочие нестандартные ситуации вообще не отмечены как лица, а значит, алгоритм их не учитывает никак. 3) Тем, что опознавание идет одновременно с работой пользователя. Никто никого не ждет, работают вместе.
Тут можно применить настройки, а также значительную часть работы, проделанную программой, отправить в запасник. Лица, которые пользователь заигнорил, не обязательно терять или сваливать в одну большую мусорную корзину. Им можно присваивать имя-число (#1934756). Потом, если пользователь захочет данного человека обозначить, то это можно сделать, открыв архив лиц, у которых нет еще имен. Достаточно на нескольких фото дописать имя лицу, как программа поднимет из архива все лица с этим же номером. Я вот на фото с коллегами многих имен просто не помню, хотя людей в лицо знаю. Мне надо что-то временное им присваивать или ставить игнор. Лень. А тут программа берет этот труд на себя.