getLayerNames() 和 getUnconnecteddOutLayers() 函数的工作和输出是什么?

5 python opencv yolo

我几乎搜索了互联网上的每个地方,但找不到以下功能的工作和输出。特别是他们在YOLO算法中所做的。

getLayerNames()
getUnconnectedOutLayers()
Run Code Online (Sandbox Code Playgroud)

代码如下:

import cv2 
import numpy as np 
import time 
#Loading Yolo 
net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") 
classes = [] 
with open("coco.names", "r") as f: 
  classes = [line.strip() for line in f.readlines()] 
layer_names = net.getLayerNames() 
outputlayers=[layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()] 
Run Code Online (Sandbox Code Playgroud)

Fel*_*ipe 5

如图所示,YOLOv3 有 3 个输出层(82、94 和 106)。

getLayerNames():获取网络所有层的名称。

getUnconnectedOutLayers():获取输出层的索引。

这两个函数用于获取输出层 (82,94,106)。为简单起见,我更喜欢使用以下代码:

import cv2 
import numpy as np 
import time 
#Loading Yolo 
net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") 
classes = [] 
with open("coco.names", "r") as f: 
  classes = [line.strip() for line in f.readlines()] 
outputlayers = net.getUnconnectedOutLayersNames()  
Run Code Online (Sandbox Code Playgroud)

YOLOv3 架构

图像参考(外部链接)