yolov3识别的类别_Yolo3 如何只识别一个类别
原因:
1.主要是想加快识别速度(在减小识别类别的情况下)
2.减小数据库大小
3.去掉不想要的类别
4.仍然想用官方的weight(比我自己训练的精准)
5.因为对keras不熟, 不知道怎么在convert.py时直接从数据库中阉割掉
过程:
yolo3不管是视频还是图片检测 调用的都是 yolo.py 中的 detect_image
yolo.py 中 detect_image 关于 类别self.classes 由
out_boxes, out_scores, out_classes = self.sess.run(
[self.boxes, self.scores, self.classes],
feed_dict={
self.yolo_model.input: image_data,
self.input_image_shape: [image.size[1], image.size[0]],
K.learning_phase(): 0
})
generate(__init__调用)中的
boxes, scores, classes = yolo_eval(self.yolo_model.output, self.anchors,
len(self.class_names), self.input_image_shape,
score_threshold=self.score, iou_threshold=self.iou)
return boxes, scores, classes
中的yolo_eval(位于yolo3中的 model.py)中的下一段, 添加一条if语句即可(第二行注释掉的)
for c in range(num_classes):
#if c == 32: #32->sports ball 32是 model_data/coco_classes.txt 对应的行减一(从0开始)
# TODO: use keras backend instead of tf.
class_boxes = tf.boolean_mask(boxes, mask[:, c])
class_box_scores = tf.boolean_mask(box_scores[:, c], mask[:, c])
nms_index = tf.image.non_max_suppression(
class_boxes, class_box_scores, max_boxes_tensor, iou_threshold=iou_threshold)
class_boxes = K.gather(class_boxes, nms_index)
class_box_scores = K.gather(class_box_scores, nms_index)
classes = K.ones_like(class_box_scores, 'int32') * c
boxes_.append(class_boxes)
scores_.append(class_box_scores)
classes_.append(classes)
综上在yolo3/model.py 213 行下添加if判断即可
ps: 作者还写了注释 use keras backend instead of tf 看来想脱离tf啊
ps:
1.数据库中数据一样是有的, 只是减少了查询次数, 有点点效果, 但是并不明显
2.因为想用官方的weight, 曾尝试阉割官方weight:
测试修改了 coco_classes.txt 和对应的 yolov3.cfg 下的3个yolo下的classes(80->3)
重新生成yolo.h5 文件
运行...
报错位于yolo.py
self.yolo_model.layers[-1].output_shape[-1] == num_anchors/len(self.yolo_model.output) * (num_classes + 5)
debug 如下:
self.yolo_model.layers[-1].output_shape[-1] ->255
num_anchors->9
len(self.yolo_model.output) ->3
(num_classes + 5)->85 # num_classes 是 coco_classes.txt下的类别个数
不清楚self.yolo_model.layers[-1].output_shape[-1] 是什么东西, 怎么训练都是255
不敢乱删这句话 阉割数据库失败
yolov3识别的类别_Yolo3 如何只识别一个类别相关推荐
- 设置白名单:让tesseract-OCR只识别指定内容
有时我们需要用tesseract-ocr只识别指定类型的数据,如:仅识别英文字母或数字.此时可设置白名单,让tesseract-ocr只输出我们需要的结果. 1.打开tesseract-ocr安装路径 ...
- 【感兴区roi学习应用】OpenMv如何只识别左边屏幕里面的红色小球
思路应该就是给他一个区域,然后在区域里面找红色小球 拉到最后看结果,前面目前是死路-- 那么找小球代码 官网:http://book.openmv.cc/quick-starter.html impo ...
- 《人脸识别原理及算法——动态人脸识别系统研究》—1章1.2节人脸识别相关学科的进展...
本节书摘来自异步社区<人脸识别原理及算法--动态人脸识别系统研究>一书中的1章1.2节人脸识别相关学科的进展,作者 沈理 , 刘翼光 , 熊志勇,更多章节内容可以访问云栖社区"异 ...
- 信息抽取(五)实体命名识别之嵌套实体识别哪家强,我做了一个简单的对比实验
实体命名识别之嵌套实体识别哪家强 嵌套实体识别 实体矩阵构建框架 方法比较 GlobalPointer TPLinker Tencent Muti-head Deep Biaffine 实验结果 总结 ...
- python人脸识别框很小_人脸识别:从传统方法到深度学习
人脸识别:从传统方法到深度学习 这开始于上世纪七十年代,人脸识别成为了计算机视觉领域和生物识别领域最具有研究型的话题之一.传统方法依赖于手工制作模型特征,通过深度神经网络训练大量的数据集的方法也在最近 ...
- 人脸识别三大经典算法_人脸识别系列四 | DeepID1算法
前言 这是人脸识别系列的第5篇文章,前4篇文章可以在公众号的人脸识别栏里找到,这篇文章主要是解析CVPR 2014年的经典人脸识别论文DeepID1算法.论文的地址如下:http://mmlab.ie ...
- 人脸识别最低像素_深入浅出人脸识别技术
在深度学习出现后,人脸识别技术才真正有了可用性.这是因为之前的机器学习技术中,难以从图片中取出合适的特征值.轮廓?颜色?眼睛?如此多的面孔,且随着年纪.光线.拍摄角度.气色.表情.化妆.佩饰挂件等等的 ...
- 面部表情识别3:Android实现表情识别(含源码,可实时检测)
面部表情识别3:Android实现表情识别(含源码,可实时检测) 目录 面部表情识别3:Android实现表情识别(含源码,可实时检测) 1.面部表情识别方法 2.人脸检测方法 3.面部表情识别模型训 ...
- 离线识别率最高的Python人脸识别系统
前言 以往的人脸识别主要是包括人脸图像采集.人脸识别预处理.身份确认.身份查找等技术和系统.现在人脸识别已经慢慢延伸到了ADAS中的驾驶员检测.行人跟踪.甚至到了动态物体的跟踪. 由此可以看出,人脸识 ...
- python人脸识别系统早已开源,离线识别率高达99%以上!
以往的人脸识别主要是包括人脸图像采集.人脸识别预处理.身份确认.身份查找等技术和系统.现在人脸识别已经慢慢延伸到了ADAS中的驾驶员检测.行人跟踪.甚至到了动态物体的跟踪. 由此可以看出,人脸识别系统 ...
最新文章
- 树形dp ---- C. Karen and Supermarket(子树选择类型dp + 注意dp更新顺序)
- [CF816B] Karen and Coffee(前缀和,思维)
- input自适应_深度残差网络+自适应参数化ReLU(调参记录18)Cifar10~94.28%
- linux修改权限后不能开机,打造完美Linux系统:疑难杂症的解决(转)
- python生成元组_python 列表生成、元组、字典
- rhel 8.2不识别unicode_基于tensorflow 实现端到端的OCR:二代身份证号识别
- scsi协议_存储协议有哪些类型?常见存储协议分析
- JAVA泛型只能用引用类型_Java泛型和设计模式:不参数化对泛型类型的引用总是一件坏事吗?...
- TCP Timestamp选项
- YALMIP学习(一):入门
- markdown下载破解地址 和 常用语法
- IT公司面试 逻辑题目
- axure文本框添加水印_Axure如何给元件添加注释?
- 有没有一瞬间不想活了?
- 价值170万美元的Flash漏洞 360Vulcan免费提交给Adobe修复
- java项目任务跟踪系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- 2023年品牌营销趋势是什么?如何提升品牌知名度
- Excel表格转换为布尔表
- Final Cut Pro如何安装自定义lut?final cut pro的lut安装在哪个文件夹?
- PHP实现阿拉伯数字转中文大写