tag 标签: 人脸识别

相关博文
  • 2024-11-15 17:45
    41 次阅读|
    0 个评论
    本篇测评由优秀测评者“eefocus_3914144”提供。 本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。 OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头) 1、安装python3-opencv apt install python3-opencv 2、查看摄像头支持的格式与分辨率 root @debian :~ # v4l2-ctl --device=/dev/video0 --list-formats-ext 经测试,只能支持640*480 为此建立opencv_test.py import cv2 video = cv2.VideoCapture( 0 ) 设置相机参数 video .set(cv2.CAP_PROP_FRAME_WIDTH, 1280) video .set(cv2.CAP_PROP_FRAME_HEIGHT, 720) while True: ret, frame = video. read () cv2. imshow ( "A video" , frame) c = cv2. waitKey ( 1 ) if c == 27 : breakvideo. release ()cv2. destroyAllWindows () 保存后执行”python3 opencv_test.py OpenCV装好后,可以为后面的人脸检测提供可行性。 要实现人脸识别功能,首先要进行人脸检测,判断出图片中人脸的位置,才能进行下一步的操作。 OpenCV人脸检测方法 在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。用得最多的是Haar特征人脸检测,此外OpenCV中还集成了深度学习方法来实现人脸检测。 【参考资料】 使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,模型下载......)_opencv人脸识别-CSDN博客 【Haar级联检测器预训练模型下载】 opencv/opencv: Open Source Computer Vision Library (github.com) 下载好的,在 opencv-4.xdatahaarcascades 文件夹下有模型,把他上传到开发板。 【获取检测人脸的图片】 我在百度上找到了**的图片,并把它也上传到开发板。 【编写检测代码】 import numpy as np import cv2 as cv if __name__ == '__main__' : # (6) 使用 Haar 级联分类器 预训练模型 检测人脸 # 读取待检测的图片 img = cv.imread( "yanmi.jpg" ) print (img.shape) # 加载 Haar 级联分类器 预训练模型 model_path = "haarcascade_frontalface_alt2.xml" face_detector = cv.CascadeClassifier(model_path) # # 使用级联分类器检测人脸 faces = face_detector.detectMultiScale(img, scaleFactor= 1.1 , minNeighbors= 1 , minSize=( 30 , 30 ), maxSize=( 300 , 300 )) print (faces.shape) # (17, 4) print (faces ) # (x, y, width, height) # 绘制人脸检测框 for x, y, width, height in faces: cv.rectangle(img, (x, y), (x + width, y + height), ( 0 , 0 , 255 ), 2 , cv.LINE_8, 0 ) # 显示图片 cv.imshow( "faces" , img) cv.waitKey( 0 ) cv.destroyAllWindows() 【实验效果】 运行程序后,可以正确地识别,效果如下:
  • 2022-7-5 15:52
    3 次阅读|
    0 个评论
    自从物联网(IoT)出现以来,边缘智能颇具颠覆性的创新,以及边缘计算应用都逐渐变得非常普遍,例如人脸识别,语音识别,物体识别,或者汽车上用的车辆识别系统都有它的身影。当然,这对算力的要求逐渐提高,NPU的性能也更受到注重,也作为了CPU与GPU外的下一个性能指标。 本文介绍的是米尔于2021年底发布的新品—— MYC-JX8MPQ核心板 ,作为AI领域的里程碑CPU模组,它基于NXP第一颗搭载了NPU的高端芯片 i.MX8MPlus ,这个模组主要面向AI场景,具有2.3 TOPS算力,4核 Cortex-A53 + Cortex-M7,主频1.8GHz+800MHz。 随着市场上机器学习开发的需求加大,NXP大力扩展eIQ软件环境,现在eIQ已经正式加入到BSP镜像中,它支持OpenCV,TensorFlow-Lite,armNN,PyTorch等框架。下面,我们借用一幅图来说明8M系列针对eIQ支持情况。 可以看到目前只有i.MX 8m Plus搭载了NPU神经网络单元,那么NPU到底强在哪里,请看如下对比。我们用了TensorFlow-Lite框架《将军》图为例,来对比CPU,GPU,NPU算法能力。 下表展示了通过对应的命令算出来的结果。可以看到,CPU的算力为平均44.832MS、GPU是160.934MS、NPU仅2.866MS,通过数据可以直观地看出NPU的算力更强,更能满足边缘计算的高标准要求。 这款 MYC-JX8MPQ 模组除拥有强悍的处理器之外,还有几个特别优势: 支持双MIPI CSI接口,可实现双路摄像头数据同时输入, 拥有强大的硬件编解码能力,支持H.264编解码; 多媒体接口丰富GPU/VPU、HDMI,支持HiFi语音及其他多媒体功能; 丰富的高速接口,传输速率快,其中2个千兆以太网、2个两用USB 3.0高速接口,可以保障语音和视频的高速传输; 所以,MYC-JX8MPQ可以在高性能AI设备、边缘计算、5G网关、高性能工业计算器、仪表仪器、工业网关设备等领域投入应用。 以上是对MYC-JX8MPQ核心板的介绍,同时米尔也提供配套的开发板,外设资源丰富。 登录米尔电子官网了解更多: http://www.myir-tech.com/product/MYC-J1028X.htm 关于米尔 米尔,专注嵌入式处理器模块设计和研发,是领先的嵌入式软硬件方案的供应商。米尔在嵌入式领域具有20年的行业技术经验,为客户提供专业的ARM工业控制板、ARM开发板、ARM核心板、ARM开发工具、充电桩计费控制单元及充电控制板等产品和技术服务。此外,米尔还可通过涵盖众多ARM处理器及操作系统的专业技术提供定制设计解决方案,通过专业且高效率服务帮助客户加速产品上市进程。
  • 热度 7
    2022-5-17 18:08
    1101 次阅读|
    0 个评论
    基于QT+OpenCV的人脸识别-米尔iMX8M Plus开发板的项目应用
    本篇测评由电子工程世界的优秀测评者“流行科技”提供。 此次测试的开源项目,是基于QT+OpenCV的人脸识别打卡项目。本次体验使用的是开源的代码,此代码本来是运行在WIN下的,为了测试稍微进行了修改,让其运行在米尔iMX8M Plus开发板上。 测试项目实际是分了两个工程,一个工程是作为管理员控制功能使用,添加人脸信息。同时也可以查询到打卡记录,对从机进行下发通知等等。 人脸识别我们主要需要用到opencv的人脸检测分类器。 OpenCV编译完成后已经提供好了的。 因为这里还需要涉及到训练模型,有了模型后才能更好地识别,所以还是简单介绍下怎么训练的吧。 CascadeClassifier cascada; //将opencv官方训练好的人脸识别分类器拷贝到自己的工程目录中 cascada.load("F:videoccchaarcascade_frontalface_alt2.xml"); VideoCapture cap(1); //0表示电脑自带的,如果用一个外接摄像头,将0变成1 Mat frame, myFace; int pic_num = 1; while (1) { //摄像头读图像 frame; vector faces;//vector容器存检测到的faces Mat frame_gray; cvtColor(frame, frame_gray, COLOR_BGR2GRAY);//转灰度化,减少运算 cascada.detectMultiScale(frame_gray, faces, 1.1, 4, CV_HAAR_DO_ROUGH_SEARCH, Size(70, 70), Size(1000, 1000)); printf("检测到人脸个数:%dn", faces.size()); //识别到的脸用矩形圈出 for (int i = 0; i < faces.size(); i++) { rectangle(frame, faces, Scalar(255, 0, 0), 2, 8, 0); } //当只有一个人脸时,开始拍照 if (faces.size() == 1) { Mat faceROI = frame_gray(faces );//在灰度图中将圈出的脸所在区域裁剪出 //cout << faces .x << endl;//测试下face .x resize(faceROI, myFace, Size(92, 112));//将兴趣域size为92*112 putText(frame, to_string(pic_num), faces .tl(), 3, 1.2, (0, 0, 225), 2, 0);//在 faces .tl()的左上角上面写序号 string filename = format("F:video%d.jpg", pic_num); //图片的存放位置,frmat的用法跟QString差不多 imwrite(filename, myFace);//存在当前目录下 imshow(filename, myFace);//显示下size后的脸 waitKey(500);//等待500us destroyWindow(filename);//:销毁指定的窗口 pic_num++;//序号加1 if (pic_num == 11) { return 0;//当序号为11时退出循环,一共拍10张照片 } } int c = waitKey(10); if ((char)c == 27) { break; } //10us内输入esc则退出循环 imshow("frame", frame);//显示视频流 waitKey(100);//等待100us } return 0; 通过上面的代码,完成图像采集。 //读取你的CSV文件路径. //string fn_csv = string(argv ); string fn_csv = "F:videocccat.txt"; // 2个容器来存放图像数据和对应的标签 vector images; vector labels; // 读取数据. 如果文件不合法就会出错 // 输入的文件名已经有了. try { read_csv(fn_csv, images, labels); //从csv文件中批量读取训练数据 } catch (cv::Exception& e) { cerr << "Error opening file "" << fn_csv << "". Reason: " << e.msg << endl; // 文件有问题,我们啥也做不了了,退出了 exit(1); } // 如果没有读取到足够图片,也退出. if (images.size() <= 1) { string error_message = "This demo needs at least 2 images to work. Please add more images to your data set!"; CV_Error(CV_StsError, error_message); } for (int i = 0; i < images.size(); i++) { //cout<
  • 热度 4
    2018-11-25 00:31
    2718 次阅读|
    2 个评论
    近几年,由于人脸识别的应用越来越普遍,各种人脸算法也是层出不穷,其中较为常见的方法是采用双路摄像头:彩色摄像头用于人脸识别、回显等;红外摄像头用于活体检测。 RK3288 由于其内部只有一路 ISP ,所以如果要接入双路摄像头,可以采用以下三种方式: 1 、 外接两路 USB CAM 2 、 外接一路 RAW SENSOR 和一路 YUV SENSOR 3 、 外接两路 RAW SENSOR 同时外加 ISP 处理芯片 上述三种方式各有利痹,大致如下: 外接两路 USB CAM, 将 USB CAM 输出的 YUV 信号给到 RK3288, 这种方法较为方便快捷,但是功耗相对较大,同时由于 USB CAM 其 ISP 性能的局限性,色彩还原、曝光处理、宽动态、帧率等各方面性能相对不尽如意。 外接一路 RAW SENSOR 和一路 YUV SENSOR, 一方面采用 RK3288 内部的 ISP 处理 RAW 数据,这部份需要原厂的技术支持;另一方面采用内部自带 ISP 功能的 SENSOR, 但是这种 SENSOR 的 ISP 性能一般很弱,效果较为一般。 外接两路 RAW SENSOR 和 ISP 处理芯片,由外置 ISP 芯片将 RAW 数据经过一系列的算法处理,得到高质量的 YUV 信号输出到 RK3288 。由于目前的 ISP 芯片技术较为成熟,该效果表现优越。但是这种方式需要 ISP 芯片原厂的技术支持,并且设有较高的门槛条件。 基于上述,对于品质及性能要求较高的产品和应用,我们建议采用第三种方式:外置 ISP 处理芯片。目前已有成熟的外置 ISP 处理芯片的摄像头模组,已固化好优质的算法,不需要再去调试图像效果
  • 热度 22
    2015-4-9 12:49
    3046 次阅读|
    3 个评论
    人脸识别的算法到底发展到了什么程度,今年趁着2015慕尼黑展,特别留意了许多企业新推出的人脸识别技术,果然有新亮点,许多新算法的应用在传统的基础上更近一步,有融合全局的算法,也有局部特征的识别算法,如性别判定(男?女?。。)、年龄判定(25岁?30岁?。。)、表情判定(高兴?悲伤?。。)、目光视线判定(目光视线角度)、面部朝向判定(右转?左转?)、眨眼判定、人脸对比等等,很多功能的后续应用都引人遐想。 识别率与识别速度也在以前的基础上进一步提升,一些方案采用特征抽取识别算法,所需的建模空间小,能支持快速识别处理,同时也比利用辉度值直方分布抽取的方法更不受光线明暗的影响,可以在较为弱光的环境下进行识别。 本着对年龄算法将信将疑的精神,我亲自做了测试,结果显示年轻三岁。虽然我期待年轻更多,但作为实验准确性来说还是比较靠谱,介绍人员也表示一般测试结果会“显”年轻。性别判定没问题、表情识别(微笑OK,发怒(给出结果生气)、皱眉(痛苦))、视线判定略有延迟。 对于这些新算法的应用领域,除了传统的监控设备、安防外,厂家也把如电视空调在内的智能家电、市场调研在内的人流分析、机器人等纳入了目标范围,当然针对不同算法的功能模块,都可以进行定制,系统应用的想象空间更大,比如在车载环视系统中,现在比较多采用人体检测与移动算法来报警与车辆可能的碰撞等。 不过提出识别系统的厂家在出售形式上依然以硬件售出为主,更倾向于提供标准的开发模块,内含摄像头及传感算法等组件成套出售为主。 图为对路人实时信息识别。识别速度较快。
相关资源