Я работаю над небольшим проектом с участием лиц пользователей твиттера через их фотографии в профиле.
Проблема, с которой я столкнулся, заключается в том, что после того, как я отфильтрую все, кроме изображений, которые являются четкими портретными фотографиями, небольшой, но значительный процент пользователей Твиттера использует изображение Джастина Бибера в качестве своего профиля.
Чтобы отфильтровать их, как я могу программно определить, является ли изображение Джастина Бибера?
[justin-bieber]
тег.Ответы:
Лучшей идеей может быть удаление всех изображений, которые появляются в ленте более чем одного пользователя - распознавание не требуется.
источник
У меня есть ощущение, что http://www.tineye.com/commercial_api может быть решением здесь. Просто бросьте изображение профиля Twitter в Tineye, посмотрите, возвращает ли оно изображения (и связанные URL-адреса), которые могут быть четко идентифицированы (или автоматически оценены с использованием простой логики подсчета слов) как связанные с (или из) небольшим мешком * *.
Simples!
источник
Поскольку вы можете фильтровать только те, которые являются четкими портретными фотографиями, я предполагаю, что у вас есть какой-то метод генерации объектов для преобразования необработанных изображений в функции, которые полезны для целей машинного обучения. Если это правда, вы можете попробовать обучить алгоритм классификации (их много: нейронные сети и т. Д.), Предоставив алгоритму кучу известных фотографий Бибера, а также группу известных не Биберов. После того, как вы обучили модель, ее можно использовать для прогнозирования, является ли новый образ Бибером или нет.
Этот вид контролируемого обучения требует, чтобы у вас были данные, в которых вы знаете правильный ответ (Бибер или нет), но их, вероятно, можно найти в поиске картинок Google. Это также требует наличия у вас правильных функций, и я недостаточно знаю об обработке изображений или вашем алгоритме, чтобы понять, является ли это серьезным недостатком.
источник
Вы можете использовать такой метод, как eigenfaces, http://en.wikipedia.org/wiki/Eigenface . Ниже приведено хорошее описание процедуры, а также ссылки на различные реализации.
http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm
Отсюда обычно использовать это в подходе классификации, обучать модель и затем предсказывать случаи. Вы можете сделать это, обучив кучу известных знаменитостей, и, если вы предскажете лицо из твиттера как лицо из вашей обученной модели знаменитостей, удалите его. Аналогично этому http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/
Это страдает от постоянных поправок. Вскоре появится новый Джастин Бибер, которого не будет в вашей обученной модели, поэтому вы не можете предсказать его. Есть также такой случай, как Уитни Хьюстон, вы, возможно, никогда не думали добавить ее раньше, но она может быть обычным образом из уважения и восхищения в течение нескольких недель. Вы не будете иметь обратную сторону детских фотографий, как упомянуто выше, хотя. Чтобы преодолеть эти проблемы, вы можете использовать более иерархический кластерный подход. Удаляя первые несколько наборов кластеров, которые находятся очень близко, если они достигают определенного уровня поддержки, ваш первый кластер имеет 15 элементов, прежде чем будет создан второй. Теперь вам не нужно беспокоиться о том, кто в вашей тренировочной модели, но вы попадете на проблему детских фотографий.
источник
http://face.com/ имеет бесплатный API для распознавания лиц
источник
Если вы хотите сделать это самостоятельно, я бы порекомендовал использовать бесплатный и открытый проект Intel OpenCV (CV for computer vision).
http://opencv.willowgarage.com/
http://oreilly.com/catalog/9780596516130
источник
Вы должны включить алгоритм, определяющий, на кого ссылается эта картинка. Вы можете построить модель, основанную на различных портретных изображениях известных личностей, и использовать классификаторы, чтобы убедиться, что эта фотография относится к одной из ваших фотографий базы данных. Вам необходимо использовать определенный классификатор, основанный на различных параметрах, которые нравятся лицу, например, расстояние между глазами или другие параметры, чтобы повысить точность вашей модели. Есть также анализ кожи. Самое главное - построить хороший классификатор. Этот метод может быть уязвимым.
Но есть также очень хороший проект, работающий над распознаванием лиц http://opencv-code.com/Opencv_Face_Detection
источник
Вы можете попробовать локальное хеширование .
источник