Ask Your Question

Revision history [back]

Neither a classic Principal Component Analysis (PCA) nor a classic Linear Discriminant Analysis (LDA) can be used for online learning. You can easily verify this by having a look at the mathematical details outlined at:

Local Binary Patterns Histogram (LBPH) instead don't build a model explicitly, so this FaceRecognizer can be updated with cv::FaceRecognizer::update and used for online learning as such. However, there are also iterative versions of a PCA and LDA you could try implementing. See:

  • Haitao Zhao, Pong Chi Yuen and James T. Kwok. "Incremental Principal Component Analysis and its Application for Face Recognition" in IEEE Transactions on Systems, Man and Cybernetics (Part B), 36(4):873-886, Aug 2006. [PDF Online Available here]

If you want to experiment real quick with it, you could try to start with a Python implementation to interface with the OpenCV Python binding, for example:

I would suggest making benchmarks, to see what the performance of an Incremental PCA really is. If there's enough interest I can write a small script to evaluate it. I don't want to advertise my own answers, but probably this post is helpful in order to analyze a classifiers performance:

Neither a classic Principal Component Analysis (PCA) nor a classic Linear Discriminant Analysis (LDA) can be used for online learning. You can easily verify this by having a look at the mathematical details outlined at:

Local Binary Patterns Histogram (LBPH) instead don't build a model explicitly, so this FaceRecognizer can be updated with cv::FaceRecognizer::update and used for online learning as such. However, there are also iterative versions of a PCA and LDA you could try implementing. See:

  • Haitao Zhao, Pong Chi Yuen and James T. Kwok. "Incremental Principal Component Analysis and its Application for Face Recognition" in IEEE Transactions on Systems, Man and Cybernetics (Part B), 36(4):873-886, Aug 2006. [PDF Online Available here]

If you want to experiment real quick with it, you could try to start with a Python implementation to interface with the OpenCV Python binding, for example:

I would suggest making benchmarks, validating it on your datasets, to see what the performance of an Incremental PCA really is. If there's enough interest I can write a small script to evaluate it. I don't want to advertise my own answers, but probably this post is helpful in order to analyze a classifiers performance:

Neither a classic Principal Component Analysis (PCA) nor a classic Linear Discriminant Analysis (LDA) can be used for online learning. You can easily verify this by having a look at the mathematical details outlined at:

Local Binary Patterns Histogram (LBPH) instead don't build a model explicitly, so this FaceRecognizer can be updated with cv::FaceRecognizer::update and used for online learning as such. However, there are also iterative versions of a PCA and LDA you could try implementing. See:

  • Haitao Zhao, Pong Chi Yuen and James T. Kwok. "Incremental Principal Component Analysis and its Application for Face Recognition" in IEEE Transactions on Systems, Man and Cybernetics (Part B), 36(4):873-886, Aug 2006. [PDF Online Available here]

If you want to experiment with the iterative versions real quick with it, quick, you could try to start with a an available Python implementation to and interface with the OpenCV Python binding, for example:binding. An implementation of the Iterative PCA is given at:

I would strongly suggest validating it on your datasets, to see what the performance of an Incremental PCA really is. If there's enough interest I can write a small script to evaluate it. I don't want to advertise my own answers, but probably this post is helpful in order to analyze a classifiers performance:

Neither a classic Principal Component Analysis (PCA) nor a classic Linear Discriminant Analysis (LDA) can be used for online learning. You can easily verify this by having a look at the mathematical details outlined at:

Local Binary Patterns Histogram (LBPH) instead don't build a model explicitly, so this FaceRecognizer can be updated with cv::FaceRecognizer::update and used for online learning as such. However, there are also iterative incremental versions of a PCA and LDA you could try implementing. See:

  • Haitao Zhao, Pong Chi Yuen and James T. Kwok. "Incremental Principal Component Analysis and its Application for Face Recognition" in IEEE Transactions on Systems, Man and Cybernetics (Part B), 36(4):873-886, Aug 2006. [PDF Online Available here]

If you want to experiment with the iterative incremental versions real quick, you could try to start with an available Python implementation and interface with the OpenCV Python binding. An implementation of the Iterative Incremental PCA is given at:

I would strongly suggest validating it on your datasets, to see what the performance of an Incremental PCA really is. If there's enough interest I can write a small script to evaluate it. I don't want to advertise my own answers, but probably this post is helpful in order to analyze a classifiers performance: