1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/baetyl-baetyl-video-infer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Модуль baetyl-video-infer

Модуль baetyl-video-infer — это официальный модуль BAETYL, который используется для захвата видеокадров и вывода модели искусственного интеллекта (ИИ). Для захвата видеокадров модуль baetyl-video-infer может поддерживать IP-сетевую камеру, USB-камеру и видеофайлы. Поддерживаемые фреймворки глубокого обучения (Deep Learning, DL) и слои синхронизированы с OpenCV. Более подробную информацию можно найти здесь.

Кроме того, модуль baetyl-video-infer тесно интегрирован с другими модулями платформы BAETYL, что позволяет использовать его в пограничных вычислениях ИИ и некоторых отраслевых сценариях. Кроме того, baetyl-video-infer также обеспечивает ускоренную обработку моделей ИИ на основе центрального процессора (CPU) и специального оборудования (например, OpenCL, OpenVINO, INFERENCE_ENGINE).

Сборка программы

Модуль baetyl-video-infer зависит от GoCV. Перед сборкой убедитесь, что GoCV работает правильно.

git clone https://github.com/baetyl/baetyl-video-infer.git
cd baetyl-video-infer
make build # сборка baetyl-video-infer

Создание образа

Как описано выше, модуль baetyl-video-infer теперь может поддерживать CPU и специальное оборудование (Intel GPU, известное как OpenCL) для вывода моделей ИИ. Для CPU baetyl поддерживает платформы Linux-armv7, Linux-arm64, Linux-amd64 и обеспечивает ускоренную обработку моделей благодаря Intel GPU (OpenCL) из фреймворка OpenVINO.

# CPU
make image # создание образа для CPU

# OpenVINO(OpenCL)
make image-openvino # создание образа для OpenVINO

# вывод образов
docker images | grep baetyl/video-infer
# baetyl/video-infer-openvino                                      git-e7ed6d0                                      4d89e690b226        About an hour ago   2.53GB
# baetyl/video-infer                                               git-e7ed6d0                                      ccab5f4b07ff        3 hours ago         672MB

Примечание:

— Для OpenVINO (OpenCL) сейчас поддерживается только платформа linux/amd64; — для CPU кросс-компиляция не поддерживается.

Конфигурация

video:
  uri: [ОБЯЗАТЕЛЬНО] Путь к файлу видео или адрес камеры.
    # Для IP-камеры конфигурация похожа на `rtsp://<имя пользователя>:<пароль>@<ip>:<порт>/Streaming/channels/<номер потока>`
      # `<имя пользователя>` и `<пароль>` — элементы аутентификации при входе
      # `<ip>` — IP-адрес камеры
      # `<порт>` — номер порта RTSP-протокола, значение по умолчанию — 554
      # `<номер потока>` — номер канала, если он равен 1, это указывает на то, что захватывается основной поток; если он равен 2, это указывает на то, что захватывается дополнительный поток
    # Для USB-камеры конфигурация похожа на «0» (представляет сопоставление устройства `/dev/video0` с контейнером, также должно быть смонтировано на сервисе видеовывода)
    # Для файла видео конфигурация похожа на `var/db/baetyl/data/test.mp4`(монтирование тома (хранение файла видео) на сервис видеовывода)
  limit:
    fps: [ОБЯЗАТЕЛЬНО] Максимальное количество кадров видео, обрабатываемых выводом в секунду. Если видео имеет N кадров в секунду, limit.fps равно M, тогда будет пропущено Ceil(N/M) - 1 кадров.
process: 
  before: создаёт четырёхмерный большой двоичный объект из изображения. При необходимости изменяет размер и обрезает изображение по центру, вычитает средние значения, масштабирует значения с помощью коэффициента масштабирования, меняет местами синий и красный каналы. Более подробное содержание см. в https://docs.opencv.org/4.1.1/d6/d0f/group__dnn.html#ga29f34df9376379a603acd8df581ac8d7.
    scale: множитель для значений изображения.
    swaprb: флаг, указывающий на необходимость поменять местами первый и последний каналы в трёхканальном изображении.
    width: ширина пространственного размера для выходного изображения.
    height: высота пространственного размера для выходного изображения.
    mean: скаляр со средними значениями, которые вычитаются из каналов. Значения предназначены для упорядочивания в (mean-R, mean-G, mean-B), если изображение имеет порядок BGR и swapRB истинно.
      v1: синий компонент типа Scalar (Scalar — это 4-элементный (v1, v2, v3, v4) вектор, широко используемый в OpenCV для передачи значений пикселей).
      v2: зелёный компонент типа... Скаляр.
      v3: красный компонент типа Скаляр. 
      v4: альфа-компонент типа Скаляр.  
    crop: флаг, который указывает, будет ли изображение обрезано после изменения размера или нет.
  infer:
    model: [ОБЯЗАТЕЛЬНО] Путь к файлу модели, более подробное содержание см. в https://docs.opencv.org/4.1.1/d6/d0f/group__dnn.html#ga3b34fe7a29494a6a4295c169a7d32422.
    config: [ОБЯЗАТЕЛЬНО] Путь к конфигурационному файлу модели, более подробное содержимое см. в https://docs.opencv.org/4.1.1/d6/d0f/group__dnn.html#ga3b34fe7a29494a6a4295c169a7d32422.
    backend: [Необязательно] Сетевой бэкенд, используемый для повышения эффективности вывода. Теперь поддерживаются `halide`, `openvino`, `opencv`, `vulkan` и `default`. Более подробное содержание см. в https://docs.opencv.org/4.1.1/d6/d0f/group__dnn.html#ga186f7d9bfacac8b0ff2e26e2eab02625.
    device: [Необязательно] Целевое устройство обработки DNN. Теперь поддерживается `cpu`(по умолчанию), `fp32`, `fp16`, `vpu`, `vulkan` и `fpga`. Более подробное содержание см. в https://docs.opencv.org/4.1.1/d6/d0f/group__dnn.html#ga709af7692ba29788182cf573531b0ff5.
  after:
    function: 
      name: [ОБЯЗАТЕЛЬНО] Имя функции, которая обрабатывает результат вывода.
logger:
  filename: Если путь указан, записывает журнал в файл, в противном случае записывает в стандартный вывод.
  level: Уровень журнала, поддержка `debug`, `info`(по умолчанию), `warn` и `error`.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/baetyl-baetyl-video-infer.git
git@api.gitlife.ru:oschina-mirror/baetyl-baetyl-video-infer.git
oschina-mirror
baetyl-baetyl-video-infer
baetyl-baetyl-video-infer
master