人脸图像采集及检测

  人脸识别系统分析:系统由前端人脸抓拍采集子系统、网络传输子系统和后端解析管理子系统组成,实现对通行人脸信息的采集、传输、处理、分析与集中管理。系统中,前端人脸采集设备负责人脸图像的采集,接入服务器主要实现图片及信息的接收和转发功能,可为多种型号、多个厂家的抓拍机提供统一接入服务,接收到的抓拍图片存入云存储单元,并由人脸结构化分析服务器对抓拍的视频及图像进行建模以及黑名单实时比对报警,建模得到的人脸信息以及模型数据存入大数据单元。后端解析应用平台则根据用户的应用需要,支持实时人脸抓拍、检索等功能,可向用户提供黑名单库与抓拍图片的实时比对信息,为快速高效查到可疑目标提供服务。
  
  人脸图像采集及检测
  
  人脸图像采集:不同的人脸图像都能通过摄像镜头采集下来,比如静态图像、动态图像、不同的位置、不同表情等方面都可以得到很好的采集。当用户在采集设备的拍摄范围内时,采集设备会自动搜索并拍摄用户的人脸图像。
  
  人脸检测:人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。人脸图像中包含的模式特征十分丰富,如直方图特征、颜色特征、模板特征、结构特征及Haar特征等。人脸检测就是把这其中有用的信息挑出来,并利用这些特征实现人脸检测。
  
  主流的人脸检测方法基于以上特征采用Adaboost学习算法,Adaboost算法是一种用来分类的方法,它把一些比较弱的分类方法合在一起,组合出新的很强的分类方法。
  
  人脸检测过程中使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器,再将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,有效地提高分类器的检测速度。
  
  人脸图像预处理
  
  人脸图像预处理:对于人脸的图像预处理是基于人脸检测结果,对图像进行处理并最终服务于特征提取的过程。系统获取的原始图像由于受到各种条件的限制和随机干扰,往往不能直接使用,必须在图像处理的早期阶段对它进行灰度校正、噪声过滤等图像预处理。对于人脸图像而言,其预处理过程主要包括人脸图像的光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等。
  
  人脸图像特征提取
  
  人脸图像特征提取:人脸识别系统可使用的特征通常分为视觉特征、像素统计特征、人脸图像变换系数特征、人脸图像代数特征等。人脸特征提取就是针对人脸的某些特征进行的。人脸特征提取,也称人脸表征,它是对人脸进行特征建模的过程。人脸特征提取的方法归纳起来分为两大类:一种是基于知识的表征方法;另外一种是基于代数特征或统计学习的表征方法。
  
  基于知识的表征方法主要是根据人脸器官的形状描述以及他们之间的距离特性来获得有助于人脸分类的特征数据,其特征分量通常包括特征点间的欧氏距离、曲率和角度等。人脸由眼睛、鼻子、嘴、下巴等局部构成,对这些局部和它们之间结构关系的几何描述,可作为识别人脸的重要特征,这些特征被称为几何特征。基于知识的人脸表征主要包括基于几何特征的方法和模板匹配法。
  
  apiVersion: apps/v1
  
  kind: DaemonSet
  
  metadata:
  
  name: node-exporter-daemonset
  
  namespace: agent
  
  spec:
  
  selector:
  
  matchLabels:
  
  app: prometheus
  
  template:
  
  metadata:
  
  labels:
  
  app: prometheus
  
  spec:
  
  hostNetwork: true
  
  containers:
  
  - name: node-exporter
  
  image: prom/node-exporter
  
  imagePullPolicy: IfNotPresent
  
  command:
  
  - /bin/node_www.hnawesm.com exporter
  
  - --path.procfs
  
  - /host/proc
  
  - --path.sysfs
  
  - /host/sys
  
  - --collector.filesystem.ignored-mount-points
  
  - ^/(sys|proc|dev|host|etc)www.jintianxuesha.com($|/)
  
  volumeMounts:
  
  - name: proc
  
  mountPath: /host/proc
  
  - name: sys
  
  mountPath: /host/sys
  
  - name: root
  
  mountPath: /rootfs
  
  volumes:
  
  - name: proc
  
  hostPath:
  
  path: /proc
  
  - name: sys
  
  hostPath:
  
  path: /sys
  
  - name: root
  
  hostPath:
  
  path: /
  
  复制代码
  
  这里暂且不纠结其中的配置内容,包括Host网络、容器启动命令以及Volume,后面会专题介绍。
  
  同样,通过kubectl创建资源:
  
  kubectl apply -f node-exporter.yaml
  
  然后,通过kubectl查看Pod分布情况:
  
    可以看出,我们的Prometheus Node Exporter部署成功,且分别在两个Node节点都只部署了一个Pod副本。
  
  二、Job
  
  2.1 关于Job
  
  对于ReplicaSet、Deployment、DaemonSet等类型的控制器而言,它希望Pod保持预期数目并且持久运行下去,除非用户明确删除,否则这些对象一直存在,因此可以说他们说持久服务型任务的。
  
  对于非耐久性任务,比如压缩文件,任务完成后,Pod需要结束运行,不需要Ppod继续保持在系统中,这个时候就要用到Job。因此也可以说,Job是对ReplicaSet、Deployment、DaemonSet等持久性控制器的补充。
  
  2.2 Job的创建与运行
  
  同之前的创建资源方式一样,仍然采用通过YAML配置文件的方式进行创建,需要指定apiVersioin: batch 以及 kind: Job即可:
  
  apiVersion: batch/v1
  
  kind: Job
  
  (1)第一个Job
  
  这里我们以一个简单的小Job为例,看看一个简单的Job:当Job启动后,只运行一个Pod,Pod运行结束后整个Job也就立刻结束。
  
  复制代码
  
  apiVersion: batch/v1
  
  kind: Job
  
  metadata:
  
  name: edc-www.xcdeyiju.com job-hello-job
  
  namespace: jobs
  
  spec:
  
  template:
  
  metadata:
  
  labels:
  
  app: edc-job-hello-job
  
  spec:
  
  containers:
  
  - name: hello-job
  
  image: busybox
  
  imagePullPolicy: IfNotPresent
  
  command: ["echo"www.csyldl.com ,www.yuchengyulegw.com "hello edison's k8s job!"]
  
  restartPolicy: Never
  
  复制代码
  
  这里需要注意的是,对Job而言,其restartPolicy只能为Never或者OnFailure,这也是它与其他控制器的差别(如Deployment控制器还允许设置为Always)。这个Job要执行的任务也很简单,就是输出一段话“hello edison's k8s job!”就结束其生命了。
  
  PS:这里用到了一个busybox的镜像,busybox是一个软件工具箱,里边集成了Linux中几百个常用的Linux命令以及工具。如果我们只需要一个小型的Linux运行环境跑命令,完全可以使用这个busybox镜像,而不用拉取一个CentOS镜像。
  
  人脸图像匹配与识别:提取的人脸图像的特征数据与数据库中存储的特征模板进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。人脸识别就是将待识别的人脸特征与已得到的人脸特征模板进行比较,根据相似程度对人脸的身份信息进行判断。这一过程又分为两类:一类是确认,是一对一进行图像比较的过程,另一类是辨认,是一对多进行图像匹配对比的过程。

猜你喜欢

转载自www.cnblogs.com/qwangxiao/p/11350166.html