Abstract:
Electronic images of a video stream are programmatically analyzed and metadata associated with the images automatically populated with contextually relevant tags and markers for later referencing the images for curated entertainment. Specifically, a user can specify parameters for a video montage that leverages the metadata for automatic video montage creation based on the metadata.

Description:
I. FIELD OF THE INVENTION 
       [0001]    The present application relates generally to computer ecosystems and more particularly to automatically curated content. 
       II. BACKGROUND OF THE INVENTION 
       [0002]    A computer ecosystem, or digital ecosystem, is an adaptive and distributed socio-technical system that is characterized by its sustainability, self-organization, and scalability. Inspired by environmental ecosystems, which consist of biotic and abiotic components that interact through nutrient cycles and energy flows, complete computer ecosystems consist of hardware, software, and services that in some cases may be provided by one company, such as Sony. The goal of each computer ecosystem is to provide consumers with everything that may be desired, at least in part services and/or software that may be exchanged via the Internet. Moreover, interconnectedness and sharing among elements of an ecosystem, such as applications within a computing cloud, provides consumers with increased capability to organize and access data and presents itself as the future characteristic of efficient integrative ecosystems. 
         [0003]    Two general types of computer ecosystems exist: vertical and horizontal computer ecosystems. In the vertical approach, virtually all aspects of the ecosystem are owned and controlled by one company, and are specifically designed to seamlessly interact with one another. Horizontal ecosystems, one the other hand, integrate aspects such as hardware and software that are created by other entities into one unified ecosystem. The horizontal approach allows for greater variety of input from consumers and manufactures, increasing the capacity for novel innovations and adaptations to changing demands. 
         [0004]    Present principles are directed to specific aspects of computer ecosystems, specifically, searching electronic videos for various purposes. Currently, many users have a large amount of video content that has been captured but is no longer being viewed. This is due to the onerous nature of video editing. It is both time consuming and not easy. There are no solutions available to permit videos to be edited, produced and put to music without significant user intervention. 
       SUMMARY OF THE INVENTION 
       [0005]    Present principles facilitate automatic creation of video content that has been edited to include just the highlights for a given theme. The theme can be created by the user to identify a grouping of content that together makes up the theme. For example, if a video of a child growing up is requested for a birthday party, this can include all videos of that particular person growing up over time. Besides the theme, a time frame can be provided that can establish a length for the video output. 
         [0006]    A cloud based algorithm may automatically view each frame of a video and automatically generate searchable tags that can be used for video creation. These tags can include facial recognition, geo-tagging, time tagging, object recognition, etc. The tagging can include searches of social networks, calendar information, emails, etc. to provide an even higher level of context. In addition, the video stream and audio stream can be further analyzed for indications of excitement, emotion, etc. lending itself to highlight generation. The user can start the process by uploading his videos to the cloud service. By using the combination of tags, highlights, and a theme and video length, the system can generate a video montage including background music, which excites the user and makes their stored videos come alive. This final output can be made available for download and distribution. 
         [0007]    Accordingly, a device includes at least one computer readable storage medium bearing instructions executable by a processor, and at least one processor configured for accessing the computer readable storage medium to execute the instructions to configure the processor for recognizing at least one feature in respective electronic images of plural digital video streams. For each image, the processor automatically associates the image with an original metadata indicating the at least one feature. Also, for at least some segments of the plural video streams, the processor associates the segments with respective indicia of scene excitement derived at least in part on motion vector analysis of the segments, and/or on object recognition on images in the segments. A user specification for a video montage including at least a montage subject is received, and based on the user specification, plural segments are selected from plural video streams. This selecting of plural segments is responsive to a determination that each selected segment satisfies an excitement threshold based at least in part on the respective index of scene excitement to render plural selected segments. The plural selected segments from plural video streams are assembled into a montage video stream. 
         [0008]    In some examples, the processor when executing the instructions is further configured for presenting on a display a user interface (UI) permitting a user to specify parameters for a video montage to be created from video files in one or more libraries of video files. The UI can include a first selector by which a user can specify a theme or subject of the montage, a second selector by which a user can enter a desired length of the montage, and a third selector allowing a user to select only video clips for the montage that indicate excitement in the video clips. The UI may also include a music selector allowing a user to enter a music track identification to associate a music track with the montage, and/or a music selector allowing a user to indicate that the processor is to select a music track to associate with the montage. In some examples the UI may include an order selector allowing a user to specify whether the video clips are to be in chronological order in the montage or assembled in the montage in a temporally manner. 
         [0009]    The index of scene excitement can be associated with motion vectors of a segment and/or can be associated with emotion in a segment as indicated by a face recognition algorithm. 
         [0010]    In another aspect, a method includes presenting on a display a user interface (UI) permitting a user to specify parameters for a video montage to be created from video files in one or more libraries of video files. The method includes receiving via the UI the parameters, which include at least a montage subject. Based on the parameters, plural segments are selected from plural video streams and assembled into a montage video stream. 
         [0011]    In another aspect, a system includes at least one computer readable storage medium bearing instructions executable by a processor which is configured for accessing the computer readable storage medium to execute the instructions to configure the processor for presenting on a display a user interface (UI) permitting a user to specify parameters for a video montage to be created from video files in one or more libraries of video files. The UI includes a first selector by which a user can specify a theme or subject of the montage, and a second selector by which a user can enter a desired length of the montage. The UI also includes a third selector allowing a user to select only video clips for the montage that indicate excitement in the video clips. 
         [0012]    The details of the present application, both as to its structure and operation, can be best understood in reference to the accompanying drawings, in which like reference numerals refer to like parts, and in which: 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]      FIG. 1  is a block diagram of an example system including an example in accordance with present principles; 
           [0014]      FIG. 2  is a flowchart of example overall logic; 
           [0015]      FIG. 3  is a schematic representation of example metadata; 
           [0016]      FIG. 4  is an example user interface for specifying parameters of a video montage; and 
           [0017]      FIG. 5  is a flow chart of example logic for automatically creating a video montage based on the user specifications. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0018]    This disclosure relates generally to computer ecosystems including aspects of consumer electronics (CE) device based user information in computer ecosystems. A system herein may include server and client components, connected over a network such that data may be exchanged between the client and server components. The client components may include one or more computing devices including portable televisions (e.g. smart TVs, Internet-enabled TVs), portable computers such as laptops and tablet computers, and other mobile devices including smart phones and additional examples discussed below. These client devices may operate with a variety of operating environments. For example, some of the client computers may employ, as examples, operating systems from Microsoft, or a Unix operating system, or operating systems produced by Apple Computer or Google. These operating environments may be used to execute one or more browsing programs, such as a browser made by Microsoft or Google or Mozilla or other browser program that can access web applications hosted by the Internet servers discussed below. 
         [0019]    Servers may include one or more processors executing instructions that configure the servers to receive and transmit data over a network such as the Internet. Or, a client and server can be connected over a local intranet or a virtual private network. 
         [0020]    Information may be exchanged over a network between the clients and servers. To this end and for security, servers and/or clients can include firewalls, load balancers, temporary storages, and proxies, and other network infrastructure for reliability and security. One or more servers may form an apparatus that implement methods of providing a secure community such as an online social website to network members. 
         [0021]    As used herein, instructions refer to computer-implemented steps for processing information in the system. Instructions can be implemented in software, firmware or hardware and include any type of programmed step undertaken by components of the system. 
         [0022]    A processor may be any conventional general purpose single- or multi-chip processor that can execute logic by means of various lines such as address lines, data lines, and control lines and registers and shift registers. 
         [0023]    Software modules described by way of the flow charts and user interfaces herein can include various sub-routines, procedures, etc. Without limiting the disclosure, logic stated to be executed by a particular module can be redistributed to other software modules and/or combined together in a single module and/ or made available in a shareable library. 
         [0024]    Present principles described herein can be implemented as hardware, software, firmware, or combinations thereof; hence, illustrative components, blocks, modules, circuits, and steps are set forth in terms of their functionality. 
         [0025]    Further to what has been alluded to above, logical blocks, modules, and circuits described below can be implemented or performed with a general purpose processor, a digital signal processor (DSP), a field programmable gate array (FPGA) or other programmable logic device such as an application specific integrated circuit (ASIC), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor can be implemented by a controller or state machine or a combination of computing devices. 
         [0026]    The functions and methods described below, when implemented in software, can be written in an appropriate language such as but not limited to C# or C++, and can be stored on or transmitted through a computer-readable storage medium such as a random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), compact disk read-only memory (CD-ROM) or other optical disk storage such as digital versatile disc (DVD), magnetic disk storage or other magnetic storage devices including removable thumb drives, etc. A connection may establish a computer-readable medium. Such connections can include, as examples, hard-wired cables including fiber optics and coaxial wires and digital subscriber line (DSL) and twisted pair wires. Such connections may include wireless communication connections including infrared and radio. 
         [0027]    Components included in one embodiment can be used in other embodiments in any appropriate combination. For example, any of the various components described herein and/or depicted in the Figures may be combined, interchanged or excluded from other embodiments. 
         [0028]    “A system having at least one of A, B, and C” (likewise “a system having at least one of A, B, or C” and “a system having at least one of A, B, C”) includes systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc. 
         [0029]    Now specifically referring to  FIG. 1 , an example system  10  is shown, which may include one or more of the example devices mentioned above and described further below in accordance with present principles. The first of the example devices included in the system  10  is an example consumer electronics (CE) device  12  that may be waterproof (e.g., for use while swimming). The CE device  12  may be, e.g., a computerized Internet enabled (“smart”) telephone, a tablet computer, a notebook computer, a wearable computerized device such as e.g. computerized Internet-enabled watch, a computerized Internet-enabled bracelet, other computerized Internet-enabled devices, a computerized Internet-enabled music player, computerized Internet-enabled head phones, a computerized Internet-enabled implantable device such as an implantable skin device, etc., and even e.g. a computerized Internet-enabled television (TV). Regardless, it is to be understood that the CE device  12  is configured to undertake present principles (e.g. communicate with other CE devices to undertake present principles, execute the logic described herein, and perform any other functions and/or operations described herein). 
         [0030]    Accordingly, to undertake such principles the CE device  12  can be established by some or all of the components shown in  FIG. 1 . For example, the CE device  12  can include one or more touch-enabled displays  14 , one or more speakers  16  for outputting audio in accordance with present principles, and at least one additional input device  18  such as e.g. an audio receiver/microphone for e.g. entering audible commands to the CE device  12  to control the CE device  12 . The example CE device  12  may also include one or more network interfaces  20  for communication over at least one network  22  such as the Internet, an WAN, an LAN, etc. under control of one or more processors  24 . It is to be understood that the processor  24  controls the CE device  12  to undertake present principles, including the other elements of the CE device  12  described herein such as e.g. controlling the display  14  to present images thereon and receiving input therefrom. Furthermore, note the network interface  20  may be, e.g., a wired or wireless modem or router, or other appropriate interface such as, e.g., a wireless telephony transceiver, WiFi transceiver, etc. 
         [0031]    In addition to the foregoing, the CE device  12  may also include one or more input ports  26  such as, e.g., a USB port to physically connect (e.g. using a wired connection) to another CE device and/or a headphone port to connect headphones to the CE device  12  for presentation of audio from the CE device  12  to a user through the headphones. The CE device  12  may further include one or more tangible computer readable storage medium  28  such as disk-based or solid state storage, it being understood that the computer readable storage medium  28  may not be a carrier wave. Also in some embodiments, the CE device  12  can include a position or location receiver such as but not limited to a GPS receiver and/or altimeter  30  that is configured to e.g. receive geographic position information from at least one satellite and provide the information to the processor  24  and/or determine an altitude at which the CE device  12  is disposed in conjunction with the processor  24 . However, it is to be understood that that another suitable position receiver other than a GPS receiver and/or altimeter may be used in accordance with present principles to e.g. determine the location of the CE device  12  in e.g. all three dimensions. 
         [0032]    Continuing the description of the CE device  12 , in some embodiments the CE device  12  may include one or more cameras  32  that may be, e.g., a thermal imaging camera, a digital camera such as a webcam, and/or a camera integrated into the CE device  12  and controllable by the processor  24  to gather pictures/images and/or video in accordance with present principles. Also included on the CE device  12  may be a Bluetooth transceiver  34  and other Near Field Communication (NFC) element  36  for communication with other devices using Bluetooth and/or NFC technology, respectively. An example NFC element can be a radio frequency identification (RFID) element. 
         [0033]    Further still, the CE device  12  may include one or more motion sensors  37  (e.g., an accelerometer, gyroscope, cyclometer, magnetic sensor, infrared (IR) motion sensors such as passive IR sensors, an optical sensor, a speed and/or cadence sensor, a gesture sensor (e.g. for sensing gesture command), etc.) providing input to the processor  24 . The CE device  12  may include still other sensors such as e.g. one or more climate sensors  38  (e.g. barometers, humidity sensors, wind sensors, light sensors, temperature sensors, etc.) and/or one or more biometric sensors  40  providing input to the processor  24 . In addition to the foregoing, it is noted that in some embodiments the CE device  12  may also include a kinetic energy harvester  42  to e.g. charge a battery (not shown) powering the CE device  12 . 
         [0034]    Still referring to  FIG. 1 , in addition to the CE device  12 , the system  10  may include one or more other CE device types such as, but not limited to, a computerized Internet-enabled bracelet  44 , computerized Internet-enabled headphones and/or ear buds  46 , computerized Internet-enabled clothing  48 , a computerized Internet-enabled exercise machine  50  (e.g. a treadmill, exercise bike, elliptical machine, etc.), etc. Also shown is a computerized Internet-enabled entry kiosk  52  permitting authorized entry to a space. It is to be understood that other CE devices included in the system  10  including those described in this paragraph may respectively include some or all of the various components described above in reference to the CE device  12  such but not limited to e.g. the biometric sensors and motion sensors described above, as well as the position receivers, cameras, input devices, and speakers also described above. 
         [0035]    Now in reference to the afore-mentioned at least one server  54 , it includes at least one processor  56 , at least one tangible computer readable storage medium  58  that may not be a carrier wave such as disk-based or solid state storage, and at least one network interface  60  that, under control of the processor  56 , allows for communication with the other CE devices of  FIG. 1  over the network  22 , and indeed may facilitate communication between servers and client devices in accordance with present principles. Note that the network interface  60  may be, e.g., a wired or wireless modem or router, WiFi transceiver, or other appropriate interface such as, e.g., a wireless telephony transceiver. 
         [0036]    Accordingly, in some embodiments the server  54  may be an Internet server, may include and perform “cloud” functions such that the CE devices of the system  10  may access a “cloud” environment via the server  54  in example embodiments. 
         [0037]    Now referring to  FIG. 2 , which shows logic that may be implemented by any of the processors above alone or in combination, one or more electronic images such as individual digital images of a digital video stream are received at block  70 . The logic of  FIG. 2  may be undertaken for each image in a video stream or only for certain images in the stream, e.g., only for every N th  image, or only for every I-frame in an MPEG stream. The images are generated by video digital cameras and provided to one or more processors for storage on one or more storage media, and may be sent over a wired or wireless network through appropriate transmitters or interfaces to other processors for execution of the logic described below. 
         [0038]    Proceeding to block  72 , in some examples the processor may decide which one of plural software-implemented image recognition algorithms to apply. For example, the processor may have access to a facial recognition algorithm, a spatial recognition algorithm, an object recognition algorithm, a brand recognition algorithm, a geo-specific data recognition algorithm, and an algorithm for recognizing time specific events. The user may establish which algorithm to select, or the processor may undertake the selection automatically as described below. In some cases a single algorithm may provide the capability to recognize two or more of the recognition types above. 
         [0039]    An algorithm for deciding which one of a set of specific recognition algorithms to apply is now described. The processor may determine that an image includes human faces by virtue of detecting pixel patterns with enclosed generally ovular borders. Having determined on this basis that a face exists in the image, a face recognition algorithm may be employed to compare features of the face as reflected in pixel patterns within the face image to a database of known faces to identify, at block  74 , the person being imaged. 
         [0040]    Or, the processor may determine that it should invoke a spatial recognition algorithm by determining that a continuous area of blue pixels or a continuous area of green pixels exceeds a threshold area, indicating a sky or sea or forest scene in the image. The spatial recognition algorithm can then be invoked to match the outlines of objects in the image to a database of tree and plant and water images, for example, and identify at block  74  the type of scene being imaged. 
         [0041]    Or, the processor may determine that it should invoke an object recognition algorithm by virtue of detecting pixel patterns with enclosed borders of rectilinear shape, or of other non-human shapes such as purely circular shapes, elongated shapes indicating trains or other vehicles, etc. Having determined on this basis that an object such as a non-human object exists in the image, an object recognition algorithm may be employed to compare features of the objects as reflected in pixel patterns within the object image to a database of known objects to identify, at block  74 , the object being imaged. 
         [0042]    Yet again, the processor may determine that it should invoke a brand recognition algorithm by virtue of detecting pixel patterns that form letters, for example. Having determined on this basis that a brand name may appear in the image, a brand recognition algorithm may be employed to compare the brand name as reflected in pixel patterns to a database of known brand names to identify, at block  74 , the brand being imaged. 
         [0043]    Still further, the processor may determine that it should invoke a geo-specific (geography) recognition algorithm by virtue of detecting pixel patterns of enclosed boundaries that define objects of unusual size, e.g., objects larger than five meters in any particular dimension, as may be determined from both the pixel pattern and any existing focal length metadata that might accompany the image as appended by the imaging device from imager settings. Having determined on this basis that a geographically unique object such as Mt. Rushmore, the Eiffel Tower, etc. may appear in the image, a geography recognition algorithm may be employed to compare the geographic object as reflected in pixel patterns to a database of known geographic objects to identify, at block  74 , the geographic area being imaged. 
         [0044]    Time specific events may also be recognized using timestamps that may accompany the image from the imaging device, or using any of the algorithms above to recognize combinations of objects and then access a database of object combinations that are correlated to the times at which the objects appears together. As but one example, a face recognition algorithm may recognize the faces of two known celebrities in a single image, and then access a database of news feeds to determine when and at what events the two celebrities appeared together. 
         [0045]    Proceeding to block  76 , one or more metadata fields associated with the image are automatically populated using information from the recognition that occurs at block  74  to describe the image and if desired curate the image into one or more image categories in a searchable database of images.  FIG. 3  illustrates examples of image metadata for three images numbered 1-3. Based on image recognition image # 1  is appended with metadata (as in an electronic file of the image) indicating it contains people. Image # 1  is also indicated by its metadata to being in the January 2011 timeframe, either as derived from exchangeable image file format (Exif) camera data generated along with the image and/or by the example time recognition algorithm described above. The species of person imaged has been recognized as being “Fred” at block  74  and a “species” field of the metadata so indicates. Images  2  and  3  likewise are classified into “places” and “things” categories, respectively, along with image time periods and particular place and thing species, in the example shown, “Paris” and “car”. 
         [0046]    Returning to block  78  in  FIG. 2 , prior searches and previously stored data (including prior emails with attachments, digital calendar information, etc.) may be accessed and at block  80  compared with the metadata that was populated at block  76 . Responsive to this comparison, at block  82  the metadata that had been populated at block  76  may be modified. Note that the prior searches may be accessed from a database of searches from Internet users at large as obtained from one or more public search engines, or the prior searches may be accessed from a database of searches entered only from the user&#39;s client device, or the prior searches may be accessed from a database of searches entered only by the particular user as identified form login information and correlated to searches. Yet again, the prior searches may be accessed from a database of searches entered only into a particular computer ecosystem such as a computer ecosystem provided by a vendor such as Sony Corp. The search database may be limited to only prior searches for images if desired. 
         [0047]    As an example, suppose the prior searches indicate that the user previously searched for “Chevrolet” at least a threshold number of times. From this, it may be inferred, using for instance a database of synonyms such as a Thesaurus, that the user likes to image his vehicle and that the vehicle is a Chevrolet. In the context of the metadata in  FIG. 3  for image # 3 , the species field may accordingly be changed from “car” to “Chevrolet”. More generally, the modification at block  82  of an original term metadata initially populated at block  76  may replace or add to the original term of metadata one or more synonyms of the metadata that appear with at least a threshold frequency in the prior searches and/or data accessed at block  78 . Note further that the threshold frequency may be adaptive, i.e., it may be established by the frequency with which the original term appears in the prior searches or data accessed at block  78 . For example, if a term of the original metadata populated at block  76  appears “N” times in the prior searches or data accessed at block  78 , for a synonym to replace or be added to the original metadata at block  82 , that synonym may have to appear a threshold number of times in the prior searches or data accessed at block  78  by N×A, where A is a scaling factor typically greater than zero, and that can be less than one or may be greater than one. 
         [0048]      FIGS. 4 and 5  illustrate examples of automatically creating a video montage based on the metadata developed in  FIG. 2 .  FIG. 4  is a user interface (UI) that can be presented on, e.g., the display  12  of a CE device to allow a user to enter certain specifications for the video montage he desires to have created. Field  90  allows a user to enter the theme, or subject, of the montage, for example a person&#39;s name, or a vacation spot. Field  92  permits the user to enter the desired length of the montage, typically in minutes, and field  94  allows a user to enter a music track identification or if the user desires the system to select a track or tracks, he may select field  96 . Fields  98  and  100  respectively allow a user to specify whether the video clips are to be in chronological order as indicated by time stamps associated with the clips, or whether the clips are to be put together in a temporally random montage. Field  101  allows a user to select only scenes or clips for the montage that indicate excitement in the video. 
         [0049]    With the above in mind, once the user has entered the specifications, a processor such as a cloud processor hosted on n Internet server or the processor of the CE device or other processor may execute the logic of  FIG. 5  to assemble a montage of video clips. At block  102 , clips from videos in the user&#39;s archives or other storage are analyzed for whether meet an excitement or emotion threshold. In one example, motion vectors in MPEG streams are analyzed, and if the average motion vectors for N successive frames (or other grouping or heuristic test) of a portion, or clip, of a video satisfies a threshold, that clip may be indicated or flagged as being an “exciting” clip. In another example, face recognition may be employed and if N successive frames (or other grouping or heuristic test) display a person (or multiple persons in some examples) expressing a strong emotion, such as a wide smile, a laugh, or weeping is presented, in some embodiments only if satisfying a test against a smile/laughing/weeping threshold, that clip may be indicated or flagged as being an “exciting” clip. 
         [0050]    The user specifications of a montage from, e.g., the example UI shown in  FIG. 4  are received at block  104  in  FIG. 5 , and then assembled, at block  106  into a montage according to the specifications. When “excitement” is specified, only exciting clips (or some typically high “exciting” percentage of total clips) showing the specified subject are assembled, either in chronological order or randomly or as otherwise specified by the user. Various heuristics may be employed in selecting the number of clips. The user may specify the number of clips to use, or the specified montage length may be divided into “X” intervals, wherein “X” is an integer, and “X” clips shortened as necessary to be 1/X in length assembled into the montage. “X” may be adaptive. For example, if “excitement” is specified and only three clips of the specified subject exist that pass the “excitement” threshold, then “X” is set equal to three. 
         [0051]    At block  108 , accompanying background music is added to the montage as an audio accompaniment. The user-specified background music title (or genre) may be added, or if the user desires the system to add the music, a library of music may be accessed and selected in various heuristic ways. In one example, the music library is the user&#39;s music library. In another example, when the subject is a person the music library is the subject&#39;s library. A general Internet music library may be accessed, or a music library identified with a particular digital ecosystem. In any case, for clips recognized as “happy”, upbeat music may be selected. Whether the music is upbeat or not can be determined based on its genre or on a type indicator associated with the music or on the tempo, with faster tempo indicating happy and slower tempo indicating not happy. For clips recognized as “sad”, slower, mellow music may be selected. For subjects in clips recognized by face recognition principles as being children, the music accompanying those clips may be sweet tunes or childhood tunes such as school songs. The system may select a separate audio clip for each respective video clip if desired, depending on the nature of the video clip. 
         [0052]    While the particular COMPUTER ECOSYSTEM WITH AUTOMATICALLY CURATED VIDEO MONTAGE is herein shown and described in detail, it is to be understood that the subject matter which is encompassed by the present invention is limited only by the claims.