• darknet(yolov2)移植到caffe框架


    yolov2到caffe的移植主要分两个步骤:
    一、cfg,weights转换为prototxt,caffemodel
    1.下载源码:
    git clone https://github.com/marvis/pytorch-caffe-darknet-convert.git

    2.安装pytorch,使用conda指令:(需要有torch模块)
    conda install pytorch torchvision cuda80 -c soumith [这里cuda换成自己对应的版本]

    3.cd pytorch-caffe-darknet-conver目录
    输入命令:python darknet2caffe cfg/*.cfg cfg/*.weights cfg/*.prototxt cfg/*.caffemodel
    注意:这里如果cfg文件中存在route层,则需要修改其对应部分。(这里只针对route层存在2个参数的情况)
    [
            elif block['type'] == 'route':
                #pdb.set_trace()
                prev_layer_id1 = layer_id + int(block['layers'][:2])
                prev_layer_id2 = layer_id + int(block['layers'][-2:])
                bottom1 = topnames[prev_layer_id1]
                bottom2 = topnames[prev_layer_id2]
                route_layer = OrderedDict()
                route_layer['bottom'] = [bottom1, bottom2]
                if block.has_key('name'):
                    route_layer['top'] = block['name']
                    route_layer['name'] = block['name']
                else:
                    route_layer['top'] = 'layer%d-route' % layer_id
                    route_layer['name'] = 'layer%d-route' % layer_id
                route_layer['type'] = 'Concat'
                layers.append(route_layer)
                bottom = route_layer['top']
                topnames[layer_id] = bottom
                layer_id = layer_id + 1
    ]

    如此便得到相应的prototxt文件和caffemodel文件

    二、caffe实现darknet的训练
    1.下载caffe-yolov2源码:
    git clone https://github.com/gklz1982/caffe-yolov2.git

    2.对caffe-yolov2进行编译,编译方式同编译caffe一致

    3.将自己的VOC格式数据拷贝至./data/yolo/VOCdevkit下
    (1) python get_list.py -- 获得相应的trainval.txt和test_2007.txt
    (2) sh convert.sh -- 生成需要训练的lmdb格式数据(需要修改convert.sh的内部参数)
    (3) 修改label_map.txt文件

    4.修改prototxt等相关文件,开始训练
    (1) cd ./examples/yolo
    (2) mkdir dense-yolo_v1
    (3) 将根据cfg和weights生成的prototxt以及caffemodel文件拷贝至dense-yolo_v1文件夹下
    (4) 对照../darknet_v3/gnet_region_train_darknet_v3.prototxt修改自己的prototxt,一个是修改data层,另外一个是region层。
    (5) 同理对solver文件等。
    (6) 将../darknet_v3/train_darknet_v3.sh拷贝至dense-yolo_v1文件夹下,修改相关参数
    (7) sh train_darknet.sh
    (8) 开始训练

    具体结果还在等待。。。

  • 相关阅读:
    【0711作业】使用封装实现企鹅
    【0711作业】模拟选民投票
    【0709作业】判断三个数是否能组成三角形以及组成的三角形类型
    【0709作业】简易的购房商贷月供计算器
    【0708】(OOP)用户密码管理
    数据库基础
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
  • 原文地址:https://www.cnblogs.com/yyxf1413/p/9469111.html
Copyright © 2020-2023  润新知