Блог - Research

Research на тему распознавания лиц

Всем привет! Не так давно пришлось столкнуться с задачей распознавания лиц. Вернее даже не распознавания непосредственно лица, а распознавания типа. У знакомых ребят были идеи связанные с этим, им нужно было сделать прототип.

Задача примерно такая. Нужно написать серверную часть приложения, которое на вход получает картинку, фотографию лица, сделанную с мобильного устройства. Сервер должен распознавать лицо и узнавать его тип. Именно тип - овальный, прямоугольный и т.д.

Сама процедура определения типа описана тут: https://lifehacker.ru/2016/11/17/tip-lica/ .

Архитектура GPS трекера

Не так давно сделал любопытное техническое задание. Задача - описать архитектуру gps трекера. Конкретно - умного ошейника для собак. Нужно было описать работу серверной части. Предусмотреть запись активности, запись gpx трека, возможность просмотра статистики. Добавить возможность получения текущего местоположения, получение списка устройств в указанной области, отправку push уведомлений. Также нужно было продумать реализацию функционала совместных прогулок.

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

Сама задача интересная. В тестовом задании описал простейшее решение. Фактически, используется не самое оптимальное решение "в лоб".

Создатели тестового задания предполагали использование геотемпорального индекса. Похоже, что термин придуман ими же. В интернете не нашел его определения. Основная идея в том, что данные местоположения разбиваются на небольшие секции. Разбиение происходит по timestamp и координатам. Фактически, шардирование. В результате поиск осуществляется в конкретном шарде. В некоторых случаях может понадобиться переключение между шардами.

Тестовое задание приняли. Прошел техническое собеседование. Правда, работать в эту компанию в итоге не пошел. Зато остались приятные впечатления от тестового задания.

Пример доступен на github.

Задание: https://github.com/antonshell/gpx-tracker-architcture/blob/master/SPECIFICATION.md

Мое решение: https://github.com/antonshell/gpx-tracker-architcture

На этом пока все. Спасибо за внимание!