File size: 1,409 Bytes
186b436
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Минимальная проверка нового пайплайна."""
import sys
from pathlib import Path

# Чтобы импорты из app/ работали при запуске из корня
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))

from app.services.pipeline import PlatePipeline

ROOT = Path(__file__).resolve().parent.parent
DET_WEIGHTS = ROOT / "models" / "yolov8_plate.pt"


def main(image_path: str):
    print("Инициализация пайплайна...")
    pipeline = PlatePipeline(DET_WEIGHTS)

    print(f"\nОбрабатываю: {image_path}")
    detections = pipeline.process_file(image_path)

    if not detections:
        print("Ничего не найдено.")
        return

    for i, d in enumerate(detections, 1):
        marker = "✓ ГОСТ" if d["is_valid_gost"] else "✗ не по ГОСТ"
        fb = " (fallback на всё изображение)" if d.get("fallback") else ""
        print(f"\nДетекция #{i}{fb}:")
        print(f"  bbox: {d['bbox']}")
        print(f"  confidence: {d['confidence']:.3f}")
        print(f"  OCR raw:    {d['plate_text_raw']}")
        print(f"  Номер:      {d['plate_text']}  [{marker}]")


if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Использование: python scripts/test_pipeline.py <путь>")
        sys.exit(1)
    main(sys.argv[1])