人体の検出
人体の検出は分類器が違うだけで顔と目の検出と同じです。
分類器は、
haarcascade_fullbody.xml
を使います。

ソースコード

 # -*- coding: utf-8 -*-
import cv2

# 人体検出用の分類器を読み込む
bodyCascade = cv2.CascadeClassifier('haarcascade_fullbody.xml')

# カメラで動画を撮影する カメラ1台の場合は引数に0 or -1を設定する
cap = cv2.VideoCapture(0)
cap.set(3,640) # 横幅を設定 
cap.set(4,480) # 縦幅を設定
while True:
    
    # フレーム毎にキャプチャする
    ret, img = cap.read()

    # 顔検出の負荷軽減のために、キャプチャした画像をモノクロにする
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 顔検出のパラメータの設定
    bodys = bodyCascade.detectMultiScale(
        gray,     
        scaleFactor=1.2,
        minNeighbors=5,     
        minSize=(20, 20)
    )
 
    # 人体出時に四角い枠を表示
    for (x,y,w,h) in bodys:
         cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

    # imshow関数で結果を表示する
    cv2.imshow('人体の検出中',img)

  	# ESCキーが押されたら終了
    k = cv2.waitKey(30) & 0xff
    if k == 27: 
        break

cap.release()
cv2.destroyAllWindows()
頭から足まで映らないと認識しないようです。頭から足まであれば同時に4人くらい検出できました。