Files
ieemoo-ai-conpurchase/utils/detect.py
2023-06-25 13:55:22 +08:00

48 lines
1.5 KiB
Python

from network.vanalysis_video import vanalysis
from utils.filter import filt
import cv2 as cv
from floder.config import cfg
from utils.embedding import DataProcessing as dp
from utils.opfile import writef, readf
import numpy as np
from random import choice
class opvideo:
def __init__(self, flowmodel, dps):
self.flowmodel = flowmodel
self.dps = dps
def addFeature(self, uuid, num_id, video):
imglist = filt(video)
imgs = vanalysis(self.flowmodel, imglist)
feature = self.dps.getFeatures(imgs)
writef(uuid, num_id, feature)
def opFeature(self, uuid, finalnum, video):
videoFeature = []
self.addFeature(uuid, finalnum, video)
for num_id in range(0, finalnum):
feature = readf(uuid, num_id)
videoFeature.append(feature)
redic = self.opVideFeature(videoFeature)
#print(redic)
return redic
def opVideFeature(self, videoFeature):
redic = {}
stalist = list(range(0, len(videoFeature)))
for nu in stalist:
dylist = list(range(0, len(videoFeature)))
dylist.remove(nu)
for nn in dylist:
nn_tmp = []
cosin_re = self.dps.cal_cosine(
videoFeature[nu],
videoFeature[nn])
if (sum(i<0.86 for i in cosin_re))>0:
redic[nu] = False
else:
redic[nu] = True
break
return redic