Update face_recognition.md

This commit is contained in:
mmkuznecov
2019-01-20 19:03:01 +03:00
committed by GitHub
parent c153febb2e
commit 42f7ec4f93

View File

@@ -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))
```
Благодаря этому можно значительно повысить точность распознавания, т.к. обрабатываемое изображение будет уже не так сильно искажено.
<img src="./assets/misha_calib.jpg" width="50%">
<img src="./assets/tim_calib.jpg" width="50%">