Руководство пользователя Orange Pi Zero 3

  Обзор   |  Запуск   |    Linux     |  Сборка Linux   |  Android   |  Сборка Android   |

  RU            EN  

Глава 3. Использование Linux: системы Debian/Ubuntu Server и настольная Xfce
Страница:   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    53    54    55    56    57    58    59    60    61    62    63    64    65    66    67    68    69    70    71    72    73    74    75    76    77    78    79    80    81    82    83    84    85    86    87    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122  


3.27.3. Тест распознавания лиц

Обратите внимание, что следующие операции демонстрируются на рабочем столе, поэтому сначала подключите монитор HDMI или используйте NoMachine/VNC для удаленного входа на рабочий стол Linux для проверки

  • 1) В исходный код face_recognition, который мы можем использовать непосредственно для тестирования. Адрес загрузки исходного кода face_recognition выглядит следующим образом.

    a. Официальный адрес загрузки GitHub

    orangepi@orangepi:~$ git clone https://github.com/ageitgey/face_recognition.git

    b. Адрес загрузки образа Gitee

    orangepi@orangepi:~$ git clone https://gitee.com/leeboby/face_recognition.git

  • 2) Путь к образцу кода face_recognition выглядит следующим образом: face_recognition/examples

  • 3) Ссылка на китайский документ с описанием face_recognition выглядит следующим образом, пожалуйста, внимательно прочитайте ее перед использованием face_recognition. https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md

  • 4) find_faces в picture.py используется для определения положения лица на картинке, шаги теста следующие:

    a. Откройте терминал на рабочем столе, затем войдите в каталог face_recognition/examples и выполните следующую команду.

    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ python3 find_faces in picture.py
    I found 1 face(s) in this photograph.
    A face is located at pixel location Top: 241, Left: 419, Bottom: 562, Right: 740

    b. Подождите некоторое время, и появится следующее изображение, на котором изображено лицо на тестовом изображении.



    Img 3.181

  • 5) find_facial_features в picture.py используется для определения ключевых точек лица на одном изображении, и этапы проверки следующие:

    a. Откройте терминал на рабочем столе, затем войдите в каталог face_recognition/examples и выполните следующую команду.

    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ python3 find_facial_features in picture.py

    b. Подождав некоторое время, появится следующее изображение, и вы можете видеть, что контур лица отмечен



    Img 3.182

  • 6) identity_and_draw_boxes_on_faces.py используется для идентификации лиц и их маркировки прямоугольниками. Шаги теста следующие

    a. Откройте терминал на рабочем столе, затем войдите в каталог face_recognition/examples и выполните следующую команду.

    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ python3 identify_and_draw_boxes_on_faces.py

    b. После некоторого ожидания появится следующая картинка. Вы можете видеть, что лица на картинке отмечены прямоугольниками, а имена персонажей отображаются правильно.



    Img 3.183

  • 7) face_distance.py используется для сравнения того, принадлежат ли два лица одному и тому же человеку с разной точностью. Сначала откройте терминал, затем войдите в каталог face_recognition/examples, а затем выполните следующую команду, чтобы увидеть результат теста.
    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ python3 face_distance.py
    The test image has a distance of 0.35 from known image #0
    - With a normal cutoff of 0.6, would the test image match the known image? True
    - With a very strict cutoff of 0.5, would the test image match the known image? True
    The test image has a distance of 0.82 from known image #1
    - With a normal cutoff of 0.6, would the test image match the known image? False
    - With a very strict cutoff of 0.5, would the test image match the known image?
    False

  • 8) распознавание_лиц в images.py используется для определения лица на неизвестном изображении. Сначала откройте терминал, затем войдите в каталог face_recognition/examples, а затем выполните следующую команду, и после некоторого ожидания вы сможете увидеть результаты теста.
    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ python3 recognize_faces in pictures.py
    Is the unknown face a picture of Biden False
    Is the unknown face a picture of Obama True
    Is the unknown face a new person that we've never seen before False

  • 9) Facerec_from_webcam_faster.py используется для распознавания лица в USB-камере, этапы проверки следующие

    a. Сначала вставьте USB-камеру в USB-интерфейс платы , а затем используйте команду v4l2-ctl (обратите внимание, что l в v4l2 — это строчная буква l, а не цифра 1), чтобы проверить серийный номер узла устройства. USB-камеры

    orangepi@orangepi:~$ sudo apt update
    orangepi@orangepi:~$ sudo apt install -y v4l-utils
    orangepi@orangepi:~$ v4l2-ctl --list-devices
    cedrus (platform:cedrus):
    /dev/video0
    USB2.0 UVC PC Camera: USB2.0 UV (usb-5311000.usb- 1):
    /dev/video1
    /dev/video2

    b. Затем откройте терминал на рабочем столе, войдите в каталог face_recognition/examples и сначала измените серийный номер камеры, используемой в facerec_from_webcam_faster.py. Например, с помощью приведенной выше команды v4l2-ctl --list-devices вы можете увидеть, что USB-камера — это /dev/video1, а затем изменить 0 в cv2.VideoCapture(0) на 1

    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ vim facerec_from_webcam_faster.py
    video_capture = cv2.VideoCapture(1)

    c. Затем выполните следующую команду, чтобы запустить facerec_from_webcam_faster.py.

    orangepi@orangepi:~/face_recognition/examples$ python3 facerec_from_webcam_faster.py

    d. Подождите некоторое время, и появится экран дисплея камеры.



    Img 3.184

    e. В этот момент вы можете направить камеру на себя. Когда камера обнаруживает лицо, она выделяет обнаруженное лицо квадратом.

    Обратите внимание, что при обнаружении лица изображение, отображаемое камерой, будет относительно медленным, пожалуйста, не двигайтесь слишком быстро

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

    Обратите внимание, что при обнаружении лица изображение, отображаемое камерой, будет относительно медленным, пожалуйста, не двигайтесь слишком быстро



    Img 3.185

  • 10) web_service_example.py — это очень простой случай использования веб-сервиса для загрузки изображения для запуска распознавания лиц. Бэкенд-сервер определит, является ли изображение Обамой, и выведет результат распознавания в виде пары ключ-значение json. Шаги теста следующие

    a. Откройте терминал на рабочем столе, затем войдите в каталог face_recognition/examples, а затем выполните следующую команду (если face_recognition устанавливается автоматически с помощью скрипта, то нет необходимости устанавливать flask)

    orangepi@orangepi:~$ python3 -m pip install flask
    orangepi@orangepi:~$ cd face_recognition/examples
    root@orangepi:~/face_recognition/examples$ python3 web_service_example.py
    * Serving Flask app 'web_service_example' (lazy loading)
    * Environment: production
    WARNING: This is a development server.
    Do not use it in a production deployment. Use a production WSGI server instead.
    * Debug mode: on
    * Running on all addresses (0.0.0.0)
    WARNING: This is a development server.
    Do not use it in a production deployment.
    * Running on http://127.0.0. 1:5001
    * Running on http://192.168.1.79:5001 (Press CTRL+C to quit)
    * Restarting with stat
    * Debugger is active!
    * Debugger PIN: 500- 161-390

    b. Затем откройте другой терминал и выполните следующую команду, чтобы вернуть результат распознавания изображения (обратите внимание, что путь выполнения следующей команды — face_recognition/examples)

    orangepi@orangepi:~/face_recognition/examples$ curl -XPOST -F \
    "file=@obama2.jpg" http://127.0.0.1:5001
    {
    "face_found_in_image": true,
    "is_picture_of_obama": true
    }

    c. Мы также можем скопировать картинку face_recognition/examples/obama2.jpg на другие компьютеры с Linux. Конечно, мы также можем подготовить изображение с именем obama2.jpg самостоятельно, а затем использовать следующую команду на компьютере с Linux, чтобы удаленно использовать службу, работающую на плате, для распознавания лиц/

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

    test@test:~$ curl -XPOST -F "file=@obama2.jpg" http://192.168.1.79:5001
    {
    "face_found_in_image": true,
    "is_picture_of_obama": true
    }

    d. Метод тестирования с помощью браузера следующий:

      a) Сначала откройте браузер, затем введите IP-адрес платы: 5001 в адресной строке браузера, после чего вы увидите следующую страницу


      Img 3.186

      b) Затем скопируйте obama2.jpg на рабочий стол

      orangepi@orangepi:~/face_recognition/examples$ cp obama2.jpg \
      /home/orangepi/Desktop/

      c) Затем выберите изображение, которое вы только что скопировали, в браузере



      Img 3.187

      d) Затем нажмите «Загрузить», чтобы загрузить изображение, которое вы только что выбрали для распознавания лиц



      Img 3.188

      e) Подождав некоторое время, отобразится результат обнаружения



      Img 3.189

  • 11) тестовый пример команды face_detection

    a. Инструмент командной строки face_detection может определять положение лица (координаты выходных пикселей) на одном изображении или в папке с изображениями. Используйте face_detection --help для просмотра справочной информации по команде face_detection.

    orangepi@orangepi:~$ face_detection --help
    Usage: face_detection [OPTIONS] IMAGE_TO_CHECK
    Options:
    --cpus INTEGER number of CPU cores to use in parallel. -1 means "use all in
    system"
    --model TEXT Which face detection model to use. Options are "hog" or
    "cnn".
    --help Show this message and exit

    b. Пример обнаружения одиночного изображения показан ниже.

    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ face_detection \
    obama2.jpg obama2.jpg,302,474,611, 164

    c. Пример использования нескольких ядер для параллельного обнаружения нескольких изображений показан ниже. a) Сначала войдите в папку face_recognition/examples b) Затем создайте новую тестовую папку c) Затем скопируйте jpg-изображения в тестовую папку d) Затем используйте все процессоры для параллельного запуска face_detection для проверки изображений в тестовой папке, где - -cpus -1 означает использование всех процессоров

    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ mkdir test
    orangepi@orangepi:~/face_recognition/examples$ cp *.jpg test
    orangepi@orangepi:~/face_recognition/examples$ face_detection --cpus -1 test
    test/obama-240p.jpg,29,261, 101, 189
    test/obama_small.jpg,65,215, 169, 112
    test/obama2.jpg,302,474,611, 164
    test/two_people.jpg,62,394,211,244
    test/two_people.jpg,95,941,244,792
    test/obama.jpg, 136,624,394,366
    test/obama-480p.jpg,65,507, 189,383
    test/obama-720p.jpg,94,751,273,572
    test/obama- 1080p.jpg, 136, 1140,394,882
    test/biden.jpg,233,749,542,439

  • 12) тестовый пример команды face_recognition

    a. Инструмент командной строки face_recognition может распознавать, чье лицо находится на одном изображении или в папке с изображениями. Используйте face_recognition --help для просмотра справочной информации по команде face_recognition.

    orangepi@orangepi:~$ face_recognition --help
    Usage: face_recognition [OPTIONS] KNOWN_PEOPLE_FOLDER
    IMAGE_TO_CHECK
    Options:
    --cpus INTEGER
    --tolerance FLOAT
    number of CPU cores to use in parallel (can speed up processing lots of images).
    - 1 means "use all in system"
    Tolerance for face comparisons. Default is 0.6.
    Lower this ifyou get multiple matches for the same person.
    --show-distance BOOLEAN Output face distance.
    Useful for tweaking tolerance setting.
    --help Show this message and exit.

    b. Сначала создайте новую папку с изображением лица known_people с известным именем, затем скопируйте два изображения в known_people, а затем скопируйте obama2.jpg в unknown.jpg, изображение, которое мы хотим идентифицировать.

    orangepi@orangepi:~$ cd face_recognition/examples
    orangepi@orangepi:~/face_recognition/examples$ mkdir known_people
    orangepi@orangepi:~/face_recognition/examples$ cp biden.jpg obama.jpg known_people
    orangepi@orangepi:~/face_recognition/examples$ cp obama2.jpg unkown.jpg
    

    c. Затем вы можете использовать следующую команду, чтобы определить имя человека на изображении unknown.jpg, и вы увидите, что изображение unknown.jpg распознано как obama.

    orangepi@orangepi:~/face_recognition/examples$ face_recognition known_people \
    unkown.jpg
    unkown.jpg,obama

    d. Если мы идентифицируем нерелевантное изображение, будет отображаться unknown_person

    root@orangepi:~/face_recognition/examples$ face_recognition known_people \
    alex-lacamoire.png
    alex-lacamoire.png,unknown_person
    test/biden.jpg,biden
    test/obama- 1080p.jpg,obama

     <         > 


  • Страница:   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    53    54    55    56    57    58    59    60    61    62    63    64    65    66    67    68    69    70    71    72    73    74    75    76    77    78    79    80    81    82    83    84    85    86    87    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122