You can find free LBP Cascade download links specifically designed for people and head detection in OpenCV. It’s trained on my own people and head datasets.
The cascades can be used by using the CascadeClassifier in OpenCV, which allows you to detect objects (such as people and heads) in images or video streams.
Keep in mind that no cascade is perfect, but in some cases, this custom LBP cascade might perform better than the default OpenCV cascades. The differences arise from the shape and feature space used for detection. For instance, the head detector may have more false detections compared to the people detector due to the common features shared by various head shapes.

detect peole head opencv haar cascade

Video example of expected detection results by detectMultiScale


Head cascade and people cascade download link

Head and people detection tutorial code

Update from 2024  opencv installation 
  • I would recommend using the VCPKG installation described on my blog here for the CMake project. 
  • For the Visual Studio project here.
You can simply prepare the project inside the Visual Studio 2015 by Nuget Packages. This approach is easy for beginners and better than standard installation with all the environmental variables problems. Just follow the installation steps here

LBP detectMultiScale cascade Opencv code

This code is based on my previous tutorial with more details Fast people detection.

// 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.0440 | 1Size(3080), Size(80,200));
 detectorHead.detectMultiScale(img, head, 1.140 | 1Size(4040), Size(100100));
 if (human.size() > 0) {
  for (int gg = 0; gg < human.size(); gg++) {
    rectangle(original, human[gg].tl(), human[gg].br(), Scalar(00255), 280);
  }
}
 if (head.size() > 0) {
  for (int gg = 0; gg < head.size(); gg++) {
    rectangle(original, head[gg].tl(), head[gg].br(), Scalar(00255), 280);
  }
 }