Британские разработчики научили нейросеть понимать время на стрелочных часах. Для обучения они собрали два датасета: из настоящих изображений и роликов из интернета, а также искусственных изображений. В результате алгоритм научился качественно определять время, даже если часы находятся под большим углом или на них есть блики. Статья опубликована на arXiv.org.
Системы компьютерного зрения хорошо адаптированы для работы с текстами. Например, пользователь может навести камеру смартфона на книгу или объявление и увидеть в реальном времени наложенный перевод, возможный благодаря тому, что алгоритмы обнаруживают надписи и распознают текст на них. С цифровыми часами можно применять те же самые алгоритмы. Со стрелочными же это невозможно, потому что информация в них представлена в совершенно ином виде. Однако стрелочные часы по-прежнему очень распространены и возможность считывать время с них представляет собой важную задачу, решение которой может пригодиться, например, роботам-помощникам.
Разработчики из Оксфордского университета под руководством Эндрю Зиссермана (Andrew Zisserman) научили нейросеть понимать время на стрелочных часах в реальных условиях. Система состоит из последовательности алгоритмов. Сначала алгоритм обнаруживает в кадре часы и выделяет прямоугольную область. Затем нейросеть с архитектурой ResNet-50 анализирует эту область и растягивает таким образом, чтобы часы были расположены прямо — так, будто они были прямо перед камерой, а не под углом. После этого другая нейросеть ResNet-50 распознает на часах время.
Помимо алгоритма важная часть работы заключается в том, что авторы создали генератор изображений часов, чтобы упростить обучение. В нем можно регулировать параметры часов, например, их форму и количество стрелок, а также создавать артефакты изображений, чтобы сделать изображения ближе к реальным. С помощью этой программы авторы собрали датасет для обучения, размер которого они не указывают. Кроме того, они собрали датасет из 3443 таймлапс-видеороликов с часами. В результате они научили алгоритм понимать время на стрелочных часах в реальных условиях.
Есть и другие примеры, когда нейросеть научили понимать информацию в непривычном для компьютеров формате, например, речь по движению губ, а не звуку.
Григорий Копиев