我几乎在互联网上到处寻找,但我找不到以下函数的工作和输出。特别是他们在YOLO算法中所做的事情。
getLayerNames()
getUnconnectedOutLayers()代码如下:
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()] 发布于 2019-09-22 11:10:28
如图所示,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()

REFERENCE FOR THE IMAGE (外部链接)
发布于 2020-03-15 23:17:58
我的理解是:
net.getLayerNames():它提供网络中使用的所有层的列表。就像我目前正在使用yolov3一样。它给了我一个254层的列表。
net.getUnconnectedOutLayers():它提供来自net.getLayerNames()的列表中的最终层数。我认为它给出了未使用的层数(最后一层)。对于yolov3,它给了我三个数字,200,227,254。为了获得相应的索引,我们需要执行layer_names[i - 1]。希望这些能有所帮助。
https://stackoverflow.com/questions/57706412
复制相似问题