On a whim I decided to
update my thumbnail algorithm. In short, the
previous iteration would look for areas of sharp contrast from a few preconfigured areas of the image. Intuitively, this had the twofold benefit of finding high contrast areas (sometimes where the important stuff is) and finding sharp areas (as out-of-focus parts won't have sharp contrast). I decided to iterate on this and preserve the sharp contrast element of the equation, but added parameters to try to resolve some of the issues with the original algorithm.
Both new ingredients are based on creating a
histogram of brightness values using luminance (greyscale that treats R/G/B as the human eye does).
- Distance from midtones. That is, how far is the most common brightness value from the midpoint. This would de-emphasize areas that are predominantly dark or bright.
- Peak contrast. I started with the distance between the two highest points in the histogram, but revised it to take the largest separation between a handful of the highest values. This would emphasize areas that have contrast across the entire measured surface.
Rather than use preconfigured sample locations, I wrote the interface to let the user define
a number of circlular sampling areas spaced evenly across the image. Running the algorithm would give me:
( x, y): [score] [values...]
(88, 76): [265] midtone: 96 contrast: 96 sharpness: 73
(88, 152): [104] midtone: 40 contrast: 40 sharpness: 24
(88, 228): [88] midtone: 48 contrast: 24 sharpness: 16
(88, 304): [102] midtone: 64 contrast: 24 sharpness: 14
(88, 380): [79] midtone: 48 contrast: 24 sharpness: 7
(88, 456): [86] midtone: 48 contrast: 24 sharpness: 14
Taking the combined midtone/contrast/sharpness values, I normalized them using them to give the
percentage thumbnailability compared to the rest of the image.
It gets a little clearer and more aligned when I draw on the sampling circles.
Generating a thumbnail is fairly trivial from here, but still heuristic. I could take the point of highest interest and expand out if necessary, but that could fall into an adversarial case fairly easily. Rather, iterating over the entire grid is pretty straightforward, and I can take the maximum grouping that meets provided size constraints.
And beyond the thumbnail application, the high/low interest region labeling could be used for cropping or culling datasets for other algorithms.
Video games break the heuristic, but not as easily as the last one. Text provides the sharp contrast that the code likes to hone in on. Creating a center left/right bias would help with this, but then I need to provide manual or automatic recognition that it's a screencap.
Even photos don't always get the intended result.
Finally draft one of
the Europe post set is complete. Two problems though:
- April was fairly post-happy
- Viewing the posts normally is backward, since they're ordered newest-to-oldest
This called for a bit of
new code on the back end, assembling a custom set of posts in arbitrary order. Voila, post sets.
Who doesn't love a good list? In this post:
- List posts, e.g. a ranking of Speed Nite movies.
- My retrospective favorites
- Popular (highest-traffic) images on this site.
List posts
|
2021.04.01
Millennialisms
A compilations of things that set gen-y apart (or as they would say, "a part") from others.
|
|
2011.05.05
The final speed night
A few years back, Connie, Erik, and myself did car/motorcycle movie nights and shared our thoughts on how they measure up to some agreed-upon criteria that only vaguely echoes actual quality. If you're looking for a full-throttle quiet night in the media room, check the top or bottom of our list.
|
Favorite media
Popular images, decade
2000-2009
2010-2019
2020-2029
Popular images, yearly
Here are the top seven images for each year, based on direct web traffic.
2000
I retroposted just a few things from 2000, one event was a backpacking trip.
2001
Once again, not much content from 2001, E3 (omg Gamecube!) and a Tahoe trip.
2002
E3 and skiing once again.
2003
2003 visits are dominated by mine and
Rob's photos from the Cedar Fire.
2004
Getting a little more diversity here; E3, skiing, PB Block Party, and a Celica suspension change.
2005
E3 and some wheelies out in the canyons.
2006
In 2006 the retroposts end, I think my first photo was
Ty playing Wii just after launch. A trip to Amago also got some clicks and check out that cool mp3 player.
2007
Jon managed to headshot himself from a punt rebounding off a tree and the diagram happily got some visits. There's also a smattering of events and car work.
2008
The renovations began in 2008: bare floors and big splashes.
2009
People like MS paint I guess, my unofficial Maui map somehow drew traffic. My stained/polished concrete floor how-to got some attention. The rest are assigments from photo class.
2010
2010 had some great Axis and Allies Anniversary Edition battles (that are pretty tough/boring to convey by blog/photo). Renovations and car work continued and it looks like a screenshot made the cut.
2011
2011 saw the original release of Skyrim and Valentino Rossi on a Ducati - I quite like my composite of Rossi, Marco Simoncelli, and Cal Crutchlow bombing down the 'Screw.
2012
Beer theme for traffic in 2012: the first Blind Lady Ale House Cape Run, homebrewing, and a visit to Lost Rhino in Virginia.
2013
Good balance for the 2013 hits: brewing, surfing, bike work, renovations, video games, and E3.
2014
My most successful night surfing trip dominates the 2014 traffic with some cute dog and toddler in there.
2015
Good year for video games. Borderlands, Far Cry, and Fallout. I guess renovations and weimaraners weren't as exciting.
2016
My Colonel Bliss boss battle was grabbed by a rando on Reddit so that got a bunch of clicks. Video game screenshots seem to have taken over with Witcher 3, Warframe, Helldivers, and Cities: Skylines drawing internet interest.
2017
Dying Light got the attention in 2017 with the ill-fated brawler Paragon sneaking in (at the time of this writing).
2018
I grabbed a couple screens from Altered Carbon and they got some taffic. So did Horizon Zero Dawn, Monster Hunter World, and photos from the Gloomhaven tabletop game.
2019
I have no idea why Viscera Cleanup Detail was my most popular image from 2019, but there you have it. Divinity, Barotrauma, Dying Light, and Payday join the video game fray with an original Risk of Rain 2 meme slotting in.
2020
My epic California/Vegas/Raiders theme fantasy avatar rightfully takes #1. What's better than a bear with a football and 40 surfing over, uhhh, Texas, Arizona, Zuck, Hortler, an AoE siege engine, confederate pride, and I'm not sure what else? Byleth and Edelgard represent Fire Emblem Three Houses while amazing moments from Divinity 2 and a napkin drawing of an autoencoder make the cut.
2021
Things moved away from video games in 2021 traffic and toward current events - namely the Boomerkrieg, the Ever Given incident, and the GME squeeze.
2022
Machine learning, Elden Ring, and veranda construction.
Last updated 2023-01-31