DlibC++ : распознавание лиц

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DlibC++ : распознавание лиц

Непрочитанное сообщение Olej » 18 дек 2018, 13:29

По распознаванию изображений и лиц уже здесь много тем...
Вот только некоторые:
OpenCV и компьютерное зрение
Open CV (продолжение) ...
компьютерное зрение на одноплатных SBC
В последней теме - примеры моего работающего кода... (можете взять и попользовать).
Но всё это (+ тысячи тем в Интернет на тему) - это алгоритмика LBPH, подробнейшим образом описаном здесь: Face Recognition: Understanding LBPH Algorithm, предложенном в 1996 году.
Но есть другие подходы, основанные на deep learning, глубоком обучении, использовании обучающихся нейронных сетей ... методы широко реализуемые на уровне 2015 года ... т.е. на 20 лет позже "алгоритмических" методов.

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: распознавание лиц

Непрочитанное сообщение Olej » 18 дек 2018, 13:37

Olej писал(а):Но есть другие подходы, основанные на deep learning, глубоком обучении, использовании обучающихся нейронных сетей ... методы широко реализуемые на уровне 2015 года ... т.е. на 20 лет позже "алгоритмических" методов.
Одна из самых полезных публикаций: Распознавание лиц с помощью глубокого обучения (перевод)
Posted on Апрель 19, 2017
...
Это довольно удивительная технология – Facebook может распознавать лица с точностью 98% – почти так же точно, как человек!
...
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 18 дек 2018, 13:49

Проекты (GIT) непосредственно готовые к использованию:
1. Dlib
A toolkit for making real world machine learning and data analysis applications in C++ http://dlib.net
Изображение

2. OpenFace
Face recognition with deep neural networks. http://cmusatyalab.github.io/openface/
3. Face Recognition
The world's simplest facial recognition api for Python and the command line
...
https://cloud.githubusercontent.com/ass ... e1e419.gif

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 18 дек 2018, 17:31

Olej писал(а):
Это довольно удивительная технология – Facebook может распознавать лица с точностью 98% – почти так же точно, как человек!
Для того, чтобы всерьёз испытывать программы распознавания, нужно иметь большой запас тестовых изображений. К счастью, есть (накоплены) огромные публичные библиотеки для этих целей.
Вот указатель основных таких баз данных - FACE RECOGNITION HOMEPAGE
DATABASES

Многие из этих ресурсов накапливаются с 60-70-х годов, не все ссылки здесь доступны...

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 18 дек 2018, 17:40

Olej писал(а): Изображение
Основой всего дальнейшего - установка Dlib.
Варианты:
1. GIT : https://github.com/davisking/dlib
2. архив с сайта : http://dlib.net/files/dlib-19.16.tar.bz2
3. в некоторых дистрибутивах Linux ставится из стандартного репозитория:

Код: Выделить всё

[olej@dell FaceDL]$ pip search dlib
dlib (19.16.0)              - A toolkit for making real world machine learning and data analysis applications
friday-dlib (19.7.0)        - A toolkit for making real world machine learning and data analysis applications
pyfacy-dlib-models (0.0.4)  - Models used by the pyfacy package.
bob.ip.dlib (1.0.5)         - Bob interface for dlib functions
gfsopt (1.0.1)              - Scaffolding for the Global Function Search optimizer from Dlib

Код: Выделить всё

[olej@dell step-1_find-faces]$ sudo pip install dlib
[sudo] пароль для olej: 
Collecting dlib
  Using cached https://files.pythonhosted.org/packages/35/8d/e4ddf60452e2fb1ce3164f774e68968b3f110f1cb4cd353235d56875799e/dlib-19.16.0.tar.gz
Installing collected packages: dlib
  Running setup.py install for dlib ... done
Successfully installed dlib-19.16.0

Код: Выделить всё

[olej@dell ~]$ pip3 check dlib
No broken requirements found.

Код: Выделить всё

[olej@dell ~]$ python3
Python 3.6.6 (default, Jul 19 2018, 16:29:00) 
[GCC 7.3.1 20180303 (Red Hat 7.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import skimage
>>> import dlib
>>> exit()

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 18 дек 2018, 18:02

Olej писал(а): Основой всего дальнейшего - установка Dlib.
После Dlib мы уже можем выделять местоположение лиц на фото алгоритмом HOG, Интерес представляют здесь именно групповые фото. Сами тестовые групповые фото я надёргал наугад из Интернет...

Код: Выделить всё

[olej@dell step-1_find-faces]$ ./find-faces.py gr-img3.jpg
I found 5 faces in the file gr-img3.jpg
- Face #0 found at Left: 462 Top: 92 Right: 569 Bottom: 199
- Face #1 found at Left: 390 Top: 307 Right: 497 Bottom: 414
- Face #2 found at Left: 270 Top: 283 Right: 378 Bottom: 390
- Face #3 found at Left: 155 Top: 116 Right: 245 Bottom: 206
- Face #4 found at Left: 342 Top: 68 Right: 450 Bottom: 175
Hit enter to continue

Код: Выделить всё

[olej@dell step-1_find-faces]$ ./find-faces.py gr-img4.jpg
I found 9 faces in the file gr-img4.jpg
- Face #0 found at Left: 112 Top: 141 Right: 164 Bottom: 193
- Face #1 found at Left: 951 Top: 322 Right: 1013 Bottom: 384
- Face #2 found at Left: 1016 Top: 153 Right: 1068 Bottom: 205
- Face #3 found at Left: 508 Top: 322 Right: 570 Bottom: 384
- Face #4 found at Left: 366 Top: 216 Right: 417 Bottom: 268
- Face #5 found at Left: 838 Top: 193 Right: 890 Bottom: 245
- Face #6 found at Left: 669 Top: 185 Right: 712 Bottom: 228
- Face #7 found at Left: 199 Top: 228 Right: 250 Bottom: 280
- Face #8 found at Left: 506 Top: 151 Right: 549 Bottom: 194
Hit enter to continue

Код: Выделить всё

[olej@dell step-1_find-faces]$ ./find-faces.py gr-img5.jpg
I found 4 faces in the file gr-img5.jpg
- Face #0 found at Left: 170 Top: 66 Right: 232 Bottom: 129
- Face #1 found at Left: 80 Top: 156 Right: 142 Bottom: 218
- Face #2 found at Left: 487 Top: 135 Right: 550 Bottom: 198
- Face #3 found at Left: 335 Top: 87 Right: 398 Bottom: 149
Hit enter to continue

Код: Выделить всё

[olej@dell step-1_find-faces]$ ./find-faces.py gr-img6.jpg
I found 4 faces in the file gr-img6.jpg
- Face #0 found at Left: 305 Top: 198 Right: 341 Bottom: 234
- Face #1 found at Left: 141 Top: 94 Right: 184 Bottom: 137
- Face #2 found at Left: 415 Top: 60 Right: 458 Bottom: 103
- Face #3 found at Left: 501 Top: 130 Right: 537 Bottom: 166
Hit enter to continue

Код: Выделить всё

[olej@dell step-1_find-faces]$ ./find-faces.py gr-img7.jpg
I found 1 faces in the file gr-img7.jpg
- Face #0 found at Left: 1044 Top: 511 Right: 1087 Bottom: 554
Hit enter to continue

Код: Выделить всё

[olej@dell step-1_find-faces]$ ./find-faces.py gr-img8.jpg
I found 6 faces in the file gr-img8.jpg
- Face #0 found at Left: 497 Top: 211 Right: 605 Bottom: 319
- Face #1 found at Left: 145 Top: 275 Right: 235 Bottom: 365
- Face #2 found at Left: 643 Top: 265 Right: 733 Bottom: 355
- Face #3 found at Left: 245 Top: 236 Right: 335 Bottom: 325
- Face #4 found at Left: 404 Top: 285 Right: 494 Bottom: 375
- Face #5 found at Left: 772 Top: 235 Right: 880 Bottom: 343
Hit enter to continue
P.S. Python3 код find-faces.py в приложении.
P.P.S. Изображения gr-img* - исходные, нащёлканные из Интернет. файлы img* - сохранённые результирующие, в их номере: число лиц на исходном фото - число локализованных лиц, локализованные лица обведены красной рамкой ... рамка тонкая и её не очень видно на прикреплённых изображениях - откройте изображение в отдельной вкладке браузера, и всё замечательно видно.
Вложения
find-faces.py
(1.18 КБ) 164 скачивания
gr-img3.jpg
img3.6-5.png
gr-img4.jpg
img4.9-9.png
gr-img5.jpg
img5.5-4.png
gr-img6.jpg
img6.4-4.png
gr-img7.jpg
img7.4-0-.png
gr-img8.jpg
img8.6-6.png
step-1_find-faces.tgz
(6.42 МБ) 163 скачивания

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 21 дек 2018, 11:05

Olej писал(а):Многие из этих ресурсов накапливаются с 60-70-х годов, не все ссылки здесь доступны...
Из доступных баз данных тестовых изображений:

1. The Color FERET Database, USA
The FERET database was collected in 15 sessions between August 1993 and July 1996. The database contains 1564 sets of images for a total of 14,126 images that includes 1199 individuals and 365 duplicate sets of images.
Здесь у вас попросят зарегистрироваться, потом на мэйл пришлют временную ссылку для скачивания.
Запросы по электронной почте рассчитаны на то, чтобы система не использовалась для рассылки спама.
Таким образом, ответное письмо не будет отправлено в режиме реального времени, а должно прибыть
в течение одного рабочего дня при нормальных обстоятельствах.
...
ЗАВЕРШЕНО --2018-12-10 20:24:14--
Общее время: 1h 7m 47s
Загружено: 3 файлов, 8,0G за 1h 7m 41s (2,01 MB/s)
14126 изображений - это круто! ;-)

Код: Выделить всё

[olej@dell colorferet]$ ls -l colorferet.tar
-rw-rw-r-- 1 olej olej 8579819520 ноя 20  2012 colorferet.tar
Накладываются некоторые ограничения на публичное использование изображений - https://www.nist.gov/sites/default/file ... eement.pdf:
2. The images will only appear in technical reports, technical papers, and technical documents
reporting on face recognition research. There will be no more than 15 images used at a time in a
publication.

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 21 дек 2018, 20:36

Olej писал(а): Из доступных баз данных тестовых изображений:
2. Yale Face Database
The database contains 5760 single light source images of 10 subjects each seen under 576 viewing conditions
(9 poses x 64 illumination conditions). For every subject in a particular pose, an image with ambient
(background) illumination was also captured. Hence, the total number of images is in fact 5760+90=5850.
The total size of the compressed database is about 1GB.
3. Extended Yale Face Database B (B+)
The extended Yale Face Database B contains 16128 images of 28 human subjects under 9 poses and 64 illumination conditions.
Separately download each individual's images
YaleB11
YaleB12
YaleB13
YaleB15
YaleB16
YaleB17
YaleB18
YaleB19
YaleB20
YaleB21
YaleB22
YaleB23
YaleB24
YaleB25
YaleB26
YaleB27
YaleB28
YaleB29
YaleB30
YaleB31
YaleB32
YaleB33
YaleB34
YaleB35
YaleB36
YaleB37
YaleB38
YaleB39

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 21 дек 2018, 20:42

Olej писал(а): Из доступных баз данных тестовых изображений:
4. AT&T Laboratories Cambridge
Our Database of Faces, (formerly 'The ORL Database of Faces'), contains a set of face images taken between
April 1992 and April 1994 at the lab.
The database can be retrieved from http://www.cl.cam.ac.uk/Research/DTG/at ... aces.tar.Z
as a 4.5Mbyte compressed tar file
5. Face Recognition Data, University of Essex, UK
The data is held in four directories ( faces94 , faces95 , faces96 , grimace ), in order
of increasing difficulty. Faces96 and grimace are the most difficult, though for two different
reasons (variation of background and scale, versus extreme variation of expressions).
For your convenience of downloading, there are zipped versions of all the data in each directory.
The images are stored in 24 bit RGB, JPEG format.

faces94.zip (18.8 MBytes)
Database Description
Number of individuals: 153
Image resolution: 180 by 200 pixels (portrait format)
directories: female (20), male (113), malestaff(20)
Contains images of male and female subjects in separate directories

faces95.zip (6.4 MBytes)
Database Description
Number of individuals: 72
Image resolution: 180 by 200 pixels (portrait format)
Contains images of male and female subjects

faces96.zip (21 MBytes)
Database Description
Number of individuals: 152
Image resolution: 196x196 pixels (square format)
Contains images of male and female subjects

grimace.zip (1.5 MBytes)
Database Description
Number of individuals: 18
Image resolution: 180x200 pixels (portrait format)
Contains images of male and female subjects

Аватара пользователя
Olej
Писатель
Сообщения: 21336
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

распознавание лиц

Непрочитанное сообщение Olej » 21 дек 2018, 20:44

Olej писал(а): Из доступных баз данных тестовых изображений:
6.
http://www.kasrl.org/jaffe.html
The Japanese Female Facial Expression (JAFFE) Database
http://www.kasrl.org/jaffedbase.zip

Это те БД изображений лиц, с которыми я работаю (вы можете ещё догрузить из ссылки выше).
Но без больших баз данных лиц в распознавании делать нечего!

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя