Python 了解函数forward()和getUnconnectedOutLayers()的功能 ln=net.getLayerNames() 打印(项次) ln=[ln[i[0]-1]表示net.getUnconnectedOutLayers()中的i 打印(项次) blob=cv2.dnn.blobFromImage(图像,比例因子=1/255.0,大小=(416416),swapRB=True,crop=False) net.setInput(blob) 开始=时间。时间() layerOutputs=净远期(ln) end=time.time() 打印(“[INFO]Yolo花费了{.6f}秒”。格式(结束-开始)) 框=[] 信任=[] ClassID=[] 对于LayerOutput中的输出: 对于输出中的检测: 分数=检测[5:] classID=np.argmax(分数) 信心=分数[classID] 如果信心>参数[“信心”]: box=检测[0:4]*np.数组([W,H,W,H]) (中心X、中心Y、宽度、高度)=box.aType(“int”) x=int(中心x-(宽度/2)) y=int(中心-(高度/2)) 框。追加([x,y,int(宽度),int(高度)]) 信任。附加(浮动(信任)) 追加(classID)
我对上述代码有两个基本问题:Python 了解函数forward()和getUnconnectedOutLayers()的功能 ln=net.getLayerNames() 打印(项次) ln=[ln[i[0]-1]表示net.getUnconnectedOutLayers()中的i 打印(项次) blob=cv2.dnn.blobFromImage(图像,比例因子=1/255.0,大小=(416416),swapRB=True,crop=False) net.setInput(blob) 开始=时间。时间() layerOutputs=净远期(ln) end=time.time() 打印(“[INFO]Yolo花费了{.6f}秒”。格式(结束-开始)) 框=[] 信任=[] ClassID=[] 对于LayerOutput中的输出: 对于输出中的检测: 分数=检测[5:] classID=np.argmax(分数) 信心=分数[classID] 如果信心>参数[“信心”]: box=检测[0:4]*np.数组([W,H,W,H]) (中心X、中心Y、宽度、高度)=box.aType(“int”) x=int(中心x-(宽度/2)) y=int(中心-(高度/2)) 框。追加([x,y,int(宽度),int(高度)]) 信任。附加(浮动(信任)) 追加(classID),python,opencv,Python,Opencv,我对上述代码有两个基本问题: 我知道使用了函数getUnconnectedOutLayers() 获取未连接输出层的索引以查找 输出函数forward()必须通过网络运行的距离。我 不明白为什么这些输出层被表示为未连接。 此外,这是否意味着在某些情况下,我们不会在整个网络中运行数据?若然,原因为何? 关于使用getUnconnectedOutLayers()函数的那一行,另一个困扰我的问题是它的ln[i[0]-1部分。我认为这是一种反向遍历ln数组的方法,但我并不完全理解它 在文档中,函数for
getUnconnectedOutLayers()
获取未连接输出层的索引以查找
输出函数forward()
必须通过网络运行的距离。我
不明白为什么这些输出层被表示为未连接。
此外,这是否意味着在某些情况下,我们不会在整个网络中运行数据?若然,原因为何?
关于使用getUnconnectedOutLayers()
函数的那一行,另一个困扰我的问题是它的ln[i[0]-1
部分。我认为这是一种反向遍历ln
数组的方法,但我并不完全理解它forward()
返回指定层的第一个输出的blob。我假设它与我们从函数blobFromImage()
中得到的blob相同,即它也是4D。
在代码的后面,说明了以下内容:分数
=检测[5::
。因为我假设它是一个4D数组,所以我希望得到以下结果:分数=检测[5::]
。这是两个维度
由于两个for循环,切片中出现“下降”net.getUnconnectedOutLayers()给出了层的位置。输出是一个形状为(1,)的数据数组。因此,为了得到整数,我们使用ln[0]。为了得到索引,我们从位置中减去1