Виявлення заданого обличчя в базі даних зображень обличчя


110

Я працюю над невеликим проектом, в якому беруть участь особи користувачів твіттера через фотографії їхніх профілів.

Проблема, з якою я стикався, полягає в тому, що після того, як я фільтрую всі, крім зображень, які є чіткими портретними фотографіями, невеликий, але значний відсоток користувачів twitter використовує зображення Джастіна Бібера як зображення профілю.

Для того, щоб відфільтрувати їх, як я можу програмно сказати, чи є картина Джастіна Бібера?


17
Яка платформа розвитку? Це легко зробити в .NET, оскільки він перевершує всі інші програми програмування. Просто зателефонуйте до функції Page.EradicateBieber (). Корпорація Майкрософт передбачила цю потребу і милостиво надала її нам. (Тим із вас, хто має старіші версії, доведеться почекати.) (Це, звичайно, всі в язик.)

32
Я думаю, що можу сміливо стверджувати, що ТАК не потрібен [justin-bieber]тег.
skaffman

2
Я з упевненістю можу стверджувати, що люди витрачають більше коментарів на коментарі та це питання, ніж варіант закриття (той, який заслуговує на голосування).

20
Звуковий фільтр Джастіна Бібера теж був би хорошим

Відповіді:


49

Кращою ідеєю може бути сміття всіх зображень, які з’являються у стрічці більше одного користувача - розпізнавання не потрібно.


2
Так, можливо, встановіть поріг у 2-4 можливих дублікації (для обробки випадку з новонародженою дитиною), перш ніж ви відхилите фотографію. Я думаю, залежить від того, що ви збираєтеся робити з фотографіями.
Марк Бессі

3
Просте, елегантне рішення. +1.
Роберт Харві

13
Люди могли використовувати різні зображення однієї і тієї ж людини.
Ребекка Чернофф

(+1) на Ребекці та (-1) @ PPPPPP: Це просто змінює проблему.
steffen

4
Вони могли б, але в більшості випадків вони вибиратимуть із відносно невеликого пула зображень, тож, мабуть, все ще вийде. Корпуси кромки будуть прокляті - адже ви все-таки знаєте, що моя картина все одно є дядьком.
naught101

16

У мене є відчуття, що тут може бути вирішення http://www.tineye.com/commerce_api . Просто перекиньте зображення профілю Twitter на Tineye і подивіться, чи воно повертає зображення (та пов’язані з ними URL-адреси), які можна чітко визначити (або автоматично набрати за допомогою простої логіки підрахунку слів) як пов’язані з (або) цим маленьким мішком * *.

Симплекс!


1
Google нещодавно оголосив пошук зображень: youtube.com/watch?v=t99BfDnBZcI Я не знаю, чи є у нього ще API, але це може бути альтернативою.
петрич

11

Оскільки ви можете фільтрувати лише ті, які є чіткими портретними фотографіями, я припускаю, що у вас є певний метод генерації функцій, щоб перетворити необроблені зображення у функції, корисні для цілей машинного навчання. Якщо це правда, ви можете спробувати навчити алгоритм класифікації (їх дуже багато: нейронні мережі тощо), подавши алгоритму купу відомих фотографій Бібера, а також купу відомих не-Біберса. Після того, як ви навчили модель, її можна було б використати для передбачення того, чи є новий образ Бібера чи ні.

Цей метод наглядового навчання вимагає, щоб у вас були дані, де ви знаєте правильну відповідь (Бібер чи ні), але їх, можливо, можна знайти в пошуку зображень Google. Це також вимагає, щоб у вас були правильні види функцій, і я недостатньо знаю обробку зображень або ваш алгоритм, щоб знати, чи є це головним недоліком.


2
На жаль, крок генерації функцій є і найважчим, і найважливішим :(.
steffen

@steffen Існує певна припущення, що ОП возиться з гранями, тому є якийсь генератор дескрипторів.

@mpq: Я не сумнівався, що, однак, якщо у OP немає однієї функції на піксель, то він повинен знайти значущий рівень агрегації. Я не заявив, я просто хотів вказати на складність, що стоїть за цією відповіддю (що, звичайно, правильно).
steffen

1
Правильно, крок генерації функцій є важкою частиною. Я припускав, що ОП може це зробити, оскільки у нього є якийсь механізм для обробки зображень. Навіть якщо він це робить, хоча вони можуть бути корисними лише для виявлення обличчя / не обличчя замість Бібера / не Бібера ... це дійсно залежить від особливостей.
Майкл МакГоуан

7

Ви можете використовувати такий метод, як eigenface, 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 елементів до того, як буде побудований другий. Тепер вам не доведеться турбуватися про те, хто в вашій моделі тренувань, але ви потрапите до питання малюнків малюка.




3

Потрібно вкласти алгоритм, який визначає, до якої людини йдеться про цю картину. Ви можете побудувати модель на основі різних портретних зображень відомої особистості та використовувати класифікатори, щоб переконатися, що ця картинка посилається на одну із ваших картинок бази даних. Для підвищення точності вашої моделі вам потрібно використовувати певний класифікатор на основі різних параметрів, що подобаються обличчю, як відстань між очима чи інші параметри. Також є аналіз шкіри. Найголовніше - створити хороший класифікатор. Цей метод може бути вразливим.

Але є також дуже хороший проект, який працює над розпізнаванням обличчя http://opencv-code.com/Opencv_Face_Detection


1
AFAIK OpenCV та пов’язаний сайт реалізують лише розпізнавання обличчя (чи є на малюнку людське обличчя?), Що є лише першим кроком до розпізнавання обличчя (чиє це обличчя?)
f3lix

2

Ви можете спробувати хеш-чутливість .


1
Звичайний KNN не дуже хороший для обличчя. Показано, що обличчя лежать на ~ 25-мірному нелінійному колекторі зображень.
байерж
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.