简体   繁体   中英

One class classification for images

Say You have thousands of images of cat, like this: ( https://web.archive.org/web/20150703060412/http://137.189.35.203/WebUI/CatDatabase/catData.html ). You wish to build a system that can look at a image and say - if the image is that of cat or not.

 What are the (if any) techniques to build such a model with a descent accuracy?

PS1: The key challenge in this problem is to see that "what is not a cat" is a huge universe - every image in this world that is not of cat qualifies for it. Formulating this problem as a binary classification is not good since it is near impossible to collect a "comprehensive" dataset of "what is not a cat". (if you do so, your model will be as good as your dataset of "what is not a cat")

PS2: Such a setting is called "One class classification"

One approach I can think of is to use One-Class SVM, which essentially is doing outlier detection.
In practice you can first apply a pre-trained CNN to extract a meaningful compact representation of the images and then use those vectors as input to a One-Class SVM. Everything non-cat will be an outlier!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM