当前位置: 首页 > news >正文

落实网站建设管理网站官网建设

落实网站建设管理,网站官网建设,汕头新闻,互联网营销的方法有哪些文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 #x1f525; 优质竞赛项目系列#xff0c;今天要分享的是 #x1f6a9; 深度学习 机器视觉 人脸识别系统 该项目… 文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 优质竞赛项目系列今天要分享的是 深度学习 机器视觉 人脸识别系统 该项目较为新颖适合作为竞赛课题方向学长非常推荐 学长这里给一个题目综合评分(每项满分5分) 难度系数3分工作量3分创新点3分 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 机器学习-人脸识别过程 基于传统图像处理和机器学习技术的人脸识别技术其中的流程都是一样的。 机器学习-人脸识别系统都包括 人脸检测人脸对其人脸特征向量化人脸识别 人脸检测 人脸检测用于确定人脸在图像中的大小和位置即解决“人脸在哪里”的问题把真正的人脸区域从图像中裁剪出来便于后续的人脸特征分析和识别。下图是对一张图像的人脸检测结果 人脸对其 同一个人在不同的图像序列中可能呈现出不同的姿态和表情这种情况是不利于人脸识别的。 所以有必要将人脸图像都变换到一个统一的角度和姿态这就是人脸对齐。 它的原理是找到人脸的若干个关键点基准点如眼角鼻尖嘴角等然后利用这些对应的关键点通过相似变换Similarity Transform旋转、缩放和平移将人脸尽可能变换到标准人脸。 下图是一个典型的人脸图像对齐过程 这幅图就更加直观了 人脸特征向量化 这一步是将对齐后的人脸图像组成一个特征向量该特征向量用于描述这张人脸。 但由于一幅人脸照片往往由比较多的像素构成如果以每个像素作为1维特征将得到一个维数非常高的特征向量 计算将十分困难而且这些像素之间通常具有相关性。 所以我们常常利用PCA技术对人脸描述向量进行降维处理保留数据集中对方差贡献最大的人脸特征来达到简化数据集的目的 PCA人脸特征向量降维示例代码 ​ #coding:utf-8 from numpy import * from numpy import linalg as la import cv2 import osdef loadImageSet(add):FaceMat mat(zeros((15,98*116)))j 0for i in os.listdir(add):if i.split(.)[1] normal:try:img cv2.imread(addi,0)except:print load %s failed%iFaceMat[j,:] mat(img).flatten()j 1return FaceMatdef ReconginitionVector(selecthr 0.8):# step1: load the face image data ,get the matrix consists of all imageFaceMat loadImageSet(D:\python/face recongnition\YALE\YALE\unpadded/).T# step2: average the FaceMatavgImg mean(FaceMat,1)# step3: calculate the difference of avgimg and all image data(FaceMat)diffTrain FaceMat-avgImg#step4: calculate eigenvector of covariance matrix (because covariance matrix will cause memory error)eigvals,eigVects linalg.eig(mat(diffTrain.T*diffTrain))eigSortIndex argsort(-eigvals)for i in xrange(shape(FaceMat)[1]):if (eigvals[eigSortIndex[:i]]/eigvals.sum()).sum() selecthr:eigSortIndex eigSortIndex[:i]breakcovVects diffTrain * eigVects[:,eigSortIndex] # covVects is the eigenvector of covariance matrix# avgImg 是均值图像covVects是协方差矩阵的特征向量diffTrain是偏差矩阵return avgImg,covVects,diffTraindef judgeFace(judgeImg,FaceVector,avgImg,diffTrain):diff judgeImg.T - avgImgweiVec FaceVector.T* diffres 0resVal inffor i in range(15):TrainVec FaceVector.T*diffTrain[:,i]if (array(weiVec-TrainVec)**2).sum() resVal:res iresVal (array(weiVec-TrainVec)**2).sum()return res1if __name__ __main__:avgImg,FaceVector,diffTrain ReconginitionVector(selecthr 0.9)nameList [01,02,03,04,05,06,07,08,09,10,11,12,13,14,15]characteristic [centerlight,glasses,happy,leftlight,noglasses,rightlight,sad,sleepy,surprised,wink]for c in characteristic:count 0for i in range(len(nameList)):# 这里的loadname就是我们要识别的未知人脸图我们通过15张未知人脸找出的对应训练人脸进行对比来求出正确率loadname D:\python/face recongnition\YALE\YALE\unpadded\subjectnameList[i].c.pgmjudgeImg cv2.imread(loadname,0)if judgeFace(mat(judgeImg).flatten(),FaceVector,avgImg,diffTrain) int(nameList[i]):count 1print accuracy of %s is %f%(c, float(count)/len(nameList)) # 求出正确率人脸识别 这一步的人脸识别其实是对上一步人脸向量进行分类使用各种分类算法。 比如贝叶斯分类器决策树SVM等机器学习方法。 从而达到识别人脸的目的。 这里分享一个svm训练的人脸识别模型 ​ from __future__ import print_functionfrom time import timeimport loggingimport matplotlib.pyplot as pltfrom sklearn.cross_validation import train_test_splitfrom sklearn.datasets import fetch_lfw_peoplefrom sklearn.grid_search import GridSearchCVfrom sklearn.metrics import classification_reportfrom sklearn.metrics import confusion_matrixfrom sklearn.decomposition import RandomizedPCAfrom sklearn.svm import SVCprint(__doc__)# Display progress logs on stdoutlogging.basicConfig(levellogging.INFO, format%(asctime)s %(message)s)################################################################################ Download the data, if not already on disk and load it as numpy arrayslfw_people fetch_lfw_people(min_faces_per_person70, resize0.4)# introspect the images arrays to find the shapes (for plotting)n_samples, h, w lfw_people.images.shape# for machine learning we use the 2 data directly (as relative pixel# positions info is ignored by this model)X lfw_people.datan_features X.shape[1]# the label to predict is the id of the persony lfw_people.targettarget_names lfw_people.target_namesn_classes target_names.shape[0]print(Total dataset size:)print(n_samples: %d % n_samples)print(n_features: %d % n_features)print(n_classes: %d % n_classes)################################################################################ Split into a training set and a test set using a stratified k fold# split into a training and testing setX_train, X_test, y_train, y_test train_test_split(X, y, test_size0.25, random_state42)################################################################################ Compute a PCA (eigenfaces) on the face dataset (treated as unlabeled# dataset): unsupervised feature extraction / dimensionality reductionn_components 80print(Extracting the top %d eigenfaces from %d faces% (n_components, X_train.shape[0]))t0 time()pca RandomizedPCA(n_componentsn_components, whitenTrue).fit(X_train)print(done in %0.3fs % (time() - t0))eigenfaces pca.components_.reshape((n_components, h, w))print(Projecting the input data on the eigenfaces orthonormal basis)t0 time()X_train_pca pca.transform(X_train)X_test_pca pca.transform(X_test)print(done in %0.3fs % (time() - t0))################################################################################ Train a SVM classification modelprint(Fitting the classifier to the training set)t0 time()param_grid {C: [1,10, 100, 500, 1e3, 5e3, 1e4, 5e4, 1e5],gamma: [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.1], }clf GridSearchCV(SVC(kernelrbf, class_weightbalanced), param_grid)clf clf.fit(X_train_pca, y_train)print(done in %0.3fs % (time() - t0))print(Best estimator found by grid search:)print(clf.best_estimator_)print(clf.best_estimator_.n_support_)################################################################################ Quantitative evaluation of the model quality on the test setprint(Predicting peoples names on the test set)t0 time()y_pred clf.predict(X_test_pca)print(done in %0.3fs % (time() - t0))print(classification_report(y_test, y_pred, target_namestarget_names))print(confusion_matrix(y_test, y_pred, labelsrange(n_classes)))################################################################################ Qualitative evaluation of the predictions using matplotlibdef plot_gallery(images, titles, h, w, n_row3, n_col4):Helper function to plot a gallery of portraitsplt.figure(figsize(1.8 * n_col, 2.4 * n_row))plt.subplots_adjust(bottom0, left.01, right.99, top.90, hspace.35)for i in range(n_row * n_col):plt.subplot(n_row, n_col, i 1)# Show the feature faceplt.imshow(images[i].reshape((h, w)), cmapplt.cm.gray)plt.title(titles[i], size12)plt.xticks(())plt.yticks(())# plot the result of the prediction on a portion of the test setdef title(y_pred, y_test, target_names, i):pred_name target_names[y_pred[i]].rsplit( , 1)[-1]true_name target_names[y_test[i]].rsplit( , 1)[-1]return predicted: %s\ntrue: %s % (pred_name, true_name)prediction_titles [title(y_pred, y_test, target_names, i)for i in range(y_pred.shape[0])]plot_gallery(X_test, prediction_titles, h, w)# plot the gallery of the most significative eigenfaceseigenface_titles [eigenface %d % i for i in range(eigenfaces.shape[0])]plot_gallery(eigenfaces, eigenface_titles, h, w)plt.show() 2 深度学习-人脸识别过程 不同于机器学习模型的人脸识别深度学习将人脸特征向量化以及人脸向量分类结合到了一起通过神经网络算法一步到位。 深度学习-人脸识别系统都包括 人脸检测人脸对其人脸识别 人脸检测 深度学习在图像分类中的巨大成功后很快被用于人脸检测的问题起初解决该问题的思路大多是基于CNN网络的尺度不变性对图片进行不同尺度的缩放然后进行推理并直接对类别和位置信息进行预测。另外由于对feature map中的每一个点直接进行位置回归得到的人脸框精度比较低因此有人提出了基于多阶段分类器由粗到细的检测策略检测人脸例如主要方法有Cascade CNN、 DenseBox和MTCNN等等。 MTCNN是一个多任务的方法第一次将人脸区域检测和人脸关键点检测放在了一起与Cascade CNN一样也是基于cascade的框架但是整体思路更加的巧妙合理MTCNN总体来说分为三个部分PNet、RNet和ONet网络结构如下图所示。 人脸识别 人脸识别问题本质是一个分类问题即每一个人作为一类进行分类检测但实际应用过程中会出现很多问题。第一人脸类别很多如果要识别一个城镇的所有人那么分类类别就将近十万以上的类别另外每一个人之间可获得的标注样本很少会出现很多长尾数据。根据上述问题要对传统的CNN分类网络进行修改。 我们知道深度卷积网络虽然作为一种黑盒模型但是能够通过数据训练的方式去表征图片或者物体的特征。因此人脸识别算法可以通过卷积网络提取出大量的人脸特征向量然后根据相似度判断与底库比较完成人脸的识别过程因此算法网络能不能对不同的人脸生成不同的特征对同一人脸生成相似的特征将是这类embedding任务的重点也就是怎么样能够最大化类间距离以及最小化类内距离。 Metric Larning 深度学习中最先应用metric learning思想之一的便是DeepID2了。其中DeepID2最主要的改进是同一个网络同时训练verification和classification有两个监督信号。其中在verification loss的特征层中引入了contrastive loss。 Contrastive loss不仅考虑了相同类别的距离最小化也同时考虑了不同类别的距离最大化通过充分运用训练样本的label信息提升人脸识别的准确性。因此该loss函数本质上使得同一个人的照片在特征空间距离足够近不同人在特征空间里相距足够远直到超过某个阈值。(听起来和triplet loss有点像)。 3 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate
http://www.zqtcl.cn/news/338859/

相关文章:

  • 建设网站的技术手段天津泰达建设集团网站
  • 怎样做读书会网站广州公司注册在线
  • 多个网站做计划响水哪家专业做网站
  • 中国建设基础设施总公司 网站怒江网站建设
  • 做电脑网站手机能显示不出来怎么办有友情链接的网站
  • 潘家园做网站的公司网络营销管理系统
  • 如何在各大平台推广博客网站seo
  • 网站地图那么建设国内哪个网站做水产比较大
  • 可以做图片视频的网站网站策划网
  • 在阿里云做的网站怎么移动南宁seo咨询
  • 电子商务网站开发课程设计论文温州市微网站制作电话
  • 常州住房和城乡建设部网站网站开发哪家公司口碑好
  • 网站备案 登录名巴中交通建设有限公司网站
  • 门户资源分享网站模板软件网站开发市场前景
  • 海南省住房和城乡建设厅官方网站列举五种常用的网站推广方法
  • aso优化服务平台东莞优化seo
  • 高唐做创建网站的公司网站开发费怎么做账
  • 域名有没有被注册哪个网站最好中企动力网站建设方案
  • 无锡网站制作计划我的世界寻找建筑网站
  • 烟台建设集团招聘信息网站青岛百度公司总部
  • php网站模板怎么用怎么做链接网站
  • 完整网站开发视频教程安丘营销型网站建设
  • 女与男爱做电影网站免费网站外包公司
  • 传统文化传播公司网站建设wordpress 插件开启
  • 哪些网站是做外贸生意的网站建设所需美工
  • 网站建设哪个公司比较好惠州网络问政平台
  • 河南网站备案系统短信广州注册公司程序
  • 苏晋建设集团网站跨专业的简历怎么制作
  • 交互网站怎么做设计师作品网站
  • 国外网站的分析工具有哪些办公室装修计入什么会计科目