使用yolo v3+alexnet做上衣颜色识别项目总结

上衣颜色识别项目总结

  • 流程:
  1. 先用yolo v3的Keras版本训练coco数据集的模型做行人检测,过滤掉非行人以及超大框,得到行人的位置
  2. 使用alexnet进行颜色分类,一共12类,数据集是之前标定好的数据集,格式是pascal voc的格式,大概3万张数据集。按照train-set :val-set=9:1的比例进行训练,得到颜色识别模型的val acc=76%,想用vgg模型继续改,但是训练到21%左右准确率就不再提升不知道原因。尝试失败
  3. 测试训练好的颜色模型:将第一步的行人位置的图片截取出来,传入颜色识别模型中进行识别,然后将结果返回。但是测试阶段很慢,每帧需要400秒的测试时间,因此视频当中的每一秒的测试时间是400*25帧=10000秒,时间太长,需要修改网络结构

优化方向:感觉可以使用Yolo v3训练全景图,也就是5元组,4个坐标位置+1个颜色label,这样实时性能高很多,毕竟仅仅使用Yolo v3这个框架,并不需要调用颜色识别函数。

  • 相关说明:

训练数据:仅仅设计涉及到上衣颜色数据集,用的之前标定的数据集,并没有用RAP数据集

测试数据:将视频当中的行人用yolo v3训练coco数据集的模型检测出来,然后传入颜色识别模型进行测试,但是误检率比较高

测试平台:ubuntu14.04,python3.6.1,keras==2.1.3,tensorflow-gpu==1.4.1

评价指标以及测试demo,由于需要的时间太长,11分钟的视频,需要11*60*400*25约等于76天,没有做,需要方法优化,不过做这个小实验也有一些收获,踩了很多坑,最后都解决了。

 

三.项目收获

1)RAP数据集

RAP数据集的label是mat文件,第一次使用,所以需要先转化为xml格式,然后再进行读取,并且RAP数据集仅仅能做图片训练,不能做行人检测【问了RAP数据集的作者】;

RAP数据集的上衣位置,需要将上衣的位置-人的位置,才可以找到上衣的位置

2)yolo v3的多分类

之前使用yolo v3做了人脸识别,仅仅有face这一个类别,这次用yolo v3做了多分类,产生了一个比较奇怪的现象,返回了多个预测类别,因此需要将sigmoid层改为softmax层重新训练,这样才可以得到最终的预测一种类别。

3)两个项目的拼接:

我是以yolo v3作为主项目,然后颜色识别的测试做子项目,两个项目的拼接也用了一段时间,遇到了好多坑,比如说,图像处理的库:opencv以及PIL,这两个库的channel顺序不同,opencv是BGR,PIL是RGB,因此需要转换,并且在用PIL的剪裁行人的框的时候也遇到了一些小问题,导致在项目拼接的时候始终调用不了颜色识别模型的测试文件。

4)一定要写异常处理函数!!

这点很重要,因为数据集的标定并不像想象那样标注的很好,遇到了问题就是,读取了一个标注文件,没有衣服颜色属性,导致返回空值,在批处理的时候由于数据量太大,始终发现不出来问题,就是报错,后来printf这个方法搞定了。

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值