为猪脸识别而进行自己数据集的构建、训练「建议收藏」

为猪脸识别而进行自己数据集的构建、训练「建议收藏」在实际过程中走了弯路,特地进行说明记录,以备今后参考。思路是先构建VOC2007格式的猪脸数据集,在转换成tf格式,然后利用tf的objectdetectionapi进行训练。原因是把2种构建方式都熟悉一遍,并把所有流程过一遍。1、构架VOC2007格式的猪脸数据集前提:在某个目录下建立如下关系的子目录。                               

大家好,又见面了,我是你们的朋友全栈君。



在实际过程中走了弯路,特地进行说明记录,以备今后参考。

思路是先构建VOC2007格式的猪脸数据集,在转换成tf格式,然后利用tf的objectdetectionapi进行训练。原因是把2种构建方式都熟悉一遍,并把所有流程过一遍。

1、构架VOC2007格式的猪脸数据集

前提:在某个目录下建立如下关系的子目录。

                                    —— Annotations

                            —— ImageSets

                                              —— Main

                                   —— JPEGImages

 

第一步:准备自己需要的图片,最好是jpg格式。如若不是则需要转换成jpg格式。

因为很多图片都是从网上找的,格式、大小都不一样,为了后续训练需要最好统一下大小,并把格式统一转换成jpg格式。 

图片的数量,一般来说最好一千张以上。为了后续训练出好的效果,最好一万张以上。

 


第二步:图片的重命名,因为VOC2007格式必须为JPG格式,并且图片是统一的六位数字,从000001开始。那我们也需要将所有训练图片重命名为此。


         重命名后所有图片就可以拷贝到JPEGImages目录下。

 

第三步:进行目标物体的标注。推荐用labelImg,因为它可直接生成符合VOC2007格式的xml文件。

                   主要是体力活。

                   生成的所有xml文件就可以拷贝到Annotations目录下。

 

第四步:数据集的分割。

                   在实际训练过程中,需要四个文件,分别为test.txt是测试集,train.txt是训练集,val.txt是验证集,trainval.txt是训练和验证集。每个文件为对于图片的名字。在VOC2007中,trainval大概是整个数据集的50%test也大概是整个数据集的50%train大概是trainval50%val大概是trainval50%

                   参照python源码:split-datasets.py

                   生成的四个txt文件就可以拷贝到Main目录下。

 

第五步:如果上述各步骤中没有做拷贝的动作则在本步骤把相应的文件拷贝到对应的目录下。以符合VOC2007格式的要求。


                                   —— Annotations xml文件全部放到该文件夹里

                            —— ImageSets

                                            —— Main 其有四个txt文件,test.txt是测试集,train.txt是训练集,val.txt是验证集,trainval.txt是训练和验证集。Txt里的内容是即图片名字(无后缀)。

                                     —— JPEGImages 所有的训练图片放到该文件夹里


 

第六步:把上述目录及其文件都拷贝到pigfaces/VOC2007/下。


第七步:转换成tf的record格式的数据集文件

      运行如下命令:cd 到xxx\object_detection目录下。python create_pascal_tf_record.py –data_dir=xxxx\object_detection\pigfaces –year=VOC2007 –set=train –output_path=data\pig_train.record

第八步:进行训练。

       运行如下命令:cd 到xxx\objectdetection\object_detection目录下。python train.py –train_dir=data –pipeline_config_path=models\faster_rcnn_resnet101_voc07.config


上述的6,7,8可参考我的github代码,网址是https://github.com/renwoxing2016/Objectdetectionapi/



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151884.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 谷歌高级搜索技巧_谷歌到底有多强大

    谷歌高级搜索技巧_谷歌到底有多强大强大的谷歌搜索技巧AlotofpeoplecommentonthetopofthemywifeandmyWeddingCake.Ithasmyself(wire-rimglasses,goatee,traditionalScotishKiltandSporin)andmywife(withTraditionalAfricanKe…

    2022年10月9日
    3
  • 双非本科22届暑期实习,成功拿到B站、阿里实习offer[通俗易懂]

    双非本科22届暑期实习,成功拿到B站、阿里实习offer[通俗易懂]拼一把不一定成功,但是不试试看肯定没有结果!1.前言想写这篇文章很久了,也有粉丝留言、私信问我打卡系列怎么断更了这么多天(狗头保命),首先给大家解释一下最近为什么“失踪了”?由于近两周要入职,找租房,整理微信公众号,所以没多少时间写博客,今天难得闲下来,做一篇近期总结给大家。关于交流群:有粉丝私信,建议创建一个学习群,大家互相分享校招经验,学习心得(我因为怕管理群太麻烦,而一拖再拖,不过也好歹建群了),大家可以通过我的博客首页关注一波公众号:兴趣使然的草帽路飞去获取交流群和内推群群.

    2022年5月21日
    48
  • 多重比较法-LSD[通俗易懂]

    多重比较法-LSD[通俗易懂]总第174篇/张俊红前面我们讲了方差分析,方差分析主要是用于多组均值比较的,方差分析的结果是多组均值之间是否有显著性差异,但是这个显著性差异是整体的显著性差异,可是我们并…

    2022年4月28日
    67
  • Vue2.4中$attrs和$listeners的使用-学习笔记

    Vue2.4中$attrs和$listeners的使用-学习笔记首先我们来看下面的一张图,图中表示一个多级组件嵌套的情形。现在我们来讨论一种情况,A组件与C组件怎么通信,我们有多少种解决方案?我们使用VueX来进行数据管理,但是如果项目中多个组件共享状态比较少,项目比较小,并且全局状态比较少,那使用VueX来实现该功能,并没有发挥出VueX的威力。 使用B来做中转站,当A组件需要把信息传给C组件时,B接受A组件的信息,然后利用属性传给C组件,这是…

    2022年10月18日
    3
  • windows如何设置定时关机「建议收藏」

    windows如何设置定时关机「建议收藏」电脑定时关机是通过shutdown这个命令来实现的,不论是windows还是linux,这个命令都是关机的意思。下面我们简要的介绍一下windows如何定时关机:思路一:通过shutdown这个命令加参数来实现按“win+R”(注win键即指windows徽标键,该键的最明显的标识就是在键面上有个Windows的徽标),此时会弹出“运行”对话框,如下图所示。在对话框的编辑栏里输入“Shutdown…

    2022年5月14日
    52
  • wxpython自定义控件_wxPython 教程(十三) 自定义控件

    wxpython自定义控件_wxPython 教程(十三) 自定义控件本节讲述wxPython自定义控件。GUIToolkits会提供多数常用的部件,比如按钮、文本控件、滚动条、滑块等等。wxPython也会提供很多控件,但若需要更定制化的控件还是需要开发者自己编写。自定义控件通过两种方式创建:一种是通过修改或增强现有控件,另一种是我们从零开始直接创建。超链接控件第一个例子是创建一个超链接控件,我们基于wx.lib.stattext.GenStatic…

    2022年5月11日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号