[go: up one dir, main page]

DE102022105123A1 - Interact with semantic video segments through interactive tiles - Google Patents

Interact with semantic video segments through interactive tiles Download PDF

Info

Publication number
DE102022105123A1
DE102022105123A1 DE102022105123.4A DE102022105123A DE102022105123A1 DE 102022105123 A1 DE102022105123 A1 DE 102022105123A1 DE 102022105123 A DE102022105123 A DE 102022105123A DE 102022105123 A1 DE102022105123 A1 DE 102022105123A1
Authority
DE
Germany
Prior art keywords
video
segmentation
detected
interactive
timeline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022105123.4A
Other languages
German (de)
Inventor
Seth Walker
Hijung SHIN
Cristin Ailidh FRASER
Aseem Agarwala
Lubomira Dontcheva
Joel Richard Brandt
Jovan Popovic
Joy Oakyung KIM
Justin Salamon
Jui-Hsien Wang
Timothy Jeewun Ganter
Xue Bai
Dingzeyu Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/330,689 external-priority patent/US11887629B2/en
Application filed by Adobe Inc filed Critical Adobe Inc
Publication of DE102022105123A1 publication Critical patent/DE102022105123A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/75Clustering; Classification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7844Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using original textual content or text extracted from visual content or transcript of audio data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7847Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using low-level visual features of the video content
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/49Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/005Reproducing at a different information rate from the information rate of recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26603Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for automatically generating descriptors from content, e.g. when it is not made available by its provider, using content analysis techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4821End-user interface for program selection using a grid, e.g. sorted out by channel and broadcast time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4828End-user interface for program selection for searching program descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Computer Graphics (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Ausführungsformen betreffen interaktive Kacheln, die Videosegmente einer Segmentierung eines Videos darstellen. Bei einigen Ausführungsformen stellt jede interaktive Kachel ein anderes Videosegment aus einer bestimmten Videosegmentierung (beispielsweise einer Standardvideosegmentierung) dar. Jede interaktive Kachel beinhaltet ein Vorschaubild (beispielsweise das erste Einzelbild des Videosegmentes, das von der Kachel dargestellt wird), ein Transkript ab dem Anfang des Videosegmentes, eine Visualisierung von detektierten Gesichtern in dem Videosegment und einen oder mehrere facettenbestückte Zeitstrahlen, die eine Kategorie von detektierten Merkmalen visualisieren (beispielsweise eine Visualisierung von detektierten visuellen Szenen, Audioklassifizierungen, visuellen Artefakten). Bei einigen Ausführungsformen bewirkt das Interagieren mit einer bestimmten interaktiven Kachel ein Navigieren zu einem entsprechenden Abschnitt des Videos, ein Hinzufügen eines entsprechenden Videosegmentes zu einer Auswahl und/oder ein Wischen durch Kachelvorschaubilder.Embodiments relate to interactive tiles representing video segments of a segmentation of video. In some embodiments, each interactive tile represents a different video segment from a particular video segmentation (e.g., standard video segmentation). Each interactive tile includes a preview image (e.g., the first frame of the video segment represented by the tile), a transcript from the beginning of the video segment , a visualization of detected faces in the video segment, and one or more faceted timelines visualizing a category of detected features (e.g., visualization of detected visual scenes, audio classifications, visual artifacts). In some embodiments, interacting with a particular interactive tile causes navigating to a corresponding portion of the video, adding a corresponding video segment to a selection, and/or swiping through tile thumbnails.

Description

Verweis auf verwandte AnmeldungReference to related application

Die vorliegende Anmeldung ist eine Continuation-in-Part-Anmeldung der am 10. September 2020 eingereichten US-Patentanmeldung Nr. 17/017,344 mit der Erfindungsbezeichnung „Segmentation and Hierarchichal Clustering of Video“; der gesamte Inhalt hiervon wird hiermit durch Verweis mit aufgenommen.This application is a continuation-in-part of U.S. patent application no. 17/017,344 with the invention title “Segmentation and Hierarchical Clustering of Video”; the entire content of which is hereby incorporated by reference.

Hintergrundbackground

In den vergangenen Jahren hat sich die Nutzung von Videos stark ausgebreitet; Videos haben Anwendungen in nahezu jeder Industrie von Film und Fernsehen bis hin zu Werbung und sozialen Medien. Firmen und Einzelpersonen erstellen und teilen Videocontent routinemäßig in einer Vielzahl von Kontexten, so beispielsweise Präsentationen, Tutorials, Kommentare, Nachrichten- und Sportsegmente, Blogs, Produktbesprechungen, Testimonials, Comedy-Beiträge, Tanz, Musik, Filme und Videospiele, um nur einige wenige Beispiele zu nennen. Video können unter Nutzung einer Kamera aufgenommen, unter Nutzung von Animations- oder Renderwerkzeugen generiert, mit verschiedenen Typen von Videobearbeitungssoftware bearbeitet und über eine Vielzahl von Ausgabekanälen geteilt werden. Die jüngsten Weiterentwicklungen bei Digitalkameras, Smartphones, sozialen Medien und anderen Technologien haben eine Anzahl von neuen Wegen bereitgestellt, die es sogar Laien leichter machen, ein Video aufzunehmen und zu teilen. Mit diesen neuen Wegen zum Produzieren und Teilen von Videos steigt indes der Bedarf an Videobearbeitungsmerkmalen.In recent years, the use of videos has become very widespread; Videos have applications in almost every industry from film and television to advertising and social media. Companies and individuals routinely create and share video content in a variety of contexts, such as presentations, tutorials, commentary, news and sports segments, blogs, product reviews, testimonials, comedy, dance, music, movies, and video games, to name just a few to call. Video can be captured using a camera, generated using animation or rendering tools, edited using different types of video editing software, and shared through a variety of output channels. Recent advancements in digital cameras, smartphones, social media, and other technologies have provided a number of new ways that make it easier for even non-professionals to capture and share video. However, with these new ways of producing and sharing videos, the need for video editing features increases.

Üblicherweise impliziert die Videobearbeitung ein Auswählen von Videoeinzelbildern (video frames) und ein Durchführen einer bestimmten Art von Handlung an den Einzelbildern oder dem zugeordneten Ton. Einige übliche Vorgänge beinhalten das Importieren, Trimmen, Beschneiden bzw. Cropping, Neuanordnen, Anwenden von Übergängen und Effekten, Farbanpassen, Hinzufügen von Überschriften und Graphiken, Exportieren und anderes. Videobearbeitungssoftware, so beispielsweise ADOBE® PREMIERE® PRO und ADOBE PREMIERE ELEMENTS, beinhaltet üblicherweise eine graphische Nutzerschnittstelle (Graphical User Interface GUI), die einen Videozeitstrahl präsentiert, der die Videoeinzelbilder in dem Video darstellt und ermöglicht, dass der Nutzer bestimmte Einzelbilder und die an den Einzelbildern durchzuführenden Vorgänge auswählt. Herkömmliche Videobearbeitung kann jedoch aufwändig und kompliziert sein und die Fähigkeiten vieler Nutzer übersteigen.Traditionally, video editing involves selecting video frames and performing some type of action on the frames or the associated sound. Some common operations include importing, trimming, cropping, reordering, applying transitions and effects, adjusting colors, adding captions and graphics, exporting, and others. Video editing software, such as ADOBE® PREMIERE® PRO and ADOBE PREMIERE ELEMENTS, typically includes a graphical user interface (GUI) that presents a video timeline that represents the video frames in the video and allows the user to select specific frames and those attached to the selects operations to be performed on frames. However, traditional video editing can be cumbersome, complicated and beyond the capabilities of many users.

Zusammenfassungsummary

Ausführungsformen der vorliegenden Erfindung betreffen die Videosegmentierung und verschiedene Interaktionsmodalitäten für das Durchlaufen bzw. Browsen, Bearbeiten und Abspielen von Videos. Eingegliedert wird ein Video bei einer exemplarischen Ausführungsform durch Detektieren von verschiedenen Merkmalen unter Nutzung eines oder mehrerer maschinell lernender Modelle, und es werden eine oder mehrere Videosegmentierungen auf Grundlage der detektierten Merkmale generiert. Die detektierten Merkmale dienen als Grundlage für eine oder mehrere Videosegmentierungen, so beispielsweise eine Standardsegmentierung, eine Suchsegmentierung auf Grundlage einer Nutzeranfrage, eine Einrastpunktsegmentierung, die Auswahleinrastpunkte identifiziert, und/oder eine Vorschaubildsegmentierung, die identifiziert, welche Teile eines Videozeitstrahles mit verschiedenen Vorschaubildern dargestellt werden sollen. Sucher- und Bearbeiterschnittstellen präsentieren die verschiedenen Segmentierungen und bieten Nutzern die Möglichkeit des Durchlaufens bzw. Browsens, Auswählens, Bearbeitens und/oder Abspielens von semantisch sinnvollen Videosegmenten.Embodiments of the present invention relate to video segmentation and various interaction modalities for video browsing, editing and playing. In an exemplary embodiment, a video is incorporated by detecting various features using one or more machine learning models and generating one or more video segmentations based on the detected features. The detected features serve as the basis for one or more video segmentations, such as a standard segmentation, a search segmentation based on a user query, a snap point segmentation that identifies selection snap points, and/or a thumbnail segmentation that identifies which parts of a video timeline are to be displayed with different thumbnail images . Finder and editor interfaces present the various segmentations and allow users to browse, select, edit, and/or play semantically meaningful video segments.

Berechnet wird eine Segmentierung eines Videos bei einigen Ausführungsformen durch Bestimmen von Kandidatengrenzen aus detektierten Merkmalsgrenzen aus einer oder mehreren Merkmalsspuren; Modellieren von verschiedenen Segmentierungsoptionen durch Aufbauen eines Graphen mit Knoten, die Kandidatengrenzen darstellen, Kanten, die Kandidatensegmente darstellen, und Kantengewichtungen, die Schneidekosten (cut costs) darstellen; und Berechnen der Videosegmentierung durch Lösen eines Problems des kürzesten Weges, um denjenigen Weg durch die Kanten (Segmentierung) zu finden, der die Summe von Kantengewichtungen entlang des Weges (Schneidekosten) minimiert. Bei einigen Ausführungsformen hängen ein oder mehrere Aspekte einer Segmentierungsroutine vom Typ der Segmentierung (beispielsweise Standard, Suche, Einrastpunkt, Vorschaubild) ab. Bei einem nicht beschränkenden Beispiel werden Kandidatenschneidepunkte verschieden bzw. anders bestimmt, werden verschiedene Kanten für verschiedene Typen von Segmentierungen benutzt und/oder werden verschiedene Schneidekosten für Kantengewichtungen benutzt. Bei einer exemplarischen Ausführungsform wird eine Standardsegmentierung aus einem gewünschten Satz von detektierten Merkmalen, so beispielsweise aus detektierten Sätzen, Gesichtern und visuellen Szenen, berechnet.In some embodiments, a segmentation of a video is computed by determining candidate boundaries from detected feature boundaries from one or more feature lanes; modeling different segmentation options by building a graph with nodes representing candidate boundaries, edges representing candidate segments, and edge weights representing cut costs; and computing the video segmentation by solving a shortest path problem to find the path through the edges (segmentation) that minimizes the sum of edge weights along the path (cutting cost). In some embodiments, one or more aspects of a segmentation routine depend on the type of segmentation (e.g., standard, search, snap point, thumbnail). As a non-limiting example, candidate cut points are determined differently, different edges are used for different types of segmentations, and/or different cut costs are used for edge weights. In an exemplary embodiment, a default segmentation is selected from a desired th set of detected features, such as from detected sentences, faces and visual scenes.

Bei einigen Ausführungsformen präsentiert eine Sucherschnittstelle eine Videosegmentierung, so beispielsweise eine Standardsegmentierung, mit interaktiven Kacheln, die die Videosegmente in der Videosegmentierung und detektierte Merkmale in jedem Videosegment darstellen. Bei einigen Ausführungsformen stellt jede interaktive Kachel ein anderes Videosegment aus einer bestimmten Videosegmentierung (beispielsweise einer Standardvideosegmentierung) dar und beinhaltet ein Vorschaubild (beispielsweise das erste Einzelbild des Videosegmentes, das von der Kachel dargestellt wird), ein Transkript ab dem Anfang des Videosegmentes, eine Visualisierung von detektierten Gesichtern in dem Videosegment und/oder einen oder mehrere facettenbestückte Zeitstrahlen, die eine Kategorie von detektierten Merkmalen visualisieren (beispielsweise eine Visualisierung von detektierten visuellen Szenen, Audioklassifizierungen, visuellen Artefakten). Bei einer Ausführungsform dienen verschiedene Arten des Interagierens mit einer bestimmten interaktiven Kachel dem Navigieren zu einem entsprechenden Abschnitt des Videos, dem Hinzufügen eines entsprechenden Videosegmentes zu einer Auswahl und/oder dem Wischen durch Kachelvorschaubilder.In some embodiments, a viewfinder interface presents a video segmentation, such as a standard segmentation, with interactive tiles representing the video segments in the video segmentation and detected features in each video segment. In some embodiments, each interactive tile represents a different video segment from a particular video segmentation (e.g., a standard video segmentation) and includes a preview image (e.g., the first frame of the video segment represented by the tile), a transcript from the beginning of the video segment, a visualization of detected faces in the video segment and/or one or more faceted timelines visualizing a category of detected features (eg, a visualization of detected visual scenes, audio classifications, visual artifacts). In one embodiment, various ways of interacting with a particular interactive tile are for navigating to a corresponding portion of the video, adding a corresponding video segment to a selection, and/or swiping through tile thumbnails.

Bei einigen Ausführungsformen wird eine Suchsegmentierung auf Grundlage einer Anfrage berechnet. Zunächst wird eine erste Segmentierung, so beispielsweise eine Standardsegmentierung, (beispielsweise als interaktive Kacheln in einer Sucherschnittstelle, als Videozeitstrahl in einer Bearbeiterschnittstelle) angezeigt, und es wird die Standardsegmentierung in Reaktion auf eine Nutzeranfrage neusegmentiert. Die Anfrage kann die Form eines Schlüsselwortes und einer oder mehrerer ausgewählter Facetten in einer Kategorie von detektierten Merkmalen annehmen. Es werden Schlüsselwörter in detektierten Transkriptwörtern, detektierten Objekt- oder Handlungstags oder detektierten Audioereignistags, die zu den Schlüsselwörtern passen, gesucht. Es werden ausgewählte Facetten in detektierten Instanzen der ausgewählten Facetten gesucht. Jedes Videosegment, das zu der Anfrage passt, wird neusegmentiert, indem ein Problem des kürzesten Weges durch einen Graphen, der verschiedene Segmentierungsoptionen modelliert, gelöst wird. Die Sucherschnittstelle aktualisiert die interaktiven Kacheln, um die Suchsegmentierung darzustellen. Das Durchsuchen dient daher dem Zerbrechen der interaktiven Kacheln, um kleinere Einheiten des Videos auf Grundlage einer Anfrage bereitzustellen.In some embodiments, a search segmentation is calculated based on a query. First, a first segmentation, such as a default segmentation, is displayed (e.g., as interactive tiles in a finder interface, as a video timeline in an editor interface), and the default segmentation is re-segmented in response to a user request. The query may take the form of a keyword and one or more selected facets in a category of detected features. Keywords in detected transcript words, detected object or action tags, or detected audio event tags that match the keywords are searched for. Selected facets are searched for in detected instances of the selected facets. Each video segment that matches the query is re-segmented by solving a shortest-path problem through a graph that models various segmentation options. The searcher interface updates the interactive tiles to reflect the search segmentation. Browsing is therefore for breaking the interactive tiles to provide smaller chunks of video based on a request.

Bei einigen Ausführungsformen wird die Sucherschnittstelle benutzt, um ein Video zu durchlaufen bzw. zu browsen und Videosegmente zu einer Auswahl hinzuzufügen. Beim Hinzufügen eines gewünschten Satzes von Videosegmenten zu einer Auswahl schaltet ein Nutzer auf eine Bearbeiterschnittstelle um, um eine oder mehrere Verfeinerungen oder andere Bearbeitungsvorgänge an den ausgewählten Videosegmenten durchzuführen. Bei einigen Ausführungsformen initialisiert die Bearbeiterschnittstelle einen Videozeitstrahl mit einer Darstellung der Videosegmente, die aus der Sucherschnittstelle ausgewählt sind, so beispielsweise einen zusammengesetzten Videozeitstrahl, der ein zusammengesetztes Video, das von den ausgewählten Videosegmenten gebildet wird, darstellt, und zwar mit Grenzen der Videosegmente, die als Unterblendung (underlay) zu dem zusammengesetzten Zeitstrahl dargestellt sind. Bei einigen Ausführungsformen beinhaltet der zusammengesetzte Videozeitstrahl eine Visualisierung von detektierten Merkmalen und entsprechenden Merkmalsbereichen, um das Auswählen, Trimmen und Bearbeiten von Videosegmenten zu unterstützen.In some embodiments, the viewfinder interface is used to browse video and add video segments to a selection. Upon adding a desired set of video segments to a selection, a user switches to an editor interface to perform one or more refinements or other editing operations on the selected video segments. In some embodiments, the editor interface initializes a video timeline with a representation of the video segments selected from the viewfinder interface, such as a composite video timeline that represents a composite video formed by the selected video segments, with boundaries of the video segments that are shown as an underlay to the composite timeline. In some embodiments, the composite video timeline includes a visualization of detected features and corresponding feature areas to aid in selecting, trimming, and editing video segments.

Einige Ausführungsformen betreffen eine Einrastpunktsegmentierung, die die Orte von Auswahleinrastpunkten zur Auswahl von Videosegmenten durch Interaktionen mit dem Videozeitstrahl definiert. Aus Grenzen von Merkmalsbereichen des Videos werden Kandidateneinrastpunkte bestimmt, die angeben, wann Instanzen von detektierten Merkmalen in dem Video vorhanden sind. Bei einigen Ausführungsformen werden Kandidateneinrastpunkttrennungen pönalisiert, wenn sie um weniger als eine Minimaldauer, die einer Minimalpixeltrennung zwischen aufeinanderfolgenden Einrastpunkten auf einem Videozeitstrahl entspricht, getrennt sind. Berechnet wird die Einrastpunktsegmentierung durch Lösen eines Problems des kürzesten Weges durch einen Graphen, der verschiedene Einrastpunktorte und Trennungen modelliert. Klickt oder tippt ein Nutzer auf den Videozeitstrahl und nimmt ein Ziehen bzw. Dragging vor, so rastet eine Auswahl an den Einrastpunkten, die durch die Einrastpunktsegmentierung definiert sind, ein. Bei einigen Ausführungsformen werden die Einrastpunkte während eines Ziehvorganges angezeigt und verschwinden, wenn der Ziehvorgang beendet wird.Some embodiments relate to snap point segmentation that defines the locations of selection snap points for selecting video segments through interactions with the video timeline. Candidate snap points are determined from boundaries of feature regions of the video that indicate when instances of detected features are present in the video. In some embodiments, candidate snap point separations are penalized if they are separated by less than a minimum duration corresponding to a minimum pixel separation between consecutive snap points on a video timeline. The snap point segmentation is computed by solving a shortest path problem through a graph that models different snap point locations and separations. When a user clicks or taps on the video timeline and drags, a selection snaps to the snap points defined by the snap point segmentation. In some embodiments, the snap points appear during a drag operation and disappear when the drag operation ends.

Einige Ausführungsformen betreffen eine Vorschaubildsegmentierung, die auf einem Videozeitstrahl die Orte, an denen Vorschaubilder angezeigt werden, definiert. Bestimmt werden Kandidatenvorschaubildorte aus Grenzen von Merkmalsbereichen des Videos, wodurch angegeben wird, wann Instanzen von detektierten Merkmalen in dem Video vorhanden sind. Bei einigen Ausführungsformen werden Kandidatenvorschaubildtrennungen pönalisiert, wenn sie um weniger als eine Minimaldauer, die einer Minimalpixeltrennung (beispielsweise der Breite eines Vorschaubildes) zwischen aufeinanderfolgenden Vorschaubildorten auf einem Videozeitstrahl entspricht, getrennt sind. Berechnet wird die Vorschaubildsegmentierung durch Lösen eines Problems des kürzesten Weges durch einen Graphen, der verschiedene Vorschaubildorte und Trennungen modelliert. Als solches wird ein Videozeitstrahl mit Vorschaubildern auf dem Zeitstrahl an Orten, die durch die Vorschaubildsegmentierung definiert sind, angezeigt, wobei jedes Vorschaubild einen Abschnitt des Videos, der dem Vorschaubildort zugeordnet ist, darstellt.Some embodiments relate to thumbnail segmentation that defines the locations on a video timeline where thumbnails are displayed. Candidate preview image locations are determined from feature region boundaries of the video, indicating when instances of detected features are present in the video. In some embodiments, candidates Thumbnail separations are penalized if they are separated by less than a minimum duration equal to a minimum pixel separation (e.g., the width of a thumbnail) between consecutive thumbnail locations on a video timeline. Thumbnail segmentation is computed by solving a shortest path problem through a graph that models various thumbnail locations and separations. As such, a video timeline is displayed with thumbnails on the timeline at locations defined by the thumbnail segmentation, each thumbnail representing a portion of the video associated with the thumbnail location.

Bei einigen Ausführungsformen stellt die Bearbeiterschnittstelle eine beliebige Anzahl von Bearbeitungsfunktionen für ein ausgewähltes Videosegment bereit. Abhängig von der Implementierung beinhalten verfügbare Bearbeitungsfunktionen stilistische Verfeinerungen, die Content umwandeln (beispielsweise die Verringerung eines Windgeräusches), die Dauer beeinflussende Verfeinerungen, die Content beseitigen (die beispielsweise Bereiche des Filmmaterials „verbergen“, Schimpfwörter entfernen, einen Zeitsprung verwirklichen, eine Verkürzung auf n Sekunden vornehmen), und/oder Kontextfunktionen, die vom ausgewählten Kontext abhängen (beispielsweise Worte aus dem Content mit einem entsprechenden Transkript entfernen oder überpiepen). Allgemein stellt die Bearbeiterschnittstelle eine beliebige geeignete Bearbeitungsfunktionalität bereit, darunter ein Neuanordnen, Beschneiden bzw. Cropping, Anwenden von Übergängen oder Effekten, Farbanpassen, Hinzufügen von Überschriften oder Graphiken und/oder anderes. Das sich ergebende zusammengesetzte Video kann abgespielt, gespeichert, exportiert oder sonstiges werden.In some embodiments, the editor interface provides any number of editing functions for a selected video segment. Depending on the implementation, available editing features include stylistic refinements that transform content (e.g., reducing wind noise), duration-affecting refinements that eliminate content (e.g., "hiding" areas of footage, removing profanity, realizing a time warp, truncation to n seconds), and/or context functions that depend on the selected context (e.g. remove or beep words from the content with an appropriate transcript). In general, the editor interface provides any suitable editing functionality, including rearranging, cropping, applying transitions or effects, adjusting colors, adding captions or graphics, and/or others. The resulting composite video can be played, saved, exported, or otherwise.

Die vorliegende Offenbarung stellt als solche intuitive Videointeraktionstechniken bereit, die ermöglichen, dass Nutzer ein Auswählen, Trimmen, Abspielen und Exportieren von semantisch sinnvollen Videosegmenten auf einer gewünschten Stufe der Granularität auf einfache Weise vornehmen können, wodurch Erstellern und Konsumenten eine intuitivere Struktur zum Interagieren mit Videos an die Hand gegeben wird.As such, the present disclosure provides intuitive video interaction techniques that allow users to easily select, trim, play, and export semantically meaningful video segments at a desired level of granularity, providing creators and consumers with a more intuitive structure for interacting with videos is handed over.

Die vorliegende Zusammenfassung ist angegeben, um in vereinfachter Form eine Auswahl von Konzepten vorzustellen, die nachstehend in der detaillierten Beschreibung weiter beschrieben werden. Weder soll die vorliegende Zusammenfassung Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Erfindungsgegenstandes identifizieren, noch soll sie als Hilfe beim Bestimmen des Umfanges des beanspruchten Erfindungsgegenstandes benutzt werden.This summary is provided to introduce in simplified form a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

Figurenlistecharacter list

Die vorliegende Erfindung wird nachstehend detailliert anhand der beigefügten Zeichnungsfiguren beschrieben.

  • 1A und 1B sind Blockdiagramme eines exemplarischen Rechensystems zum Bearbeiten oder Abspielen von Videos entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 2A bis 2F sind Darstellungen einer exemplarischen Technik zum Berechnen von Kandidatengrenzen aus detektierten Merkmalsgrenzen entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 3A bis 3C sind Darstellungen einer exemplarischen Technik zum Aufbauen eines Graphen mit Wegen, die verschiedene Kandidatensegmentierungen darstellen, entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 4A bis 4C sind Darstellungen einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage von visuellen Szenen entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 5 ist eine Darstellung einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage von diarisierten (diarized) Transkriptmerkmalen entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 6 ist eine Darstellung einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage von detektierten Gesichtern entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 7A bis 7D sind Darstellungen einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage einer Anfrage entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 8 ist eine Darstellung einer exemplarischen Technik zum Berechnen von Intervallschneidekosten auf Grundlage einer Inkohärenz von detektierten Merkmalen entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 9A und 9B sind Darstellungen einer exemplarischen Technik zum Berechnen von Intervallschneidekosten auf Grundlage einer Anfrage entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 10 ist eine Darstellung einer exemplarischen Sucherschnittstelle zum Durchlaufen bzw. Browsen von Standard- und/oder Suchsegmentierungen entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 11A und 11B sind Darstellungen von exemplarischen interaktiven Kacheln entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 12A bis 12D sind Darstellungen von exemplarischen facettenbestückten Suchmenüs entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 13 ist eine Darstellung einer exemplarischen Suche in einer Sucherschnittstelle entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 14 ist eine Darstellung einer exemplarischen Bearbeiterschnittstelle zur Videobearbeitung entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 15A und 15B sind Darstellungen einer exemplarischen Marquee-Auswahl mit Einrastung entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 16A und 16B sind Flussdiagramme zur Darstellung eines Verfahrens zum Generieren einer Videosegmentierung unter Nutzung eines graphischen Modells entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 17 ist ein Flussdiagramm zur Darstellung eines Verfahrens zum Segmentieren einer Standardsegmentierung eines Videos zu einer Suchsegmentierung entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 18 ist ein Flussdiagramm zur Darstellung eines Verfahrens zum Navigieren eines Videos unter Nutzung von interaktiven Kacheln entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 19 ist ein Flussdiagramm zur Darstellung eines Verfahrens zum Hinzufügen von Videosegmenten zu einer Auswahl entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 20 ist ein Flussdiagramm zur Darstellung eines Verfahrens zum Einrasten einer Auswahlgrenze einer Auswahl von Videosegmenten entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 21 ist ein Flussdiagramm zur Darstellung eines Verfahrens zum Präsentieren eines Videozeitstrahles mit Vorschaubildern an Orten, die durch eine Vorschaubildsegmentierung definiert sind, entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 22 ist ein Flussdiagramm zur Darstellung eines weiteren Verfahrens zum Präsentieren eines Videozeitstrahles mit Vorschaubildern an Orten, die durch eine Vorschaubildsegmentierung definiert sind, entsprechend Ausführungsformen der vorliegenden Erfindung.
  • 23 ist ein Blockdiagramm einer exemplarischen Rechenumgebung, die zur Nutzung bei der Implementierung von Ausführungsformen der vorliegenden Erfindung geeignet ist.
The present invention is described in detail below with reference to the attached drawing figures.
  • 1A and 1B 12 are block diagrams of an exemplary computing system for editing or playing video, in accordance with embodiments of the present invention.
  • 2A until 2F 12 are illustrations of an exemplary technique for computing candidate boundaries from detected feature boundaries, in accordance with embodiments of the present invention.
  • 3A until 3C 10 are illustrations of an exemplary technique for constructing a graph with paths representing different candidate segmentations, according to embodiments of the present invention.
  • 4A until 4C 12 are illustrations of an exemplary technique for computing a boundary cutting cost based on visual scenes, in accordance with embodiments of the present invention.
  • 5 Figure 12 is an illustration of an exemplary technique for computing a boundary pruning cost based on diarized transcript features, in accordance with embodiments of the present invention.
  • 6 12 is an illustration of an exemplary technique for calculating a boundary clipping cost based on detected faces, in accordance with embodiments of the present invention.
  • 7A until 7D 12 are illustrations of an exemplary technique for calculating a boundary cutting cost based on a query, in accordance with embodiments of the present invention.
  • 8th 12 is an illustration of an exemplary technique for calculating an interval cutting cost based on incoherence of detected features, in accordance with embodiments of the present invention.
  • 9A and 9B 12 are illustrations of an exemplary technique for calculating an interval cutting cost based on a query, in accordance with embodiments of the present invention.
  • 10 Figure 12 is an illustration of an example searcher interface for browsing standard and/or search segmentations, in accordance with embodiments of the present invention.
  • 11A and 11B 12 are representations of exemplary interactive tiles in accordance with embodiments of the present invention.
  • 12A until 12D 10 are representations of exemplary faceted search menus according to embodiments of the present invention.
  • 13 Figure 12 is an illustration of an exemplary search in a searcher interface, in accordance with embodiments of the present invention.
  • 14 Figure 12 is an illustration of an example editor interface for video editing, in accordance with embodiments of the present invention.
  • 15A and 15B 12 are illustrations of an exemplary marquee selection with snapping in accordance with embodiments of the present invention.
  • 16A and 16B 12 are flow charts illustrating a method for generating video segmentation using a graphical model according to embodiments of the present invention.
  • 17 Fig. 12 is a flow chart depicting a method for segmenting a standard segmentation of a video into a search segmentation in accordance with embodiments of the present invention.
  • 18 FIG. 12 is a flow chart depicting a method for navigating a video using interactive tiles in accordance with embodiments of the present invention.
  • 19 Fig. 12 is a flow chart depicting a method for adding video segments to a selection according to embodiments of the present invention.
  • 20 Fig. 12 is a flow chart depicting a method for snapping a selection boundary to a selection of video segments in accordance with embodiments of the present invention.
  • 21 Fig. 12 is a flow diagram illustrating a method for presenting a video timeline with thumbnails at locations defined by thumbnail segmentation, according to embodiments of the present invention.
  • 22 Figure 12 is a flow diagram illustrating another method for presenting a video timeline with thumbnails at locations defined by thumbnail segmentation, according to embodiments of the present invention.
  • 23 Figure 1 is a block diagram of an example computing environment suitable for use in implementing embodiments of the present invention.

Detailbeschreibungdetailed description

Übersichtoverview

Üblicherweise können eine Videodatei, ein Clip oder ein Projekt in visuelle und Audioelemente aufgeteilt werden. Codieren oder auf andere Weise identifizieren kann ein Video beispielsweise eine Videospur, die eine Abfolge von Standbildern (beispielsweise von Videoeinzelbildern) umfasst, und eine begleitende Audiospur, die ein oder mehrere Audiosignale umfasst. Üblicherweise stellen Videobearbeitungswerkzeuge eine Schnittstelle bereit, die ermöglicht, dass Nutzer eine zeitbasierte Bearbeitung an ausgewählten Videoeinzelbildern vornehmen. Die herkömmliche Videobearbeitung impliziert daher allgemein das Darstellen eines Videos als Abfolge von festen Einheiten gleicher Dauer (beispielsweise Videoeinzelbilder) und das Präsentieren eines Videozeitstrahles, der ermöglicht, dass der Nutzer bestimmte Videoeinzelbilder auswählt und mit ihnen interagiert. Gleichwohl sind die Interaktionsmodalitäten, die auf einer Auswahl von bestimmten Videoeinzelbildern oder eines entsprechenden Zeitbereiches beruhen, inhärent langsam und detailreich, was zu Bearbeitungsworkflows führt, die oftmals als aufwändig und kompliziert betrachtet werden oder die Fähigkeiten vieler Nutzer übersteigen. Mit anderen Worten, eine zeitbasierte Videobearbeitung, die das Auswählen von bestimmten Videoeinzelbildern oder Zeitbereichen erfordert, stellt eine Interaktionsmodalität mit fester Granularität bereit, was zu einer unflexiblen und ineffizienten Schnittstelle führt. Als solches besteht Bedarf an einer verbesserten Schnittstelle und an verbesserten Interaktionsmodalitäten für Videobearbeitungswerkzeuge.Typically, a video file, clip, or project can be divided into visual and audio elements. For example, a video may encode or otherwise identify a video track that includes a sequence of still images (e.g., video frames) and an accompanying audio track that includes one or more audio signals. Typically, video editing tools provide an interface that allows users to perform time-based editing on selected video frames. Conventional video editing therefore generally involves presenting a video as a succession of fixed units of equal duration (eg, video frames) and presenting a video timeline that allows the user to select and interact with specific video frames. However, the interaction modalities based on a selection of specific video frames or a corresponding time range are inherently slow and detailed, resulting in editing workflows that are often considered cumbersome, complicated, or beyond the capabilities of many users. In other words, a time-based video editing that involves selecting of specific video frames or time ranges provides a fixed granularity interaction modality, resulting in an inflexible and inefficient interface. As such, there is a need for an improved interface and interaction modalities for video editing tools.

Entsprechend betreffen Ausführungsformen der vorliegenden Erfindung die Videosegmentierung und verschiedene Interaktionsmodalitäten für das Durchlaufen bzw. Browsen, Bearbeiten und Abspielen von Videos. Eingegliedert (ingested) wird ein Video bei einer exemplarischen Ausführungsform durch Detektieren von verschiedenen Merkmalen unter Nutzung eines oder mehrerer maschinell lernender Modelle, wobei eine oder mehrere Videosegmentierungen auf Grundlage der detektierten Merkmale generiert werden. Insbesondere wird das Video unter Nutzung eines oder mehrerer maschinell lernender Modelle verarbeitet, um Merkmale (beispielsweise ein Transkript, linguistische Merkmale, Sprecher, Gesichter, Audioklassifizierungen, visuell ähnliche Szenen, visuelle Artefakte, Objekte oder Handlungen von Videos, Audioereignisse, Softwareprotokollereignisse) und entsprechende Merkmalsbereiche, in denen die detektierten Merkmale vorhanden sind, zu detektieren. Die detektierten Merkmale dienen als Grundlage für eine oder mehrere Videosegmentierungen, so beispielsweise für eine Standardsegmentierung, eine Suchsegmentierung auf Grundlage einer Nutzeranfrage, eine Einrastpunktsegmentierung, die Auswahleinrastpunkte identifiziert, und/oder eine Vorschaubildsegmentierung, die identifiziert, welche Teile eines Videozeitstrahles mit verschiedenen Vorschaubildern dargestellt werden sollen. Sucher- und Bearbeiterschnittstellen präsentieren die verschiedenen Segmentierungen und stellen dabei für Nutzer Möglichkeiten zum Durchlaufen bzw. Browsen, Auswählen, Bearbeiten und/oder Abspielen von semantisch sinnvollen Videosegmenten bereit. Als solches stellen die vorliegenden Techniken neue Wege zum Erstellen, Bearbeiten und Konsumieren von Videos bereit und geben dadurch Erstellern und Konsumenten eine intuitivere Struktur für das Interagieren mit Videos an die Hand.Accordingly, embodiments of the present invention relate to video segmentation and various interaction modalities for video browsing, editing, and playback. In an exemplary embodiment, a video is ingested by detecting various features using one or more machine learning models, generating one or more video segmentations based on the detected features. Specifically, the video is processed using one or more machine learning models to identify features (e.g., a transcript, linguistic features, speakers, faces, audio classifications, visually similar scenes, visual artifacts, video objects or actions, audio events, software log events) and corresponding feature regions , in which the detected features are present. The detected features serve as the basis for one or more video segmentations, such as standard segmentation, search segmentation based on a user query, snap point segmentation identifying selection snap points, and/or thumbnail segmentation identifying which parts of a video timeline are presented with different thumbnail images must. Finder and editor interfaces present the various segmentations while providing users with the ability to browse, select, edit, and/or play semantically meaningful video segments. As such, the present techniques provide new ways to create, edit, and consume videos, thereby providing creators and consumers with a more intuitive structure for interacting with videos.

Identifiziert wird eine Videosegmentierung bei einer exemplarischen Implementierung durch Bestimmen von Kandidatenschneidepunkten aus detektierten Merkmalsgrenzen; Modellieren von verschiedenen Segmentierungsoptionen durch Aufbauen eines Graphen mit Knoten, die Kandidatenschneidepunkte darstellen, Kanten, die Kandidatensegmente darstellen, und Kantengewichtungen, die Schneidekosten darstellen; und Berechnen der Videosegmentierung durch Lösen eines Problems des kürzesten Weges, um denjenigen Weg durch die Kanten (Segmentierung) zu finden, der die Summe von Kantengewichtungen entlang des Weges minimiert (Schneidekosten). Angenommen werden bei einigen Ausführungsformen von einer Segmentierungsroutine abhängig vom Nutzungsfall verschiedene Eingabeparameter, so beispielsweise designierte Merkmalsspuren (beispielsweise vorbestimmt, nutzerseitig ausgewählt und/oder anderes), Nutzeranfragen, eine minimale oder maximale Solllänge eines Videosegmentes (die in einigen Fällen von der Zoomstufe abhängt), ein Bereich eines Videos zur Segmentierung und/oder anderes. Zusätzlich oder alternativ hängen ein oder mehrere Aspekte einer Segmentierungsroutine vom Typ der Segmentierung ab. Bei einem nicht beschränkenden Beispiel werden Kandidatenschneidepunkte verschieden bzw. anders bestimmt, werden verschiedene Kanten für verschiedene Typen von Segmentierungen benutzt und/oder werden verschiedene Schneidekosten für Kantengewichtungen benutzt. Bei einigen Ausführungsformen ist die Ausgabe eine Darstellung eines vollständigen Satzes (der also den gesamten und/oder designierten Bereich des Videos abdeckt) von disjunkten (also nicht überlappenden) Videosegmenten.In an exemplary implementation, video segmentation is identified by determining candidate intersection points from detected feature boundaries; modeling various segmentation options by building a graph with nodes representing candidate intersection points, edges representing candidate segments, and edge weights representing intersection costs; and computing the video segmentation by solving a shortest path problem to find the path through the edges (segmentation) that minimizes the sum of edge weights along the path (slicing cost). In some embodiments, a segmentation routine accepts various input parameters depending on the use case, such as designated feature tracks (e.g., predetermined, user-selected and/or other), user requests, a minimum or maximum target length of a video segment (which in some cases depends on the zoom level), an area of a video for segmentation and/or other. Additionally or alternatively, one or more aspects of a segmentation routine depend on the type of segmentation. As a non-limiting example, candidate cut points are determined differently, different edges are used for different types of segmentations, and/or different cut costs are used for edge weights. In some embodiments, the output is a representation of a complete set (i.e., covering the entire and/or designated area of the video) of disjoint (i.e., non-overlapping) video segments.

Berechnet wird eine Standardsegmentierung bei einer exemplarischen Ausführungsform aus einem gewünschten Satz von detektierten Merkmalen, so beispielsweise von detektierten Sätzen, Gesichtern und visuellen Szenen. Eine Sucherschnittstelle präsentiert die Standardsegmentierung mit interaktiven Kacheln, die die Videosegmente in der Standardsegmentierung und detektierte Merkmale in jedem Videosegment darstellen. Bei einigen Ausführungsformen präsentiert die Sucherschnittstelle die Kategorien von Merkmalen, die von der Standardsegmentierung benutzt werden, nimmt eine Auswahl eines gewünschten Satzes von Merkmalskategorien an, berechnet die Standardsegmentierung auf Grundlage der ausgewählten Merkmalskategorien neu und aktualisiert die interaktiven Kacheln, um die aktualisierte Standardsegmentierung darzustellen. Bei einer exemplarischen Implementierung mit einer Suche nimmt die Sucherschnittstelle eine Anfrage (beispielsweise ein Schlüsselwort und/oder eine Facette) an, generiert eine Suchsegmentierung, die die Standardsegmentierung auf Grundlage der Anfrage neusegmentiert, oder löst diese aus und aktualisiert die interaktiven Kacheln, um die Suchsegmentierung darzustellen. Daher dient das Suchen dem Zerbrechen der interaktiven Kacheln, um kleinere Einheiten des Videos auf Grundlage der Anfrage darzustellen. Zusätzlich oder alternativ präsentiert ein Gleitschieber oder ein anderes Interaktionselement einen Eingabeparameter für eine Segmentierung (beispielsweise eine minimale und maximale Solllänge des Videosegmentes), wodurch ermöglicht wird, dass ein Nutzer interaktiv die Größe von Videosegmenten, die von den Kacheln dargestellt werden, steuert bzw. regelt.In an exemplary embodiment, a standard segmentation is computed from a desired set of detected features, such as detected sentences, faces, and visual scenes. A viewfinder interface presents the default segmentation with interactive tiles showing the video segments in the default segmentation and detected features in each video segment. In some embodiments, the searcher interface presents the categories of features used by the default segmentation, accepts a selection of a desired set of feature categories, recalculates the default segmentation based on the selected feature categories, and updates the interactive tiles to reflect the updated default segmentation. In an exemplary implementation with a search, the searcher interface accepts a query (such as a keyword and/or facet), generates or triggers search segmentation that resegments the default segmentation based on the query, and updates the interactive tiles to reflect the search segmentation to represent. Therefore, searching is for breaking the interactive tiles to display smaller chunks of video based on the query. Additionally or alternatively, a slider or other interaction element presents an input parameter for segmentation (e.g., a minimum and maximum target length of the video segment), allowing a user to interactively control the size of video segments represented by the tiles .

Bei einer exemplarischen Ausführungsform stellt jede interaktive Kachel ein Videosegment aus einer bestimmten Segmentierung (beispielsweise Standard oder Suche) und detektierte Merkmale in dem Videosegment dar. Jede Kachel zeigt beispielsweise ein Vorschaubild (beispielsweise das erste Einzelbild des Videosegmentes), ein Transkript ab dem Anfang des Videosegmentes, eine Visualisierung von detektierten Gesichtern in dem Videosegment und einen oder mehrere facettenbestückte Zeitstrahlen, die eine Kategorie von detektierten Merkmalen visualisieren (beispielsweise eine Visualisierung von detektierten visuellen Szenen, Audioklassifizierungen, visuellen Artefakten). Das Klicken auf eine Visualisierung eines detektierten Merkmals in einer interaktiven Kachel bewirkt ein Navigieren zu demjenigen Teil des Videos mit dem detektierten Merkmal.In an exemplary embodiment, each interactive tile represents a video segment from a particular segmentation (e.g. standard or search) and detected features in the video segment. Each tile shows, for example, a preview image (e.g. the first frame of the video segment), a transcript from the beginning of the video segment , a visualization of detected faces in the video segment, and one or more faceted timelines visualizing a category of detected features (e.g., visualization of detected visual scenes, audio classifications, visual artifacts). Clicking on a visualization of a detected feature in an interactive tile causes navigation to that part of the video with the detected feature.

Bei einigen Ausführungsformen beinhaltet die Sucherschnittstelle ein für ausgewählte Clips gedachtes Feld, in dem Nutzer Videosegmente zu einer Auswahl hinzufügen können. Abhängig von der Implementierung werden Videosegmente auf verschiedene Weisen zu der Auswahl hinzugefügt, so beispielsweise durch Ziehen (Dragging) einer Kachel in das für ausgewählte Clips gedachte Feld, Aktivieren einer Schaltfläche oder eines anderen Interaktionselementes in einer interaktiven Kachel, Interagieren mit einer Visualisierung eines detektierten Merkmals in einer interaktiven Kachel (beispielsweise Rechtsklicken auf eine Visualisierung zum Aktivieren eines Kontextmenüs und Hinzufügen eines entsprechenden Videosegmentes zur Auswahl aus dem Kontextmenü), Interagieren mit dem Transkript (beispielsweise Hervorheben, Rechtsklicken zum Aktivieren eines Kontextmenüs und Hinzufügen zur Auswahl aus dem Kontextmenü) und/oder auf andere Arten. Bei einigen Ausführungsformen beinhaltet die Sucherschnittstelle eine oder mehrere Schaltflächen oder andere Interaktionselemente, die auf die Bearbeiterschnittstelle umschalten und dabei einen Videozeitstrahl mit einer Darstellung der ausgewählten Videosegmente in dem für ausgewählte Clips gedachten Feld initialisieren.In some embodiments, the viewfinder interface includes a selected clips panel where users can add video segments to a selection. Depending on the implementation, video segments are added to the selection in various ways, such as dragging a tile into the box intended for selected clips, activating a button or other interaction element in an interactive tile, interacting with a visualization of a detected feature in an interactive tile (e.g. right-clicking on a visualization to activate a context menu and adding a corresponding video segment to select from the context menu), interacting with the transcript (e.g. highlighting, right-clicking to activate a context menu and adding to selection from the context menu) and/or in other ways. In some embodiments, the viewfinder interface includes one or more buttons or other interaction elements that toggle to the editor interface, thereby initializing a video timeline with a representation of the selected video segments in the selected clips field.

Bei einer exemplarischen Ausführungsform stellt die Bearbeiterschnittstelle einen zusammengesetzten Videozeitstrahl bereit, der ein zusammengesetztes Video darstellt, das von den Videosegmenten, die in der Sucherschnittstelle ausgewählt werden, gebildet wird, und zwar mit Grenzen der Videosegmente, die als Unterblendung (underlay) zu dem zusammengesetzten Zeitstrahl dargestellt werden. Bei einigen Ausführungsformen bewirkt ein Ziehvorgang entlang des zusammengesetzten Zeitstrahles das Einrasten von Auswahlgrenzen an Einrastpunkten, die durch eine Einrastpunktsegmentierung und/oder eine aktuelle Zoomstufe definiert sind. Bei einer exemplarischen Implementierung mit einer Suche nimmt die Bearbeiterschnittstelle eine Anfrage (beispielsweise ein Schlüsselwort und/oder eine Facette) an, generiert eine Suchsegmentierung, die die Videosegmente in dem zusammengesetzten Video auf Grundlage der Suche segmentiert, und präsentiert eine Visualisierung der Suchsegmentierung (beispielsweise durch Darstellen der Grenzen der Videosegmente als Unterblendung (underlay) zu dem zusammengesetzten Zeitstrahl).In an exemplary embodiment, the editor interface provides a composite video timeline that represents a composite video formed from the video segments selected in the viewfinder interface, with boundaries of the video segments appearing as an underlay to the composite timeline being represented. In some embodiments, dragging along the composite timeline causes selection boundaries to snap to snap points defined by snap point segmentation and/or a current zoom level. In an exemplary implementation with a search, the agent interface accepts a query (e.g., a keyword and/or a facet), generates a search segmentation that segments the video segments in the composite video based on the search, and presents a visualization of the search segmentation (e.g., by displaying the boundaries of the video segments as an underlay to the composite timeline).

Bei einigen Ausführungsformen beinhaltet der zusammengesetzte Videozeitstrahl eine Visualisierung von detektierten Merkmalen und entsprechenden Merkmalsbereichen, um das Trimmen zu unterstützen. Während des Ziehens (Dragging) entlang des zusammengesetzten Zeitstrahles können Visualisierungen von detektierten Merkmalen beispielsweise das Informieren darüber unterstützen, welche Teile des Videos ausgewählt werden sollen (beispielsweise ein Teil des Videos, der eine visualisierte Audioklassifizierung enthält). Zusätzlich oder alternativ werden während des Ziehens (Dragging) entlang des zusammengesetzten Zeitstrahles die Einrastpunkte, die durch die Einrastpunktsegmentierung definiert sind und die bestimmte Merkmalsgrenzen darstellen, auf dem Zeitstrahl (beispielsweise als vertikale Linien auf dem zusammengesetzten Zeitstrahl) visualisiert, wodurch dargestellt wird, welche Teile des Videos gute Einrastpunkte sind. Bei wieder einem anderen Beispiel veranlasst das Klicken auf eine Visualisierung eines detektierten Merkmales (beispielsweise auf eine Leiste, die einen Abschnitt des Videos mit einem detektierten Artefakt darstellt), das Auswählen desjenigen Teiles des zusammengesetzten Videos mit dem detektierten Merkmal. Als solches stellt die Bearbeiterschnittstelle eine intuitive Schnittstelle zum Auswählen von semantisch sinnvollen Videosegmenten zur Bearbeitung bereit.In some embodiments, the composite video timeline includes a visualization of detected features and corresponding feature areas to aid in trimming. For example, while dragging along the composite timeline, visualizations of detected features can help inform which parts of the video to select (e.g., a part of the video that contains a visualized audio classification). Additionally or alternatively, while dragging along the composite timeline, the snap points defined by the snap point segmentation and representing certain feature boundaries are visualized on the timeline (e.g., as vertical lines on the composite timeline), representing which parts of the video are good snap points. In yet another example, clicking on a visualization of a detected feature (e.g., a bar representing a portion of the video with a detected artifact) causes selection of that portion of the composite video with the detected feature. As such, the editor interface provides an intuitive interface for selecting semantically meaningful video segments for editing.

Bei einigen Ausführungsformen stellt der zusammengesetzte Zeitstrahl jedes Videosegment in dem zusammengesetzten Video mit einem oder mehreren Vorschaubildern, die ein repräsentatives Videoeinzelbild zeigen, dar. Bei einer exemplarischen Implementierung beinhaltet jedes Videosegment ein oder mehrere Vorschaubilder an Orten des Zeitstrahles, die durch die Vorschaubildsegmentierung und/oder eine aktuelle Zoomstufe identifiziert werden, wobei längere Videosegmente wahrscheinlicher mehrere Vorschaubilder beinhalten. Zoomt ein Nutzer beispielsweise hinein, so erscheinen mehr Vorschaubilder an semantisch sinnvollen Orten, während beliebige schon sichtbare Vorschaubilder an ihrem Ort bleiben. Als solches dienen die Vorschaubilder als Orientierungsmarken dafür, das Navigieren durch ein Video und das Auswählen von Videosegmenten zu unterstützen.In some embodiments, the composite timeline represents each video segment in the composite video with one or more thumbnail images that show a representative video frame. In an exemplary implementation, each video segment includes one or more thumbnail images at locations of the timeline determined by the thumbnail segmentation and/or a current zoom level can be identified, with longer video segments more likely to include multiple thumbnails. For example, if a user zooms in, more thumbnails appear in semantically meaningful locations, while any thumbnails that are already visible remain in place. As such, they serve Thumbnails as landmarks to aid in navigating through a video and selecting video segments.

Bei einer exemplarischen Implementierung stellt die Bearbeiterschnittstelle eine beliebige Anzahl von Bearbeitungsfunktionen für ein ausgewähltes Videosegment bereit. Abhängig von der Implementierung beinhalten verfügbare Bearbeitungsfunktionen stilistische Verfeinerungen, die Content umwandeln (die beispielsweise Windgeräusche verringern), die Dauer beeinflussende Verfeinerungen, die Content beseitigen (die beispielsweise Bereiche des Filmmaterials „verstecken“, Schimpfwörter entfernen, einen Zeitsprung durchführen, eine Verkürzung auf n Sekunden vornehmen), und/oder Kontextfunktionen, die vom ausgewählten Content abhängen (die beispielsweise Worte aus dem Content mit einem entsprechenden Transkript entfernen oder überpiepen). Allgemein stellt die Bearbeiterschnittstelle eine beliebige geeignete Bearbeitungsfunktionalität bereit, darunter das Neuanordnen, Beschneiden bzw. Cropping, Anwenden von Übergängen oder Effekten, Farbanpassen, Hinzufügen von Überschriften oder Graphiken und/oder anderes. Das sich ergebende zusammengesetzte Video kann abgespielt, gespeichert, exportiert oder anderes werden.In an exemplary implementation, the editor interface provides any number of editing functions for a selected video segment. Depending on the implementation, available editing features include stylistic refinements that transform content (e.g., reduce wind noise), duration-affecting refinements that eliminate content (e.g., "hide" areas of footage, remove swear words, perform a time warp, truncation to n seconds make), and/or contextual functions that depend on the selected content (which, for example, remove or beep words from the content with a corresponding transcript). In general, the editor interface provides any suitable editing functionality, including rearranging, cropping, applying transitions or effects, adjusting colors, adding captions or graphics, and/or others. The resulting composite video can be played, saved, exported, or otherwise.

Als solches stellt die vorliegende Offenbarung intuitive Videointeraktionstechniken bereit, die ermöglichen, dass Nutzer semantisch sinnvolle Videosegmente auf einer gewünschten Stufe der Granularität auf einfache Weise auswählen, trimmen, abspielen und exportieren. Anstelle eines bloßen Bereitstellens eines Videozeitstrahles, der durch beliebige feste Einheiten gleicher Dauer (beispielsweise ein Einzelbild, eine Sekunde) auf eine Weise segmentiert ist, die von der semantischen Bedeutung unabhängig ist, stellt das Präsentieren einer Videosegmentierung auf Grundlage von detektierten Merkmalen Videosegmente mit ungleicher Dauer und Grenzen, die an semantisch sinnvollen und nicht willkürlichen Orten befindlich sind, bereit. Entsprechend stellen die vorliegenden Videointeraktionstechniken eine flexiblere und effizientere Interaktionsmodalität bereit, die ermöglicht, dass Nutzer wahrscheinlich von Interesse seiende sinnvolle Teilstücke (chunks) eines Videos schnell identifizieren, auswählen und bearbeiten. Als solches können Bearbeiter nunmehr schneller arbeiten, und Konsumenten können nunmehr zu einer von Interesse seienden Auswahl springen, ohne das Video anschauen zu müssen.As such, the present disclosure provides intuitive video interaction techniques that allow users to easily select, trim, play, and export semantically meaningful video segments at a desired level of granularity. Instead of merely providing a video timeline segmented by arbitrary fixed units of equal duration (e.g., one frame, one second) in a way that is independent of semantic meaning, presenting video segmentation based on detected features provides video segments of unequal duration and borders that are in semantically meaningful and not arbitrary places. Accordingly, the present video interaction techniques provide a more flexible and efficient interaction modality that allows users to quickly identify, select, and edit meaningful chunks of a video that are likely to be of interest. As such, editors can now work faster and consumers can now jump to a selection of interest without having to watch the video.

Exemplarische VideobearbeitungsumgebungExemplary video editing environment

1A zeigt ein Blockdiagramm einer exemplarischen Umgebung 100, die zur Nutzung beim Implementieren von Ausführungsformen der vorliegenden Erfindung geeignet ist. Allgemein ist die Umgebung 100 zum Bearbeiten oder Abspielen von Videos geeignet und erleichtert unter anderem die Videosegmentierung und Interaktionen mit sich ergebenden Videosegmenten. Die Umgebung 100 beinhaltet eine Clientvorrichtung 102 und einen Server 150. Bei verschiedenen Ausführungsformen sind die Clientvorrichtung 102 und/oder der Server 150 eine beliebige Art von Rechenvorrichtung, die das Bearbeiten oder Abspielen von Videos erleichtern kann, so beispielsweise die Rechenvorrichtung 2300, die nachstehend anhand 23 noch beschrieben wird. Beispiele für Rechenvorrichtungen beinhalten einen PC, einen Laptopcomputer, eine mobile oder Mobilvorrichtung, ein Smartphone, einen Tabletcomputer, eine intelligente (smarte) Armbanduhr, einen am Körper tragbaren Computer, einen Persönlichen Digitalen Assistenten (PDA), ein Musikabspielgerät oder ein MP3-Abspielgerät, ein Globalpositionierungssystem (GPS) oder eine solche Vorrichtung, ein Videoabspielgerät, eine Handkommunikationsvorrichtung, eine Gaming-Vorrichtung oder ein solches System, ein Unterhaltungssystem, ein Fahrzeugcomputersystem, einen eingebetteten Systemcontroller, eine Kamera, eine Fernbedienung, einen Strichcodescanner, eine computerisierte Messvorrichtung, eine Gerätschaft, eine Vorrichtung der Unterhaltungselektronik, eine Workstation, eine Kombination hieraus oder eine beliebige andere geeignete Computervorrichtung. 1A 10 shows a block diagram of an exemplary environment 100 suitable for use in implementing embodiments of the present invention. In general, the environment 100 is suitable for editing or playing videos and facilitates, among other things, video segmentation and interactions with resulting video segments. The environment 100 includes a client device 102 and a server 150. In various embodiments, the client device 102 and/or the server 150 are any type of computing device that can facilitate editing or playing of videos, such as the computing device 2300 described below with reference to 23 will be described later. Examples of computing devices include a personal computer, laptop computer, mobile or mobile device, smartphone, tablet computer, smart watch, wearable computer, personal digital assistant (PDA), music player, or MP3 player. a global positioning system (GPS) or device, a video player, a handheld communication device, a gaming device or system, an entertainment system, a vehicle computing system, an embedded system controller, a camera, a remote control, a barcode scanner, a computerized measuring device, an appliance , a consumer electronic device, a workstation, a combination thereof, or any other suitable computing device.

Bei verschiedenen Implementierungen beinhalten die Komponenten der Umgebung 100 Computerspeichermedien zur Speicherung von Information, darunter von Daten, Datenstrukturen, Computeranweisungen (beispielsweise Softwareprogrammanweisungen, Routinen oder Dienste) und/oder Modellen (beispielsweise maschinell lernende Modelle), die bei einigen Ausführungsformen der hier beschriebenen Technologien benutzt werden. Bei einigen Implementierungen umfassen die Clientvorrichtung 102, der Server 150 und/oder der Speicher 190 beispielsweise einen oder mehrere Datenspeicher (oder einen Computerdatenspeicher bzw. Memory). Obwohl die Clientvorrichtung 102, der Server 150 und der Speicher 190 in 1A zudem jeweils als Einzelkomponente dargestellt sind, sind die Clientvorrichtung 102, der Server 150 und/oder der Speicher 190 bei einigen Ausführungsformen unter Nutzung einer beliebigen Anzahl von Datenspeichern implementiert und/oder sind unter Nutzung eines Cloudspeichers implementiert.In various implementations, the components of the environment 100 include computer storage media for storing information, including data, data structures, computer instructions (e.g., software program instructions, routines, or services), and/or models (e.g., machine learning models) used in some embodiments of the technologies described herein will. For example, in some implementations, client device 102, server 150, and/or memory 190 comprise one or more data stores (or computer memory). Although client device 102, server 150, and storage 190 in 1A Also, while each is illustrated as a single component, in some embodiments client device 102, server 150, and/or storage 190 are implemented using any number of data stores and/or are implemented using cloud storage.

Die Komponenten der Umgebung 100 kommunizieren miteinander über ein Netzwerk 103. Bei einigen Ausführungsformen beinhaltet das Netzwerk 103 ein oder mehrere Ortsbereichsnetzwerke (LANs), Großbereichsnetzwerke (WANs) und/oder andere Netzwerke. Derartige vernetzte Umgebungen sind in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet gängig.The components of environment 100 communicate with one another over a network 103. In some embodiments, network 103 includes one or more local area networks (LANs), Wide Area Networks (WANs) and/or other networks. Such networked environments are common in offices, enterprise computer networks, intranets, and the Internet.

Bei dem in 1A und 1B dargestellten Beispiel beinhaltet die Clientvorrichtung 102 eine Videointeraktionsengine 108, und der Server 150 beinhaltet ein Videosegmentierungswerkzeug 155. Bei verschiedenen Ausführungsformen sind die Videointeraktionsengine 108, das Videosegmentierungswerkzeug 155 und/oder ein beliebiges der in 1A und 1B dargestellten Elemente in eine Anwendung / Anwendungen (beispielsweise eine entsprechende Anwendung auf der Clientvorrichtung 102 beziehungsweise dem Server 150) oder ein Add-on / Add-ons oder ein Plug-in / Plug-ins zu einer Anwendung / Anwendungen eingebaut oder integriert. Bei einigen Ausführungsformen ist/sind die Anwendung / Anwendungen eine beliebige Anwendung, die das Bearbeiten oder Abspielen von Videos erleichtern kann, so beispielsweise eine eigenständige Anwendung, eine mobile Anwendung, eine Webanwendung und/oder dergleichen. Bei einigen Implementierungen umfasst/umfassen die Anwendung / Anwendungen eine Webanwendung, die beispielsweise über einen Webbrowser zugänglich ist, die wenigstens teilweise serverseitig gehostet wird, und/oder dergleichen. Zusätzlich oder alternativ beinhaltet/beinhalten die Anwendung / Anwendungen eine eigens vorgesehene bzw. dedizierte Anwendung. In einigen Fällen ist die Anwendung (beispielsweise als Dienst) in ein Betriebssystem integriert. Exemplarische Videobearbeitungsanwendungen beinhalten ADOBE PREMIERE PRO sowie ADOBE PREMIERE ELEMENTS.At the in 1A and 1B In the example illustrated, client device 102 includes video interaction engine 108, and server 150 includes video segmentation tool 155. In various embodiments, video interaction engine 108, video segmentation tool 155, and/or any of 1A and 1B elements shown are installed or integrated into an application/applications (for example a corresponding application on the client device 102 or the server 150) or an add-on/add-ons or a plug-in/plug-ins for an application/applications. In some embodiments, the application(s) is/are any application that can facilitate video editing or playing, such as a standalone application, a mobile application, a web application, and/or the like. In some implementations, the application(s) comprises a web application accessible, for example, via a web browser, hosted at least in part server-side, and/or the like. Additionally or alternatively, the application/applications include/have a specially provided or dedicated application. In some cases, the application (e.g., as a service) is integrated into an operating system. Exemplary video editing applications include ADOBE PREMIERE PRO and ADOBE PREMIERE ELEMENTS.

Bei verschiedenen Ausführungsformen ist die hier beschriebene Funktionalität über eine beliebige Anzahl von Vorrichtungen verteilt. Bei einigen Ausführungsformen wird die Videobearbeitungsanwendung 105 wenigstens teilweise serverseitig gehostet, sodass die Videointeraktionsengine 108 und das Videosegmentierungswerkzeug 155 (beispielsweise über das Netzwerk 103) zusammenarbeiten, um die hier beschriebene Funktionalität durchzuführen. Bei einem weiteren Beispiel sind die Videointeraktionsengine 108 und das Videosegmentierungswerkzeug 155 (oder ein beliebiger Abschnitt hiervon) in eine gängige bzw. gemeinsame Anwendung integriert, die auf einer einzigen Vorrichtung ausführbar ist. Obwohl einige Ausführungsformen anhand einer Anwendung / von Anwendungen beschrieben werden, ist eine beliebige der hier beschriebenen Funktionalitäten zusätzlich oder alternativ in ein Betriebssystem (beispielsweise als Dienst), einen Server (beispielsweise einen Remoteserver), eine verteilte Rechenumgebung (beispielsweise als Clouddienst) und/oder anderes integriert. Es handelt sich hierbei indes lediglich um Beispiele, und es kann eine beliebige geeignete Verteilung der Funktionalität zwischen diesen oder anderen Vorrichtungen innerhalb des Umfangs der vorliegenden Offenbarung implementiert sein.In various embodiments, the functionality described herein is distributed across any number of devices. In some embodiments, the video editing application 105 is hosted, at least in part, server-side such that the video interaction engine 108 and the video segmentation tool 155 work together (e.g., over the network 103) to perform the functionality described herein. In another example, the video interaction engine 108 and the video segmentation tool 155 (or any portion thereof) are integrated into a common application executable on a single device. Although some embodiments are described in terms of an application(s), any of the functionality described herein is additionally or alternatively implemented in an operating system (e.g., as a service), a server (e.g., a remote server), a distributed computing environment (e.g., as a cloud service), and/or other integrated. However, these are merely examples and any suitable distribution of functionality between these or other devices may be implemented within the scope of the present disclosure.

Begonnen wird mit einem auf hoher Stufe befindlichen Überblick über einen exemplarischen Workflow durch die Konfiguration, die in 1A und 1B dargestellt ist. Die Clientvorrichtung 102 ist eine Desktop-, Laptop- oder Mobilvorrichtung, so beispielsweise ein Tablet oder Smartphone. Die Videobearbeitungsanwendung 105 stellt eine oder mehrere Nutzerschnittstellen bereit. Bei einigen Ausführungsformen greift ein Nutzer auf ein Video durch die Videobearbeitungsanwendung 105 zu und/oder nutzt die Videobearbeitungsanwendung 105 auf andere Weise dafür, denjenigen Ort zu identifizieren, an dem ein Video gespeichert ist (sei es nun lokal auf der Clientvorrichtung 102, an einem entfernten Ort, so beispielsweise in dem Speicher 190, oder anderswo). Zusätzlich oder alternativ zeichnet ein Nutzer ein Video unter Nutzung von Videoaufzeichnungskapazitäten der Clientvorrichtung 102 (oder irgendeiner anderen Vorrichtung) und/oder irgendeiner Anwendung, die wenigstens teilweise auf der Vorrichtung ausgeführt wird (beispielsweise ADOBE BEHANCE), auf. In einigen Fällen nimmt die Videobearbeitungsanwendung 105 ein Hochladen des Videos (beispielsweise in einen zugänglichen Speicher 190 für Videodateien 192) vor oder kommuniziert den Ort des Videos auf andere Weise an den Server 150, wobei das Videosegmentierungswerkzeug 155 das Video empfängt oder darauf zugreift und eine oder mehrere Eingliederungsfunktionen an dem Video durchführt.Starting with a high-level overview of an example workflow through the configuration included in 1A and 1B is shown. Client device 102 is a desktop, laptop, or mobile device, such as a tablet or smartphone. The video editing application 105 provides one or more user interfaces. In some embodiments, a user accesses a video through video editing application 105 and/or otherwise uses video editing application 105 to identify the location where a video is stored (whether locally on client device 102, at a remote location, such as in memory 190, or elsewhere). Additionally or alternatively, a user records video using video recording capabilities of the client device 102 (or any other device) and/or any application running at least in part on the device (e.g., ADOBE BEHANCE). In some cases, the video editing application 105 uploads the video (e.g., to an accessible storage 190 for video files 192) or otherwise communicates the location of the video to the server 150, where the video segmentation tool 155 receives or accesses the video and one or performs multiple onboarding functions on the video.

Bei einigen Ausführungsformen extrahiert das Videosegmentierungswerkzeug 155 verschiedene Merkmale aus dem Video (beispielsweise ein Transkript, linguistische Merkmale, Sprecher, Gesichter, Audioklassifizierungen, visuell ähnliche Szenen, visuelle Artefakte, Objekte oder Handlungen von Videos, Audioereignisse, Softwareprotokollereignisse) und generiert und speichert eine Darstellung der detektierten Merkmale, der entsprechenden Merkmalsbereiche, in denen die detektierten Merkmale vorhanden sind, und/oder der entsprechenden Zuverlässigkeitsstufen (beispielsweise detektierte Merkmale 194). Bei einer exemplarischen Implementierung generiert und speichert das Videosegmentierungswerkzeug 155 auf Grundlage der detektierten Merkmale eine Darstellung einer oder mehrerer Segmentierungen des Videos (beispielsweise eine Videosegmentierung / Videosegmentierungen 196), so beispielsweise eine Standardsegmentierung, eine Suchsegmentierung auf Grundlage einer Nutzeranfrage, eine Einrastpunktsegmentierung und/oder eine Vorschaubildsegmentierung. In einigen Fällen werden eine oder mehrere der Segmentierungen auf verschiedenen Stufen der Granularität (beispielsweise entsprechend verschiedenen Zoomstufen) generiert. Bei einigen Ausführungsformen werden einige Segmentierungen bei der Eingliederung (ingestion) generiert. In einigen Fällen werden einige oder alle Segmentierungen zu einem anderen Zeitpunkt (beispielsweise auf Anfrage) generiert. Als solches greifen das Videosegmentierungswerkzeug 155 und/oder die Videobearbeitungsanwendung 105 auf ein Video (beispielsweise eine der Videodateien 192) zu und generieren und speichern eine Darstellung einer Segmentierung oder mehrerer Segmentierungen des Videos (beispielsweise der Videosegmentierung / Videosegmentierungen 196), von konstituierenden semantisch sinnvollen Videosegmenten der Videosegmentierung / Videosegmentierungen (beispielsweise der Videodateien 192) und/oder irgendeine Darstellung hiervon an einem beliebigen geeigneten Speicherort, so beispielsweise in dem Speicher 190, auf der Clientvorrichtung 102, auf dem Server 150, auf einer Kombination hieraus und/oder an anderen Orten.In some embodiments, the video segmentation tool 155 extracts various features from the video (e.g., a transcript, linguistic features, speakers, faces, audio classifications, visually similar scenes, visual artifacts, objects or actions from videos, audio events, software log events) and generates and stores a representation of the detected features, the corresponding feature regions in which the detected features are present, and/or the corresponding confidence levels (e.g., detected features 194). In an exemplary implementation, the video segmentation tool 155 generates and stores, based on the detected features, a representation of one or more segmentations of the video (e.g., a video segmentation(s) 196), such as a default segmentation, a search segmentation based on a user query, a snap-point segmentation, and/or a Thumbnail segmentation. In some cases, one or more of the segmentations are set to different which generates levels of granularity (e.g. corresponding to different zoom levels). In some embodiments, some segmentation is generated at ingestion. In some cases, some or all of the segmentation is generated at a different time (for example, upon request). As such, the video segmentation tool 155 and/or video editing application 105 accesses a video (e.g., one of the video files 192) and generates and stores a representation of one or more segmentations of the video (e.g., the video segmentation(s) 196), of constituent semantically meaningful video segments the video segmentation(s) (e.g., video files 192) and/or any representation thereof in any suitable storage location, such as in memory 190, on client device 102, on server 150, on a combination thereof, and/or other locations.

Bei einer exemplarischen Ausführungsform stellt die Videobearbeitungsanwendung 105 (beispielsweise die Videointeraktionsengine 108) eine oder mehrere Nutzerschnittstellen mit einem oder mehreren Interaktionselementen bereit, die ermöglichen, dass ein Nutzer mit dem eingegliederten Video und insbesondere mit einer Videosegmentierung oder mehreren Videosegmentierungen 196 (beispielsweise mit semantisch sinnvollen Videosegmenten, Einrastpunkten, Vorschaubildorten) und/oder den detektierten Merkmalen 194 interagiert. 1 B zeigt eine exemplarische Implementierung der Videointeraktionsengine 108, die ein Videodurchlaufwerkzeug 110 und ein Videobearbeitungswerkzeug 130 umfasst.In an exemplary embodiment, the video editing application 105 (e.g., the video interaction engine 108) provides one or more user interfaces with one or more interaction elements that enable a user to interact with the embedded video, and more specifically with one or more video segmentations 196 (e.g., with semantically meaningful video segments , snap points, thumbnail locations) and/or the detected features 194 interacts. 1 B 10 shows an exemplary implementation of the video interaction engine 108 that includes a video walkthrough tool 110 and a video editing tool 130. FIG.

Bei einer exemplarischen Implementierung stellt das Videodurchlaufwerkzeug 110 eine Sucherschnittstelle bereit, die eine Standardsegmentierung mit interaktiven Kacheln 112 präsentiert, die die Videosegmente in der Standardsegmentierung und die detektierten Merkmale 194 in jedem Videosegment darstellen. Bei einer exemplarischen Implementierung mit einer Suche beinhaltet das Videodurchlaufwerkzeug 110 ein Suchneusegmentierungswerkzeug 118, das eine Anfrage (beispielsweise ein Schlüsselwort und/oder eine Facette) annimmt, eine Suchsegmentierung (die beispielsweise von der Suchsegmentierungskomponente 170 von 1A generiert wird), die die Standardsegmentierung auf Grundlage der Anfrage neusegmentiert, generiert oder auf andere Weise auslöst sowie die interaktiven Kacheln 112 aktualisiert, um die Suchsegmentierung darzustellen. Das Videodurchlaufwerkzeug 110 stellt ein für ausgewählte Clips gedachtes Feld 114 bereit, in dem Nutzer Videosegmente zu einer Auswahl hinzufügen können.In an exemplary implementation, the video walkthrough tool 110 provides a viewfinder interface that presents a standard segmentation with interactive tiles 112 that represent the video segments in the standard segmentation and the detected features 194 in each video segment. In an exemplary implementation with a search, the video walkthrough tool 110 includes a search re-segmentation tool 118 that accepts a query (e.g., a keyword and/or facet), a search segmentation (e.g., generated by the search segmentation component 170 of FIG 1A generated) that resegments, generates, or otherwise triggers the default segmentation based on the query, and updates the interactive tiles 112 to reflect the search segmentation. The video walkthrough tool 110 provides a selected clips pane 114 where users can add video segments to a selection.

Das Videobearbeitungswerkzeug 130 stellt eine Bearbeiterschnittstelle mit einem für einen zusammengesetzten Clipzeitstrahl gedachten Werkzeug 132 bereit, das einen zusammengesetzten Videozeitstrahl präsentiert, der ein zusammengesetztes Video darstellt, das von den in der Sucherschnittstelle ausgewählten Videosegmenten gebildet wird. Bei einigen Ausführungsformen detektiert ein Marquee-Auswahl- und Einrastwerkzeug 106 einen Ziehvorgang entlang des zusammengesetzten Zeitstrahles und rastet Auswahlgrenzen an Einrastpunkten ein, die durch die Einrastpunktsegmentierung und/oder eine aktuelle Zoomstufe definiert sind. In einigen Fällen beinhaltet das für den zusammengesetzten Clipzeitstrahl gedachte Werkzeug 132 ein Merkmalsvisualisierungswerkzeug 134, das eine Visualisierung von detektierten Merkmalen 194 und entsprechenden Merkmalsbereichen präsentiert, um das Trimmen zu unterstützen. Zusätzlich oder alternativ stellt das Vorschaubildvorschauwerkzeug 138 ein oder mehrere Vorschaubilder dar, die ein repräsentatives Videoeinzelbild auf dem zusammengesetzten Zeitstrahl an Orten zeigen, die durch die Vorschaubildsegmentierung und/oder eine aktuelle Zoomstufe identifiziert werden. Als solches ermöglicht das Videobearbeitungswerkzeug 130, dass Nutzer durch ein Video navigieren und semantisch sinnvolle Videosegmente auswählen.The video editing tool 130 provides an editor interface with a composite clip timeline tool 132 presenting a composite video timeline representing composite video made up of the video segments selected in the viewfinder interface. In some embodiments, a marquee selection and snapping tool 106 detects a drag along the composite timeline and snaps selection boundaries to snap points defined by the snap point segmentation and/or a current zoom level. In some cases, the tool 132 intended for the composite clip timeline includes a feature visualization tool 134 that presents a visualization of detected features 194 and corresponding feature regions to aid in trimming. Additionally or alternatively, the thumbnail preview tool 138 displays one or more thumbnails showing a representative video frame on the composite timeline at locations identified by the thumbnail segmentation and/or a current zoom level. As such, the video editing tool 130 allows users to navigate through a video and select semantically meaningful video segments.

Abhängig von der Implementierung führen das Videobearbeitungswerkzeug 130 und/oder die Videointeraktionsengine 108 eine beliebige Anzahl und Vielfalt von Vorgängen an ausgewählten Videosegmenten durch. Bei einem nicht beschränkenden Beispiel werden ausgewählte Videosegmente abgespielt, gelöscht, auf andere Weise (beispielsweise durch Neuanordnen, Beschneiden bzw. Cropping, Anwenden von Übergängen oder Effekten, Farbanpassen, Hinzufügen von Überschriften oder Graphiken) bearbeitet, exportiert und/oder durch andere Vorgänge verändert. Bei verschiedenen Ausführungsformen stellt die Videointeraktionsengine 108 daher eine Schnittstellenfunktionalität bereit, die ermöglicht, dass ein Nutzer ein Video auf Grundlage von Interaktionen mit semantisch sinnvollen Videosegmenten und detektierten Merkmalen hiervon auswählt, durch dieses navigiert, es abspielt und/oder bearbeitet.Depending on the implementation, the video editing tool 130 and/or the video interaction engine 108 perform any number and variety of operations on selected video segments. As a non-limiting example, selected video segments are played, deleted, otherwise edited (e.g., reordering, cropping, applying transitions or effects, adjusting color, adding captions or graphics), exported, and/or modified by other operations. Therefore, in various embodiments, the video interaction engine 108 provides interface functionality that allows a user to select, navigate, play, and/or edit a video based on interactions with semantically meaningful video segments and detected features thereof.

Exemplarische VideosegmentierungstechnikenExemplary video segmentation techniques

Wie in 1A gezeigt ist, generiert das Videosegmentierungswerkzeug 155 bei einigen Ausführungsformen eine Darstellung einer oder mehrerer Segmentierungen eines Videos. Allgemein werden eine oder mehrere Segmentierungen zu einem beliebigen geeigneten Zeitpunkt generiert, so beispielsweise beim Eingliedern (ingesting) oder anfänglichen Verarbeiten eines Videos (beispielsweise bei einer Standardsegmentierung), beim Empfangen einer Anfrage (beispielsweise bei einer Suchsegmentierung), beim Anzeigen eines Videozeitstrahles, beim Aktivieren einer Nutzerschnittstelle und/oder zu einem beliebigen anderen Zeitpunkt.As in 1A As shown, in some embodiments, the video segmentation tool 155 generates a representation of one or more segmentations of a video. Generally, one or more segmentations are generated at any suitable time, such as at ingesting or initially processing a video (e.g., in standard segmentation), upon receiving a request (e.g., in search segmentation), displaying a video timeline, activating a user interface, and/or at any other time.

Bei dem in 1A dargestellten Beispiel gliedert das Videoeingliederungswerkzeug 160 ein Video (beispielsweise eine Videodatei, einen Abschnitt einer Videodatei, ein Video, das von einer Projektdatei dargestellt oder auf andere Weise identifiziert wird) ein. Bei einigen Ausführungsformen umfasst das Eingliedern eines Videos ein Extrahieren eines oder mehrerer Merkmale aus dem Video und/oder ein Generieren einer oder mehrerer Segmentierungen des Videos, um entsprechende semantisch sinnvolle Videosegmente und/oder Segmentgrenzen zu identifizieren. Bei der in 1A dargestellten Implementierung beinhaltet das Videoeingliederungswerkzeug 160 eine Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 und eine Standardsegmentierungskomponente 164. Bei dieser Implementierung detektiert/detektieren die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten ein oder mehrere Merkmale aus dem Video, und die Standardsegmentierungskomponente 164 löst eine Videosegmentierungskomponente 180 aus, um eine Standardvideosegmentierung während der Videoeingliederung zu generieren.At the in 1A In the example shown, the video incorporation tool 160 incorporates a video (e.g., a video file, a portion of a video file, a video represented or otherwise identified by a project file). In some embodiments, incorporating a video includes extracting one or more features from the video and/or generating one or more segmentations of the video to identify corresponding semantically meaningful video segments and/or segment boundaries. At the in 1A In the illustrated implementation, the video incorporation tool 160 includes a feature extraction component/components 162 and a standard segmentation component 164. In this implementation, the feature extraction component/components detect/detect one or more features from the video, and the standard segmentation component 164 triggers a video segmentation component 180 to perform standard video segmentation during video incorporation to generate.

Auf einer hohen Stufe betrachtet, nimmt das Videoeingliederungswerkzeug 160 (beispielsweise die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162) ein Detektieren, Extrahieren oder auf andere Weise erfolgendes Bestimmen von verschiedenen Merkmalen (beispielsweise ein Transkript, linguistische Merkmale, Sprecher, Gesichter, Audioklassifizierungen, visuell ähnliche Szenen, visuelle Artefakte, Objekte oder Handlungen von Videos, Audioereignisse, Softwareprotokollereignisse) aus einem Video vor, und zwar beispielsweise unter Nutzung eines oder mehrerer maschinell lernender Modelle, einer Verarbeitung natürlicher Sprache, einer Digitalsignalverarbeitung und/oder anderer Techniken. Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein oder mehrere maschinell lernende Modelle für jede von mehreren Kategorien von Merkmal zur Detektion. Als solches extrahieren, generieren und/oder speichern das Videoeingliederungswerkzeug 160 und/oder die entsprechende Merkmalsextraktionskomponente / entsprechenden Merkmalsextraktionskomponenten 162 eine Darstellung von detektierten Merkmalen (beispielsweise Facetten) in jeder Kategorie, von entsprechenden Merkmalsbereichen, in denen die detektierten Merkmale vorhanden sind, und/oder von entsprechenden Zuverlässigkeitsstufen.Considered at a high level, the video incorporation tool 160 (e.g., the feature extraction component(s) 162) involves detecting, extracting, or otherwise determining various features (e.g., a transcript, linguistic features, speakers, faces, audio classifications, visually similar scenes, visual video artifacts, objects or actions, audio events, software log events) from a video using, for example, one or more machine learning models, natural language processing, digital signal processing, and/or other techniques. In some embodiments, feature extraction component(s) 162 includes one or more machine learning models for each of multiple categories of feature for detection. As such, the video incorporation tool 160 and/or the corresponding feature extraction component(s) 162 extract, generate and/or store a representation of detected features (e.g., facets) in each category, corresponding feature regions where the detected features are present, and/or of appropriate levels of reliability.

Bei einigen Ausführungsformen verfügen eine oder mehrere Merkmalskategorien (beispielsweise Sprecher, Gesichter, Audioklassifizierungen, visuell ähnliche Szenen und dergleichen) über ihre eigene Merkmalsspur, die die Instanzen von detektierten Merkmalen (beispielsweise Facetten, so beispielsweise eindeutige Gesichter oder Sprecher) in einer Merkmalskategorie darstellt. Bei einem nicht beschränkenden Beispiel beinhaltet die Darstellung von detektierten Merkmalen (beispielsweise der detektierten Merkmale 194) für jede Merkmalskategorie eine Liste, eine Feldanordnung bzw. ein Array oder eine andere Darstellung einer jeden Instanz einer detektierten Facette (beispielsweise eines jeden eindeutigen Gesichtes) in der Merkmalskategorie (beispielsweise detektierte Gesichter). Dargestellt wird jede Instanz einer detektierten Facette bei einer exemplarischen Implementierung mit einem Merkmalsbereich, in dem die Instanz detektiert wird (beispielsweise Start- und Stopp-Zeitstempel pro Instanz), mit einem eindeutigen Wert, der die Facette, zu der die Instanz gehört, identifiziert (beispielsweise mit einem eindeutigen Wert für jedes eindeutige Gesicht, jeden eindeutigen Sprecher, jede eindeutige visuelle Szene und dergleichen), mit einer entsprechenden Zuverlässigkeitsstufe, die die Zuverlässigkeit oder Wahrscheinlichkeit der Vorhersage quantifiziert, und/oder mit einer Darstellung anderer Eigenschaften.In some embodiments, one or more feature categories (e.g., speakers, faces, audio classifications, visually similar scenes, and the like) have their own feature track that represents the instances of detected features (e.g., facets, such as unique faces or speakers) in a feature category. By way of non-limiting example, the representation of detected features (e.g., detected features 194) for each feature category includes a list, array, or other representation of each instance of a detected facet (e.g., each unique face) in the feature category (e.g. detected faces). In an example implementation, each instance of a detected facet is represented with a feature area in which the instance is detected (e.g., start and stop timestamps per instance) with a unique value identifying the facet to which the instance belongs ( e.g., with a unique value for each unique face, speaker, visual scene, and the like), with a corresponding confidence level that quantifies the reliability or likelihood of the prediction, and/or with a representation of other properties.

Bei einigen Ausführungsformen extrahiert/extrahieren die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein Transkript und/oder linguistische Merkmale aus einer Audiospur, die einem Video zugeordnet ist. Bei einer exemplarischen Implementierung wird ein beliebiger bekannter Sprache-zu-Text-Algorithmus auf die Audiospur angewendet, um ein Sprachtranskript zu generieren, Sprachsegmente (beispielsweise entsprechend Wörtern, Sätzen, Äußerungen in kontinuierlicher Sprache, die durch Audiolücken getrennt sind, und dergleichen) zu detektieren, Nichtsprachsegmente (beispielsweise Pausen, Stille oder Ton ohne Sprache) zu detektieren und/oder dergleichen. Bei einigen Ausführungsformen wird eine Sprachaktivitätsdetektion (beispielsweise auf die Audiospur, auf detektierte Nichtsprachsegmente) angewendet, um Segmente der Audiospur mit menschlichen Tönen, die keine Worte sind (beispielsweise Lachen, hörbares Räuspern und dergleichen), zu detektieren und/oder zu kategorisieren. In einigen Fällen werden das Transkript und/oder die detektierten Transkriptsegmente dem Videozeitstrahl zugeordnet, und es werden Transkriptsegmente entsprechenden Zeitbereichen zugeordnet. Bei einigen Ausführungsformen wird eine beliebige bekannte topische bzw. themenbezogene Segmentierungstechnik (semantische Analyse, Verarbeitung natürlicher Sprache, Anwendung eines Sprachmodells) benutzt, um Abschnitte des Videos, von denen wahrscheinlich ist, dass sie ähnliche Themen enthalten, auszusieben oder auf andere Weise zu identifizieren, wobei detektierte Sprachsegmente einem Kennwert zugeordnet werden, der darstellt, wie wahrscheinlich es ist, dass das Sprachsegment das Ende eines topischen bzw. themenbezogenen Segmentes ist.In some embodiments, feature extraction component(s) 162 extracts a transcript and/or linguistic features from an audio track associated with video. In an exemplary implementation, any known speech-to-text algorithm is applied to the audio track to generate a speech transcript, detect segments of speech (e.g., corresponding to words, phrases, utterances in continuous speech separated by audio gaps, and the like). to detect non-speech segments (e.g., pauses, silence, or sound without speech), and/or the like. In some embodiments, voice activity detection (e.g., on the audio track, on detected non-speech segments) is applied to detect and/or categorize segments of the audio track with human sounds other than words (e.g., laughter, audible throat clearing, and the like). In some cases, the transcript and/or detected transcript segments are associated with the video timeline, and transcript segments are associated with corresponding time ranges. In some embodiments, any known topical segmentation technique (semantic analysis, Natural language processing, application of a language model) is used to screen out or otherwise identify portions of the video that are likely to contain similar themes, assigning detected speech segments to a score representing how likely it is that the language segment is the end of a topical or topic-related segment.

Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten ein oder mehrere maschinell lernende Modelle, die eindeutige Sprecher aus einer Audiospur, die einem Video zugeordnet ist, detektieren. Bei einer exemplarischen Implementierung wird eine beliebige bekannte Spracherkennung, Sprecheridentifizierung oder Sprecherdiarisierungstechnik angewendet, um eindeutige Sprachabdrücke (beispielsweise innerhalb eines einzigen Videos, über eine Sammlung von Videos hinweg) zu detektieren und Abschnitte der Audiospur / Audiospuren auf Grundlage der Sprecheridentität auszusieben oder auf andere Weise zu identifizieren. Exemplarische Techniken, die bei der Spracherkennung, Sprecheridentifizierung oder Sprecherdiarisierung benutzt werden, nutzen die Frequenzschätzung, den Musterabgleich, die Vektorquantifizierung, Entscheidungsbäume, verborgene Markow-Modelle, Gauß‘sche Mischmodelle, neuronale Netzwerke und/oder andere Techniken. Bei einigen Ausführungsformen wendet/wenden die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 eine Sprecherdiarisierungstechnik an, wie sie beispielsweise beschrieben ist bei: „Active Speakers in Context“ von Juan Leon Alcazar, Fabian Caba, Long Mai, Federico Perazzi, Joon-Young Lee, Pablo Arbelaez, Bernard Ghanem; veröffentlicht bei Proceedings of the IEEE/CVF, Conference on Computer Vision and Pattern Recognition (CVPR), 2020, Seiten 12465 bis 12474. Zusätzlich oder alternativ zur Nutzung von Audiosignaturen zur Detektion von Sprechern werden bei einigen Ausführungsformen ein oder mehrere maschinell lernende Modelle benutzt, um zu bestimmen, welches detektierte Gesicht gerade spricht, indem die Mundbewegung an detektierten Gesichtern detektiert wird. Zugeordnet wird jede Instanz eines detektierten Sprechers in einem Video bei einer exemplarischen Implementierung einem entsprechenden Zeitbereich des Videos, in dem der Sprecher detektiert worden ist, einer entsprechenden Zuverlässigkeitsstufe, die die Zuverlässigkeit oder Wahrscheinlichkeit der Vorhersage quantifiziert, und/oder einem Vorschaubild des detektierten Gesichtes des detektierten Sprechers. Zusätzlich oder alternativ werden detektierte Sprachsegmente (beispielsweise Worte, Wendungen, Sätze) und/oder andere Transkriptmerkmale einer Darstellung eines entsprechenden detektierten Sprechers zugeordnet, um ein diarisiertes Transkript zu generieren.In some embodiments, the feature extraction component(s) includes one or more machine learning models that detect unique speakers from an audio track associated with a video. In an exemplary implementation, any known speech recognition, speaker identification, or speaker diarization technique is applied to detect unique speech footprints (e.g., within a single video, across a collection of videos) and to screen out or otherwise assign portions of the audio track/audio tracks based on speaker identity identify. Exemplary techniques used in speech recognition, speaker identification, or speaker diarization utilize frequency estimation, pattern matching, vector quantification, decision trees, hidden Markov models, Gaussian mixture models, neural networks, and/or other techniques. In some embodiments, the feature extraction component(s) 162 apply a speaker diarization technique such as described in: "Active Speakers in Context" by Juan Leon Alcazar, Fabian Caba, Long Mai, Federico Perazzi, Joon-Young Lee, Pablo Arbelaez, Bernard Ganem; published at Proceedings of the IEEE/CVF, Conference on Computer Vision and Pattern Recognition (CVPR), 2020, pages 12465 to 12474. In addition or as an alternative to using audio signatures to detect speakers, one or more machine learning models are used in some embodiments, to determine which detected face is speaking by detecting mouth movement on detected faces. In an exemplary implementation, each instance of a detected speaker in a video is associated with a corresponding time range of the video in which the speaker was detected, a corresponding confidence level that quantifies the reliability or likelihood of the prediction, and/or a thumbnail of the detected face of the detected speaker. Additionally or alternatively, detected speech segments (e.g., words, phrases, sentences) and/or other transcript features are associated with a representation of a corresponding detected speaker to generate a diarized transcript.

Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein oder mehrere maschinell lernende Modelle, die eindeutige Gesichter aus Videoeinzelbildern eines Videos detektieren. Bei einer exemplarischen Implementierung wird eine beliebige bekannte Gesichtsdetektionstechnik (beispielsweise RetinaFace) angewendet, um eindeutige Gesichter in jedem Videoeinzelbild und/oder über die Zeit hinweg zu detektieren. Verarbeitet wird jedes Videoeinzelbild beispielsweise durch Segmentieren eines jeden Gesichtes vom Hintergrund (beispielsweise unter Nutzung eines oder mehrerer neuronaler Netzwerke), Ausrichten eines jeden Gesichtes, Detektieren von Orten von Gesichtsorientierungsstellen (beispielsweise Augen, Nase, Mund) und Generieren einer (beispielsweise vektoriellen) Darstellung der detektierten Gesichtsorientierungsstellen. Bei einigen Ausführungsformen werden detektierte Gesichter aus verschiedenen Einzelbildern (beispielsweise innerhalb eines einzelnen Videos, über eine Sammlung von Videos hinweg), die ähnliche Darstellungen aufweisen (die beispielsweise um einen Abstand innerhalb einer Schwelle getrennt sind, auf Grundlage eines oder mehrerer Clusterungsalgorithmen geclustert sind), als zur selben Identität gehörig bestimmt. Zugeordnet wird jede Instanz eines detektierten Gesichtes bei einer exemplarischen Implementierung einem entsprechenden Zeitbereich, der die Videoeinzelbilder überspannt, in denen das Gesicht detektiert worden ist, und/oder einer entsprechenden Zuverlässigkeitsstufe, die die Zuverlässigkeit oder Wahrscheinlichkeit der Vorhersage quantifiziert.In some embodiments, feature extraction component(s) 162 includes one or more machine learning models that detect unique faces from video frames of a video. In an exemplary implementation, any known face detection technique (e.g., RetinaFace) is applied to detect unique faces in each video frame and/or over time. Each video frame is processed, for example, by segmenting each face from the background (e.g. using one or more neural networks), aligning each face, detecting locations of facial landmarks (e.g. eyes, nose, mouth) and generating a (e.g. vectorial) representation of the detected facial landmarks. In some embodiments, detected faces from different frames (e.g., within a single video, across a collection of videos) that have similar representations (e.g., separated by a distance within a threshold, are clustered based on one or more clustering algorithms) identified as belonging to the same identity. In an exemplary implementation, each instance of a detected face is associated with a corresponding time range spanning the video frames in which the face was detected and/or a corresponding confidence level that quantifies the reliability or likelihood of the prediction.

Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein oder mehrere maschinell lernende Modelle, die Audioklassifizierungen aus einer Audiospur, die einem Video zugeordnet ist, extrahieren. Es wird eine beliebige bekannte Tonerkennungstechnik angewendet, um eine beliebige Anzahl von Audioklassen (beispielsweise Musik, Sprache, anderes) zu detektieren. Bei einer exemplarischen Implementierung wird jedes Einzelbild von Audiodaten aus der Audiospur (beispielsweise unter Nutzung einer linearen prädiktiven Codierung) in eine Vektordarstellung codiert und durch ein oder mehrere neuronale Netzwerke klassifiziert. Bei einigen Ausführungsformen wird der Audiozeitstrahl in den detektierten Audioklassen (beispielsweise Musik, Sprache oder anderes) kategorisiert. Bei einer exemplarischen Implementierung werden aufeinanderfolgende Audioeinzelbilder mit derselben Klassifizierung zusammengruppiert und einem entsprechenden Zeitbereich, der die Audioeinzelbilder überspannt, und/oder einer entsprechenden (beispielsweise gemittelten) Zuverlässigkeitsstufe, die die Zuverlässigkeit oder Wahrscheinlichkeit der Vorhersage quantifiziert, zugeordnet.In some embodiments, feature extraction component(s) 162 includes one or more machine learning models that extract audio classifications from an audio track associated with video. Any known tone detection technique is used to detect any number of audio classes (e.g. music, speech, other). In an exemplary implementation, each frame of audio data from the audio track is encoded (e.g., using linear predictive coding) into a vector representation and classified by one or more neural networks. In some embodiments, the audio timeline is categorized into the detected audio classes (eg, music, speech, or other). In an exemplary implementation, consecutive audio frames with the same classification are grouped together and assigned a corresponding time range spanning the audio frames and/or a corresponding (e.g., averaged) confidence level that quantifies the reliability or likelihood of the prediction.

Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein oder mehrere maschinell lernende Modelle, die visuell ähnliche Szenen aus Videoeinzelbildern eines Videos detektieren. Bei einer exemplarischen Implementierung wird jedes Videoeinzelbild (beispielsweise von einem oder mehreren neuronalen Netzwerken) verarbeitet, um eine entsprechende (beispielsweise vektorielle) Darstellung von visuellen Merkmalen in dem Videoeinzelbild zu extrahieren, und es werden die Darstellungen der verschiedenen Videoeinzelbilder über die Zeit hinweg zu einer (beispielsweise festen oder variablen) Anzahl von visuellen Szenen unter Nutzung eines beliebigen geeigneten Clusterungsalgorithmus (beispielsweise einer k-Mittel-Clusterung) geclustert. Bei einigen Ausführungsformen wird jede visuelle Szene einem entsprechenden Zeitbereich, der die Videoeinzelbilder in der visuellen Szene überspannt, zugeordnet. In einigen Fällen wird jedem Szenenübergang eine Übergangszuverlässigkeit zugewiesen, indem beispielsweise eine Distanzmetrik berechnet wird, die die Darstellungen der visuellen Merkmale in den Videoeinzelbildern, die den Übergang umgeben, vergleicht.In some embodiments, feature extraction component(s) 162 includes one or more machine learning models that detect visually similar scenes from video frames of a video. In an exemplary implementation, each video frame is processed (e.g., by one or more neural networks) to extract a corresponding (e.g., vectorial) representation of visual features in the video frame, and the representations of the various video frames are combined over time into a ( e.g. fixed or variable) number of visual scenes using any suitable clustering algorithm (e.g. k-means clustering). In some embodiments, each visual scene is associated with a corresponding time range spanning the video frames in the visual scene. In some cases, each scene transition is assigned a transition reliability, for example by computing a distance metric that compares representations of the visual features in the video frames surrounding the transition.

Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein oder mehrere maschinell lernende Modelle, die visuelle Artefakte in den Videoeinzelbildern eines Videos detektieren. Es wird eine beliebige bekannte Technik der visuellen Detektion angewendet, um eine oder mehrere Klassen von visuellen Artefakten aus den Videoeinzelbildern zu identifizieren. Bei einer exemplarischen Implementierung detektieren ein oder mehrere Klassifikatoren eines neuronalen Netzwerkes eine entsprechende Klasse eines visuellen Artefaktes, so beispielsweise eine fehlerhafte Kamerabewegung über Videoeinzelbilder hinweg, eine Verdeckung der Kamera in einem gegebenen Videoeinzelbild, eine Unschärfe in einem gegebenen Videoeinzelbild, Kompressionsartefakte in einem gegebenen Videoeinzelbild, das Fehlen einer Bewegung (beispielsweise ein leeres Videoeinzelbild, keine visuellen Änderungen über Videoeinzelbilder hinweg) und/oder andere. Zugeordnet wird jede Instanz eines detektierten visuellen Artefaktes bei einigen Ausführungsformen einem entsprechenden Zeitbereich, der die Videoeinzelbilder überspannt, in denen der visuelle Artefakt detektiert worden ist, und/oder einer entsprechenden Zuverlässigkeitsstufe, die die Zuverlässigkeit oder Wahrscheinlichkeit der Vorhersage quantifiziert.In some embodiments, the feature extraction component(s) 162 includes one or more machine learning models that detect visual artifacts in the video frames of a video. Any known visual detection technique is used to identify one or more classes of visual artifacts from the video frames. In an exemplary implementation, one or more neural network classifiers detect a corresponding class of visual artifact, such as erroneous camera motion across video frames, camera occlusion in a given video frame, blurring in a given video frame, compression artifacts in a given video frame, the lack of motion (e.g., blank video frame, no visual changes across video frames) and/or others. In some embodiments, each instance of a detected visual artifact is associated with a corresponding time range spanning the video frames in which the visual artifact was detected and/or a corresponding confidence level that quantifies the reliability or likelihood of the prediction.

Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein oder mehrere maschinell lernende Modelle, die Objekte oder Handlungen aus Videoeinzelbildern eines Videos detektieren. Es wird eine beliebige bekannte Objekt- oder Handlungserkennungstechnik angewendet, um eine oder mehrere Klassen eines Objektes oder einer Handlung aus einem oder mehreren Videoeinzelbildern visuell zu extrahieren. Bei einer exemplarischen Implementierung detektieren ein oder mehrere Klassifikatoren eines neuronalen Netzwerkes das Vorhandensein einer beliebigen Anzahl von Objektklassen (beispielsweise Hunderte, Tausende und dergleichen) in jedem Videoeinzelbild. Zusätzlich oder alternativ detektieren ein oder mehrere Klassifikatoren eines neuronalen Netzwerkes das Vorhandensein einer beliebigen Anzahl von Handlungsklassen (beispielsweise eine auf einer niedrigen Stufe befindliche Bewegung, so beispielsweise Aufstehen, Hinsetzen, Herumgehen und Sprechen; auf einer höheren Stufe befindliche Ereignisse, so beispielsweise Einnehmen einer Mahlzeit, Spielen und Tanzen; und/oder andere) in Abfolgen von Videoeinzelbildern. Zugeordnet wird jede Instanz einer detektierten Objekt- oder Handlungsklasse bei einigen Ausführungsformen einem entsprechenden Zeitbereich, der die Videoeinzelbilder überspannt, in denen das Objekt oder die Handlung detektiert worden ist, einer entsprechenden Zuverlässigkeitsstufe, die die Zuverlässigkeit oder Wahrscheinlichkeit einer Vorhersage quantifiziert, und/oder einem oder mehreren suchbaren Schlüsselwörtern (beispielsweise Tags), die die Klasse darstellen.In some embodiments, the feature extraction component(s) 162 includes one or more machine learning models that detect objects or actions from video frames of a video. Any known object or action recognition technique is used to visually extract one or more classes of an object or action from one or more video frames. In an exemplary implementation, one or more neural network classifiers detect the presence of any number of object classes (e.g., hundreds, thousands, and the like) in each video frame. Additionally or alternatively, one or more neural network classifiers detect the presence of any number of action classes (e.g., low-level movement, such as standing up, sitting down, walking around, and talking; higher-level events, such as eating a meal , playing and dancing; and/or other) in sequences of video frames. In some embodiments, each instance of a detected object or action class is associated with a corresponding time range spanning the video frames in which the object or action was detected, a corresponding confidence level that quantifies the reliability or likelihood of a prediction, and/or a or multiple searchable keywords (such as tags) that represent the class.

Bei einigen Ausführungsformen beinhaltet/beinhalten die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 ein oder mehrere maschinell lernende Modelle, die Audioereignisse aus einer Audiospur, die einem Video zugeordnet ist, detektieren. Es wird eine beliebige bekannte Tonerkennungstechnik angewendet, um eine beliebige Anzahl von Audioereignisklassen (beispielsweise Alarm, Lachen, Klingeln, Beifall, Husten, Summen, Hupen, Bellen, Schießen, Sirene und dergleichen) zu detektieren. Bei einer exemplarischen Implementierung wird jedes Einzelbild von Audiodaten aus der Audiospur (beispielsweise unter Nutzung einer linearen prädiktiven Codierung) zu einer Vektordarstellung codiert und von einem oder mehreren neuronalen Netzwerken klassifiziert. Bei einer exemplarischen Implementierung werden aufeinanderfolgende Audioeinzelbilder mit derselben Klassifizierung zusammengruppiert und einem entsprechenden Zeitbereich, der die Audioeinzelbilder überspannt, einer entsprechenden Zuverlässigkeitsstufe, die die Zuverlässigkeit oder Wahrscheinlichkeit einer Vorhersage quantifiziert, und/oder einem oder mehreren suchbaren Schlüsselwörtern (beispielsweise Tags), die die Klasse darstellen, zugeordnet.In some embodiments, feature extraction component(s) 162 includes one or more machine learning models that detect audio events from an audio track associated with video. Any known sound detection technique is used to detect any number of audio event classes (e.g., alarm, laugh, ring, applause, cough, buzz, honk, bark, shoot, siren, and the like). In an exemplary implementation, each frame of audio data from the audio track is encoded (e.g., using linear predictive coding) into a vector representation and classified by one or more neural networks. In an exemplary implementation, consecutive audio frames are grouped together with the same classification and a corresponding time range spanning the audio frames, a corresponding confidence level that quantifies the reliability or likelihood of a prediction, and/or one or more searchable keywords (e.g., tags) identifying the class represent, assigned.

Bei einigen Ausführungsformen extrahiert/extrahieren die Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162 Protokollereignisse, die in einem oder mehreren zeitlichen Protokollen (temporal logs) dargestellt werden, so beispielsweise Softwarenutzungsprotokolle, die einem Video zugeordnet sind. Verschiedene Implementierungen implizieren verschiedene Typen von zeitlichen Protokollen und/oder Protokollereignissen. Bei einer Implementierung, die beispielsweise Screencapture- oder Screencast-Videos von Tutorials für Kreativsoftware wie ADOBE PHOTOSHOP oder ADOBE FRESCO impliziert, wird ein Softwarenutzungsprotokoll, das von der Kreativsoftware während des Screencapturings oder Screencastings generiert wird, gelesen, um die Zeitpunkte von detektierten Protokollereignissen, so beispielsweise von Werkzeugereignissen (beispielsweise der Nutzung eines bestimmten Softwarewerkzeuges, so beispielsweise das Auswählen eines Pinsels, das Erzeugen einer Schicht und dergleichen), zu identifizieren. Bei einer exemplarischen Gaming-Implementierung wird ein Softwarenutzungsprotokoll gelesen, um die Zeitpunkte von detektierten Softwareprotokollereignissen, so beispielsweise den Wechsel auf ein höheres Level oder das Besiegen eines Gegners, zu identifizieren. Obwohl die vorgenannten Beispiele zeitliche Protokolle mit Protokollereignissen, die aus Videoeinzelbildern hergeleitet sind, implizieren, muss dies nicht so sein. Bei einer Implementierung mit einem Live-Chat oder einem Chat-Stream, die einem live gestreamten Video zugeordnet sind, wird beispielsweise ein entsprechendes Nutzerchat-Protokoll oder eine solche Sitzung gelesen, um Zeitpunkte von Ereignissen, so beispielsweise von Chat-Nachrichten über ein bestimmtes Thema, zu identifizieren. Bei einer exemplarischen Videostreaming-Implementierung (sei es nun ein Livestreaming oder das Anschauen eines archivierten Videos) wird ein Nutzungsprotokoll, das darstellt, wie ein Nutzer / (mehrere) Nutzer das Video angeschaut hat/haben, gelesen, um die Zeitpunkte von detektierten Interaktionsereignissen, so beispielsweise von Navigationsereignissen (beispielsweise Abspielen, Unterbrechen, Überspringen), zu identifizieren. Allgemein kann ein beliebiger Typ von zeitlichem Protokoll und/oder Metadaten gelesen werden, um Protokollereignisse und entsprechende Zeitpunkte zu identifizieren. Zugeordnet wird jede Instanz eines extrahierten Protokollereignisses bei einer exemplarischen Implementierung einem entsprechenden Zeitbereich, der den Abschnitt des Videos überspannt, in dem das Protokollereignis aufgetreten ist, und/oder einem oder mehreren suchbaren Schlüsselwörtern (beispielsweise Tags), die das Protokollereignis (beispielsweise für Werkzeugereignisse, für einen Namen oder eine Handlung eines Softwarewerkzeuges) darstellen.In some embodiments, feature extraction component(s) 162 extracts log events represented in one or more temporal logs, such as software usage logs associated with a video are net. Different implementations imply different types of time logs and/or log events. For example, in an implementation involving screencapture or screencast videos of tutorials for creative software such as ADOBE PHOTOSHOP or ADOBE FRESCO, a software usage log generated by the creative software during screencapturing or screencasting is read to summarize the timing of detected log events, such e.g., tool events (e.g., use of a particular tool, such as selecting a brush, creating a layer, and the like). In an example gaming implementation, a software usage log is read to identify the timing of detected software log events, such as leveling up or defeating an opponent. Although the above examples imply temporal logs with log events derived from video frames, this need not be the case. For example, in an implementation with a live chat or chat stream associated with a live streamed video, a corresponding user chat log or session is read to determine timing of events, such as chat messages about a particular topic , to identify. In an exemplary video streaming implementation (be it live streaming or watching an archived video), a usage log representing how a user/user(s) viewed the video is read to determine the times of detected interaction events, such as navigation events (e.g. play, pause, skip). In general, any type of temporal log and/or metadata can be read to identify log events and corresponding times. In an exemplary implementation, each instance of an extracted log event is associated with a corresponding time range spanning the portion of video in which the log event occurred and/or one or more searchable keywords (e.g., tags) identifying the log event (e.g., for tool events, for a name or action of a software tool).

Bei der in 1A dargestellten Implementierung führt die Videosegmentierungskomponente 180 eine Segmentierungsroutine aus, die verschiedene Eingabeparameter annimmt, so beispielsweise eine Identifizierung von designierten Merkmalsspuren (beispielsweise vorbestimmt, nutzerseitig ausgewählt und/oder anderes), Nutzeranfragen (beispielsweise Schlüsselwörter und/oder ausgewählte Facetten), minimale oder maximale Solllänge eines Videosegmentes (die in einigen Fällen von der Zoomstufe abhängt), Bereich eines Videos zur Segmentierung und/oder andere. Die Videosegmentierungskomponente 180 nutzt die Eingabeparameter zum Aufbauen eines Graphen mit Knoten, die Kandidatenschneidepunkte darstellen, Kanten, die Kandidatensegmente darstellen, und Kantengewichtungen, die Schneidekosten darstellen, und die Videosegmentierungskomponente 180 berechnet eine Videosegmentierung, indem sie ein Problem des kürzesten Weges löst, um denjenigen Weg (Segmentierung) zu finden, der die Summe der Kantengewichtungen (Schneidekosten) minimiert.At the in 1A In the illustrated implementation, video segmentation component 180 executes a segmentation routine that accepts various input parameters, such as identification of designated feature tracks (e.g., predetermined, user selected, and/or other), user requests (e.g., keywords and/or selected facets), minimum or maximum target length of a video segment (which in some cases depends on the zoom level), area of a video to segment and/or others. The video segmentation component 180 uses the input parameters to build a graph with nodes representing candidate intersection points, edges representing candidate segments, and edge weights representing intersection costs, and the video segmentation component 180 computes a video segmentation by solving a shortest path problem to get that path (segmentation) that minimizes the sum of the edge weights (slicing costs).

Bei einigen Ausführungsformen hängen ein oder mehrere Aspekte der Segmentierungsroutine vom Typ der Segmentierung (beispielsweise Standard, Suche, Einrastpunkt, Vorschaubild) ab. In Abhängigkeit vom Typ der Segmentierung werden beispielsweise Kandidatenschneidepunkte, wie nachstehend noch detaillierter beschrieben wird, verschieden bzw. anders bestimmt, werden verschiedene Kanten benutzt, werden verschiedene Schneidekosten für Kantengewichtungen benutzt, werden verschiedene minimale oder maximale Videosegmentsolllängen benutzt, beeinflusst die Zoomstufe die minimalen oder maximalen Videosegmentsolllängen (oder auch nicht), beeinflusst eine Nutzeranfrage die Segmentierung (oder auch nicht), und/oder sind auch andere Abhängigkeiten möglich. Entsprechend lösen bei einigen Ausführungsformen die Standardsegmentierungskomponente 164, die Suchsegmentierungskomponente 170, die Einrastpunktsegmentierungskomponente 172 und/oder die Vorschaubildsegmentierungskomponente 174 aus, dass die Videosegmentierungskomponente 180 eine entsprechende Videosegmentierung unter Nutzung von entsprechenden Kandidatenschneidepunkten, Kanten, Kantengewichtungen, einer minimalen oder maximalen Videosegmentsolllänge, einer Anfrageanwendbarkeit und/oder anderen Aspekten generiert. Zusätzlich oder alternativ werden getrennte Segmentierungsroutinen ausgeführt. Bei einer exemplarischen Implementierung wird eine Standardsegmentierung bei der Eingliederung (ingestion) bestimmt. Bei einer anderen exemplarischen Implementierung werden Such-, Einrastpunkt- und/oder Vorschaubildsegmentierungen auf Anfrage bestimmt (beispielsweise beim Empfangen einer Anfrage, beim Laden einer Bearbeiterschnittstelle, beim Zoomen in einen Videozeitstrahl). Dies sind jedoch lediglich Beispiele, und es bestimmen auch andere Implementierungen den Typ der Segmentierung zu einem beliebigen geeigneten Zeitpunkt.In some embodiments, one or more aspects of the segmentation routine depend on the type of segmentation (e.g., standard, search, snap point, thumbnail). Depending on the type of segmentation, for example, candidate cut points are determined differently, as will be described in more detail below, different edges are used, different cutting costs are used for edge weights, different minimum or maximum video segment target lengths are used, the zoom level affects the minimum or maximum Video segment target lengths (or not), does a user request affect the segmentation (or not), and/or other dependencies are also possible. Accordingly, in some embodiments, the default segmentation component 164, the search segmentation component 170, the snap point segmentation component 172, and/or the preview image segmentation component 174 trigger the video segmentation component 180 to perform a corresponding video segmentation using corresponding candidate cut points, edges, edge weights, a minimum or maximum video segment target length, a query applicability, and /or other aspects generated. Additionally or alternatively, separate segmentation routines are executed. In an exemplary implementation, a default segmentation is determined at ingestion. In another example implementation, search, snappoint, and/or thumbnail segmentations are determined upon request (e.g., upon receiving a request, loading an agent interface, zooming into a video timeline). However, these are only examples, and other implementations determine the type of segmentation at any appropriate time.

Ausgegeben wird bei einer exemplarischen Ausführungsform von der Videosegmentierungskomponente 180 eine Darstellung eines vollständigen Satzes (der also den gesamten und/oder designierten Bereich des Videos abdeckt) von disjunkten (das heißt nicht überlappenden) Videosegmenten und/oder von Zeitstempeln oder irgendeine andere Darstellung der Videosegmentgrenzen (beispielsweise Schneidepunkte). Bei einigen Implementierungen, die eine Suchsegmentierung bestimmen, umfasst die Ausgabe zusätzlich oder alternativ eine Darstellung dessen, ob jedes Videosegment in einer Suchsegmentierung ein Treffer für eine bestimmte Anfrage ist (beispielsweise dahingehend, ob Videosegmente in Bezug auf die Anfrage „ein“ oder „aus“ sind, eine Darstellung dessen, welches Merkmal / welche Merkmale und/oder welcher Wert / welche Werte von passenden Segmenten zu der Anfrage gepasst haben, und/oder eine Darstellung dessen, zu welchem Zeitpunkt / welchen Zeitpunkten innerhalb eines jeden passenden Segmentes die Anfrage gepasst hat.In an exemplary embodiment, the video segmentation component 180 outputs a representation of a complete set (that is, the entire and/or designated area of video) of disjoint (i.e. non-overlapping) video segments and/or timestamps, or any other representation of video segment boundaries (e.g. edit points). In some implementations that determine search segmentation, the output additionally or alternatively includes a representation of whether each video segment in a search segmentation is a match for a particular query (e.g., whether video segments are "on" or "off" with respect to the query. are, a representation of which feature(s) and/or which value(s) of matching segments matched the query, and/or a representation of at what time(s) within each matching segment the query matched .

Die nachfolgende Ausführungsform impliziert eine Implementierung einer Videosegmentierungskomponente 180, die einen oder mehrere gängige bzw. gemeinsame Aspekte über verschiedene Typen von Segmentierungen hinweg aufweist. Zu darstellerischen Zwecken werden exemplarische Vorgänge dieser Implementierung der Videosegmentierungskomponente 180 anhand einer Standardsegmentierung und einer Suchsegmentierung beschrieben. Bei dieser Implementierung beinhaltet die Videosegmentierungskomponente 180 eine Kandidatengrenzauswahlkomponente 182, eine Graphenaufbaukomponente 184, eine Schneidekostenberechnungskomponente 186 und eine Wegoptimierungskomponente 188. Auf einer höhen Stufe betrachtet, identifiziert die Kandidatengrenzauswahlkomponente 182 Kandidatengrenzen aus den Grenzen von Merkmalsbereichen in designierten Merkmalsspuren. Die Graphenaufbaukomponente 184 baut einen Graphen mit Wegen auf, die verschiedene Segmentierungsoptionen darstellen, die Schneidekostenberechnungskomponente 186 berechnet Kantengewichtungen für Kanten zwischen Knoten in dem Graphen, und die Wegoptimierungskomponente 188 löst ein Problem des kürzesten Weges entlang des Graphen, um eine optimale Segmentierung zu berechnen.The embodiment below implies an implementation of a video segmentation component 180 that has one or more common aspects across different types of segmentations. For illustrative purposes, example operations of this implementation of the video segmentation component 180 are described in terms of a standard segmentation and a search segmentation. In this implementation, the video segmentation component 180 includes a candidate boundary selection component 182, a graph building component 184, a slice costing component 186, and a path optimization component 188. Viewed at a high level, the candidate boundary selection component 182 identifies candidate boundaries from the boundaries of feature regions in designated feature lanes. Graph builder component 184 builds a graph with paths representing various segmentation options, slice costing component 186 computes edge weights for edges between nodes in the graph, and path optimizer component 188 solves a shortest path problem along the graph to compute optimal segmentation.

Die Kandidatengrenzauswahlkomponente 182 identifiziert Kandidatengrenzen aus den Grenzen von Merkmalsbereichen (Merkmalsgrenzen) in designierten Merkmalsspuren sowie innerhalb eines designierten Bereiches des Videos. Bei einer exemplarischen Standardsegmentierung beinhalten die Merkmalsspuren detektierte Sätze (beispielsweise aus dem Transkript), detektierte Gesichter und detektierte visuelle Szenen, und der designierte Bereich des Videos ist das gesamte Video. Bei einer exemplarischen Suchsegmentierung beinhalten die Merkmalsspuren dieselben Merkmalsspuren wie die Standardsegmentierung, und der designierte Bereich des Videos ist jedes Videosegment in der Standardsegmentierung (das heißt, die Suchsegmentierung läuft auf jedem Videosegment in der Standardsegmentierung, wodurch die Standardsegmentierung neusegmentiert wird). Bei einer weiteren exemplarischen Suchsegmentierung beinhalten die Merkmalsspuren dieselben oder verschiedene bzw. andere Merkmalsspuren als die Standardsegmentierung, und der designierte Bereich des Videos ist das gesamte Video (das heißt, die Suchsegmentierung erstellt eine neue Segmentierung unabhängig von der Standardsegmentierung).The candidate boundary selection component 182 identifies candidate boundaries from the boundaries of feature areas (feature boundaries) in designated feature tracks as well as within a designated area of the video. In an example standard segmentation, the feature tracks include detected sentences (e.g., from the transcript), detected faces, and detected visual scenes, and the designated area of the video is the entire video. In an example search segmentation, the feature tracks include the same feature tracks as the default segmentation, and the designated area of the video is each video segment in the default segmentation (that is, the search segmentation runs on each video segment in the default segmentation, thereby re-segmenting the default segmentation). In another example search segmentation, the feature tracks include the same or different feature tracks than the default segmentation, and the designated area of the video is the entire video (that is, the search segmentation creates a new segmentation independent of the default segmentation).

Bei einer exemplarischen Implementierung identifiziert die Kandidatengrenzauswahlkomponente 182 Instanzen von detektierten Merkmalen aus den designierten Merkmalsspuren, die mit dem designierten Bereich des Videos überlappen, passt Merkmalsgrenzen zur Einrastung an naheliegenden Merkmalsgrenzen von Prioritätsmerkmalen an, und identifiziert Kandidatengrenzen aus den verbleibenden Merkmalsgrenzen. 2A bis 2F sind Darstellungen einer exemplarischen Technik zum Berechnen von Kandidatengrenzen aus detektierten Merkmalsgrenzen. 2A bis 2F zeigen einen Abschnitt von exemplarischen designierten Merkmalsgrenzen, die Satzspur 210 und die Gesichtsspur 220 (wobei zwei Facetten, nämlich Gesicht1 bzw. face1 und Gesicht2 bzw. face2, gezeigt sind).In an exemplary implementation, the candidate boundary selection component 182 identifies instances of detected features from the designated feature tracks that overlap the designated area of the video, adjusts feature boundaries to snap to nearby feature boundaries of priority features, and identifies candidate boundaries from the remaining feature boundaries. 2A until 2F are representations of an exemplary technique for computing candidate boundaries from detected feature boundaries. 2A until 2F Figure 12 shows a portion of exemplary designated feature boundaries, the sentence trace 210 and the face trace 220 (where two facets, face1 and face1 and face2, are shown).

2A ist eine Darstellung einer exemplarischen Technik zum Identifizieren von Instanzen von detektierten Merkmalen aus den designierten Merkmalsspuren, die mit dem designierten Bereich des Videos zur Segmentierung überlappen. Bei diesem Beispiel werden alle detektierten Merkmale aus der Satzspur 210 und der Gesichtsspur 220, die mit dem designierten Bereich zwischen startTime und endTime überlappen, identifiziert (die überlappenden Merkmale sind durch eine Schattierung identifiziert). Bei einigen Ausführungsformen, bei denen Merkmalsspuren mit einer Liste von detektierten Instanzen und entsprechenden Bereichen dargestellt werden, umfasst das Identifizieren von überlappenden Merkmalen ein Iterieren durch die aufgelisteten Bereiche und ein Generieren einer Darstellung derjenigen Bereiche, die wenigstens teilweise mit dem designierten Bereich des Videos zur Segmentierung überlappen. 2A FIG. 12 is an illustration of an example technique for identifying instances of detected features from the designated feature lanes that overlap with the designated area of video for segmentation. In this example, all detected features from sentence trace 210 and face trace 220 that overlap the designated range between startTime and endTime are identified (the overlapping features are identified by shading). In some embodiments where feature traces are presented with a list of detected instances and corresponding areas, identifying overlapping features includes iterating through the listed areas and generating a representation of those areas that are at least partially aligned with the designated area of video for segmentation overlap.

2B und 2C sind Darstellungen einer exemplarischen Technik zum Anpassen von Merkmalsgrenzen zur Einrastung an naheliegenden Merkmalsgrenzen von Prioritätsmerkmalen. Bei einigen Ausführungsformen werden Merkmalsspuren (beispielsweise in einer Prioritätsliste) beispielsweise auf Grundlage dessen priorisiert, welche Kategorien von Merkmalen als die wichtigsten betrachtet oder als Daten höchster Qualität aufweisend bestimmt worden sind. Bei einer exemplarischen Implementierung beinhaltet eine priorisierte Liste von Merkmalsspuren Transkriptmerkmale (beispielsweise Sätze), sodann visuelle Szenen und sodann Gesichter. Die Kandidatengrenzauswahlkomponente 182 iteriert über die designierten Merkmalsspuren in der Prioritätsreihenfolge und beginnt dabei mit der wichtigsten Merkmalsspur. Für jede Prioritätsmerkmalsgrenze eines überlappenden Merkmals aus einer Prioritätsmerkmalsspur mischt die Kandidatengrenzauswahlkomponente 182 in die Prioritätsmerkmalsgrenze diejenigen Merkmalsgrenzen aus anderen Merkmalsspuren, die innerhalb eines Schwellenmischabstandes (von beispielsweise 500 ms) der Prioritätsmerkmalsgrenze befindlich sind. Zusätzlich oder alternativ trunkiert die Kandidatengrenzauswahlkomponente 182 Merkmalsgrenzen, die außerhalb des designierten Bereiches des Videos zur Segmentierung sind, und/oder sondert diese aus. In 2B sind die Merkmalsgrenzen 224 und 226 aus der Gesichtsspur 220 innerhalb eines Schwellenmischabstandes der Prioritätsmerkmalsgrenze 222 aus der Satzspur 210, sodass die Merkmalsgrenzen 224 und 226 an der Prioritätsmerkmalsgrenze 220, wie in 2C dargestellt ist, einrasten. 2 B and 2C 12 are illustrations of an example technique for adjusting feature boundaries for snapping to nearby feature boundaries of priority features. For example, in some embodiments, feature traces are prioritized (e.g., in a priority list) based on which categories of features are considered most important or data highest have been determined to have quality. In an exemplary implementation, a prioritized list of feature tracks includes transcript features (e.g., sentences), then visual scenes, and then faces. The candidate limit selection component 182 iterates over the designated feature lanes in order of priority, beginning with the most important feature lane. For each priority feature boundary of an overlapping feature from a priority feature lane, the candidate boundary selection component 182 blends into the priority feature boundary those feature boundaries from other feature lanes that are within a threshold blending distance (e.g., 500 ms) of the priority feature boundary. Additionally or alternatively, the candidate boundary selection component 182 truncates and/or discards feature boundaries that are outside the designated area of the video for segmentation. In 2 B are feature boundaries 224 and 226 from face trace 220 within a threshold mixing distance of priority feature boundary 222 from sentence trace 210 such that feature boundaries 224 and 226 are at priority feature boundary 220, as in FIG 2C shown, snap into place.

Bei einigen Ausführungsformen werden Merkmalsgrenzen von detektierten Merkmalen innerhalb einer Merkmalsspur an naheliegenden Merkmalsgrenzen, die innerhalb eines Schwellenmischabstandes außerhalb der detektierten Merkmale befindlich sind, gemischt, um beispielsweise eine Überspannung zu erstellen, die beide detektierten Merkmale einschließt. Zusätzlich oder alternativ werden Merkmalsgrenzen von detektierten Merkmalen innerhalb einer Merkmalsspur an naheliegenden Merkmalsgrenzen gemischt, von denen vorhergesagt worden ist, dass sie eine höhere Zuverlässigkeitsstufe aufweisen und innerhalb eines Schwellenmischabstandes befindlich sind. Wie in 2B gezeigt ist, ist die Merkmalsgrenze 232 (für Gesicht2 bzw. face2) aus der Gesichtsspur 220 innerhalb eines Schwellenmischabstandes der Merkmalsgrenze 234 (für Gesicht1 bzw. face1) aus der Gesichtsspur 220, sodass die Merkmalsgrenzen 232 an der Merkmalsgrenze 234, wie in 2C dargestellt ist, einrasten.In some embodiments, feature boundaries of detected features within a feature lane are blended at nearby feature boundaries that are within a threshold blending distance outside of the detected features to create, for example, a span that includes both detected features. Additionally or alternatively, feature boundaries of detected features within a feature trace are blended at nearby feature boundaries that have been predicted to have a higher confidence level and are within a threshold blending distance. As in 2 B is shown, feature boundary 232 (for face2 or face2) from face track 220 is within a threshold mixing distance of feature boundary 234 (for face1 or face1) from face track 220 such that feature boundaries 232 are at feature boundary 234, as in FIG 2C shown, snap into place.

2D ist eine Darstellung einer exemplarischen Technik zum Identifizieren von Kandidatengrenzen für eine Standardsegmentierung aus den verbleibenden Merkmalsgrenzen. Bei einigen Ausführungsformen bewertet die Kandidatengrenzauswahlkomponente 182 die verbleibenden Merkmalsgrenzen nach einer Anpassung, bestimmt, ob der Abstand zwischen zwei aufeinanderfolgenden Merkmalsgrenzen größer als eine Schwellenlückendauer (von beispielsweise 500 ms) ist, und fügt, wenn dem so ist, eine oder mehrere (beispielsweise gleich beabstandete) Grenzen in die Lücke derart ein, dass der Abstand zwischen zwei aufeinanderfolgenden Merkmalgrenzen kleiner als die Schwellenlückendauer ist. Bei einigen Ausführungsformen unterteilt die Kandidatengrenzauswahlkomponente 182 zur Verbesserung der Leistung den designierten Bereich des Videos in eine Anzahl von Intervallen gleicher Länge (drei in 2D) und wählt für jedes Intervall die obersten N Grenzen in jenem Intervall auf Grundlage einer Kennwertfunktion aus. Bei einer exemplarischen Implementierung werden Schneidekosten für jede der verbleibenden Merkmalsgrenzen berechnet (was nachstehend noch im Zusammenhang mit der Schneidekostenberechnungskomponente 186 beschrieben wird), und die Kandidatengrenzauswahlkomponente 182 wählt die obersten N Grenzen mit den niedrigsten Grenzschneidekosten aus. 2D Figure 12 is an illustration of an example technique for identifying candidate boundaries for a standard segmentation from the remaining feature boundaries. In some embodiments, candidate boundary selection component 182 evaluates the remaining feature boundaries after an adjustment, determines whether the distance between two consecutive feature boundaries is greater than a threshold gap duration (e.g., 500 ms), and if so, adds one or more (e.g., equally spaced ) Bounds into the gap such that the distance between two consecutive feature boundaries is less than the threshold gap duration. In some embodiments, to improve performance, the candidate boundary selection component 182 divides the designated area of the video into a number of equal-length intervals (three in 2D ) and for each interval selects the top N bounds in that interval based on a score function. In an exemplary implementation, a clipping cost is calculated for each of the remaining feature boundaries (to be described later in connection with the clipping cost calculation component 186), and the candidate boundary selection component 182 selects the top N boundaries with the lowest boundary clipping cost.

2E und 2F sind Darstellungen einer exemplarischen Technik zum Identifizieren von Kandidatengrenzen für eine Suchsegmentierung aus den verbleibenden Merkmalsgrenzen. Bei einer exemplarischen Ausführungsform mit einer Suche gibt ein Nutzer eine Anfrage ein, die ein oder mehrere Schlüsselwörter und/oder ausgewählte Facetten (wie nachstehend noch detaillierter beschrieben wird) umfasst. Die Kandidatengrenzauswahlkomponente 182 sucht nach detektierten Merkmalen mit zugeordnetem Text oder Wert (beispielsweise einem Transkript, Tags eines Objektes oder einer Handlung, Audioereignistags, Protokollereignistags und dergleichen), der zu dem Schlüsselwort / den Schlüsselwörtern passt, entweder unter Nutzung eines genauen Treffers und/oder eines ungefähren (fuzzy) Treffers. Bei einer exemplarischen Facettensuche wählt ein Nutzer ein bestimmtes Gesicht, einen bestimmten Sprecher, eine bestimmte Audioklasse (beispielsweise Musik, Sprache, anderes), eine bestimmte visuelle Szene, einen bestimmten visuellen Artefakt und/oder eine bestimmte andere Facette aus, und die Kandidatengrenzauswahlkomponente 182 sucht nach detektierten Instanzen der ausgewählten Facette / der ausgewählten Facetten. 2F zeigt eine exemplarische Anfrage („Hallo“) mit passenden Merkmalen 212 und 214 aus der Satzspur 210. Bei einer exemplarischen Implementierung wählt die Kandidatengrenzauswahlkomponente 182 Kandidatengrenzen als diejenigen verbleibenden Merkmalsgrenzen aus, die innerhalb eines bestimmten Schwellenabstandes (von beispielsweise 5 s) einer Grenze eines passenden Merkmals (Anfragetreffergrenze) befindlich sind. 2E and 2F are representations of an exemplary technique for identifying candidate boundaries for search segmentation from the remaining feature boundaries. In an example search embodiment, a user enters a query that includes one or more keywords and/or selected facets (as described in more detail below). The candidate boundary selection component 182 searches for detected features with associated text or value (e.g., a transcript, object or action tags, audio event tags, log event tags, and the like) that match the keyword(s), using either an exact match and/or a approximate (fuzzy) match. In an exemplary faceted search, a user selects a particular face, speaker, audio class (e.g., music, speech, other), visual scene, visual artifact, and/or other facet, and candidate boundary selection component 182 searches for detected instances of the selected facet(s). 2F 12 shows an example query (“Hello”) with matching features 212 and 214 from sentence track 210. In an example implementation, candidate boundary selection component 182 selects candidate boundaries as those remaining feature boundaries that are within a certain threshold distance (e.g., 5 s) of a boundary of a matching Feature (query hit limit) are located.

Wie wiederum in 1A gezeigt ist, baut die Graphenaufbaukomponente 184 einen Graphen mit Wegen auf, die verschiedene Kandidatensegmentierungen darstellen. 3A bis 3C sind Darstellungen einer exemplarischen Technik zum Aufbauen eines Graphen mit Wegen, die verschiedene Kandidatensegmentierungen darstellen. Bei einer exemplarischen Implementierung werden Kandidatengrenzen durch Knoten (beispielsweise die Knoten 350 in 3A) dargestellt, die mit Kanten (beispielsweise die Kante 365a in 3B) verbunden sind, die wiederum Kandidatensegmente (beispielsweise das Videosegment 365a in 3B) darstellen. Die verschiedenen Wege durch den Graphen von startTime bis endTime stellen verschiedene Kandidatensegmentierungen dar. In 3C bilden die Kanten 362a, 365a und 368a beispielsweise einen Weg, der die Segmente 362b, 365b und 368b darstellt. Bei einigen Ausführungsformen wird, um das Generieren einer nicht überlappenden Segmentierung (beispielsweise Wege, die sich zeitlich vorwärts bewegen) zu unterstützen, der Graph als direkter Graph aufgebaut, und zwar mit Kanten, die nur Knoten verbinden, die sich zeitlich vorwärts bewegen, oder mit unendlichen Kantengewichtungen, die sich zeitlich rückwärts bewegen.As again in 1A As shown, the graph builder component 184 builds a graph with paths representing various candidate segmentations. 3A until 3C 10 are representations of an exemplary technique for building a graph with paths representing various candidate segmentations. In an exemplary implementation, candidate boundaries are defined by Kno ten (for example, nodes 350 in 3A ) connected to edges (such as edge 365a in 3B ) are connected, which in turn are candidate segments (e.g. video segment 365a in 3B ) represent. The different paths through the graph from startTime to endTime represent different candidate segmentations. In 3C For example, edges 362a, 365a, and 368a form a path representing segments 362b, 365b, and 368b. In some embodiments, to support the generation of non-overlapping segmentation (e.g., paths that move forward in time), the graph is constructed as a direct graph, with edges connecting only nodes that move forward in time, or with infinite edge weights moving backwards in time.

Bei einigen Ausführungsformen berechnet die Schneidekostenberechnungskomponente 186 von 1A Kantengewichtungen für die Kanten in dem Graphen. Bei einer exemplarischen Ausführungsform quantifiziert eine Kantengewichtung für eine Kante, die ein Kandidatensegment darstellt, eine Pönalisierung oder Schneidekosten für das Kandidatensegment (beispielsweise in einem normierten Bereich, so beispielsweise von 0 bis 1 oder von -1 bis +1). Bei einem nicht beschränkenden Beispiel bestimmt die Schneidekostenberechnungskomponente 186 die Kantengewichtung zwischen zwei Kanten als (beispielsweise normierte) Summe von Grenzschneidekosten und Intervallschneidekosten für das Kandidatensegment. Bei einigen Ausführungsformen pönalisieren die Grenzschneidekosten eine Kandidatengrenze dafür, dass diese an einem „schlechten“ Schneidepunkt (beispielsweise innerhalb eines detektierten Merkmals aus einer anderen Merkmalsspur) ist, und die Intervallschneidekosten pönalisieren ein Kandidatensegment auf Grundlage von negativen Eigenschaften der Überspannung des Kandidatensegmentes (beispielsweise mit einer Länge außerhalb der minimalen oder maximalen Solllänge, einer Inkohärenz von überlappenden Merkmalen aus anderen Merkmalsspuren, einer Überlappung sowohl der Anfrage-EIN- wie auch AUS-Merkmale). Bei einigen Ausführungsformen sind die Grenzschneidekosten für das Kandidatensegment die Grenzschneidekosten für die führende Grenze des Kandidatensegmentes (beispielsweise dann, wenn Kandidatensegmentierungen vollständig sind, Kandidatensegmente in einer Kandidatensegmentierung daher benachbart sind und die nacheilende Grenze im nächsten Segment daher gezählt wird).In some embodiments, the cutting cost calculation component 186 calculates from 1A Edge weights for the edges in the graph. In an exemplary embodiment, an edge weight for an edge representing a candidate segment quantifies a penalty or cutting cost for the candidate segment (e.g., in a normalized range, such as from 0 to 1 or from -1 to +1). In one non-limiting example, the slice cost calculation component 186 determines the edge weight between two edges as the (e.g., normalized) sum of boundary slice cost and interval slice cost for the candidate segment. In some embodiments, the boundary cutting cost penalizes a candidate boundary for being at a "bad" cutting point (e.g., within a detected feature from another feature trace), and the interval cutting cost penalizes a candidate segment based on negative properties of the candidate segment's span (e.g., having a Length outside of the minimum or maximum target length, an incoherence of overlapping features from other feature tracks, an overlap of both the request ON and OFF features). In some embodiments, the boundary cutting cost for the candidate segment is the boundary cutting cost for the leading boundary of the candidate segment (e.g., when candidate segmentations are complete, candidate segments in one candidate segmentation are therefore adjacent, and the trailing boundary in the next segment is therefore counted).

Bei einer exemplarischen Standardsegmentierung pönalisiert die Schneidekostenberechnungskomponente 186 das Schneiden in der Mitte von detektierten Merkmalsbereichen (beispielsweise Sätze, Erscheinungsbilder von Gesichtern, visuelle Szenen), bestimmt Grenzschneidekosten relativ zu verschiedenen bzw. anderen Merkmalsspuren verschieden bzw. anders und/oder berechnet Gesamtgrenzschneidekosten als Kombination (beispielsweise als Summe, gewichtete Summe) von getrennten Beiträgen aus jeder Merkmalsspur. Bei einem nicht beschränkenden Beispiel mit designierten Merkmalen, die Transkriptmerkmale, visuelle Szenen und Gesichter beinhalten, werden die Grenzschneidekosten für eine Grenze folgendermaßen berechnet. b o u n d a r y C u t C o s t = ( 3,0 * t r a n s c r i p t B o u n d a r y C u t C o s t + 2,0 * v i s u a l S c e n e B o u n d a r y C u t C o s t + f a c e B o u n d a r y C u t C o s t ) / 6,0

Figure DE102022105123A1_0001
In an exemplary standard segmentation, the cutting cost calculation component 186 penalizes cutting in the middle of detected feature regions (e.g., sentences, face appearances, visual scenes), determines boundary cutting costs differently relative to different feature lanes, and/or calculates total boundary cutting costs as a combination (e.g as a sum (weighted sum) of separate contributions from each feature lane. In a non-limiting example with designated features including transcript features, visual scenes, and faces, the border cutting cost for a border is calculated as follows. b O and n i.e a right y C and t C O s t = ( 3.0 * t right a n s c right i p t B O and n i.e a right y C and t C O s t + 2.0 * v i s and a l S c e n e B O and n i.e a right y C and t C O s t + f a c e B O and n i.e a right y C and t C O s t ) / 6.0
Figure DE102022105123A1_0001

4A bis 4C sind Darstellungen einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage von visuellen Szenen. 4A bis 4C zeigen eine exemplarische Spur der visuellen Szene 405 mit verschiedenen visuellen Szenen, die mit verschiedenen Mustern dargestellt sind. Bei einigen Ausführungsformen ist eine gute Kandidatengrenze (1) nahe an einer visuellen Szenengrenze und/oder (2) weist diese visuelle Szenengrenze eine hohe Übergangszuverlässigkeit auf. Bei einer exemplarischen Implementierung, die eine Kandidatengrenze in Bezug auf die Spur der visuellen Szene 405 berücksichtigt, identifiziert die Schneidekostenberechnungskomponente 186 die nächstliegende visuelle Szenengrenze aus der Spur der visuellen Szene 405 (4A) und berechnet den Abstand zur nächstliegenden Grenze relativ zur Dauer der enthaltenen visuellen Szene 410 (4B). Bei dem in 4B dargestellten Beispiel ist der Abstand zur nächstliegenden Grenze (1000 ms) relativ zur Dauer der enthaltenen visuellen Szene 410 (5000 ms) gleich 1000/5000 = 0,2. Bei einigen Ausführungsformen ruft die Schneidekostenberechnungskomponente 186 die Übergangszuverlässigkeit der nächstliegenden Grenze (0,9 bei dem Beispiel von 4B) ab und berechnet die Grenzschneidekosten auf Grundlage der Übergangszuverlässigkeit der nächstliegenden Grenze beispielsweise folgendermaßen: v i s u a l S c e n e B o u n d a r y C u t C o s t = t r a n s i t i o n C o n f i d e n c e * ( 1,0 2 * Relativabstand zur Grenze )

Figure DE102022105123A1_0002
4A until 4C are representations of an exemplary technique for calculating marginal cutting costs based on visual scenes. 4A until 4C 12 show an example trace of visual scene 405 with different visual scenes represented with different patterns. In some embodiments, a good candidate boundary is (1) close to a visual scene boundary and/or (2) that visual scene boundary has high transition reliability. In an example implementation that considers a candidate boundary related to the visual scene 405 lane, the cut cost calculation component 186 identifies the closest visual scene boundary from the visual scene 405 lane ( 4A ) and calculates the distance to the nearest boundary relative to the duration of the contained visual scene 410 ( 4B ). At the in 4B In the illustrated example, the distance to the nearest boundary (1000ms) relative to the duration of the included visual scene 410 (5000ms) is 1000/5000=0.2. In some embodiments, the slice cost calculation component 186 retrieves the transition reliability of the nearest boundary (0.9 in the example of FIG 4B ) and calculates the boundary cutting cost based on the transition reliability of the nearest boundary, for example: v i s and a l S c e n e B O and n i.e a right y C and t C O s t = t right a n s i t i O n C O n f i i.e e n c e * ( 1.0 2 * Relative distance to the border )
Figure DE102022105123A1_0002

Bei dem in 4B dargestellten Beispiel gilt: v i s u a l S c e n e B o u n d a r y C u t C o s t = 0,9 * ( 1,0 2 * 0,2 ) = 0,54.

Figure DE102022105123A1_0003
At the in 4B example shown applies: v i s and a l S c e n e B O and n i.e a right y C and t C O s t = 0.9 * ( 1.0 2 * 0.2 ) = 0.54.
Figure DE102022105123A1_0003

4C zeigt einen Spezialfall, in dem die enthaltene Szene 420 eine Kandidatengrenze aufweist, an der die nächstliegende visuelle Szenengrenze an einem Endpunkt des designierten Bereiches des Videos ist. Bei einigen Ausführungsformen berechnet, wenn die Übergangszuverlässigkeit der nächstliegenden visuellen Szenengrenze undefiniert oder null ist, die Schneidekostenberechnungskomponente 186 Grenzschneidekosten auf Grundlage des Abstandes zur nächstliegenden Grenze relativ zur Dauer der enthaltenen visuellen Szene beispielsweise folgendermaßen: v i s u a l S c e n e B o u n d a r y C u t C o s t = ( 1,0 2,0 * ( Relativabstand zur n a ¨ chstliegenden visuellen Szenengrenze ) )

Figure DE102022105123A1_0004
4C Figure 12 shows a special case where the included scene 420 has a candidate boundary where the closest visual scene boundary is at an endpoint of the designated area of the video. In some embodiments, when the transition reliability of the closest visual scene boundary is undefined or zero, the cutting cost calculation component 186 calculates a boundary cutting cost based on the distance to the closest boundary relative to the duration of the included visual scene, for example as follows: v i s and a l S c e n e B O and n i.e a right y C and t C O s t = ( 1.0 2.0 * ( Relative distance to the n a ¨ closest visual scene boundary ) )
Figure DE102022105123A1_0004

Ist der Relativabstand zur nächstliegenden visuellen Szenegrenze gleich 0 (die Grenze ist am Endpunkt des designierten Bereiches), so löst sich Gleichung 3 zu -1,0. Ist der Relativabstand zur nächstliegenden visuellen Szenengrenze gleich 0,5 (die Kandidatengrenze ist in der Mitte des Kandidatensegmentes), so löst sich Gleichung 3 zu +1,0.If the relative distance to the nearest visual scene boundary is 0 (the boundary is at the end point of the designated area), Equation 3 solves to -1.0. If the relative distance to the nearest visual scene boundary is 0.5 (the candidate boundary is at the center of the candidate segment), then Equation 3 solves for +1.0.

5 ist eine Darstellung einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage von diarisierten Transkriptmerkmalen. 5 zeigt eine exemplarische Transkriptspur 505 mit verschiedenen Transkriptmerkmalen, die gemäß einem detektierten Sprecher diarisiert sind (wobei verschiedene Sprecher mit verschiedenen Mustern dargestellt sind). Bei einer exemplarischen Implementierung pönalisiert die Schneidekostenberechnungskomponente 186 Kandidatengrenzen, die innerhalb eines Sprachsegmentes (beispielsweise Wortsegmente, Wendungssegmente) befindlich sind, Kandidatengrenzen, die während des Erscheinens eines Sprechers, jedoch zwischen Sätzen befindlich sind, und/oder Kandidatengrenzen am Ende eines Sprachsegmentes, von dem unwahrscheinlich ist, dass es ein themenbezogenes bzw. topisches Segment beschließt. Bei einer Ausführungsform bestimmt die Schneidekostenberechnungskomponente 186, ob ein Transkript und/oder ein diarisiertes Transkript verfügbar ist. Sind Transkriptmerkmale nicht verfügbar, so ist kein Beitrag zu den Grenzschneidekosten auf Grundlage der Transkriptmerkmale vorhanden. Bei der in 5 dargestellten exemplarischen Implementierung, bei der die Schneidekosten zwischen -1 (gut) und +1 (schlecht) normiert sind, wird eine Kandidatengrenze 510, die in der Mitte eines Wortes befindlich ist, mit hohen Schneidekosten (beispielsweise unendlich) bewertet, wird eine Kandidatengrenze 520, die in der Mitte eines Satzes, jedoch zwischen Worten befindlich ist, mit mittleren Schneidekosten (beispielsweise 0) bewertet, wird eine Kandidatengrenze 530, die mitten in einem Sprecher, jedoch zwischen Sätzen befindlich ist, mit Schneidekosten bewertet, die gleich oder proportional zu einer vorhergesagten Wahrscheinlichkeit dafür sind, dass das vorhergehende Sprachsegment ein themenbezogenes bzw. topisches Segment beschließt (beispielsweise -0,2), und/oder wird eine Kandidatengrenze 540, die bei einem Wechsel von Sprechern befindlich ist, mit niedrigen Schneidekosten (beispielsweise -1,0) bewertet. Zusätzlich oder alternativ wird eine Kandidatengrenze am Ende eines Sprachsegmentes (beispielsweise die Kandidatengrenzen 530, 540) mit Schneidekosten bewertet, die gleich oder proportional zu einer vorhergesagten Wahrscheinlichkeit dafür sind, dass das vorhergehende Sprachsegment ein themenbezogenes bzw. topisches Segment (beispielsweise -endOfSegmentScore für den vorherigen Satz in 5) beschließt. 5 Figure 12 is an illustration of an exemplary technique for computing a marginal cutting cost based on diarized transcript features. 5 Figure 5 shows an example transcript trace 505 with various transcript features diarized according to a detected speaker (showing different speakers with different patterns). In an exemplary implementation, the cutting costing component 186 penalizes candidate boundaries that are within a speech segment (e.g., word segments, phrase segments), candidate boundaries that are during the appearance of a speaker but between sentences, and/or candidate boundaries at the end of a speech segment from which unlikely is that it concludes a topic-related or topical segment. In one embodiment, the editing costing component 186 determines whether a transcript and/or a diarized transcript is available. If transcript features are not available, then there is no contribution to the marginal cutting cost based on the transcript features. At the in 5 In the example implementation shown, where the clipping cost is normalized between -1 (good) and +1 (bad), if a candidate boundary 510 that is in the middle of a word is evaluated with a high clipping cost (e.g., infinite), a candidate boundary 520 will be evaluated that is in the middle of a sentence but between words is scored with an intermediate cutting cost (e.g., 0), a candidate boundary 530 that is in the middle of a speaker but between sentences is scored with a cutting cost equal to or proportional to a predicted probability of the preceding speech segment closing a topical segment (e.g. -0.2) and/or will a candidate boundary 540 located at a change of speakers with a low clipping cost (e.g. -1.0 ) rated. Additionally or alternatively, a candidate boundary at the end of a language segment (e.g., candidate boundaries 530, 540) is scored with a cutting cost equal to or proportional to a predicted probability that the preceding language segment is a topical segment (e.g., -endOfSegmentScore for the previous sentence in 5 ) decides.

6 ist eine Darstellung einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage von detektierten Gesichtern. 6 zeigt eine exemplarische Gesichtsspur 220 mit detektierten Merkmalsbereichen für jedes Erscheinen eines detektierten Gesichtes. Bei einer exemplarischen Implementierung pönalisiert die Schneidekostenberechnungskomponente 186 Kandidatengrenzen, wenn die Kandidatengrenzen innerhalb eines Merkmalsbereiches für das Erscheinen eines detektierten Gesichtes befindlich sind. Bei einem nicht beschränkenden Beispiel werden Kandidatengrenzen, die innerhalb des Erscheinens eines detektierten Gesichtes befindlich sind (beispielsweise die Grenzen 610 und 620), mit hohen Schneidekosten (von beispielsweise +1,0) bewertet, und es werden Kandidatengrenzen, die nicht innerhalb des Erscheinens eines detektierten Gesichtes befindlich sind (beispielsweise die Grenze 640), mit niedrigen Schneidekosten (von beispielsweise -1,0) bewertet. 6 12 is an illustration of an example technique for calculating a boundary clipping cost based on detected faces. 6 12 shows an exemplary face trace 220 with detected feature regions for each occurrence of a detected face. In an exemplary implementation, the slice costing component 186 penalizes candidate boundaries when the candidate boundaries are within a feature range for the appearance of a detected face. By way of non-limiting example, candidate boundaries that are within the appearance of a detected face (e.g., boundaries 610 and 620) are evaluated with a high clipping cost (e.g., +1.0) and candidate boundaries that are not within the appearance of a detected face (e.g., the limit 640) are evaluated with low clipping costs (e.g., -1.0).

Bei einer exemplarischen Suchsegmentierung ist eine „gute“ Grenze an einem Übergang zwischen einem Merkmal, das zu einer Anfrage passt (beispielsweise ein Anfrage-„EIN“-Merkmal), und einem Merkmal, das nicht zur Anfrage passt (beispielsweise einem Anfrage-„AUS“-Merkmal). Als solches pönalisiert die Schneidekostenberechnungskomponente 186 bei einigen Ausführungsformen Kandidatengrenzen, die innerhalb eines passenden Merkmals befindlich sind (beispielsweise ein Anfrage-EIN-Merkmal), und/oder Kandidatengrenzen, die fern von einem Anfrage-EIN/AUS-Übergang sind. 7A bis 7D sind Darstellungen einer exemplarischen Technik zum Berechnen von Grenzschneidekosten auf Grundlage einer Anfrage. 7A bis 7D zeigen exemplarische passende (Anfrage-EIN-)Merkmale 710 und 720. Bei einer exemplarischen Implementierung bewertet, wenn eine Kandidatengrenze innerhalb eines passenden (Anfrage-EIN-)Merkmals ist, die Schneidekostenberechnungskomponente 186 die Kandidatengrenze mit hohen Schneidekosten (von beispielsweise +1,0). In 7A ist die Kandidatengrenze 790 innerhalb des passenden Merkmals 710, sodass die Schneidekostenberechnungskomponente 186 die Kandidatengrenze 790 mit hohen Schneidekosten (von beispielsweise +1,0) bewertet.In an example search segmentation, a "good" boundary is at a transition between a feature that matches a query (e.g., a query "IN" feature) and a feature that does not match the query (e.g., a query "OFF". "-Feature). As such, in some embodiments, the slice costing component 186 penalizes candidate boundaries that are within a matching feature (e.g., a query-ON feature) and/or candidate boundaries that are far from a query-ON/OFF transition. 7A until 7D are representations an example technique for calculating a marginal cutting cost based on a request. 7A until 7D 12 show exemplary matching (request-IN) features 710 and 720. In an exemplary implementation, if a candidate boundary is within a matching (request-IN) feature, the clipping cost calculation component 186 evaluates the candidate boundary with a high clipping cost (e.g., +1.0 ). In 7A is the candidate boundary 790 within the matching feature 710, so the clip cost calculation component 186 evaluates the candidate boundary 790 with a high clip cost (of, for example, +1.0).

Bei einigen Ausführungsformen berücksichtigt, wenn eine Kandidatengrenze nicht innerhalb eines passenden Merkmals befindlich ist, die Schneidekostenberechnungskomponente 186 die zwei nächstliegenden und/oder benachbarten passenden Merkmale und deren Längen. In 7B ist die Kandidatengrenze 794 beispielsweise außerhalb der passenden Merkmale 710 und 720 befindlich. Bei einer exemplarischen Implementierung berücksichtigt die Schneidekostenberechnungskomponente 186 ein Fenster auf jeder Seite der Kandidatengrenze 794 (beispielsweise ein Fenster einer Größe entsprechend der Hälfte der durchschnittlichen Länge der benachbarten Anfrage-EIN-Merkmale). Bei dem in 7B dargestellten Beispiel bestimmt die Schneidekostenberechnungskomponente 186 die Größe der Fenster 730a und 730b als 0,5*(5000 ms + 3000 ms)/2 = 2000 ms, wobei ein 2000-ms-Fenster auf jeder Seite der Kandidatengrenze 794 ist. Die Kostenberechnungskomponente 186 berechnet die Menge der Anfrage-EIN-Zeit in den Fenstern 730a und 730b. In 7C überlappt das Fenster 730a mit dem passenden (Anfrage-EIN-)Merkmal 710 für 1800 ms (Anfrage-EIN-Zeit = 1800 ms), und das Fenster 730b überlappt nicht mit dem passenden (Anfrage-EIN-)Merkmal 720 (Anfrage-EIN-Zeit = 0 ms). Schließlich berechnet die Kostenberechnungskomponente 186 die Schneidekosten auf Grundlage der Menge der Überlappung der Zeitfenster 730a und 730b mit einem passenden (Anfrage-EIN-)Merkmal beispielsweise folgendermaßen: Q u e r y B o u n d a r y C u t C o s t = 1,0 2 * | querryOnTimeBefore queryOnTimeAfter windowSize |

Figure DE102022105123A1_0005
In some embodiments, when a candidate boundary is not within a matching feature, the cutting cost calculation component 186 considers the two closest and/or adjacent matching features and their lengths. In 7B For example, candidate boundary 794 is outside of matching features 710 and 720 . In an exemplary implementation, the slice costing component 186 considers a window on each side of the candidate boundary 794 (e.g., a window of a size equal to half the average length of the neighboring request-IN features). At the in 7B In the example illustrated, slice costing component 186 determines the size of windows 730a and 730b as 0.5*(5000 ms + 3000 ms)/2 = 2000 ms, where there is a 2000 ms window on either side of candidate boundary 794 . Cost calculation component 186 calculates the amount of request ON time in windows 730a and 730b. In 7C window 730a overlaps with the matching (request-IN) feature 710 for 1800 ms (request-IN time = 1800 ms), and the window 730b does not overlap with the matching (request-IN) feature 720 (request-IN -time = 0 ms). Finally, the cost calculation component 186 calculates the cutting cost based on the amount of overlap of the timeslots 730a and 730b with a matching (request-IN) feature, for example as follows: Q and e right y B O and n i.e a right y C and t C O s t = 1.0 2 * | queryOnTimeBefore queryOnTimeAfter windowSize |
Figure DE102022105123A1_0005

Bei dem in 7C dargestellten Beispiel löst sich Gleichung 4 zu 1,0-2*1800/2000 = -0,8. 7D zeigt ein weiteres Beispiel, bei dem eine Kandidatengrenze 796 nicht innerhalb eines Anfrage-EIN-Merkmals ist. Bei diesem Beispiel ist die Kandidatengrenze 796 in einem Anfrage-AUS-Merkmal zentriert, die Fenster 740a und 740b überlappen mit einem passenden (Anfrage-EIN-)Merkmal für jeweils 500 ms, und Gleichung 4 löst sich zu 1,0-2*0/2000 = 1,0.At the in 7C For example, Equation 4 solves to 1.0-2*1800/2000 = -0.8. 7D FIG. 14 shows another example where a candidate boundary 796 is not within a query-IN feature. In this example, candidate boundary 796 is centered on a query-OFF feature, windows 740a and 740b overlap with a matching (query-IN) feature for 500 ms each, and Equation 4 solves for 1.0-2*0 /2000 = 1.0.

Es werden nunmehr exemplarische Intervallschneidekosten betrachtet. Bei einigen Ausführungsformen weist die Schneidekostenberechnungskomponente 186 Intervallschneidekosten zu, die ein Kandidatensegment dafür pönalisieren, dass es eine Länge außerhalb der minimalen oder maximalen Solllänge, eine Inkohärenz von überlappenden Merkmalen aus anderen Merkmalsspuren, eine Überlappung sowohl von Anfrage-EIN- wie auch AUS-Merkmalen und/oder andere Eigenschaften aufweist. Bei einer exemplarischen Implementierung berechnet die Schneidekostenberechnungskomponente 186 Gesamtintervallschneidekosten als Kombination (beispielsweise Summe, gewichtete Summe) von getrennten Beiträgen aus getrennten Termen (beispielsweise auf Grundlage einer Solllänge, einer Inkohärenz, eines partiellen Anfrageabgleichs und dergleichen mehr).Exemplary interval cutting costs will now be considered. In some embodiments, the clipping cost calculation component 186 assigns an interval clipping cost that penalizes a candidate segment for having a length outside of the minimum or maximum target length, an incoherence of overlapping features from other feature tracks, an overlap of both query IN and OUT features, and /or has other properties. In an exemplary implementation, the slice cost calculation component 186 calculates a total interval slice cost as a combination (e.g., sum, weighted sum) of separate contributions from separate terms (e.g., based on target length, incoherence, partial query matching, and the like).

Bei einigen Ausführungsformen berechnet die Schneidekostenberechnungskomponente 186 Intervallschneidekosten für Kandidatensegmente, die eine Länge außerhalb der minimalen oder maximalen Solllänge aufweisen. Bei einigen Ausführungsformen ist die minimale oder maximale Solllänge für einen bestimmten Typ von Segmentierung fest (beispielsweise eine Segmentsolllänge von 15 s bis VideoDuration/5), ist proportional zu oder auf andere Weise abhängig von einer eingegebenen Zoomstufe (beispielsweise der Zoomstufe für einen zusammengesetzten Zeitstrahl in einer Bearbeiterschnittstelle, was nachstehend noch detaillierter erläutert wird), wird von einem Interaktionssteuer- bzw. Regelelement (beispielsweise einem Gleitschieber oder einer Schaltfläche, der/die ermöglicht, dass ein Nutzer die minimale oder maximale Solllänge einstellt oder anpasst) präsentiert, wird auf diskrete oder kontinuierliche Werte abgebildet und/oder anderes. Bei einer exemplarischen Implementierung weist eine Suchsegmentierung feste minimale und maximale Segmentsolllängen auf, die von der Zoomstufe nicht beeinflusst sind. Bei einer anderen exemplarischen Implementierung weist eine Einrastpunktsegmentierung minimale und maximale Segmentsolllängen auf, die auf die Zoomstufe abgebildet werden, wobei dann, wenn ein Nutzer (beispielsweise in einen zusammengesetzten Zeitstrahl in einer Bearbeiterschnittstelle) hineinzoomt, die minimalen und maximalen Segmentsolllängen verringert werden, wodurch sich mehr Einrastpunkte für kleinere Videosegmente ergeben.In some embodiments, the slice cost calculation component 186 calculates an interval slice cost for candidate segments that have a length outside of the minimum or maximum target length. In some embodiments, the minimum or maximum target length for a particular type of segmentation is fixed (e.g., a target segment length of 15s to VideoDuration/5), proportional to, or otherwise dependent on an input zoom level (e.g., the zoom level for a composite timeline in an editor interface, which is explained in more detail below), is presented by an interaction control (e.g., a slider or button that allows a user to set or adjust the minimum or maximum target length), is set to discrete or continuous values mapped and/or other. In an exemplary implementation, a search segmentation has fixed minimum and maximum target segment lengths that are unaffected by zoom level. In another exemplary implementation, a snap point segmentation has minimum and maximum segment target lengths that map to zoom level, where as a user zooms in (e.g., into a composite timeline in an editor interface), the minimum and maximum segment target lengths are reduced, thereby increasing more Provide snap points for smaller video segments.

In Abhängigkeit von designierten und/oder bestimmten minimalen und maximalen Segmentsolllängen pönalisiert die Schneidekostenberechnungskomponente 186 Kandidatensegmente außerhalb der Solllänge. Bei einigen Ausführungsformen nutzt die Schneidekostenberechnungskomponente 186 eine harte Randbedingung, bei der Kandidatensegmenten außerhalb der Solllänge unendliche Schneidekosten zugewiesen werden. Bei einigen Ausführungsformen nutzt die Schneidekostenberechnungskomponente 186 eine weiche Randbedingung, bei der Kandidatensegmenten außerhalb der Solllänge hohe Schneidekosten (von beispielsweise 10, 100, 1000 und dergleichen) zugewiesen werden.Depending on designated and/or determined minimum and maximum segment target lengths, the cutting cost calculation component 186 penalizes candidate segments outside of the target length. In some embodiments, the cutting cost calculation component 186 uses a hard constraint in which candidate segments outside the target length are assigned an infinite cutting cost. In some embodiments, the slice cost calculation component 186 uses a soft constraint in which candidate segments outside the target length are assigned a high slice cost (e.g., 10, 100, 1000, and the like).

Bei einigen Ausführungsformen berechnet die Schneidekostenberechnungskomponente 186 Intervallschneidekosten für ein Kandidatensegment auf Grundlage einer Inkohärenz von überlappenden Merkmalen aus anderen Merkmalsspuren. In einigen Fällen enthält ein „gutes“ Videosegment kohärenten oder ähnlichen Inhalt in Bezug auf jede Merkmalsspur. Als solches pönalisiert die Schneidekostenberechnungskomponente 186 bei einer exemplarischen Implementierung Kandidatensegmente, bei denen die Kohärenz in einem überlappenden Bereich einer anderen Merkmalsspur (beispielsweise bei den detektierten Merkmalen beim Wechsel des überlappenden Bereiches) fehlt. Bei einigen Ausführungsformen berechnet die Schneidekostenberechnungskomponente 186 Intervallschneidekosten auf Grundlage einer Inkohärenz für jede Merkmalsspur, berechnet Intervallinkohärenzschneidekosten für verschiedene Merkmalsspuren verschieden und/oder berechnet Gesamtintervallinkohärenzschneidekosten durch Kombinieren der Beiträge aus jeder Merkmalsspur (beispielsweise Summe, gewichtete Summe und dergleichen).In some embodiments, the slice cost calculation component 186 calculates an interval slice cost for a candidate segment based on an incoherence of overlapping features from other feature lanes. In some cases, a "good" video segment contains coherent or similar content with respect to each feature track. As such, in an exemplary implementation, the slice costing component 186 penalizes candidate segments that lack coherence in an overlapping region of another feature track (e.g., the detected features when changing the overlapping region). In some embodiments, the slice cost calculation component 186 calculates an interval slice cost based on an incoherence for each feature lane, calculates an interval incoherence slice cost differently for different feature lanes, and/or calculates a total interval incoherence slice cost by combining the contributions from each feature lane (e.g., sum, weighted sum, and the like).

8 ist eine Darstellung einer exemplarischen Technik zum Berechnen von Intervallschneidekosten auf Grundlage einer Inkohärenz von detektierten Merkmalen. Bei einer exemplarischen Implementierung berechnet die Schneidekostenberechnungskomponente 186 Intervallinkohärenzschneidekosten für ein Kandidatensegment in Bezug auf eine Merkmalsspur auf Grundlage einer Anzahl von detektierten Merkmalsübergängen in einem Bereich der Merkmalsspur, der mit dem Kandidatensegment überlappt. In 8 überlappt das Kandidatensegment 810 beispielsweise mit zwei Übergängen in der Gesichtsspur 220 (Merkmalsgrenzen 855 und 865) derart, dass das Kandidatensegment 810 das Untersegment 850 (mit Gesicht1 bzw. face1 und Gesicht2 bzw. face2), das Untersegment 860 (ohne Gesichter) und das Untersegment 870 (mit Gesicht2 bzw. face2) einschließt. Im Gegensatz hierzu überlappt das Kandidatensegment 820 mit null Übergängen in der Gesichtsspur 805, sodass das Kandidatensegment 820 nur das Untersegment 880 (mit Gesicht1 bzw. face1 und Gesicht2 bzw. face2) einschließt. Bei einer exemplarischen Implementierung zählt die Schneidekostenberechnungskomponente 186 die Anzahl von detektierten Merkmalsübergängen in dem Bereich einer Merkmalsspur, der mit jedem Kandidatensegment überlappt, normiert die Anzahl von Übergängen (beispielsweise bezüglich der maximalen Anzahl von Übergängen in Bezug auf diese Merkmalsspur) und weist die normierte Anzahl von Übergängen als Intervallinkohärenzschneidekosten für ein Kandidatensegment zu. 8th 12 is an illustration of an example technique for calculating an interval cutting cost based on an incoherence of detected features. In an exemplary implementation, the slice cost calculation component 186 calculates an interval incoherence slice cost for a candidate segment relative to a feature track based on a number of detected feature transitions in an area of the feature track that overlaps the candidate segment. In 8th For example, candidate segment 810 overlaps two transitions in face track 220 (feature boundaries 855 and 865) such that candidate segment 810 includes sub-segment 850 (with face1 or face1 and face2 or face2), sub-segment 860 (with no faces), and sub-segment 870 (with Face2 or face2). In contrast, candidate segment 820 overlaps with zero transitions in face track 805, so candidate segment 820 only includes sub-segment 880 (having face1 or face1 and face2 or face2). In an exemplary implementation, the slice cost calculation component 186 counts the number of detected feature transitions in the region of a feature track that overlaps each candidate segment, normalizes the number of transitions (e.g., to the maximum number of transitions related to that feature track), and assigns the normalized number of transitions as an interval incoherence cutting cost for a candidate segment.

Bei einigen Ausführungsformen werden einige Übergänge (beispielsweise Merkmalsgrenzen) einem Maß der Stärke eines Übergangs zugeordnet (beispielsweise endOfSegmentScore, das eine Wahrscheinlichkeit dafür quantifiziert, dass ein vorhergehendes Sprachsegment ein themenbezogenes bzw. topisches Segment beschließt, eine Zuverlässigkeitsstufe dafür, dass ein Sprachsegment von einem neuen Sprecher gesprochen wird, ein Maß für die Ähnlichkeit von Einzelbildern in einer visuellen Szene). Als solches pönalisiert die Schneidekostenberechnungskomponente 186 in einigen Fällen ein Kandidatensegment auf Grundlage einer Zählung von überlappenden Merkmalsübergängen, die durch die Stärke eines Überganges gewichtet sind. Dies kann dazu dienen, die Inkohärenzschneidekosten auf Grundlage einer Inkohärenz von detektierten Merkmalen beispielsweise dort zu verringern, wo sich der Satz ändert, die Themen jedoch ähnlich sind oder wo sich die visuelle Szene ändert, jedoch trotzdem ähnlich aussieht.In some embodiments, some transitions (e.g., feature boundaries) are assigned a measure of the strength of a transition (e.g., endOfSegmentScore, which quantifies a probability that a previous speech segment will conclude a topical segment, a confidence level that a speech segment will be replaced by a new speaker spoken, a measure of the similarity of frames in a visual scene). As such, in some cases the slice costing component 186 penalizes a candidate segment based on a count of overlapping feature transitions weighted by the strength of a transition. This can serve to reduce the incoherence cutting cost based on incoherence of detected features, for example where the sentence changes but the themes are similar or where the visual scene changes but still looks similar.

Bei einigen Ausführungsformen berechnet die Schneidekostenberechnungskomponente 186 Intervallschneidekosten für ein Kandidatensegment auf Grundlage einer Anfrage. In einigen Fällen ist ein „gutes“ Videosegment entweder ausschließlich EIN oder ausschließlich AUS in Bezug auf die Anfrage (um beispielsweise saubere Suchergebnisse zu unterstützen). Bei einigen Implementierungen enthalten, wenn ein Nutzer beispielsweise nach einem „Elefanten“ fragt, die Segmente, die ausgegeben werden, idealerweise durchweg Elefanten oder überhaupt keine Elefanten. Als solches pönalisiert die Schneidekostenberechnungskomponente 186 bei einer exemplarischen Implementierung nur Kandidatensegmente, die teilweise EIN und teilweise AUS sind (Segmente, die für eine gewisse Zeit Elefanten aufweisen). 9A und 9B sind Darstellungen einer exemplarischen Technik zum Berechnen von Intervallschneidekosten auf Grundlage einer Anfrage. In 9A sind Kandidatensegmente 910 und 920 teilweise EIN und teilweise AUS, und in 9B sind Kandidatensegmente 930 und 940 ausschließlich EIN oder ausschließlich AUS. Bei einer exemplarischen Implementierung zählt die Schneidekostenberechnungskomponente 186 die Anzahl von Übergängen zwischen EIN- und AUS-Segmenten und normiert, wie vorstehend beschrieben worden ist. Bei einem weiteren Beispiel berechnet die Schneidekostenberechnungskomponente 186 den prozentualen Anteil der überlappenden Anfrage-EIN-Zeit zur Gesamtzeit in dem Kandidatensegment, der überlappenden Anfrage-AUS-Zeit zur Gesamtzeit in dem Kandidatensegment und weist niedrigere Schneidekosten zu, je näher das Verhältnis an 0 oder 1 ist.In some embodiments, slice cost calculation component 186 calculates an interval slice cost for a candidate segment based on a request. In some cases, a "good" video segment is either exclusively ON or exclusively OFF in relation to the query (e.g. to support clean search results). In some implementations, if a user asks for an "elephant," for example, the segments that are returned ideally contain all elephants, or no elephants at all. As such, in an exemplary implementation, the slice costing component 186 only penalizes candidate segments that are partially ON and partially OFF (segments that have elephants for some time). 9A and 9B 10 are illustrations of an example technique for calculating an interval cutting cost based on a query. In 9A candidate segments 910 and 920 are partially ON and partially OFF, and in 9B candidate segments 930 and 940 are all ON or all OFF. With an example In the implementation, the cut cost calculation component 186 counts the number of transitions between ON and OFF segments and normalizes as described above. In another example, the cutting cost calculation component 186 calculates the percentage of overlapping request ON time to total time in the candidate segment, overlapping request OFF time to total time in the candidate segment and assigns lower cutting costs the closer the ratio is to 0 or 1 is.

Zusammengefasst bedeutet dies, wie in 1A gezeigt ist, dass die Schneidekostenberechnungskomponente 186 Schneidekosten für verschiedene Kandidatensegmente auf Grundlage einer Grenze und/oder von Intervallbeiträgen berechnet und die Schneidekosten für ein Kandidatensegment als Kantengewichtung für die Kante, die das Kandidatensegment darstellt, zuweist. Sodann löst die Wegoptimierungskomponente 188 ein Problem des kürzesten Weges entlang des Graphen zur Berechnung einer optimalen Segmentierung beispielsweise unter Nutzung einer dynamischen Programmierung. Bei einer exemplarischen Implementierung werden Kandidatenwege ausgewählt, um eine vollständige und nicht überlappende Segmentierung zu erzeugen. Für jeden Kandidatenweg summiert die Wegoptimierungskomponente 188 die Kantengewichtungen und nimmt den Weg mit der niedrigsten Summe als optimalen Weg, der die optimale Segmentierung darstellt.In summary, this means, as in 1A shown is that the clip cost calculation component 186 calculates clip costs for various candidate segments based on a boundary and/or interval contributions and assigns the clip costs for a candidate segment as an edge weight for the edge representing the candidate segment. Then, the path optimization component 188 solves a shortest path problem along the graph to compute an optimal segmentation using, for example, dynamic programming. In an exemplary implementation, candidate paths are selected to create a complete and non-overlapping segmentation. For each candidate path, the path optimization component 188 sums the edge weights and takes the path with the lowest sum as the optimal path, representing the optimal segmentation.

Die vorstehende Diskussion impliziert eine exemplarische Implementierung der Videosegmentierungskomponente 180, bei der die Standardsegmentierungskomponente 164 die Berechnung einer exemplarischen Standardsegmentierung auslöst und die Suchsegmentierungskomponente 170 die Berechnung einer exemplarischen Suchsegmentierung auslöst. Eine weitere exemplarische Videosegmentierung ist eine Einrastpunktsegmentierung, die die Orte von Auswahleinrastpunkten für ein Video identifiziert. Wie nachstehend noch detaillierter erläutert wird, erfolgt eine exemplarische Nutzung einer Einrastpunktsegmentierung in einer Nutzerschnittstelle mit einem Videozeitstrahl zur Darstellung eines Videos (beispielsweise mit einem zusammengesetzten Zeitstrahl, der ausgewählte Videosegmente in einer Bearbeiterschnittstelle darstellt), wobei die Einrastpunkte, die von der Einrastpunktsegmentierung identifiziert werden, auf dem Zeitstrahl dargestellt und/oder zum Einrasten einer Auswahl von Videosegmenten benutzt werden, wenn ein Nutzer ein Ziehen bzw. Dragging entlang des Zeitstrahles oder eines entsprechenden Abschnittes des Transkripts vornimmt. Bei verschiedenen Ausführungsformen wird eine Einrastpunktsegmentierung zu einer beliebigen geeigneten Zeit berechnet (beispielsweise dann, wenn ein Videozeitstrahl angezeigt wird, eine Bearbeiterschnittstelle aktiviert wird, die Videosegmente, die von einem zusammengesetzten Zeitstrahl dargestellt werden sollen, identifiziert werden, und/oder zu einer beliebigen anderen Zeit). Bei der in 1A und 1B dargestellten exemplarischen Ausführungsform kommuniziert die Videointeraktionsengine 108 (beispielsweise das Videobearbeitungswerkzeug 130) der Videobearbeitungsanwendung 105 mit der Einrastpunktsegmentierungskomponente 172, um auszulösen, dass die Videosegmentierungskomponente 180 eine Einrastpunktsegmentierung berechnet.The foregoing discussion implies an example implementation of the video segmentation component 180 in which the default segmentation component 164 initiates the computation of an example default segmentation and the search segmentation component 170 initiates the computation of an example search segmentation. Another example video segmentation is snap point segmentation, which identifies the locations of selection snap points for a video. As discussed in more detail below, an example use of snap point segmentation in a user interface is with a video timeline for displaying a video (e.g., with a composite timeline representing selected video segments in an editor interface), where the snap points identified by the snap point segmentation are displayed on the timeline and/or used to snap a selection of video segments when a user drags along the timeline or a corresponding portion of the transcript. In various embodiments, a snap point segmentation is calculated at any suitable time (for example, when a video timeline is displayed, an editor interface is activated, the video segments to be represented by a composite timeline are identified, and/or at any other time ). At the in 1A and 1B In the exemplary embodiment illustrated, video interaction engine 108 (e.g., video editing tool 130) of video editing application 105 communicates with snappoint segmentation component 172 to trigger video segmentation component 180 to compute a snappoint segmentation.

Bei einer exemplarischen Implementierung einer Einrastpunktsegmentierung führt die Videosegmentierungskomponente 180 eine Segmentierungsroutine aus, die verschiedene Eingabeparameter annimmt, so beispielsweise designierte Merkmalsspuren (beispielsweise vorbestimmt, nutzerseitig ausgewählt und dergleichen), eine minimale oder maximale Solllänge eines Videosegmentes (die in einigen Fällen von der Zoomstufe, von einem Interaktionssteuer- bzw. Regelelement, das einem Nutzer präsentiert wird, und dergleichen abhängig ist), den Bereich eines Videos zur Segmentierung (beispielsweise jedes Videosegment, das zum Bearbeiten designiert ist, von dem zusammengesetzten Zeitstrahl dargestellt wird, und dergleichen), und/oder anderes. Bei einigen Ausführungsformen berechnet die Videosegmentierungskomponente 180 eine getrennte Einrastpunktsegmentierung für jedes Videosegment, das von einem zusammengesetzten Zeitstrahl dargestellt wird oder auf andere Weise zur Bearbeitung designiert ist.In an exemplary implementation of snap point segmentation, the video segmentation component 180 executes a segmentation routine that accepts various input parameters, such as designated feature tracks (e.g., predetermined, user selected, and the like), a minimum or maximum target length of a video segment (which in some cases depends on the zoom level, from an interaction control presented to a user and the like), the region of a video for segmentation (e.g., each video segment designated for editing is represented by the composite timeline, and the like), and/or other. In some embodiments, video segmentation component 180 computes a separate snap point segmentation for each video segment represented by a composite timeline or otherwise designated for processing.

Bei einer exemplarischen Implementierung einer Einrastpunktsegmentierung führt die Videosegmentierungskomponente 180 eine Segmentierungsroutine unter Nutzung einer beliebigen der hier beschriebenen Techniken aus. Die Kandidatengrenzauswahlkomponente 182 der Videosegmentierungskomponente 180 identifiziert Kandidatengrenzen beispielsweise als Kandidateneinrastpunkte von den Grenzen der Merkmalsbereiche in designierten Merkmalsspuren. Bei einer exemplarischen Ausführungsform gibt, wenn keine detektierten Merkmale oder Merkmalsbereiche verfügbar sind, die Kandidatengrenzauswahlkomponente 182 regelmäßig beabstandete Kandidateneinrastpunkte aus. Sind detektierte Merkmale und Merkmalsbereiche verfügbar, so berücksichtigt die Kandidatengrenzauswahlkomponente 182, ob Transkriptmerkmale verfügbar sind. Sind Transkriptmerkmale nicht verfügbar, so berechnet die Kandidatengrenzauswahlkomponente 182 Kandidateneinrastpunkte, die regelmäßig beabstandet sind (die beispielsweise etwa 500 ms auseinander sind), und rastet diese Punkte sodann an einer nächstliegenden Merkmalsgrenze aus einer der designierten Merkmalsspuren, die innerhalb einer Einrastschwelle (von beispielsweise 250 ms) ist, ein.In an exemplary implementation of snap point segmentation, the video segmentation component 180 executes a segmentation routine using any of the techniques described herein. The candidate boundary selection component 182 of the video segmentation component 180 identifies candidate boundaries as, for example, candidate snap points from the boundaries of feature regions in designated feature tracks. In an exemplary embodiment, when no detected features or feature regions are available, the candidate boundary selection component 182 outputs regularly spaced candidate snap points. If detected features and feature regions are available, the candidate limit selection component 182 considers whether transcript features are available. If transcript features are not available, the candidate limit selection component 182 computes candidate snap points that are regularly spaced (e.g., about 500 ms apart are), and then snaps those points to a nearest feature boundary from one of the designated feature tracks that is within a snap threshold (e.g., 250 ms).

Bei einer exemplarischen Ausführungsform, bei der Transkriptmerkmale verfügbar sind, iteriert die Kandidatengrenzauswahlkomponente 182 durch Merkmalsgrenzen für Transkriptmerkmale (beispielsweise Worte) in einer Reihenfolge und fügt dabei die Transkriptmerkmalsgrenzen (beispielsweise die Wortgrenzen) als Kandidateneinrastpunkte hinzu. Zusätzlich oder alternativ fügt, wenn eine Lücke zwischen aufeinanderfolgenden Transkriptmerkmalsgrenzen (beispielsweise zur Darstellung einer Wortdauer und/oder von Lücken zwischen Worten) größer als eine Schwelle (von beispielsweise 500 ms ist), die Kandidatengrenzauswahlkomponente 182 regelmäßig beabstandete Kandidateneinrastpunkte (die beispielsweise etwa 500 ms auseinander sind) in die Lücke ein. Bei einigen Ausführungsformen rastet die Kandidatengrenzauswahlkomponente 182 die hinzugefügten Punkte an einer nächstliegenden Nichttranskriptmerkmalsgrenze aus einer der designierten Merkmalsspuren, die innerhalb einer Einrastschwelle (von beispielsweise 250 ms) befindlich ist, ein. Es gibt nur einige wenige Arten dessen, Kandidatengrenzen als Kandidateneinrastpunkte zu designieren, wobei eine beliebige andere Technik zum Identifizieren von Kandidateneinrastpunkten zusätzlich oder alternativ implementiert werden kann, darunter die anderen hier beschriebenen Techniken zum Identifizieren von Kandidatengrenzen.In an exemplary embodiment where transcript features are available, candidate boundary selection component 182 iterates through feature boundaries for transcript features (e.g., words) in order, adding the transcript feature boundaries (e.g., word boundaries) as candidate snap points. Additionally or alternatively, when a gap between consecutive transcript feature boundaries (e.g., to represent word duration and/or gaps between words) is greater than a threshold (e.g., 500 ms), candidate boundary selection component 182 inserts regularly spaced candidate snap points (e.g., about 500 ms apart). are) in the gap. In some embodiments, the candidate boundary selection component 182 snaps the added points to a nearest non-transcript feature boundary from one of the designated feature lanes that is within a snapping threshold (e.g., 250 ms). There are only a few ways of designating candidate boundaries as candidate snap points, and any other technique for identifying candidate snap points may be additionally or alternatively implemented, including the other techniques for identifying candidate boundaries described herein.

Bei einigen Ausführungsformen baut die Graphenaufbaukomponente 184 der Videosegmentierungskomponente 180 einen Graphen auf, und zwar mit Knoten, die die Kandidateneinrastpunkte darstellen, Kanten, die Kandidatentrennungen zwischen Einrastpunkten (beispielsweise Kandidatensegmente) darstellen, und Kantengewichtungen, die von der Schneidekostenberechnungskomponente 186 der Videosegmentierungskomponente 180 berechnet werden. Bei einer exemplarischen Implementierung weist die Schneidekostenberechnungskomponente 186 Schneidekosten für ein Kandidatensegment zu, das das Einrasten an „guten“ Punkten fördert und/oder das Einrasten an „schlechten“ Punkten nicht fördert. Bei einem nicht beschränkenden Beispiel bestimmt die Schneidekostenberechnungskomponente 186 die Kantengewichtung zwischen zwei Knoten als (beispielsweise normierte) Summe von Grenzschneidekosten (wie beispielsweise vorstehend beschrieben worden ist) und Intervallschneidekosten für das Kandidatensegment. Mit Blick auf die Intervallschneidekosten sind in einigen Fällen Einrastpunkte, die zu naheliegend sind, gegebenenfalls nicht hilfreich. Als solches wird bei einer exemplarischen Ausführungsform eine minimale Solllänge zwischen Einrastpunkten (die beispielsweise von einer minimalen Videosegmentsolllänge dargestellt wird) auf Grundlage einer Minimalpixeltrennung bestimmt, was in einigen Fällen von der Zoomstufe bei der Betrachtung des Videozeitstrahles abhängt. Eine designierte Minimalpixeltrennung (beispielsweise 15 Pixel) wird beispielsweise auf eine entsprechende Dauer auf dem Zeitstrahl (beispielsweise auf Grundlage einer aktiven Zoomstufe) abgebildet, und es wird diese Dauer als minimales Sollintervall zwischen Einrastpunkten benutzt. Benutzt wird das minimale Sollintervall in einigen Fällen als harte Randbedingung (So werden beispielsweise Kandidatensegmenten, die kürzer als das minimale Intervall sind, unendliche Intervallschneidekosten zugewiesen), als weiche Randbedingung (So werden beispielsweise Kandidatensegmenten, die kürzer als das minimale Intervall sind, hohe Intervallschneidekosten von beispielsweise 10, 100, 1000 und dergleichen zugewiesen) oder anderes.In some embodiments, the graph building component 184 of the video segmentation component 180 builds a graph with nodes representing the candidate snap points, edges representing candidate separations between snap points (e.g., candidate segments), and edge weights calculated by the slice cost calculation component 186 of the video segmentation component 180. In an exemplary implementation, the slice cost calculation component 186 assigns a slice cost to a candidate segment that promotes snapping to "good" points and/or does not promote snapping to "bad" points. In one non-limiting example, the slice cost calculation component 186 determines the edge weight between two nodes as the (e.g., normalized) sum of a boundary slice cost (e.g., such as described above) and an interval slice cost for the candidate segment. In some cases, with interval cutting costs in mind, snap points that are too obvious may not be helpful. As such, in an exemplary embodiment, a minimum target length between snap points (represented, for example, by a minimum video segment target length) is determined based on minimum pixel separation, which in some cases depends on the zoom level when viewing the video timeline. For example, a designated minimum pixel separation (e.g. 15 pixels) is mapped to a corresponding duration on the timeline (e.g. based on an active zoom level) and this duration is used as the minimum target interval between snap points. The minimum target interval is used in some cases as a hard constraint (e.g., candidate segments shorter than the minimum interval are assigned an infinite interval cutting cost), as a soft constraint (e.g., candidate segments shorter than the minimum interval are assigned a high interval cutting cost of e.g. assigned 10, 100, 1000 and the like) or other.

Als solches berechnet die Schneidekostenberechnungskomponente 186 der Videosegmentierungskomponente 180 Kantengewichtungen für Kanten zwischen Knoten in dem Graphen, und die Wegoptimierungskomponente 188 der Videosegmentierungskomponente 180 löst ein Problem des kürzesten Weges entlang des Graphen zur Berechnung einer optimalen Segmentierung mit sich ergebenden Segmentgrenzen, die optimale Einrastpunkte darstellen, auf Grundlage der Schneidekosten.As such, the slice cost calculation component 186 of the video segmentation component 180 calculates edge weights for edges between nodes in the graph, and the path optimization component 188 of the video segmentation component 180 solves a shortest path problem along the graph to calculate optimal segmentation with resulting segment boundaries representing optimal snap points basis of cutting costs.

Eine weitere exemplarische Videosegmentierung ist eine Vorschaubildsegmentierung, die Orte auf einem Videozeitstrahl zur Darstellung mit verschiedenen Vorschaubildern identifiziert. Bei einer in 1A dargestellten exemplarischen Ausführungsform löst die Vorschaubildsegmentierungskomponente 174 aus, dass die Videosegmentierungskomponente 180 eine Vorschaubildsegmentierung berechnet. Wie nachstehend detaillierter erläutert wird, erfolgt die exemplarische Nutzung einer Vorschaubildsegmentierung in einer Nutzerschnittstelle mit einem Videozeitstrahl, der ein Video darstellt (beispielsweise ein zusammengesetzter Zeitstrahl, der ausgewählte Videosegmente in einer Bearbeiterschnittstelle darstellt), wobei die Vorschaubildorte, die von der Vorschaubildsegmentierung identifiziert werden, mit entsprechenden Videoeinzelbildern (Vorschaubilder) auf dem Zeitstrahl dargestellt werden. Bei verschiedenen Ausführungsformen wird die Vorschaubildsegmentierung zu einem beliebigen gegebenen Zeitpunkt berechnet (beispielsweise dann, wenn ein Videozeitstrahl angezeigt wird, eine Bearbeiterschnittstelle aktiviert wird, die Videosegmente, die von einem zusammengesetzten Zeitstrahl dargestellt werden sollen, identifiziert werden, und/oder zu einem beliebigen anderen Zeitpunkt). Bei der in 1A und 1B dargestellten exemplarischen Ausführungsform kommuniziert die Videointeraktionsengine 108 (beispielsweise das Videobearbeitungswerkzeug 130) der Videobearbeitungsanwendung 105 mit der Vorschaubildsegmentierungskomponente 174, um auszulösen, dass die Videosegmentierungskomponente 180 eine Vorschaubildsegmentierung berechnet.Another example video segmentation is thumbnail segmentation, which identifies locations on a video timeline for display with different thumbnails. At an in 1A In the exemplary embodiment illustrated, the preview image segmentation component 174 triggers the video segmentation component 180 to calculate a preview image segmentation. As explained in more detail below, the exemplary use of thumbnail segmentation in a user interface is with a video timeline representing video (e.g., a composite timeline depicting selected video segments in an editor interface), where the thumbnail locations identified by the thumbnail segmentation are included corresponding individual video images (preview images) are displayed on the timeline. In various embodiments, the preview image segmentation is calculated at any given time (for example, when a video timeline is displayed, an editor interface is activated, the video segments to be represented by a composite timeline are identified, and/or at any other time ). At the in 1A and 1B illustrated exemplary embodiment the video interaction engine 108 (e.g., the video editing tool 130) of the video editing application 105 communicates with the preview image segmentation component 174 to trigger the video segmentation component 180 to calculate a preview image segmentation.

Bei einer exemplarischen Implementierung einer Vorschaubildsegmentierung führt die Videosegmentierungskomponente 180 eine Segmentierungsroutine unter Nutzung einer beliebigen der hier beschriebenen Techniken durch. Bei einigen Ausführungsformen führt die Videosegmentierungskomponente 180 eine Segmentierungsroutine ähnlich wie bei der exemplarischen Implementierung der vorbeschriebenen Einrastpunktsegmentierung, jedoch mit den nachfolgenden zusätzlichen oder alternativen Aspekten aus. Die Kandidatengrenzauswahlkomponente 182 der Videosegmentierungskomponente 180 identifiziert Kandidatengrenzen beispielsweise als Kandidatenvorschaubildorte aus den Grenzen von Merkmalsbereichen in designierten Merkmalsspuren, die Graphenaufbaukomponente 184 der Videosegmentierungskomponente 180 baut einen Graphen auf, und zwar mit Knoten, die die Kandidatenvorschaubildorte darstellen, Kanten, die Kandidatentrennungen zwischen Vorschaubildorten (beispielsweise Kandidatensegmente) darstellen, und Kantengewichtungen, die von der Schneidekostenberechnungskomponente 186 der Videosegmentierungskomponente 180 berechnet werden.In an exemplary implementation of thumbnail segmentation, the video segmentation component 180 performs a segmentation routine using any of the techniques described herein. In some embodiments, video segmentation component 180 performs a segmentation routine similar to the example implementation of snap point segmentation described above, but with the following additional or alternative aspects. For example, the candidate boundary selection component 182 of the video segmentation component 180 identifies candidate boundaries as candidate preview image locations from the boundaries of feature regions in designated feature tracks, the graph builder component 184 of the video segmentation component 180 builds a graph with nodes representing the candidate preview image locations, edges representing candidate separations between preview image locations (e.g., candidate segments ) and edge weights calculated by the edit cost calculation component 186 of the video segmentation component 180 .

Bei einer exemplarischen Implementierung weist die Schneidekostenberechnungskomponente 186 Schneidekosten für ein Kandidatensegment zu, wodurch das Platzieren von Vorschaubildern an „guten“ Orten gefördert wird. Bei einem nicht beschränkenden Beispiel bestimmt die Schneidekostenberechnungskomponente 186 die Kantengewichtung zwischen zwei Knoten als (beispielsweise normierte) Summe von Grenzschneidekosten (beispielsweise mit Pönalisierung von Kandidatenvorschaubildorten, die innerhalb eines detektierten Merkmalsbereiches oder innerhalb eines Abschnittes des Videos mit einer detektierten Hochbewegung sind, und dergleichen) und Intervallschneidekosten für das Kandidatensegment (beispielsweise mit Pönalisierung von Kandidatenvorschaubildorten, bei denen der visuelle Unterschied zwischen zwei aufeinanderfolgenden Vorschaubildern klein ist, mit Pönalisierung von Vorschaubildtrennungen entsprechend einem Minimalpixelabstand für ein Vorschaubild, auf Grundlage einer Zoomstufe, und dergleichen).In an exemplary implementation, the crop cost calculation component 186 assigns a crop cost for a candidate segment, thereby promoting the placement of thumbnail images in "good" locations. In one non-limiting example, the clipping cost calculation component 186 determines the edge weight between two nodes as a (e.g., normalized) sum of boundary clipping costs (e.g., with penalization of candidate preview image locations that are within a detected feature area or within a portion of video with detected high motion, and the like) and Interval cutting costs for the candidate segment (eg, penalizing candidate thumbnail locations where the visual difference between two consecutive thumbnails is small, penalizing thumbnail separations according to a minimum pixel spacing for a thumbnail, based on a zoom level, and the like).

Mit Blick auf Grenzschneidekosten weist, um das Anzeigen von Vorschaubildern an „schlechten“ Schneidepunkten (beispielsweise innerhalb eines detektierten visuellen Merkmals aus einer anderen Merkmalsspur) nicht zu fördern, die Schneidekostenberechnungskomponente 186 in einigen Fällen niedrige Grenzschneidekosten Kandidatenvorschaubildorten auf Grundlage der Nähe zu einer visuellen Merkmalsgrenze (beispielsweise Gesicht, Szene) zu, weist hohe Grenzschneidekosten Kandidatenvorschaubildorten zu, die innerhalb eines detektierten Merkmalsbereiches befindlich sind, und/oder weist hohe Grenzschneidekosten Kandidatenvorschaubildorten zu, die innerhalb eines Abschnittes des Videos mit detektierter Hochbewegung sind (beispielsweise mit Detektion unter Nutzung eines oder mehrerer maschinell lernender Modelle der Merkmalsextraktionskomponente / Merkmalsextraktionskomponenten 162).With regard to boundary clipping costs, in order not to encourage displaying thumbnails at "bad" clipping points (e.g., within a detected visual feature from another feature track), the clipping cost calculation component 186 in some cases assigns low boundary clipping costs to candidate thumbnail image locations based on proximity to a visual feature boundary ( e.g., face, scene), assigns high border clipping cost to candidate preview image locations that are within a detected feature region, and/or assigns high border clipping cost to candidate preview image locations that are within a portion of video with detected high motion (e.g., with detection using one or more machine learning model of feature extraction component / feature extraction components 162).

Mit Blick auf Intervallschneidekosten bestimmt, um das Anzeigen von Vorschaubildern mit verschiedenem visuellem Content zu fördern, die Schneidekostenberechnungskomponente 186 in einigen Fällen Intervallschneidekosten für einen Kandidatenvorschaubildort auf Grundlage einer visuellen Ähnlichkeit und/oder auf Grundlage von Unterschieden beim visuellen Content zwischen zwei aufeinanderfolgenden Kandidatenvorschaubildern entsprechend den Start- und Endgrenzen einer Kandidatentrennung / eines Segmentes. Bei einem Beispiel, das ein Gesicht oder visuelle Szenenübergänge impliziert, berechnet die Schneidekostenberechnungskomponente 186 ein Maß für die Ähnlichkeit oder den Unterschied zwischen Kandidatenvorschaubildern/Videoeinzelbildern an Vorschaubildorten entsprechend den Start-und Endgrenzen einer Kandidatentrennung / eines Segmentes und pönalisiert Vorschaubildorte, an denen aufeinanderfolgende Vorschaubilder innerhalb einer Schwellenähnlichkeit sind. Zusätzlich oder alternativ können Vorschaubilder in einigen Fällen nicht näher als die Breite eines Vorschaubildes beabstandet sein. Bei einer exemplarischen Ausführungsform wird eine minimale Vorschaubildsolltrennung (die beispielsweise durch eine minimale Videosegmentsolllänge dargestellt wird) auf Grundlage einer Minimalpixeltrennung (beispielsweise einer gewünschten Vorschaubildbreite) bestimmt, die in einigen Fällen von der Zoomstufe bei der Betrachtung eines Videozeitstrahles abhängt. Eine designierte minimale Vorschaubildtrennung wird (beispielsweise auf Grundlage einer aktiven Zoomstufe) beispielsweise auf eine entsprechende Dauer auf dem Zeitstrahl abgebildet, wobei diese Dauer als minimales Sollintervall zwischen Vorschaubildern genutzt wird. Benutzt wird das minimale Sollintervall in einigen Fällen als harte Randbedingung (beispielsweise werden Kandidatentrennungen/Segmenten, die kürzer als das minimale Intervall sind, unendliche Intervallschneidekosten zugewiesen), weiche Randbedingung (beispielsweise werden Kandidatentrennungen/Segmenten, die kürzer als das minimale Intervall sind, hohe Intervallschneidekosten wie beispielsweise 10, 100, 1000 und dergleichen zugewiesen), oder anderes.With respect to interval clipping costs, to encourage displaying thumbnails with different visual content, the clipping cost calculation component 186 in some cases determines interval clipping costs for a candidate thumbnail location based on visual similarity and/or based on differences in visual content between two consecutive candidate thumbnails corresponding to the start - and end boundaries of a candidate separation / segment. In an example implying a face or visual scene transitions, the cutting cost calculation component 186 calculates a measure of the similarity or difference between candidate thumbnails/video frames at thumbnail locations corresponding to the start and end boundaries of a candidate separation/segment and penalizes thumbnail locations where consecutive thumbnails within are of a threshold similarity. Additionally or alternatively, in some cases, thumbnails may be spaced no closer than the width of a thumbnail. In an exemplary embodiment, a target minimum thumbnail separation (e.g., represented by a target minimum video segment length) is determined based on a minimum pixel separation (e.g., a desired thumbnail width), which in some cases depends on the zoom level when viewing a video timeline. For example, a designated minimum thumbnail separation is mapped (e.g., based on an active zoom level) to a corresponding duration on the timeline, which duration is used as the target minimum interval between thumbnails. The minimum target interval is used in some cases as a hard constraint (e.g., candidate separations/segments shorter than the minimum interval are assigned an infinite interval cutting cost), soft constraint (e.g., candidate separations/segments shorter than the minimum interval are assigned a high interval cutting cost). such as assigned 10, 100, 1000 and the like), or other.

Als solches berechnet die Schneidekostenberechnungskomponente 186 der Videosegmentierungskomponente 180 Kantengewichtungen für Kanten zwischen Knoten in dem Graphen, und die Wegoptimierungskomponente 188 der Videosegmentierungskomponente 180 löst ein Problem des kürzesten Weges entlang des Graphen zur Berechnung einer optimalen Segmentierung mit sich ergebenden Segmentgrenzen, die optimale Vorschaubildorte darstellen, auf Grundlage der Schneidekosten.As such, the slice cost calculation component 186 of the video segmentation component 180 calculates edge weights for edges between nodes in the graph, and the path optimization component 188 of the video segmentation component 180 solves a shortest path problem along the graph to calculate an optimal segmentation with resulting segment boundaries representing optimal preview image locations basis of cutting costs.

Zusätzlich oder alternativ berechnet die Videosegmentierungskomponente 180 bei einigen Ausführungsformen mehrere Stufen von Einrastpunktsegmentierungen entsprechend verschiedenen Videosegmentsolllängen (beispielsweise entsprechend verschiedenen Zoomstufen, verschiedenen eingegebenen Stufen, die von einem dem Nutzer präsentierten Interaktionssteuer- bzw. Regelelement eingestellt werden, und dergleichen mehr). Bei einigen Ausführungsformen beinhalten niedrigere Stufen einer Einrastpunktsegmentierung Einrastpunkte von höheren Stufen plus zusätzliche Einrastpunkte (So ist beispielsweise die Eingabe für eine Einrastpunktsegmentierung niedrigerer Stufe eine Einrastpunktsegmentierung höherer Stufe, die Einrastpunktsegmentierung läuft auf jedem Videosegment ab der nächsten Stufe aufwärts und dergleichen mehr). Dies sind nur einige wenige Beispiele; weitere Implementierungen sind in den Umfang der vorliegenden Offenbarung einbezogen.Additionally or alternatively, in some embodiments, the video segmentation component 180 calculates multiple levels of snap point segmentations corresponding to different target video segment lengths (e.g., corresponding to different zoom levels, different input levels set by an interaction control presented to the user, and the like). In some embodiments, lower levels of lockpoint segmentation include lockpoints from higher levels plus additional lockpoints (e.g., the input for a lower-level lockpoint segmentation is a higher-level lockpoint segmentation, the lockpoint segmentation runs on each video segment from the next level up, and so on). These are just a few examples; other implementations are included within the scope of the present disclosure.

Bei einigen Ausführungsformen berechnet die Videosegmentierungskomponente 180 mehrere Stufen von Segmentierungen für einen bestimmten Typ von Segmentierung (beispielsweise für eine Einrastpunktsegmentierung, eine Vorschaubildsegmentierung) entsprechend verschiedenen Zoomstufen. Zoomt ein Nutzer beispielsweise auf einem Videozeitstrahl hinein, so werden bestehende Einrastpunkte oder Vorschaubilder aus einer Segmentierung höherer Stufe in einigen Fällen in eine Segmentierung niedrigerer Stufe aufgenommen. Auf ähnliche Weise sind, wenn ein Nutzer auf einem Videozeitstrahl heraus zoomt, Einrastpunkte oder Vorschaubilder aus einer Segmentierung höherer Stufe ein Teilsatz der Einrastpunkte oder Vorschaubilder aus einer Segmentierung niedrigerer Stufe. Bei einigen Ausführungsformen baut die Graphenaufbaukomponente 184 der Videosegmentierungskomponente 180 einen Graphen auf, um eine derartige Hierarchie zu unterstützen, wobei verschiedene Videosegmentsolllängen für verschiedene Stufen der Hierarchie bestimmt werden (und zwar beispielsweise entsprechend verschiedenen Zoomstufen, verschiedenen eingegebenen Stufen, die von einem dem Nutzer präsentierten Interaktionssteuer- bzw. Regelelement eingestellt werden, und dergleichen). Als solches sind eine oder mehrere Videosegmentierungen bei einigen Ausführungsformen dem Wesen nach hierarchisch.In some embodiments, the video segmentation component 180 computes multiple levels of segmentations for a particular type of segmentation (e.g., snap-point segmentation, thumbnail segmentation) corresponding to different zoom levels. For example, when a user zooms in on a video timeline, existing snap points or thumbnails from a higher level segmentation are in some cases included in a lower level segmentation. Similarly, when a user zooms out on a video timeline, snap points or thumbnails from a higher level segmentation are a subset of the snap points or thumbnails from a lower level segmentation. In some embodiments, the graph building component 184 of the video segmentation component 180 builds a graph to support such a hierarchy, with different target video segment lengths being determined for different levels of the hierarchy (e.g., corresponding to different zoom levels, different input levels, the interaction control presented by a user - or control element are set, and the like). As such, in some embodiments, one or more video segmentations are hierarchical in nature.

Bei einigen Ausführungsformen generiert die Videosegmentierungskomponente 180 (oder irgendeine andere Komponente) eine Darstellung einer berechneten Videosegmentierung / von berechneten Videosegmentierungen 196 unter Nutzung einer oder mehrerer Datenstrukturen. Bei einer exemplarischen Implementierung werden Videosegmente einer Videosegmentierung / von Videosegmentierungen 196 durch Werte identifiziert, die Zeitstrahlorte (beispielsweise Grenzorte, Kennungen bzw. IDs und dergleichen), Segmentdauern, Trennungen zwischen Einrastpunkten oder Vorschaubildern und/oder andere Darstellungen darstellen oder sich hierauf beziehen. Bei einer exemplarischen Implementierung, die eine hierarchische Segmentierung impliziert, wird eine hierarchische Segmentierung unter Nutzung einer zweidimensionalen Feldanordnung bzw. eines solchen Arrays dargestellt, wobei die Dimensionen der Feldanordnung bzw. des Arrays verschiedenen Stufen der Segmentierung entsprechen und die Werte, die in jeder Dimension der Feldanordnung bzw. des Arrays gespeichert sind, die Videosegmente auf einer entsprechenden Stufe der Hierarchie darstellen.In some embodiments, the video segmentation component 180 (or any other component) generates a representation of computed video segmentation(s) 196 using one or more data structures. In an exemplary implementation, video segments of video segmentation(s) 196 are identified by values representing or relating to timeline locations (e.g., border locations, identifiers, and the like), segment durations, separations between snap points or thumbnails, and/or other representations. In an exemplary implementation that implies hierarchical segmentation, hierarchical segmentation is represented using a two-dimensional array, where the dimensions of the array correspond to different levels of segmentation, and the values contained in each dimension of the Arrays are stored representing video segments at a corresponding level of the hierarchy.

In einigen Fällen bleiben eine einzige Kopie eines Videos und eine Darstellung von Grenzorten für eine oder mehrere Segmentierungen erhalten. Zusätzlich oder alternativ wird bei einer exemplarischen Ausführungsform, die einen bestimmten Typ von Videosegmentierung einer Videodatei (beispielsweise eine Standardvideosegmentierung) impliziert, die Videodatei an Grenzorten von Videosegmenten aus der (beispielsweise Standard-)Videosegmentierung und/oder Merkmalsgrenzen aus einer Merkmalsspur (beispielsweise visuelle Szenengrenzen) zu Effizienzzwecken in Fragmente aufgebrochen. Es ist wahrscheinlich, dass Nutzer motivationshalber an Grenzen der Videosegmente aus einer Standardvideosegmentierung das Abspielen anfangen oder anhalten. Herkömmliche Techniken, die Fragmente mit gleichmäßiger Beabstandung generieren, erfordern wahrscheinlich das Anfangen oder Anhalten von Videos in der Mitte eines Fragmentes, was wiederum Codec- und/oder Abspielineffizienzen ergibt. Auf ähnliche Weise ist wahrscheinlich, dass gleich beabstandete Fragmente ein Neucodieren erfordern und daher beim Exportieren aufwändiger sind. Als solches macht die Nutzung von Grenzen aus einer oder mehreren Videosegmentierungen (beispielsweise eine Standardsegmentierung) und/oder Merkmalsgrenzen aus einer Merkmalsspur (beispielsweise visuelle Szenegrenzen) als Schlüsseleinzelbilder (keyframes) zum Anfangen eines neuen Fragmentes die Vorgänge des Abspielens, Splicings bzw. Verbindens und/oder Exportierens rechentechnisch effizienter.In some cases, a single copy of a video and a representation of boundary locations are preserved for one or more segmentations. Additionally or alternatively, in an exemplary embodiment implying a particular type of video segmentation of a video file (e.g., standard video segmentation), the video file is segmented at boundary locations of video segments from the (e.g., standard) video segmentation and/or feature boundaries from a feature track (e.g., visual scene boundaries) broken into fragments for efficiency purposes. Users are likely to start or stop playing at boundaries of video segments from a standard video segmentation for motivational reasons. Conventional techniques that generate evenly spaced fragments are likely to require video to start or stop in the middle of a fragment, which in turn results in codec and/or playback inefficiencies. Similarly, evenly spaced fragments are likely to require re-encoding and are therefore more expensive to export. As such, the use of boundaries from one or more video segmentations (e.g., a standard segmentation) and/or feature boundaries from a feature track (e.g., visual scene boundaries) as keyframes to begin a new fragment renders the operations of playing, splicing, and/or or exporting is computationally more efficient.

Interaktion mit VideosegmentierungenInteraction with video segmentations

Im vorherigen Abschnitt wurden exemplarische Techniken zum Segmentieren eines Videos beispielsweise zur Vorbereitung auf eine Videobearbeitung oder andere Videointeraktionen beschrieben. Durch Identifizieren von semantisch sinnvollen Orten des Videos generiert das Videosegmentierungswerkzeug 155 eine strukturierte Darstellung des Videos, die eine effiziente und intuitive Struktur zum Interagieren mit dem Video beispielsweise über die Videointeraktionsengine 108 der Videobearbeitungsanwendung 105 in 1A und 1B bereitstellt.The previous section described exemplary techniques for segmenting a video, for example, in preparation for video editing or other video interactions. By identifying semantically meaningful locations of the video, the video segmentation tool 155 generates a structured representation of the video that provides an efficient and intuitive structure for interacting with the video, for example via the video interaction engine 108 of the video editing application 105 in 1A and 1B provides.

Die Videointeraktionsengine 108 stellt eine Schnittstellenfunktionalität bereit, die ermöglicht, dass ein Nutzer ein Video durch Interaktionen mit einer oder mehreren Segmentierungen des Videos und/oder detektierten Merkmalen des Videos auswählt, durch dieses navigiert, es abspielt und/oder bearbeitet. Bei der exemplarischen Implementierung in 1B beinhaltet die Videointeraktionsengine 108 ein Videodurchlaufwerkzeug 110, das eine Sucherschnittstelle bereitstellt, und ein Videobearbeitungswerkzeug 130, das eine Bearbeiterschnittstelle bereitstellt. Das Videodurchlaufwerkzeug 110 (beispielsweise die Sucherschnittstelle) und/oder das Videobearbeitungswerkzeug 130 (beispielsweise die Bearbeiterschnittstelle) präsentieren ein oder mehrere Interaktionselemente, die verschiedene Interaktionsmodalitäten zum Auswählen, Navigieren, Abspielen und/oder Bearbeiten eines Videos auf Grundlage einer oder mehrerer Videosegmentierungen 196 bereitstellen. In 1 B beinhaltet das Videodurchlaufwerkzeug 110 (beispielsweise die Sucherschnittstelle) verschiedene Werkzeuge, so beispielsweise interaktive Kacheln 112, ein für ausgewählte Clips gedachtes Feld 114, ein Standardneusegmentierungswerkzeug 116, ein Suchneusegmentierungswerkzeug 118, ein Transkriptwerkzeug 120, ein für den segmentierten Zeitstrahl gedachtes Werkzeug 122 und ein Videoabspielwerkzeug 124. In 1B beinhaltet das Videobearbeitungswerkzeug 130 (beispielsweise die Bearbeiterschnittstelle) verschiedene Werkzeuge, so beispielsweise ein für einen zusammengesetzten Clipzeitstrahl gedachtes Werkzeug 132, ein Suchneusegmentierungswerkzeug 142 und ein Videoabspielwerkzeug 144. Bei verschiedenen Ausführungsformen sind diese Werkzeuge unter Nutzung von Code implementiert, der eine Präsentation eines entsprechenden Interaktionselementes / von entsprechenden Interaktionselementen veranlasst und Eingaben, die mit dem Interaktionselement / den Interaktionselementen interagieren, detektiert und interpretiert.The video interaction engine 108 provides interface functionality that allows a user to select, navigate, play, and/or edit a video through interactions with one or more segmentations of the video and/or detected features of the video. In the exemplary implementation in 1B For example, the video interaction engine 108 includes a video walkthrough tool 110 that provides a viewfinder interface and a video editing tool 130 that provides an editor interface. The video browsing tool 110 (e.g., the viewfinder interface) and/or the video editing tool 130 (e.g., the editor interface) present one or more interaction elements that provide various interaction modalities for selecting, navigating, playing and/or editing a video based on one or more video segmentations 196. In 1 B The video walkthrough tool 110 (e.g., the viewfinder interface) includes various tools such as interactive tiles 112, a selected clips field 114, a default resegmentation tool 116, a search resegmentation tool 118, a transcript tool 120, a segmented timeline tool 122, and a video playback tool 124 . In 1B The video editing tool 130 (e.g., the editor interface) includes various tools, such as a composite clip timeline tool 132, a search resegmentation tool 142, and a video playback tool 144. In various embodiments, these tools are implemented using code that provides a presentation of a corresponding interaction element/ caused by corresponding interaction elements and inputs that interact with the interaction element / the interaction elements, detected and interpreted.

Mit Blick auf das Videodurchlaufwerkzeug 110 (beispielsweise die Sucherschnittstelle) stellen die interaktiven Kacheln 112 die Videosegmente in einer Standardsegmentierung und detektierte Merkmale (beispielsweise die detektierten Merkmale 194 von 1A) in jedem Videosegment dar. Nutzer können Videosegmente, die von den interaktiven Kacheln 112 und/oder den detektierten Merkmalen 194 in den interaktiven Kacheln 112 dargestellt werden, auswählen, zu entsprechenden Teilen des Videos springen und/oder entsprechende Videosegmente zu dem für ausgewählte Clips gedachten Feld 114 hinzufügen. Das Standardneusegmentierungswerkzeug 116 berechnet die Standardsegmentierung auf Grundlage von ausgewählten Merkmalskategorien (beispielsweise Merkmalsspuren) neu und aktualisiert die interaktiven Kacheln 112, um die aktualisierte Standardsegmentierung darzustellen. Das Suchneusegmentierungswerkzeug 118 löst eine Suchsegmentierung aus, die die Standardsegmentierung auf Grundlage einer Anfrage neusegmentiert. Das Transkriptwerkzeug 120 präsentiert den Abschnitt des Transkriptes entsprechend dem Teil eines Videos, das in dem Videoabspielwerkzeug 124 angezeigt wird. Bei einigen Ausführungsformen können Nutzer einen Abschnitt des Transkripts auswählen und ein entsprechendes Videosegment zu dem für ausgewählte Clips gedachten Feld 114 hinzufügen. Das für den segmentierten Zeitstrahl gedachte Werkzeug 122 stellt einen Videozeitstrahl eines Videos, das auf Grundlage einer aktiven Segmentierung segmentiert worden ist, bereit, und das Videoabspielwerkzeug 124 spielt einen ausgewählten Abschnitt eines Videos ab.Looking at the video walkthrough tool 110 (e.g., the viewfinder interface), the interactive tiles 112 present the video segments in a standard segmentation and detected features (e.g., the detected features 194 of 1A ) in each video segment. Users can select video segments represented by the interactive tiles 112 and/or the detected features 194 in the interactive tiles 112, jump to corresponding parts of the video, and/or corresponding video segments to that intended for selected clips Add field 114. The default re-segmentation tool 116 recalculates the default segmentation based on selected feature categories (e.g., feature tracks) and updates the interactive tiles 112 to reflect the updated default segmentation. The search re-segmentation tool 118 initiates a search segmentation that re-segments the default segmentation based on a query. Transcript tool 120 presents the portion of the transcript corresponding to the portion of a video displayed in video playback tool 124 . In some embodiments, users can select a portion of the transcript and add a corresponding video segment to the selected clips field 114 . The segmented timeline intended tool 122 provides a video timeline of video that has been segmented based on active segmentation, and the video playback tool 124 plays a selected portion of a video.

In Bezug auf das Videobearbeitungswerkzeug 130 (beispielsweise die Bearbeiterschnittstelle) präsentiert das für den zusammengesetzten Clipzeitstrahl gedachte Werkzeug 132 einen zusammengesetzten Videozeitstrahl zur Darstellung eines zusammengesetzten Videos, das von den in der Sucherschnittstelle ausgewählten Videosegmenten gebildet wird. Bei diesem Beispiel beinhaltet das für den zusammengesetzten Clipzeitstrahl gedachte Werkzeug 132 das Merkmalsvisualisierungswerkzeug 134, das detektierte Merkmale auf dem Zeitstrahl darstellt, das Marquee-Auswahl- und Einrastwerkzeug 136, das Einrastpunkte auf dem Zeitstrahl darstellt und/oder eine Auswahl an den Einrastpunkten einrastet, das Vorschaubildvorschauwerkzeug 138, das Vorschaubilder auf dem Zeitstrahl darstellt, und das Zoom-/Scrollleistenwerkzeug 140, das die Zoomstufe und die Position des Zeitstrahles steuert bzw. regelt. Das Suchneusegmentierungswerkzeug 142 löst eine Suchsegmentierung aus, die die Videosegmente in dem zusammengesetzten Video auf Grundlage einer Anfrage neusegmentiert. Das Videoabspielwerkzeug 144 spielt einen ausgewählten Abschnitt eines Videos ab. Das Bearbeiterfeld 146 stellt eine beliebige Anzahl von Bearbeitungsfunktionen für ein ausgewähltes Videosegment / ausgewählte Videosegmente bereit, so beispielsweise für stilistische Verfeinerungen, die Content umwandeln, die Dauer beeinflussende Verfeinerungen, die Content entfernen, und/oder Kontextfunktionen, die vom ausgewählten Content abhängen. Die Funktionalität des Videodurchlaufwerkzeuges 110, des Videobearbeitungswerkzeuges 130 und anderer exemplarischer Videointeraktionswerkzeuge wird nachstehend detaillierter anhand 10 bis 15 beschrieben.With respect to the video editing tool 130 (e.g., the editor interface), the composite clip timeline tool 132 presents a composite video timeline for displaying composite video formed from the video segments selected in the viewfinder interface. In this example, the tool 132 intended for the composite clip timeline includes the feature visualization tool 134, which displays detected features on the timeline, the marquee selection and snapping tool 136, which displays snap points on the timeline and/or snaps a selection to the snap points that Thumbnail preview tool 138, which displays thumbnails on the timeline, and zoom/scrollbar tool 140, which controls the zoom level and position of the timeline. The search re-segmentation tool 142 initiates a search segmentation that re-segments the video segments in the composite video based on a query. The video playback tool 144 plays a selected portion of a video. The editor panel 146 provides any number of editing functions for a selected video segment(s), such as stylistic ones Refinements that transform content, duration affecting refinements that remove content, and/or context functions that depend on the selected content. The functionality of the video walkthrough tool 110, the video editing tool 130, and other exemplary video interaction tools are discussed in more detail below 10 until 15 described.

10 ist eine Darstellung einer exemplarischen Sucherschnittstelle 1000 zum Durchlaufen von Standard- und/oder Suchsegmentierungen. Bei dem in 10 dargestellten Beispiel beinhaltet die Sucherschnittstelle 1000 einen Videozeitstrahl 1005 (der beispielsweise von dem für den segmentierten Zeitstrahl gedachten Werkzeug 122 von 1 B gesteuert bzw. geregelt wird), ein Videoeinzelbild 1010 (das beispielsweise von dem Videoabspielwerkzeug 124 von 1B gesteuert bzw. geregelt wird), interaktive Kacheln 1020 (die beispielsweise von den interaktiven Kacheln 112 von 1B gesteuert bzw. geregelt werden), eine Suchleiste 1060 (die beispielsweise von dem Suchneusegmentierungswerkzeug 118 von 1B gesteuert wird), ein Transkript 1080 (das beispielsweise von dem Transkriptwerkzeug 120 von 1B gesteuert bzw. geregelt wird) und ein für ausgewählte Clips gedachtes Feld 1090 (das beispielsweise von dem für ausgewählte Clips gedachten Feld 114 von 1 B gesteuert bzw. geregelt wird). 10 10 is an illustration of an example searcher interface 1000 for traversing standard and/or search segmentations. At the in 10 For example, as illustrated, viewfinder interface 1000 includes a video timeline 1005 (e.g., derived from segmented timeline tool 122 of FIG 1 B controlled), a video frame 1010 (e.g., played by the video playback tool 124 of FIG 1B is controlled), interactive tiles 1020 (e.g., derived from interactive tiles 112 of 1B controlled), a search bar 1060 (e.g., provided by the search resegmentation tool 118 of 1B controlled), a transcript 1080 (e.g., generated by the transcription tool 120 of 1B is controlled) and a selected clips field 1090 (which differs, for example, from the selected clips field 114 of 1 B is controlled or regulated).

In einem exemplarischen Nutzungsfall lädt ein Nutzer ein Video zur Bearbeitung beispielsweise unter Nutzung eines Dateiexplorers, um den Ort des Videos (nicht dargestellt) zu identifizieren. In einigen Fällen wird das Video beim Empfangen eines Befehls, das Video zu laden, zum Generieren einer oder mehrerer Segmentierungen (beispielsweise von dem Videoeingliederungswerkzeug 160 und/oder der Videosegmentierungskomponente 180 von 1A) eingegliedert (ingested), und es wird eine Standardsegmentierung geladen. Bei einer exemplarischen Implementierung präsentiert die Sucherschnittstelle 1000, wenn ein Video geladen wird und/oder ein Nutzer die Sucherschnittstelle 1000 öffnet, den Videozeitstrahl 1005, der eine aktive Videosegmentierung, so beispielsweise eine Standardsegmentierung (beispielsweise durch Anzeigen von Segmentgrenzen als Unterblendung (underlay)) darstellt, und/oder die Sucherschnittstelle 1000 präsentiert eine visuelle Übersicht über ein Video unter Nutzung der interaktiven Kacheln 1020 (beispielsweise der interaktiven Kacheln 112 von 1), die Videosegmente in einer aktiven Videosegmentierung, so beispielsweise einer Standardsegmentierung, darstellen. Bei einer exemplarischen Implementierung wird eine Standardsegmentierung aus detektierten Sätzen, Gesichtern und visuellen Szenen berechnet, und es werden die interaktiven Kacheln 1020 in einem Gitter aus Reihen und Spalten angeordnet.In an exemplary use case, a user loads a video for editing, for example using a file explorer, to identify the location of the video (not shown). In some cases, upon receiving a command to load the video to generate one or more segmentations (e.g., from video incorporation tool 160 and/or video segmentation component 180 of 1A ) is ingested and a default segmentation is loaded. In an exemplary implementation, when a video is loaded and/or a user opens the viewfinder interface 1000, the viewfinder interface 1000 presents the video timeline 1005 representing active video segmentation, such as standard segmentation (e.g., by displaying segment boundaries as an underlay). , and/or viewfinder interface 1000 presents a visual overview of a video using interactive tiles 1020 (e.g., interactive tiles 112 of FIG 1 ) that represent video segments in an active video segmentation, such as a standard segmentation. In an example implementation, a standard segmentation is computed from detected sentences, faces, and visual scenes, and the interactive tiles 1020 are arranged in a grid of rows and columns.

Bei einigen Ausführungsformen beinhaltet die Sucherschnittstelle 1000 ein oder mehrere Interaktionselemente (die beispielsweise von dem Standardneusegmentierungswerkzeug 116 von 1B gesteuert werden), die einen oder mehrere Eingabeparameter zur Standardsegmentierung präsentieren, wodurch ermöglicht wird, dass ein Nutzer die visuelle Übersicht (beispielsweise durch Designieren einer oder mehrerer Merkmalsspuren für die Standardsegmentierung) ändert. Exemplarische visuelle Übersichten beinhalten eine auf Menschen abstellende Übersicht (beispielsweise auf Grundlage von detektierten Gesichtern, detektierten Sprechern und/oder detektierten Transkriptmerkmalen), eine auf visuelle Szenen abstellende Übersicht (beispielsweise auf Grundlage von detektierten visuellen Szenen und/oder detektierten Transkriptmerkmalen), eine auf Ton abstellende Übersicht (beispielsweise auf Grundlage von detektierten Audioklassifizierungen und/oder detektierten Transkriptmerkmalen). Auf Grundlage einer oder mehrerer designierter Merkmalsspuren und/oder Übersichten wird die Standardsegmentierung neuberechnet, und es werden die interaktiven Kacheln 1020 aktualisiert, um die aktualisierte Standardsegmentierung darzustellen. Als solches ermöglicht die Neusegmentierung der Standardsegmentierung, dass ein Nutzer ein Video auf verschiedene Weisen schnell visualisiert.In some embodiments, the searcher interface 1000 includes one or more interaction elements (e.g., provided by the standard re-segmentation tool 116 of 1B controlled) presenting one or more input parameters to the default segmentation, thereby allowing a user to change the visual overview (e.g., by designating one or more feature traces to the default segmentation). Exemplary visual reviews include a human-based review (e.g., based on detected faces, detected speakers, and/or detected transcript features), a visual-scene based review (e.g., based on detected visual scenes and/or detected transcript features), an audio-based review descriptive overview (e.g. based on detected audio classifications and/or detected transcript features). Based on one or more designated feature tracks and/or overviews, the default segmentation is recalculated and the interactive tiles 1020 are updated to reflect the updated default segmentation. As such, re-segmentation of the default segmentation allows a user to quickly visualize a video in various ways.

Bei der Sucherschnittstelle 1000 kann ein Nutzer über den Videozeitstrahl 1005 (der das Videoeinzelbild 1010 des Videos aktualisiert) wischen, das Transkript 1080 scannen oder die interaktiven Kacheln 1020 durchsehen. Jede der interaktiven Kacheln 1020 (beispielsweise die interaktive Kachel 1030) beinhaltet ein Vorschaubild (beispielsweise das Vorschaubild 1032 des ersten Videoeinzelbildes des Videosegmentes, das von der interaktiven Kachel 1030 dargestellt wird) und eine Darstellung eines oder mehrerer detektierter Merkmale und/oder eines entsprechenden Merkmalsbereiches, so beispielsweise ein Transkript (beispielsweise das Transkript 1034) ab dem Anfang dieses Videosegmentes, detektierte Gesichter (beispielsweise die Gesichter 1036) aus diesem Videosegment und einen oder mehrere der eigenen facettenbestückten Zeitstrahlen hiervon (beispielsweise den für visuelle Szenen gedachten Zeitstrahl 1038, den facettenbestückten Audiozeitstrahl 1040). Bei einigen Ausführungsformen stellt ein facettenbestückter Zeitstrahl die detektierten Facetten in einer bestimmten Kategorie von detektierten Merkmalen (beispielsweise visuelle Szenen, Audioklassifizierungen) und deren jeweilige Orte in diesem Videosegment dar. Jede der interaktiven Kacheln 1020 ermöglicht, dass der Nutzer durch das Video navigiert, indem er auf eine der Facetten auf dem facettenbestückten Zeitstrahl klickt, wodurch ein Sprung des Videoeinzelbildes 1010 zu einem entsprechenden Teil des Videos erfolgt. Bei einigen Ausführungsformen kann ein Nutzer die visualisierten Merkmale in den interaktiven Kacheln 1020 anpassen, indem er die Visualisierungen für eine bestimmte Kategorie von Merkmal einschaltet/ausschaltet (beispielsweise durch Klicken auf die Schaltflächen 1062, 1064, 1066 oder 1068, um die Visualisierungen für Menschen, Töne, visuelle Szenen beziehungsweise visuelle Artefakte zu steuern bzw. zu regeln).In the viewfinder interface 1000, a user can swipe the video timeline 1005 (which updates the video frame 1010 of the video), scan the transcript 1080, or browse the interactive tiles 1020. Each of the interactive tiles 1020 (e.g., the interactive tile 1030) includes a preview image (e.g., the preview image 1032 of the first video frame of the video segment displayed by the interactive tile 1030) and a representation of one or more detected features and/or a corresponding feature area, such as a transcript (e.g., transcript 1034) from the beginning of that video segment, detected faces (e.g., faces 1036) from that video segment, and one or more of its own faceted timelines (e.g., visual scenes timeline 1038, faceted audio timeline 1040 ). In some embodiments, a faceted timeline represents the detected facets in a particular category of detected features (e.g., visual scenes, audio classifications) and their respective locations in that video segment. Each of the interactive tiles 1020 allows the user to navigate through the video by clicks on one of the facets on the faceted timeline, causing the video frame 1010 to jump to a corresponding part of the video is done. In some embodiments, a user may customize the visualized features in the interactive tiles 1020 by toggling on/off the visualizations for a particular category of feature (e.g., by clicking buttons 1062, 1064, 1066, or 1068 to turn on the visualizations for humans, to control or regulate sounds, visual scenes or visual artifacts).

11A und 11B sind Darstellungen von exemplarischen interaktiven Kacheln 1110 und 1150. Die interaktive Kachel 1110 beinhaltet ein Vorschaubild 1115 des ersten Videoeinzelbildes des Videosegmentes, das von der interaktiven Kachel 1110 dargestellt wird, ein Transkript 1120 ab dem Anfang dieses Videosegmentes (das durch einen Platzhaltertext dargestellt ist), einen für visuelle Szenen gedachten Zeitstrahl 1125, einen facettenbestückten Audiozeitstrahl 1140, die Clipdauer und eine Hinzufüge-Schaltfläche 1148 zum zu einer Auswahl erfolgenden Hinzufügen des Videosegmentes, das von der interaktiven Kachel 1110 dargestellt wird. Bei diesem Beispiel ist der für visuelle Szenen gedachte Zeitstrahl 1125 auf Grundlage der Instanzen von detektierten visuellen Szenen, die in dem von der interaktiven Kachel 1110 dargestellten Videosegment auftauchen, facettenbestückt. Insbesondere stellt das Segment 1130 eine visuelle Szene dar, während das Segment 1135 eine weitere Szene darstellt. Darüber hinaus ist der facettenbestückte Audiozeitstrahl 1140 auf Grundlage der Instanzen von detektierten Audioklassifizierungen (beispielsweise Musik, Sprache, anderes), die in dem von der interaktiven Kachel 1110 dargestellten Videosegment auftauchen, facettenbestückt. Insbesondere stellen die Segmente 1144 eine Audioklassifizierung (beispielsweise Sprache) dar, während die Segmente 1142 eine andere Audioklassifizierung (beispielsweise Musik) darstellen. Bei diesem Beispiel kann ein Nutzer auf eine der Facetten aus einem facettenbestückten Zeitstrahl (beispielsweise die Segmente 1130, 1135, 1142, 1144) klicken, um zu diesem Teil des Videos zu springen. Bei einem weiteren Beispiel beinhaltet die interaktive Kachel 1150 eine Darstellung der detektierten Gesichter 1160 in dem von der interaktiven Kachel 1160 dargestellten Videosegment. Visualisierungen von detektierten Merkmalen wie diesen unterstützen den Nutzer beim Durchlaufen des Videos, ohne das Video abzuspielen. 11A and 11B 11 are representations of example interactive tiles 1110 and 1150. Interactive tile 1110 includes a thumbnail 1115 of the first video frame of the video segment represented by interactive tile 1110, a transcript 1120 from the beginning of that video segment (represented by placeholder text), a timeline intended for visual scenes 1125, a faceted audio timeline 1140, the clip duration, and an add button 1148 for adding the video segment represented by the interactive tile 1110 to a selection. In this example, the timeline 1125 intended for visual scenes is faceted based on the instances of detected visual scenes that appear in the video segment represented by the interactive tile 1110 . In particular, segment 1130 represents a visual scene, while segment 1135 represents another scene. In addition, the faceted audio timeline 1140 is faceted based on the instances of detected audio classifications (e.g., music, speech, other) that appear in the video segment represented by the interactive tile 1110 . In particular, segments 1144 represent one audio classification (e.g., speech), while segments 1142 represent another audio classification (e.g., music). In this example, a user can click on one of the facets from a faceted timeline (e.g. segments 1130, 1135, 1142, 1144) to jump to that part of the video. In another example, the interactive tile 1150 includes a representation of the detected faces 1160 in the video segment represented by the interactive tile 1160 . Visualizations of detected features like these help the user to step through the video without playing the video.

Bei einigen Ausführungsformen aktualisiert das Schweben über einem Teil einer interaktiven Kachel, so beispielsweise über einem facettenbestückten Zeitstrahl, einem Vorschaubild und/oder anderswo in der interaktiven Kachel, das Vorschaubild in der interaktiven Kachel oder präsentiert ein Pop-up mit einem Vorschaubild (beispielsweise ein Pop-up-Vorschaubild 1055 von 10) aus einem entsprechenden Teil des Videos. Die horizontale Eingabeposition (beispielsweise die x-Position einer Maus oder Klickeingabe) relativ zu einer Gesamtbreite (beispielsweise bei einem facettenbestückten Zeitstrahl, einem Vorschaubild, einer interaktiven Kachel, über denen das Schweben erfolgt) wird auf eine prozentuale Versetzung in das von der interaktiven Kachel dargestellte Videosegment abgebildet, und es wird ein entsprechendes Vorschaubild nachgeschlagen und angezeigt. Bei einigen Ausführungsformen sind gleichmäßig abgetastete Videoeinzelbilder als Vorschaubilder verfügbar. Bei anderen Ausführungsformen werden die verfügbaren Vorschaubilder durch eine Vorschaubildsegmentierung identifiziert (wobei beispielsweise die nächstliegenden verfügbaren Vorschaubilder oder die verfügbaren Vorschaubilder innerhalb eines Schwellenabstandes der Horizontaleingabeposition ausgegeben werden). Als solches kann der Nutzer durch einen Satz von Vorschaubildern wischen, indem er ein Schweben über einem oder mehreren Teilen einer interaktiven Kachel durchführt.In some embodiments, hovering over a portion of an interactive tile, such as a faceted timeline, a thumbnail, and/or elsewhere in the interactive tile, updates the thumbnail in the interactive tile or presents a pop-up with a thumbnail (e.g., a pop -up thumbnail 1055 of 10 ) from a relevant part of the video. The horizontal input position (for example, the x-position of a mouse or click input) relative to an overall width (for example, a faceted timeline, thumbnail, interactive tile to hover over) is mapped to a percentage offset into that represented by the interactive tile video segment is mapped and a corresponding thumbnail is looked up and displayed. In some embodiments, evenly sampled video frames are available as thumbnails. In other embodiments, the available thumbnails are identified by thumbnail segmentation (e.g., outputting the closest available thumbnails or the available thumbnails within a threshold distance of the horizontal input position). As such, the user may swipe through a set of thumbnails by hovering over one or more portions of an interactive tile.

Bei der in 10 dargestellten Ausführungsform beinhaltet die Sucherschnittstelle 1000 eine Suchleiste 1060. Bei diesem Beispiel nimmt die Suchleiste 1060 eine Anfrage in Form eines oder mehrerer Schlüsselwörter (die beispielsweise in das Suchfeld 1070 eingegeben werden) und/oder in Form einer oder mehrerer ausgewählter Facetten (die beispielsweise über entsprechende Menüs eingegeben werden, die über die Schaltflächen 1062, 1064, 1066 und 1068 zugänglich sind) an und löst aus, dass eine Suchsegmentierung die Standardsegmentierung auf Grundlage der Anfrage neusegmentiert. Bei einer exemplarischen Implementierung tippt ein Nutzer ein oder mehrere Schlüsselworte in das Suchfeld 1070 ein und/oder wählt eine oder mehrere Facetten über Menüs oder andere Interaktionselemente, die Merkmalskategorien (Merkmalsspuren) und/oder entsprechende Facetten (detektierte Merkmale) darstellen, aus. In 10 aktiviert das Interagieren mit den Schaltflächen 1062, 1064, 1066 und 1068 (beispielsweise durch Schweben über dem Menü, Linksklicken auf eine Schaltflächenecke, Rechtsklicken) ein entsprechendes Menü, das detektierte Menschen (Schaltfläche 1062), detektierte Töne (Schaltfläche 1064), detektierte visuelle Szenen (Schaltfläche 1066) und detektierte visuelle Artefakte (Schaltfläche 1068) zeigt. 12A bis 12D sind Darstellungen von exemplarischen facettenbestückten Suchmenüs. 12A zeigt ein exemplarisches Menü mit detektierten Gesichtern (das beispielsweise durch die Schaltfläche 1062 von 10 aktiviert wird), 12B zeigt ein exemplarisches Menü mit detektierten Tönen (das beispielsweise durch die Schaltfläche 1064 von 10 aktiviert wird), 12C zeigt ein exemplarisches Menü mit detektierten visuellen Szenen (das beispielsweise durch die Schaltfläche 1066 von 10 aktiviert wird), und 12D zeigt ein exemplarisches Menü mit detektierten visuellen Artefakten (das beispielsweise durch die Schaltfläche 1068 von 10 aktiviert wird). Als solches kann ein Nutzer durch die in 12A bis 12D dargestellten facettenbestückten Suchmenüs navigieren, eine oder mehrere Facetten (beispielsweise ein bestimmtes Gesicht, eine bestimmte Tonklassifizierung, eine bestimmte visuelle Szene und/oder einen bestimmten visuellen Artefakt) auswählen, ein oder mehrere Schlüsselwörter in das Suchfeld 1070 eingeben und eine Suche ausführen (beispielsweise durch Klicken auf eine Facette, auf ein bestehendes facettenbestücktes Suchmenü, Klicken auf eine Suchschaltfläche und dergleichen).At the in 10 In the illustrated embodiment, searcher interface 1000 includes a search bar 1060. In this example, search bar 1060 takes a query in the form of one or more keywords (e.g., entered into search field 1070) and/or one or more selected facets (e.g., provided via appropriate menus accessed via buttons 1062, 1064, 1066 and 1068) and triggers a search segmentation to re-segment the default segmentation based on the query. In an example implementation, a user types one or more keywords into the search field 1070 and/or selects one or more facets via menus or other interaction elements representing feature categories (feature traces) and/or corresponding facets (detected features). In 10 interacting with buttons 1062, 1064, 1066, and 1068 (e.g., by hovering over the menu, left-clicking on a button corner, right-clicking) activates a corresponding menu that includes detected people (button 1062), detected sounds (button 1064), detected visual scenes (button 1066) and detected visual artifacts (button 1068). 12A until 12D are representations of example faceted search menus. 12A shows an example menu of detected faces (e.g., indicated by button 1062 of 10 is activated), 12B shows an example menu with detected tones (e.g. activated by button 1064 of 10 is activated), 12C shows an example menu with detected visual scenes (e.g. displayed by button 1066 of 10 is activated), and 12D shows an example menu of detected visual artifacts (e.g., displayed by button 1068 of 10 is activated). As such, a user can through the in 12A until 12D navigate the faceted search menus shown, select one or more facets (e.g., a specific face, sound classification, visual scene, and/or visual artifact), enter one or more keywords in the search field 1070, and perform a search (e.g., by clicking on a facet, on an existing faceted search menu, click on a search button, and the like).

Bei einigen Ausführungsformen löst eine getippte Schlüsselwortsuche eine Suche nach detektierten Merkmalen mit einem zugeordneten Text oder Wert (beispielsweise ein Transkript, Tags eines Objektes oder einer Handlung, Audioereignistags, Protokollereignistags und dergleichen) aus, der zu dem Schlüsselwort passt, und/oder eine ausgewählte Facette löst eine Suche nach detektierten Instanzen der ausgewählten Facette / Facetten aus. Bei einer exemplarischen Implementierung löst die Suchleiste 1060 aus, dass die Suchsegmentierungskomponente 170 und/oder die Videosegmentierungskomponente 180 von 1A eine Suchsegmentierung berechnet, die die von den interaktiven Kacheln 1020 von 10 dargestellte Standardsegmentierung neusegmentiert, wodurch die interaktiven Kacheln 1020 dahingehend aktualisiert werden, dass sie die Videosegmente der sich ergebenden Suchsegmentierung darstellen. Bei diesem Beispiel dient das Suchen dem auf Grundlage einer Anfrage erfolgenden Zerbrechen der zu der Anfrage passenden interaktiven Kacheln dahingehend, dass diese kleinere Einheiten des Videos darstellen. Mit anderen Worten, Kacheln, die zu der Anfrage passen, werden in kleinere Videosegmente aufgebrochen, während Kacheln, die nicht passen, so bleiben, wie sie sind. Bei einigen Ausführungsformen werden Kacheln, die zu der Anfrage passen und in kleinere Videosegmente aufgebrochen werden, animiert, wobei beispielsweise gezeigt wird, wie die Kachel aufgebrochen wird.In some embodiments, a typed keyword search triggers a search for detected features with associated text or value (e.g., a transcript, object or action tags, audio event tags, log event tags, and the like) matching the keyword and/or a selected facet triggers a search for detected instances of the selected facet/facets. In an exemplary implementation, search bar 1060 triggers search segmentation component 170 and/or video segmentation component 180 of 1A computes a search segmentation that matches that of the interactive tiles 1020 of FIG 10 represented standard segmentation is re-segmented, thereby updating the interactive tiles 1020 to represent the video segments of the resulting search segmentation. In this example, searching is for breaking, based on a query, the interactive tiles that match the query to represent smaller units of video. In other words, tiles that match the request are broken up into smaller video segments, while tiles that don't match are left as is. In some embodiments, tiles that match the query and are broken up into smaller video segments are animated, for example showing how the tile is broken up.

Bei einigen Ausführungsformen hebt die Sucherschnittstelle 1000 interaktive Kacheln, die passende Videosegmente (Anfrage-EIN-Segmente) darstellen, hervor. Die interaktive Kachel 1150 von 11 B ist beispielsweise mit einem Segment 1170 dargestellt, das angibt, dass die Kachel ein Treffer für die Anfrage ist. Andere Beispiele für die Hervorhebung beinhalten das Auszeichnen, Hinzufügen einer Füllung (beispielsweise einer transparenten Füllung) und/oder anderes. Bei einigen Ausführungsformen stellt eine passende Kachel zusätzlich oder alternativ dar, warum die Kachel ein Treffer ist, und zwar beispielsweise durch Präsentieren oder Hervorheben einer Darstellung des Merkmals / der Merkmale, das/die zu der Anfrage gepasst hat/haben (beispielsweise ein passendes Gesicht, eine passende visuelle Szene, eine passende Tonklassifizierung, ein passendes Objekt, ein passendes Schlüsselwort und dergleichen mehr). Die interaktive Kachel 1150 von 11 B hebt beispielsweise eines der Gesichter 1160 hervor, wodurch angegeben wird, dass das Gesicht zu der Anfrage gepasst hat. Bei einem weiteren Beispiel dient ein Abgleich mit dem Transkript dem Markieren, Unterstreichen oder auf andere Weise erfolgenden Hervorheben eines passenden Wortes in der Kachel. Auf diese Weise kann ein Nutzer leicht erkennen, welche interaktiven Kacheln zu einer Anfrage passen und warum dies so ist.In some embodiments, viewfinder interface 1000 highlights interactive tiles representing matching video segments (request-IN segments). The interactive tile 1150 from 11b is shown with a segment 1170 indicating that the tile is a hit for the query. Other examples of highlighting include highlighting, adding a fill (such as a transparent fill), and/or others. In some embodiments, a matching tile additionally or alternatively represents why the tile is a hit, for example by presenting or highlighting a representation of the feature(s) that matched the query (e.g. a matching face, a matching visual scene, a matching sound classification, a matching object, a matching keyword, and so on). The interactive tile 1150 from 11b For example, highlights one of the faces 1160, indicating that the face matched the query. In another example, a match against the transcript is for highlighting, underlining, or otherwise emphasizing a matching word in the tile. In this way, a user can easily see which interactive tiles match a query and why.

In einigen Fällen kann, wenn ein Nutzer nach Content sucht, die Größe der Videosegmente, die der Nutzer wünscht, aufgabenabhängig variieren. Möchte ein Nutzer beispielsweise Clips mit kichernden Kindern finden, so möchte der Nutzer gegebenenfalls nur kurze Suchergebnisse von wenigen Sekunden. Wenn der Nutzer jedoch Clips eines Raketenstarts möchte, möchte der Nutzer gegebenenfalls längere Suchergebnisse. Als solches stellt die Sucherschnittstelle 1000 bei einigen Ausführungsformen einen Gleitschieber oder ein anderes Interaktionselement (nicht dargestellt) bereit, der/das einen Eingabeparameter für eine Segmentierung (beispielsweise eine minimale und maximale Solllänge des Videosegmentes) präsentiert, wodurch ermöglicht wird, dass der Nutzer die Größe von Videosegmenten, die von der Segmentierung generiert und von den interaktiven Kacheln 1020 dargestellt werden, interaktiv steuert bzw. regelt. Bei einigen Ausführungsformen stellen eine oder mehrere der interaktiven Kacheln (beispielsweise jede Kachel) ihren eigenen Gleitschieber oder ein anderes Interaktionselement (beispielsweise einen Anfasser bzw. Griff) bereit, der/das einen Eingabeparameter präsentiert, wodurch ermöglicht wird, dass der Nutzer die Größe eines Videosegmentes / von Videosegmenten, das/die von einer bestimmten Kachel dargestellt wird/werden, interaktiv steuert bzw. regelt. Verschiedene Ausführungsformen stellen daher ein oder mehrere Interaktionselemente dar, die ermöglichen, dass ein Nutzer Kacheln lokal (pro Kachel) und/oder global (alle Kacheln) in kleinere Teile aufbricht.In some cases, when a user searches for content, the size of the video segments that the user desires may vary based on the task. For example, if a user wants to find clips of giggling children, the user may only want short search results of a few seconds. However, if the user wants clips of a rocket launch, the user may want longer search results. As such, in some embodiments, viewfinder interface 1000 provides a slider or other interaction element (not shown) that presents an input parameter for segmentation (e.g., a minimum and maximum target length of the video segment), allowing the user to set the size of video segments generated by the segmentation and rendered by the interactive tiles 1020. In some embodiments, one or more of the interactive tiles (e.g., each tile) provides its own slider or other interaction element (e.g., a handle) that presents an input parameter, allowing the user to specify the size of a video segment / of video segments represented by a particular tile. Various embodiments therefore provide one or more interaction elements that enable a user to break tiles into smaller parts locally (per tile) and/or globally (all tiles).

Das Transkript 1080 präsentiert das Transkript für das Video und hebt einen aktiven Abschnitt 1085 des Transkripts hervor. Bei einigen Beispielen stellt das Transkript 1080 ein diarisiertes Transkript bereit, das einen detektierten Sprecher des Abschnittes des aktiven Abschnittes des Transkripts 1085 darstellt.Transcript 1080 presents the transcript for the video and highlights an active portion 1085 of the transcript. In some examples, transcript 1080 provides a diarized transcript representing a detected speaker of the portion of the active portion of transcript 1085 .

Das für ausgewählte Clips gedachte Feld 1090 stellt Videosegmente dar, die von einem Nutzer zu einer Auswahl hinzugefügt werden. Bei einer exemplarischen Implementierung kann ein Nutzer Videosegmente zu der Sammlung hinzufügen, indem er eine interaktive Kachel in das für ausgewählte Clips gedachte Feld 1090 zieht, auf die „+“-Schaltfläche in einer interaktiven Kachel (beispielsweise die Schaltfläche 1148 in der interaktiven Kachel 1110 von 11A) klickt, mit einer Visualisierung eines detektierten Merkmals oder einer solchen Facette in einer interaktiven Kachel interagiert (beispielsweise durch Rechtsklicken auf eine Visualisierung beispielsweise auf eines der Segmente 1130, 1135, 1142, 1144 oder eine der Facetten 1160 von 11A zur Aktivierung eines Kontextmenüs und Hinzufügen eines entsprechenden Teilsatzes eines Videosegmentes zur Auswahl aus dem Kontextmenü, durch Hervorheben eines Teiles des Transkripts 1080, Rechtsklicken zur Aktivierung eines Kontextmenüs und Hinzufügen zur Auswahl aus dem Kontextmenü), und/oder anderes. In 10 zeigt das für ausgewählte Clips gedachte Feld 1090 Vorschaubilder oder eine Liste von ausgewählten Videosegmenten an.The selected clips field 1090 represents video segments added by a user to a selection. In an example implementation, a user may add video segments to the collection by dragging an interactive tile into the selected clips box 1090, onto the "+" button in an interactive tile (e.g., button 1148 in the interactive tile 1110 of FIG 11A ) clicks, interacts with a visualization of a detected feature or facet in an interactive tile (e.g. by right-clicking on a visualization, for example on one of the segments 1130, 1135, 1142, 1144 or one of the facets 1160 of 11A to activate a context menu and add a corresponding subset of a video segment for selection from the context menu, by highlighting part of the transcript 1080, right-clicking to activate a context menu and adding to selection from the context menu), and/or others. In 10 the Selected Clips panel 1090 displays thumbnails or a list of selected video segments.

Sobald ein Satz von Videosegmenten ausgewählt ist, kann ein Nutzer auf eine Bearbeiterschnittstelle umschalten, um eine oder mehrere Bearbeitungsfunktionen durchzuführen. Bei dem in 10 dargestellten Beispiel stellt die Sucherschnittstelle 1000 ein oder mehrere Navigationselemente bereit, die zwischen den Sucher- und Bearbeiterschnittstellen navigieren (beispielsweise eine Sucherschaltfläche 1095, eine Bearbeiterschaltfläche 1097, eine Bearbeiterschaltfläche in dem für ausgewählte Clips gedachten Feld 1090, und dergleichen mehr).Once a set of video segments is selected, a user can switch to an editor interface to perform one or more editing functions. At the in 10 For example, as illustrated, the finder interface 1000 provides one or more navigation elements that navigate between the finder and editor interfaces (e.g., a finder button 1095, an editor button 1097, an editor button in the selected clips field 1090, and the like).

13 ist eine Darstellung einer exemplarischen Suche in einer Sucherschnittstelle. Bei diesem Beispiel gibt ein Nutzer die Anfrage „Kichern“ in das Suchfeld 1310 ein, wodurch eine Suchsegmentierung ausgelöst wird, die passende Kacheln (beispielsweise die passende Kachel 1320) und passende Abschnitte des Transkripts (beispielsweise den Transkriptbereich 1325) hervorhebt. Bei diesem Beispiel fügt der Nutzer passende Videosegmente, die von den Kacheln 1332, 1334, 1336 dargestellt werden, zu dem für ausgewählte Clips gedachten Feld 1340 hinzu, wodurch die hinzugefügten Videosegmente mit den Vorschaubildern 1342, 1344, 1346 dargestellt werden. In 13 ist der Nutzer im Prozess des Hinzufügens eines weiteren passenden Videosegmentes durch Klicken auf die Hinzufüge-Schaltfläche 1130 in einer entsprechenden interaktiven Kachel. Sobald der Nutzer das Hinzufügen von Videosegmenten zu der Auswahl in dem für ausgewählte Clips gedachten Feld 1340 beendet hat, klickt der Nutzer auf die Schaltfläche 1350 („Bearbeite deine Clips“), um auf eine Bearbeiterschnittstelle umzuschalten, so beispielsweise auf diejenige, die in 14 dargestellt ist. 13 Figure 12 is an illustration of an example search in a searcher interface. In this example, a user enters the query "giggle" into the search field 1310, which triggers search segmentation that highlights matching tiles (e.g., matching tile 1320) and matching portions of the transcript (e.g., transcript region 1325). In this example, the user adds appropriate video segments represented by tiles 1332, 1334, 1336 to the selected clips field 1340, causing the added video segments to be displayed with thumbnail images 1342, 1344, 1346. In 13 the user is in the process of adding another matching video segment by clicking on the add button 1130 in a corresponding interactive tile. Once the user has finished adding video segments to the selection in the selected clips field 1340, the user clicks on the button 1350 ("Edit your clips") to switch to an editor interface, such as the one shown in 14 is shown.

14 ist eine Darstellung einer exemplarischen Bearbeiterschnittstelle 1400 zur Videobearbeitung. Bei dem in 14 dargestellten Beispiel beinhaltet die Bearbeiterschnittstelle 1400 den Videozeitstrahl 1405 (der beispielsweise von dem für den zusammengesetzten Clipzeitstrahl gedachten Werkzeug 132 von 1B gesteuert bzw. geregelt wird), eine Suchleiste 1450 (die beispielsweise von dem Suchneusegmentierungswerkzeug 142 von 1B gesteuert bzw. geregelt wird) und ein Bearbeiterfeld 1460 (das beispielsweise von dem Bearbeiterfeld 146 von 1B gesteuert bzw. geregelt wird). Der Videozeitstrahl 1405 beinhaltet Vorschaubilder 1410 (die beispielsweise von dem Vorschaubildvorschauwerkzeug 138 von 1B gesteuert bzw. geregelt werden), einen facettenbestückten Audiozeitstrahl 1420 und einen facettenbestückten Artefaktzeitstrahl 1430 (die beispielsweise von dem Merkmalsvisualisierungswerkzeug 134 von 1B gesteuert bzw. geregelt werden) und eine Marquee-Auswahl 1440 (die beispielsweise von dem Marquee-Auswahl- und Einrastwerkzeug 136 von 1 B gesteuert bzw. geregelt wird). 14 14 is an illustration of an example editor interface 1400 for video editing. At the in 14 For example, editor interface 1400 includes video timeline 1405 (e.g., derived from composite clip timeline tool 132 of 1B controlled), a search bar 1450 (e.g., provided by the search resegmentation tool 142 of 1B is controlled) and an agent field 1460 (which, for example, is controlled by the agent field 146 of 1B is controlled or regulated). Video timeline 1405 includes thumbnails 1410 (e.g., generated by thumbnail preview tool 138 of 1B controlled), a faceted audio timeline 1420, and a faceted artifact timeline 1430 (e.g., generated by the feature visualization tool 134 of FIG 1B controlled) and a marquee selection 1440 (e.g., created by the marquee selection and snapping tool 136 of FIG 1 B is controlled or regulated).

Bei einer exemplarischen Implementierung präsentiert die Bearbeiterschnittstelle 1400 den Videozeitstrahl 1405, der eine aktive Videosegmentierung darstellt (beispielsweise durch Anzeigen von Segmentgrenzen als Unterblendung (underlay)). In einem exemplarischen Nutzungsfall lädt ein Nutzer ein Video zur Bearbeitung beispielsweise unter Nutzung eines Dateiexplorers, um den Ort des Videos (nicht dargestellt) zu identifizieren. Das Video wird zum Generieren einer oder mehrerer Segmentierungen (beispielsweise von dem Videoeingliederungswerkzeug 160 und/oder der Videosegmentierungskomponente 180 von 1A) eingegliedert (ingested), und/oder die Bearbeiterschnittstelle 1400 initialisiert den Videozeitstrahl 1405 mit einer Segmentierung des gesamten Videos (beispielsweise eine Standardsegmentierung). In einem anderen exemplarischen Nutzungsfall wird ein Teilsatz der Videosegmente in einem Video vorausgewählt oder auf andere Weise zur Bearbeitung designiert (beispielsweise beim Umschalten von einer Sucherschnittstelle, in der ein oder mehrere Videosegmente zu einem für ausgewählte Clips gedachten Feld hinzugefügt worden sind, beim Laden eines bestehenden Bearbeitungsprojektes). Wird die Bearbeiterschnittstelle 1400 geöffnet und/oder wird das bestehende Bearbeitungsprojekt geladen, so initialisiert die Bearbeiterschnittstelle 1400 den Videozeitstrahl 1405 mit den designierten Videosegmenten. In einigen Fällen stellt der Videozeitstrahl 1405 ein zusammengesetztes Video dar, das von denjenigen Videosegmenten gebildet wird, die zur Bearbeitung und/oder Neusegmentierung jener Videosegmente (beispielsweise durch eine Suchsegmentierung) designiert worden sind. Auf einer hohen Stufe kann ein Nutzer Videosegmente aus dem Videozeitstrahl 1405 auswählen, bearbeiten, bewegen, löschen oder auf andere Weise manipulieren.In an exemplary implementation, editor interface 1400 presents video timeline 1405 that represents active video segmentation (e.g., by displaying segment boundaries as an underlay). In an exemplary use case, a user loads a video for editing, for example using a file explorer, to identify the location of the video (not shown). The video is used to generate one or more segmentations (e.g., by video incorporation tool 160 and/or video segmentation component 180 of 1A ) ingested, and/or the editor interface 1400 initializes the video timeline 1405 with a segmentation of the entire video (e.g., a default segmentation). In another example use case, a subset of the video segments in a video is preselected or otherwise designated for editing (for example, when switching from a viewfinder interface in which one or more video segments have been added to a field intended for selected clips, when loading an existing one processing project). When the editor interface 1400 is opened and/or the existing editing project is loaded, the editor interface 1400 initializes the video timeline 1405 with the designated video segments. In some cases, the video timeline 1405 represents composite video made up of those video segments that need to be edited processing and/or re-segmentation of those video segments (e.g. through search segmentation). At a high level, a user can select, edit, move, delete, or otherwise manipulate video segments from video timeline 1405 .

Bei einer exemplarischen Implementierung sind die Sucher- und Bearbeiterschnittstellen durch ein oder mehrere Navigationselemente (beispielsweise die Sucher- und Bearbeiterschaltflächen 1095 von 1097 von 10, die Sucher- und Bearbeiterschaltflächen 1495 von 1497 von 14) verknüpft, die zwischen den Sucher-und Bearbeiterschnittstellen hin- und herschalten. Bei dieser Implementierung kann ein Nutzer die Sucherschnittstelle nutzen, um ein Video zu durchlaufen und Videosegmente zu einer Auswahl hinzuzufügen, auf die Bearbeiterschnittstelle umzuschalten und eine oder mehrere Verfeinerungen oder andere Bearbeitungsvorgänge durchzuführen. Bei einigen Ausführungsformen erstellt, wenn ein Nutzer Videosegmente zur Bearbeitung aus dem Sucher designiert und auf die Bearbeiterschnittstelle umschaltet, die Bearbeiterschnittstelle eine Darstellung eines zusammengesetzten Videos, das die ausgewählten Videosegmente anordnet, und zwar in einer chronologischen Reihenfolge, in einer Reihenfolge, in der sie zu der Auswahl hinzugefügt worden sind, in irgendeiner designierten Reihenfolge (beispielsweise der Reihenfolge, in der sie in den für ausgewählte Clips gedachten Feldern angeordnet worden sind) und/oder auf andere Weise. Bei einigen Ausführungsformen stellt die Bearbeiterschnittstelle 1400 (beispielsweise der Videozeitstrahl 1405) die Grenzen der designierten Videosegmente dar und/oder stellt detektierte Merkmale in den designierten Videosegmenten dar. Bei einer exemplarischen Implementierung der Bearbeiterschnittstelle 1400 kann ein Nutzer lediglich Content durchlaufen, der bereits zu einem zusammengesetzten Video hinzugefügt worden ist, kann der Nutzer den Content, der nicht mehr gewünscht ist, entfernen, kann jedoch neuen Content zu dem zusammengesetzten Video hinzufügen, und kann der Nutzer zu der Sucherschnittstelle zurückkehren.In an example implementation, the finder and editor interfaces are represented by one or more navigation elements (e.g., the finder and editor buttons 1095 of 1097 of 10 , the viewfinder and editor buttons 1495 of 1497 of 14 ) linked that toggle between the finder and editor interfaces. In this implementation, a user can use the viewfinder interface to step through video and add video segments to a selection, switch to the editor interface, and perform one or more refinements or other editing operations. In some embodiments, when a user designates video segments for editing from the viewfinder and switches to the editor interface, the editor interface creates a composite video representation that arranges the selected video segments in a chronological order, in an order in which they added to the selection, in any designated order (e.g. the order in which they were placed in the fields intended for selected clips) and/or otherwise. In some embodiments, the editor interface 1400 (e.g., the video timeline 1405) depicts the boundaries of the designated video segments and/or depicts detected features in the designated video segments Once video has been added, the user can remove the content that is no longer desired, but can add new content to the composite video, and the user can return to the searcher interface.

Bei einigen Ausführungsformen der Bearbeiterschnittstelle 1400 kann ein Nutzer über den Videozeitstrahl 1405 wischen und zu verschiedenen Teilen eines zusammengesetzten Videos durch Klicken auf den Zeitstrahl springen. Zusätzlich oder alternativ kann ein Nutzer zu verschiedenen Teilen eines zusammengesetzten Videos durch Abtasten des Transkripts 1445 und Klicken auf einen bestimmten Abschnitt (beispielsweise ein Wort) springen. Bei einigen Ausführungsformen wird ein Transkript seitlich neben dem Video, auf dem Video (wie beispielsweise in 14) und/oder anderswo präsentiert.In some embodiments of editor interface 1400, a user can swipe video timeline 1405 and jump to different parts of a composite video by clicking the timeline. Additionally or alternatively, a user can jump to different parts of a composite video by scanning the transcript 1445 and clicking on a particular section (e.g., a word). In some embodiments, a transcript is provided to the side of the video on which the video (such as in 14 ) and/or presented elsewhere.

Bei einigen Ausführungsformen stellt, um das Identifizieren von bestimmten Teilen des zusammengesetzten Videos zu unterstützen, der Videozeitstrahl 1405 ein oder mehrere detektierte Merkmale und/oder dasjenige, wo diese in dem zusammengesetzten Video befindlich sind (beispielsweise entsprechende Merkmalsbereiche), dar. Bei einigen Ausführungsformen stellt der Videozeitstrahl 1405 jede Kategorie eines detektierten Merkmals mit einem entsprechenden facettenbestückten Zeitstrahl dar, der detektierte Facetten (beispielsweise Gesichter, Audioklassifizierungen, visuelle Szenen, visuelle Artefakte, Objekte oder Handlungen und dergleichen mehr) und deren jeweilige Orte in diesem Videosegment darstellt. Bei einigen Ausführungsformen kann ein Nutzer die visualisierten Merkmale auf dem Videozeitstrahl 1405 anpassen, indem er die Visualisierungen für eine bestimmte Kategorie von Merkmal einschaltet/ausschaltet (und zwar beispielsweise durch Klicken auf die Schaltflächen 1462, 1464, 1466, 1468 zum Steuern bzw. Regeln der Visualisierungen für Menschen, Töne, visuelle Szenen beziehungsweise visuelle Artefakte). Bei der in 14 dargestellten Ausführungsform hat ein Nutzer Visualisierungen für Töne (beispielsweise über die Schaltfläche 1464) und visuelle Artefakte (beispielsweise über die Schaltfläche 1468) aktiviert, sodass der Videozeitstrahl 1405 den facettenbestückten Audiozeitstrahl 1420 und den facettenbestückten Artefaktzeitstrahl 1430 beinhaltet. Bei einigen Ausführungsformen dient das Klicken auf eine bestimmte Facette aus einem facettenbestückten Zeitstrahl dem Auswählen eines entsprechenden Teiles des Videos (wie beispielsweise durch die Marquee-Auswahl 1440 eines Abschnittes des Videos mit einem ausgewählten visuellen Artefakt dargestellt ist). Auf diese Weise kann ein Nutzer diejenigen Teile des Videos mit detektierten visuellen Artefakten beispielsweise leicht auswählen und löschen. Allgemein unterstützt das Einrasten an semantisch sinnvollen Einrastpunkten Nutzer beim schnellen Trimmen.In some embodiments, to help identify particular portions of the composite video, the video timeline 1405 represents one or more detected features and/or where they are located in the composite video (e.g., corresponding feature regions). video timeline 1405 represents each detected feature category with a corresponding faceted timeline representing detected facets (e.g., faces, audio classifications, visual scenes, visual artifacts, objects or actions, and the like) and their respective locations in that video segment. In some embodiments, a user may customize the visualized features on video timeline 1405 by turning on/off the visualizations for a particular category of feature (e.g., by clicking buttons 1462, 1464, 1466, 1468 to control the visualizations for people, sounds, visual scenes or visual artifacts). At the in 14 In the illustrated embodiment, a user has enabled visualizations for sounds (e.g., via button 1464) and visual artifacts (e.g., via button 1468) such that video timeline 1405 includes faceted audio timeline 1420 and faceted artifact timeline 1430. In some embodiments, clicking on a particular facet from a faceted timeline serves to select a corresponding portion of the video (e.g., as represented by marquee selection 1440 of a portion of the video with a selected visual artifact). In this way, a user can easily select and delete those parts of the video with detected visual artifacts, for example. In general, snapping to semantically meaningful snap points assists users in quick trimming.

Bei einigen Ausführungsformen ist ein Abschnitt des zusammengesetzten Videos, das von dem Videozeitstrahl 1405 dargestellt wird, durch Interaktionen mit dem Videozeitstrahl 1405 und/oder dem Transkript 1445 auswählbar. Allgemein wird die Auswahl auf beliebige geeignete Weise hervorgehoben, so beispielsweise durch Markieren (beispielsweise mit einer gestrichelten Linie), Hinzufügen einer Füllung (beispielsweise einer transparenten Füllung) zu einem ausgewählten Bereich und/oder auf andere Weise. Bei einer exemplarischen Implementierung wird eine Auswahl (beispielsweise eine Marquee-Auswahl, so beispielsweise die Marquee-Auswahl 1440) erstellt, indem auf Videosegmente, die in dem Videozeitstrahl 1405 dargestellt sind, oder das Transkript 1445 geklickt oder getippt wird und über diese ein Ziehen bzw. Dragging erfolgt. Bei einigen Ausführungsformen hebt eine Auswahl, die in einem Element (Videozeitstrahl 1405 oder Transkript 1445) vorgenommen worden ist, zusätzlich einen entsprechenden Abschnitt des anderen Elementes (nicht dargestellt) hervor (markierte ihn beispielsweise). In einigen Fällen kann eine Auswahl bearbeitet werden, nachdem sie durch Klicken und Ziehen (Dragging) des Start- und/oder Endpunktes der Auswahl wegbewegt worden ist. Bei einer exemplarischen Implementierung bewirkt ein Auswahlziehvorgang (beispielsweise entlang des Videozeitstrahles 1405, des Transkripts 1445) ein Einrasten von Auswahlgrenzen an Einrastpunkten, die durch eine Einrastpunktsegmentierung und/oder eine aktuelle Zoomstufe (die gemäß vorstehender Beschreibung berechnet worden ist) definiert sind. Bei einigen Ausführungsformen präsentiert der Videozeitstrahl 1405 eine Visualisierung der Einrastpunkte, die durch eine Einrastpunktsegmentierung und/oder eine aktuelle Zoomstufe definiert sind. In einigen Fällen werden die Einrastpunkte nur während eines Ziehvorgangs (beispielsweise auf dem Videozeitstrahl 1405) angezeigt, weshalb die angezeigten Einrastpunkte auf dem Videozeitstrahl 1405 verschwinden, wenn der Ziehvorgang beendet wird.In some embodiments, a portion of the composite video represented by the video timeline 1405 is selectable through interactions with the video timeline 1405 and/or the transcript 1445. In general, the selection is highlighted in any suitable manner, such as marking it (e.g., with a dashed line), adding a fill (e.g., a transparent fill) to a selected area, and/or other means. In an example implementation, a selection (e.g., a marquee selection, such as marquee selection 1440) is created by clicking or tapping and dragging or tapping on video segments represented in video timeline 1405 or transcript 1445 .Dragging done. In some embodiments, a selection made in an element (video timeline 1405 or Transcript 1445) has been made, additionally highlight (eg, highlight) a corresponding portion of the other element (not shown). In some cases, a selection can be edited after it has been moved away by clicking and dragging (dragging) the start and/or end point of the selection. In an exemplary implementation, a selection drag operation (e.g., along video timeline 1405, transcript 1445) causes selection boundaries to snap to snap points defined by snap point segmentation and/or a current zoom level (calculated as described above). In some embodiments, the video timeline 1405 presents a visualization of the snap points defined by a snap point segmentation and/or a current zoom level. In some cases, the snap points are only displayed during a drag operation (e.g., on the video timeline 1405), so the displayed snap points on the video timeline 1405 disappear when the drag operation is terminated.

15A und 15B sind Darstellungen einer exemplarischen Marquee-Auswahl mit einer Einrastung. In 15A hat ein Nutzer mit einem Cursor 1510 ein Anklicken und Linksziehen vorgenommen, wodurch eine Marquee-Auswahl 1520 erstellt wird, die an den Einrastpunkten, die mit vertikalen Leisten dargestellt sind, (beispielsweise an Einrastpunkten 1530) einrastet. Bei diesem Beispiel hat der Nutzer vorher Videosegmente hinzugefügt, die Treffer für die Anfrage „Kichern“ beinhaltet haben, sodass einige der Videosegmente auf Grundlage des detektierten Kicherns in der Audiospur gepasst haben. In 15A und 15B stellt der facettenbestückte Audiozeitstrahl 1540 verschiedene detektierte Audioklassifizierungen (beispielsweise durch Darstellen von detektierter Musik mit einer Farbe, von detektierter Sprache mit einer zweiten Farbe und von anderen Tönen mit einer dritten Farbe) wie auch die Lautstärkepegel der Audiospur auf verschiedene Weisen dar. In 15B stellt der facettenbestückte Audiozeitstrahl 1540 detektiertes Kichern 1550, 1560, 1570 als andere Töne dar. Gleichwohl stammt das detektierte Kichern 1560 aus einem Videosegment mit einem detektierten visuellen Artefakt 1580. Um diesen Clip zu entfernen, bewegt der Nutzer die Marquee-Auswahl 1520 an den in 15B dargestellten aktualisierten Ort, wodurch sichergestellt wird, dass Teile des Videos mit den anderen detektierten Kicherlauten 1550 und 1570 ausgelassen werden. Als solches kann der Nutzer das Videosegment innerhalb der Marquee-Auswahl 1520 in 15B löschen, um das Videosegment mit dem detektierten visuellen Artefakt 1580 aus dem zusammengesetzten Video zu entfernen. 15A and 15B are representations of an example marquee selection with a snap. In 15A For example, a user has clicked and dragged left with a cursor 1510, creating a marquee selection 1520 that snaps to snap points represented with vertical bars (e.g., snap points 1530). In this example, the user previously added video segments that included matches for the "giggle" query, so some of the video segments matched based on the detected giggles in the audio track. In 15A and 15B the faceted audio timeline 1540 represents various detected audio classifications (e.g., by representing detected music with one color, detected speech with a second color, and other sounds with a third color), as well as the volume levels of the audio track in various ways 15B the faceted audio timeline 1540 represents detected giggles 1550, 1560, 1570 as different tones. However, the detected giggles 1560 are from a video segment with a detected visual artifact 1580. To remove this clip, the user moves the marquee selection 1520 to the in 15B location shown, thereby ensuring that parts of the video with the other detected giggles 1550 and 1570 are omitted. As such, the user can select the video segment within the marquee selection 1520 in 15B delete to remove the video segment with the detected visual artifact 1580 from the composite video.

Wie in 14 gezeigt ist, präsentiert der Videozeitstrahl 1405 bei einigen Ausführungsformen ein oder mehrere Vorschaubilder (beispielsweise die Vorschaubilder 1410). Bei einer exemplarischen Implementierung stellt, wenn ein Nutzer die Bearbeiterschnittstelle 1400 erstmalig öffnet, die Bearbeiterschnittstelle 1400 (beispielsweise der Videozeitstrahl 1405) jedes Videosegment in dem Video mit einem Vorschaubild am Anfang eines jeden Videosegmentes dar. Zusätzlich oder alternativ stellt die Bearbeiterschnittstelle 1400 (beispielsweise der Videozeitstrahl 1405) Vorschaubilder an Orten des Videos dar, die durch eine Vorschaubildsegmentierung (die gemäß vorstehender Beschreibung berechnet worden ist) identifiziert werden. Bei einer exemplarischen Implementierung weist jedes Videosegment wenigstens ein Vorschaubild auf, wobei wahrscheinlicher ist, dass längere Videosegmente mehrere Vorschaubilder beinhalten. Bei einigen Ausführungsformen tauchen, wenn ein Nutzer in den Videozeitstrahl 1405 zoomt, mehr Vorschaubilder (beispielsweise auf Grundlage einer Vorschaubildsegmentierung, die für diese Zoomstufe berechnet worden ist) auf, und/oder es bleiben Vorschaubilder, die auf einer höheren Zoomstufe sichtbar sind, vorhanden. Als solches dienen Vorschaubilder auf dem Videozeitstrahl 1405 als Orientierungsmarken, die das Navigieren durch ein Video und das Auswählen von Videosegmenten unterstützen.As in 14 As shown, in some embodiments, video timeline 1405 presents one or more thumbnail images (e.g., thumbnail images 1410). In an example implementation, when a user first opens editor interface 1400, editor interface 1400 (e.g., video timeline 1405) presents each video segment in the video with a thumbnail at the beginning of each video segment. Additionally or alternatively, editor interface 1400 (e.g., video timeline 1405) Display thumbnails at locations of the video identified by thumbnail segmentation (calculated as described above). In an exemplary implementation, each video segment includes at least one thumbnail, with longer video segments being more likely to include multiple thumbnails. In some embodiments, when a user zooms into the video timeline 1405, more thumbnails appear (e.g., based on a thumbnail segmentation calculated for that zoom level) and/or thumbnails visible at a higher zoom level remain. As such, thumbnails on the video timeline 1405 serve as landmarks that aid in navigating through video and selecting video segments.

Bei einigen Ausführungsformen beinhaltet der Videozeitstrahl 1405 ein Zoom-/Scrollleistenwerkzeug (das beispielsweise von dem Zoom-/Scrollleistenwerkzeug 140 von 1B gesteuert bzw. geregelt wird), das ermöglicht, dass der Nutzer die Zoomstufe ändert und zu verschiedenen Positionen auf dem Videozeitstrahl 1405 scrollt. In einigen Fällen sind Einrastpunkte, Vorschaubilder und/oder visualisierte Merkmale von der Zoomstufe abhängig. Wenn ein Nutzer bei einer exemplarischen Implementierung in einen Videozeitstrahl zoomt, werden verschiedene Einrastpunktsegmentierungen und/oder Vorschaubildsegmentierungen auf Grundlage der Zoomstufe berechnet oder nachgeschlagen (So werden verschiedene Zoomstufen beispielsweise auf verschiedene Werte eines oder mehrerer Segmentierungsparameter abgebildet, so beispielsweise auf Videosegmentsolllängen, ein minimales Sollintervall zwischen Einrastpunkten, ein minimales Sollintervall zwischen Vorschaubildern). Zusätzlich oder alternativ stellt die Bearbeiterschnittstelle 1400 ein oder mehrere Interaktionselemente bereit, die einen oder mehrere Segmentierungsparameter für eine Einrastpunktsegmentierung und/oder eine Vorschaubildsegmentierung präsentieren, wodurch dem Nutzer die Möglichkeit gegeben wird, die Granularität der Einrastpunktsegmentierung und/oder der Vorschaubildsegmentierung zu steuern bzw. zu regeln. Bei einigen Ausführungsformen erweitert und verringert das Zoomen in den Videozeitstrahl 1405 hinein und aus diesem heraus die Details von visualisierten Merkmalen auf dem Videozeitstrahl 1405. Bei einer exemplarischen Implementierung zeigt eine hohe Zoomstufe einen Audiofacettenzeitstrahl an, der MSO-Audioklassifizierungen (Music/Speech/other MSO, Musik/Sprache/anderes) darstellt, und das Hineinzoomen fügt eine Darstellung von detektierten Audioereignissen zu dem Videozeitstrahl 1405 hinzu. Zusätzlich oder alternativ unterstützen höhere Zoomstufen Merkmalsbereiche oder andere Merkmalsvisualisierungen, die erweitert werden, um mehr Details auf niedrigeren Zoomstufen zu zeigen.In some embodiments, video timeline 1405 includes a zoom/scroll bar tool (eg, derived from zoom/scroll bar tool 140 of FIG 1B controlled) that allows the user to change the zoom level and scroll to different positions on the video timeline 1405 . In some cases snap points, thumbnails and/or visualized features are zoom level dependent. In an example implementation, when a user zooms into a video timeline, different snap point segmentations and/or thumbnail segmentations are calculated or looked up based on the zoom level (e.g., different zoom levels map to different values of one or more segmentation parameters, such as video segment target lengths, a minimum target interval between snap points, a minimum target interval between thumbnails). Additionally or alternatively, the editor interface 1400 provides one or more interaction elements presenting one or more segmentation parameters for a snap point segmentation and/or a thumbnail segmentation, thereby giving the user the ability to control the granularity of the snap point segmentation and/or the thumbnail segmentation regulate. In some embodiments, zooming in and out of the video timeline 1405 expands and collapses the detail of visualized features on the video timeline 1405. In an exemplary implementation, a high zoom level displays an audio facet timeline representing MSO (Music/Speech/other MSO, music/speech/other) audio classifications, and zooming in adds a representation of detected audio events to the video timeline 1405. Additionally or alternatively, higher zoom levels support feature regions or other feature visualizations that are expanded to show more detail at lower zoom levels.

Bei einigen Ausführungsformen nimmt die Bearbeiterschnittstelle 1400 eine Anfrage (beispielsweise ein Schlüsselwort und/oder eine Facette) an, löst eine temporäre Suchsegmentierung aus, die die Videosegmente in dem zusammengesetzten Video auf Grundlage der Anfrage segmentiert, und präsentiert eine Visualisierung der Suchsegmentierung (beispielsweise durch Darstellen der Grenzen der Videosegmente hiervon als Unterblendung (underlay) zu dem Videozeitstrahl 1405). Bei der in 14 dargestellten Ausführungsform beinhaltet die Bearbeiterschnittstelle 1400 die Suchleiste 1450. Bei diesem Beispiel nimmt die Suchleiste 1450 eine Anfrage in Form eines oder mehrerer Schlüsselwörter (die beispielsweise in das Suchfeld 1470 eingegeben werden) und/oder eine oder mehrere ausgewählte Facetten (die beispielsweise über entsprechende Menüs eingegeben werden, die über die Schaltflächen 1462, 1464, 1466 und 1468 zugänglich sind) an und löst eine Suchsegmentierung aus, die die Videosegmente in dem zusammengesetzten Video auf Grundlage der Anfrage neusegmentiert. Bei einer exemplarischen Implementierung tippt ein Nutzer ein oder mehrere Schlüsselwörter in das Suchfeld 1470 ein und/oder wählt eine oder mehrere Facetten über Menüs oder andere Interaktionselemente aus, die Merkmalskategorien (Merkmalsspuren) und/oder entsprechende Facetten (detektierte Merkmale) darstellen. In 14 aktiviert das Interagieren mit den Schaltflächen 1462, 1464, 1466 und 1468 (beispielsweise durch Schweben über dem Menü, Linksklicken auf eine Schaltflächenecke, Rechtsklicken) ein entsprechendes Menü, das detektierte Menschen (Schaltfläche 1462), detektierte Töne (Schaltfläche 1464), detektierte visuelle Szenen (Schaltfläche 1466) und detektierte visuelle Artefakte (Schaltfläche 1468) zeigt. Als solches kann ein Nutzer durch die facettenbestückten Suchmenüs navigieren, eine oder mehrere Facetten (beispielsweise ein bestimmtes Gesicht, eine bestimmte Tonklassifizierung, eine bestimmte visuelle Szene und/oder einen bestimmten visuellen Artefakt) auswählen, ein oder mehrere Schlüsselwörter in das Suchfeld 1470 eingeben und eine Suche (beispielsweise durch Klicken auf eine Facette, ein bestehendes facettenbestücktes Suchmenü, Klicken auf eine Suchschaltfläche und dergleichen) durchführen.In some embodiments, the agent interface 1400 accepts a query (e.g., a keyword and/or a facet), triggers a temporary search segmentation that segments the video segments in the composite video based on the query, and presents a visualization of the search segmentation (e.g., by rendering the boundaries of the video segments thereof as an underlay to the video timeline 1405). At the in 14 In the illustrated embodiment, agent interface 1400 includes search bar 1450. In this example, search bar 1450 takes a query in the form of one or more keywords (e.g., entered into search field 1470) and/or one or more selected facets (e.g., entered via appropriate menus accessible via buttons 1462, 1464, 1466, and 1468) and initiates a search segmentation that re-segments the video segments in the composite video based on the query. In an example implementation, a user types one or more keywords into the search field 1470 and/or selects one or more facets via menus or other interaction elements that represent feature categories (feature traces) and/or corresponding facets (detected features). In 14 interacting with buttons 1462, 1464, 1466, and 1468 (e.g., by hovering over the menu, left-clicking on a button corner, right-clicking) activates a corresponding menu showing detected people (button 1462), detected sounds (button 1464), detected visual scenes (button 1466) and detected visual artifacts (button 1468). As such, a user may navigate through the faceted search menus, select one or more facets (e.g., a particular face, sound classification, visual scene, and/or visual artifact), enter one or more keywords into the search field 1470, and enter a Perform a search (e.g., by clicking a facet, an existing faceted search menu, clicking a search button, and the like).

Wenn ein Nutzer bei einigen Ausführungsformen eine Anfrage durch eine Facette oder ein Schlüsselwort tätigt, löst die Suchleiste 1450 eine temporäre Suchsegmentierung aus und hebt die passenden Videosegmente in dem Videozeitstrahl 1405 hervor. Bei diesem Beispiel wird die Suchsegmentierung als temporär betrachtet, da sie keine destruktiven Vorgänge an den Videosegmenten in dem zusammengesetzten Video durchführt. Tätigt der Nutzer eine weitere Anfrage durch Hinzufügen oder Entfernen von Schlüsselwörtern oder Facetten, so löst die Suchleiste 1450 eine neue temporäre Suchsegmentierung aus. Löscht oder entfernt der Nutzer die Anfrage, so verschwindet die Suchsegmentierung, und der Videozeitstrahl 1405 ruft die Darstellung des zusammengesetzten Videos so, wie dieses vor der Suche war, ab. Bei einigen Ausführungsformen bestehen Schlüsselwort- und Facettenanfragen weiter, bis ein Nutzer sie löscht oder entfernt, wodurch die Hervorhebung eines beliebigen Suchergebnisses aufgehoben wird. Bei einer exemplarischen Implementierung besteht der Suchzustand nicht weiter, wenn der Nutzer zwischen den Sucher- und Bearbeiterschnittstellen hin und herschaltet.In some embodiments, when a user makes a query through a facet or keyword, search bar 1450 triggers temporary search segmentation and highlights the matching video segments in video timeline 1405 . In this example, the search segmentation is considered temporary because it does not perform any destructive operations on the video segments in the composite video. If the user makes another query by adding or removing keywords or facets, the search bar 1450 triggers a new temporary search segmentation. If the user deletes or removes the query, the search segmentation disappears and the video timeline 1405 retrieves the composite video representation as it was before the search. In some embodiments, keyword and facet queries persist until a user deletes or removes them, thereby de-emphasizing any search result. In an exemplary implementation, the search state does not persist when the user toggles between the searcher and editor interfaces.

Bei einigen Ausführungsformen berücksichtigt eine Suchsegmentierung in der Bearbeiterschnittstelle 1400 beliebige bestehende Videosegmente in dem zusammengesetzten Video, ohne beliebige Grenzen hiervon zu ändern (So wird die Suchsegmentierung beispielsweise an jedem Videosegment in dem zusammengesetzten Video getrennt durchgeführt). Führt ein Nutzer eine Handlung an einem Suchergebnis aus (löscht er beispielsweise ein passendes Videosegment), so werden neue Bearbeitungsgrenzen, die die Handlung widerspiegeln, erstellt. Mit anderen Worten, sucht ein Nutzer nach „Baum“ und löscht ein Videosegment, das einen Baum in einem Teil des zusammengesetzten Videos, jedoch nicht in einem anderen Teil zeigt, so weist derjenige Teil, in dem der Nutzer den Vorgang (in diesem Fall die Löschung) durchgeführt hat, neue Segmentgrenzen auf, während dies bei den anderen Teilen nicht der Fall ist. Bei einigen Ausführungsformen werden Suchergebnisse von der Zoomstufe beeinflusst (beispielsweise genauer oder detailreicher mit der Zoomstufe gezeigt), und/oder entsprechende Bereiche auf dem Videozeitstrahl 1405 werden dargestellt, um zu zeigen, wo in dem zusammengesetzten Video die Anfrage EIN ist.In some embodiments, a search segmentation in the editor interface 1400 considers any existing video segments in the composite video without changing any boundaries thereof (e.g., the search segmentation is performed on each video segment in the composite video separately). When a user performs an action on a search result (e.g., deletes a matching video segment), new edit boundaries reflecting the action are created. In other words, if a user searches for "tree" and deletes a video segment that shows a tree in one part of the composite video but not another part, the part where the user did the operation (in this case, the deletion) has performed new segment boundaries, while this is not the case for the other parts. In some embodiments, search results are affected by the zoom level (e.g., shown in more detail or detail with the zoom level) and/or corresponding areas on the video timeline 1405 are rendered to show where in the composite video the query is ON.

Verschiedene Ausführungsformen des Videozeitstrahls 1405 präsentieren daher eine auf einer hohen Stufe befindliche Übersicht über visuellen und Audiocontent, der in einem zusammengesetzten Video enthalten ist, in Abhängigkeit von aktivierten (toggled on) Merkmalskategorien, der Zoomstufe der Suchkriterien und der Bildschirmgröße. Als solches kann ein Nutzer bei verschiedenen Ausführungsformen gleichzeitig detektierte Merkmale, Einrastpunkte, Videovorschaubilder und/oder Suchergebnisse anschauen, was den Nutzer bei der Wahl von guten Schneidepunkten unterstützt.Various embodiments of the video timeline 1405 therefore present a high-level overview of visual and audio content contained in a composite video, depending on the toggled on feature categories, the zoom level of the search criteria, and the screen size. As such, in different embodiments, a user can simultaneously view detected features, snap points, video thumbnails and/or search results, which assists the user in choosing good cutting points.

Bei einer exemplarischen Implementierung werden nach der Auswahl eines oder mehrerer Videosegmente eine oder mehrere Bearbeitungsfunktionen, die von der Bearbeiterschnittstelle 1400 bereitgestellt werden, benutzt, um die ausgewählten Videosegmente zu bearbeiten. Das Bearbeiterfeld 1460 stellt beispielsweise eine beliebige Anzahl von Bearbeitungsfunktionen für ein ausgewähltes Videosegment bereit. In Abhängigkeit von der Implementierung beinhalten verfügbare Bearbeitungsfunktionen stilistische Verfeinerungen, die Content umwandeln (beispielsweise eine Verringerung von Windgeräuschen), die Dauer beeinflussende Verfeinerungen, die Content beseitigen (beispielsweise Bereiche des Filmmaterials „verstecken“, Schimpfwörter entfernen, einen Zeitsprung durchführen, eine Verkürzung auf n Sekunden vornehmen), und/oder Kontextfunktionen, die vom ausgewählten Content abhängen (beispielsweise Wörter aus dem Content mit einem entsprechenden Transkript entfernen oder überpiepen). Bei einigen Ausführungsformen ist die Verfeinerung der Videoeigenschaften deklarativ und nicht destruktiv. Ist beispielsweise eine Marquee-Auswahl getätigt und überlappt mit Abschnitten des zusammengesetzten Videos, die vorher angewandte Eigenschaften aufweisen, so überschreiben beliebige neu angewendete Eigenschaften hierzu widersprüchliche Eigenschaften mit dem neuen Wert. Bei verschiedenen Ausführungsformen stellt das Bearbeiterfeld 1460 eine beliebige geeignete Bearbeitungsfunktionalität bereit, darunter ein Neuanordnen, Beschneiden bzw. Cropping, Anwenden von Übergängen oder Effekten (beispielsweise Änderungsgeschwindigkeit, Lautstärke), Farbanpassen, Hinzufügen von Überschriften oder Grafiken und/oder anderes.In an example implementation, after selecting one or more video segments, one or more editing functions provided by editor interface 1400 are used to edit the selected video segments. For example, the editor panel 1460 provides any number of editing functions for a selected video segment. Depending on the implementation, available editing features include stylistic refinements that transform content (e.g., wind noise reduction), duration-affecting refinements that eliminate content (e.g., "hide" areas of footage, remove profanity, perform a time warp, trim to n seconds), and/or context functions that depend on the selected content (e.g. remove or beep words from the content with an appropriate transcript). In some embodiments, the refinement of the video properties is declarative and non-destructive. For example, if a marquee selection is made and overlaps portions of the composite video that have previously applied properties, any newly applied properties will overwrite conflicting properties with the new value. In various embodiments, the editor panel 1460 provides any suitable editing functionality, including reordering, cropping, applying transitions or effects (e.g., rate of change, volume), adjusting color, adding captions or graphics, and/or others.

Als solches kann das sich ergebende zusammengesetzte Video abgespielt, gespeichert oder exportiert werden, oder es werden andere Vorgänge durchgeführt. Bei einem Beispiel werden die Videosegmente in dem zusammengesetzten Video (beispielsweise beim Klicken auf eine Abspielschaltfläche) abgespielt, wobei Videosegmente, die nicht in dem zusammengesetzten Video sind, übersprungen werden. Bei einem weiteren Beispiel werden die Videosegmente in dem zusammengesetzten Video exportiert. In Abhängigkeit von der Implementierung wird ein beliebiges bekanntes Werkzeug oder eine solche Technik benutzt, um einen beliebigen Typ von Vorgang an den Videosegmenten in dem zusammengesetzten Video vorzunehmen.As such, the resulting composite video can be played, saved, exported, or other operations performed. In one example, the video segments in the composite video are played (e.g., upon clicking a play button), skipping video segments that are not in the composite video. In another example, the video segments in the composite video are exported. Depending on the implementation, any known tool or technique is used to perform any type of operation on the video segments in the composite video.

Die vorbeschriebenen Videosegmentierungs- und Interaktionstechniken sollen bloße Beispiele sein. Weitere Abwandlungen, Kombinationen und Unterkombinationen sind im Umfang der vorliegenden Offenbarung beinhaltet.The video segmentation and interaction techniques described above are intended to be mere examples. Other modifications, combinations, and sub-combinations are included within the scope of the present disclosure.

Exemplarische FlussdiagrammeExemplary flowcharts

In 16 bis 22 sind Flussdiagramme dargestellt, die verschiedene Verfahren darstellen. Jeder Block der Verfahren 1600 bis 2200 wie auch weitere Verfahren, die hier beschrieben werden, umfassen einen Berechnungsprozess, der unter Nutzung einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt wird. Es können beispielsweise verschiedene Funktionen von einem Prozessor, der in einem Speicher gespeicherte Anweisungen ausführt, durchgeführt werden. Die Verfahren können zudem als computernutzbare Anweisungen, die auf Computerspeichermedien gespeichert sind, verkörpert sein. Die Verfahren können von einer eigenständigen Anwendung, einem Dienst oder einem gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder einem Plug-in für ein weiteres Produkt, um nur einige wenige zu nennen, bereitgestellt werden.In 16 until 22 Flowcharts are shown that represent various procedures. Each block of methods 1600-2200, as well as other methods described herein, includes a computational process performed using any combination of hardware, firmware, and/or software. For example, various functions may be performed by a processor executing instructions stored in memory. The methods may also be embodied as computer-usable instructions stored on computer storage media. The methods may be provided by a standalone application, service, or hosted service (standalone or in combination with another hosted service), or a plugin for another product, to name a few.

Zunächst werden 16A und 16B betrachtet. Diese Figuren zeigen ein Verfahren 1600 zum Generieren einer Videosegmentierung unter Nutzung eines graphischen Modells entsprechend hier beschriebenen Ausführungsformen. Zunächst wird bei Block 1610 auf eine oder mehrere Merkmalsspuren zugegriffen. Die eine oder die mehreren Merkmalsspuren stellen Instanzen von detektierten Merkmalen in einem Video und entsprechende Zeitbereiche, in denen die Instanzen in dem Video vorhanden sind, dar. Um eine optimale Videosegmentierung zu generieren, werden Kandidatensegmentierungen unter Nutzung eines graphischen Modells bewertet. Insbesondere wird bei Block 1620 eine Darstellung eines Graphen mit Knoten und Kanten derart generiert, dass die Knoten Kandidatengrenzen darstellen, die aus Grenzen der Zeitbereiche ausgewählt sind, und die Kanten Kandidatenvideosegmente darstellen und Kantengewichtungen aufweisen, die Schneidekosten für die Kandidatenvideosegmente darstellen. Blöcke 1640 und 1650 zeigen einen möglichen Weg der Durchführung wenigstens eines Abschnittes des Blocks 1620.Become first 16A and 16B considered. These figures show a method 1600 for generating a video segmentation using a graphical model according to embodiments described herein. First, at block 1610, one or more feature tracks are accessed. The one or more feature traces represent instances of detected features in a video and corresponding time ranges in which the instances are present in the video. To generate optimal video segmentation, candidate segmentations are evaluated using a graphical model. Specifically, at block 1620, a representation of a graph is generated with nodes and edges such that the nodes represent candidate boundaries selected from time domain boundaries and the edges represent candidate video segments and have edge weights representing cutting costs for the candidate video segments. Blocks 1640 and 1650 show one possible way of performing at least a portion of block 1620.

Bei Block 1640 werden Kandidatengrenzen aus einem Teilsatz der Grenzen der Zeitbereiche, in denen die detektierten Merkmale in dem Video vorhanden sind, ausgewählt. Blöcke 1642 bis 1646 von 16B zeigen eine mögliche Art der Durchführung wenigstens eines Abschnittes des Blockes 1640. Bei Block 1642 werden Instanzen von detektierten Merkmalen aus designierten Merkmalsspuren, die mit einem designierten Bereich des Videos zur Segmentierung überlappen, identifiziert. Diese identifizierten Merkmale kann man sich als „überlappende Merkmale“ vorstellen, da sie in dem Video während Zeitbereichen vorhanden sind, die mit dem designierten Bereich des Videos zur Segmentierung (beispielsweise das gesamte Video, ein bestimmtes Videosegment) überlappen. Bei Block 1644 werden Grenzen von Zeitbereichen, in denen die identifizierten Instanzen (überlappende Merkmale) vorhanden sind, angepasst, um an nächstliegenden Grenzen der Zeitbereiche, in denen Prioritätsmerkmale vorhanden sind, einzurasten, wodurch ein Teilsatz der Grenzen der Zeitbereiche gebildet wird. Bei einer exemplarischen Implementierung beinhaltet eine priorisierte Liste von Merkmalen Transkriptmerkmale (beispielsweise Sätze), sodann visuelle Szenen und sodann Gesichter. Bei Block 1646 werden Kandidatengrenzen aus dem Teilsatz identifiziert.At block 1640, candidate boundaries are selected from a subset of the boundaries of the time ranges in which the detected features are present in the video. Blocks 1642 to 1646 from 16B show one possible manner of performing at least a portion of block 1640. At Block 1642, instances of detected features are identified from designated feature tracks that overlap a designated area of video for segmentation. These identified features can be thought of as "overlapping features" because they are present in the video during time ranges that overlap with the designated area of the video for segmentation (e.g., the entire video, a specific video segment). At block 1644, boundaries of time ranges in which the identified instances (overlapping features) exist are adjusted to snap to nearest boundaries of time ranges in which priority features exist, thereby forming a subset of the time range boundaries. In an exemplary implementation, a prioritized list of features includes transcript features (e.g., sentences), then visual scenes, and then faces. At block 1646, candidate boundaries are identified from the subset.

Bei Block 1650 werden Schneidekosten für die Kantengewichtungen in dem Graphen berechnet. Blöcke 1652 bis 1656 von 16B zeigen eine mögliche Art der Durchführung wenigstens eines Abschnittes des Blockes 1650. Bei Block 1652 werden Grenzschneidekosten für ein Kandidatensegment bestimmt. Bei einer exemplarischen Ausführungsform pönalisieren die Grenzschneidekosten die vorauseilende Grenze des Kandidatensegmentes auf Grundlage von negativen Eigenschaften der vorauseilenden Grenze. Bei einigen Ausführungsformen pönalisieren die Grenzschneidekosten die vorauseilende Grenze des Kandidatensegmentes dafür, dass sie innerhalb eines detektierten Merkmals aus einer anderen Merkmalsspur (beispielsweise ein detektiertes Wort) ist, auf Grundlage eines Abstandes zu einer detektierten visuellen Szenengrenze von den Grenzen der Zeitbereiche oder bei anderen Szenarien. Bei einigen Ausführungsformen werden Grenzschneidekosten unter Nutzung von Gleichung 1 berechnet. Bei Block 1654 werden Intervallschneidekosten für ein Kandidatensegment bestimmt. Bei einer exemplarischen Ausführungsform pönalisieren die Intervallschneidekosten ein Kandidatensegment auf Grundlage von negativen Eigenschaften der Überspannung des Kandidatensegmentes. Bei einigen Ausführungsformen pönalisieren die Intervallschneidekosten Kandidatensegmente, die eine Länge außerhalb einer minimalen oder maximalen Solllänge aufweisen, Kandidatensegmente, die eine Inkohärenz von überlappenden Merkmalen aus anderen Merkmalsspuren aufweisen, und/oder Kandidatensegmente, die sowohl mit Anfrage-EINwie auch AUS-Merkmalen überlappen. Bei Block 1656 wird die Kantengewichtung zwischen zwei Knoten als Summe der Grenzschneidekosten und Intervallschneidekosten für das Kandidatensegment bestimmt.At block 1650, a clipping cost for the edge weights in the graph is calculated. Blocks 1652 to 1656 from 16B 16 show one possible manner of performing at least a portion of block 1650. At block 1652, a boundary cutting cost is determined for a candidate segment. In an exemplary embodiment, the boundary cutting cost penalizes the leading boundary of the candidate segment based on negative properties of the leading boundary. In some embodiments, the boundary clipping cost penalizes the candidate segment's leading boundary for being within a detected feature from another feature track (e.g., a detected word) based on a distance to a detected visual scene boundary from the boundaries of the time domains or in other scenarios. In some embodiments, a boundary cutting cost is calculated using Equation 1. At block 1654, interval cutting costs are determined for a candidate segment. In an exemplary embodiment, the interval cutting cost penalizes a candidate segment based on negative properties of the candidate segment's span. In some embodiments, the interval cutting cost penalizes candidate segments that have a length outside of a minimum or maximum target length, candidate segments that have an incoherence of overlapping features from other feature lanes, and/or candidate segments that overlap with both query IN and OFF features. At block 1656, the edge weight between two nodes is determined as the sum of the boundary cutting cost and interval cutting cost for the candidate segment.

Wie in 16A gezeigt ist, wird bei Block 1660 ein kürzester Weg durch die Knoten und Kanten berechnet. Bei Block 1670 wird eine Präsentation einer Darstellung einer Segmentierung des Videos entsprechend dem kürzesten Weg veranlasst.As in 16A As shown, at block 1660 a shortest path through the nodes and edges is computed. At block 1670, a presentation of a representation of a segmentation of the video according to the shortest path is prompted.

17 zeigt ein Verfahren 1700 zum Segmentieren einer Standardsegmentierung eines Videos zu einer Suchsegmentierung entsprechend Ausführungsformen der vorliegenden Erfindung. Zunächst wird bei Block 1710 eine Präsentation einer Standardsegmentierung eines Videos veranlasst. Bei Block 1720 wird eine Anfrage empfangen. Bei Block 1730 werden detektierte Merkmale des Videos nach passenden Merkmalen, die zu einer Anfrage passen, durchsucht. Bei Block 1740 wird die Standardsegmentierung auf Grundlage der Anfrage zu einer Suchsegmentierung neusegmentiert. Block 1745 zeigt eine mögliche Art der Durchführung wenigstens eines Abschnittes von Block 1740. Bei Block 1745 wird jedes Videosegment der Standardsegmentierung, das wenigstens eines der passenden Merkmale beinhaltet, auf Grundlage der Anfrage segmentiert. Bei Block 1750 wird die Präsentation aktualisiert, um die Suchsegmentierung darzustellen. 17 17 shows a method 1700 for segmenting a standard segmentation of a video into a search segmentation in accordance with embodiments of the present invention. First, at block 1710, a presentation of a default segmentation of video is caused. At block 1720, a request is received. At block 1730, detected features of the video are searched for matching features that match a query. At block 1740, the default segmentation is re-segmented based on the search segmentation request. Block 1745 shows one possible manner of performing at least a portion of block 1740. At block 1745, each video segment of the default segmentation that includes at least one of the matching features is segmented based on the request. At block 1750, the presentation is updated to reflect the search segmentation.

18 zeigt ein Verfahren 1800 zum Navigieren durch ein Video unter Nutzung von interaktiven Kacheln entsprechend Ausführungsformen der vorliegenden Erfindung. Zunächst wird bei Block 1810 eine Präsentation von interaktiven Kacheln veranlasst, die (i) Videosegmente einer Segmentierung eines Videos und (ii) Instanzen von detektierten Merkmalen der Videosegmente darstellen. Bei Block 1820 wird ein Klicken oder Tippen auf eine der interaktiven Kacheln detektiert. Insbesondere erfolgt das Klicken oder Tippen auf eine Visualisierung einer der Instanzen eines der detektierten Merkmale, die von einem der von der interaktiven Kachel dargestellten Videosegmente detektiert worden sind. Bei Block 1830 wird durch das Video zu einem Abschnitt des Videos, in dem die Instanz des detektierten Merkmals vorhanden ist, navigiert. 18 18 shows a method 1800 for navigating through a video using interactive tiles according to embodiments of the present invention. First, at block 1810, a presentation of interactive tiles is prompted that represent (i) video segments of a segmentation of video and (ii) instances of detected features of the video segments. At block 1820, a click or tap on one of the interactive tiles is detected. In particular, the clicking or tapping occurs on a visualization of one of the instances of one of the detected features detected from one of the video segments presented by the interactive tile. At block 1830, the video is navigated to a portion of the video where the instance of the detected feature is present.

19 zeigt ein Verfahren 1900 zum zu einer Auswahl erfolgenden Hinzufügen von Videosegmenten entsprechend Ausführungsformen der vorliegenden Erfindung. Zunächst wird bei Block 1910 eine Präsentation von interaktiven Kacheln veranlasst, die (i) Videosegmente einer Segmentierung eines Videos und (ii) Instanzen von detektierten Merkmalen der Videosegmente darstellen. Bei Block 1920 wird eine Interaktion mit einer der interaktiven Kacheln, die eines der Videosegmente darstellt, detektiert. Blöcke 1930 bis 1950 zeigen eine mögliche Art der Durchführung wenigstens eines Abschnittes von Block 1920. Bei Block 1930 wird ein Klicken oder Tippen (beispielsweise ein Rechtsklicken oder ein Tippen und Halten) in der interaktiven Kachel detektiert. Das Klicken oder Tippen erfolgt auf eine Visualisierung einer der Instanzen eines der detektierten Merkmale, die von einem der von der interaktiven Kachel dargestellten Videosegmente detektiert worden sind. Bei Block 1940 wird ein Kontextmenü in Reaktion auf das Klicken oder Tippen aktiviert. Bei Block 1950 wird eine Eingabe, die eine Option aus dem Kontextmenü auswählt, detektiert. Die Option ist ein zu der Auswahl erfolgendes Hinzufügen des Abschnittes des Videosegmentes entsprechend der Instanz des detektierten Merkmals. Bei Block 1960 wird wenigstens ein Abschnitt des Videosegmentes zu einer Auswahl von Videosegmenten in Reaktion auf das Detektieren der Interaktion hinzugefügt. 19 19 shows a method 1900 for adding video segments to a selection according to embodiments of the present invention. First, at block 1910, a presentation of interactive tiles is prompted that represent (i) video segments of a segmentation of video and (ii) instances of detected features of the video segments. At block 1920, an interaction with one of the interactive tiles representing one of the video segments is detected. Blocks 1930 through 1950 show one possible manner of performing at least a portion of block 1920. At block 1930, a click or tap (e.g., a right-click or a tap-and-hold) in the interactive Tile detected. The clicking or tapping occurs on a visualization of one of the instances of one of the detected features detected from one of the video segments presented by the interactive tile. At block 1940, a context menu is activated in response to the click or tap. At block 1950, input selecting an option from the context menu is detected. The option is to add to the selection the portion of the video segment corresponding to the instance of the detected feature. At block 1960, at least a portion of the video segment is added to a selection of video segments in response to detecting the interaction.

20 zeigt ein Verfahren 2000 zum Einrasten einer Auswahlgrenze einer Auswahl von Videosegmenten entsprechend Ausführungsformen der vorliegenden Erfindung. Zunächst wird bei Block 2010 eine Präsentation einer ersten Segmentierung eines Videozeitstrahles eines Videos veranlasst. Bei Block 2020 wird eine Darstellung einer zweiten Segmentierung der ersten Segmentierung unter Nutzung einer oder mehrerer Merkmalsspuren generiert, die Instanzen von detektierten Merkmalen in dem Video und Merkmalsbereiche, die angeben, wann die Instanz in dem Video vorhanden ist, darstellen. Bei Block 2030 wird in Reaktion auf einen Ziehvorgang entlang des Videozeitstrahles eine Auswahlgrenze einer Auswahl eines Abschnittes des Videos an Einrastpunkten, die durch die zweite Segmentierung definiert sind, eingerastet. 20 FIG. 2000 shows a method 2000 for snapping a selection boundary of a selection of video segments, in accordance with embodiments of the present invention. First, at block 2010, a presentation of a first segmentation of a video timeline of video is caused. At block 2020, a representation of a second segmentation of the first segmentation is generated using one or more feature tracks representing instances of detected features in the video and feature regions indicating when the instance is present in the video. At block 2030, in response to a drag operation along the video timeline, a selection boundary of a selection of a portion of the video is snapped to snap points defined by the second segmentation.

21 zeigt ein Verfahren 2100 zum Präsentieren eines Videozeitstrahles mit Vorschaubildern an Orten, die durch eine Vorschaubildsegmentierung definiert sind, entsprechend Ausführungsformen der vorliegenden Erfindung. Zunächst wird bei Block 2110 eine Präsentation einer ersten Segmentierung eines Videozeitstrahles eines Videos veranlasst. Bei Block 2120 wird das Generieren einer Darstellung einer Vorschaubildsegmentierung des Videos ausgelöst. Das Generieren der Darstellung der Vorschaubildsegmentierung nutzt eine oder mehrere Merkmalsspuren, die Instanzen von detektierten Merkmalen in dem Video und Merkmalsbereiche, die angeben, wann die Instanzen in dem Video vorhanden sind, darstellen. Bei Block 2130 wird der Videozeitstrahl aktualisiert, um ein oder mehrere Vorschaubilder des Videos an Orten auf dem Videozeitstrahl, die durch die Vorschaubildsegmentierung definiert sind, darzustellen. 21 FIG. 2100 shows a method 2100 for presenting a video timeline with thumbnails at locations defined by thumbnail segmentation, according to embodiments of the present invention. First, at block 2110, a presentation of a first segmentation of a video timeline of video is caused. At block 2120, generation of a representation of a thumbnail segmentation of the video is triggered. Generating the representation of the thumbnail segmentation uses one or more feature tracks that represent instances of detected features in the video and feature regions that indicate when the instances are present in the video. At block 2130, the video timeline is updated to display one or more thumbnails of the video at locations on the video timeline defined by the thumbnail segmentation.

22 zeigt ein Verfahren 2200 zum Präsentieren eines Videozeitstrahles mit Vorschaubildern an Orten, die durch eine Vorschaubildsegmentierung definiert sind. Zunächst wird bei Block 2210 eine Präsentation eines Videozeitstrahles eines Videos veranlasst. Bei Block 2220 wird auf eine Darstellung einer Vorschaubildsegmentierung des Videos zugegriffen. Die Vorschaubildsegmentierung definiert Vorschaubildorte auf dem Videozeitstrahl an Grenzen von Merkmalsbereichen von Zeitpunkten, zu denen Instanzen von detektierten Merkmalen des Videos in dem Video vorhanden sind. Bei Block 2230 wird die Präsentation dahingehend aktualisiert, dass sie ein Vorschaubild an einem der Vorschaubildorte, die durch die Vorschaubildsegmentierung definiert sind, beinhaltet, wobei das Vorschaubild einen Abschnitt des Videos, der dem Vorschaubildort zugeordnet ist, darstellt. 22 Figure 2200 shows a method 2200 for presenting a video timeline with thumbnails at locations defined by thumbnail segmentation. First, at block 2210, a presentation of a video timeline of video is caused. At block 2220, a representation of a thumbnail segmentation of the video is accessed. Thumbnail segmentation defines thumbnail locations on the video timeline at feature region boundaries of times at which instances of detected features of the video are present in the video. At block 2230, the presentation is updated to include a thumbnail at one of the thumbnail locations defined by the thumbnail segmentation, the thumbnail representing a portion of the video associated with the thumbnail location.

Exemplarische BetriebsumgebungExemplary Operating Environment

Nachdem eine Übersicht über Ausführungsformen der vorliegenden Erfindung angegeben worden ist, wird nachstehend eine exemplarische Betriebsumgebung, in der Ausführungsformen der vorliegenden Erfindung implementiert werden können, beschrieben, um einen allgemeinen Kontext für verschiedene Aspekte der vorliegenden Erfindung bereitzustellen. Insbesondere in 23 ist eine exemplarische Betriebsumgebung zum Implementieren von Ausführungsformen der vorliegenden Erfindung gezeigt und wird allgemein als Rechenvorrichtung 2300 bezeichnet. Die Rechenvorrichtung 2300 ist lediglich ein Beispiel für eine geeignete Rechenumgebung und soll keine Beschränkung hinsichtlich des Nutzungsumfangs oder der Funktionalität der Erfindung nahelegen. Ebenso wenig soll die Rechenvorrichtung 2300 so interpretiert werden, dass bei ihr irgendeine Abhängigkeit oder Anforderung im Zusammenhang mit einer beliebigen der dargestellten Komponenten oder einer Kombination derselben vorhanden ist.Having provided an overview of embodiments of the present invention, an exemplary operating environment in which embodiments of the present invention may be implemented is described below to provide general context for various aspects of the present invention. In particular 23 An exemplary operating environment for implementing embodiments of the present invention is shown in FIG. Computing device 2300 is merely one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Likewise, the computing device 2300 should not be interpreted as having any dependency or requirement associated with any one or combination of the illustrated components.

Die Erfindung kann im allgemeinen Kontext von Computercode oder maschinennutzbaren Anweisungen beschrieben werden, darunter computerausführbare Anweisungen, so beispielsweise Programmmodule, die von einem Computer oder einer anderen Maschine, so beispielsweise einem zellenbasierten Telefon, einem Persönlichen Digitalen Assistenten oder einer anderen Handvorrichtung, ausgeführt werden. Allgemein bezeichnen Programmmodule, die Routinen, Programme, Objekte, Komponenten, Datenstrukturen und dergleichen beinhalten, Code, der bestimmte Aufgaben erledigt oder bestimmte abstrakte Datentypen implementiert. Die Erfindung kann in einer Vielzahl von Systemkonfigurationen praktisch umgesetzt werden, darunter Handvorrichtungen, Geräte der Unterhaltungselektronik, Allzweckcomputer, spezialisierte Rechenvorrichtungen und dergleichen mehr. Die Erfindung kann auch in verteilten Rechenumgebungen umgesetzt sein, wo Aufgaben von Remote-Verarbeitungsvorrichtungen, die durch ein Kommunikationsnetzwerk verbunden sind, erledigt werden.The invention may be described in the general context of computer code or machine-usable instructions, including computer-executable instructions, such as program modules, that are executed by a computer or other machine, such as a cellular phone, personal digital assistant, or other handheld device. Generally, program modules, which include routines, programs, objects, components, data structures, and the like, refer to code that performs specific tasks or implements specific abstract data types. The invention may be practiced in a variety of system configurations, including handheld devices, consumer electronic devices, general purpose computers, specialized computing devices, and the like. The invention can also be implemented in distributed computing environments where tasks are performed by remote processing devices linked through a communications network.

Wie in 23 gezeigt ist, beinhaltet die Rechenvorrichtung 2300 einen Bus 2310, der die nachfolgenden Vorrichtungen direkt oder indirekt koppelt: einen Speicher 2312, einen oder mehrere Prozessoren 2314, eine oder mehrere Präsentationskomponenten 2316, I/O-Ports (Input/Output I/O, Eingabe/Ausgabe) 2318, I/O-Komponenten 2320 und eine illustrative Leistungsversorgung 2322. Der Bus 2310 stellt etwas dar, das ein oder mehrere Busse sein kann (so beispielsweise ein Adressbus, ein Datenbus oder eine Kombination hieraus). Obwohl die verschiedenen Blöcke von 23 aus Gründen der Klarheit mit Linien gezeigt sind, ist die Abgrenzung der verschiedenen Komponenten in Wirklichkeit nicht so eindeutig, weshalb die Linien im übertragenen Sinne besser grau und verschwommen sein sollten. So kann man beispielsweise eine Präsentationskomponente, so beispielsweise eine Anzeigevorrichtung, auch als I/O-Komponente betrachten. Zudem weisen Prozessoren einen Speicher auf. Es wird im Sinne der vorliegenden Erfindung zugestanden, dass dies das Wesen des Gebietes ist, und es wird erneut darauf hingewiesen, dass das Diagramm von 23 rein illustrativ für eine exemplarische Rechenvorrichtung ist, die in Verbindung mit einer oder mehreren Ausführungsformen der vorliegenden Erfindung benutzt werden kann. Es wird keine Unterscheidung zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Handvorrichtung“ und dergleichen getroffen, da diese alle im Umfang von 23 und durch die Bezeichnung „Rechenvorrichtung“ erfasst sind.As in 23 As shown, computing device 2300 includes a bus 2310 that directly or indirectly couples the following devices: memory 2312, one or more processors 2314, one or more presentation components 2316, I/O ports (input/output I/O, input /output) 2318, I/O components 2320, and an illustrative power supply 2322. Bus 2310 represents what may be one or more buses (such as an address bus, a data bus, or a combination thereof). Although the different blocks of 23 shown with lines for the sake of clarity, in reality the demarcation of the various components is not so clear-cut, so the lines should be figuratively gray and blurred. For example, a presentation component, such as a display device, can also be considered an I/O component. In addition, processors have a memory. It is recognized for the purposes of the present invention that this is the nature of the field and it is again pointed out that the diagram of FIG 23 is purely illustrative of an exemplary computing device that may be used in connection with one or more embodiments of the present invention. No distinction is made between categories such as "workstation", "server", "laptop", "handheld" and the like, as these are all within the scope of 23 and are covered by the term "Computing Device".

Die Rechenvorrichtung 2300 beinhaltet üblicherweise eine Vielzahl von computerlesbaren Medien. Computerlesbare Medien können beliebige verfügbare Medien sein, auf die die Rechenvorrichtung 2300 zugreifen kann, und beinhalten sowohl flüchtige wie auch nichtflüchtige Medien und entfernbare wie auch nichtentfernbare Medien. Beispiels- und nicht beschränkungshalber können computerlesbare Medien Computerspeichermedien und Kommunikationsmedien umfassen. Computerspeichermedien beinhalten sowohl flüchtige wie auch nichtflüchtige, entfernbare wie auch nichtentfernbare Medien, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Information beispielsweise als computerlesbare Anweisungen, Datenstrukturen, Programmmodule und andere Daten implementiert sind. Computerspeichermedien beinhalten unter anderem RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, DVD oder einen anderen optischen Plattenspeicher, Magnetkassetten, Magnetbänder, einen Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder ein beliebiges anderes Medium, das dazu benutzt werden kann, gewünschte Information zu speichern, und auf das die Rechenvorrichtung 2300 zugreifen kann. Computerspeichermedien umfassen keine Signale per se. Kommunikationsmedien verkörpern üblicherweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, so beispielsweise einer Trägerwelle oder einem anderen Transportmechanismus, und beinhalten beliebige Informationsverteilungsmedien. Der Begriff „moduliertes Datensignal“ bezeichnet ein Signal, bei dem eine oder mehrere Eigenschaften auf eine Weise eingestellt oder verändert sind, dass Information in dem Signal codiert ist. Beispiels- und nicht beschränkungshalber beinhalten Kommunikationsmedien drahtgebundene Medien, so beispielsweise ein drahtgebundenes Netzwerk oder eine direkte drahtgebundene Verbindung, sowie drahtlose Medien, so beispielsweise akustische, hochfrequenzbasierte, infrarote und andere Drahtlosmedien. Kombinationen aus beliebigen der vorgenannten Elemente sollen im Umfang der computerlesbaren Medien beinhaltet sein.Computing device 2300 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computing device 2300 and includes both volatile and non-volatile media and removable and non-removable media. By way of example and not limitation, computer-readable media may include computer storage media and communications media. Computer storage media includes both volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, and other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other storage technology, CD-ROM, DVD or other optical disk storage, magnetic cartridges, magnetic tape, magnetic disk storage or other magnetic storage device, or any other medium that can be used to desired information to be stored and accessible by computing device 2300. Computer storage media do not include signals per se. Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information distribution media. The term "modulated data signal" means a signal that has one or more properties adjusted or changed in a way that information is encoded in the signal. By way of example and not limitation, communication media includes wired media, such as a wired network or direct wired connection, and wireless media, such as acoustic, radio frequency, infrared, and other wireless media. Combinations of any of the foregoing are intended to be included within the scope of the computer-readable media.

Der Speicher 2312 beinhaltet Computerspeichermedien in Form eines flüchtigen und/oder nichtflüchtigen Speichers. Der Speicher kann entfernbar, nichtentfernbar oder eine Kombination aus beidem sein. Exemplarische Hardwarevorrichtungen beinhalten Solid-State-Speicher, Festplattenlaufwerke, Laufwerke für optische Platten und dergleichen. Die Rechenvorrichtung 2300 beinhaltet einen oder mehrere Prozessoren, die Daten von verschiedenen Entitäten, so beispielsweise dem Speicher 2312 oder den I/O-Komponenten 2320, lesen. Eine Präsentationskomponente / Präsentationskomponenten 2316 präsentiert/präsentieren Datenangaben für einen Nutzer oder eine andere Vorrichtung. Exemplarische Präsentationskomponenten beinhalten eine Anzeigevorrichtung, einen Lautsprecher, eine Druckerkomponente, eine Vibrationskomponente und dergleichen mehr.Memory 2312 includes computer storage media in the form of volatile and/or non-volatile memory. The memory can be removable, non-removable, or a combination of both. Exemplary hardware devices include solid state memories, hard drives, optical disk drives, and the like. Computing device 2300 includes one or more processors that read data from various entities such as memory 2312 or I/O components 2320 . A presentation component(s) 2316 presents data information to a user or other device. Exemplary presentation components include a display device, a speaker, a printer component, a vibration component, and the like.

Die I/O-Ports 2318 ermöglichen, dass die Rechenvorrichtung 2300 logisch mit anderen Vorrichtungen gekoppelt ist, die I/O-Komponenten 2320 beinhalten, von denen einige eingebaut sein können. Illustrative Komponenten beinhalten ein Mikrofon, einen Joystick, einen Gamepad, eine Satellitenschüssel, einen Scanner, einen Drucker, eine Drahtlosvorrichtung und dergleichen mehr. Die I/O-Komponenten 2320 können eine natürliche Nutzerschnittstelle (NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben, die von einem Nutzer generiert werden, verarbeitet. In einigen Fällen können Eingaben an ein geeignetes Netzwerkelement zur weiteren Verarbeitung übertragen werden. Implementieren kann eine NUI eine beliebige Kombination aus Spracherkennung, Stifterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl an einem Bildschirm als auch neben diesem, Luftgesten-, Kopf- und Augenverfolgung und Berührungserkennung (was nachstehend noch detaillierter beschrieben wird) in Verbindung mit einer Anzeige der Rechenvorrichtung 2300. Die Rechenvorrichtung 2300 kann mit Tiefenkameras ausgestattet sein, so beispielsweise mit stereoskopischen Kamerasystemen, Infrarotkamerasystemen, RGB-Kamerasystemen, einer Touchscreen-Technologie und Kombinationen hieraus zur Detektion und Erkennung von Gesten. Zusätzlich kann die Rechenvorrichtung 2300 mit Akzelerometern oder Gyroskopen, die eine Bewegungsdetektion ermöglichen, ausgestattet sein. Die Ausgabe der Akzelerometer oder Gyroskope kann für die Anzeige der Rechenvorrichtung 2300 bereitgestellt werden, um eine immersive erweiterte Realität oder virtuelle Realität bereitzustellen.I/O ports 2318 allow computing device 2300 to be logically coupled to other devices that include I/O components 2320, some of which may be built-in. Illustrative components include a microphone, joystick, gamepad, satellite dish, scanner, printer, wireless device, and the like. The I/O components 2320 may provide a natural user interface (NUI) that processes air gestures, speech, or other physiological input generated by a user. In some cases, inputs can be transmitted to an appropriate network element for further processing. A NUI can implement any combination of speech recognition, pen recognition, face recognition, biometric recognition, Both on and off screen gesture recognition, air gesture, head and eye tracking, and touch recognition (described in more detail below) in conjunction with a display of the computing device 2300. The computing device 2300 may be equipped with depth cameras, such as stereoscopic camera systems , infrared camera systems, RGB camera systems, touchscreen technology and combinations thereof for detecting and recognizing gestures. Additionally, the computing device 2300 may be equipped with accelerometers or gyroscopes that enable motion detection. The output of the accelerometers or gyroscopes can be provided to the display of the computing device 2300 to provide immersive augmented reality or virtual reality.

Die hier beschriebenen Ausführungsformen unterstützen das Bearbeiten oder Abspielen eines Videos. Die hier beschriebenen Komponenten bezeichnen integrierte Komponenten eines Videobearbeitungssystems. Die integrierten Komponenten bezeichnen die Hardwarearchitektur und das Softwareframework, die die Funktionalität unter Nutzung des Videobearbeitungssystems unterstützen. Die Hardwarearchitektur bezeichnet physische bzw. physikalische Komponenten und die wechselseitigen Beziehungen zwischen diesen, während das Softwareframework Software bezeichnet, die eine Funktionalität bereitstellt, die mit auf einer Vorrichtung verkörperter Hardware implementiert sein kann.The embodiments described herein support editing or playing a video. The components described here refer to integrated components of a video editing system. The integrated components denote the hardware architecture and software framework that support the functionality using the video editing system. Hardware architecture refers to physical components and the interrelationships between them, while software framework refers to software that provides functionality that can be implemented with hardware embodied on a device.

Das Videobearbeitungssystem auf Grundlage von End-to-End-Software kann innerhalb der Komponenten des Videobearbeitungssystems arbeiten, um Computerhardware zu betreiben, die wiederum die Funktionalität des Videobearbeitungssystems bereitstellt. Auf einer niedrigen Stufe führen Hardwareprozessoren Anweisungen aus, die aus einem Anweisungssatz in Maschinensprache (auch als Maschinencode oder nativ bezeichnet) für einen gegebenen Prozessor ausgewählt sind. Der Prozessor erkennt die nativen Anweisungen und führt entsprechende auf niedriger Stufe gegebene Funktionen beispielsweise im Zusammenhang mit Logik-, Steuer- bzw. Regel- und Speichervorgängen durch. Auf niedriger Stufe gegebene Software, die in Maschinencode geschrieben ist, kann eine komplexere Funktionalität für höhere Stufen von Software bereitstellen. Im Sinne des Vorliegenden beinhalten computerausführbare Anweisungen beliebige Software, darunter auf niedriger Stufe gegebene Software, die in Maschinencode geschrieben ist, auf höherer Stufe gegebene Software, so beispielsweise Anwendungssoftware, und eine beliebige Kombination hieraus. In diesem Zusammenhang können Komponenten des Videobearbeitungssystems Ressourcen verwalten und Dienste für die Funktionalität des Videobearbeitungssystems bereitstellen. Beliebige weitere Abwandlungen und Kombinationen hieraus sind in den Ausführungsformen der vorliegenden Erfindung mit umfasst.The end-to-end software based video editing system can operate within the video editing system components to operate computer hardware which in turn provides the functionality of the video editing system. At a low level, hardware processors execute instructions selected from a machine language (also referred to as machine code or native) instruction set for a given processor. The processor recognizes the native instructions and performs appropriate low-level functions associated with, for example, logic, control, and memory operations. Low-level software written in machine code can provide more complex functionality for higher levels of software. As used herein, computer-executable instructions include any software, including low-level software written in machine code, high-level software such as application software, and any combination thereof. In this context, components of the video editing system can manage resources and provide services for the functionality of the video editing system. Any further modifications and combinations thereof are included in the embodiments of the present invention.

Obwohl einige Implementierungen mit Blick auf neuronale Netzwerke beschrieben worden sind, können Ausführungsformen allgemein unter Nutzung eines beliebigen Typs eines maschinell lernenden Modells / von maschinell lernenden Modellen implementiert sein, so beispielsweise durch lineare Regression, logistische Regression, Entscheidungsbäume, Support-Vector-Maschinen (SVM), Naive-Bayes, k-nächster Nachbar (Knn), K-Mittel-Clusterung, Random Forest, dimensionalitätverringernde Algorithmen, gradientenverstärkende Algorithmen, neuronale Netzwerke (beispielsweise Autoencoder, faltungstechnisch, rekurrent, Perzeptrone, Long/Short-Term-Speicher (LSTM), Hopfield, Boltzmann, Deep Belief, entfaltungstechnisch, generativ-adversativ, Liquid-State-Maschine etc. und/oder andere Typen von maschinell lernenden Modellen.Although some implementations have been described in terms of neural networks, in general, embodiments may be implemented using any type of machine learning model(s), such as linear regression, logistic regression, decision trees, support vector machines (SVM ), naive Bayes, k-nearest neighbor (Knn), k-means clustering, random forest, dimensionality-reducing algorithms, gradient-enhancing algorithms, neural networks (e.g., autoencoder, convolutional, recurrent, perceptrons, long/short-term memory (LSTM ), Hopfield, Boltzmann, Deep Belief, devolutional, generative-adversative, liquid state machine, etc. and/or other types of machine learning models.

Nachdem verschiedene Komponenten in der vorliegenden Offenbarung identifiziert worden sind, sollte einsichtig sein, dass eine beliebige Anzahl von Komponenten und Anordnungen eingesetzt werden kann, um die gewünschte Funktionalität innerhalb des Umfangs der vorliegenden Offenbarung zu verwirklichen. Die Komponenten in den Ausführungsformen, die in den Figuren dargestellt sind, sind beispielsweise aus Gründen der Konzeptklarheit mit Linien dargestellt. Andere Anordnungen dieser und anderer Komponenten können jedoch ebenfalls implementiert sein. Obwohl einige Komponenten beispielsweise als Einzelkomponenten dargestellt sind, können viele der hier beschriebenen Elemente als diskrete oder verteilte Komponenten oder in Zusammenarbeit mit anderen Komponenten und in einer beliebigen geeigneten Kombination und an einem beliebigen geeigneten Ort implementiert sein. Einige Elemente können auch gänzlich weggelassen sein. Darüber hinaus können verschiedene Funktionen, die hier derart beschrieben sind, dass sie von einer oder mehreren Entitäten durchgeführt werden, auch von Hardware, Firmware und/oder Software, wie nachstehend beschrieben ist, ausgeführt werden. Verschiedene Funktionen können beispielsweise von einem Prozessor ausgeführt werden, der Anweisungen ausführt, die in einem Speicher gespeichert sind. Als solches können andere Anordnungen und Elemente (beispielsweise Maschinen, Schnittstellen, Funktionen, Reihenfolgen und Gruppierungen von Funktionen und dergleichen) zusätzlich zum Gezeigten oder anstelle desselben benutzt werden.Having identified various components in the present disclosure, it should be appreciated that any number of components and arrangements may be employed to achieve desired functionality within the scope of the present disclosure. For example, the components in the embodiments illustrated in the figures are represented with lines for conceptual clarity. However, other arrangements of these and other components may also be implemented. For example, although some components are illustrated as individual components, many of the elements described herein may be implemented as discrete or distributed components, or in cooperation with other components, and in any suitable combination and location. Some elements can also be omitted entirely. Additionally, various functions described herein as being performed by one or more entities may also be performed by hardware, firmware, and/or software, as described below. For example, various functions may be performed by a processor executing instructions stored in memory. As such, other arrangements and elements (e.g., engines, interfaces, functions, orders and groupings of functions, and the like) may be used in addition to or in place of what is shown.

Der Gegenstand der vorliegenden Erfindung ist hier spezifisch derart beschrieben worden, dass er bestimmte regulatorische Vorgaben erfüllt. Die Beschreibung selbst soll jedoch den Umfang des vorliegenden Patentes nicht beschränken. Vielmehr ist bei der Erfindung beabsichtigt, dass der beanspruchte Gegenstand auch auf andere Weisen verkörpert sein kann und verschiedene Schritte oder Kombinationen von Schritten ähnlich zu denjenigen, die in der vorliegenden Druckschrift beschrieben sind, beinhaltet, und zwar im Zusammenspiel mit weiteren gegenwärtigen oder zukünftigen Technologien. Obwohl zudem die Begriffe „Schritt“ und/oder „Block“ hier benutzt werden können, um verschiedene Elemente der eingesetzten Verfahren zu bezeichnen, sollen die Begriffe nicht derart interpretiert werden, dass sie eine bestimmte Reihenfolge unter oder zwischen verschiedenen hier offenbarten Schritten implizieren, es sei denn, die Reihenfolge der einzelnen Schritte ist explizit beschrieben.The subject matter of the present invention has been specifically described herein as meeting certain regulatory requirements. However, the description itself is not intended to limit the scope of the present patent. On the contrary, the invention is intended that the claimed subject matter may be embodied in other ways and involve various steps or combinations of steps similar to those described herein, in conjunction with other present or future technologies. Additionally, although the terms "step" and/or "block" may be used herein to denote various elements of the methods employed, the terms should not be construed to imply any particular order among or between various steps disclosed herein, es unless the order of the individual steps is explicitly described.

Die vorliegende Erfindung ist anhand bestimmter Ausführungsformen beschrieben worden, die in jeder Hinsicht illustrativ und nicht restriktiv sein sollen. Alternative Ausführungsformen erschließen sich einem Durchschnittsfachmann auf dem Gebiet, zu dem die Erfindung gehört, ohne von deren Umfang abzugehen.The present invention has been described in terms of specific embodiments, which are intended in all respects to be illustrative and not restrictive. Alternative embodiments will suggest themselves to one of ordinary skill in the art to which the invention pertains without departing from the scope thereof.

Aus dem Vorbeschriebenen ist ersichtlich, dass die vorliegende Erfindung darauf abstellt, alle Zwecke und Aufgaben, die vorstehend aufgeführt sind, zu erfüllen und weitere Vorteile, die offensichtlich und system- und verfahrensimmanent sind, zu bieten. Es sollte einsichtig sein, dass gewisse Merkmale und Unterkombinationen von Nutzen sind und ohne Verweis auf andere Merkmale und Unterkombinationen eingesetzt werden können. Dies ist durch den Umfang der Ansprüche mit umfasst und in diesen enthalten.From the foregoing, it is apparent that the present invention is directed to accomplishing all of the purposes and objects set forth above and to providing other advantages that are obvious and inherent in the system and method. It should be appreciated that certain features and sub-combinations are useful and can be used without reference to other features and sub-combinations. This is to be encompassed within and contained within the scope of the claims.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent Literature Cited

  • US 17/017344 [0001]US 17/017344 [0001]

Claims (20)

Ein oder mehrere Computerspeichermedien, die computernutzbare Anweisungen speichern, die bei Nutzung durch eine oder mehrere Rechenvorrichtungen veranlassen, dass die eine oder die mehreren Rechenvorrichtungen Vorgänge durchführen, die umfassen: Veranlassen einer Präsentation von interaktiven Kacheln, die (i) Videosegmente einer Segmentierung eines Videos und (ii) Instanzen von detektierten Merkmalen der Videosegmente darstellen; in einer der interaktiven Kacheln erfolgendes Detektieren eines Klickens oder eines Tippens auf eine Visualisierung einer der Instanzen eines der detektierten Merkmale, das aus einem der von der interaktiven Kachel dargestellten Videosegmente detektiert wird; und Navigieren zu einem Abschnitt des Videos, in dem die Instanz des detektierten Merkmals vorhanden ist.One or more computer storage media storing computer-usable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform operations, including: causing a presentation of interactive tiles representing (i) video segments of a segmentation of video and (ii) instances of detected features of the video segments; in one of the interactive tiles, detecting a click or a tap on a visualization of one of the instances of one of the detected features detected from one of the video segments presented by the interactive tile; and Navigating to a portion of the video where the instance of the detected feature is present. Ein oder mehrere Computerspeichermedien nach Anspruch 1, wobei die interaktive Kachel beinhaltet: ein Thumbnail bzw. Vorschaubild, das ein Einzelbild des Videosegmentes darstellt, einen Abschnitt eines Transkripts des Videosegmentes, eine Visualisierung von detektierten Gesichtern in dem Videosegment und einen facettenbestückten Zeitstrahl, der eine Kategorie der detektierten Merkmale in dem Videosegment darstellt.One or more computer storage media claim 1 , wherein the interactive tile includes: a thumbnail representing a frame of the video segment, a portion of a transcript of the video segment, a visualization of detected faces in the video segment, and a faceted timeline representing a category of the detected features in the video segment . Ein oder mehrere Computerspeichermedien nach Anspruch 1 oder 2, wobei die interaktive Kachel einen facettenbestückten Zeitstrahl mit Facetten beinhaltet, die einen Satz der Instanzen in einer Kategorie der detektierten Merkmale in dem Videosegment und entsprechende Merkmalsbereiche, in denen die Instanzen in der Kategorie auf dem facettenbestückten Zeitstrahl befindlich sind, darstellen, wobei das Klicken oder das Tippen auf die Visualisierung auf einer der Facetten auf dem facettenbestückten Zeitstrahl erfolgt.One or more computer storage media claim 1 or 2 , wherein the interactive tile includes a faceted timeline with facets representing a set of the instances in a category of the detected features in the video segment and corresponding feature areas where the instances in the category are located on the faceted timeline, wherein the clicking or tapping on the visualization occurs on one of the facets on the faceted timeline. Ein oder mehrere Computerspeichermedien nach Anspruch 2 oder 3, wobei die Kategorie der detektierten Merkmale detektierte Gesichter, detektierte Kategorien von Ton, detektierte visuelle Szenen oder detektierte visuelle Artefakte umfasst.One or more computer storage media claim 2 or 3 , wherein the category of detected features includes detected faces, detected categories of sound, detected visual scenes, or detected visual artifacts. Ein oder mehrere Computerspeichermedien nach einem der Ansprüche 1 bis 4, wobei die interaktive Kachel wischbar ist, um verschiedene Vorschaubilder von Einzelbildern des Videosegmentes anzuzeigen.One or more computer storage media according to any of Claims 1 until 4 , where the interactive tile is swipeable to show different thumbnails of frames of the video segment. Ein oder mehrere Computerspeichermedien nach einem der Ansprüche 1 bis 5, wobei die Vorgänge des Weiteren umfassen: Auslösen einer Neusegmentierung der Segmentierung des Videos zu einer Suchsegmentierung auf Grundlage einer Anfrage; und Aufbrechen der interaktiven Kacheln, um kleinere Einheiten der von der Suchsegmentierung identifizierten Videosegmente darzustellen.One or more computer storage media according to any of Claims 1 until 5 , the operations further comprising: triggering a re-segmentation of the segmentation of the video to a search segmentation based on a request; and breaking up the interactive tiles to represent smaller units of the video segments identified by the search segmentation. Ein oder mehrere Computerspeichermedien nach einem der Ansprüche 1 bis 6, wobei die Präsentation die interaktiven Kacheln in einem Gitter aus Reihen und Spalten anordnet.One or more computer storage media according to any of Claims 1 until 6 , where the presentation arranges the interactive tiles in a grid of rows and columns. Computerisiertes bzw. Computer-implementiertes Verfahren, umfassend: Veranlassen einer Präsentation von interaktiven Kacheln, die (i) Videosegmente einer Segmentierung eines Videos und (ii) Instanzen von detektierten Merkmalen der Videosegmente darstellen; Detektieren einer Interaktion mit einer der interaktiven Kacheln, die eines der Videosegmente darstellt; und in Reaktion auf das Detektieren der Interaktion erfolgendes Hinzufügen wenigstens eines Abschnittes des Videosegmentes zu einer Auswahl von Videosegmenten.Computerized or computer-implemented method, comprising: causing a presentation of interactive tiles representing (i) video segments of a segmentation of video and (ii) instances of detected features of the video segments; detecting an interaction with one of the interactive tiles representing one of the video segments; and responsive to detecting the interaction, adding at least a portion of the video segment to a selection of video segments. Computerisiertes Verfahren nach Anspruch 8, wobei das Detektieren der Interaktion mit der interaktiven Kachel umfasst: Detektieren eines Ziehvorganges, der die interaktive Kachel in ein Feld, das die Auswahl von Videosegmenten darstellt, zieht, oder Detektieren einer Aktivierung eines Interaktionselementes in der interaktiven Kachel.Computerized procedure claim 8 , wherein detecting the interaction with the interactive tile comprises: detecting a drag operation that drags the interactive tile into a field representing the selection of video segments, or detecting an activation of an interaction element in the interactive tile. Computerisiertes Verfahren nach Anspruch 8 oder 9, wobei das Detektieren der Interaktion mit der interaktiven Kachel umfasst: in der interaktiven Kachel erfolgendes Detektieren eines Klickens oder eines Tippens auf eine Visualisierung einer der Instanzen eines der detektierten Merkmale, das aus einem der von der interaktiven Kachel dargestellten Videosegmente detektiert wird; Aktivieren eines Kontextmenüs in Reaktion auf das Klicken oder das Tippen; und Detektieren einer Eingabe, die eine Option aus dem Kontextmenü auswählt, um zu der Auswahl den Abschnitt des Videosegmentes entsprechend der Instanz des detektierten Merkmals hinzuzufügen.Computerized procedure claim 8 or 9 wherein detecting the interaction with the interactive tile comprises: detecting, in the interactive tile, a click or a tap on a visualization of one of the instances of one of the detected features detected from one of the video segments presented by the interactive tile; activating a context menu in response to the click or tap; and detecting an input that selects an option from the context menu to add to the selection the portion of the video segment corresponding to the instance of the detected feature. Computerisiertes Verfahren nach einem der Ansprüche 8 bis 10, wobei die interaktive Kachel beinhaltet: ein Thumbnail bzw. Vorschaubild, das ein Einzelbild des Videosegmentes darstellt, einen Abschnitt eines Transkripts des Videosegmentes, eine Visualisierung von detektierten Gesichtern in dem Videosegment und einen facettenbestückten Zeitstrahl, der eine Kategorie der detektierten Merkmale in dem Videosegment darstellt.Computerized method according to one of Claims 8 until 10 , wherein the interactive tile includes: a thumbnail representing a frame of the video segment, a portion of a transcript of the video segment, a visualization of detected faces in the video segment, and a faceted timeline representing a category of the detected features in the video segment . Computerisiertes Verfahren nach einem der Ansprüche 8 bis 11, wobei die interaktive Kachel einen facettenbestückten Zeitstrahl mit Facetten beinhaltet, die einen Satz der Instanzen in einer Kategorie der detektierten Merkmale in dem Videosegment und entsprechende Merkmalsbereiche, in denen die Instanzen in der Kategorie auf dem facettenbestückten Zeitstrahl befindlich sind, darstellen.Computerized method according to one of Claims 8 until 11 wherein the interactive tile includes a faceted timeline having facets representing a set of the instances in a category of the detected features in the video segment and corresponding feature regions where the instances in the category are located on the faceted timeline. Computerisiertes Verfahren nach einem der Ansprüche 8 bis 12, wobei die interaktive Kachel wischbar ist, um verschiedene Vorschaubilder von Einzelbildern des Videosegmentes anzuzeigen.Computerized method according to one of Claims 8 until 12 , where the interactive tile is swipeable to show different thumbnails of frames of the video segment. Computerisiertes Verfahren nach einem der Ansprüche 8 bis 13, wobei die Präsentation die interaktiven Kacheln in einem Gitter aus Reihen und Spalten anordnet.Computerized method according to one of Claims 8 until 13 , where the presentation arranges the interactive tiles in a grid of rows and columns. Computersystem, umfassend: einen oder mehrere Hardwareprozessoren und einen Speicher, der dafür konfiguriert ist, Computerprogrammanweisungen für den einen oder die mehreren Hardwareprozessoren bereitzustellen; eine Videointeraktionsengine, die dafür konfiguriert ist, den einen oder die mehreren Hardwareprozessoren zur Durchführung von Vorgängen zu nutzen, die umfassen: Veranlassen einer Präsentation eines Gitters von interaktiven Kacheln, die Videosegmente einer Segmentierung eines Videos darstellen; Detektieren einer Interaktion mit einer der interaktiven Kacheln, die eines der Videosegmente darstellt; und in Reaktion auf das Detektieren der Interaktion erfolgendes Ausführen eines das Videosegment betreffenden Vorganges.Computer system comprising: one or more hardware processors and a memory configured to provide computer program instructions for the one or more hardware processors; a video interaction engine configured to use the one or more hardware processors to perform operations that include: causing a presentation of a grid of interactive tiles representing video segments of a segmentation of video; detecting an interaction with one of the interactive tiles representing one of the video segments; and in response to detecting the interaction, performing an operation related to the video segment. Computersystem nach Anspruch 15, wobei die interaktive Kachel einen facettenbestückten Zeitstrahl mit Facetten beinhaltet, die Instanzen in einer Kategorie von detektierten Merkmalen in dem Videosegment und entsprechende Merkmalsbereiche, in denen die Instanzen in der Kategorie auf dem facettenbestückten Zeitstrahl befindlich sind, darstellen.computer system after claim 15 wherein the interactive tile includes a faceted timeline having facets representing instances in a category of detected features in the video segment and corresponding feature regions where the instances in the category are located on the faceted timeline. Computersystem nach Anspruch 16, wobei die Kategorie der detektierten Merkmale detektierte Gesichter, detektierte Kategorien von Ton, detektierte visuelle Szenen oder detektierte visuelle Artefakte umfasst.computer system after Claim 16 , wherein the category of detected features includes detected faces, detected categories of sound, detected visual scenes, or detected visual artifacts. Computersystem nach einem der Ansprüche 15 bis 17, wobei die interaktive Kachel wischbar ist, um verschiedene Vorschaubilder von Einzelbildern des Videosegmentes anzuzeigen.Computer system according to one of Claims 15 until 17 , where the interactive tile is swipeable to show different thumbnails of frames of the video segment. Computersystem nach einem der Ansprüche 15 bis 18, wobei das Detektieren der Interaktion mit der interaktiven Kachel umfasst: Detektieren eines Klickens oder eines Tippens auf eine Visualisierung einer Instanz eines detektierten Merkmals, das aus dem Videosegment detektiert wird, wobei der das Videosegment betreffende Vorgang umfasst: Navigieren zu einem Abschnitt des Videosegmentes, in dem die Instanz des detektierten Merkmals vorhanden ist.Computer system according to one of Claims 15 until 18 , wherein detecting the interaction with the interactive tile comprises: detecting a click or a tap on a visualization of an instance of a detected feature that is detected from the video segment, wherein the operation concerning the video segment comprises: navigating to a portion of the video segment, in which the instance of the detected feature is present. Computersystem nach einem der Ansprüche 15 bis 19, wobei das Detektieren der Interaktion mit der interaktiven Kachel umfasst: Detektieren eines Ziehvorganges, der die interaktive Kachel in ein Feld, das eine Auswahl von Videosegmenten darstellt, zieht, oder Detektieren einer Aktivierung eines Interaktionselementes in der interaktiven Kachel, wobei der das Videosegment betreffende Vorgang umfasst: Hinzufügen wenigstens eines Abschnittes des Videosegmentes zu der Auswahl von Videosegmenten.Computer system according to one of Claims 15 until 19 , wherein detecting the interaction with the interactive tile comprises: detecting a drag operation that pulls the interactive tile into a field representing a selection of video segments, or detecting an activation of an interaction element in the interactive tile, the operation relating to the video segment includes: adding at least a portion of the video segment to the selection of video segments.
DE102022105123.4A 2021-05-26 2022-03-04 Interact with semantic video segments through interactive tiles Pending DE102022105123A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/330,689 US11887629B2 (en) 2020-09-10 2021-05-26 Interacting with semantic video segments through interactive tiles
US17/330,689 2021-05-26

Publications (1)

Publication Number Publication Date
DE102022105123A1 true DE102022105123A1 (en) 2022-12-01

Family

ID=83997089

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022105123.4A Pending DE102022105123A1 (en) 2021-05-26 2022-03-04 Interact with semantic video segments through interactive tiles

Country Status (4)

Country Link
CN (1) CN115407912A (en)
AU (1) AU2022202672B2 (en)
DE (1) DE102022105123A1 (en)
GB (1) GB2609706B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12411827B2 (en) * 2023-12-29 2025-09-09 Dish Network Technologies India Private Limited Proactively suggesting a digital medium and automatically generating a ribbon indicating the digital medium of interest to a user

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6400378B1 (en) * 1997-09-26 2002-06-04 Sony Corporation Home movie maker
US8116537B2 (en) * 2007-04-04 2012-02-14 Sony Corporation Image recording device, player device, imaging device, player system, method of recording image, and computer program
JP4834640B2 (en) * 2007-09-28 2011-12-14 株式会社東芝 Electronic device and image display control method
US8364660B2 (en) * 2008-07-11 2013-01-29 Videosurf, Inc. Apparatus and software system for and method of performing a visual-relevance-rank subsequent search
JP4620150B2 (en) * 2008-10-23 2011-01-26 株式会社東芝 Electronic device and video processing method
US8745499B2 (en) * 2011-01-28 2014-06-03 Apple Inc. Timeline search and index
KR20130102368A (en) * 2012-03-07 2013-09-17 삼성전자주식회사 Video editing apparatus and method for guiding video feature information
GB2539897A (en) * 2015-06-29 2017-01-04 Sony Corp Apparatus, method and computer program
US9799373B2 (en) * 2015-11-05 2017-10-24 Yahoo Holdings, Inc. Computerized system and method for automatically extracting GIFs from videos
US11544322B2 (en) * 2019-04-19 2023-01-03 Adobe Inc. Facilitating contextual video searching using user interactions with interactive computing environments
CN111601160A (en) * 2020-05-29 2020-08-28 北京百度网讯科技有限公司 Method and device for editing video

Also Published As

Publication number Publication date
AU2022202672A1 (en) 2022-12-15
GB2609706B (en) 2024-11-27
GB2609706A (en) 2023-02-15
AU2022202672B2 (en) 2023-10-05
CN115407912A (en) 2022-11-29

Similar Documents

Publication Publication Date Title
US11887371B2 (en) Thumbnail video segmentation identifying thumbnail locations for a video
US11455731B2 (en) Video segmentation based on detected video features using a graphical model
US11810358B2 (en) Video search segmentation
US20220076707A1 (en) Snap point video segmentation identifying selection snap points for a video
US12014548B2 (en) Hierarchical segmentation based on voice-activity
US20220076706A1 (en) Interacting with semantic video segments through interactive tiles
US20230043769A1 (en) Zoom and scroll bar for a video timeline
US11631434B2 (en) Selecting and performing operations on hierarchical clusters of video segments
US11468614B2 (en) Presenting multiple image segmentations
US10979761B2 (en) Intelligent video interaction method
US20220076024A1 (en) Interacting with hierarchical clusters of video segments using a metadata panel
DE102023120756A1 (en) VIDEO SEGMENT SELECTION AND EDITING VIA TRANSCRIPT INTERACTIONS
DE102018007937A1 (en) Remove and replace objects in images according to a guided user dialog
CN110832583A (en) System and method for generating a summary storyboard from a plurality of image frames
KR20100007702A (en) Method and apparatus for producing animation
DE102021000476A1 (en) Integrated interactive image segmentation
DE102023120748A1 (en) FACE-AWARE SPEAKER DIARIZATION FOR TRANSCRIPTS AND TEXT-BASED VIDEO EDITING
US10235466B2 (en) Profile driven presentation content displaying and filtering
US20150279425A1 (en) System and method for space-time annotation-capable media scrubbing
CN116866498B (en) Video template generation method and device, electronic equipment and storage medium
DE102022105123A1 (en) Interact with semantic video segments through interactive tiles
DE102023131117A1 (en) Modifying digital images by moving objects with depth effect
DE112016005803T5 (en) Favor Scrubber for digital content
CN120107414B (en) A Flexible and Consistent Appearance Transfer Method Based on a Training-Free Diffusion Model
US20250139161A1 (en) Captioning using generative artificial intelligence

Legal Events

Date Code Title Description
R012 Request for examination validly filed