Python错误数据(图片)去除

在我们通过爬取网络图片,作为我们的深度学习样本数据集时,往往有许多我们不需要的错误数据,假如当我们进行人脸识别时,爬取到的图片会有许多这样的动画图片
这种类似的图片就是错误的样本数据,需要去除它们,在这里我们使用Opencv中的haarcascade_frontalface_alt.xml模型来去除掉样本中非人脸的数据,Opencv中的**CascadeClassifier.detectMultiScale()**函数可以返回检测到的一张图片中的人脸数量,如果返回的数值为0,说明没有识别到人脸,那么我们就删除此图片,继续识别下一张。
调用detectMultiScale()实现多尺度检测:

g_cascade.detectMultiScale(InputArray image, //输入图像CV_OUT std::vector<Rect>& objects,  //输出检测到的目标区域double scaleFactor =1.1,           //搜索前后两次窗口大小比例系数,默认1.1,即每次搜索窗口扩大10%int minNeighbors = 3,             //构成检测目标的相邻矩形的最小个数 如果组成检测目标的小矩形的个数和小于minneighbors - 1 都会被排除,如果minneighbors为0 则函数不做任何操作就返回所有被检候选矩形框int flags = 0,                        //若设置为CV_HAAR_DO_CANNY_PRUNING 函数将会使用Canny边缘检测来排除边缘过多或过少的区域 Size minSize = Size(),             //能检测的最小尺寸Size maxSize = Size()                //能检测的最大尺寸);

注:detectMultiScale的检测过程是从最大的size逐步缩小,这里我们设置窗口的扩大系数是1.3,检测目标的相邻矩形的最小个数是5,其他的参数默认即可。

import osimport cv2.cv2
'''
这里主要用到了Opencv的人脸检测的分类器haarcascade_frontalface_alt.xml和CascadeClassifier函数
'''
cascade_path = 'haarcascade_frontalface_alt.xml'
cascade = cv2.CascadeClassifier(cascade_path)
images_dir = '../images/smile'
images = os.listdir(images_dir)
for image in images:img = cv2.imread(os.path.join(images_dir,image),1)# 得到检测到人脸的数量rects = cascade.detectMultiScale(img, 1.3,5)print('detected face', len(rects))# 如果没有检测到人脸就删除本图片if len(rects) == 0:cv2.namedWindow('Result',0)cv2.imshow('Result', img)os.remove(os.path.join(images_dir, image))k = cv2.waitKey(0)if k == ord('q'):break

最后要注意的一点就是,我们的模型筛选非人脸数据不是很理想,有许多人眼能看出来是人的图片,没有检测到,而一些具有人脸特征的动画反而被检测除了人脸,所以这个模型筛选后需要人工第二次筛选,虽然还是需要人工来筛选,但是大大减少了人工的工作量,还有就是被筛掉的样本数据是很多的,这里我爬取了1100多张的人脸图片,整个筛选完毕就剩下了大概600张左右,效果呢,是有点惨不忍睹,以后我会更新更好的模型筛选数据的教程。
如果想要了解CascadeClassifier的可以前往下面的链接:
关于opencv-CascadeClassifier(级联分类器)的初步认识

错误数据(图片)去除相关推荐

  1. Cython 图片去除水印

    图片去除水印,此方法只支持去除那些水印色彩较为单一或者重复区域较多的图片. 思路: 计算并统计水印的颜色值,水印重复区域颜色出现较多 设置阈值,将重复较多的颜色值用图片最多的颜色值(图片主色彩)替换. ...

  2. 超好用的视频图片去除水印软件免费下载

    在别的地方看到的破解国外一款 超好用的视频图片去除水印 的工具. 废话不多说直接开始说使用说明: 安装我就不说了 文件夹名字有提示. 直接开始说使用方法. 打开软件后 提示"add Imag ...

  3. PS图片去除文字的六个方法(图文)

    PS图片去除文字的六个方法(图文) http://tieba.baidu.com/f?kz=395126968 1.使用仿制图章工具去除文字. 选取仿制图章工具,按住Alt键,在无文字区域点击相似的色 ...

  4. java 去掉 时期中的图片,去除图片浅色背景(Java 实现)

    完成与去除图片浅色背景(PIL实现)同样的任务,实现方式为 Java.不同的是,手写实现"加权法"灰度化,在灰度化的同时去除背景. 源码如下: import java.awt.im ...

  5. matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域

    plt.savefig() 输出图片完美去除旁边的空白区域 plt.savefig("test.png",bbox_inches='tight',pad_inches = -0.1 ...

  6. java 去除干扰_【Selenium-WebDriver实战篇】Java丨验证码图片去除干扰像素,方便验证码的识别(转)...

    1.先来看看效果: 原图 除去干扰像素后 2.解析代码: 1).读取文件夹里面的图片 1 String fileName = "picture"; 2 BufferedImage ...

  7. 微信图片去除马赛克_微信怎么把图片加上马赛克_微信如何将照片打码的方法介绍_3DM手游...

    很多时候,我们发到朋友圈的照片是需要在某些地方加上马赛克的.比如有些无法去除的水印,或是一些不想让别人看到的内容.但是微信里是没有为照片加马赛克这个功能的,如果需要为照片加马赛克需要借用其它工具,方法 ...

  8. 图片在线去水印-一键图片去除水印工具

    我们经常会看到喜欢的图片带了水印,这让很多人很无奈,不得不舍弃喜欢的图片.今天小编教大家两个方法,即便是有水印的图片也可以用软件处理掉.那么怎么去水印呢?接下来详细为大家介绍去水印的详细方法. 一.水 ...

  9. 图片去除下间隙(图片3像素)的方法

    一.提出问题 在浏览器中,图片有一个下间隙问题,有人也称之为图片3像素BUG.如下图: 这是放大过的效果.我们可以清晰的看到,图片明显没有跟文字的最底部对齐,比如字母g,就比图片的底部更下探出一截. ...

  10. PHP 图片去除水印 去除logo

    使用插件 ffmpeg 点这里 不使用插件 也可以 <?phpfunction CLEAR_ICO($filename,$savename,$Clear_W,$Clear_H,$Clear_X, ...

最新文章

  1. Android 使用adb 抓取日志信息
  2. 理论计算机初步:概率算法和近似算法
  3. php 服务常量,php常量
  4. Springboo零配置原理
  5. uva1628 最优路径问题
  6. 欢迎与我一起交流安全管理平台
  7. 我们出了套西游记考题,可以保证吴承恩不及格
  8. procyon java8_java jdk 8反编译工具JD-GUI、procyon-decompiler、luyten、crf下载使用简介
  9. java 反射 泛型 构造函数_Java复习——反射和泛型的复习
  10. 3.2 为超参数选择合适的范围
  11. systemtap原理及使用
  12. JavaScript 数字前补“0”的五种方法
  13. java jquery提交表单数据_[Java教程]jquery实现ajax提交表单信息
  14. python请输入星期几的第一个_python如何获取星期几
  15. Combobox MVVM绑定并设置选中
  16. Linux命令大全详解
  17. CQF笔记M1L5仿真和操作随机微分方程
  18. 项目采集自动刷新 php,PHP168 CMS自动采集-PHP168 CMS自动更新-齐博CMS站群管理系统...
  19. ROS开发--Qt接收摇杆话题
  20. 【转】Linux下进程隐藏的常见手法及侦测手段

热门文章

  1. 错误提示Incompatible file format错误原因和解决方案
  2. #9733;双十一背后的消费心理
  3. 流量、电量、弱网环境怎么测?
  4. Unicdoe【真正的完整码表】对照表(一)
  5. GISer开发者的技能清单
  6. 算机类学术论文 28个常见出版社一般写法(参考文献用)
  7. python wx模块下choice列表框值怎么更新,python的内置模块
  8. 百度后端二面有哪些内容,万字总结(一)
  9. Python爬虫爬取滚动新闻
  10. 360安全卫士企业版卸载