adaBoost人脸识别没有用
从来没有检测到人脸过,不知有什么问题cascade=(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);static...
从来没有检测到人脸过,不知有什么问题
cascade=(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);
static CvScalar color[]={0,0,255};
double scale=1.3;
IplImage* gray_img=cvCreateImage(cvSize(pFrame->width,pFrame->height),8,1);
IplImage* small_img1=cvCreateImage(cvSize(cvRound(pFrame->width/scale),cvRound(pFrame->height/scale)),8,1);
IplImage* small_img=cvCreateImage(cvSize(cvRound(pFrame->width/scale),cvRound(pFrame->height/scale)),8,1);
cvCvtColor(pFrame,gray_img,CV_BGR2GRAY);
cvResize(gray_img,small_img1,CV_INTER_LINEAR);
cvEqualizeHist(small_img1,small_img);
if(cascade){
storage=cvCreateMemStorage(64);
cvClearMemStorage(storage);
faces=cvHaarDetectObjects(pFrame,cascade,storage,1.2,2,CV_HAAR_DO_CANNY_PRUNING,cvSize(20,20));
targetNum=(faces?faces->total:0);
for(int i=0;i<targetNum;i++){
CvRect* r=(CvRect*)cvGetSeqElem(faces,i);
cvRectangle(pFrame,cvPoint((r->x),(r->y)),cvPoint((r->x+r->width),(r->y+r->height)),color[0],3,8,0);
}
ShowImage(pFrame,1);
cvReleaseMemStorage(&storage);
cvReleaseHaarClassifierCascade(&cascade);
}else{
MessageBox("无法加载分类器!",0,MB_OK);
}
已经解决,只是现在误报率比较高,能如何改进呐 展开
cascade=(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);
static CvScalar color[]={0,0,255};
double scale=1.3;
IplImage* gray_img=cvCreateImage(cvSize(pFrame->width,pFrame->height),8,1);
IplImage* small_img1=cvCreateImage(cvSize(cvRound(pFrame->width/scale),cvRound(pFrame->height/scale)),8,1);
IplImage* small_img=cvCreateImage(cvSize(cvRound(pFrame->width/scale),cvRound(pFrame->height/scale)),8,1);
cvCvtColor(pFrame,gray_img,CV_BGR2GRAY);
cvResize(gray_img,small_img1,CV_INTER_LINEAR);
cvEqualizeHist(small_img1,small_img);
if(cascade){
storage=cvCreateMemStorage(64);
cvClearMemStorage(storage);
faces=cvHaarDetectObjects(pFrame,cascade,storage,1.2,2,CV_HAAR_DO_CANNY_PRUNING,cvSize(20,20));
targetNum=(faces?faces->total:0);
for(int i=0;i<targetNum;i++){
CvRect* r=(CvRect*)cvGetSeqElem(faces,i);
cvRectangle(pFrame,cvPoint((r->x),(r->y)),cvPoint((r->x+r->width),(r->y+r->height)),color[0],3,8,0);
}
ShowImage(pFrame,1);
cvReleaseMemStorage(&storage);
cvReleaseHaarClassifierCascade(&cascade);
}else{
MessageBox("无法加载分类器!",0,MB_OK);
}
已经解决,只是现在误报率比较高,能如何改进呐 展开
2个回答
展开全部
可以通过调整检测代码的参数来提高人脸检测正确率。
cvHaarDetectObjects是opencv检测人脸的接口,要提高检测精度,可以将min_neighbors值设置高一些,cvSize(20,,20)是检测人脸的大小,就是人脸框不小于20,这个参数也可以在一定程度上过滤那些误识别的小人脸框,同时还能提高检测速度。
这个接口的具体详解可以参考http://blog.sina.com.cn/s/blog_620782850100o44m.html
cvHaarDetectObjects是opencv检测人脸的接口,要提高检测精度,可以将min_neighbors值设置高一些,cvSize(20,,20)是检测人脸的大小,就是人脸框不小于20,这个参数也可以在一定程度上过滤那些误识别的小人脸框,同时还能提高检测速度。
这个接口的具体详解可以参考http://blog.sina.com.cn/s/blog_620782850100o44m.html
深圳量子动力
2024-10-28 广告
2024-10-28 广告
摄像头人脸捕捉可找深圳量子动力双目摄像系统可通过无线方式进行面部捕捉,可以满足在家、工作室、直播间、专业动捕棚等多种场景的不同使用人群。支持Metahuman Animator解算,支持升级animator高精度表情方案...
点击进入详情页
本回答由深圳量子动力提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询