Patent Publication Number: US-9842418-B1

Title: Generating compositions

Description:
RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application No. 61/875,019, entitled “GENERATING COMPOSITIONS” and filed on Sep. 7, 2013, which is incorporated herein by reference in its entirety. 
    
    
     BACKGROUND 
     Social network systems often enable users to upload photos captured from camera devices (e.g., smart phones). Various users may capture the same target subject matter from different perspectives, angles, distances, lighting and points of view. After a user uploads photos to a social network system, the social network system typically enables the user to create photo compositions from one or more photos. The user can determine which photos to include in each composition. 
     SUMMARY 
     Implementations generally relate to generating multiple user photo compositions in a social network system. In one implementation, a method includes detecting a plurality of devices based on one or more location criteria. The method also includes synchronizing an actuation of the plurality of devices. The method also includes receiving photos from the plurality of devices. The method also includes generating one or more compositions from the photos. 
     With further regard to the method, in some implementations each of a plurality of devices is synchronized to actuate at the same time. In some implementations, the one or more compositions include panorama compositions based on a combination of the photos. In some implementations, the synchronizing of the actuation of the plurality of devices corresponds to an event. In some implementations, the one or more compositions include high dynamic range compositions. 
     With further regard to the method, in some implementations, the devices are associated with users, and wherein the users are members of a social network. In some implementations, the one or more location criteria are based on check-in data. In some implementations, the generating of compositions includes providing the one or more compositions to a user. 
     Some implementations can include a system comprising one or more processors configured to perform operations. The operations can include detecting a plurality of devices at or near a same location based on one or more location criteria, and synchronizing an actuation of a function in each of the devices. The operations can also include receiving media captured by the function from each of the devices. The operations can further include generating one or more compositions from the media received from each device. 
     The plurality of devices can be synchronized to actuate the function at the same time. The media can include photos and the one or more compositions can include panorama compositions based on a combination of the photos. The synchronizing of the actuation of the plurality of devices corresponds to an event. The devices can be associated with users, and the users can be members of a social network. 
     The one or more location criteria can be based on one or more of distance measurements between devices and distance measurements from a device to another object. 
     Some implementations can include a nontransitory computer readable medium having stored thereon software instructions that, when executed by a processor, cause the processor to perform operations. The operations can include detecting a plurality of devices at or near a same location based on one or more location criteria, and synchronizing an actuation of a function in each of the devices. The operations can also include receiving media captured by the function from each of the devices. The operations can further include generating one or more compositions from the media received from each device. 
     The plurality of devices can be synchronized to actuate the function at the same time. The media can include photos and the one or more compositions can include panorama compositions based on a combination of the photos. Each device can be associated with a respective user, and the users can be members of a social network. The one or more location criteria can be based on check-in data. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a block diagram of an example network environment, in accordance with some implementations. 
         FIG. 2  illustrates an example simplified flow diagram for generating photo compositions in a social network system, in accordance with some implementations. 
         FIG. 3  illustrates a block diagram of an example server device, in accordance with some implementations. 
         FIG. 4  is a diagram of an example group of users for which actuation of devices can be synchronized for generating a media composition in accordance with some implementations. 
         FIGS. 5A-5C  show diagrams of example media captured by the user devices shown in  FIG. 4  in accordance with some implementations. 
         FIG. 6  shows a diagram of an example media composition based on the images shown in  FIGS. 5A-5C  in accordance with some implementations. 
         FIG. 7  is an example simplified flow diagram for detecting devices that might be synchronized in accordance with some implementations. 
         FIG. 8  is an example simplified flow diagram for generating a media composition in accordance with some implementations. 
     
    
    
     DETAILED DESCRIPTION 
     Implementations for generating media compositions (e.g., multiple user photo or video compositions) are described. In various implementations, a system detects devices based on one or more criteria (e.g., location, social network connection or the like). In some implementations, the system synchronizes an actuation of the plurality of devices (e.g., synchronizes capture of a photo, video or audio). The system then receives media (e.g., photos) from the plurality of devices. The system then generates one or more compositions from the photos. The system can then provide the one or more compositions to one or more users. 
     In some implementations, the devices can be synchronized to actuate at the same time. For example, a timer may synchronize the actuation of client devices. In response to a timer reaching a particular predetermined timing parameter, devices may be automatically actuated to capture target subject matter. In some implementations, the one or more compositions include panorama compositions based on a combination of the photos. In some implementations, the system determines that the photos correspond to an event. In some implementations, the one or more compositions include high dynamic range compositions. In some implementations, the devices are associated with users, and the users are members of a social network. In some implementations, the one or more location criteria are based on distance measurements between devices. In some implementations, the one or more location criteria are based on check-in data, where a user checks in to an organized event or location. 
     In some implementations, the devices are synchronized to minimize distortion. In some implementations, the system determines that the photos correspond to a predetermined time period. In some implementations the system enables the user to filter images out of the composition. For example if a generated composition includes faces, a tree, and a pyramid, the system enables the user to filter out or remove the faces and create a photo that only includes the tree and the pyramid. 
       FIG. 1  illustrates a block diagram of an example network environment  100 , which may be used to implement the implementations described herein. In one implementation, network environment  100  includes a system  102 , which includes a server device  104  and a social network database  106 . The term system  102  and phrase “social network system” may be used interchangeably. Network environment  100  also includes client devices  110 ,  120 ,  130 , and  140 , which may communicate with each other via system  102  and a network  150 . 
     For ease of illustration,  FIG. 1  shows one block for each of system  102 , server device  104 , and social network database  106 , and shows four blocks for client devices  110 ,  120 ,  130 , and  140 . Blocks  102 ,  104 , and  106  may represent multiple systems, server devices, and social network databases. Also, there may be any number of client devices. In other implementations, network environment  100  may not have all of the components shown and/or may have other elements including other types of elements instead of, or in addition to, those shown herein. 
     In various implementations, users U 1 , U 2 , U 3 , and U 4  may collaborate with each other in generating compositions using respective client devices  110 ,  120 ,  130 , and  140 . 
     For ease of illustration, four example users U 1 , U 2 , U 3 , and U 4  are described. There may be any number of users collaborating to generate compositions. For ease of illustration, four respective example client devices  110 ,  120 ,  130 , and  140  are described. There may be any number of respective client devices to generate compositions. 
       FIG. 2  illustrates an example simplified flow diagram for generating a composition (e.g., in a social network system), according to one implementation. Referring to both  FIGS. 1 and 2 , a method is initiated in block  202 , where system  102  detects a plurality of devices based on one or more criteria (e.g., location). For example, users U 1 , U 2 , U 3 , and U 4  may use respective client devices  110 ,  120 ,  130 , and  140  to capture the same target subject matter. In one implementation, system  102  may receive an indication of location from a device, based on the global positioning system (GPS) capabilities of a device that automatically updates system  102  with device location. In one implementation, system  102  may determine device location based on a user&#39;s social check-in data. In some implementations, system  102  may detect locations based on geotagging, landmark recognition, or any other suitable means. 
     For example, user U 1  visits a location such as Mount Everest to capture a number of photos, user U 2  is also visiting Mount Everest, and both users are capturing a number of photos. System  102  may detect the location of client devices  110  and  120  associated with users U 1  and U 2 , and recommend synchronizing actuation of client devices  110  and  120 . 
     In block  204 , system  102  synchronizes an actuation of the plurality of devices. For example, system  102  may automatically synchronize the actuation or triggering of the capturing of a target subject matter among client devices  110 ,  120 ,  130 , and  140 . In some implementations, target subject matter may include one or more of faces, people, objects, landmarks, scenes, scenery, panoramas, and/or anything that the user wishes to capture in a photo. The client devices  110 ,  120 ,  130 , and  140  may be operated in an automatic actuation mode. In some implementations, the system  102  may utilize a timer to synchronize the actuation of client devices  110 ,  120 ,  130 , and  140 . In some implementations, in response to a countdown timer reaching a particular predetermined timing parameter, client devices  110 ,  120 ,  130 , and  140  may be automatically actuated. In various implementations system  102  may synchronize actuation or recommend synchronization of actuation of client devices  110 ,  120 ,  130 , and  140 . 
     In some implementations, system  102  may use a predetermined time or preset time to synchronize the actuation of devices. For example, users may indicate that synchronization should occur at 3:00 p.m. local time. 
     In some implementations devices may be synchronized to actuate at the same time. For example, user U 1  visits a location such as Mount Everest to capture a number of photos; and user U 2  is also visiting Mount Everest, and both users are capturing a number of photos. System  102  may detect the location of client devices  110  and  120  associated with users U 1  and U 2 , and recommend synchronizing the actuation of client devices  110  and  120 . Users U 1  and U 2  may utilize a user interface to indicate that they would like to synchronize actuation of their devices, and to signal that they are both ready to capture target subject matter. System  102  then automatically initiates a synchronized countdown on client devices  110  and  120 , starting, for example, from three seconds and counting down by one second increments to zero seconds. At zero seconds on the countdown, system  102  automatically actuates the capturing of target subject matter by client devices  110  and  120 . 
     In some implementations, the synchronization of actuation may be based on the proximity of client devices  110 ,  120 ,  130 , and  140 . System  102  may establish proximity based on micro location signals (e.g., Bluetooth Low Energy (BLE) or the like), Wi-Fi connection signals, GPS signals, cellular triangulation signals, Near Field Communications (NFC) signals, Bluetooth signals, and/or ZigBee signals. In one implementation, system  102  may establish proximity based on users&#39; check-in data. In some implementations, the synchronization of actuation may be based on a predetermined distance measurement between respective devices. In some implementations, the location of the devices can be based on distance measurements from each device to another object (e.g., to a wireless access point, a wireless communications system, a micro location beacon or the like). 
     In some implementations, the synchronization of actuation may be based on contacts in social network system  102 . For example, users U 1 , U 2 , U 3 , and U 4  can select one or more contacts within social network system  102 , to which automatic synchronization of actuation of client devices  110 ,  120 ,  130 , and  140  is to be applied. 
     In other implementations, users U 1 , U 2 , U 3 , and U 4  can select one or more social network groups within social network database  106 . System  102  may then automatically synchronize the actuation of client devices  110 ,  120 ,  130 , and  140 . For example, a user can select a “Friends” social network group indicating that automatic synchronization of actuation is to be applied to devices of users within the “Friends” social network group. 
     In one implementation, system  102  may recommend synchronization of actuation based on events. For example, system  102  may detect that two or more users are attending the same event, in which case system  102  may recommend that the users synchronize the actuation of their respective devices to capture target subject matter. For example, system  102  may determine that users are at a gathering (e.g., via a check-in, an event registration process, etc.). 
     In some implementations, system may recommend actuation based on multiple predetermined criteria. For example, in some implementations, system  102  may recommend synchronization of actuation based on an event and a social network group. In some implementations, system  102  may recommend synchronization of actuation using a combination of proximity and a predetermined time. Actual combinations will depend on the specific implementations. 
     In some example implementations actuation includes triggering a capturing mechanism within client devices  110 ,  120 ,  130 , and  140  to capture target subject matter. In one example implementation, actuation includes driving a camera lens or actuating an image capture device (e.g., camera) within client devices  110 ,  120 ,  130 , and  140  to capture target subject matter. In various implementations, actuation may include the triggering of a capturing mechanism within client devices  110 ,  120 ,  130 , and  140  to capture target subject matter, and the triggering of a flash device in one or more respective devices. 
     In block  206 , system  102  receives media (e.g., photos, videos or the like) from a plurality of devices, for instance, client devices  110 ,  120 ,  130 , and  140  associated with users U 1 , U 2 , U 3 , and U 4  respectively. In various implementations, in the case of photos, the photos may be received when the users U 1 , U 2 , U 3 , and U 4  upload the photos to system  102  or after users U 1 , U 2 , U 3 , and U 4  add the photos to one or more photo albums. In some implementations, system  102  may enable client devices  110 ,  120 ,  130 , and  140  to automatically upload photos to system  102  as users capture photos. In some implementations, the system obtains photos based on timing parameters. 
     In some implementations, system  102  determines one or more composition types from the photos. In some implementations, system  102  automatically determines the composition types from the photos upon receiving the photos. The composition types may include one or more of face compositions, high dynamic range compositions (e.g., photos having different parameters such as exposure or the like), panorama compositions, and/or photo booth compositions. As described in more detail below, system  102  determines which types of compositions can be generated from the photos. To do so, in various implementations, system  102  analyzes the photos to determine which photos are appropriate for each type of composition. For example, photos captured in burst mode (e.g., photos captured in quick succession) of a similar scene such as a landscape at the same exposure might make a visually appealing panoramic photo. However, some of these photos may not be appropriate for a high dynamic range (HDR) image since the photos were taken with the same exposure. 
     In various implementations, to determine the composition types that can be made from the photos, system  102  utilizes recognition algorithms to find photos appropriate for different composition types. For example, system  102  may utilize recognition algorithms to determine visual similarity among photos (e.g., similarity of any persons in the photos), and may utilize exchangeable image file format (EXIF) metadata to determine the elapsed time between photos. Example implementations of recognition algorithms are described in more detail below. 
     In some implementations, system  102  may use signals from recognition algorithms and from EXIF metadata in a hierarchical clustering algorithm, with potentially varying constraints per media type, in order to group constituent photos into photo bursts. In some implementations, system  102  may also use signals from social affinity data in a hierarchical clustering algorithm in order to group constituent photos into photo bursts. 
     In various implementations, to determine the composition types that can be made from the photos, system  102  utilizes clustering algorithms to cluster the photos based on one or more clustering criteria. For example, in some implementations, the clustering criteria may include photos taken within a predetermined time period. In some implementations, the clustering criteria may include photos having similar content. In some implementations, the clustering criteria may include photos having the same content. 
     In various implementations, system  102  combines these example clustering criteria and other clustering criteria in a variety of ways in clustering algorithms to determine the composition types that can be made from the photos. 
     In some implementations, if system  102  clusters two or more photos that have the same content, system  102  may determine that the two or more photos may be used to generate a face composition. For example, system  102  may determine that photos in a photo burst having the same face are candidate photos for a face composition. 
     In some implementations, if system  102  clusters two or more photos that have the same content and are captured in series at different exposure levels, system  102  may determine that the two or more photos may be used to generate a high dynamic range (HDR) composition. 
     In some implementations, if system  102  clusters two or more photos that have similar content, system  102  may determine that the two or more photos may be used to generate a panorama composition. 
     In some implementations, if system  102  clusters two or more photos that have different content, system  102  may determine that the two or more photos may be used to generate a photo booth composition. 
     Referring again to  FIG. 2 , in block  208 , system  102  generates one or more compositions from the selected photos based on the one or more determined composition types. In various implementations, to generate compositions from the photos, system  102  selects candidate photos from the group of photos based on the determined composition types. 
     In some implementations, system  102  generates a panorama composition based on a combination of photos. System  102  may utilize photos captured from synchronized actuation of client devices  110 ,  120 ,  130 , and  140  associated with a location. 
     In an example implementation, different photos may show a location including multiple objects (e.g., faces, a tree, and a pyramid) from different vantages points. A given location or scene may have many more objects, depending on the particular scenario. Furthermore, system  102  may collect numerous photos of a given object from many different vantage points. 
     In some implementations, system  102  combines the photos into a panorama composition of the location. In various implementations, system  102  applies an algorithm that aligns, normalizes, and stitches the photos into a single panorama composition. In various implementations, system  102  may generate a confidence measure, which can subsequently be used to identify and optionally reject poor quality panoramas. 
     In some implementations, photos are registered/aligned into a photo composite. In other implementations, photos are blended into a single photo composite. 
     Depending on the number of objects captured, photos available, points of view, etc., panorama compositions of locations may provide various types of panoramas of varying complexities (e.g., 360 degree panoramas, cylindrical panoramas, spherical panoramas, cubical panoramas, etc.). The specific panorama compositions generated will depend on the specific implementation. 
     In some implementations, system  102  enables the user to filter images out of the composition. For example if a generated panoramic composition includes faces, a tree and a pyramid, the user may wish to only have a panoramic composition that includes objects in the location, not including faces. System  102  may enable the user to filter out or remove images of the faces from the example panoramic composition. In various implementations, system  102  may provide the user with the option to retain the original panoramic composition that includes faces, the tree, and the pyramid as well as the newly generated filtered composition that includes the tree and the pyramid, without the faces. 
     In various implementations, system  102  notifies the user of the composition(s). For example, in some implementations, system  102  may send a message to the user indicating that system  102  has generated a particular composition and has added the composition to the user&#39;s upload stream or photo album. In various implementations, system  102  may generate and cause a visual badge to overlay a given composition. In various implementations, system  102  may generate and cause a second or combined visual badge to overlay the composition, where the visual badge indicates the type of media that it is (e.g., face composition, HDR composition, panorama composition, photo booth composition, etc.). 
     In some implementations, system  102  may provide a message (e.g., “This composition was automatically created from the photos you took.”) to the user when the user moves a pointer (e.g., mouses over) over the visual badge. 
     In some implementations, system  102  may allow for some user interaction or feedback. For example, rather than automatically generating a composition, system  102  may detect photos that would make a composition, then prompt the user to initiate the generation of a face composition, HDR composition, panorama composition, photo booth composition, etc. (e.g., with a single click or selection of a button). In some implementations, system  102  may recommend appropriate types or combinations of types of compositions to the user given the available photos. 
     In some implementations, multiple types of compositions described herein may be applied to a photo or group of photos. In various implementations, system  102  may generate compositions that include different combinations of face compositions, HDR compositions, panorama compositions, and photo booth compositions, etc. For example, in some implementations, system  102  may generate a face composition within an HDR composition. In some implementations, system  102  may generate a panorama composition using a combination of HDR compositions and/or face compositions. Actual combinations will depend on the specific implementations. 
     Although the steps, operations, or computations in the method implementations described herein may be presented in a specific order, the order may be changed in particular implementations. Other orderings of the steps are possible, depending on the particular implementation. In some particular implementations, multiple steps shown as sequential in this specification may be performed at the same time. Also, some implementations may not have all of the steps shown and/or may have other steps instead of, or in addition to, those shown herein. 
     While system  102  is described as performing the steps as described in the implementations herein, any suitable component or combination of components of system  102  or any suitable processor or processors associated with system  102  may perform the steps described. 
     In various implementations, system  102  may utilize a variety of image recognition algorithms to recognize faces, landmarks, objects, etc. in photos. Such recognition algorithms may be integral to system  102 . System  102  may also access recognition algorithms provided by software that is external to system  102  and that system  102  accesses. 
     In various implementations, system  102  enables users of the social network system to specify and/or consent to the use of personal information, which may include the system  102  using their faces in photos or using their identity information in recognizing people identified in photos. For example, system  102  may provide users with multiple selections directed to specifying and/or consenting to the use of personal information. For example, selections with regard to specifying and/or consenting may be associated with individual photos, all photos, individual photo albums, all photo albums, etc. The selections may be implemented in a variety of ways. For example, system  102  may cause buttons or check boxes to be displayed next to various selections. In one implementation, system  102  enables users of the social network to specify and/or consent to the use of their photos for facial recognition in general. 
     Implementations described herein provide various benefits. For example, implementations can enable multiple users to generate compositions that minimize distortion associated with generating compositions from combinations of photos. Implementations described herein may also increase overall engagement among end-users in a social networking environment. 
       FIG. 3  illustrates a block diagram of an example computing device  300  (e.g., server, user device, or the like), which may be used to implement the implementations described herein. For example, computing device  300  may be used to implement server device  104  of  FIG. 1 , as well as to perform the method implementations described herein. In one implementation, computing device  300  includes a processor  302 , an operating system  304 , a memory  306 , and an input/output (I/O) interface  308 . Computing device  300  also includes a social network engine  310  and a media composition application  312 , which may be stored in memory  306  or on any other suitable storage location or computer-readable medium. Media composition application  312  provides instructions that enable processor  302  to perform the functions described herein and other functions. 
     For ease of illustration,  FIG. 3  shows one block for each of processor  302 , operating system  304 , memory  306 , I/O interface  308 , social network engine  310 , and media application  312 . These blocks  302 ,  304 ,  306 ,  308 ,  310 , and  312  may represent multiple processors, operating systems, memories, I/O interfaces, social network engines, and media composition applications. In other implementations, computing device  300  may not have all of the components shown and/or may have other elements including other types of elements instead of, or in addition to, those shown herein. 
       FIG. 4  is a diagram of an example group of users for which actuation of devices can be synchronized for generating a media composition in accordance with some implementations. In particular, a group of users (U 1 -U 3 ) having respective user devices  108 - 112  may be at or near a similar location (e.g., the pyramids  402 ). An implementation of a system as described herein can detect that the user devices are at or near the same location and can synchronize the acquisition of media (e.g., taking of photos) among the devices. 
     Based on a signal (e.g., a timer, or other synchronization signal), the three devices  108 - 112  can each actuate their respective cameras and acquire images (e.g.,  FIGS. 5A-5C , which correspond to the images from devices  108 ,  110  and  112  respectively). In this example, while attempting to take pictures of the pyramids  402 , a group of people  404  partially blocks the view of the pyramids from all three users. 
       FIGS. 5A-5C  show diagrams of example media captured by the user devices shown in  FIG. 4  in accordance with some implementations. As can be seen in  FIGS. 5A and 5B , users U 1  and U 2  were able to obtain unobstructed images of the smaller pyramid. However, the larger pyramid was at least partially obscured by the people  404  in the foreground. User U 3  was able to take image with an unobstructed view of the larger pyramid and an obstructed view of the smaller pyramid. 
     The system can receive the three images ( FIGS. 5A-5C ), analyze the type and content of the images and generate a composition as described above. For example, the system can determine that the pictures of landmarks (e.g., the pyramids) and that two of the images have an unobstructed view of the smaller pyramid and one of the images has an unobstructed view of the larger pyramid. The system can then generate a composition ( FIG. 6 ) that includes the image of the smaller pyramid from  FIG. 5A or 5B  and the image of the larger pyramid from  FIG. 5C . Thus, the composition image can include unobstructed views of both pyramids. 
       FIG. 7  is an example simplified flow diagram for detecting devices that might be synchronized in accordance with some implementations. Processing begins at  702 , where the location of two or more devices is determined using one or more of the methods described above or any now know or later developed suitable location determination technology. Processing continues to  704 . 
     At  704 , the system determines which devices at or near the same location have synchronization enabled. The users of each device may have enabled synchronization via settings on their respective devices or may have enabled synchronization via a social network. Processing continues to  706 . 
     At  706 , the system optionally determines a check-in status of one or more users and can use the check-in status as a proxy for location or to augment location information that has already been determined. Processing continues to  708 . 
     At  708 , users can optionally be provided with a recommendation or request for synchronization. It will be appreciated that  702 - 708  can be repeated in whole or in part. 
       FIG. 8  is an example simplified flow diagram for generating a media composition in accordance with some implementations. Processing begins at  802 , where the system determines the type or content of received media. For example, the system can determine (in the case of  FIGS. 4-6  above) that the media includes three landmark photos. The determination of the type and/or content of the media can be used to determine composition type and image processing filters to apply. Processing continues to  804 . 
     At  804 , one or more compositions are selected based on the media type and/or content. For example, based on images  5 A- 5 C, the system may select a composition to eliminate or reduce obscuration (as shown in  FIG. 6 ). Processing continues to  806 . 
     At  806 , one or more image processing filters or functions is applied to the media. For example, the system may apply a function of combining images as described above, or may apply an HDR function or the like. In general, any image processing function suitable for generation a composition could be used. Processing continues to  808 . 
     At  808 , the system generates the composition. It will be appreciated that  802 - 808  can be repeated in whole or in part. 
     Although the description has been described with respect to particular implementations thereof, these particular implementations are merely illustrative, and not restrictive. Concepts illustrated in the examples may be applied to other examples and implementations. 
     Note that the functional blocks, methods, devices, and systems described in the present disclosure may be integrated or divided into different combinations of systems, devices, and functional blocks as would be known to those skilled in the art. 
     Any suitable programming languages and programming techniques may be used to implement the routines of particular implementations. Different programming techniques may be employed such as procedural or object-oriented. The routines may execute on a single processing device or multiple processors. Although the steps, operations, or computations may be presented in a specific order, the order may be changed in different particular implementations. In some particular implementations, multiple steps shown as sequential in this specification may be performed at the same time. 
     A “processor” includes any suitable hardware and/or software system, mechanism or component that processes data, signals or other information. A processor may include a system with a general-purpose central processing unit, multiple processing units, dedicated circuitry for achieving functionality, or other systems. Processing need not be limited to a geographic location, or have temporal limitations. For example, a processor may perform its functions in “real-time,” “offline,” in a “batch mode,” etc. Portions of processing may be performed at different times and at different locations, by different (or the same) processing systems. A computer may be any processor in communication with a memory. The memory may be any suitable processor-readable storage medium, such as random-access memory (RAM), read-only memory (ROM), magnetic or optical disk, or other tangible media suitable for storing instructions for execution by the processor. 
     The memory  306 , or data storage and/or nontransitory computer readable medium can be a magnetic storage device (hard disk drive or the like), optical storage device (CD, DVD or the like), electronic storage device (RAM, ROM, flash, or the like). The software instructions can also be contained in, and provided as, an electronic signal, for example in the form of software as a service (SaaS) delivered from a server (e.g., a distributed system and/or a cloud computing system). 
     The client (or user) device(s) can include, but are not limited to, a desktop computer, a laptop computer, a portable computer, a tablet computing device, a smartphone, a feature phone, a personal digital assistant, a media player, televisions, an electronic book reader, an entertainment system of a vehicle or the like. Also, user devices can include wearable computing devices (e.g., glasses, watches and the like), furniture mounted computing devices and/or building mounted computing devices. 
     Some user devices can be connected to a social network and/or media composition system via a network (e.g.,  150 ). The network connecting user devices to the social network and/or media composition system can be a wired or wireless network, and can include, but is not limited to, a WiFi network, a local area network, a wide area network, the Internet, or a combination of the above. 
     The data storage, memory and/or computer readable medium can be a nontransitory medium such as a magnetic storage device (hard disk drive or the like), optical storage device (CD, DVD or the like), or electronic storage device (RAM, ROM, flash, or the like). The software instructions can also be contained in, and provided as, an electronic signal, for example in the form of software as a service (SaaS) delivered from a server (e.g., a distributed system and/or a cloud computing system). 
     Moreover, some implementations of the disclosed method, system, and computer readable media can be implemented in software (e.g., as a computer program product and/or nontransitory computer readable media having stored instructions for monochromatic image determination as described herein). The stored software instructions can be executed on a programmed general purpose computer, a special purpose computer, a microprocessor, or the like. 
     It is, therefore, apparent that there is provided, in accordance with the various example implementations disclosed herein, systems, methods and computer readable media for generating media compositions. 
     While the disclosed subject matter has been described in conjunction with a number of implementations, it is evident that many alternatives, modifications and variations would be or are apparent to those of ordinary skill in the applicable arts. Accordingly, Applicants intend to embrace all such alternatives, modifications, equivalents and variations that are within the spirit and scope of the disclosed subject matter.