8

I want to detect items in an image (like core image for a face), but the items aren't faces. The image What can I use to do so?

I have an image with a few items, a car, a person a tree and mailbox. I want to cut the image around each item and create a subimage of each . Now i would have 1 image with a car, 1 with a person, 1 with a mailbox. There may be overlap of other objects, but the predominant feature in each would be the main object.

Thanks

1
  • Might be worth looking into existing APIs for this. Google has one. Ciliar is another option (disclaimer I run it). Commented Oct 19, 2018 at 16:28

1 Answer 1

12

This is a surprisingly complicated topic of ongoing research in the field of Computer Vision. There are many good academic papers written on the topic (heres a nice video) and no publicly available turnkey solutions.

I dont think core image currently supports this kind of functionality nor will it in the near future.

However your best bet is to start by checking out the now well established OpenCV library maintained by Willow Garage for all major operating systems (including iOS and Android). The following link might help you towards what you are looking for:

OpenCV object detection tutorials

Alternatively you could try out augmented reality toolkits designed specifically for tracking known targets. Some good examples are:

Metaio, Vuforia, ARLab, String, Junaio

EDIT, Nov 2016

Although CoreImage still does not support this, it is somewhat more likely that it may support it in the future. Recent years have seen a dramatic increase in the availability of object detection frameworks that use deep networks to perform object classification and localization. A good first place to start would be to look at projects that use TensorFlow for Android and iOS.

One such link.

EDIT, Dec 2017 This is now fairly standard across all major mobile and desktop computing platforms (amazing how much changes in only 1 year). Specifically for Apple you can look at CoreML

Sign up to request clarification or add additional context in comments.

6 Comments

Saying that, you might find that CoreImage provides much faster implementations of some filter operations provided by OpenCV - just not very many of them,
I'm also working on some GPU-accelerated template matching functions in my framework here: github.com/BradLarson/GPUImage , but aside from the corner and line detectors in there now, I don't make much functional yet.
@BradLarson GPUImage seems like a an excellent candidate for running forward passes of Deep Neural Networks. Especially simple models like VGG16 which only use 3x3 convolutions and very simple pooling layers.
@twerdster - I agree, and it's an area that I'm investigating. High numerical precision was seen as being critical for these operations, making it more difficult for shader-based approaches (and limiting the hardware it would work on), but recent research seems to show that's not as critical. I've been running experiments with CNNs in various areas, and I see a lot of potential here.
@twerdster - Yes, I've had something working for a little while that does this. I touch on it here: perceptuallabs.com/blog/2017/8/27/… in a post about object detection work we're doing. It's not public in the same way as GPUImage, so there's not as much I can say about the exact implementation of this. I did leverage the basic structure of GPUImage to run convolutions using OpenGL, and it works pretty well for a wide variety of applications.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.