DE102022105123A1 - Interact with semantic video segments through interactive tiles - Google Patents
Interact with semantic video segments through interactive tiles Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/75—Clustering; Classification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
- G06F16/7844—Retrieval 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
- G06F16/7847—Retrieval 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/49—Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/005—Reproducing at a different information rate from the information rate of recording
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/102—Programmed access in sequence to addressed parts of tracks of operating record carriers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/34—Indicating arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23109—Content 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/26603—Channel 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
- H04N21/4821—End-user interface for program selection using a grid, e.g. sorted out by channel and broadcast time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
- H04N21/4828—End-user interface for program selection for searching program descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8146—Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
- H04N21/8153—Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech 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.
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 und1B sind Blockdiagramme eines exemplarischen Rechensystems zum Bearbeiten oder Abspielen von Videos entsprechend Ausführungsformen der vorliegenden Erfindung. -
2A bis2F sind Darstellungen einer exemplarischen Technik zum Berechnen von Kandidatengrenzen aus detektierten Merkmalsgrenzen entsprechend Ausführungsformen der vorliegenden Erfindung. -
3A bis3C sind Darstellungen einer exemplarischen Technik zum Aufbauen eines Graphen mit Wegen, die verschiedene Kandidatensegmentierungen darstellen, entsprechend Ausführungsformen der vorliegenden Erfindung. -
4A bis4C 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 bis7D 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 und9B 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 und11B sind Darstellungen von exemplarischen interaktiven Kacheln entsprechend Ausführungsformen der vorliegenden Erfindung. -
12A bis12D 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 und15B sind Darstellungen einer exemplarischen Marquee-Auswahl mit Einrastung entsprechend Ausführungsformen der vorliegenden Erfindung. -
16A und16B 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.
-
1A and 12 are block diagrams of an exemplary computing system for editing or playing video, in accordance with embodiments of the present invention.1B -
2A until 12 are illustrations of an exemplary technique for computing candidate boundaries from detected feature boundaries, in accordance with embodiments of the present invention.2F -
3A until3C 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 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.4C -
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 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.7D -
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.8th -
9A and 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.9B -
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 12 are representations of exemplary interactive tiles in accordance with embodiments of the present invention.11B -
12A until12D 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 12 are illustrations of an exemplary marquee selection with snapping in accordance with embodiments of the present invention.15B -
16A and 12 are flow charts illustrating a method for generating video segmentation using a graphical model according to embodiments of the present invention.16B -
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
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
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
Bei dem in
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
Begonnen wird mit einem auf hoher Stufe befindlichen Überblick über einen exemplarischen Workflow durch die Konfiguration, die in
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
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.
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
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
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
Exemplarische VideosegmentierungstechnikenExemplary video segmentation techniques
Wie in
Bei dem in
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
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
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
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
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
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
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.
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
Wie wiederum in
Bei einigen Ausführungsformen berechnet die Schneidekostenberechnungskomponente 186 von
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.
Bei dem in
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),
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.
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
Bei dem in
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
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
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
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
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
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).
Zusammengefasst bedeutet dies, wie in
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
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
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
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
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
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
Eine weitere exemplarische Videosegmentierung ist eine Vorschaubildsegmentierung, die Orte auf einem Videozeitstrahl zur Darstellung mit verschiedenen Vorschaubildern identifiziert. Bei einer in
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
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
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
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
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
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
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
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
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
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
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
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
Bei einigen Ausführungsformen beinhaltet die Sucherschnittstelle 1000 ein oder mehrere Interaktionselemente (die beispielsweise von dem Standardneusegmentierungswerkzeug 116 von
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
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
Bei der in
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
Bei einigen Ausführungsformen hebt die Sucherschnittstelle 1000 interaktive Kacheln, die passende Videosegmente (Anfrage-EIN-Segmente) darstellen, hervor. Die interaktive Kachel 1150 von
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,
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.
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
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
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
Bei einer exemplarischen Implementierung sind die Sucher- und Bearbeiterschnittstellen durch ein oder mehrere Navigationselemente (beispielsweise die Sucher- und Bearbeiterschaltflächen 1095 von 1097 von
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
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
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
Wie in
Bei einigen Ausführungsformen beinhaltet der Videozeitstrahl 1405 ein Zoom-/Scrollleistenwerkzeug (das beispielsweise von dem Zoom-/Scrollleistenwerkzeug 140 von
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
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,
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
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
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
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
Zunächst werden
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
Bei Block 1650 werden Schneidekosten für die Kantengewichtungen in dem Graphen berechnet. Blöcke 1652 bis 1656 von
Wie in
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
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
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.
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.
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/
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)
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)
| 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)
| 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 |
-
2022
- 2022-03-04 DE DE102022105123.4A patent/DE102022105123A1/en active Pending
- 2022-04-22 AU AU2022202672A patent/AU2022202672B2/en active Active
- 2022-05-09 GB GB2206709.4A patent/GB2609706B/en active Active
- 2022-05-11 CN CN202210515554.XA patent/CN115407912A/en active Pending
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 |