Где выполнять сложную матричную математику: во frontend или в backend?
Есть задача распознавания образов на изображении. Без ИИ и всякого там обучения, а просто использование метода Кэнни, преобразования Хафа и т.п. Т.е. никакие данные, кроме самого изображения не требуются.
Алгоритмы оперируют с битовыми матрицами в больших вложенных (до 4 уровней) циклах. Сделал пока этот анализ на PHP на стороне сервера (средней руки виртуальный хостинг). Но может быть это будет бодрее на стороне клиента написать? Понятно, что всё зависит от производительности сервера и ПК клиента. Но всё-таки, как правильно такие вещи делать? Понимая условность, спрошу: что быстрее JS или PHP? Кроме того, что на стороне сервера такая вещь не масштабируется при росте нагрузок.
У меня хостинг уже режет скрипт по используемой памяти. Картинки 1024х768 ещё проходят, а больше уже нет. Понимаю, что ответ: купи себе нормальный сервер.
я бы сделал на сервере, т.к. можно будет отделить апи отдельно и не быть привязанным к браузерному апи, а можно еще реализовать мобильные клиенты, например...
Несколько лет назад ответ был бы однозначно "На сервере".
Но сейчас, с появлением WebGL и всяких новомодных штук, все это вполне можно выполнять на видеокарте клиента.
Посмотрите например на TensorFlow.js, они как раз используют "сложные матричные вычисления" на клиенте.