diff --git a/docs/assets/misha_calib.jpg b/docs/assets/misha_calib.jpg new file mode 100644 index 00000000..08a6c0c4 Binary files /dev/null and b/docs/assets/misha_calib.jpg differ diff --git a/docs/assets/tim_calib.jpg b/docs/assets/tim_calib.jpg new file mode 100644 index 00000000..c84b87f2 Binary files /dev/null and b/docs/assets/tim_calib.jpg differ diff --git a/docs/ru/face_recognition.md b/docs/ru/face_recognition.md index 3a0c1957..02598ab1 100644 --- a/docs/ru/face_recognition.md +++ b/docs/ru/face_recognition.md @@ -117,3 +117,47 @@ 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 +if height_or==240 and width_or==320: + frame=ccc.get_undistorted_image(frame,ccc.CLEVER_FISHEYE_CAM_320) +elif height_or==480 and width_or==640: + frame=ccc.get_undistorted_image(frame,ccc.CLEVER_FISHEYE_CAM_640) +else: + frame=ccc.get_undistorted_image(frame,input("Input your path to the .yaml file: ")) +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)) +``` + +Благодаря этому можно значительно повысить точность распознавания, т.к. обрабатываемое изображение будет уже не так сильно искажено. + + +