What I\'m looking for is advice from people with experience with computer vision on what approach or algorithm would be best on this particular problem. I\'m an experienced
HostileFork has provided a great answer, but as soon as I read your question it reminded me of pyimagesearch.com as this example shows.
This particular blog is about a novice learning image recognition, and shows their first project.
They manage to extract the black shapes from this image:
Another good example is this post which shows using Haar Cascades to detect cat faces. Here is the OpenCV tutorial on training Haar Cascades