_taskManager = make_unique<TaskManager>();
+ _taskManager->requestNewNode(NodeType::STARTPOINT, "startpoint");
+
auto face_detection_node = _taskManager->requestNewNode(NodeType::INFERENCE, "face_detection");
dynamic_cast<InferenceNode *>(face_detection_node)->setInferenceTask(factory->createFaceDetection());
- auto bridge_node = _taskManager->requestNewNode(NodeType::BRIDGE, "bridge_node");
- bridge_node->addDependency(face_detection_node);
- dynamic_cast<BridgeNode *>(bridge_node)->setCb(BridgeNodeCallback);
-
- auto face_recognition_node = _taskManager->requestNewNode(NodeType::INFERENCE, "face_recognition_node");
- dynamic_cast<InferenceNode *>(face_recognition_node)->setInferenceTask(factory->createFaceRecognition());
- face_recognition_node->addDependency(bridge_node);
-
- auto endpoint_node = _taskManager->requestNewNode(NodeType::ENDPOINT, "endpoint");
- endpoint_node->addDependency(face_detection_node);
- endpoint_node->addDependency(face_recognition_node);
+ _taskManager->requestNewNode(NodeType::ENDPOINT, "endpoint");
_postprocessor = make_unique<Postprocessor>();
_preprocessor = make_unique<ImagePreprocessor>();
// Use Clahe filter to enhance image contrast.
_preprocessor->setFilter(make_unique<ClaheFilter>());
+
+ _taskManager->resetPipeline();
+
+ _taskManager->addEdge("startpoint", "face_detection");
+ _taskManager->addEdge("face_detection", "endpoint");
}
void AutoZoom::configure(InputConfigBase &config)
if (output->_is_empty)
continue;
- if (output->_type != ResultType::OBJECT_DETECTION && output->_type != ResultType::FACE_DETECTION &&
- output->_type != ResultType::FACE_RECOGNITION)
+ if (output->_type != ResultType::OBJECT_DETECTION && output->_type != ResultType::FACE_DETECTION)
throw InvalidParameter("Invalid result type");
- if (output->_type == ResultType::FACE_RECOGNITION) {
- auto &frResult = dynamic_cast<FrResultType &>(*output);
- SINGLEO_LOGD("label : %s", frResult._label.c_str());
- continue;
- }
-
if (output->_type == ResultType::OBJECT_DETECTION || output->_type == ResultType::FACE_DETECTION) {
vector<Rect> &rects = dynamic_cast<FdResultType &>(*output)._rects;