In example 1, a simple face detection code is provided which runs at 1-2 frames per second.
To make it faster, we can modify the parameters to detectMultiScale function to achieve very high frame rate.
Example 2 provides the code for minor optimization of code to make it considerably reducing the size of image for detecting face and remapping the face Region Of Interest (ROI) in the original image.
Here the last two parameters - Size minSize=Size() and Size maxSize=Size() - are adaptively changed to reduce computational complexity. These parameters are responsible for restricting the search window of the function to vary from minimum size(minSize) to maximum size(maxSize) for face detection.
Note : You need a camera connected, otherwise it will throw an error.
To make it faster, we can modify the parameters to detectMultiScale function to achieve very high frame rate.
Example 2 provides the code for minor optimization of code to make it considerably reducing the size of image for detecting face and remapping the face Region Of Interest (ROI) in the original image.
Here the last two parameters - Size minSize=Size() and Size maxSize=Size() - are adaptively changed to reduce computational complexity. These parameters are responsible for restricting the search window of the function to vary from minimum size(minSize) to maximum size(maxSize) for face detection.
Note : You need a camera connected, otherwise it will throw an error.
Example 1: (Face detection from Video captured from camera)
--------------#include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <stdio.h> using namespace std; using namespace cv; Mat detectFace(Mat src); int main( ) { VideoCapture cap(0); namedWindow( "window1", 1 ); while(1) { Mat frame; cap >> frame; frame=detectFace(frame); imshow( "window1", frame ); // Press 'c' to escape if(waitKey(1) == 'c') break; } waitKey(0); return 0; } Mat detectFace(Mat image) { // Load Face cascade (.xml file) CascadeClassifier face_cascade( "C:/OpenCV243/data/Haarcascades/haarcascade_frontalface_alt2.xml" ); // Detect faces std::vector<Rect> faces; face_cascade.detectMultiScale( image, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) ); // Draw circles on the detected faces for( int i = 0; i < faces.size(); i++ ) { Point center( faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5 ); ellipse( image, center, Size( faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 ); } return image; }--------------
Example 2: (Optimizing the parameters of detectMultiScale for faster operation)
--------------#include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <stdio.h> using namespace std; using namespace cv; double min_face_size=20; double max_face_size=200; Mat detectFace(Mat src); int main( ) { VideoCapture cap(0); namedWindow( "window1", 1 ); while(1) { Mat frame; cap >> frame; frame=detectFace(frame); imshow( "window1", frame ); // Press 'c' to escape if(waitKey(1) == 'c') break; } waitKey(0); return 0; } Mat detectFace(Mat image) { // Load Face cascade (.xml file) CascadeClassifier face_cascade( "C:/OpenCV243/data/Haarcascades/haarcascade_frontalface_alt2.xml" ); // Detect faces std::vector<Rect> faces; face_cascade.detectMultiScale( image, faces, 1.2, 2, 0|CV_HAAR_SCALE_IMAGE, Size(min_face_size, min_face_size),Size(max_face_size, max_face_size) ); // Draw circles on the detected faces for( int i = 0; i < faces.size(); i++ ) { min_face_size = faces[0].width*0.8; max_face_size = faces[0].width*1.2; Point center( faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5 ); ellipse( image, center, Size( faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 ); } return image; }--------------
Thank you so much. thank you. But i have one question: How to crop the ellipse area?
ReplyDeleteplease visit this page for your answer...
Deletehttp://opencvexamples.blogspot.com/2014/02/crop-elliptical-region-from-image.html
It works perfect when we need it, so thanks for providing such brief examples.
ReplyDeletehttp://algorithm-research.weebly.com
Hello! I got the following error message when I run the code:
ReplyDeleteOpenCV Error: Assertion failed (axes.width >= 0 && axes.height >= 0 && thickness <= 255 &&
ilds\master_PackSlave-win32-vc12-shared\opencv\modules\imgproc\src\drawing.cpp, line 1772
Would you please help me? Thanks so much in advance!
here again the whole error message:
DeleteOpenCV Error: Assertion failed (axes.width >= 0 && axes.height >= 0 && thickness <= 255 && 0 <= shift && shift <= XY_SHIFT) in cv::ellipse, file C:\bu
ilds\master_PackSlave-win32-vc12-shared\opencv\modules\imgproc\src\drawing.cpp, line 1772
This comment has been removed by the author.
ReplyDeleteThank you so much. thank you. It works perfect, But it is not drawing circles on the detected faces. In my case videos from my webcam.
ReplyDeleteThanks but I don't see where you set the ROI, only that you specified the min and max detection size and increased the detection scale a bit.
ReplyDeleteHow fast it is in second?
ReplyDeleteHow to modify parameters if the feature detection is by HOG?
ReplyDeleteHigh quality in cleaning It is sure that in the vicinity of cleaning company in Taif we are specialized companies in all types of cleaning operations from the exterior and exposed to dust and weather factors by cars and wind, whether for villas or buildings, hotels and storefronts to the premises and clean and clear the floors شركة تنظيف بالطائف .
ReplyDeleteSteam cleaning is very useful in cases of fabrics that are difficult to rub as they are exposed to rapid damage and in the past days before the development occurred in the cleaning operations was placed detergent on the fabrics and leave a period and then remove the dirt and that leaves a kind of problems on the furnishings شركة تنظيف بالبخار بالطائف .
The best insulation materials are used according to the quality of the place in which the house is located. If you are in a high temperature zone, two types of insulation will be carried out: thermal insulation at the top and bottom شركة عزل اسطح بالطائف
شركة نقل عفش بالطائف Each house is not without a variety of brushes in the interior and each period wishing to those inside the house in the renovation and transfer of the garbage شركة نقل عفش بمكة .
When we are exposed to insects in the place should be disposed of immediately and will be easily with an شركة مكافحة حشرات بالطائف we are working to provide serious types of organic pesticides that protect all types of insects .
اصلاح سريع وشامل لاعطال التكييفات الان مع مراكز صيانة تكييفات يونيون اير التى تضمن لكم الحصول علي مستوي احترافي من خدمات صيانة يونيون اير بواسطة فريق متميز من فنيين ومهندسيين الصيانة المتوافرين في فروع شركة يونيون اير لاصلاح وصيانة كافه الاجهزة الكهربائية المعطلة
ReplyDeletehttp://unionairemaintenance.com
اعادة صياغه عربي
ReplyDeleteريرايتر
مشاريع صغيرة
مشروع تجاري
Looking for help with your thesis? Someone to Write My Thesis USA as well as acess Best Thesis Writing Help From the leading Affordable Writing Services Online And get your assignment done on time.
ReplyDeletethuế khoán và cách tính thuế khoán
ReplyDeletethu nhập vãng lai và cách tính thuế
điểm mới về thuế đối với hộ kinh doanh
đăng ký thuế cho hộ kinh doanh
đối tượng nộp thuế nhà thầu
xử lý các khoản nợ phu thu khó đòi
==
giao dịch liên kết và thủ tục thuế liên quan
điều kiện làm cam kết thu nhập cá nhân
nộp thuế thay chủ nhà có được hạch toán
tạm ứng hợp đồng có phải xuất hóa đơn
quyết toán thuế tncn với người chuyển đơn vị
cá nhân cho doanh nghiệp mượn tiền có được tính lãi
==
xử lý mua xăng dầu trên 20 triệu
phòng khám bán thuốc có phải chịu thuế gtgt
cá nhân cho thuê nhà dưới 100 triệu có phải nộp thuế
xác định thuế tndn khi có khoản lãi chênh lệch
chi phí chơi golf có được khấu trừ thuế
thanh toán quá hạn hợp đồng có được khấu trừ thuế gtgt
==
xử lý khi mất nhiều hóa đơn cùng đối tượng
thuế nahf thầu khi mua bàn quyền âm nhạc
Hạch toán kế toán vốn bằng tiền
hạch toán tiền ngân hàng trả lại
cá nhân tự quyết toán thuế tncn
Một số điểm mới của nghị định 22
==
Cách khấu trừ thuế gtgt khi mua ô tô
AR Pest Control Mississauga has developed the best solution and methodology for a wide range of occasional invaders. We realize that every client has individual needs and issues. Our team promises to complete our work in a timely manner that is the least inconvenience to you.
ReplyDeletePest Control Brampton
Airport Limo Service is a transportation service that offers luxurious and comfortable limousine rides to and from the airport for both individuals and groups. the company prides itself on providing premium transportation services to travelers who value comfort, safety, and reliability.
ReplyDeletePickering Airport Limo
Investment is one of the best ways to achieve financial freedom. For a beginner there are so many challenges you face. It's hard to know how to get started. Trading on the Cryptocurrency market has really been a life changer for me. I almost gave up on crypto at some point not until saw a recommendation on Elon musk successfully success story and I got a proficient trader/broker Mr Bernie Doran , he gave me all the information required to succeed in trading. I made more profit than I could ever imagine. I'm not here to converse much but to share my testimony, I recovered my losses and I have made a total profit returns of $20,500 from an investment of just $2000 within 1 week. Thanks to Mr Bernie I'm really grateful,I have been able to make a great returns trading with his signals and strategies .I urge anyone interested in INVESTMENT to take bold step in investing in the Cryptocurrency Market, he can also help you recover your lost funds, you can reach him on WhatsApp : +1(424) 285-0682 or his Gmail : BERNIEDORANSIGNALS@GMAIL.COM tell him I referred you
ReplyDeleteCounselors. Our counselors have been logging in hours to connect with our families and also learn new skills. Tiffany has been working hard to fast track her College Counseling know how to b ready to support the Class of 2025. JJR has been working furiously to resolve and smooth out the final programming bumps and glitches - and both them are now shouldering larger counseling caseloads now that our guidance department is half the size!