Google рассказала, как она улучшает портретный режим в своих смартфонах, продолжая использовать всего одну камеру. Ранее компания полагалась на технологию фокусировки Dual Pixel, где каждый пиксель матрицы камеры разделён на два субпикселя, что позволяет «видеть» картинку под двумя углами. Порой этот метод работал некорректно, из-за чего фон мог размываться частично. Поэтому в Pixel 3 и Pixel 3 XL поисковый гигант решил применять машинное обучение.
На изображении ниже наглядно показано, что при использовании одной только информации с субпикселей задний фон за человеком размывается неравномерно, а некоторые области и вовсе остаются в фокусе. При активации машинного обучения проблема исправлена.
Для улучшения портретного режима в Pixel 3 компания Google создала нейронную сеть, написанную в TensorFlow, которая анализирует полученную с матрицы информацию и учится прогнозировать глубину изображения. Так как системе нужно «скормить» большое количество данных, чтобы обучить её, инженеры Google придумали конструкцию под названием Frankenphone, объединяющую пять смартфонов Pixel 3 в один. Использование связи по Wi-Fi позволяет одновременно делать снимок объекта со всех пяти устройств с максимально допустимой задержкой 2 миллисекунды. Нейронная сеть анализирует полученные кадры, определяя фон, который нужно размыть.
Для инженеров Google было важно, чтобы нейронная сеть научилась работать с динамическими сценами. Кроме того, установка Frankenphone создавалась таким образом, чтобы она была мобильной и её можно было носить с собой на улицу, делая фотографии, которые снимают в повседневной жизни обычные пользователи смартфонов.
«Оценка глубины с использованием машинного обучения должна выполняться быстро на Pixel 3, чтобы людям не приходилось слишком долго ждать снимков, сделанных в портретном режиме. Однако для качественной оценки глубины, которая использует тонкую дефокусировку и эффект параллакса, мы должны передавать нейронной сети PDAF-изображения в полном разрешении. Для обеспечения быстрой обработки мы применяем TensorFlow Lite — кроссплатформенное решение для запуска моделей машинного обучения на мобильных и подключённых к интернету устройствах — и мощный графический процессор Pixel 3, чтобы вычислить глубину быстро, несмотря на наши аномально большие входные данные. Затем мы объединяем полученную оценку глубины с масками из нашей персонализированной нейронной сети для получения отличных результатов в портретном режиме», — говорится в сообщении Google.