Фотостудия IxShot
Идея проекта - сделать систему, с помощью которой человек сможет самостоятельно себя сфотографировать лучше, чем это сделал бы профессиональный фотограф.
 
В отличие от похожих проектов, камера стоит на поворотно-наклонной платформе и все время наводится по лицу так, чтобы была правильная композиция. Можно управлять зумом, чтобы делать фото в полный рост или только лицо. Экспозиция определяется по положению человека в пространстве, это дает стабильно высокое качество снимков. Система заточена под большое количество фотографий, около 300 в час. Изображения скачиваются в телефон через WiFi.
Варианты использования
Стационарная фотостудия

Для людей, которым нужны качественные фотографии себя для размещения в социальных сетях, резюме, актёрском портфолио или просто для семейного фотоальбома. Есть несколько причин, почему автоматическая система будет лучше живого фотографа:

  1. Не все готовы позировать перед незнакомым фотографом, а в закрытой комнате, когда никто на тебя не смотрит можно попробовать разные выражения лица, позы и положения головы.
  2. Обработка фотографий человеком занимает продолжительное время, обычно фотографы гарантируют срок порядка двух недель, но некоторые могут задерживать до нескольких месяцев. Система автоматической съемки выдает фотографии сразу и ими можно поделиться в социальных сетях прямо во время съемки.
  3. Во время съемки живым фотографом очень сложно понять, как выглядишь на фотографии. Можно только посмотреть фотографии на небольшом экране фотоаппарата без цветокоррекции. Система IxShot, во-первых, выводит изображение с камеры в реальном времени на монитор, во-вторых, обработанные фотографии сразу же можно посмотреть либо на мониторе (с сенсорным управлением), либо на своем телефоне.
  4. Цена фотосессии у среднего фотографа в Москве не меньше 5000 рублей, цена часа работы автоматической студии, с учетом аренды помещения и зарплат персонала, гораздо ниже.
  5. На мониторе рядом с лайввью с камеры можно показывать примеры поз. Так что человек сможет подобрать себе несколько хороших ракурсов для фото и вопрос "как мне встать" не возникнет.

Выездная фотозона

Второй вариант использования - выездная фотозона для корпоративов, выставок и других мероприятий. В этом случае автоматическая фотосъемка также имеет преимущества перед фотографом. Опыт подсказывает, что если фотограф долгое время снимает только на фоне прессволла или какого-то фона, он начинает скучать от однообразных действий и качество снимков сильно снижается.

Если готовые снимки нужны сразу же, например для печати, то необходимо делать хотя бы минимальную обработку, а в напряженных условиях праздника сделать это качественно очень сложно. Кроме того нужно либо 2 человека: фотограф и человек, который обрабатывает и печатает фотографии, либо обработку будет делать фотограф, но тогда часть времени гости не смогут пользоваться услугами фотозоны.
Примеры фотографий
Сценарий использования
Вариант первый - без установки приложения на телефон:
  1. Подключиться к WiFi отсканировав QR код, показанный на мониторе.
  2. Открыть ссылку в браузуре, отсканировав второй QR код - после этого запустится процесс съемки, а у пользователя в браузере сохранится токен, по которому он будет видеть только свои фотографии.
  3. Сделать снимки. Есть режимы: без задержки, с задержкой, серийная съемка 3 или 10 кадров. Управлять можно либо через веб-интерфейс в телефоне либо с помощью радиопульта (нажимать на физические кнопки гораздо удобнее). Количество не ограничено, получается около 300 фотографий в час.
  4. При желании можно посмотреть снимки на мониторе или в телефоне. Сразу после съемки появляется превью (JPEG из камеры), после завершения обработки они заменяются на готовый результат.
  5. Скачать все фотографии можно в виде ZIP архива. Также можно скачать изображения по одному (в формате JPEG).

Несмотря на то, что этот вариант выглядит довольно удобным, у него есть 2 недостатка: во-первых, через браузер нельзя скачать много файлов одним действием, так что приходится скачивать в виде архива, а работать с архивами сложно и непонятно. Во-вторых, нет возможности поделиться фотографиями в социальных сетях или мессенжерах одним действием.

Так что появился второй вариант - нативное приложение. В этом случае пользователю необходимо поставить приложение, но зато фотографии будут скачиваться прямо в галерею (camera roll) и будет возможность сразу ими поделиться из приложения. Также планируется сделать подключение к WiFi через приложение, чтобы можно было сканировать только один QR код.

При разработке сценариев использования хотелось добиться универсальности и простоты, чтобы одинаково удобно было использовать систему на вечеринке и в стационарной студии и не требовался быстрый доступ в интернет. Сейчас теоретически система может работать вообще без доступа в интернет, но на практике многие телефоны крайне неадекватно себя ведут при подключении к WiFi без доступа во внешнюю сеть.
Скриншоты
Схема работы
КПрограммная часть состоит из трёх процессов:
  1. Контроллер - управляет всем оборудованием, предоставляет API через HTTP и WebSockets.
  2. Процессор - принимает задания на обработку фотографий из RabbitMQ, конвертирует изображение из формата RAW в JPEG и загружает обратно.
  3. UI - веб-приложение на React, запускается в electron.
Контроллер
В контроллере есть 3 сущности: пользователи, сессии и фотографии. Сессия создается в активном состоянии и по решению пользователя завершается, переходит в неактивное состояние. Пользователи создаются при запросе на создание сессии, если клиент не послал JWT токен. Если послал - будет создана сессия для этого токена. Таким образом 2 человека могут пользоваться системой по очереди и каждый будет видеть все фотографии и только свои. Процесс обработки фотографий не зависит от активности сессий, можно завершить сессию и фотографии продолжат обрабатываться. Интерфейс в телефоне может работать у нескольких пользователей одновременно.

Процессор

Для того, чтобы обеспечить максимальное качество и гибкость, камера снимает в формате RAW и фотографии обрабатываются в RAW конвертере. Идея состоит в том, чтобы владельцы фотостудий или операторы фотозон могли самостоятельно делать профили для обработки, так как для разных интерьеров, к примеру, подходят разные стили фото. Изначально был план использовать Adobe Lightroom и Portraiture для обработки, так как все умеют с ними работать и в интернете есть множество платных и бесплатных пресетов. Однако и lightroom и portraiture стоят довольно дорого и к тому же совершенно не оптимизированы для запуска без графического интерфейста, так что с ними не удалось добиться запуска системы одной кнопкой. К счастью, свободный RAW-конвертер RawTherapee обеспечивает отличное качество и имеет встроенную возможность улучшения вида кожи, так что текущий вариант работает именно через него.

UI
Для упрощения разработки UI был выбран Javascript с React, это позволяет часть кода использовать для локального UI, Web-интерфейса в телефоне и приложения на react-native.
Оборудование
К сожалению, не удалось найти готовой подходящей поворотно-наклонной платформы, которая могла бы управляться с компьютера. Однако удалось найти платформу вообще без электроники и сделать контроллер для управления через USB на основе Arduino Leonardo. Есть все необходимые данные (Gerber-файлы) для серийного производства таких контроллеров.
Контроллер выполняет следующие функции:
  1. Установка угла поворота или наклона в заданное значение.
  2. Установка угла сервопривода зума в заданное значение.
  3. Питание 8В для фотоаппарата.
  4. Питание 3В для синхронизатора вспышек.

Камера
Поддерживаются зеркальные камеры Canon с автофокусом DualPixel AF. Оптимальная камера - Canon 200D, так как при небольшой цене около 30 т.р. она имеет хорошую матрицу 24МП. Выигрыш по качеству может дать использование полнокадровых камер, например Canon 6D MarkII или Canon 5D Mark 4. Теоретически будут работать любые камеры с возможностью фокусировки по лицу по всему полю кадра, но в коде использованы некоторые особенности камер Canon, так что над поддержкой других камер, если это будет необходимо, придется поработать.
Пока не поддерживаются камеры, которые снимают в формате CR3 (EOS R, 250D, M6MarkII, 90D), но наш соотечественних Алексей Тутубалин пообещал добавить пооержку CR3 в следующий релиз библиотеки Libraw, откуда эта поддержка попадет в RawTherapee.

Объектив можно ставить любой подходящий по диапазону фокусных расстояний, однако систему нужно будет откалибровать - измерить зависимость фокусного расстояния от угла поворота сервопривода. Также можно использвать объективы с фиксированным фокусным расстоянием для получения более высокой резкости и при необходимости размывать фон.

Монитор
Сейчас используется 24 дюймовый монитор с ёмкостным сенсорным экраном с multitouch. Экран не антивандальный, но зато он гораздо лучше реагирует на прикосновения, чем антивандальные. Особых требованию к монитору нет, можно использовать любой подходящий по конструкции и внешнему виду.

Компьютер
Для комфортной работы: с низким временем задержки liveview, быстрым временем реакции поворотно-наклонной платформы и обработки фото за ~10 секунд, достаточно компьютера Core i5 9400, 16Gb RAM, GeForce 1050, SSD. Стоимость такой конфигурации примерно 50 т.р.. Оптимизация скорости не была приоритетом при разработке, так что в будущем требования можно снизить. Например, оптимизировать поиск лиц и убрать видеокарту. Далее самым большим потребителем ресурсов будет RAW конвертор. Если упростить профиль обработки, можно понизить необходимую память до 8Гб, к сожалению, установка более дешевого процессора существенно повысит время обработки фотографий.

WiFi
Вариантов организации сети может быть несколько, но в любом случае 5GHz WiFi крайне желателен. По этой причине невозможно использовать WiFi адаптеры в качестве точки доступа, так как все доступные ападтеры если и поддерживают режим точки доступа, то только в режиме 2.4GHz. Сейчас используется точка доступа TP-Link Archеr C6 стоимостью около 3000р.

Радиопульт
Управлять процессом съемки пультом с физическими кнопками, а не с сенсорным экраном гораздо удобнее. Пульт обязательно должен передавать сигналы по радиоканалу, инфракрасные передатчики работают крайне нестабильно. Сейчас используется презентер Logitech R400.

Вспышки
Главное требование к вспышкам - камера должна видеть синхронизатор как внешнюю вспышку, иначе придется использовать более дорогую камеру, которая позволяет отключать режим имитации экспозиции (например Canon 80D вместо 200D). Сейчас используются вспышки Jinbei MSN III HSS. Для фотосъёмки необходимо от одной до трех вспышек стоимостью 22т.р..
Статус
В течение недели аппарат стоял в студии, услугами воспользовались 13 человек, заплатив по 300р за час съемки. Включали-выключали систему администраторы студии, которые не имели серьезных технических навыков. Также они консультировали посетителей студии. Таким образом, не осталось серьезных технических проблем, которые могли бы помешать запуску продукта.
План развития
1
Показывать примеры поз рядом с liveview на мониторе
Одна из самых желаемых фич по отзывам пользоватлей. Выбор поз и ракурсов - самая сложное в фотосъемке для большинства людей.
2
Управление питанием вспышек
Важная вещь для стационарной студии - оставлять включенные вспышки в закрытом помещении небезопасно и увеличивает расход энергии.
3
Корпус
А для выездной фотозоны важно смонтировать монитор, компьютер, платформу с зеркальной камерой и камеру глубины в одном корпусе, чтобы ускорить развертывание и исключить ошибки при соединении кабелей.
4
Голосовое управление
Нужно реализовать всего несколько команд: запуск серийной съемки и управление зумом, но это существенно повысит удобство использования.
5
Загрузка файлов в облако
Многим людям будет удобнее скачать файлы из интернета, а не из телефона. К тому же это гарантирует, что фотографии никуда не потеряются.
Made on
Tilda