Skip to content

Commit 8cdeb1a

Browse files
committed
Server: use JSON file for reference faces
1 parent e30bb48 commit 8cdeb1a

File tree

3 files changed

+26
-13
lines changed

3 files changed

+26
-13
lines changed

server/config.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Enable=1
1313
Location=log.txt
1414

1515
[DLIB]
16-
ReferenceFile=face.txt
16+
ReferenceFile=faces.json
1717
FaceLandmarkModelFile=shape_predictor_5_face_landmarks.dat
1818
FaceRecognitionModelFile=dlib_face_recognition_resnet_model_v1.dat
1919
ImageNetClassifierFile=resnet34_1000_imagenet_classifier.dnn

server/source/DLIBWorker/DLIBWorker.cpp

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
#include <QPixmap>
2424
#include <QSettings>
2525
#include <QFile>
26+
#include <QJsonDocument>
27+
#include <QJsonArray>
28+
#include <QJsonObject>
2629
#include <vector>
2730

2831
#include <Client/Client.h>
@@ -63,22 +66,32 @@ DLIBWorker::DLIBWorker(class QSettings* config, const Settings *settings)
6366
}
6467
else
6568
{
66-
while(!refFile.atEnd())
69+
QByteArray data = refFile.readAll();
70+
71+
QJsonDocument doc(QJsonDocument::fromJson(data));
72+
73+
for (auto&& i : doc.array())
6774
{
68-
QString line = refFile.readLine();
69-
QStringList lineSplit = line.split(":");
70-
if (!lineSplit[1].contains(","))
71-
{
72-
m_refPhotoFileList.push_back(qMakePair(lineSplit[0].trimmed(), lineSplit[1].trimmed()));
73-
}
74-
else
75+
if (!i.isObject())
76+
continue;
77+
78+
QJsonObject obj = i.toObject();
79+
80+
QString tag = obj.value("tag").toString();
81+
82+
auto&& k = obj.value("photos");
83+
84+
if (k.isArray())
7585
{
76-
QStringList lineSplit2 = lineSplit[1].split(",");
77-
for (const auto& it : lineSplit2)
86+
for (auto&& j : k.toArray())
7887
{
79-
m_refPhotoFileList.push_back(qMakePair(lineSplit[0].trimmed(), it.trimmed()));
88+
m_refPhotoFileList.push_back(qMakePair(tag, j.toString()));
8089
}
8190
}
91+
else if (k.isString())
92+
{
93+
m_refPhotoFileList.push_back(qMakePair(tag, k.toString()));
94+
}
8295
}
8396
}
8497
}

server/source/config.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
#define CONFIG_DLIB_FACE_PADDING "FacePadding"
5757
#define CONFIG_DLIB_DEFAULT_FACE_PADDING 0.25
5858
#define CONFIG_DLIB_REFERENCEFACEFILE "ReferenceFile"
59-
#define CONFIG_DLIB_DEFAULT_REFERENCEFACEFILE "face.txt"
59+
#define CONFIG_DLIB_DEFAULT_REFERENCEFACEFILE "faces.json"
6060
#define CONFIG_DLIB_IMAGENETCLASSIFIERFILE "ImageNetClassifierFile"
6161
#define CONFIG_DLIB_DEFAULT_IMAGENETCLASSIFIERFILE "resnet34_1000_imagenet_classifier.dnn"
6262
#define CONFIG_DLIB_NUMCROPS "NumberOfCrops"

0 commit comments

Comments
 (0)