This forum is disabled, please visit https://forum.opencv.org

1 | initial version |

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:

2 | No.2 Revision |

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:

3 | No.3 Revision |

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:

4 | No.4 Revision |

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:

Copyright OpenCV foundation, 2012-2018. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.