基于opencv+python的人脸识别
Neuzly
这个作者很懒,什么都没留下…
展开
-
人脸检测-搭建win10,opencv + PyCharm环境(0)
加粗样式@TOC搭建win10,opencv3.3 + PyCharmOpencv的安装登录官网,下载对应版本的Opencv;安装pip-----(pip是通用的python包管理工具,提供对Python包的查找、下载、安装功能):进入Python安装目录下的Scripts路径,执行:easy_install.exe pip。安装wheel:在Python安装目录下的Script...原创 2019-07-19 22:37:59 · 292 阅读 · 0 评论 -
人脸检测----直方图的比较及反向投影(10)
直方图的比较:应用:通过直方图粗略比较图像的相似性(通过相关性、卡方等数学参量),往往用于第一阶段的图像识别。代码:直方图的横坐标为颜色空间,纵坐标为该颜色的像素点的个数。由于一个RGB像素点由3个颜色空间决定,即它的种类有256* 256* 256种;我们将其色彩空间进行划分,将R,G,B的Binsize设置为16,这时候每个颜色通道有16个bins,因此横坐标range为0—16* 1...原创 2019-07-19 22:38:47 · 349 阅读 · 0 评论 -
人脸检测----图像加载与保存(1)
图像含义:结构化存储的数据信息图像属性:通道数目、高与宽、像素数据、位图深度(每个像素点用多少bit表示)图像的加载和显示`def get_image_info(image):`print(type(image))print(image.shape) //height, width, 通道数print(image.size) //print(image....原创 2019-07-19 22:40:43 · 292 阅读 · 0 评论 -
人脸检测---------轮廓检测(20)
轮廓检测基于一个二值图像进行轮廓分析;def contours_demo(image): image = cv.GaussianBlur(src, (3,3), 0); gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY); ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINA...原创 2019-07-19 22:30:11 · 829 阅读 · 0 评论 -
人脸检测---------膨胀与腐蚀(21)
图像形态学:是图像处理学科·的一个单独分支学科灰度与而至图像处理中的重要手段是有数学的集合论等理论发展起来的膨胀(Dilate)最大值滤波:用一个kernel遍历整个图像,用遍历过的区域中像素点的最大值代替中心点的像素值。作用:对象大小增加了一个n*n的像素;平滑对象边缘;减少或填充对象之间的距离腐蚀(Erode)-最小值滤波:用一个kernel遍历整个图像,用遍历过的区域...原创 2019-07-19 22:28:55 · 427 阅读 · 0 评论 -
人脸检测-----模板匹配(11)
模板匹配:相关概念模板匹配就是在整个图像区域发现与给定子图像匹配的最小区域。所要一个模板图像及待检测图像。工作方法:在模板上,从左至右、从上到下,计算模板图像与重叠自图像的匹配度,匹配都越大,两者相同的可能性越大。度量方法:相关性、平方、相关因子提高效率的方法:通过积分图、及FFT、IFFT转换计算领大幅度提高运算效率。代码实操:def template_demo(): ...原创 2019-07-19 22:39:02 · 1571 阅读 · 0 评论 -
人脸检测----图像的二值化binary Image(12)
二值图像(Binary Image):是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像。二值图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素灰度值不是0就是255,再无其他过渡的灰度值。将图像变换为二值图像之后,可以进行边界的压缩和编码,且省去大量内存。图像二值化方法:全局阈值:-OTSU:适用于直方图有多个波...原创 2019-07-19 22:41:08 · 1939 阅读 · 0 评论 -
人脸检测------超大图像二值化方法(13)
分块原创 2019-07-19 22:40:56 · 548 阅读 · 0 评论 -
人脸检测-------图像金字塔(14)
图像金字塔:图像金字塔原理:图像金字塔的原理- Guassian pyramid高斯金字塔#reduce pyramid imagedef pyramid_demo(image): level = 3; temp = image.copy(); pyramid_images = []; for i in range(level): dst ...转载 2019-07-19 22:40:26 · 558 阅读 · 0 评论 -
前向传播与反向传播(1)
神经网络的实现过程:准备数据集,提取特征,作为输入喂给神经网络;搭建NN结构,从输入到输出(先搭建计算图graph,在用会话Session执行)大量特征数据喂给NN,迭代优化NN参数使用训练好的模型预测和分类设计神经网络的过程:使用成熟的网络,喂入新的数据观察泛化能力,在适当更改网络结构,让机器调节网络参数,得到成熟的网络。前向传播:搭建模型,实现推理反向传播:训练模型参数...原创 2019-07-21 21:49:14 · 142 阅读 · 0 评论 -
人脸识别---------圆检测(19)
现实考量:圆检测参考霍夫圆检测对噪声比较敏感,所以要先对图像做中值滤波。由于效率问题,OPencv中霍夫变换圆检测是基于图像梯度的实现,分为两步。* 检测边缘,发现可能圆心* 基于第一步的基础上从候选圆心开始计算最佳半径的大小。opencv实现cv.HoughCircles( image,method,dp,minDist ,circles ,param1 ,param2 ,m...原创 2019-07-19 22:34:16 · 307 阅读 · 0 评论 -
人脸检测-------直线检测(18)
直线检测霍夫直线变换介绍霍夫直线检测原理code and API- HoughLines(image,rho,theta,threshold ,lines ,srn ,stn ,min_theta ,max_theta):def line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY); ed...原创 2019-07-19 22:34:32 · 151 阅读 · 0 评论 -
人脸检测-Numpy数组操作(2)
Numpy包介绍概述Numpy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。主要功能强大的N维数组对象 ndarray广播功能函数整合 C/C++/Fortran 代码的工具线性代数、傅里叶变换、随机数生成等功能...转载 2019-07-19 22:34:46 · 343 阅读 · 0 评论 -
人脸检测----色彩空间(3)
色彩空间定义:色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间色彩空间的分类:Gray:灰度图像RGB:通过对红、绿、蓝三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。HSV:根据颜色的直观特性由创建的一种颜色,空间色调(H),饱和度(S),明度(V)。YUV:一种颜色编码方法,常使用在...原创 2019-07-19 22:36:03 · 554 阅读 · 0 评论 -
人脸检测----像素运算(4)
像素运算在做像素操作的时候,处理的图片的尺寸一定要有要求,我们选择OpenCV中自带的图片,它们的路径为-------------opencv:/sources/samples/data像素运算API加法:dst = cv.add(m1 ,m2);减法:dst = cv.substract(m1, m2);乘法:`dst = cv.mutiply(m1, m2);#会产生毛刺效果...原创 2019-07-19 22:35:18 · 466 阅读 · 0 评论 -
人脸检测-ROI与泛洪填充(5)
ROI(region of interest)感兴趣区域:图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。ROI的获取:src = cv.imread("E:/picture/demo.j...原创 2019-07-19 22:36:21 · 1865 阅读 · 0 评论 -
人脸检测-模糊操作(6)
模糊操作深入理解请参参照原理简述:数学上用卷积来描述模糊操作的原理均值模糊:中值模糊:自定义模糊:原创 2019-07-19 22:37:16 · 348 阅读 · 0 评论 -
人脸检测----边缘保留滤波EPF(8)
边缘保留滤波(EPF):EPF的原理:当计算机发现,两部分像素块之间的差异很大时,只在计算时保留其中一部分(只模糊其中另一部分),因此我们称之为EFP。高斯双边:均值迁移:...原创 2019-07-19 22:38:17 · 203 阅读 · 0 评论 -
人脸检测------图像梯度(16)
图像梯度:原理:图像梯度的基本原理图像梯度的计算一阶导数与Soble算子二阶导数与拉普拉斯算子opencvAPI的应用:图像的深度:图像中每个像素对应的位数**图像的梯度:**图像的梯度世界上也就是一个图像,它是通过卷积和求取梯度之后联系原图进行一些列运算后得到的一副新的图像,而这幅图像可以使图像中物体的轮廓和边缘得到加强。1. Sobel()算子:def sobel_dem...原创 2019-07-19 22:39:57 · 275 阅读 · 0 评论 -
人脸检测------canny边缘提取(17)
Canny算法介绍:canny算法详解可供参考1. GaussianBlur2. 灰度转换:cvtcolor3. 计算梯度:Sobbel/Scharr4. 非最大信号抑制:寻找局部像素最大点,剔除很多非边缘点。5. 高低阈值输出二值图像:减少假边缘段数量的典型方法是对N[i,j]使用一个阈值。将低于阈值的所有值赋零值。但问题是如何选取阈值? 解决方法:双阈值算法。双阈值算法对非极...原创 2019-07-19 22:40:13 · 775 阅读 · 0 评论 -
人脸检测-----图像直方图(image Histogram)及其均衡化(9)
图像直方图首先执行:pip install matplotlib;原创 2019-07-19 22:38:33 · 1978 阅读 · 0 评论 -
卷积、池化与舍弃(4)
卷积:卷积可以被看作一种有效提取图像特征的方法一般会使用一个正方形的卷积核,遍历图片上的每个点。图片区域内,相对应的每一个像素值,都要诚意卷积核内相对应的权重并求和,在加上相应的权重值。输出图片边长 = (输入边长-kernel边长 + 1) / 步长padding:对输入图片进行全0填充,以得到相同大小的输出图片的尺寸。padding = ‘SAME’ padding = ‘VA...原创 2019-07-22 18:30:28 · 233 阅读 · 0 评论