как объединить функцию через онлайн-бустинг - PullRequest
0 голосов
/ 26 сентября 2019

Я хотел бы объединить две функции с помощью онлайн-бустинга.

Я прочитал больше статей, в которых объясняется онлайн-бустинг и совместные функции с использованием бустинга, документы:

Идентификация конкретногочеловек, использующий функции цвета, роста и походки для человека, следующего за роботом ,

Отслеживание людей в RGB-D Данные с активными целевыми моделями в режиме онлайн ,

On-line Boosting и Vision ,

Быстрое отслеживание 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
...