@arcticworker

С помощью чего создать веб интерфейс для программы распознавания лиц на OpenCV?

Всем доброго времени суток. Возможно вопрос в заголовке задан не очень правильно, поэтому опишу задачу подробнее.

Необходимо написать программу распознавания лиц используя OpenCV на языке python или c++. Программой нужно пользоваться через браузер т.е. необходим веб интерфейс и его привязка к самой программе. Необходимо создать нечто подобное, но чуть сложнее, а именно нужно раскидывать фото по альбомам, переносить по альбомам, удалять / добавлять в альбомы, комментировать фото, подписывать лица найденных людей, возможно еще какие-то функции, но пока что это все.

Есть сервер где хранятся все фотографии, БД и программа распознавания. Как я понимаю проще всего использовать фреймворки для языков python или c++ (если не прав, то поправьте). Отсюда вытекает пару вопросов:
1) Какие фреймворки лучше всего подойдут для подобной задачи для языков python или c++?
2) Обязательно использовать фреймворки или есть другие способы работы с программами на языках python или c++ с помощью браузера?
3) Любые ваши размышления и советы по поводу описанной задачи.

Всем заранее спасибо за ответы.
p.s. не понимаю почему первым тегом в вопросе идет python т.к. первым указывал opencv.
  • Вопрос задан
  • 3106 просмотров
Пригласить эксперта
Ответы на вопрос 8
А чем проблема?
Делаем нормальное консольное приложение для распознавания лиц на С++. Потом перенаправляем потоки ввода/вывода куда нужно и общаемся с ним через любой другой язык.

На C# и Java такое точно можно провернуть, но думаю в Python тоже не будет проблем.

P.S. Сам делал такое на C#, конечно без веб-интерфейса, но проблем в этом не вижу. По Java можно посмотреть тут
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
REST-API
(просто кидаете фотку и получаете координаты лиц или что-то еще, что необходимо...)
Ответ написан
Комментировать
@sitev_ru
sitev.ru - мой блог ...
Может это подойдёт: www.webtoolkit.eu/wt/ru

P.S. Сами пишем CMS-ку на С++ тут: sitev.ru ... Проект, на данный момент, ещё очень сырой - поэтому и не предлагается в качестве решения... но задачу показанную на видео сделать можно... Можем вместе помучиться)
Ответ написан
Комментировать
@lamazavr
wt например вполне не плох
Ответ написан
Комментировать
Если интерфейс пару станиц, то лучше flask для пайтон, есть куча батареек и сообщество.
Ответ написан
Комментировать
MAKAPOH
@MAKAPOH
многостаночник
В дополнении ко всем ответившим упомяну ещё tufao. Писал на нём небольшой REST API для своего C++ проекта. В принципе жить можно. Но по моим наблюдениям скорость разработки будет раза в два ниже чем на python, так что смотрите сами что вам важнее.
Ответ написан
Комментировать
Nipheris
@Nipheris Куратор тега C++
cpp-netlib.org
Hello world для клиента и сервера:
cpp-netlib.org/0.11.1/index.html#hello-world
Ответ написан
Комментировать
Ваша задача разделяется на следующие:
  • Создание программы для извлечения лиц из заданного изображения. Если я верно понял, наработки для распознавания у вас уже есть, что уже очень хорошо. Можно оставить на том же языке. В случае необходимости, критичные для времени выполнения задачи можно (на/пере)писать на языке Go, с помощью средств которого можно распараллелить процесс обработки и таким образом ускорить работу со стороны сервера.
  • Поскольку распознавание является ресурсоёмкой задачей, в особенности если требуется её выполнить на многих изображениях, то критичным параметром является необходимость распознавания лиц интерактивно (сразу посли загрузки пользователем альбома изображений, допустим). Если нет такой необходимости (насколько понял из описания) и можно выполнить в оффлайне (спустя некоторое время или даже заранее), то задача упростится - тут всякие background job scheduler в помощь.
  • Со стороны сервера можно разделить операции на микросервисы, оформив в виде API серверов. Всё зависит от того какими технологиями вы владеете. Если знаете Python, то фреймворки облегчат ваш труд.
  • Со стороны фронтенда возможно потребуются drag&drop мышью. Посоветуйтесь с экспертом в UX. Возможно придётся хорошенько поработать с JavaScript'ом. Выберите любой подходящий CSS фреймворк, ну или сами всё руками, если круты...
Добавлено позже
И если вы не имеете опыта в веб-разработке, то стоит поручить это дело другим людям.
Языки C/C++ в качестве серверного языка использовать не стоит. С Пайтоном будет проще и быстрее.

Вот как работает ваша демка:
web-face-detect-block-diagram.png
face-detect.exe можно/нужно писать на языках Go/C/C++.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы