Open lendra-sejasa opened 1 month ago
I used "sharedPreferences" to store face data. Please refer to it.
/** Store face data **/
private String floatArrayToString(float[] array) {
StringBuilder sb = new StringBuilder();
for (float value : array) {
sb.append(value).append(",");
}
return sb.toString();
}
private float[] stringToFloatArray(String s) {
String[] tokens = s.split(",");
float[] array = new float[tokens.length];
for (int i = 0; i < tokens.length; i++) {
array[i] = Float.parseFloat(tokens[i]);
}
return array;
}
// save
private void saveRegisteredFaces() {
SharedPreferences sharedPreferences = getSharedPreferences("FaceData", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
for (Map.Entry<String, SimilarityClassifier.Recognition> entry : registered.entrySet()) {
String name = entry.getKey();
float[] embeddings = ((float[][]) entry.getValue().getExtra())[0];
editor.putString(name, floatArrayToString(embeddings));
}
editor.apply();
}
// load
private void loadRegisteredFaces() {
SharedPreferences sharedPreferences = getSharedPreferences("FaceData", MODE_PRIVATE);
Map<String, ?> allEntries = sharedPreferences.getAll();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
String name = entry.getKey();
float[] embeddings = stringToFloatArray((String) entry.getValue());
SimilarityClassifier.Recognition result = new SimilarityClassifier.Recognition("0", "", -1f);
result.setExtra(new float[][]{embeddings});
registered.put(name, result);
}
}
Hi,
How to store the data of face recognition locally or remotely?
Thanks