public IEnumerable <FrameHashBase> GetAllFrameHashes(EnumFramingMode mode) { using var context = VideoIndexingDbContext.Create(); var query = from frameHash in context.FrameHashes where frameHash.Discriminator == mode select frameHash; return(query.ToList()); }
public IEnumerable <SimilarityInfo> FindSimilarVideos(EnumFramingMode mode, Concept concept) { var concepts = conceptProcessor.BuildConceptsFromFrameHashes(mode); return(concepts.SelectMany(builtConcept => conceptProcessor.CompareConcepts(concept, builtConcept)) .GroupBy(similarity => similarity.Original.VideoId) .Select(groupedSimilarity => groupedSimilarity.OrderByDescending(similarity => similarity.Similarity).First()) .OrderByDescending(similarity => similarity.Similarity) .Take(SimilarityThreshold) .ToImmutableList()); }
public IEnumerable <Concept> BuildConceptsFromFrameHashes(EnumFramingMode mode) { var frameHashes = frameHashesQueries.GetAllFrameHashes(mode); var parsedFrames = ParseFrameHashesIntoFrames(frameHashes); var concepts = parsedFrames.Item1; var videos = parsedFrames.Item2; var frames = parsedFrames.Item3; var hashes = parsedFrames.Item4; return(BuildConceptsFromParsedFrames(concepts, videos, frames, hashes)); }