使用yolo v3+alexnet做上衣颜色识别项目总结
上衣颜色识别项目总结
- 流程:
- 先用yolo v3的Keras版本训练coco数据集的模型做行人检测,过滤掉非行人以及超大框,得到行人的位置
- 使用alexnet进行颜色分类,一共12类,数据集是之前标定好的数据集,格式是pascal voc的格式,大概3万张数据集。按照train-set :val-set=9:1的比例进行训练,得到颜色识别模型的val acc=76%,想用vgg模型继续改,但是训练到21%左右准确率就不再提升不知道原因。尝试失败
- 测试训练好的颜色模型:将第一步的行人位置的图片截取出来,传入颜色识别模型中进行识别,然后将结果返回。但是测试阶段很慢,每帧需要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这个方法搞定了。
使用yolo v3+alexnet做上衣颜色识别项目总结相关推荐
- yolo v3做行人检测+alexnet做上衣颜色识别
参考链接: 1)alexnet做上衣颜色识别 2)keras训练自己的数据集 前言: 本项目是基于yolo v3已经训练好的coco数据集的模型进行行人检测的,然后将检测出来的结果传入到alexnet ...
- 【项目实践】从零开始学习Deep SORT+YOLO V3进行多目标跟踪(附注释项目代码)...
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|集智书童 1.跟踪基础知识简介 首先要说明一点,现在多目标 ...
- 魔方机器人(二)颜色识别
魔方机器人(二) 颜色识别 今天,就让我们来看看魔方的颜色识别是如何做到的.做图像处理的话我们可以用OpenCV(用到了颜色空间的转换RGB转HSV以及ROI区域提取),全称为Open Source ...
- 口罩、安全帽识别比赛踩坑记(二) 比赛流程及 SSD / YOLO V3 两版本实现
本篇文章主要对比赛流程中的各个环节进行展开说明,并对笔者践行过的代码及更改的地方进行记录.如哪里有侵权请联系笔者进行删除.另外在这里对比赛举办方表示感谢 ~ ~ 其中开源代码会在整理后放在github ...
- 基于改进YOLO v3网络的夜间环境柑橘识别方法
基于改进YOLO v3网络的夜间环境柑橘识别方法 人工智能技术与咨询 本文来自<农业机械学报>,作者熊俊涛等 关注微信公众号:人工智能技术与咨询.了解更多咨询!
- 使用kinect2.0做动作识别和重量颜色识别
在抓取杠铃的过程中,杠铃的颜色是固定的,我们可以使用颜色信息识别出我们杠铃片的重量,具体做法是,利用手抓取横杆的信息获取到手的骨骼关键点的深度值信息,然后利用距离信息做x,y,z方向上的点云滤除,滤除 ...
- opencv做颜色识别(python)
使用Raspberry摄像头抓图然后进行颜色识别. #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import time from pica ...
- 图像目标检测算法总结(从R-CNN到YOLO v3)
(首发于知乎,链接:https://zhuanlan.zhihu.com/p/242424344,欢迎关注~) 基于CNN 的目标检测是通过CNN 作为特征提取器,并对得到的图像的带有位置属性的特征进 ...
- r语言把两个折线图图像放到一个图里_图像目标检测算法总结(从R-CNN到YOLO v3)...
基于CNN 的目标检测是通过CNN 作为特征提取器,并对得到的图像的带有位置属性的特征进行判断,从而产出一个能够圈定出特定目标或者物体(Object)的限定框(Bounding-box,下面简写为bb ...
最新文章
- ---Pcie基本概念普及(扫盲篇--巨适合新手)
- HTML5好从业吗?为什么都热衷于HTML5全栈工程师呢?
- 电气期刊论文实现:考虑爬坡约束和输电损耗的经济调度【有代码】
- .NET常用第三方库(包)总结
- 克鲁斯卡尔算法(公交站问题)
- 赛锐信息:SAP系统用户账号类型介绍
- 利用js排序html表格
- 算法导论第三版 第1章习题答案
- python itchat教程_Python itchat.run方法代码示例
- UVAOJ 10098 Generating Fast
- 2020年专业408的算法题
- TRC病毒-宿主融合抑制剂研究丨4-氨基-1-叔丁基说明书
- vue照片查看器插件v-viewer
- java坦克大战课设报告_java课程设计之坦克大战
- 中小企业网上手机订货下单软件|移讯云订货通订单管理系统后台功能模块
- 老猿学5G扫盲贴:中国移动的5G计费架构解读
- matlab线性拟合前的准备工作
- c语言实现猜单词小游戏
- openwrt网络唤醒计算机,蜗牛星际 82583V网卡在win10中开启网络唤醒开机的方法
- AutoIt自动化实例