Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Мы будем поднимать несколько backend серверов, поэтому нам понадобится балансер и Supervisor. Изначально я думал о HAProxy в качестве балансера, но тут меня осенило, что картинки может хорошо раздавать NGINX. В итоге в начале архитектура мне показалась такой: NGINX балансирует соединения и раздает статику с диска, 4 сервера Tornado обрабатывают запросы, Redis синхронизирует backend.
Сильно бы упростило задачу внесение конкретики по поддерживаемым форматам изображений, более развернутое объяснение целевого использования приложения.
К сожалению, данное тестовое задание было наполнено по большей части поиском библиотек и администрированием, в нем очень мало программирования. Что хотел выяснить работодатель этим заданием мне не очень понятно.
Что хотел выяснить работодатель этим заданием мне не очень понятно. Может требовалось написать свою библиотеку для получения EXIF данных?
поощряется использование OpenCVРаспознавание дорожных знаков (OpenCV)
параметры для этого фильтра подбирались опытным путемНа одной картинке сработало, а на остальных другие параметры. Пороговая обработка и Canny — это всё, что там применили. Никакой адаптивности, никакой классификации (остальное не написано), подобным подходом не удастся получить устойчивое надёжное решение этой задачи. Поэтому копипаста простейших примеров использования примитивов машинного зрения из OpenCV не прокатит.
… каскадный детктор или Deep Learning, но сомневаюсь, что к заданию приложили достаточное для обучения количество позитивов/негативовТестовые данные, которые были приложены к заданию, не позволяют использовать никакие обучающиеся алгоритмы (никаких позитивов/негативов). На счёт сроков и объёма задания, если делать всё по уму, при этом начиная с нуля (не имея работающего прототипа/модели), и недели фулл-тайма не хватит. Как вы и сказали:
уже в первом задании можно потратить немало времени на проверку различных гипотез
Начал я со сборки Upload модуля NGINX, и, конечно же, безуспешно. Провозившись некоторое время, я понял, что автор его забросил, и на последней версии этот модуль не заработает. Ну и ладно — пусть Tornado сервер сохраняет входящие файлы на диск.Открою страшную тайну: NGINX умеет это делать без модуля из коробки.
История одного тестового задания