Комментарии 4
У сожалению, никакими 60 фпсами и не пахнет, работает на процессоре
Как proof of concept работает, но 60fps даже близко нет
Радует меня, что не я один занимаюсь подобными задачами) Тоже пилю face swap на Rust - https://github.com/LdDl/deep_faceswap (ну там я вдохновлялся известным решением на Python, о чём явно упоминаю в репе).
У меня на горизонте (далёком, наверное) real-time свап лиц для всяких там ВКС и стримов и вот как раз попробую вдохновиться вашей архитектурой с ArcSwap и выравниванием по кэш-линиям - так что ваше решение себе в копилочку забиру.
По поводу параллельного запуска моделей - думаю, обычный пайплайн даст больше: пока InSwapper обрабатывает кадр N, RetinaFace уже детектит лица на кадре N+1, и все модели работают одновременно, каждая над своим кадром. Но управление всем этим между разными стадиями обратотки, мягко говоря, сильно усложнится.

Приложение real-time face swap на чистом Rust: ONNX Runtime, lock-free потоки и 60 кадров в секунду