Google API

Organize your media into auto-created events using media cluster recognition

Submitted by Erik on Mon, 02/15/2021 - 02:07

As described in a fresh new approach to digital albums, events tend to serve as the main organizing construct for media, better than boring old albums. It's straight forward for users to create an event in an album and upload or import media to be part of that event. Many users are doing this already during our Private Beta.

Beyond that, GreatAlbum offers a unique and exciting feature, where it can auto-create events based on media that you import from remote sources (like iCloud and Google Photos) or upload directly to GreatAlbum.  Here are the basics of how this works...

  1. User imports media from remote source into an album in GreatAlbum (right now, only Google Photos is available)
  2. User then requests GreatAlbum to auto-create events based on media clusters
  3. GreatAlbum triggers its Media Cluster Recognition (MCR) engine as a background process, so that the User can continue using GreatAlbum while the media recognition process runs in the background
  4. The MCR engine counts the number of media items per date/hour
  5. If more than 5 media items were created in a date/hour period, then the MCR engine creates a new event in the given album and links the media from that hour with the new event (using Drupal Entity API); the engine also updates the media_analyzed flag on the media items, so they are not analyzed again in the future
  6. If there are any more media in the next hour, then those are also linked with the event from the previous hour and the media_analyzed flag is set on them too
  7. If there is an hour break where no media is found, and then more media is found in the next hour, then the MCR engine creates another event and links the media from that hour with the new event
  8. At the completion of each event, with all respective media associated, the MCR engine creates an activity in GreatAlbum, mentioning that X number of media have been associated with that event. The activity is associated with both the event and all the media, so it will show up in their respective activity streams
  9. Once this process is completed for all events, media & activities, the MCR engine sends an email notification to the user informing them that a total of Y media was analyzed and linked to Z new events that were automatically created

Pioneer App LogoIf you look closely at the example in the chart, you'll notice:

  • The first event is identified on 2021-03-27 in hours 01-06
  • Hours 08-09 are ignored, because of the gap in hour 07 and the media count in hours 08-09 is below the 5 threshold
  • The second event is identified on the 27th, from hours 10-12
  • The third event is identified on the 28th, in hours 01-04
  • The fourth event is identified on the 28th, in hours 06-07, because of the gaps in hours 05 and 08
  • And so on for the fifth and sixth events

This is a very basic approach for now. Eventually we want to include geo-tagging (location) as part of the medial cluster recognition, but Google does not allow any third party app to access location information for its photos, so we have to solve that limitation first. 

As we continue with our Private and then Public Betas, we will continue test the thresholds of how many photos in an hour should trigger a new event (cluster length), and how long of an hour gap can exist between photos and still be part of the same event. Right now, we use 0 hours as the gap. If we increase the hour gap to 1, then the media cluster engine would have auto-created only two events in the chart above - one for all media on the 27th and another for all media on the 28th - because the gap between photo groupings on each day was never more than an hour.