Tuesday, September 23, 2014

Many Waze to Drive from A to B

If you've ever explored your options for turn-by-turn GPS navigation options on mobile devices, you've probably heard of Waze, a GPS application featuring community contributions such as alerts (e.g., for road hazards, accidents, or police) and community-editing features (e.g., maps and gas prices).  I really liked the concept of Waze since many of these features are not present in Apple Maps or Google Maps.  I'm not sure if Apple or Google have this feature, but one thing that pleasantly surprised me was the on-the-fly ETA change feature as depicted below.



However, as cool as all the Waze features are, for the last several months I've been getting a lot of Routing Server Timeout error messages:



I am not entirely certain, but I don't think they are due to poor cellular coverage since I've gotten these Routing Server Timeout messages while still being able to retrieve email (as a passenger, of course!), although I can't say that I've verified that in every instance.

In any case, I get these error messages about once every 2-3 times I try to use Waze.  That clearly violates the "Bad is Stronger than Good" 5-to-1 Rule and is enough to make me want to consider other options for turn-by-turn GPS apps on iOS.  Any recommendations?

Thursday, September 11, 2014

Apple iPhoto Face Detection

I typically use Apple iPhoto for the sole purpose of storing my favorite photos and albums so that they can be synchronized to my mobile devices (e.g., iPhone, iPad).  I think the face detection feature (Faces) generally works well, and there are some common and understandable situations in which it may incorrectly identify a person, for example:
  • The person is not directly facing the camera (i.e., closer to a side profile)
  • The facial expression is unusual (e.g., laughing hysterically, running, squinting)
  • The person is wearing a hat
Today I was importing another album into iPhoto, and another obvious reason dawned upon me--the person's face is changing!  When I starting verifying the face detection, I noticed that it kept mistakenly guessing that my daughter was her older cousin, and I had to repeatedly correct the default face detection.  I assume that Faces learns facial patterns over time and that the more data you feed it, the better it performs.  However, my observations above would suggest that Faces is not tailored toward infants and small children who are growing quickly and whose facial dimensions that are included in the face detection algorithms are changing over time.

Since I am almost certain that the folks at Apple Inc. are checking my blog on a daily basis to do market research and to understand my personal needs, I will provide a suggestion for a product enhancement: build age progression algorithms into Faces.  The folks at Merrill Edge have done it in their online retirement planning application (http://faceretirement.merrilledge.com) so I bet the Apple version would produce similar if not superior results, and its user interface would be simple and elegant.  That is, iPhoto would simply allow a user to enter a birthday or age for each facial profile, and from there it would estimate the progression of facial features over time, checking against the EXIF data in each photo to calculate the age of each candidate face at the time the photo was taken, thereby improving face detection for everyone but most notably for small children.  No more overrides of default face detection for Digital Daddy--yeah!

I don't know if this can actually be reliably done, and I'm not sure how much value this would add to applications that use face detection, but it's interesting to think about.  Either way, it is amazing to see that my little girl is growing up, and I am glad that I have captured tens of thousands of photos of her, with countless more to come.  And now, it's time for me to get back to tagging faces.

Wednesday, September 3, 2014

Video Hosting - Dropbox, Vimeo, and YouTube

As I discussed in a previous post (My Digital Content Workflow), I often make short home movies. Typically I share them with my immediate friends and family by posting them to Dropbox and sending the download links via email. Recently I decided to explore other options for video hosting because (1) I am running out of storage space on Dropbox and (2) when playing videos from Dropbox through a web browser, there is a noticeable degradation in quality even with sufficiently fast internet connection speeds (53.8 Mbps download according to Speedtest.net). This led me to explore 2 other juggernauts in the video hosting business: Vimeo and YouTube.

Cost. A Basic Vimeo account is free, although users are limited to 500 MB per week of storage space, 1 HD video upload per week, and a daily limit of 10 video uploads. Vimeo Plus and Vimeo Pro accounts increases those limits. On the other hand, all YouTube accounts are free, with the only constraint being a 15-minute time limit on videos, and that limit can be removed if users undergo a simple account verification process (e.g., sending an authentication code to your phone via voice or text). YouTube 1, Vimeo 0.

Quality. On playback, both Vimeo and YouTube appear to deliver crisp and clean video quality as I would have expected for the resolutions in which the videos were played. While Vimeo allows you to view the video at the standard size or full screen, YouTube has those options plus a midsized "Theater mode" resolution. However, YouTube may from time to time embed advertisements into your videos--I have not yet seen this happen to any of my videos, but they clearly state in their policies that it is a possibility. I'd say playback quality is not significantly different between Vimeo and YouTube, so the score remains YouTube 1, Vimeo 0.

Quirks. As previously mentioned, the Vimeo Basic account imposes a curious limit of 1 HD video upload per week. While there may be times when I'd want to upload more than 1 HD video in a given week, I couldn't justify upgrading to the Plus or Pro versions just to increase that limit. YouTube, on the other hand, appears to employ an interesting song recognition algorithm to identify possible music copyright violations, and this has generated some false positive copyright violations. For example, 2 videos that I uploaded were automatically tagged as having possible copyright violations. One video was from a year end preschool recital where the children were singing "Up, Up, Up" by Susan Reed, and the other video was from a dance recital where the kids were performing to "Let It Go" by Idina Menzel from the Disney movie Frozen (I know, what a novel idea). Actually I was quite impressed that YouTube correctly identified these songs in my home movies given that there was background noise in each video. But then again, I think Shazam performs equally well in the presence of background noise so maybe I shouldn't have been so impressed.

Verdict. For the time being, I have chosen to upload my home movies to YouTube because the price is right and I am not currently constrained by any upload limits as far as I can tell. I am curious to find out what will happen to the videos that have been tagged for possible copyright violations. Will Susan Reed or Disney come after me and make me take down my videos? Time will tell.

DIY Hyperlapse on a Mac

It seems like hyperlapse videos are all the rage nowadays. Microsoft is planning to release a Windows app based on this article in PetaPixel, and Instagram recently released a mobile app called Hyperlapse.  Basically a hyperlapse video is a time lapse video with stabilization that was designed specifically for point of view videos (e.g., from handheld or mounted video cameras), the resultant output providing the viewer with the feeling that of "flying" through the video, even if there was excessive camera shake in the original footage.  Despite Instagram's Hyperlapse app being available on iOS for free, I preferred to capture video footage with my GoPro Hero 3+ rather than my iPhone 5 so that I could take advantage of the GoPro's higher resolution (up to 4K), faster frame rate (60 fps at 1080p), mounting options, and other features.  So here's what I did during a recent trip to Joshua Tree National Park...
  1. Mounted GoPro Hero 3+ to vehicle hood using a suction mount
  2. Set video recording mode to 1080p at 60 fps, narrow view
  3. Wirelessly started/stopped video recording using GoPro iOS app from inside my vehicle
  4. Imported video to Final Cut Pro X (version 10.1.2) as a 1920 x 1080, 59.94p project
  5. Applied stabilization to video
  6. Under the Modify menu item, set Retime option to 4x
  7. Made other minor edits (e.g., title, transitions, fade)
  8. Exported as 1080p60 video
The stabilization in Final Cut Pro probably does not yield as good a result as genuine hyperlapse technology since Final Cut Pro was intended to reduce shake as opposed to hyperlapse technology which calculates an optimal glide path and can even fill in "missing" pixels if the algorithm is designed to do so. Nevertheless, I found the above process to be a reasonable substitute for a true hyperlapse application since I made every effort to minimize camera shake in the original footage.

For sharing purposes, I've scaled down the video to 720p30, and it is accessible here.  While you should be able to view the video in a browser, you'll probably get better video quality if you download the video and play with with your default video player (I recommend VLC).  So there you have it, my very own do-it-yourself hyperlapse video on a Mac.