虹软SDK调用USB摄像头进行人脸识别

程序

这个和上一篇 虹软SDK调用USB摄像头 基本相同,只是把保存文件那部分改成人脸识别,并保存对应照片
主程序部分改成

while(1){
		//取usb摄像头的缓存
		if (dqbuf(fd, &buf)) {
			continue;
		}

		//中间处理
		//把jpg图片解码成bgr数据
	    jpg2bgr((unsigned char*)map_buf[buf.index].start, buf.bytesused, &pbgr_data, &width, &height);

	    //printf("pic %s width: %d, height: %d \n", jpg_name, width, height);
		//抽取人脸特征
	    ret = arcsorft_face_process2(width, height, pbgr_data, &feature);
		//如果发现了人脸, 人脸对比
		if(ret == 1){
			//人脸对比
			ASF_FaceFeature feature1;
			float confidenceLevel = 0.0;
			float max_confidenceLevel = 0.0;
			int max_similar_id = -1;
			for(int i = 0; i < face_count; i++) {
				feature1.feature = face_table + i * (1032 + 255 + 19);
				feature1.featureSize = 1032;

				//printf("%s\n", face_table + i * (1032 + 255 + 19) + 1032);

				confidenceLevel = arcsorft_face_comp(&feature1,&feature);
				//置信度大于阈值, 并且阈值大于以前的
				if(confidenceLevel > 0.8 && confidenceLevel > max_confidenceLevel) {
					max_confidenceLevel = confidenceLevel;
					max_similar_id = i;
				}
			}
			//max_similar_id
			if(max_similar_id != -1){
				printf("name: %s, id: %s, max_confidenceLevel: %f\n",
				       &face_table[max_similar_id*(1032 + 255 + 19) +1032], 
					   &face_table[max_similar_id*(1032 + 255 + 19) +1032 + 255],
					   max_confidenceLevel);
				//保存图片
				time_t t = time(NULL);
				struct tm *currentTime = localtime(&t);
				char jpg_name[255];
				sprintf(jpg_name, "../cam/cam%s_%02d_%02d_%02d.jpg", &face_table[max_similar_id*(1032 + 255 + 19) +1032],
				                                                    currentTime->tm_hour, 
																	currentTime->tm_min, 
																	currentTime->tm_sec );
			    FILE *fp_cam = fopen(jpg_name, "wb");
				fwrite(map_buf[buf.index].start, sizeof(char), buf.bytesused, fp_cam);
				fclose(fp_cam);
				sleep(2);
			}
			max_similar_id = -1;
		} 
		//把usb摄像头缓存放回池
		if (qbuf(fd, &buf)) {
			continue;
		}		
	}

测试:

编译后运行,在数据库的人被捕捉到后打印出相关信息

face/samplecode/ASFTestDemo/build$ sudo ./arcsoft_face_engine_test
usb-0000:00:12.2-3
open_usb_camera: /dev/video0
set_fmt: 1920x1080

************* ArcFace SDK Info *****************
startTime: 2024-09-09 00:00:00
endTime: 2025-09-09 00:00:00

Version:3.0.12402010101.3
BuildDate:07/29/2020
CopyRight:Copyright 2020 ArcSoft Corporation Limited. All rights reserved.

************* Face Recognition *****************
ASFInitEngine sucess: 0
face_count: 2322

pic ../jpg_cmp/111.jpg width: 640, height: 807
111.jpg is name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.962285
pic ../jpg_cmp/200000000000000001.jpg width: 376, height: 390
200000000000000001.jpg is name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 1.000000
pic ../jpg_cmp/cam300.jpg width: 1920, height: 1080
no body in pic
pic ../jpg_cmp/cam400.jpg width: 1920, height: 1080
no body in pic
pic ../jpg_cmp/qqq.jpg width: 604, height: 666
qqq.jpg is name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.930316
pic ../jpg_cmp/ffff.jpg width: 1280, height: 1280
ffff.jpg is name: 100000000000000552, id: 100000000000000552, max_confidenceLevel: 0.989109
pic ../jpg_cmp/cam200.jpg width: 1920, height: 1080
cam200.jpg is name: 100000000000000552, id: 100000000000000552, max_confidenceLevel: 0.956321
pic ../jpg_cmp/222.jpg width: 636, height: 609
not white table person!!!!!!!!!!!
pic ../jpg_cmp/333.jpg width: 492, height: 473
333.jpg is name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.917396
left: 1056, top: 135, right: 1718, bottom: 797 ASFFaceFeatureExtractEx fail: 0x14005
name: 100000000000000552, id: 100000000000000552, max_confidenceLevel: 0.849967
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.936623
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.904478
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.889559
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.831630
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.830464
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.837567
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.828162
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.935891
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.904550
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.807445
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.918125
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.836467
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.946966
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.912438
left: 1050, top: 872, right: 1320, bottom: 1142 ASFFaceFeatureExtractEx fail: 0x14005
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.903827
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.916218
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.935521
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.919060
left: 1152, top: 818, right: 1495, bottom: 1161 ASFFaceFeatureExtractEx fail: 0x14005
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.804163
left: 1120, top: 715, right: 1605, bottom: 1200 ASFFaceFeatureExtractEx fail: 0x14005
left: 1145, top: 746, right: 1608, bottom: 1209 ASFFaceFeatureExtractEx fail: 0x14005
left: 1147, top: 745, right: 1626, bottom: 1224 ASFFaceFeatureExtractEx fail: 0x14005
left: 1162, top: 730, right: 1624, bottom: 1191 ASFFaceFeatureExtractEx fail: 0x14005
left: 995, top: 785, right: 1374, bottom: 1164 ASFFaceFeatureExtractEx fail: 0x14005
left: 1009, top: 821, right: 1356, bottom: 1168 ASFFaceFeatureExtractEx fail: 0x14005
left: 1036, top: 814, right: 1387, bottom: 1165 ASFFaceFeatureExtractEx fail: 0x14005
left: 1037, top: 808, right: 1391, bottom: 1162 ASFFaceFeatureExtractEx fail: 0x14005
left: 1038, top: 810, right: 1389, bottom: 1161 ASFFaceFeatureExtractEx fail: 0x14005
left: 1030, top: 803, right: 1386, bottom: 1159 ASFFaceFeatureExtractEx fail: 0x14005
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.809296
name: 200000000000000001, id: 200000000000000001, max_confidenceLevel: 0.827585
left: 722, top: 678, right: 1249, bottom: 1205 ASFFaceFeatureExtractEx fail: 0x14005
name: 100000000000000552, id: 100000000000000552, max_confidenceLevel: 0.904571
name: 100000000000000552, id: 100000000000000552, max_confidenceLevel: 0.942690
name: 100000000000000552, id: 100000000000000552, max_confidenceLevel: 0.928502

能够正常识别

虹软SDK是一种人脸识别技术,它广泛应用于各种领域,包括安防监控、社交娱乐、金融支付等。在CSND上,可以找到丰富的关于虹软SDK人脸识别的技术文章和开发案例。 虹软SDK人脸识别技术具有高性能、高准确性和高稳定性的特点。它采用深度学习算法,通过对人脸进行特征分析和匹配,能够实现快速、精准地识别人脸。该技术还可以检测人脸的关键点,如眼睛、鼻子、嘴巴等,用于表情分析和人脸特征提取。 虹软SDK人脸识别还具有优良的适应能力。它能够在复杂的环境条件下进行准确的人脸检测和识别,识别效果不受光线、角度、年龄、肤色等因素的限制。同时,虹软SDK还支持多人同时识别,可以实现快速的批量人脸识别。 在CSND上,有许多文章介绍了如何使用虹软SDK实现人脸识别功能。这些文章详细介绍了虹软SDK的安装使用步骤、API接口的调用方法及其返回结果的解析。同时,还提供了许多开发案例和技术分享,包括人脸识别图像处理方法、模型训练技巧和优化策略等。 在虹软SDK人脸识别的开发过程中,CSND是一个宝贵的资源平台。开发者可以通过学习和参考这些文章和案例,快速掌握虹软SDK的使用方法,并且通过技术交流平台与其他开发者进行问题讨论和资源共享。这将有助于提高人脸识别系统的开发效率和质量,促进技术的快速应用和推广。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值