Перейти к основному содержимому

Распознавание лиц, объектов и текста

Разработчику

Три прикладных направления узкого ИИ часто идут в одном продукте: камера находит лица и объекты, микрофон — речь, текст — сущности и тональность. Ниже — как устроены задачи, какие метрики смотреть и когда обучать свою модель, а когда вызывать облачный API. Расширенный обзор архитектур — в Принцип работы современных ИИ-систем; код CNN — Keras и TensorFlow.


Три задачи — три выхода

ЗадачаВходВыход
ЛицоКадрBounding box, иногда эмбеддинг для сравнения
ОбъектКадрКласс + координаты рамки (часто несколько объектов)
Текст (NLP)Строка или транскриптМетки сущностей, тональность, категория

Классификация изображения («что на картинке в целом») — один класс на всё фото. Детекция — несколько объектов с координатами. Сегментация — маска по пикселям; подробнее в Алгоритмы ИИ.


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

Цепочка в проде обычно такая:

  1. Детекция — найти область лица (Haar cascades, MTCNN, RetinaFace, модели в OpenCV и облачных API).
  2. Выравнивание — поворот и масштаб по ключевым точкам (глаза, нос).
  3. Эмбеддинг — вектор фиксированной длины (FaceNet, ArcFace); сравнение по косинусному расстоянию.
  4. Решение — порог «тот же человек / другой» или классификатор эмоций поверх кропа.
# Иллюстрация: эмбеддинги через готовую библиотеку (нужен pip install deepface)
from deepface import DeepFace

result = DeepFace.verify(
img1_path="person_a_1.jpg",
img2_path="person_a_2.jpg",
model_name="Facenet",
enforce_detection=False,
)
print(result["verified"], result["distance"])
Этика и право

Биометрия и видеонаблюдение регулируются законом (в т.ч. 152-ФЗ в РФ, GDPR в ЕС). Нужны основания обработки, уведомление субъектов, контроль качества на разных группах населения — модели часто хуже работают на тёмной коже при смещённом обучающем наборе.

Облачные Face API (Azure AI Vision, Amazon Rekognition) закрывают детекцию и сравнение без своего GPU — см. Cognitive Services.


Детекция объектов

YOLO, SSD, семейство R-CNN предсказывают для каждого кадра набор рамок (x, y, w, h) и класс (человек, автомобиль, знак).

Типичный стек разработчика:

  • обучение — PyTorch + Ultralytics YOLO или TensorFlow;
  • инференс в реальном времени — ONNX, TensorRT, OpenVINO;
  • разметка — Label Studio, CVAT.

Метрики: mAP (mean Average Precision) на тестовом наборе с IoU-порогом; в бизнесе добавляют задержку (FPS) и долю ложных срабатываний на линии.

Transfer learning на COCO/ImageNet ускоряет запуск: заморозить backbone, дообучить голову на своих классах («дефект», «шлем», «QR на коробке»).


Текст — OCR, NER, тональность

OCR (текст на изображении)

Optical Character Recognition извлекает строки с фото документов, вывесок, сканов. Цепочка: предобработка (бинаризация, выравнивание) → детекция строк → распознавание символов (CRNN, трансформеры). Готовые движки: Tesseract, EasyOCR, облачный Document Intelligence / Vision Read API.

NER (именованные сущности)

Из текста извлекают персоны, организации, локации, даты:

# pip install spacy && python -m spacy download ru_core_news_sm
import spacy

nlp = spacy.load("ru_core_news_sm")
doc = nlp("Иванов подписал договор в Москве 12 мая 2025 года.")
for ent in doc.ents:
print(ent.text, ent.label_)

Для русского и доменной лексики (медицина, право) часто дообучают трансформеры (BERT-подобные) на размеченном корпусе или используют облачный Language API.

Тональность и классификация текста

Бинарная или многоклассовая задача для sklearn (TfidfVectorizer + LogisticRegression) или fine-tuned BERT. Для длинных отзывов смотрят macro-F1 по классам.


Своя модель или облако

КритерийСвоя модель (Keras / PyTorch / OpenCV)Облачный Cognitive API
ДанныеЕсть разметка или можно собратьМало данных, нужен быстрый MVP
Задержка / офлайнEdge, закрытый контурДопустим HTTPS-вызов
СтоимостьGPU, MLOpsОплата за 1000 вызовов
КастомизацияПолнаяОграничена fine-tune / Custom Vision

Гибрид: детекция на устройстве, тяжёлый OCR в облаке.


Метрики и типичные ошибки

ОшибкаПоследствие
Утечка: аугментация до splitЗавышенный mAP на тесте
Один порог для всех сценПропуски на тёмных кадрах
Игнор bias в лицахДискриминация в проде
OCR без проверки языкаМусор в полях формы

Связанные разделы: компьютерная графика (аугментации, TFRecord), тестирование ML.


Маршрут чтения

  1. Keras и TensorFlow — MNIST, CNN.
  2. Transfer learning — свои классы на ImageNet.
  3. Cognitive Services — REST без обучения.
  4. Алгоритмы ИИ — YOLO, сегментация, NLP-разделы справочника.

См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").