linux opencv口罩识别

  • Post author:
  • Post category:linux



(1条消息) linuxopencv口罩识别,经过opencv读取本地或者USB摄像头,文件夹提供正负样本和opencvxml模型.rar-嵌入式文档类资源-CSDN下载

经过几天摸索,实现了人脸识别和口罩识别代码,以口罩识别为案例,下面讲解如何实现

一、首先linux安装opencv3.4.1库,我这边使用cmake-gui去安装的,执行完成后,拷贝安装包内的opencv_createsamples和opencv_traincascade到一个文件夹,这两个文件是训练xml模型使用的。文件夹有脚本,使用脚本可以直接运行图中指令,等待生成xml模型。

做好准备工作,现在我pos文件夹内的图像是带色彩的图片,图片内容是正样本带口罩的人头图像,我将其归一化了,所有图片都通过opencv代码设置成20*20并且是灰度的图片,这里方便训练,训练时间也大大的减少了。

负样本就比较简单了,保证所有图片都大于20*20像素,不用归一化直接将所有图片灰度化就可以了。

指令1:生成正样本图片文件名,顺序排列

指令2:生成负样本图片文件名,顺序排列

指令3:在samples生成所有图片的vec文件

指令4:将samples里面的文件合成总体的samples.vec

指令5:在data文件夹内生成xml,最后在程序里面使用该模型就ok了

我这边生成模型的文件结构

opencv读取摄像头,这边我将每一帧数据都显示上系统时间,并且将每一帧数据转换成yuv格式保存成文件了。

然后将每一帧的数据转为灰度显示,这里有个缺陷就是我只做一个判断,初步想是先实现人头检测的,检测到人头之后再进行口罩识别,分为两部分效果更为精确,由于人头正负样本太大,训练几天都木有完成,只能做好这个样本检测先,注意detectMultiScale参数设置

最后linux显示出图像画面,就会框出戴口罩的人物,没戴口罩就木有框框



版权声明:本文为loglingyy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。