1

オンライン ブースティングを使用して 2 つの機能を組み合わせたいと考えています。

オンラインブースティングとブースティングを使用した共同機能を説明する論文をさらに読みました。論文は次のとおりです。

ロボットに追従する人物の色、身長、歩行の特徴を使用した特定の人物の識別

オンライン ブースト ターゲット モデルを使用した RGB-D データでの人物追跡

オンラインブースティングとビジョン

サービス ロボット向けの高速 RGB-D 人物追跡

さまざまなセンサーからの共同機能プールによるブースティング、ロボットを追跡する人のための 畳み込みチャネル機能ベースの人物識別、そのコードはこちら

ここでAdaBoostClassifierについて説明します

理論的には理解できましたが、Pythonで実装できません。私の C++ の経験はゼロです。誰でも私を助けてくれます、これは私の簡単なコードです:

import cv2
import time
import numpy as np

person_cascade = cv2.CascadeClassifier(('haarcascade_upperbody.xml'))
cap = cv2.VideoCapture(0)
while True:
    r, frame = cap.read()
    #================================color feature===================
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    green_lower = np.array([0, 0, 0], np.uint8)
    green_upper = np.array([180, 255, 30], np.uint8)
    green = cv2.inRange(hsv, green_lower, green_upper)
    (_, contours, hierarchy) = cv2.findContours(green, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    for pic, contour in enumerate(contours):
        area1 = cv2.contourArea(contour)
        if (area1 > 300):
            # print area1

            x1, y1, w1, h1 = cv2.boundingRect(contour)
            img = cv2.rectangle(frame, (x1, y1), (x1 + w1, y1 + h1), (255, 0, 0), 2)
            cv2.putText(frame, "green Colour", (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 0, 0))
    #====================================upperbody feature=============       
    if r:
        start_time = time.time()
        frame = cv2.resize(frame,(640,360)) # Downscale to improve frame rate
        gray_frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) # Haar-cascade classifier needs a grayscale image
        rects = person_cascade.detectMultiScale(gray_frame)

        for (x, y, w, h) in rects:
            cv2.rectangle(frame, (x,y), (x+w,y+h),(0,255,0),2)
        cv2.imshow("preview", frame)
    k = cv2.waitKey(1)
    if k & 0xFF == ord("q"): # Exit condition
        break
4

0 に答える 0