4

Just getting started on a hobby object-detection project. My aim is to understand the underlying algorithms and to this end the overall accuracy of the results is (currently) more important than actual run-time.

I'm starting with trying to find a good image segmentation algorithm that provide a good jump-off point for the object detection phase. The target images would be "real-world" scenes.

I found two techniques which mirrored my thoughts on how to go about this:

  1. Graph-based Image Segmentation: http://www.cs.cornell.edu/~dph/papers/seg-ijcv.pdf

  2. Contour and Texture Analysis for Image Segmentation: http://www.eng.utah.edu/~bresee/compvision/files/MalikBLS.pdf

The first one was really intuitive to understand and seems simple enough to implement, while the second was closer to my initial thoughts on how to go about this (combine color/intensity and texture information to find regions). But it's an order of magnitude more complex (at least for me).

My question is - are there any other algorithms I should be looking at, that provide the kind of results that these two, specific papers have arrived at? Are there updated versions of these techniques already floating around?

Like I mentioned earlier, the goal is relative accuracy of image segmentation (with an eventual aim to achieve a degree of accuracy of object detection) over runtime, with the algorithm being able to segment an image into "naturally" or perceptually important components, as these two algorithms do (each to varying extents).

I found these two papers after a couple of days of refining my search terms and learning new ones relevant to the exact kind of techniques I was looking for. I have just about reached the end of my personal Google creativity, which is why I am finally here!

I do not know if this is a better fit for cstheory.stackexchange (or even cs.stackexchange). I looked, but cstheory seems more appropriate for intricate algorithmic discussions than a broad question like this. Also, I couldn't find any relevant tags there either! But please do move if appropriate.

Hannele
  • 135
  • 1
  • 7
Dev Kanchen
  • 143
  • 4
  • Consider getting a book on computer vision. Also take a look at OpenCV. – sourcenouveau Jul 09 '13 at 19:40
  • Thanks but would you have any recommendations specific to the two techniques I've mentioned above? Thanks. – Dev Kanchen Jul 09 '13 at 20:23
  • 1
    No, but I know that Googling will be fairly limiting in giving you context on the state of the art. You sound like you need to learn the basics (like terminology), so a book could help you there. Then with OpenCV you can experiment with some advanced algorithms without reinventing/reimplementing the wheel. – sourcenouveau Jul 09 '13 at 20:53
  • Getting a book is a good idea. Reinventing the wheel is exactly what I want to do, since my larger aim is to learn and understand, rather than build a useable product out the gate :). In that sense, looking at the OpenCV SOURCE, yes, could help a lot. I was trying to avoid that though since usually there are shortcuts and optimisations in source which may not make much sense without actual knowledge of the algorithms. Which is why I picked two approaches to START with, which I understand to a certain extent, and start figuring out how to implement them at a very basic level. – Dev Kanchen Jul 11 '13 at 14:09
  • So referencing existing implementations is a good-to-do, and I've lined up a few other packages in related subjects as well (such as NEAT for neural nets) that I'd be visiting a later point in time. But the immediate priority is getting an understanding of the algorithms, and I'd be starting by trying to figure out how to implement the above and see how (badly :)) I fare in translating logic to code, understanding the algorithm correctly and then move on to more complex (and possibly standard) approaches. – Dev Kanchen Jul 11 '13 at 14:13

1 Answers1

1

Sounds like a fun project. I wonder if your "Google" strategy for refining terms included checking Google Scholar for papers that cite your two sources? For example, the first paper is cited by 1949 other articles, and the second one is cited by 717. Exploring the most highly-cited articles within those two lists should lead you to related and relevant approaches.

Good luck!

kmote
  • 3,322
  • 6
  • 24
  • 33
  • Sounds like a good plan. Thanks! I did come across Google scholar a couple of times during my search but didn't think about relying on that exclusively. :) It's a good direction. – Dev Kanchen Jul 09 '13 at 20:22