ИИ-система кастинга
Кинопроизводство среднего бюджета получает 3 000–8 000 заявок на главные роли. Кастинг-директор физически не может просмотреть всё: треть заявок отсеивается по фотографии, половина оставшихся — по первым 30 секундам видеопробы. ИИ-система обрабатывает весь объём по формализованным критериям и выдаёт ранжированный шортлист.
Что анализирует система
Внешнее соответствие роли — сравнение с визуальным профилем персонажа: возрастной диапазон (по фото), тип внешности, рост/комплекция. Используется face analysis (DeepFace, InsightFace) для оценки возраста и детектор ключевых точек тела (MediaPipe Pose) для пропорций.
Анализ видеопробы — facial expression recognition по временным рядам: как актёр держит эмоцию, насколько естественны переходы. Модель на базе VideoMAE или TimeSformer, обученная на аннотированных видеопробах, выдаёт скор «естественность» и «диапазон эмоций».
Голосовой анализ — темп речи, паузы, интонационный контур. Models: Whisper для транскрипции + prosody analysis через librosa (pitch, energy contour). Сопоставление с голосовым профилем роли.
Поиск похожих актёров — embedding-поиск по базе через FAISS: «найти актёров, похожих на [референс]» по лицу и манере игры.
Ключевое: face embedding и деduplication
Главная техническая задача — не найти самых красивых или молодых, а найти подходящих для конкретного персонажа. Это означает работу с embedding-пространством лиц, а не с raw-метриками.
ArcFace или AdaFace генерируют 512-мерный вектор лица. Кастинг-директор указывает несколько референсных лиц персонажа (арт, сторонние актёры), система вычисляет centroid этих эмбеддингов и ищет ближайших кандидатов по cosine similarity.
from insightface.app import FaceAnalysis
import faiss
import numpy as np
app = FaceAnalysis(providers=['CUDAExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))
# Получение эмбеддинга
def get_face_embedding(image_path):
img = cv2.imread(image_path)
faces = app.get(img)
if not faces:
return None
return faces[0].embedding # 512-dim ArcFace embedding
# Поиск по базе кандидатов
index = faiss.IndexFlatIP(512) # inner product = cosine для L2-нормализованных
index.add(normalized_embeddings) # база кандидатов
D, I = index.search(query_embedding.reshape(1, -1), k=50)
Deduplication критична при большом потоке заявок — один актёр может подать заявку с 4–5 разными фотографиями. Порог cosine similarity > 0.72 надёжно находит одно и то же лицо в разных условиях освещения.
Этика и ограничения
Система не принимает решения — она ранжирует кандидатов и передаёт шортлист кастинг-директору. Автоматическое отклонение по защищённым характеристикам (этническая принадлежность, пол) недопустимо и не реализуется.
Что система не умеет оценивать без человека: chemistry между актёрами, реакция на режиссёрские указания, поведение на длинных дублях. Это остаётся в зоне живого кастинга.
Все данные обрабатываются с согласия претендентов, хранятся в изолированном контуре с TTL на удаление после завершения кастинга.
Сроки
Базовая система (фото-анализ + embedding-поиск): 4–6 недель. Полная платформа с видеоанализом и голосом: 10–16 недель. Стоимость рассчитывается индивидуально.







