Hi, complete DNN newbie here. I'm loading opencv_face_detector_uint8.pb with its associated opencv_face_detector.pbtxt file. When I omit the second argument to the readNet function, the unconnected output layer vector is different. Why?

Net net = dnn::experimental_dnn_v5::readNetFromTensorflow("opencv_face_detector_uint8.pb", "opencv_face_detector.pbtxt");

vector<int> vi = net.getUnconnectedOutLayers();
vector<string> node_names;
for(int i : vi)
node_names.push_back(net.getLayer(i)->name);
for(auto& s : node_names)
cout << s << " ";
/* outputs  "detection_out"*/

...
/*outputs: mbox_loc mbox_conf_flatten, i.e. two nodes*/


A side question is: why can't I call

net.forward(node_name); /*node_name is a string containing an output node name*/


on the two nodes I get in the second example?

I hope someone can clarify, thanks.

edit retag close merge delete