Сколько мне лет? — сравнительный обзор приложений-сканеров для распознавания возраста по фото

Сервисы для поиска по картинкам

Расскажем о нескольких сервисах, помогающих найти первоисточник фото.

TinEye

Это один из первых ресурсов, который позволил использовать обратный поиск снимков в Интернете. Он действует с 2008 года и основан канадской компанией Idee Inc.

В сервисе достаточно просто разобраться, несмотря на то, что он работает только на английском языке.

При использовании для личных целей с сервисом можно работать бесплатно.

Форма для загрузки и поиска картинки расположена в центре стартовой страницы сайта. Можно загрузить ее классическим способом или перетащить с винчестера. Здесь же можно попробовать отыскать автора фотографии, указав URL-адрес изображения, найденного в сети.

Сайт работает очень быстро и эффективно. Выдает огромное количество результатов и без погрешностей.

Если поиск первоисточника фото необходим часто, можно установить плагин этого сервиса. Он подойдет для любого из популярных браузеров.

Есть у этого ресурса и один минус. Чтобы понять, куда ведут отобразившиеся ссылки, необходимо нажать на них. При этом можно оказаться на сайтах других стран, язык которых будет непонятен пользователю. Так работа по поиску первоисточника изображения может занять много времени.

RevIMG

Сервисом можно воспользоваться бесплатно. У него достаточно простой интерфейс, но язык английский.

Среди преимуществ этого поисковика картинок – возможность задать тему поиска, а не только загрузить фотографию и ее URL-адрес. Так удастся значительно сузить поиск. Сервис также позволяет выделять определенную часть изображения. Это актуально, когда искомое фото включено в коллаж.

У сервиса есть также приложение для Android.

При этом можно отметить несколько недостатков. Сайт работает медленнее и не так точно как конкуренты. Может выдавать меньшее количество результатов и делать ошибки. Например, отображать не искомое фото, а похожие на него по цветовой гамме.

Яндекс Картинки

Этот сервис также помогает осуществлять обратный поиск фотографий. Можно выбрать интерфейс на русском.

Позволяет искать как целое изображение, так и его фрагмент.

Можно выбрать фото в Интернете или на компьютере.

В результатах поиска отображаются идентичные фотографии и те, что немного отличаются от указанного снимка.

Эффективность поиска зависит от наличия или отсутствия указанной картинки в Интернете и ее индексации поисковой системой.

Чтобы отыскать первоисточник, понадобится:

  1. Зайти в сервис Яндекс картинки;
  2. Нажать на иконку фотокамеры в правой части поисковой строки;
  3. Выбрать файл, перетащить его или написать URL-адрес.

После этого система укажет все найденные результаты.

Пример определения пола и возраста человека в Python

В качестве примера, мы решили протестировать весьма забавный конспирологический спор о двойниках президента Российской Федерации. Мы скачали из интернета изображение с несколькими вариантов клонов В. Путина и предложили нейронной сети определить пол и возраст всех лиц на фото.

Использованные файлы:

  • putin.jpg (файл с предполагаемыми «клонами»)
  • Lemon.ttf (шрифт для Pillow)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

fromage_and_gender import*

fromPIL importImage,ImageDraw,ImageFont

data=AgeAndGender()

data.load_shape_predictor(‘shape_predictor_5_face_landmarks.dat’)

data.load_dnn_gender_classifier(‘dnn_gender_classifier_v1.dat’)

data.load_dnn_age_predictor(‘dnn_age_predictor_v1.dat’)

img=Image.open(‘putin.png’).convert(«RGB»)

result=data.predict(img)

font=ImageFont.truetype(«Lemon.ttf»,10)

forinfo inresult

shape=(info‘face’,info‘face’1),(info‘face’2,info‘face’3)

draw=ImageDraw.Draw(img)

gender=info‘gender’‘value’

ifgender==‘male’

gender=‘Мужчина’

else

gender=‘Женщина’

gender_percent=int(info‘gender’‘confidence’)

age=info‘age’‘value’

age_percent=int(info‘age’‘confidence’)

draw.text(

(info‘face’—10,info‘face’3),f«{gender} (~{gender_percent}%)»,

fill=‘white’,font=font,align=‘center’,stroke_width=3,stroke_fill=‘black’

)

draw.rectangle(shape,outline=«red»,width=5)

img.show()

Результат применения нейронной сети:

Мы, конечно, понимаем, что это фотографии с разных ракурсов и разные периоды жизни человека. В этом и кроется главный минус определения возраста, нейронная сеть была натренирована на определенный (ограниченный) сет данных и имеет погрешность. Мимика, шрамы и эмоции так-же могут повлиять на результат.

Сервис How Old

Данный сайт является разработкой компании Microsoft. Он использует машинные алгоритмы для определения возраста человека по фото онлайн. Сканирование осуществляется по форме лица, анализируется, форма носа, рта, положение глаз, бровей и ушей. При этом разработчики делают акцент на том, что сервис не позволяет точно узнать необходимые параметры. Он сделан с целью развлечь пользователей.

Сервис представлен не только в виде веб-версии, но и мобильным приложением. При первом использовании, чтобы пользователь убедился в работоспособности программы, будут представлены шаблоны фотографий людей, которые можно просканировать. Далее следует пошаговая инструкция, как пользоваться веб-версией How Old , т.к. мобильная используется только на iOS и привязана к американскому iTunes.

Инструкция:

Также можно посмотреть фотоинструкцию ниже:

Структура С++ класса AgeAndGender

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

#include <pybind11/pybind11.h>

#include <pybind11/numpy.h>

#include <math.h>

#include «dlib/data_io.h»

#include «dlib/string.h»

#include <dlib/image_transforms.h>

#include <dlib/dir_nav.h>

#include <dlib/dnn.h>

#include <dlib/data_io.h>

#include <dlib/image_processing/frontal_face_detector.h>

namespacepy=pybind11;

usingnamespacedlib;

constchar*VERSION=«1.0.1»;

classAgeAndGender{

public

virtual~AgeAndGender(){}

virtualvoidload_shape_predictor(std::stringfilename);

virtualvoidload_dnn_gender_classifier(std::stringfilename);

virtualvoidload_dnn_age_predictor(std::stringfilename);

virtualpy::list predict(

constpy::array_t<unsignedchar>&photo_numpy_array,

py::list face_bounding_boxes

);

virtualstd::vector<dlib::rectangle>from_py_list_with_tuple_to_vector_with_rectangles(py::list face_bounding_boxes);

private

shape_predictor sp;

agender_type gender_predictor_net;

apredictor_t age_predictor_net;

frontal_face_detector detector;

};

PYBIND11_MODULE(age_and_gender,m){

m.doc()=«Predict Age and Gender using Python»;

m.attr(«__version__»)=VERSION;

py::class_<AgeAndGender>(m,«AgeAndGender»)

.def(«load_shape_predictor»,&AgeAndGender::load_shape_predictor)

.def(«load_dnn_gender_classifier»,&AgeAndGender::load_dnn_gender_classifier)

.def(«load_dnn_age_predictor»,&AgeAndGender::load_dnn_age_predictor)

.def(

«predict»,

&AgeAndGender::predict,

py::arg(«photo_numpy_array»),

py::arg(«face_bounding_boxes»)=py::list()

)

.def(py::init<>());

}

Полный код можно увидеть тут: https://github.com/mowshon/age-and-gender/blob/master/src/main.cpp

  • Метод load_shape_predictor() принимает путь к файлу shape_predictor_5_face_landmarks.dat;
  • Метод load_dnn_gender_classifier() принимает путь к файлу dnn_gender_classifier_v1.dat для загрузки модели гендерной классификации;
  • Метод load_dnn_age_predictor() принимает путь к файлу dnn_age_predictor_v1.dat для загрузки модели предсказывания возраста;
  • Метод predict() принимает два аргумента, первый обязательный в виде матрицы пикселей изображения, второй не обязательный в виде списка из лиц которых удалось найти на изображении.

Как определить возраст без сервисов

Все вышеперечисленные ресурсы работают со следующими параметрами, с помощью которых формируется конечный результат:

  • морщины. В 20 лет неровности кожи не так заметны, как в 30 лет. В 50 лет морщины выражены намного сильней. Программа учитывает данные особенности и формирует конечный результат;
  • алгоритмы, по которым идет сканирование в основном основаны на анализе серых тонов. Допустим, если исходный размер фото не более 100 пикселей, то каждый из 10 000 будет иметь свой оттенок, от самого светлого, до темного. Программа начинает сравнивать несколько пиксели темнее и светлее друг от друга и определяет параметры возраста;
  • также сравниваются размеры лица, положение носа и глаз, форма рта и ушей. Программное обеспечение учитывает данные особенности, так как они в течении жизни человека существенно меняются;
  • если женщина пользуется большим количеством косметики, то узнать количество лет программным методом трудно, так как текстура кожи будет иметь небольшое количество изъянов.

Используя информацию указанную выше, можно попробовать самому узнать количество лет по фото. Это достаточно сложно, но вполне реально.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector