Book reviews for December 2020
Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs by John E. Doerr
4/5
TensorFlow Hub has a great sample for transferring the style of one image to another. You might have seen Munch's The Scream applied to a turtle, or Hokusai's The Great Wave off Kanagawa to the Golden Gate Bridge. It's fun to play with and I wondered how it would work for a timelapse video. I just posted my first attempt, four different shots of San Francisco and I think it turned out pretty well.
The four sequences were all shot on an A7C, one second exposure, ND3 filter and aperture/ISO as needed to hit one thousandth of a second before fitting the filter. Here's an example shot:
I didn't want The Scream or The Wave, so I asked my kids to pick two random pieces of art each so I could have a different style for each sequence:
The style transfer network wants a 256x256 style image so I cropped and resized the art as needed.
The sample code pulls images from URLs. I modified it to connect to Google Drive, iterate through a source folder of images and write the transformed images to a different folder. I'm running this in Google Colab which has the advantage that you get to use Google's GPUs and the disadvantage that it will disconnect, timeout, run out of memory etc. To work around this the modified code can be run as many times as needed to get through all the files and will only process input images that don't already exist in the output folder. Here's a gist of my adapted colab notebook:
One final problem is that the style transfer example produces square output images. I just set the output to 1920x1920 and then cropped a HD frame out the middle of each image to get around this.
Here's a more detailed workflow for the project:
I usually shoot timelapse with a neutral density filter to get some nice motion blur. When I shot this sequence it was the first time I'd used my filter on a new camera/lens and screwing in the filter threw off the focus enough to ruin the shots. Lesson learned - on this camera I need to nail the focus after attaching the filter. As I've been meaning to try style transfer for timelapse I decided to use this slightly bad sequence as the input. Generally for timelapse I shoot manual / manual focus, fairly wide aperture and ISO 100 unless I need to bump this up a bit to get to a 1 second exposure with the filter.
After shooting I use LRTimelapse and Lightroom 6 to edit the RAW photos. LRTimelapse reduces flicker and works well for applying a pan and/or zoom during processing as well. For this project I edited before applying the style transfer. The style transfer network preserves detail very well and then goes crazy in areas like the sky. Rather than zooming into those artifacts I wanted to keep them constant which I think gives a greater sense of depth as you zoom in or out.
Once the sequence is exported from Lightroom I cancel out of the LRTimelapse render window and switch to Google Colab. Copy the rendered sequence to the input folder and the desired style image and then run the notebook to process. If it misbehaves then Runtime -> Restart and run all is your friend.
To get to video I use ffmpeg to render each sequence. For this project at 24 frames per second and cropping a 1920x1080 frame from each of the 1920x1920 style transfer images.
Then DaVinci Resolve to edit the sequences together. I added a 2 second cross dissolve between each sequence and a small fade at the very beginning and end.
Finally, music. I use Filmstro Pro and for this video I used the track Durian.
Here's the result:
(Published to the Fediverse as: Style Transfer for Time Lapse Photography #code #ml #tensorflow #drive #python #video How to apply the TensorFlow Hub style transfer to every frame in a timelapse video using Python and Google Drive. )
A timelapse of San Francisco on New Year's Eve 2020:
Shot from Treasure Island, Corona Heights Park. Fort Baker and near Battery 129 in the Marin Headlands. Each sequence was transformed with a style transfer neural network (full details).
(Previously: San Francisco New Year's Eve Timelapse)
(Published to the Fediverse as: San Francisco New Year's Eve Timelapse 2020 #timelapse #sanfrancisco #video San Francisco New Year's Eve Timelapse 2020 (style transfer neural network version). )
4/5
Abrigo Valley Trail to Santos Trail returning on Briones Crest Trail, a pleasant three and a half mile hike in Briones Regional Park.
(Previously: Mariposa Loop)
Hike starts at: 37.927261, -122.158768. View in Google Earth.
(Hike Map)
(Published to the Fediverse as: Abrigo Valley #hike #map Briones Regional Park hike taking in Abrigo Valley Trail, Santos Trail and Briones Crest Trail. 3.5 miles. )
Lake Merced in San Francisco (Previously: Lake Merced).
(Published to the Fediverse as: Merced #photo #lakemerced #sanfrancisco Photos from Lake Merced in San Francisco, California. )
A five mile loop in Purisima Creek Redwoods Open Space Preserve. Super limited parking so a good one for an early start. Descend Grabtown Gulch Trail for a little over two miles (and it doesn't really stop going down). Then after about five seconds along Purisima Creek ascend Borden Hatch Mill Trial all the way back to the top.
Hike starts at: 37.422216, -122.338163. View in Google Earth.
(Hike Map)
(Published to the Fediverse as: Grabtown Gulch and Borden Hatch Mill in Purisima Creek #hike #purisimacreek #map Awesome 5 mile hike in Purisima Creek, down Grabtown Gulch Trail and then back up Borden Hatch Mill Trial. Lots of down and then lots of up. )
2020 Great Conjunction of Jupiter and Saturn, including the Galilean moons.
(Published to the Fediverse as: Great Conjunction #photo #saturn #jupiter #conjunction Photo of the 2020 Great Conjunction including Jupiter, Saturn and the Galilean moons. Shot from San Francisco, California. )
Winter starts now in the Northern Hemisphere, Summer to the south. 10:03 UTC Dec 21 2020 rendered in Catfood Earth.
(Previously: Winter Solstice 2019)
(Published to the Fediverse as: Winter Solstice 2020 #code #winter #solstice #catfood #earth The exact moment of Winter Solstice 2020 rendered in Catfood Earth, including clouds and the extent of day and night around the Earth. )
Minutes spent so far this year waiting for Excel to talk to a printer: about 290.
Lifetime Excel print jobs: maybe 2?
How to fix Accessing Printer Press ESC to cancel:
The only real disadvantage is you'll need to select a different printer when you actually need to print anything (which you probably don't).
(Published to the Fediverse as: Accessing Printer Press ESC to cancel #etc #excel #microsoft How to fix the annoying Accessing Printer Press ESC to cancel wait in Excel by setting a different default printer in Windows 10. )
Download a Sharepoint File with GraphServiceClient (Microsoft Graph API)
Accessing Printer Press ESC to cancel
Export Google Fit Daily Steps, Weight and Distance to a Google Sheet
Monitor page index status with Google Sheets, Apps Script and the Google Search Console API
International Date Line Longitude, Latitude Coordinates
Scanning from the ADF using WIA in C#
Sending email via GMail in C#/.NET using SmtpClient
Is it safe to open securedoc.html (Cisco Registered Envelope)?