在参照了很多其他的博客,成功训练了自己的数据集,这里记录一下防止忘记便于以后总结学习。
VOC数据集准备
准备数据
首先准备好自己的数据集,最好固定格式,此处以VOC为例,采用jpg格式的图像,在名字上最好使用像VOC一样类似I000001.jpg、I000002.jpg这样。可参照下面示例代码,在Opencv中使用。
// Getfile.cpp : 重命名文件夹内的所有图像并写入txt,同时也可通过重写图像修改格式
//配用Opencv2.4.10
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include<io.h>
#include <opencv2\opencv.hpp>
#define IMGNUM 20000 //图片所在文件夹中图片的最大数量
char img_files[IMGNUM][1000];
using namespace cv;
int getFiles(char *path)
{
int num_of_img = 0;
long hFile = 0;
struct _finddata_t fileinfo;
char p[700] = { 0 };
strcpy(p, path);
strcat(p, "\\*");
if ((hFile = _findfirst(p, &fileinfo)) != -1)
{
do
{
if ((fileinfo.attrib & _A_SUBDIR))
{
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
continue;
}
else
{
strcpy(img_files[num_of_img], path);
strcat(img_files[num_of_img], "\\");
strcat(img_files[num_of_img++], fileinfo.name);
}
} while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
return num_of_img;
}
int main()
{
char path[] = "SrcImage"; //source image
char dstpath[] = "DstImage"; //destination image
int num = getFiles(path);
int i;
char order[1000];
FILE *fp = fopen("train.txt", "w");
for (i =