I have made the first level changes to migrate from process execution for every detect faces call, to one time execution of facedetect process and then communicate over DBus.
The DBus interface XML is at:
I have implemented DetectFaces and Terminate methods. The next steps are:
1. Extract the faces detected in photos and cache them (downsizing if needed) - maybe in $HOME/.cache/shotwell
2. Run face training on the labelled faces, with a minimum number of faces per label (maybe 10)
3. Attempt to automatically recognise and label faces in photos after training