title: Detect symbols written on a whiteboard using OpenCV
body: <p>I'm trying to detect shapes written on a whiteboard with a black/blue/red/green marker. The shapes can be circles, rectangles or triangles. The image can be found at the bottom of this post.</p>
  
  <p>I'm using OpenCV as the framework for the image recognition.</p>
  
  <p>My first task is to research and list the different strategies that could be used for the detection. So far I have found the following:</p>
  
  <p>1) Grayscale, Blur, Canny Edge, Contour detection, and then some logic to determine if the contours detected are shapes?</p>
  
  <p>2) Haar training with different features for shapes</p>
  
  <p>3) SVM classification</p>
  
  <p>4) Grayscale, Blur, Canny Edge, Hough transformation and some sort of color segmentation?</p>
  
  <p>Are there any other strategies that I have missed? Any newer articles or tested approaches? How would you do it?</p>
  
  <p>One of the test pictures: <a href="https://drive.google.com/file/d/0B6Fm7aj1SzBlZWJFZm04czlmWWc/view?usp=sharing" rel="nofollow">https://drive.google.com/file/d/0B6Fm7aj1SzBlZWJFZm04czlmWWc/view?usp=sharing</a></p>
  
  <p>UPDATE:
  The first strategy seems to work the best, but is far from perfect. Issues arise when boxes are not closed, or when the whiteboard has a lot of noise. Haar training does not seems very effective because of the simple shapes to detect without many specific features. I have not tried CNN yet, but it seems most appropriate to image classification, and not so much to detect shapes in a larger image (but I'm not sure)</p>