Python+H5py实现将SVHN样本库转换为FasterRcnn训练样本
2017-12-19 11:40
381 查看
一、上代码
二、效果
import os import h5py svhnPath = 'D:\\Project\\AIProject\\SVHNClassifier\\data' def loadSvhn(path, subdir): print('process folder : %s' % subdir) filenames = [] dir = os.path.join(svhnPath, subdir) for filename in os.listdir(dir): filenameParts = os.path.splitext(filename) if filenameParts[1] != '.png': continue filenames.append(filenameParts) svhnMat = h5py.File(name=os.path.join(dir, 'digitStruct.mat'), mode='r') datasets = [] filecounts = len(filenames) for idx, file in enumerate(filenames): boxes = {} filenameNum = file[0] item = svhnMat['digitStruct']['bbox'][int(filenameNum) - 1].item() for key in ['label', 'left', 'top', 'width', 'height']: attr = svhnMat[item][key] values = [svhnMat[attr.value[i].item()].value[0][0] for i in range(len(attr))] if len(attr) > 1 else [attr.value[0][0]] boxes[key] = values datasets.append({'dir': dir, 'file': file, 'boxes': boxes}) if idx % 10 == 0: print('-- loading %d / %d' % (idx, filecounts)) return datasets if __name__ == '__main__': for sub_dir in ['extra','train']: data_sets = loadSvhn(svhnPath, sub_dir) # data_sets = [{'dir': './', 'file': ('01', '.png'), # 'boxes': {'label': ['0'], 'left': [12], 'top': [10], 'width': [20], 'height': [30]}}] print('processing locations to txt file ...') for ds in data_sets: txt_file = os.path.join(ds['dir'], ds['file'][0] + '.txt') boxes = ds['boxes'] labels = boxes['label'] lines = [] with open(txt_file, mode='w', encoding='utf-8') as fs: for i in range(len(labels)): label = boxes['label'][i] left = boxes['left'][i] top = boxes['top'][i] width = boxes['width'][i] height = boxes['height'][i] lines.append('%s,%s,%s,%s,%s' % (int(label), left, top, width, height)) fs.write('\n'.join(lines)) print('done.')
二、效果
相关文章推荐
- Python+OpenCV实现FasterRcnn样本查看器
- py-faster-rcnn + ZF 实现自己的数据训练与检测(一)
- py-faster-rcnn + ZF 实现自己的数据训练与检测(二)
- py-faster-rcnn + ZF 实现自己的数据训练与检测(一)
- py-faster-rcnn + ZF 实现自己的数据训练与检测(二)
- py-faster-rcnn + ZF 实现自己的数据训练与检测(二)
- faster rcnn 训练自己的数据
- 用自己的数据(kitti)训练测试faster rcnn(一)
- faster-rcnn tensorflow windows python 训练自己数据
- py-faster-rcnn+CPU训练自己的数据集(二)
- 文章标题 faster rcnn-pytorch版训练自己的数据
- Faster R-CNN训练问题解决
- windows faster r-cnn制作自己的数据集并训练
- Faster RCNN训练出现问题:smooth_L1_loss_layer.cpp:28] Check failed: bottom[0]->channels() == bottom[1]->cha
- 使用faster rcnn训练自己的数据(py-faster-rcnn )
- 【深度学习-CNN】训练样本不平衡对训练结果的影响
- Faster RCNN训练出现问题:ValueError: operands could not be broadcast together with shapes
- Faster-RCNN/SSD/训练将数据集做成VOC2007格式
- Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通过区域提议网络实现实时)
- Faster RCNN 在Linux+CPU环境下训练自己的数据集过程以及训练遇到的问题