开始前准备:强烈推荐使用 anaconda 来做 python 的环境管理工具,它里面自带了很多科学计算的类库,可以避免很多不必要的问题
显卡:我的显卡是 gtx960 最多只能训练10批次的数据,再多了显存就不足了,唉。。
下载图片
百度,谷歌都行,搜索一些图片,下载下来,放在 images 文件夹里,我这里用猫跟狗的图片来训练,我下载了40张图,20张猫,20张狗的图片
标记图片
用法见readme里的介绍,标记好之后,图片文件夹里会生成跟图片数量相等的 xml 文件
然后在 images 文件夹里新建两个文件夹 train test 训练跟测试比例按照 4:1 来分一下刚才标记的图片,这个比例一般是 10:1 的比例,也就是10张训练图,1张测试的,我这图太少,就4:1来分了
注意:图片分开之后,原图还要在images文件夹里留着,也就是说,分图片的要用复制,不能用剪切,否则后面生成tfrecord文件的时候会报错
生成CSV
这一步将上一步标记图片生成的 xml 收集起来生成一个 csv 文件
打开 raccoon_dataset 项目,将里面的 xml_to_csv.py 文件复制出来,打开修改里面的内容如下:
这时候可以再创建一个文件夹 cat_dog 将 images 文件夹复制进去,然后将 xml_to_csv.py 保存在 cat_dog 文件夹里,再在 cat_dog 文件夹里创建一个 data 的文件夹用来放生成的 csv 文件
# 将下面这部分
def main():
image_path = os.path.join(os.getcwd(), 'annotations')
xml_df = xml_to_csv(image_path)
xml_df.to_csv('raccoon_labels.csv', index=None)
print('Successfully converted xml to csv.')
# 修改成下面这样
def main():
for directory in ['train', 'test']:
image_path = os.path.join(os.getcwd(), 'images/{}'.format(directory))
xml_df = xml_to_csv(image_path)
xml_df.to_csv('data/{}_labels.csv'.format(directory), index=None)
print('Successfully converted xml to csv.')
开启一个终端,你可以用cm