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

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

Модератор: Olej

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

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

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

Olej писал(а):После Dlib мы уже можем выделять местоположение лиц на фото алгоритмом HOG,
Следующие этапы это
а). оценка ориентиров лица;
б). центрировать глаза и рот примерно в одно и то же положение на изображении;

Оценка ориентиров лица:
Для этого мы будем использовать алгоритм под названием оценка ориентиров лица (face landmark estimation). Есть много способов сделать это, но мы будем использовать метод, изобретенный в 2014 году Вахидом Каземи (Vahid Kazemi) и Жозефиной Салливан (Josephine Sullivan).

Основная идея состоит в том, что мы отметим 68 особых точек (называемых ориентирами), которые существуют на каждом лице – верхняя часть подбородка, внешняя точка каждого глаза, внутренняя точка каждой брови и т. д. Затем мы обучим алгоритм машинного обучения находить эти 68 особых точек на любом лице:
Изображение
Но прежде, чем выполнять finding-face-landmarks.py (из прикреплённого архива), нужно скачать файл модели распознавания (из состава Dlib):

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

[olej@dell step-2_projecting-faces]$ ./finding-face-landmarks.py male/akatsi/akatsi.1.jpg
Traceback (most recent call last):
  File "./finding-face-landmarks.py", line 17, in <module>
    face_pose_predictor = dlib.shape_predictor(predictor_model)
RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat
Файл shape_predictor_68_face_landmarks.dat берём здесь: http://dlib.net/files/shape_predictor_6 ... ks.dat.bz2

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

[olej@dell step-2_projecting-faces]$ bzip2 -d shape_predictor_68_face_landmarks.dat.bz2

[olej@dell step-2_projecting-faces]$ ls -l shape_predictor_*
-rw-rw-r-- 1 olej olej 99693937 дек  7 12:43 shape_predictor_68_face_landmarks.dat
Я файл, естественно, не прикрепляю, поскольку его размер под 100Mb.
Вложения
step-2_projecting-faces-2.tgz
(368.67 КБ) 110 скачиваний

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

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

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

Olej писал(а): Но прежде, чем выполнять finding-face-landmarks.py (из прикреплённого архива), нужно скачать файл модели распознавания (из состава Dlib):
И вот как это работает:

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

[olej@dell step-2_projecting-faces]$ ./finding-face-landmarks.py male/akatsi/akatsi.1.jpg
Found 1 faces in the image file male/akatsi/akatsi.1.jpg
- Face #0 found at Left: 32 Top: 68 Right: 139 Bottom: 175
Hit enter to continue

[olej@dell step-2_projecting-faces]$ ./finding-face-landmarks.py female/klclar/klclar.1.jpg
Found 1 faces in the image file female/klclar/klclar.1.jpg
- Face #0 found at Left: 10 Top: 67 Right: 139 Bottom: 196
Hit enter to continue


[olej@dell step-2_projecting-faces]$ ls -l *.png
-rw-r--r-- 1 olej olej 60908 дек 11 15:41 akatsi.1f.png
-rw-r--r-- 1 olej olej 56909 дек 11 15:44 klclar.1f.png
Вложения
akatsi.1f.png
akatsi.1f.png (59.48 КБ) 2459 просмотров
klclar.1f.png
klclar.1f.png (55.58 КБ) 2459 просмотров

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

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

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

Olej писал(а): б). центрировать глаза и рот примерно в одно и то же положение на изображении;
При этом мы не будем делать никаких фантастических трехмерных искажений, так как это портит изображение. Мы будем использовать только базовые преобразования изображений, такие как поворот и масштабирование, которые сохраняют параллельные линии (аффинные преобразования):
Но для этого шага понадобится установить упоминавшийся уже пакет OpenFace:

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

[olej@dell step-2_projecting-faces]$ ./projecting-faces.py male/akatsi/akatsi.1.jpg
Traceback (most recent call last):
  File "./projecting-faces.py", line 7, in <module>
    import openface
ModuleNotFoundError: No module named 'openface'
Я не знаю (не нашёл) этого пакета в PyPI, поэтому ставил его из исходников (с GIT проекта):

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

[olej@dell Vertical]$ git clone https://github.com/cmusatyalab/openface
Клонирование в «openface»…
remote: Enumerating objects: 4821, done.
remote: Total 4821 (delta 0), reused 0 (delta 0), pack-reused 4821
Получение объектов: 100% (4821/4821), 23.93 MiB | 140.00 KiB/s, готово.
Определение изменений: 100% (2901/2901), готово.

[olej@dell FaceDL]$ du -hs openface
45M     openface

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

[olej@dell openface]$ pwd 
/home/olej/2018_WORK/own.WORK/AplitSoft/FaceDL/openface

[olej@dell openface]$ cat requirements.txt 
numpy >= 1.1, < 2.0
scipy >= 0.13, < 0.17
pandas >= 0.13, < 0.18
scikit-learn >= 0.17, < 0.18
nose >= 1.3.1, < 1.4
nolearn == 0.5b1
Это всё (или то, что ещё не установлено) нужно доустановить pip3.

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

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

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

Olej писал(а):Это всё (или то, что ещё не установлено) нужно доустановить pip3.
Это всё очень легко доустанавливается (у меня) на десктопе (Fedora 27):

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

[olej@dell female]$ sudo pip install --upgrade pandas
[sudo] пароль для olej: 
Collecting pandas
  Downloading https://files.pythonhosted.org/packages/e1/d8/feeb346d41f181e83fba45224ab14a8d8af019b48af742e047f3845d8cff/pandas-0.23.4-cp36-cp36m-manylinux1_x86_64.whl (8.9MB)
    100% |████████████████████████████████| 8.9MB 1.8MB/s 
Requirement already satisfied, skipping upgrade: python-dateutil>=2.5.0 in /usr/lib/python3.6/site-packages (from pandas) (2.6.0)
Requirement already satisfied, skipping upgrade: pytz>=2011k in /usr/lib/python3.6/site-packages (from pandas) (2017.2)
Requirement already satisfied, skipping upgrade: numpy>=1.9.0 in /usr/lib64/python3.6/site-packages (from pandas) (1.13.3)
Requirement already satisfied, skipping upgrade: six>=1.5 in /usr/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.11.0)
Installing collected packages: pandas
Successfully installed pandas-0.23.4

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

[olej@dell openface]$ pip3 list | grep pandas
pandas                       0.23.4     

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

[olej@dell openface]$ sudo pip3 install scikit-learn 
[sudo] пароль для olej: 
Collecting scikit-learn
  Downloading https://files.pythonhosted.org/packages/10/26/d04320c3edf2d59b1fcd0720b46753d4d603a76e68d8ad10a9b92ab06db2/scikit_learn-0.20.1-cp36-cp36m-manylinux1_x86_64.whl (5.4MB)
    100% |████████████████████████████████| 5.4MB 2.1MB/s 
Requirement already satisfied: scipy>=0.13.3 in /usr/local/lib64/python3.6/site-packages (from scikit-learn) (1.1.0)
Requirement already satisfied: numpy>=1.8.2 in /usr/lib64/python3.6/site-packages (from scikit-learn) (1.13.3)
Installing collected packages: scikit-learn
Successfully installed scikit-learn-0.20.1

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

[olej@dell openface]$ sudo pip3 install nose
Collecting nose
  Downloading https://files.pythonhosted.org/packages/15/d8/dd071918c040f50fa1cf80da16423af51ff8ce4a0f2399b7bf8de45ac3d9/nose-1.3.7-py3-none-any.whl (154kB)
    100% |████████████████████████████████| 163kB 1.7MB/s 
Installing collected packages: nose
Successfully installed nose-1.3.7

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

[olej@dell openface]$ sudo pip3 install nolearn
Collecting nolearn
  Downloading https://files.pythonhosted.org/packages/ff/69/2882491c14c58431c06d5a12a007eefcc4fb3f5ac7af624a5d212b0bbdd4/nolearn-0.6.0.tar.gz (320kB)
    100% |████████████████████████████████| 327kB 2.0MB/s 
Collecting gdbn (from nolearn)
  Downloading https://files.pythonhosted.org/packages/88/5c/512341ac1e6e8fa3008171b8dae49d2bd7b886e79f525658955bc59946c1/gdbn-0.1.tar.gz
Collecting joblib (from nolearn)
  Downloading https://files.pythonhosted.org/packages/0d/1b/995167f6c66848d4eb7eabc386aebe07a1571b397629b2eac3b7bebdc343/joblib-0.13.0-py2.py3-none-any.whl (276kB)
    100% |████████████████████████████████| 276kB 2.0MB/s 
Requirement already satisfied: scikit-learn in /usr/local/lib64/python3.6/site-packages (from nolearn) (0.20.1)
Collecting tabulate (from nolearn)
  Downloading https://files.pythonhosted.org/packages/12/c2/11d6845db5edf1295bc08b2f488cf5937806586afe42936c3f34c097ebdc/tabulate-0.8.2.tar.gz (45kB)
    100% |████████████████████████████████| 51kB 4.0MB/s 
Collecting Lasagne (from nolearn)
  Downloading https://files.pythonhosted.org/packages/98/bf/4b2336e4dbc8c8859c4dd81b1cff18eef2066b4973a1bd2b0ca2e5435f35/Lasagne-0.1.tar.gz (125kB)
    100% |████████████████████████████████| 133kB 2.3MB/s 
Collecting Theano (from nolearn)
  Downloading https://files.pythonhosted.org/packages/4d/b1/d490d88ab47f01f367f413bd2e47d86acf92c84157c5172c23903798bd70/Theano-1.0.3.tar.gz (2.8MB)
    100% |████████████████████████████████| 2.8MB 3.4MB/s 
Collecting gnumpy (from gdbn->nolearn)
  Downloading https://files.pythonhosted.org/packages/46/63/2c7f2fd6763130700dff21aada32b2d6cf3373a625af71cc74f7090818f4/gnumpy-0.2.tar.gz
Requirement already satisfied: numpy>=1.8.2 in /usr/lib64/python3.6/site-packages (from scikit-learn->nolearn) (1.13.3)
Requirement already satisfied: scipy>=0.13.3 in /usr/local/lib64/python3.6/site-packages (from scikit-learn->nolearn) (1.1.0)
Requirement already satisfied: six>=1.9.0 in /usr/lib/python3.6/site-packages (from Theano->nolearn) (1.11.0)
Installing collected packages: gnumpy, gdbn, joblib, tabulate, Lasagne, Theano, nolearn
  Running setup.py install for gnumpy ... done
  Running setup.py install for gdbn ... done
  Running setup.py install for tabulate ... done
  Running setup.py install for Lasagne ... done
  Running setup.py install for Theano ... done
  Running setup.py install for nolearn ... done
Successfully installed Lasagne-0.1 Theano-1.0.3 gdbn-0.1 gnumpy-0.2 joblib-0.13.0 nolearn-0.6.0 tabulate-0.8.2

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

[olej@dell openface]$ sudo python3 setup.py install
running install
running build
running build_py
running install_lib
creating /usr/local/lib/python3.6/site-packages/openface
copying build/lib/openface/__init__.py -> /usr/local/lib/python3.6/site-packages/openface
copying build/lib/openface/align_dlib.py -> /usr/local/lib/python3.6/site-packages/openface
copying build/lib/openface/data.py -> /usr/local/lib/python3.6/site-packages/openface
copying build/lib/openface/helper.py -> /usr/local/lib/python3.6/site-packages/openface
copying build/lib/openface/torch_neural_net.lutorpy.py -> /usr/local/lib/python3.6/site-packages/openface
copying build/lib/openface/torch_neural_net.py -> /usr/local/lib/python3.6/site-packages/openface
copying build/lib/openface/openface_server.lua -> /usr/local/lib/python3.6/site-packages/openface
byte-compiling /usr/local/lib/python3.6/site-packages/openface/__init__.py to __init__.cpython-36.pyc
byte-compiling /usr/local/lib/python3.6/site-packages/openface/align_dlib.py to align_dlib.cpython-36.pyc
byte-compiling /usr/local/lib/python3.6/site-packages/openface/data.py to data.cpython-36.pyc
byte-compiling /usr/local/lib/python3.6/site-packages/openface/helper.py to helper.cpython-36.pyc
byte-compiling /usr/local/lib/python3.6/site-packages/openface/torch_neural_net.lutorpy.py to torch_neural_net.lutorpy.cpython-36.pyc
byte-compiling /usr/local/lib/python3.6/site-packages/openface/torch_neural_net.py to torch_neural_net.cpython-36.pyc
running install_egg_info
Writing /usr/local/lib/python3.6/site-packages/openface-0.2.1-py3.6.egg-info

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

[olej@dell openface]$ 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 openface
>>> 

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

[olej@dell v-stream]$ pip3 show openface
Name: openface
Version: 0.2.1
Summary: Face recognition with Google's FaceNet deep neural network.
Home-page: https://github.com/cmusatyalab/openface
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: /usr/local/lib/python3.6/site-packages
Requires:
Required-by:

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

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

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

Olej писал(а): б). центрировать глаза и рот примерно в одно и то же положение на изображении;

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

[olej@dell step-2_projecting-faces]$ ./projecting-faces.py male/akatsi/akatsi.1.jpg
Found 1 faces in the image file male/akatsi/akatsi.1.jpg
- Face #0 found at Left: 32 Top: 68 Right: 139 Bottom: 175

[olej@dell step-2_projecting-faces]$ ls -l aligned_face_0.jpg
-rw-rw-r-- 1 olej olej 44237 дек 11 17:26 aligned_face_0.jpg
(это всё есть в прикреплённом выше архиве)
Вложения
akatsi.13.jpg
akatsi.13.jpg (6.06 КБ) 2459 просмотров
aligned_face_0.jpg

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

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

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

Olej писал(а):
Olej писал(а):Это всё (или то, что ещё не установлено) нужно доустановить pip3.
Это всё очень легко доустанавливается (у меня) на десктопе (Fedora 27):
Но это вовсе не получается на одноплатном ARM DragonBoard 410c
Изображение

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

inaro@linaro-alip:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux testing (buster)
Release:        testing
Codename:       buster

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

linaro@linaro-alip:~/Face$ uname -a
Linux linaro-alip 4.14.0-qcomlt-arm64 #1 SMP PREEMPT Fri Feb 2 21:19:01 UTC 2018 aarch64 GNU/Linux
Olej писал(а):

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

[olej@dell openface]$ pwd 
/home/olej/2018_WORK/own.WORK/AplitSoft/FaceDL/openface

[olej@dell openface]$ cat requirements.txt 
numpy >= 1.1, < 2.0
scipy >= 0.13, < 0.17
pandas >= 0.13, < 0.18
scikit-learn >= 0.17, < 0.18
nose >= 1.3.1, < 1.4
nolearn == 0.5b1
Проблемы в установке: pandas, scikit-learn, nolearn.

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

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

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

Olej писал(а):

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

[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
Относительно сборки и установки Dlib ... Собирал на новом компьютере в Debian 9.
Во-первых, ошибка вылезет если у вас в системе ещё не установлен Cmake (а по дефаулту он не устанавливается):

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ sudo time pip3 install Dlib
Collecting Dlib
  Downloading https://files.pythonhosted.org/packages/35/8d/e4ddf60452e2fb1ce3164f774e68968b3f110f1cb4cd353235d56875799e/dlib-19.16.0.tar.gz (3.3MB)
    100% |████████████████████████████████| 3.3MB 320kB/s 
Building wheels for collected packages: Dlib
  Running setup.py bdist_wheel for Dlib ... error
...
    RuntimeError:
    *******************************************************************
     CMake must be installed to build the following extensions: dlib
    *******************************************************************
... 

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ sudo apt install cmake 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
...
Распаковывается cmake (3.13.2-1) …
Настраивается пакет libuv1:amd64 (1.24.0-1) …
Настраивается пакет cmake-data (3.13.2-1) …
Настраивается пакет librhash0:amd64 (1.3.6-3) …
Обрабатываются триггеры для libc-bin (2.28-2) …
Обрабатываются триггеры для man-db (2.8.4-3) …
Настраивается пакет cmake (3.13.2-1) …
Во-вторых, и это самое главное - время, сборка Dlib идёт очень долго:

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ sudo time pip3 install Dlib
Collecting Dlib
  Using cached https://files.pythonhosted.org/packages/35/8d/e4ddf60452e2fb1ce3164f774e68968b3f110f1cb4cd353235d56875799e/dlib-19.16.0.tar.gz
Building wheels for collected packages: Dlib
  Running setup.py bdist_wheel for Dlib ... /
done
  Stored in directory: /root/.cache/pip/wheels/ce/f9/bc/1c51cd0b40a2b5dfd46ab79a73832b41e7c3aa918a508154f0
Successfully built Dlib
Installing collected packages: Dlib
Successfully installed Dlib-19.16.0
832.81user 20.58system 7:19.06elapsed 194%CPU (0avgtext+0avgdata 1496724maxresident)k
115936inputs+528880outputs (434major+8825255minor)pagefaults 0swaps
>10 минут на очень быстром процессоре ... и почти без выраженных признаков жизни - может показаться, что процесс подвис, и вы его прервёте!
А на одноплатном ARM DragonBoard 410c такая сборка шла несколько часов...

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

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

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

Olej писал(а): >10 минут на очень быстром процессоре ... и почти без выраженных признаков жизни - может показаться, что процесс подвис, и вы его прервёте!
А на одноплатном ARM DragonBoard 410c такая сборка шла несколько часов...
Ещё один неприятный сюрприз ... делаю установку из GIT проекта на свежем компьютере, Debian 9:

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ git clone https://github.com/davisking/dlib
Клонирование в «dlib»…
remote: Enumerating objects: 46806, done.
remote: Total 46806 (delta 0), reused 0 (delta 0), pack-reused 46806
Получение объектов: 100% (46806/46806), 21.96 MiB | 2.01 MiB/s, готово.
Определение изменений: 100% (32895/32895), готово.

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ cd dlib


olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/dlib$ time sudo python3 setup.py build
running build
running build_py
package init file 'dlib/__init__.py' not found (or not a regular file)
running build_ext
Building extension for Python 3.7.2rc1 (default, Dec 12 2018, 06:25:49)
...
[100%] Built target dlib_python

real    7m44,373s
user    14m8,277s
sys     0m22,124s
Собрана самая-самая последняя версия:

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ pip3 show dlib
Name: dlib
Version: 19.16.99
Summary: A toolkit for making real world machine learning and data analysis applications
Home-page: https://github.com/davisking/dlib
Author: Davis King
Author-email: davis@dlib.net
License: Boost Software License
Location: /usr/local/lib/python3.7/dist-packages/dlib-19.16.99-py3.7-linux-x86_64.egg
Requires:

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

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

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

Olej писал(а): Собрана самая-самая последняя версия:
Но ... :-o :

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/step-1_find-faces$ python3 ./find-faces.py gr-img3.jpg
Traceback (most recent call last):
  File "./find-faces.py", line 14, in <module>
    win = dlib.image_window()
AttributeError: module 'dlib' has no attribute 'image_window'
И вправду:

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

lej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ python3
Python 3.7.2rc1 (default, Dec 12 2018, 06:25:49) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
>>> dlib.__version__
'19.16.9'
>>> help( dlib )
...
Help on module dlib:

NAME
    dlib

SUBMODULES
    cuda
    image_dataset_metadata

CLASSES
    builtins.Exception(builtins.BaseException)
        no_convex_quadrilateral
    pybind11_builtins.pybind11_object(builtins.object)
        array
        cca_outputs
        chip_details
        chip_dims
        cnn_face_detection_model_v1
        correlation_tracker
        dpoint
        dpoints
...
        hough_transform
        image_gradients
        line
        matrix
        mmod_rectangle
        mmod_rectangles
...
Поиск показывает, что это хорошо известная ошибка:
В исходном коде dlib мы видим, что если макрос DLIB_NO_GUI_SUPPORT определен – в модуле dlib не будет
функции «image_window». Этот макрос определяется автоматически, если сценарии CMake не могут найти библиотеки X11

Вы должны убедиться, что dlib скомпилирован с поддержкой GUI. Чтобы сделать это, сначала установите libx11-dev
в вашу систему, если вы работаете в Linux, или XQuartz для Mac

При создании dlib с запуском python setup.py install --yes DLIB_JPEG_SUPPORT – проверьте его сообщения. Если есть
ошибки или предупреждения – исправьте их

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

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

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

Olej писал(а): Поиск показывает, что это хорошо известная ошибка:
Как оказывается, в свежей системе, по крайней мере Debian 9 (testing), нужно доустанавливать довольно много:

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/step-1_find-faces$ sudo aptitude install libx11-dev
[sudo] пароль для olej:
Следующие НОВЫЕ пакеты будут установлены:
  libpthread-stubs0-dev{a} libx11-dev libxau-dev{a} libxcb1-dev{a} libxdmcp-dev{a} x11proto-core-dev{a} x11proto-dev{a}
  xorg-sgml-doctools{a} xtrans-dev{a}
0 пакетов обновлено, 9 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 1 446 kБ архивов. После распаковки 5 501 kБ будет занято.
...

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/HISTORY/Debian$ sudo apt install gfortran wget graphicsmagick libswscale-dev pkg-config 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  gfortran-8 libavutil-dev libgfortran-8-dev libgraphicsmagick-q16-3
Предлагаемые пакеты:
  gfortran-multilib gfortran-doc gfortran-8-multilib gfortran-8-doc libgfortran5-dbg libcoarrays-dev graphicsmagick-dbg
Следующие НОВЫЕ пакеты будут установлены:
  gfortran gfortran-8 graphicsmagick libavutil-dev libgfortran-8-dev libgraphicsmagick-q16-3 libswscale-dev pkg-config wget
Обновлено 0 пакетов, установлено 9 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 11,9 MB архивов.
...

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/HISTORY/Debian$ sudo apt install libgraphicsmagick1-dev libatlas-base-dev libavcodec-dev libavformat-dev libboost-all-dev libgtk2.0-dev libjpeg-dev liblapack-dev python3-numpy software-properties-common
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  autoconf automake autopoint autotools-dev bzip2-doc debhelper dh-autoreconf dh-strip-nondeterminism dwz freetype2-doc
  gir1.2-gtk-2.0 gir1.2-harfbuzz-0.0 ibverbs-providers icu-devtools libarchive-cpio-perl libatk1.0-dev libboost-atomic-dev
  libboost-atomic1.67-dev libboost-chrono-dev libboost-chrono1.67-dev libboost-container-dev libboost-container1.67-dev
  libboost-container1.67.0 libboost-context-dev libboost-context1.67-dev libboost-context1.67.0 libboost-coroutine-dev
  libboost-coroutine1.67-dev libboost-coroutine1.67.0 libboost-date-time-dev libboost-date-time1.67-dev libboost-dev
  libboost-exception-dev libboost-exception1.67-dev libboost-fiber-dev libboost-fiber1.67-dev libboost-fiber1.67.0
  libboost-filesystem-dev libboost-filesystem1.67-dev libboost-graph-dev libboost-graph-parallel-dev
  libboost-graph-parallel1.67-dev libboost-graph-parallel1.67.0 libboost-graph1.67-dev libboost-graph1.67.0 libboost-iostreams-dev
  libboost-iostreams1.67-dev libboost-locale-dev libboost-locale1.67-dev libboost-log-dev libboost-log1.67-dev libboost-log1.67.0
  libboost-math-dev libboost-math1.67-dev libboost-math1.67.0 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.67-dev
  libboost-mpi-python1.67.0 libboost-mpi1.67-dev libboost-mpi1.67.0 libboost-numpy-dev libboost-numpy1.67-dev libboost-numpy1.67.0
  libboost-program-options-dev libboost-program-options1.67-dev libboost-program-options1.67.0 libboost-python-dev
  libboost-python1.67-dev libboost-random-dev libboost-random1.67-dev libboost-random1.67.0 libboost-regex-dev
  libboost-regex1.67-dev libboost-regex1.67.0 libboost-serialization-dev libboost-serialization1.67-dev
  libboost-serialization1.67.0 libboost-signals-dev libboost-signals1.67-dev libboost-signals1.67.0 libboost-stacktrace-dev
  libboost-stacktrace1.67-dev libboost-stacktrace1.67.0 libboost-system-dev libboost-system1.67-dev libboost-test-dev
  libboost-test1.67-dev libboost-test1.67.0 libboost-thread-dev libboost-thread1.67-dev libboost-timer-dev libboost-timer1.67-dev
  libboost-timer1.67.0 libboost-tools-dev libboost-type-erasure-dev libboost-type-erasure1.67-dev libboost-type-erasure1.67.0
  libboost-wave-dev libboost-wave1.67-dev libboost-wave1.67.0 libboost1.67-dev libboost1.67-tools-dev libbz2-dev libcaf-openmpi-3
  libcairo-script-interpreter2 libcairo2-dev libcoarrays-openmpi-dev libevent-core-2.1-6 libevent-pthreads-2.1-6 libexif-dev
  libexif-doc libfabric1 libfile-stripnondeterminism-perl libfontconfig1-dev libfreetype6-dev libfribidi-dev libgdk-pixbuf2.0-dev
  libglib2.0-dev libglib2.0-dev-bin libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libhwloc-dev libhwloc-plugins libhwloc5
  libibverbs-dev libibverbs1 libice-dev libicu-dev libjbig-dev libjpeg62-turbo-dev liblcms2-dev libltdl-dev liblzma-dev
  libmail-sendmail-perl libnl-3-dev libnl-route-3-200 libnl-route-3-dev libnuma-dev libopenmpi-dev libopenmpi3 libpango1.0-dev
  libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpmix2 libpng-dev libpng-tools libpsm-infinipath1 libpsm2-2
  libpython-dev libpython2-dev libpython2.7-dev librdmacm1 libsm-dev libswresample-dev libsys-hostname-long-perl libtiff-dev
  libtiffxx5 libtool libwebp-dev libwmf-dev libxcb-render0-dev libxcb-shm0-dev libxcomposite-dev libxcursor-dev libxdamage-dev
  libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-dev libxml2-utils libxrandr-dev libxrender-dev
  libzstd-dev m4 mpi-default-bin mpi-default-dev ocl-icd-libopencl1 openmpi-bin openmpi-common pango1.0-tools po-debconf
  python-dev python2-dev python2.7-dev python3-distro-info python3-pycurl python3-software-properties unattended-upgrades uuid-dev
  x11proto-composite-dev x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-randr-dev x11proto-xext-dev
  x11proto-xinerama-dev zlib1g-dev
Предлагаемые пакеты:
  autoconf-archive gnu-standards autoconf-doc dh-make libatlas-doc liblapack-doc libboost-doc graphviz libboost1.67-doc gccxml
  libmpfrc++-dev libntl-dev xsltproc doxygen docbook-xml docbook-xsl default-jdk fop libcairo2-doc libglib2.0-doc
  libgraphite2-utils libgtk2.0-doc libhwloc-contrib-plugins libice-doc icu-doc libtool-doc liblzma-doc openmpi-doc libpango1.0-doc
  libsm-doc gcj-jdk libwmf-doc libxext-doc m4-doc opencl-icd libmail-box-perl python-numpy-doc python3-pytest python3-numpy-dbg
  libcurl4-gnutls-dev python-pycurl-doc python3-pycurl-dbg bsd-mailx default-mta | mail-transport-agent needrestart powermgmt-base
Следующие НОВЫЕ пакеты будут установлены:
  autoconf automake autopoint autotools-dev bzip2-doc debhelper dh-autoreconf dh-strip-nondeterminism dwz freetype2-doc
  gir1.2-gtk-2.0 gir1.2-harfbuzz-0.0 ibverbs-providers icu-devtools libarchive-cpio-perl libatk1.0-dev libatlas-base-dev
  libavcodec-dev libavformat-dev libboost-all-dev libboost-atomic-dev libboost-atomic1.67-dev libboost-chrono-dev
  libboost-chrono1.67-dev libboost-container-dev libboost-container1.67-dev libboost-container1.67.0 libboost-context-dev
  libboost-context1.67-dev libboost-context1.67.0 libboost-coroutine-dev libboost-coroutine1.67-dev libboost-coroutine1.67.0
  libboost-date-time-dev libboost-date-time1.67-dev libboost-dev libboost-exception-dev libboost-exception1.67-dev
  libboost-fiber-dev libboost-fiber1.67-dev libboost-fiber1.67.0 libboost-filesystem-dev libboost-filesystem1.67-dev
  libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.67-dev libboost-graph-parallel1.67.0
  libboost-graph1.67-dev libboost-graph1.67.0 libboost-iostreams-dev libboost-iostreams1.67-dev libboost-locale-dev
  libboost-locale1.67-dev libboost-log-dev libboost-log1.67-dev libboost-log1.67.0 libboost-math-dev libboost-math1.67-dev
  libboost-math1.67.0 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.67-dev libboost-mpi-python1.67.0
  libboost-mpi1.67-dev libboost-mpi1.67.0 libboost-numpy-dev libboost-numpy1.67-dev libboost-numpy1.67.0
  libboost-program-options-dev libboost-program-options1.67-dev libboost-program-options1.67.0 libboost-python-dev
  libboost-python1.67-dev libboost-random-dev libboost-random1.67-dev libboost-random1.67.0 libboost-regex-dev
  libboost-regex1.67-dev libboost-regex1.67.0 libboost-serialization-dev libboost-serialization1.67-dev
  libboost-serialization1.67.0 libboost-signals-dev libboost-signals1.67-dev libboost-signals1.67.0 libboost-stacktrace-dev
  libboost-stacktrace1.67-dev libboost-stacktrace1.67.0 libboost-system-dev libboost-system1.67-dev libboost-test-dev
  libboost-test1.67-dev libboost-test1.67.0 libboost-thread-dev libboost-thread1.67-dev libboost-timer-dev libboost-timer1.67-dev
  libboost-timer1.67.0 libboost-tools-dev libboost-type-erasure-dev libboost-type-erasure1.67-dev libboost-type-erasure1.67.0
  libboost-wave-dev libboost-wave1.67-dev libboost-wave1.67.0 libboost1.67-dev libboost1.67-tools-dev libbz2-dev libcaf-openmpi-3
  libcairo-script-interpreter2 libcairo2-dev libcoarrays-openmpi-dev libevent-core-2.1-6 libevent-pthreads-2.1-6 libexif-dev
  libexif-doc libfabric1 libfile-stripnondeterminism-perl libfontconfig1-dev libfreetype6-dev libfribidi-dev libgdk-pixbuf2.0-dev
  libglib2.0-dev libglib2.0-dev-bin libgraphicsmagick1-dev libgraphite2-dev libgtk2.0-dev libharfbuzz-dev libharfbuzz-gobject0
  libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libibverbs1 libice-dev libicu-dev libjbig-dev libjpeg-dev
  libjpeg62-turbo-dev liblapack-dev liblcms2-dev libltdl-dev liblzma-dev libmail-sendmail-perl libnl-3-dev libnl-route-3-200
  libnl-route-3-dev libnuma-dev libopenmpi-dev libopenmpi3 libpango1.0-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5
  libpixman-1-dev libpmix2 libpng-dev libpng-tools libpsm-infinipath1 libpsm2-2 libpython-dev libpython2-dev libpython2.7-dev
  librdmacm1 libsm-dev libswresample-dev libsys-hostname-long-perl libtiff-dev libtiffxx5 libtool libwebp-dev libwmf-dev
  libxcb-render0-dev libxcb-shm0-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxft-dev
  libxi-dev libxinerama-dev libxml2-dev libxml2-utils libxrandr-dev libxrender-dev libzstd-dev m4 mpi-default-bin mpi-default-dev
  ocl-icd-libopencl1 openmpi-bin openmpi-common pango1.0-tools po-debconf python-dev python2-dev python2.7-dev python3-distro-info
  python3-numpy python3-pycurl python3-software-properties software-properties-common unattended-upgrades uuid-dev
  x11proto-composite-dev x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-randr-dev x11proto-xext-dev
  x11proto-xinerama-dev zlib1g-dev
Обновлено 0 пакетов, установлено 214 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 124 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 608 MB.
...

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/dlib$ time sudo python3 setup.py install --yes DLIB_JPEG_SUPPORT --no DLIB_NO_GUI_SUPPORT --compiler-flags "-O3" 
...
Installed /usr/local/lib/python3.7/dist-packages/dlib-19.16.99-py3.7-linux-x86_64.egg
Processing dependencies for dlib==19.16.99
Finished processing dependencies for dlib==19.16.99

real    8m27,175s
user    14m57,705s
sys     0m21,774s

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL$ python3
Python 3.7.2rc1 (default, Dec 12 2018, 06:25:49)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
>>> help( dlib )
Help on module dlib:

NAME
    dlib

SUBMODULES
    cuda
    image_dataset_metadata

CLASSES
    builtins.Exception(builtins.BaseException)
        no_convex_quadrilateral
    pybind11_builtins.pybind11_object(builtins.object)
        array
...
       hough_transform
        image_gradients
        image_window
        line
        matrix
...
Вот теперь ОК:

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

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/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
Вложения
img3.6-5.png

Ответить

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

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

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