This week I kept to my summer of training plan, however the model-building I did was for a Quartz project we're not ready to share. But! I learned something super useful in the process: how to quickly turn videos into many still images.
For our latest project, I'm training a model to identify specific objects available to me – much like how I trained a model to identify items in the office.
The fastest way to get lots of images of an object is to take a video of it. And a quick way to turn that video into images – called an "image sequence" – is ffmpeg. It seems to convert from many formats like
.avi to lots different image formats such as
There's plenty more detail in the ffmpeg docs, but here's what I did that worked so quickly on my Mac:
brew install ffmpeg
I use Homebrew to put things on my Mac, so this went pretty quickly. I had to update my Xcode command line tools, but Homebrew is super helpful and told me exactly what I needed to do.
Next, I did this from the Terminal:
ffmpeg -i IMG_1019.MOV -r 15 coolname%04d.jpg
Here's what's going on:
-imeans the next thing is the input file
IMG_1019.MOVis the movie I Airdropped from my phone to my laptop
-ris the flag for the sample rate.
15is the rate. I wanted every other image, so
15frames every second.
1would be every second;
0.25every 4th second.
coolnameis just a prefix I picked for each image
%04dmeans each frame gets a zero-padded sequence number, starting with
0001and going to
9999– so my image files are named
.jpgis the image format I want. If I put
.pngI got PNGs instead.
In mere moments I had a dozens of JPG files I could use for training. And that's pretty great.