Share
Visit

Monday, January 9, 2017

Head and people detection in opencv

LBP cascade for detect head and people in opencv 

LBP cascade free to download to use in opencv to detect people and heads. Code example and cascade description. All you need to write your own people head detector from the youtube video.
Cascade is trained on my own people and head datasets. There are no perfect but in some cases are better then default opencv cascades. They are just different.. For example you can count that the head detector have much more false detection than the people detector.. The shape and feature space is much more common and close to others shapes than the whole people detector.

detect peole head opencv haar cascade

Issues with opencv detectMultiScale head and people detector

Please let me know if cascades worked as expected.. In code example there is ground threshold settings and reccomentation. 




LBP cascade head detection properties

Sure you can find inside file.

<!--
This is just basic 16 stage lbp cascade head detector develop by 
V.K. from https://funvision.blogspot.com
-->
<?xml version="1.0"?>
<opencv_storage>
<cascade>
  <stageType>BOOST</stageType>
  <featureType>LBP</featureType>
  <height>38</height>
  <width>38</width>
  <stageParams>
    <boostType>GAB</boostType>
    <minHitRate>9.9999994039535522e-01</minHitRate>
    <maxFalseAlarm>6.0000002384185791e-01</maxFalseAlarm>
    <weightTrimRate>9.4999999999999996e-01</weightTrimRate>
    <maxDepth>25</maxDepth>
    <maxWeakCount>60</maxWeakCount></stageParams>
  <featureParams>
    <maxCatCount>256</maxCatCount>
    <featSize>1</featSize></featureParams>
  <stageNum>16</stageNum>
  <stages>


New LBP cascade people detection properties

<!--
This is just basic 10 stage lbp cascade head detector develop by 
V.K. from https://funvision.blogspot.com
-->
<?xml version="1.0"?>
<opencv_storage>
<cascade>
  <stageType>BOOST</stageType>
  <featureType>LBP</featureType>
  <height>64</height>
  <width>32</width>
  <stageParams>
    <boostType>GAB</boostType>
    <minHitRate>9.9999499320983887e-01</minHitRate>
    <maxFalseAlarm>3.0000001192092896e-01</maxFalseAlarm>
    <weightTrimRate>9.4999999999999996e-01</weightTrimRate>
    <maxDepth>20</maxDepth>
    <maxWeakCount>80</maxWeakCount></stageParams>
  <featureParams>
    <maxCatCount>256</maxCatCount>
    <featSize>1</featSize></featureParams>
  <stageNum>10</stageNum>
  <stages>


Opencv cascade for car detection conditions of use


Also, Do not worry about the condition of use. Use only on your own risk. That's it. The dataset to train this cascade is only mine. I also colect positive and negative data. I just want to say, that there is also no conditions based on the datasets. There is no others conditions of use. Maybe check the Opencv traincascade utility. Thanks. Yes share and cite. Just small minimal condition like send me a million dolars. Its up to you.

Head cascade and people cascade download link.


Head detection download link

People detection download link


Head and people detection tutorial code


You can simple prepare the project inside the Visual Studio 2015 by Nuget Packages. This approach is easy for beginers and better than standard installation with all the environmental variables problems. Just follow the installation steps inside here

This code is based on my previous tutorial Fast people detection.
Inside the video capture loop just modify the part like this. Include cascade inside your project and play with different settings.. This is not ideal one..


// Name of the downloaded my cascades.. 
 string cascadeHead = "cascadeH5.xml";
 string cascadeName = "cascadG.xml";

 
// Load the cascade
 CascadeClassifier detectorBody;
 bool loaded1 = detectorBody.load(cascadeName);
 CascadeClassifier detectorHead;
 bool loaded2 = detectorHead.load(cascadeHead);
        
// save original make img gray
// draw rectangle back to the original colored sample
 Mat original;
 img.copyTo(original);
// Prepare vector for results 
vector<Rect> human;
vector<Rect> head;
// Prepare gray image
 cvtColor(img, img, CV_BGR2GRAY);
// equalize Histogram  
        equalizeHist(img, img);
// detect body and head in the img 
// Set the proper min and max size for your case
 detectorBody.detectMultiScale(img, human, 1.04, 4, 0 | 1, Size(30, 80), Size(80,200));
 detectorHead.detectMultiScale(img, head, 1.1, 4, 0 | 1, Size(40, 40), Size(100, 100));


 if (human.size() > 0) {
  for (int gg = 0; gg < human.size(); gg++) {

   rectangle(original, human[gg].tl(), human[gg].br(), Scalar(0, 0, 255), 2, 8, 0);

     }
  }

 if (head.size() > 0) {
  for (int gg = 0; gg < head.size(); gg++) {

   rectangle(original, head[gg].tl(), head[gg].br(), Scalar(0, 0, 255), 2, 8, 0);

     }
 }



11 comments:

  1. I want code for Real time Face Recognition System using LBP Algorithm code for opencv 3.1 (C++) in Linux.
    Contact Details:-

    Email:- perrykakkar.1993@gmail.com
    Ph. No:- +91-8930228000

    ReplyDelete
    Replies
    1. Code is same cascade is different.. There is lots of cascade detect faces. I do not spent time to doing training of that detector..

      Delete
  2. what a nice blog it is!
    Can i share the video file??
    yunjung.erica@gmail.com

    ReplyDelete
  3. Hi. I'm using the head cascade in my project.
    And my question is if the parameters are the same with the face cascade. All this implemented from python. Also, what would be the correct syntax to call the cascade.
    Thanks for your help.

    ReplyDelete
  4. شرکت هوشمند افزار آسیا یکی از قدرتمند ترین شرکت های حوزه سیستم های امنیتی و نظارت تصویری و دوربین های مداربسته
    نماینده فروش دوربین های مداربسته هایک ویژن در کرج و تهران

    نصب دوربین مداربسته
    نماینده فروش دوربین های مداربسته هایک ویژن در کرج و تهران
    نماینده فروش دوربین های مداربسته هایک ویژن در کرج و تهران

    مجله تخصصی دوربین مداربسته و سیستم های حفاظتی و امنیتی
    02634216001-02634216002

    ReplyDelete
  5. Enthusiastic words written in this blog helped me to enhance my skills as well as helped me to know how I can help myself on my own. I am really glad to come at this platform. freelance website development

    ReplyDelete
  6. Do you have implementation in Python? of the same LBP cascade?

    ReplyDelete
  7. I need some suggestions on training data more precisely. can you guide me to train my own cascade in a efficient way.
    It would be really helpful for me.

    ReplyDelete
  8. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this. best sap simple finance online training institute in hyderabad

    ReplyDelete

ad