MAATRIX / Блог / Computer vision на VPS: детекция объектов

Computer vision на VPS: детекция объектов

Блог MAATRIX · 2026-07-07

Детекция объектов — основа умного видеонаблюдения, подсчета людей и модерации контента. С YOLO на своем VPS ты анализируешь фото и видеопотоки без облачных лимитов и с полным контролем над данными.

Что умеет современный CV

['Компьютерное зрение решает несколько типов задач: детекция (где на кадре объект и что это), классификация (что изображено целиком), сегментация (пиксельная маска объекта). Для практики самое востребованное — детекция: подсчет людей, номера машин, товары на полке, модерация.', 'Рабочая лошадка сегодня — YOLO (You Only Look Once): одна нейросеть находит все объекты за один проход, работает и на CPU, и на GPU.', 'Модель возвращает для каждого найденного объекта класс (что это), координаты рамки (где) и уверенность (насколько модель убеждена). Из этих трех величин строится все прикладное: подсчет людей в кадре — это число рамок класса person, контроль зоны — проверка, попала ли рамка в заданный прямоугольник, а модерация — реакция на появление нежелательного класса.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для computer vision

Установка YOLO (Ultralytics)

['Ставим окружение и пакет ultralytics, который включает готовые предобученные модели:', '
apt update && apt install -y python3 python3-venv libgl1 libglib2.0-0\npython3 -m venv ~/cv-venv\nsource ~/cv-venv/bin/activate\npip install ultralytics torch torchvision --index-url https://download.pytorch.org/whl/cpu\npip install ultralytics
', 'libgl1 и libglib2.0-0 нужны для OpenCV, на который опирается обработка изображений.']

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Детекция на картинке

['Проверяем детекцию из командной строки — модель скачается автоматически:', '
yolo predict model=yolov8n.pt source=street.jpg
', 'Модель yolov8n (nano) — самая легкая, идеальна для CPU. Результат с рамками сохранится в runs/detect. Из Python получаем структурированные данные:', '
from ultralytics import YOLO\nmodel = YOLO("yolov8n.pt")\nres = model("street.jpg")\nfor box in res[0].boxes:\n    cls = model.names[int(box.cls)]\n    conf = float(box.conf)\n    print(f"{cls}: {conf:.2f}")
']

Обработка видео

['YOLO принимает видеофайл или RTSP-поток с камеры и обрабатывает кадр за кадром:', '
yolo predict model=yolov8n.pt source="rtsp://camera-ip/stream" stream=True
', 'Для видео важна не только скорость CPU, но и быстрый ввод-вывод: кадры читаются, промежуточные результаты пишутся. NVMe у MAATRIX здесь снимает задержки, а многоядерный AMD EPYC позволяет держать несколько потоков детекции параллельно.']

API-сервис детекции

['Оборачиваем модель в эндпоинт, который принимает картинку и возвращает список объектов:', '
from fastapi import FastAPI, UploadFile\nfrom ultralytics import YOLO\nimport io\nfrom PIL import Image\n\napp = FastAPI()\nmodel = YOLO("yolov8n.pt")\n\n@app.post("/detect")\nasync def detect(file: UploadFile):\n    img = Image.open(io.BytesIO(await file.read()))\n    res = model(img)\n    objs = [\n        {"class": model.names[int(b.cls)], "conf": float(b.conf)}\n        for b in res[0].boxes\n    ]\n    return {"objects": objs}
', '
pip install fastapi uvicorn python-multipart\nuvicorn app:app --host 127.0.0.1 --port 8004
', 'Дальше этот эндпоинт легко наращивается прикладной логикой: считать только людей, слать вебхук при появлении класса, фильтровать по уверенности выше 0.5. Модель грузится в память один раз при старте, поэтому важен запас RAM и быстрый диск под кеш весов — связка AMD EPYC + NVMe у MAATRIX держит и разовые запросы, и постоянный поток кадров.']

Оптимизация и частые ошибки

['На CPU выбирай легкие модели (yolov8n, yolov8s) и уменьшай разрешение входа через imgsz=480 — это заметно ускоряет обработку. Для видеопотоков не обязательно детектить каждый кадр, обрабатывай каждый 3–5-й.', '
res = model("video.mp4", imgsz=480, vid_stride=3)
', '
  • ImportError libGL — поставь libgl1 и libglib2.0-0.
  • Медленно на видео — бери nano-модель, снижай imgsz, увеличивай vid_stride.
  • Пропускает мелкие объекты — наоборот, подними imgsz до 1280 ценой скорости.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для computer vision

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Нужен ли GPU для YOLO?

Нет. Модели nano и small отлично работают на CPU для фото и умеренных видеопотоков. GPU нужен только для тяжелого реального времени и больших моделей.

Можно ли анализировать поток с камеры?

Да, YOLO принимает RTSP-поток как source и обрабатывает кадры в реальном времени. Для экономии CPU обрабатывай не каждый кадр через vid_stride.

Какие объекты распознает из коробки?

Предобученные модели YOLO знают 80 классов COCO: люди, машины, животные, сумки, телефоны и другое. Для своих классов модель дообучается на твоих данных.