Topanga State Park

Topanga State Park

We’ve been getting a lot of blessed rain in Southern California this winter (“given current conditions and model outlooks, the chance of an El Niño event to occur during March–May 2019 is estimated to be about 50–60%”), and as a result the hills are a wonderful, verdant green right now.

Here are a few photos from the beautiful Topanga State Park, (though let me hereby publicly shame them for not allowing dogs).

Topanga State Park

read more

A Look at the DMV That Is, and the DMV That Should Be

A Look at the DMV That Is, and the DMV That Should Be

A couple of months ago, the rear license plate was stolen off my car during the night while it was parked outside of my Los Angeles apartment. Only the rear license plate was stolen; the thief was likely after my registration stickers, which wouldn’t expire for almost a full year.

The experience of getting a replacement license plate was extremely subpar - confusing, frustrating, and dragged out over several months.

I am, of course, far from alone in being frustrated by California’s Department of Motor Vehicles (DMV). In fact, our new Governor Gavin Newsom has said that the “DMV has been chronically mismanaged and failed in its fundamental mission to the state customers it serves”. For that reason, Newsom has ordered a comprehensive modernization and reinvention of the DMV. Finally!

To appreciate just how bad the current situation is, let’s run down two versions of dealing with my stolen license plate - I’ll first tell you what I think it could - should! - look like, using readily-available technology, and then I’ll tell you what I actually went through.

read more

An Easy-To-Use Script to Install OpenCV for C++ and Python

Here to find an easy way to install OpenCV, and don’t care much about the specifics?

Do this:

git clone git@github.com:krystofl/install-opencv.git
cd install-opencv
./install_opencv.py

Here’s the github repo for the installation script.

Why I Wrote This Script and Blog Post

OpenCV is a pain in the ass to install.

The official instructions are decent if you know where to find them, have been doing Linux development for a while, and feel like spending time on the installation process. For everyone else, they’re frustrating. They’re hard to find, they have a whole bunch of steps, substeps, ambiguities, and decisions that are left up to user.

That’s why so many others are writing their own sets of instructions.

Googling “install opencv” yields about 468,000 results as of this writing. The top 4 results have between 4-9 steps (often with substeps), and they are long.

Most of the time when I’m installing a library, I’m thinking about what I want to use it for. What sweet application for computer vision have I thought up now? That’s where I want my mental energy to go - not on figuring out which installation flags I should set and how.

I was recently installing OpenCV on three separate computes within a span of a few weeks and grew frustrated with the process.

About This Script

My motivation was to write something that would be really easy and helpful most of the time for most people.

The instructions to use it are literally one step: run the script.

This should install OpenCV (C++ and Python):

git clone git@github.com:krystofl/install-opencv.git
cd install-opencv
./install_opencv.py

The github repository is here.

The repo has a README, which you should probably skim.

By default, the script installs opencv’s prerequisites, so you should be able to run it on a fresh OS install and it should just work. It runs in python 3.

To see the installation options, run ./install_opencv.py --help.

One flag that may be helpful is -p, which tells the script NOT to install prerequisities.

Also helpful is -b to tell the script to load build and installation flags for cmake from a JSON file. What are all of the available flags? Who knows? The official installation instructions are helpful, but not exhaustively so.

When NOT to Use This Script

Please note that this script is something I originally wrote for myself for my own use case. I think it will be helpful to others, so I’ve decided to share it. However, the script is not thoroughly tested, so use your own judgement. It seems to work fine on Ubuntu 16.04; I haven’t tested it on other configurations.

I can think of a number scenarios for when not to use this script:

Final Notes

The script currently does not install opencv_contrib (OpenCV’s “extra modules”). I haven’t needed them. I will probably add an option to install these to this script… the next time I need those modules. If you need them, why not fork my repo and add it?

If this post has helped you, or if you have suggestions on how to improve it, please let me know by commenting below. Thanks!

read more

A Quick Stop in Czechia

A Quick Stop in Czechia

To take a photo,
capture a moment in time,
and still let it pass.

A young boy in Prachatice, Czechia
After I took this boy's photo, I showed him the picture on my camera's LCD screen. When I turned to leave, he got very upset. He was convinced that because he had seen the toy truck in my camera, I was stealing his truck from him. Pointing out the truck in his hand had no effect - he knew that some version of the truck was there in my camera, and that I was taking it with me when I walked away.

I made a quick stop in Czechia recently, and while walking and driving around took some photos. Here are a few.

read more

Around Santa Cruz

Around Santa Cruz

Snuggled on the coast,
redwoods meet the ocean breeze:
come to Santa Cruz.

Here are some from Santa Cruz and the surrounding area, where “surrounding” is rather loosely defined, as you’ll see.

West Waddell Creek State Wilderness
West Waddell Creek State Wilderness

read more