I'm trying to research about face recognition. But not just "recognizing that there's a face feature on the video" but also "recognizing whose face it is", on iOS Swift language. So far, the resource I get on the internet about this is only detecting, not truly face recognition (which I suspect there must be some kind of machine learning training and database to store all those training results for future recognition), like this tutorial using Vision framework, or this tutorial about face features, but none of them has machine learning. This tutorial talks about machine learning framework, OpenML, but no details whatsoever.
I did find a promising article about face recognition using Local Binary Patterns Histograms, even though the recognition part is very short, but it didn't say anything about where the data model stored, or whether I can send the "trained data" to the server to be integrated with the training data already in the server. And then there also that rumor of OpenCV being native on C++, and only can be implemented in Objective C++ and not on Swift?
To have a centralized face recognition database (by which a device train to recognize a face, upload the result to the server, and then another device can use that information to recognize the face earlier), I suspect the training is done on the client side (iOS), but the recognition is done on the server side (the device detect a face, upload a cropped image of that face to the server, and the server do a facial recognition on that image). Is that correct? Or is it more possible and practical to download all the server training data to the device, and then use that to do face recognition on the client? Or all the training and recognizing are done on the server?
This all is only in my head, but I actually don't know where to start looking for for my use case. I feel like the one that has to train and store model and do all the recognition is the server, where the client just only sent the detected face.