From 42f7ec4f9312b226ac931f2368e64a7a4aef580a Mon Sep 17 00:00:00 2001 From: mmkuznecov <43701555+mmkuznecov@users.noreply.github.com> Date: Sun, 20 Jan 2019 19:03:01 +0300 Subject: [PATCH] Update face_recognition.md --- docs/ru/face_recognition.md | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/ru/face_recognition.md b/docs/ru/face_recognition.md index 3a0c1957..9857d25c 100644 --- a/docs/ru/face_recognition.md +++ b/docs/ru/face_recognition.md @@ -117,3 +117,42 @@ IndexError: list index out of range ``` В этом случае постарайтесь переделать изображения в папке faces, возможно из-за плохого качества программа не распознает лиц на изображениях. + +## Использование калибровки + +Для повышения точности распознавания можно использовать калибровку камеры. Модуль для калибровки можно установить, используя [специальный пакет](https://github.com/tinderad/clever_cam_calibration). Инструкцию по установке и использованию можно найти в файле calibration.md. Программа с использованием калибровочного пакета называется recog_undist.py + +**Краткое пояснение кода:** + +Подключаем установленный пакет: + +```python +import clever_cam_calibration.clevercamcalib as ccc +``` + +Добавляем следующие строки: + +```python +height_or, width_or, depth_or = frame.shape +``` + +Таким образом получаем информацию о размере изображения, где height_or-это высота оригинального изображения в пикселях, а width_or-ширина. +Затем исправляем искажения оригинального изображения и получаем уже его параметры: + +```python +frame=ccc.get_undistorted_image(frame,ccc.CLEVER_FISHEYE_CAM_640) +height_unz, width_unz, depth_unz = frame.shape +``` + +***В данном случае мы передаем аргумент ссс.CLEVER_FISHEYE_CAM_640, т.к. разрешение изображения в приведенном примере составляет 640x480, также можно использовать ссс.CLEVER_FISHEYE_CAM_320 для разрешения 320x240, в противном случае необходимо в качестве второго аргумента передать путь до калибровочного .yaml файла.*** + +И, наконец, возвращаем изображение к изначальному размеру: + +```python +frame=cv2.resize(frame,(0,0), fx=(width_or/width_unz),fy=(height_or/height_unz)) +``` + +Благодаря этому можно значительно повысить точность распознавания, т.к. обрабатываемое изображение будет уже не так сильно искажено. + + +