Learn a classifier for distinguishing important sequences of images.
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
adaboost committing adaboost and training/testing code Sep 24, 2014
classifiedviewer committing adaboost and training/testing code Sep 24, 2014
config committing adaboost and training/testing code Sep 24, 2014
features committing adaboost and training/testing code Sep 24, 2014
images/geese
tester committing adaboost and training/testing code Sep 24, 2014
trainer committing adaboost and training/testing code Sep 24, 2014
utils committing adaboost and training/testing code Sep 24, 2014
.gitignore Initial commit Sep 24, 2014
CMakeLists.txt committing adaboost and training/testing code Sep 24, 2014
LICENSE Initial commit Sep 24, 2014
README.md
runadaboost.cpp committing adaboost and training/testing code Sep 24, 2014

README.md

camera-adaboost

Train a model on a set of camera images (or any images, really) to discern what is "interesting" about the images, then use the model to classify incoming images as "interesting" or "uninteresting". This was originally intended for combing through a whole bunch of webcam footage to check if someone was out and about when you're not home, though it can be used for a much wider set of things.

This project is NOT in active development -- that ended in like 2009ish. I dug this up to post here by request. It contains a full implementation of the adaboost algorithm (which you can also find here: https://github.com/astromme/AdaBoost), and a GUI written in Qt to help train the model.

The adaboost algorithm requires Boost (http://www.boost.org/), and the GUI obviously requires Qt (http://qt-project.org/).

In general, the workflow is as follows:

  1. Get some images (see images directory).
  2. Train a classifier (see trainer directory).
  3. Select a pair of images. This pair will be one training example.
  4. Decide whether the images are sufficiently "different" (if there are enough changes between the two, indicating some event has occurred).
  5. If the images are different, label it as a "positive" example, otherwise label it as "negative".
  6. Repeat until you have a whole bunch of training examples. At least 100, probably.
  7. Test the classifier on new data (see tester directory).
  8. Load up some never-before-seen data, and use the tester UI to see how your classifier runs.
  9. If the classifier isn't accurate enough, train more examples.