|
@@ -10,6 +10,9 @@ import cv2
|
|
|
from app.core.config import settings
|
|
from app.core.config import settings
|
|
|
from app.core.logger import get_logger
|
|
from app.core.logger import get_logger
|
|
|
from app.schemas.models import CardInfoInput, CardInfoOutput
|
|
from app.schemas.models import CardInfoInput, CardInfoOutput
|
|
|
|
|
+import torch
|
|
|
|
|
+from PIL import Image
|
|
|
|
|
+from transformers import AutoImageProcessor, AutoModelForSemanticSegmentation
|
|
|
|
|
|
|
|
logger = get_logger("VideoService")
|
|
logger = get_logger("VideoService")
|
|
|
|
|
|
|
@@ -46,8 +49,8 @@ class FrameCandidate:
|
|
|
|
|
|
|
|
class VideoService:
|
|
class VideoService:
|
|
|
def __init__(self):
|
|
def __init__(self):
|
|
|
- # 高斯分布的 sigma,用于计算时间权重。10.0 表示对时间差容忍度较高
|
|
|
|
|
- self.weight_sigma = 10.0
|
|
|
|
|
|
|
+ # 高斯分布的 sigma,用于计算时间权重。更大表示对时间差容忍度更高
|
|
|
|
|
+ self.weight_sigma = 6.0
|
|
|
self.search_before_ms = settings.VIDEO_SEARCH_BEFORE_MS
|
|
self.search_before_ms = settings.VIDEO_SEARCH_BEFORE_MS
|
|
|
self.search_after_ms = settings.VIDEO_SEARCH_AFTER_MS
|
|
self.search_after_ms = settings.VIDEO_SEARCH_AFTER_MS
|
|
|
self.analysis_fps = max(settings.VIDEO_ANALYSIS_FPS, 0.5)
|
|
self.analysis_fps = max(settings.VIDEO_ANALYSIS_FPS, 0.5)
|
|
@@ -127,10 +130,6 @@ class VideoService:
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
- import torch
|
|
|
|
|
- from PIL import Image
|
|
|
|
|
- from transformers import AutoImageProcessor, AutoModelForSemanticSegmentation
|
|
|
|
|
-
|
|
|
|
|
self._seg_processor = AutoImageProcessor.from_pretrained(model_dir)
|
|
self._seg_processor = AutoImageProcessor.from_pretrained(model_dir)
|
|
|
self._seg_model = AutoModelForSemanticSegmentation.from_pretrained(model_dir)
|
|
self._seg_model = AutoModelForSemanticSegmentation.from_pretrained(model_dir)
|
|
|
self._seg_model.eval() # 开启评估模式
|
|
self._seg_model.eval() # 开启评估模式
|