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

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

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

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

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что умеет современный 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
python3 -m venv ~/cv-venv
source ~/cv-venv/bin/activate
pip install ultralytics torch torchvision --index-url https://download.pytorch.org/whl/cpu
pip 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
model = YOLO("yolov8n.pt")
res = model("street.jpg")
for box in res[0].boxes:
    cls = model.names[int(box.cls)]
    conf = float(box.conf)
    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
from ultralytics import YOLO
import io
from PIL import Image

app = FastAPI()
model = YOLO("yolov8n.pt")

@app.post("/detect")
async def detect(file: UploadFile):
    img = Image.open(io.BytesIO(await file.read()))
    res = model(img)
    objs = [
        {"class": model.names[int(b.cls)], "conf": float(b.conf)}
        for b in res[0].boxes
    ]
    return {"objects": objs}
pip install fastapi uvicorn python-multipart
uvicorn 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

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

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

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

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

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

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

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

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

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

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