מדריך מלא לפריסת CVAT עם תיוג בעזרת AI ו-API

תיוג ידני של תמונות וסרטונים מאט את השקת פרויקטי ראייה ממוחשבת: זה יקר, גוזל זמן ופוגע באיכות. אנחנו פורסים CVAT ומגדירים תיוג בסיוע בינה מלאכותית כדי לזרז את התהליך ולשפר את הדיוק. הצוות שלנו מספק פרויקטים סוהריים—מהפריסה ועד להכשרת המתייגים שלכם—עם תמיכה מתמשכת.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

שילוב והגדרה של CVAT לסימון תמונות ווידאו

השקתם פיילוט של ראייה ממוחשבת, אספתם 50,000 תמונות, שכרתם שלושה מסמנים, אבל אחרי חודש גיליתם: סימון ידני הוא יקר, לוחות הזמנים בוערים, והאיכות היא 70% IoU. ראינו את זה עשרות פעמים. הפתרון הוא לפרוס את CVAT (Intel), לחבר סימון מקדים מבוסס AI, ולהקים צינור בקרת איכות אוטומטי. אנחנו מטפלים בכל דבר, מהפריסה ועד להכשרת הצוות. גישה זו מחזירה את עצמה תוך 2–3 חודשים עבור היקפים שמתחילים ב-5,000 אובייקטים מסומנים, וחוסכת $10,000–$30,000 בשנה עבור צוות של חמישה מסמנים. השילוב בדרך כלל עולה בין $5,000 ל-$15,000 כסכום חד-פעמי.

CVAT מול שירותים בתשלום

שירותים בתשלום גובים מ-$2 עד $5 לכל תמונה, אבל אין לכם שליטה על הנתונים, לא ניתן להתאים אישית את זרימת העבודה, ובקנה מידה של 10,000+ תמונות התקציב הופך קריטי. CVAT הוא כלי סימון בקוד פתוח שמתוחזק על ידי Intel. אתם מאחסנים נתונים על התשתית שלכם, מתאימים אישית את הממשק, ומוסיפים מודלים משלכם באמצעות פונקציות serverless. פרסנו CVAT עבור לקוחות בקמעונאות, רפואה ותחבורה אוטונומית — בכל מקרה הפתרון מחזיר את עצמו תוך 2–3 חודשים. מאגר רשמי: opencv/cvat.

האצת סימון עם AI Assist

AI assist הוא קלף המנצח העיקרי. המסמן פותח פריים, המודל כבר צייר 80% מהתיבות, האדם רק מתאים את הגבולות. בלי AI — 4–7 דקות לכל תמונה. עם AI ברמת דיוק של 90% — 15–30 שניות. זהו האצה של פי 8–16 — סימון בסיוע AI מהיר עד פי 16 מסימון ידני. יישמנו צינור כזה עבור 15 פרויקטים. הגורם המרכזי הוא איכות החיזוי: אם הדיוק יורד מתחת ל-70%, AI מתחיל להפריע. לכן, אנחנו תמיד מכיילים ערכי סף ובוחרים מודל עבור מערך הנתונים הספציפי.

הגדרת סימון בסיוע AI

אתם צריכים Nuclio serverless ומודל ארוז כפונקציה. העלו את המודל, CVAT קורא לו עבור כל פריים. אנחנו מרבים להשתמש בסימון YOLOv8 כמודל בסיס. דוגמת הגדרה עבור YOLOv8:

---
# docker-compose.override.yml
version: '3.3'
services:
  cvat_server:
    environment:
      DJANGO_MODWSGI_EXTRA_ARGS: ""
      ALLOWED_HOSTS: "*"
      CVAT_REDIS_HOST: "cvat_redis"
      CVAT_POSTGRES_HOST: "cvat_db"
      CVAT_DEFAULT_STORAGE_TYPE: "cloud_storage"
      AWS_ACCESS_KEY_ID: "${AWS_ACCESS_KEY_ID}"
      AWS_SECRET_ACCESS_KEY: "${AWS_SECRET_ACCESS_KEY}"
      AWS_STORAGE_BUCKET_NAME: "cvat-data"
  cvat_worker_annotation:
    deploy:
      replicas: 4
  cvat_worker_export:
    deploy:
      replicas: 2
  traefik:
    command:
      - "--providers.docker.exposedByDefault=false"
      - "--entrypoints.websecure.address=:443"
      - "[email protected]"
# Быстрый деплой с SSL
git clone https://github.com/opencv/cvat.git
cd cvat
docker compose -f docker-compose.yml -f docker-compose.override.yml -f components/serverless/docker-compose.serverless.yml up -d
docker exec -it cvat_server python manage.py createsuperuser

פונקציית Nuclio לזיהוי:

# nuclio/yolov8_detector/main.py
import json
import base64
import numpy as np
import cv2
from ultralytics import YOLO

model = YOLO('/opt/nuclio/yolov8l.pt')

def handler(context, event):
    data = event.body
    buf = base64.b64decode(data['image'])
    img = cv2.imdecode(np.frombuffer(buf, np.uint8), cv2.IMREAD_COLOR)
    threshold = data.get('threshold', 0.45)
    results = model(img, conf=threshold)
    annotations = []
    for box in results[0].boxes:
        x1, y1, x2, y2 = map(float, box.xyxy[0])
        cls_name = model.names[int(box.cls)]
        annotations.append({
            'confidence': float(box.conf),
            'label': cls_name,
            'points': [x1, y1, x2, y2],
            'type': 'rectangle'
        })
    return context.Response(
        body=json.dumps(annotations),
        headers={'Content-Type': 'application/json'},
        status_code=200
    )
---
# nuclio function.yaml
apiVersion: nuclio.io/v1beta1
kind: Function
metadata:
  name: cvat-yolov8-detector
spec:
  runtime: python:3.9
  handler: main:handler
  resources:
    limits:
      nvidia.com/gpu: 1
  env:
    - name: MODEL_PATH
      value: /opt/nuclio/yolov8l.pt

אוטומציה של ייבוא/ייצוא נתונים דרך CVAT API

אוטומציה מפחיתה עבודה ידנית. אנחנו מיישמים זרימות עבודה של MLOps לסימון לשיפור מתמשך. דוגמת מחלקת Python:

from cvat_sdk import make_client
from cvat_sdk.models import TaskWriteRequest, DataRequest

class CVATIntegration:
    def __init__(self, host: str, credentials: tuple):
        self.client = make_client(host=host, credentials=credentials)

    def create_task_from_s3(self, task_name: str, s3_prefix: str, labels: list) -> int:
        task = self.client.tasks.create(TaskWriteRequest(
            name=task_name,
            labels=labels,
            segment_size=100,
            overlap=5
        ))
        self.client.tasks.create_data(
            id=task.id,
            data_request=DataRequest(
                cloud_storage_id=1,
                filename=[f'{s3_prefix}/{f}' for f in self._list_s3_files(s3_prefix)]
            )
        )
        return task.id

    def export_annotations(self, task_id: int, format: str = 'YOLO 1.1') -> str:
        export_path = f'/tmp/annotations_{task_id}.zip'
        self.client.tasks.export_dataset(id=task_id, format=format, filename=export_path)
        return export_path

    def get_annotation_progress(self, task_id: int) -> dict:
        task = self.client.tasks.retrieve(task_id)
        return {'total_frames': task.size, 'annotated': task.jobs[0].stage if task.jobs else 0}

בעת אוטומציה דרך ה-API, חשוב להגדיר מדיניות ניסיונות חוזרים ומגבלות מתאימות. אנחנו משתמשים ב-exponential backoff על מגבלות קצב של CVAT. עבור פרויקטים גדולים (100,000+ תמונות), אנחנו מגדירים תורי משימות מקבילים.

מהירות סימון: AI Assist מול ידני

מספרים אמיתיים מפרויקט של סימון פגמים תעשייתיים (5,000 תמונות):

שיטה זמן לכל תמונה סה"כ עבור 5,000 תמונות
סימון ידני מאפס 4–7 דקות 20–35 ימי עבודה
סימון מקדים AI + תיקון (דיוק 80%) 45–90 שניות 4–8 ימי עבודה
סימון מקדים AI + תיקון (דיוק 95%) 15–30 שניות 1–2 ימי עבודה

אם דיוק החיזוי נמוך מ-70%, AI assist מאט את העבודה — תיקונים אורכים יותר זמן מאשר סימון מאפס. לכן אנחנו תמיד בודקים את המודל על מדגם מייצג לפני השילוב.

הבטחת בקרת איכות של סימון

בקרת איכות של סימון היא קריטית לביצועי המודל. עבודות חפיפה: 10–15% מהתמונות מסומנות על ידי שני מסמנים באופן עצמאי, ואז אנחנו משווים IoU. Honeypots: תמונות שהוכנו במיוחד עם סימון ידוע — אנחנו בודקים את הדיוק של כל מסמן. קונצנזוס: 3 מסמנים על מקרים קשים + הצבעת רוב.

בנוסף, אנחנו מגדירים אימות אוטומטי: בדיקה לאובייקטים שהוחמצו, כפילויות, עמידה בסכימת התוויות. כל המדדים נכנסים לדשבורד לניתוח. לאוטומציה של בקרות, אנחנו משתמשים ב-CVAT Analytics ובסקריפטים מותאמים אישית של Python.

טעות אופיינית היא דילוג על שלב האימות בהתחלה. אם מערך הנתונים מכיל דוגמאות רבות באיכות ירודה, מודל ה-AI מתדרדר במהירות. אנחנו ממליצים להקצות 10% מזמן הפרויקט לסקירת סימון.

שגיאות נפוצות בשילוב CVAT:

  • אין ניסיונות חוזרים בבקשות API על מגבלות קצב.
  • הרשאות S3 שגויות.
  • שימוש במודל ללא בדיקה מוקדמת על מדגם מייצג.
  • דילוג על עבודות חפיפה בהתחלה.

תהליך ולוחות זמנים

  1. ניתוח: חקר נתונים, בחירת מודל לסימון מקדים, עיצוב ארכיטקטורה.
  2. פריסה: הגדרת CVAT עם S3, SSL, גיבוי.
  3. שילוב AI: חיבור 1–3 מודלים דרך Nuclio, הגדרת ספים.
  4. בקרת איכות: הגדרת חפיפה, honeypots, קונצנזוס.
  5. הכשרת צוות: 2–3 מפגשים של 4 שעות כל אחד.
  6. תיעוד והעברת CI/CD.
סוג עבודה לוח זמנים
פריסת CVAT + הגדרה בסיסית 1–2 שבועות
CVAT + סימון בסיוע AI 3–5 שבועות
צינור מלא: CVAT + בקרת איכות + CI/CD 6–10 שבועות

מה כלול בעבודה?

כאשר אתם מזמינים שילוב CVAT מקיף, אתם מקבלים:

  • מופע CVAT עובד עם SSL, גיבויים קבועים וניטור
  • 1–3 מודלי AI ארוזים כפונקציות Nuclio עם כיוונון ספים
  • צינור ייבוא/ייצוא נתונים אוטומטי דרך S3
  • מערכת בקרת איכות: עבודות חפיפה, honeypots, קונצנזוס
  • הכשרה למסמנים (2–4 שעות) ולמנהלים (1–2 שעות)
  • תיעוד לניהול והרחבת המערכת
  • תמיכה לחודש אחד לאחר המסירה

למה לשלב AI Assist?

הניסיון מראה: בפרויקטים עם יותר מ-3,000 תמונות, AI assist מחזיר את עצמו תוך 2–4 שבועות. אתם מפחיתים תלות במספר המסמנים, מקבלים איכות עקבית, ויכולים להתרחב בלי לגייס עובדים. אנחנו מבטיחים דיוק סימון מקדים של לפחות 80% — אחרת אנחנו מחזירים את העמלה עבור שילוב המודל.

סימון ראייה ממוחשבת נעשה יעיל עם CVAT. אנחנו מציעים שילוב turnkey — קבלו צינור מוכן עם צוות מיומן. צרו קשר לייעוץ על הפרויקט שלכם ולהערכת חיסכון בתקציב.

למהנדסים שלנו יש יותר מ-5 שנות ניסיון בראייה ממוחשבת. השלמנו יותר מ-30 שילובי CVAT לקמעונאות, לוגיסטיקה וטכנולוגיה רפואית.