The present invention relates to a server application, a web application, and a client/server infrastructure; and more specifically to methods, devices, and systems for segmenting and annotating videos for analysis.
Under existing methods of game-tape analysis for sports teams, games are recorded, and the coaches and players of a team later break down and analyze the game tape to identify both good and bad performance to adjust during training or practice. The current methods of analyzing game tape are slow because of the length of each game, and they often require that game tape analysis be performed at a central location, such as at the practice facility with the whole team gathered. They further make it difficult to segment the game tape in a way that is relevant only to particular aspects of the game.
Accordingly, a need exists for a system that allows game tape to be segmented and annotated into short videos of sporting events for player performance breakdown and analysis.
The presently disclosed subject matter is directed toward methods, devices, and systems for segmenting and annotating videos for analysis. Such a system for segmenting and annotating videos for analysis is referred to herein as a “weave video system.”
The weave video system described herein allows for any interested party that is a user of the weave video system to segment and annotate game tape in any way they see fit to create short, focused clips of the game that allow for analysis around a particular objective or storyline. This process requires no knowledge of video editing or the ability to use complicated video software by the user. The focused clips may be selected and used to tell a particular story or to reinforce a particular theme. Additionally, and importantly, the weave video system allows any users of the system to annotate the video clips with drawings highlighting a particular teaching point meant to be highlighted, as well as to create threaded conversations around the video clips to add a social component.
The weave video system allows, for example, a coach to select teachable moments, referred to as tile videos, from a game tape and create one or more video compilations made up of multiple tile videos, referred to as a weave video. The coach may assign various of the weave videos to various relevant players or groups of players so that each player or group of players receives on their mobile device (through a mobile app) a weave video comprised of only the tile videos relevant to those players or groups of players. The tile videos and weave videos can be annotated by the coach (i.e., the generating user) or the players (i.e., the viewing users). In this way, a discussion around each particular tile video or weave video may be generated by all the players, allowing for team discussion around selected moments of the game. The weave video system allows for one-to-one feedback or group feedback.
The following description and figures are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. In certain instances, however, well-known or conventional details are not described in order to avoid obscuring the description. References to “one embodiment” or “an embodiment” in the present disclosure may be (but are not necessarily) references to the same embodiment, and such references mean at least one of the embodiments.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. Multiple appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not for other embodiments.
The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Certain terms that are used to describe the disclosure are discussed below, or elsewhere in the specification, to provide additional guidance to the practitioner regarding the description of the disclosure. For convenience, certain terms may be highlighted, for example using italics and/or quotation marks. The use of highlighting has no influence on the scope and meaning of a term; the scope and meaning of a term is the same, in the same context, whether or not it is highlighted. It will be appreciated that same thing can be said in more than one way.
Consequently, alternative language and synonyms may be used for any one or more of the terms discussed herein, nor is any special significance to be placed upon whether or not a term is elaborated or discussed herein. Synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification, including examples of any terms discussed herein, is illustrative only, and is not intended to further limit the scope and meaning of the disclosure or of any exemplified term. Likewise, the disclosure is not limited to various embodiments given in this specification.
Without intent to limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the embodiments of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions, will control.
Disclosed herein are methods, devices, and systems for segmenting and annotating videos for analysis. The embodiments described focus on segmenting and annotating videos of sporting events for player performance analysis and coaching. However, as will be understood by a person skilled in the art, the concepts and principles described herein may be applied in other contexts where video analysis is used for analysis and teaching, for example, training first responders, reviewing speeches, summarizing lengthy events, or the like. As such, the disclosure provided herein is not intended to be limited solely to the sports coaching examples presented.
The methods, devices, and systems for segmenting and annotating videos for analysis described herein provide a practical application in that they allow for real-time, on-the-go analysis of long videos (e.g., multiple-hour videos of sporting events) by creating short, focused clips of the most important moments from the long videos with a simple single click at the moment of interest in the video during video playback. This removes the traditional complexity of video editing and analysis that has previously hindered the video analysis process.
In one embodiment, the weave video system is a client/server architecture wherein a plurality of users may communicate over one or more networks (e.g., wired, wireless, or a combination thereof) using their client device with one of more physical servers. The client device may be a fixed client device such as a workstation and/or personal computer. In other embodiments, the client device may be a mobile client device such as a tablet or a laptop. The server may be implemented as one or more servers including physical servers, virtual servers, servers housed in containers, or the like.
The weave video system allows any user to select a particular moment in a video for later review, analysis and annotation, sharing, and comment. For example, in a video of a basketball game, a user may select a particular moment where a defensive player stole the ball from the opposing team so that the game video can be analyzed for the breakdown in offense that led to the ball being stolen. Based on that particular moment, the weave video system creates a tile video based on that moment that includes pre-context for the moment and post-context for the moment to assist in the video review and analysis.
A user can create multiple tile videos 100 to highlight various moments throughout a particular video. As explained in more detail below, the multiple tile videos 100 can be woven together in any order selected by the user to create a story with a particular theme or focus. For example, if a user wants to analyze all defensive breakdowns during the second half of a college basketball game, the user selects a moment for each particular breakdown during that half, and the system generates a tile video for each of those moments. The user then selects a particular order to compile the tile videos into a weave video based on any number of factors. For example, the order may be a chronological order, or it may be selected based on players such that each player is grouped. In this way, a particular game tape, which may be over two hours long, can be condensed down to only the particular moments that are relevant to a particular teaching objective (e.g., offense, defense, great plays, turnovers, etc.), which may only total three or four minutes of total viewing time.
As shown in
The back-end server receives input from a generating user to create one or more tile videos. Multiple inputs may be received to generate multiple tile videos.
At step 406A, the back-end server receives input from a generating user. The input from the generating user includes a first timestamp indicating a first moment in the video file. The input from the generating user may be provided via a graphical user-interface (GUI) of an application running on the client's device. The first moment of the video file is represented by a stillframe of the video file. At step 408A, the back-end server stores the first timestamp. The first timestamp is stored in association with the video file. The first timestamp may be stored in the database or in local memory. At step 410A, the back-end server generates a first tile video in response to the received input from the generating user. The first tile video comprises a pre-context of a pre-determined number of seconds of the video file immediately prior to the first moment indicated by the first timestamp. The first tile video further comprises a post-context of a pre-determined number of seconds of the video file immediately subsequent to the first moment indicated by the first timestamp. The first tile video further comprises the first moment indicated by the first timestamp.
At step 412A, the back-end server compresses the first tile video and stores any associated actions with the first tile video. The actions associated with the first tile video may include annotations, comments, and/or tags from the generating user. When the generating user creates the tile video, the user may perform actions on the tile video, such as adding annotations, comments, and/or tags to be displayed with the tile video. Any such actions are stored with the first tile video so that they will be viewable by the viewing user when they are replayed.
At step 414, the back-end server generates a weave video from the tile videos generated in steps 406A-412A, as well as other tile videos generated in steps 406B-412B. The weave video is an ordered video made up of the tile videos. The order of the tile videos may be set or determined by the user generating the weave video. The weave video is generated by merging the first tile video and the second tile video into an ordered weave video. As explained, there may be any number of tile videos that are merged into the ordered weave video. The order of the tile videos is specified by the generating user. The merging of the tile videos into the weave video may be accomplished by generating a new copy of a video comprising the tile videos, or it may be accomplished using pointers and/or markers so that the weave video may be compiled on the fly on an as-needed basis as a user accesses it from the client device.
At 416, the back-end server transmits the weave video to one or more of a plurality of viewing users. As explained in the context of
At step 418, the back-end server receives one or more annotations from a viewing user. The annotations may be provided via a GUI of an application running on the user's client device. The annotations are associated with one or more tile videos of the ordered weave video. The annotations may include a drawing overlaid on the tile video (e.g., shapes, arrows, circles, hand-drawn text, etc.), a comment associated with the tile video, or a tag associated with the tile video (e.g., a tag that can be used for searching or grouping the videos into categories).
At step 420, the back-end server stores the annotations in association with the weave videos. The annotations may be stored at the weave video level or at the tile video level, depending on the specific implementation. The annotations are associated with the tile videos and/or weave videos such that they will be displayed in association with the tile videos when the weave video is played by a viewing user. Thus, each tile vide within a weave video may include one or more associated annotations that are displayed when a viewing user views the weave video. The annotations can be added by the generating user or any viewing user (e.g., via the GUI), and annotations from multiple users for a particular tile video are displayed together in a compiled manner during playback of that particular tile video. For example, the annotations may be drawings or tags added directly to the stillframe indicated by the moment of the tile video or the pre-context or post-context surrounding the moment. In this way, a viewing user can draw on the video to highlight a particular movement or player position, or the like, for other viewing users to see when they view the tile video. Additionally, the annotations may be comments displayed in a threaded fashion below the playback of the tile video, such that a conversation among team members about the particular moment may be generated and displayed. Thus, in some embodiments, each tile video may be associated with a threaded conversation related to that tile video, and each threaded conversation is stored in the database. The annotations may be tags, which allow users of the system to search weave videos and/or tile videos by associated tags.
At step 436, the back-end server receives one or more tile videos from a generating user. The one or more tile videos are created on the user's computing device and sent to the back-end server. The one or more tile videos may already be compressed when they are received (i.e., compressed by the user's computing device), or they may be uncompressed when they are received, and the back-end server may compress them before storing them. The one or more tile videos received from the user may already include a first timestamp indicating a first moment in the video file. The first moment of the video file is represented by a stillframe of the video file. Each of the one or more tile videos comprises a pre-context of a pre-determined number of seconds of the video file immediately prior to the first moment indicated by the first timestamp. The tile videos further comprise a post-context of a pre-determined number of seconds of the video file immediately subsequent to the moment indicated by the timestamp. The tile video further comprises the moment indicated by the timestamp. Each of the tile videos may include actions with the tile video. The actions associated with the tile video may include annotations, comments, and/or tags from the generating user. When the generating user creates the tile video, the user may perform actions on the tile video, such as adding annotations, comments, and/or tags to be displayed with the tile video. Any number of tile videos may be received.
At step 438, the back-end server stores the tile videos. In some embodiments, the timestamp for each tile video is stored in association with the respective tile video. Each timestamp may be stored in the database or in local memory. In some embodiments, the actions associated with each tile video are stored in association with the respective tile video. The actions may be stored in the database or in local memory.
At step 440, the back-end server generates a weave video from the received tile videos. The weave video is an ordered video made up of the tile videos. The order of the tile videos may be set or determined by the user generating the weave video. The weave video is generated by merging the first tile video and the second tile video into an ordered weave video. As explained, there may be any number of tile videos that are merged into the ordered weave video. The order of the tile videos is specified by the generating user. The merging of the tile videos into the weave video may be accomplished by generating a new copy of a video comprising the tile videos, or it may be accomplished using pointers and/or markers so that the weave video may be compiled on the fly on an as-needed basis as a user accesses it from the client device.
At 442, the back-end server transmits the weave video to one or more of a plurality of viewing users. As explained in the context of
At step 444, the back-end server receives one or more annotations from a viewing user. The annotations may be provided via a GUI of an application running on the user's client device. The annotations are associated with one or more tile videos of the ordered weave video. The annotations may include a drawing overlaid on the tile video (e.g., shapes, arrows, circles, hand-drawn text, etc.), a comment associated with the tile video, or a tag associated with the tile video (e.g., a tag that can be used for searching or grouping the videos into categories).
At step 446, the back-end server stores the annotations in association with the weave videos. The annotations may be stored at the weave video level or at the tile video level, depending on the specific implementation. The annotations are associated with the tile videos and/or weave videos such that they will be displayed in association with the tile videos when the weave video is played by a viewing user. Thus, each tile vide within a weave video may include one or more associated annotations that are displayed when a viewing user views the weave video. The annotations can be added by the generating user or any viewing user (e.g., via the GUI), and annotations from multiple users for a particular tile video are displayed together in a compiled manner during playback of that particular tile video. For example, the annotations may be drawings or tags added directly to the stillframe indicated by the moment of the tile video or the pre-context or post-context surrounding the moment. In this way, a viewing user can draw on the video to highlight a particular movement or player position, or the like, for other viewing users to see when they view the tile video. Additionally, the annotations may be comments displayed in a threaded fashion below the playback of the tile video, such that a conversation among team members about the particular moment may be generated and displayed. Thus, in some embodiments, each tile video may be associated with a threaded conversation related to that tile video, and each threaded conversation is stored in the database. The annotations may be tags, which allow users of the system to search weave videos and/or tile videos by associated tags.
In addition to the annotations and targeted sharing provided by the weave video system, the weave video system further allows for users to challenge one another. For example, a coach may issue a challenge to each player to identify a particular moment where the responding player thinks they did a good job, a bad job, or the like. The challenges may be completed by the players on their mobile apps and the resulting tile videos can be sent to the coach (or challenging player) in real-time. Such a system creates accountability, which allows for better performance analysis.
Referring to
At step 454, the client device generates one or more tile videos. The tile videos are generated based on user input from the user of the client device. As explained above, a user of the client device selects one or more moments from the video, and a tile video is generated for each of the moments selected by the user. The tile video includes a pre-context and a post-context for the moment represented by the tile video.
At step 456, the client device adds annotations to the generated tile videos. The annotations are input into the client device by the user of the client device, and those annotations are associated with and/or added to the tile videos by the client device. As explained above, the annotations may include drawings, comments, and/or tags associated with the tile videos. The client device stores any editing operations the user has performed on the tile videos, such as annotations, comments, and/or tags.
At step 458, the client device generates one or more weave videos from the tile videos. The weave videos are generated from the various tile videos created by the user. In some embodiments, the order of the tile videos within the weave video is specified by the user during creation.
At step 460, the client device selects users to receive the generated weave video. The user of the client device may designate other users with whom the generated weave video will be shared. The weave video may be shared either publicly or privately, as chosen by the user.
At step 462, the client device uploads the generated weave video to the back-end server.
At step 464, the client device transmits associated information for the generated weave video to the back-end server. Such associated information may include the annotations, comments, and/or tags, as well as the identity of the generating user, the time the weave video was generated, how long the weave video may remain accessible, and the like.
The back-end server configured to implement the methods of
The client device may configured to implement the methods of
In general, the client device as used with the weave video system may be any computing device providing a user input, display, and connectivity to one or more servers over a personal area network (PAN), a local area network (LAN) and/or a wide area network (WAN). The PAN may include Bluetooth® or Universal Serial Bus (USB). The LAN may include any combination of wired Ethernet and/or Wi-Fi access points. The WAN may include the Internet and/or another wide area private network. The WAN may also include any combination of 2G, 3G, 4G, and 5G networks. In some embodiments the WAN may include Data Over Cable Service Interface Specification (DOCSIS) networks and/or fiber networks such as passive optical networks (PONs). Access to the one or more servers may also be provided via a virtual private network (VPN) within any of the previously described networks.
The back-end server 604 running the weave video server application 602 may perform any of the methods described in the summary, detailed description, figures, and/or claims. The weave video server application 602 may also interface to one or more third-party servers via an application programming interface (API). The third-party servers may include, for example, third-party video storage servers, such as YouTube®, or third-party game-tape analysis programs.
The weave video server application 602 transforms the back-end server 604 from a generic computer function into a machine for solving the problem of quickly segmenting a game tape for analysis by multiple players and/or coaching staff.
The processor 702 may be a multi-core server class processor suitable for hardware virtualization. The processor may support at least a 64-bit architecture and a single instruction multiple data (SIMD) instruction set. The main memory 704 may include a combination of volatile memory (e.g. random-access memory) and non-volatile memory (e.g. flash memory). The database 706 may include one or more hard drives.
The datacenter network interface 708 may provide one or more high-speed communication ports to the data center switches, routers, and/or network storage appliances. The datacenter network interface 708 may include high-speed optical Ethernet, InfiniBand (IB), Internet Small Computer System Interface (iSCSI), and/or Fibre Channel interfaces. The administration UI may support local and/or remote configuration of the back-end server 604 by a datacenter administrator.
In some embodiments, the processor 902 may be a mobile processor such as the Qualcomm® Snapdragon™ mobile processor. The memory 904 may include a combination of volatile memory (e.g. random-access memory) and non-volatile memory (e.g. flash memory). The memory 904 may be partially integrated with the processor 902. The GUI 906 may be a touchpad display. The WAN radios 910 may include 2G, 3G, 4G, and/or 5G technologies. The LAN radios 912 may include Wi-Fi technologies such as 802.11a, 802.11b/g/n, 802.11ac, 802.11.ax or the like circuitry. The PAN radios 914 may include Bluetooth® technologies.
The SOA 1002 includes SOA back-end components 1004A-C and front-end components 1006A-C for facilitating one or more users in generating, annotating, sharing, and viewing tile videos and/or weave videos. The SOA also includes a local database 1008. In some embodiments, the local database 1008 may be an open source database such as the MongoDB® database, the PostgreSQL® database, or the like. An additional front-end component (not shown in
The SOA back-end component 1004A is configured to communicate with at least one weave video server 1010. The SOA back-end component 1004B is configured to communicate with at least one third-party video server 1012, such as a YouTube® server or other server where game videos are stored. The SOA back-end component 1004C is configured to communicate with network attached storage 1014. In some embodiments the SOA back-end components 1004A-C may also use one or more transfer protocols such as a hypertext transfer protocol (HTTP) session, an HTTP secure (HTTPS) session, a secure sockets layer (SSL) protocol session, a transport layer security (TLS) protocol session, a datagram transport layer security (DTLS) protocol session, a file transfer protocol (FTP) session, a user datagram protocol (UDP), a transport control protocol (TCP), or a remote direct memory access (RDMA) transfer protocol.
The SOA front-end component 1006A is configured communicate with a plurality of weave video applications 1016 installed on a plurality of client devices. The SOA front-end component 1006B is configured to communicate with a plurality of web browsers 1018 installed on a plurality of client devices. The SOA front-end component 1006C is configured to communicate with a plurality of third-party applications 1020 installed on a plurality of client devices. The client devices may be any of the previously described client device.
The SOA 1002 may be implemented on one or more servers. The SOA 1002 may include a non-transitory computer readable medium including a plurality of machine-readable instructions which when executed by one or more processors of the one or more servers are adapted to cause the one or more servers to perform a method of segmenting and annotating videos of sporting events for player performance analysis. The method may include the methods described in
In one embodiment, the SOA 1002 may be implemented on a virtual (i.e. software implemented) server in a cloud computing environment. An Ubuntu® server may provide the virtual server and may be implemented as a separated operating system (OS) running on one or more physical (i.e. hardware implemented) servers. Any applicable virtual server may by be used for the Ubuntu® Server function. The Ubuntu® Server function may be implemented in the Microsoft Azure®, the Amazon Web Services® (AWS), or the like cloud computing data center environments. In other embodiments, the SOA 1002 may be implemented on one or more servers in a networked computing environment located within a business premise or another data center. In some embodiments, the SOA 1002 may be implemented within a virtual container, for example the Docker® virtual container.
In summary, the SOA front-end components are operable to be combined with the SOA back-end components of
As will be appreciated by one skilled in the art, aspects of the technology described herein may be embodied as a system, method or computer program product. Accordingly, aspects of the technology may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the technology may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium (including, but not limited to, non-transitory computer readable storage media). A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the technology described herein may be written in any combination of one or more programming languages, including object oriented and/or procedural programming languages. Programming languages may include, but are not limited to: Ruby®, JavaScript®, Java®, Python®, PHP, C, C++, C #, Objective-C®, Go®, Scala®, Swift®, Kotlin®, OCaml®, or the like. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer, and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the technology described herein refer to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to various embodiments. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions.
These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the technology described herein. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Thus, for example, reference to “a user” can include a plurality of such users, and so forth. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description provided herein has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the specific form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. The embodiment was chosen and described in order to best explain the principles described herein and the practical application of those principles, and to enable others of ordinary skill in the art to understand the technology for various embodiments with various modifications as are suited to the particular use contemplated.
The descriptions of the various embodiments of the technology disclosed herein have been presented for purposes of illustration, but these descriptions are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
This application is a continuation application of U.S. patent application Ser. No. 17/491,990 filed on Oct. 1, 2021, which is a continuation application of PCT Application No. PCT/US21/51909 filed on Sep. 24, 2021 which claims priority to U.S. Provisional Patent Application No. 63/083,248 filed on Sep. 25, 2020, by WEV Labs, LLC, titled “METHODS, DEVICES, AND SYSTEMS FOR VIDEO SEGMENTATION AND ANNOTATION,” the entire contents of all of which are incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
9253533 | Morgan | Feb 2016 | B1 |
20110185269 | Finkelstein | Jul 2011 | A1 |
20120263430 | Spitzer-Williams | Oct 2012 | A1 |
20140325568 | Hoang et al. | Oct 2014 | A1 |
20150312629 | Bugajski et al. | Oct 2015 | A1 |
20160142730 | Gurbuz | May 2016 | A1 |
20180176661 | Varndell | Jun 2018 | A1 |
Entry |
---|
ISA/US; International Search Report and Written Opinion for International Patent Application No. PCT/US21/51889 dated Feb. 7, 2022, 7 pages. |
Shih Huang-Chia. “A Survey on Content-aware Video Analysis for Sports.” IEEE Transactions on Circuits and Systems for Video Technology, vol. 99, No. 9, Jan. 31, 2017, p. 1-20. |
Jondronrgoro, Dian et al. “The Power of Play-Break for Automatic Detection and Browsing of Self-consumable Sport Video Highlights.” Oct. 15, 2004. [retrieved on Nov. 16, 2021]. Retrieved from the Internet: <URL: https://dl.acm.org/doi/pdf/10.1145/1026711.1026755> p. 267-274. |
EPO, Extended European Search Report for corresponding European Patent Application No. 21873493.7 dated Aug. 6, 2024, 9 pages. |
Number | Date | Country | |
---|---|---|---|
20230335163 A1 | Oct 2023 | US |
Number | Date | Country | |
---|---|---|---|
63083248 | Sep 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17491990 | Oct 2021 | US |
Child | 18214485 | US | |
Parent | PCT/US2021/051909 | Sep 2021 | WO |
Child | 17491990 | US |