darknet. py
def get_test_input() #对测试图片进行预处理(图片的大小,GBR通道改成RGB通道)
def parse_cfg(cfgfile) #对cfg配置文件进行处理-->输入yolov3.cfg配置文件,返回列表对象,其中每一个元素为一个字典类型对应于一个要建立的神经网络模块(层)
class EmptyLayer(nn.Module):
class DetectionLayer(nn.Module): #yolo 检测层的具体实现(重点), 在特征图上使用锚点预测目标区域和类别, 功能函数在predict_transform中,采用迁移学习训练自己的网络时需要更改这个函数
def create_modules(blocks): #利用parse_cfg(cfgfile)返回的字典内容,创建网络层级
#CNN
class Darknet(nn.Module):
def __init__(self, cfgfile):
super(Darknet, self).__init__()
self.blocks = parse_cfg(cfgfile) #调用parse_cfg函数
self.net_info, self.module_list = create_modules(self.blocks) #调用create_modules函数
def forward(self, x, CUDA) #前向传播
def load_weights(self, weightfile): #导入预训练的网络权重参数yolov3-spp.weights
util. py
def bbox_iou(box1, box2) #返回预测框与真实框的IoU value=