我怎么能显示数据库中不认识的人?

5视图(30天)
大家好!我致力于实时人脸识别,使分类器。我的问题是,如果有人在数据库进来(代码)将他/她在数据库进行分类。所以我怎么能确定有人不在数据库并显示不认可呢?我跟踪的脸用KLT算法和注释的代码
1评论
阿里Subhan
阿里Subhan 2018年5月26日
编辑:阿里Subhan 2018年5月26日
% %
清除所有;
clc;
% %
事先= alexnet;
featureLayer =“fc7”;
负载(“FACE_classifier”);
%创建面对探测器对象。
faceDetector = vision.CascadeObjectDetector ();
faceDetector.MergeThreshold = 9;
%创建重点跟踪对象。
pointTracker =愿景。PointTracker (' MaxBidirectionalError ', 2);
%创建远程对象。
凸轮=摄像头();
%获取一帧大小。
videoFrame =快照(cam);
frameSize =大小(videoFrame);
%创建视频播放器对象。
放像机=愿景。放像机(“位置”,100年[100 [frameSize (2),
frameSize (1)] + 30);
% %
runLoop = true;
numPts = 0;
frameCount = 0;
虽然runLoop
%得到下一帧。
videoFrame =快照(cam);
videoFrameGray = rgb2gray (videoFrame);
frameCount = frameCount + 1;
如果numPts < 10
%检测模式。
bbox = faceDetector.step (videoFrameGray);
如果~ isempty (bbox)
%找到角点检测区域内。
点= detectMinEigenFeatures (videoFrameGray,“投资回报”bbox (:));
%初始化跟踪。
xyPoints = points.Location;
numPts =大小(xyPoints, 1);
暂停(0.5);标题(“测试图”);
测试= imcrop (videoFrame bbox);
imshow(测试);
testSet = imresize(测试(227 227));
testFeatures =激活(事先,testSet featureLayer);
predictedLabels =预测(FACE_classifier testFeatures)
释放(pointTracker);
初始化(pointTracker xyPoints videoFrameGray);
%保存点的一个副本。
oldPoints = xyPoints;
%将矩形表示为(x, y, w h)成一个
% M-by-2 (x, y)坐标矩阵的四个角。这
%是需要能够改变边界框显示
%的方向面对。
:bboxPoints = bbox2points (bbox (1));
%将盒子角落转换成(x1 y1 x2 y2 x3 y3 x4 y4)
% insertShape所需的格式。
bboxPolygon =重塑(bboxPoints ', 1, []);
%显示一个边界框周围发现的脸。
videoFrame = insertShape (videoFrame,“多边形”bboxPolygon,“线宽”3);
%显示检测到的角落。
videoFrame = insertMarker (videoFrame xyPoints,“+”,“颜色”,“白色”);
结束
其他的
%跟踪模式。
[xyPoints, isFound] = (pointTracker videoFrameGray)步;
visiblePoints = xyPoints (isFound:);
oldInliers = oldPoints (isFound:);
numPts =大小(visiblePoints, 1);
如果numPts > = 10
%估计老点之间的几何变换
%和新观点。
[xform, oldInliers visiblePoints] = estimateGeometricTransform (
oldInliers visiblePoints,“相似”,“MaxDistance”4);
%转换应用于边界框。
bboxPoints = transformPointsForward (xform, bboxPoints);
%将盒子角落转换成(x1 y1 x2 y2 x3 y3 x4 y4)
% insertShape所需的格式。
bboxPolygon =重塑(bboxPoints ', 1, []);
%显示一个边界框的脸被跟踪。
videoFrame = insertShape (videoFrame,“多边形”bboxPolygon,“线宽”3);
%显示跟踪点。
videoFrame = insertMarker (videoFrame visiblePoints,“+”,“颜色”,“白色”);
%重置点。
oldPoints = visiblePoints;
选点(pointTracker oldPoints);
结束
结束
%显示注释视频帧使用视频播放器对象。
步骤(放像机、videoFrame);
%检查是否视频播放器窗口已经关闭。
runLoop = isOpen(放像机);
结束
%清理。清楚凸轮;释放(放像机);释放(pointTracker);释放(faceDetector);

登录置评。

答案(1)

图像分析
图像分析 2018年5月26日
编辑:图像分析 2018年5月26日
这个怎么样:
uiwait (warndlg (“不认识!”));
哦,请参阅 这个链接
8的评论
图像分析
图像分析 2018年5月26日
Alexnet会告诉你。你会有一个输出数据库中的每一个人。你应该有一个输出是正确的,如果人在那里。如果这个人不是在训练集,那么所有的输出将是错误的。

登录置评。