mv_machine_learning: drop FaceRecognitionRegisterInput structure
authorInki Dae <inki.dae@samsung.com>
Tue, 26 Sep 2023 07:32:37 +0000 (16:32 +0900)
committerKwanghoon Son <k.son@samsung.com>
Wed, 25 Oct 2023 01:54:03 +0000 (10:54 +0900)
[Issue type] : code cleanup

Drop FaceRecognitionRegisterInput structure. We can use inputs and labels
members of FaceRecognitionInput structure for register instead of
FaceRecognitionRegisterInput one.

Change-Id: I62fdfad7dee351baf5b4e64af59780ac2cce9165
Reported-by: Vibhav Aggarwal <v.aggarwal@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
mv_machine_learning/face_recognition/include/face_recognition.h
mv_machine_learning/face_recognition/src/face_recognition_adapter.cpp
mv_machine_learning/face_recognition/src/mv_face_recognition.cpp

index b09e677..c24410e 100644 (file)
@@ -41,14 +41,8 @@ enum class WorkingStatus { NONE, INITIALIZED, REGISTERED, INFERENCED, DELETED };
 enum class RequestMode { REGISTER, INFERENCE, DELETE };
 }
 
-struct FaceRecognitionRegisterInput {
-       std::vector<float> data;
-       std::string label;
-};
-
 struct FaceRecognitionInput {
        face_recognition::RequestMode mode;
-       std::vector<FaceRecognitionRegisterInput> register_src;
        std::vector<std::vector<float> > inputs;
        std::vector<std::string> labels;
 };
index 5464c66..57516ea 100644 (file)
@@ -111,8 +111,11 @@ template<typename T, typename V> void FaceRecognitionAdapter<T, V>::setInput(T &
 template<typename T, typename V> void FaceRecognitionAdapter<T, V>::perform()
 {
        if (_source.mode == RequestMode::REGISTER) {
-               for (auto &s : _source.register_src) {
-                       int ret = _face_recognition->registerNewFace(s.data, s.label);
+               if (_source.inputs.size() != _source.labels.size())
+                       throw InvalidParameter("The number of inputs and labels are not matched.");
+
+               for (size_t idx = 0; idx < _source.inputs.size(); ++idx) {
+                       int ret = _face_recognition->registerNewFace(_source.inputs[idx], _source.labels[idx]);
                        if (ret != MEDIA_VISION_ERROR_NONE)
                                throw InvalidOperation("Fail to register new face.");
                }
index 7ce9642..bac2677 100644 (file)
@@ -182,10 +182,10 @@ int mv_face_recognition_register(mv_face_recognition_h handle, mv_source_h sourc
 
                FacenetOutput &facenet_output = facenet_task->getOutput();
                FaceRecognitionInput face_recognition_input = { .mode = RequestMode::REGISTER };
-               FaceRecognitionRegisterInput facenet_to_face_reg_input = { facenet_output.outputs[0], string(label) };
 
-               face_recognition_input.register_src.clear();
-               face_recognition_input.register_src.push_back(facenet_to_face_reg_input);
+               face_recognition_input.inputs.push_back(facenet_output.outputs[0]);
+               face_recognition_input.labels.push_back(label);
+
                face_recognition_task->setInput(face_recognition_input);
                face_recognition_task->perform();
        } catch (const BaseException &e) {
@@ -215,7 +215,7 @@ int mv_face_recognition_unregister(mv_face_recognition_h handle, const char *lab
                FaceRecognitionInput input = { RequestMode::DELETE };
 
                input.labels.clear();
-               input.labels.push_back(string(label));
+               input.labels.push_back(label);
                face_recognition_task->setInput(input);
                face_recognition_task->perform();
        } catch (const BaseException &e) {