object detection自定义物体识别之麻将识别( 二 )

object detection自定义物体识别之麻将识别( 二 )

未经过允许不得转载,转载请联系我,如何联系,点我头像。

 

       本人从事机器学习有一些时间,感觉与一般做APP应用也没有啥差别,现在每天就是准备样本 ,调整参数,训练,验证结果。可能是我还没有达到哪些教授的水平能设计神经网络吧,感觉也就是一般马龙该做的杂七杂八事情。另外我更加关注移动设备AI的实现与效果,体验一样重要,识别的速度要快!

       接下来的博客开始记录我研究过程,过程是:采集样本->标注->训练->测试。

     上一章讲的样本数收集,本章将样本数据预处理和标注。

       标注使用的labelImg ,可以用百度搜索下载。软件运行截图

通过标注软件可以生产一个对应的xml文件。

如图 标注后所有的麻将图片和xml标注都放在对应的2bing文件夹 里面。

接下来就需要分开测试样本和训练样本,一般来说对于训练数据比较少,建议测试样本大于1/3. 比如100张样本,建议测试样本30张左右。但是图片都在文件夹里面,如果手动去筛选那肯定很累。想想咋们既然是‘马龙’ 那就用脚本解决吧,难道还一个一个去选? (* ̄︶ ̄)。

       算法思想是 遍历所有麻将文件夹里面的 类似‘2bing’ 文件夹。再通过 随机函数 random.randint(1,3), 然后不停的while循环直到找到对应的测试样本数量才停住,接下来就将找到的测试样本和训练样本数据放在对应的文件夹里面。

       接下来用xml_to_csv.py将xml格式的数据转化问csv数据格式的标注。

       然后用generate_tfrecord.py将csv的数据转化为tfrecord数据格式,这个数据格式是TensorFlow标准格式,主要是训练的将比较快适合它那个标准吧。

     在转换前将标签与index对应起来。修改generate_tfrecord里面的地方如下:

    

接下来新建一个labelmap.pbtxt标签文件。

  

item {
  id: 1
  name: '1bing'
}

item {
  id: 2
  name: '1tiao'
}

item {
  id: 3
  name: '1wan'
}

item {
  id: 4
  name: '2bing'
}
...

在准备object detection中的config 网络文件。这里使用的是ssd mobile模型,需要修改ssd_mobilenet_v1_pets.config里面对应文件里面的测试样本和训练样本路径,修改class数量为麻将的数量。

到此为止所有数据前的准备已经结束。下一章将训练过程和训练结果。

猜你喜欢

转载自blog.csdn.net/u013223936/article/details/92372150