Python 如何检测特定对象id的性别?

Python 如何检测特定对象id的性别?,python,opencv,logic,openvino,Python,Opencv,Logic,Openvino,我正在使用OpenVino python代码进行年龄和性别检测。代码在每个帧上运行。 我有一个.py文件用于质心跟踪和分配objectID。这用于跟踪任何给定会话期间出现的总人数 但是现在,我正试图为上面的代码创建一个GUI,其中显示男性和女性的总数。当一个人来(在我的代码中注册objectID)和去(注销objectID)时,我还希望它增加适当的性别计数 这是我的代码片段: while has_frame: rects=[] frame1 = np.array(

我正在使用OpenVino python代码进行年龄和性别检测。代码在每个帧上运行。
我有一个.py文件用于质心跟踪和分配objectID。这用于跟踪任何给定会话期间出现的总人数

但是现在,我正试图为上面的代码创建一个GUI,其中显示男性和女性的总数。当一个人来(在我的代码中注册objectID)和去(注销objectID)时,我还希望它增加适当的性别计数

这是我的代码片段:

while has_frame:
        rects=[]
        frame1 = np.array(frame, dtype='uint8')
        faces = faceCascade.detectMultiScale(
                    frame1,
                    scaleFactor=1.2,
                    minNeighbors=5,     
                    minSize=(20, 20)
                )
        for (x,y,w,h) in faces:
                cv.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
                rects.append((x,y,(x+w),(y+h)))
                x = int(x)
                y = int(y)
                w = int(w)
                h = int(h)

                if run_age_gender:
                    cropped_image = frame[y:y+h, x:x+w]
                    if cropped_image.size > 0:
                        age_inference.infer(cropped_image)
                        age, gender = age_inference.get_age_gender_data() #retreives the age and gender
                        age_gender_text = '{} - {}'.format(age , gender)
                        cv.putText(frame, age_gender_text, org=((x+w), (y+10)), fontFace=cv.FONT_HERSHEY_PLAIN,
                                   fontScale=1, color=(0, 64, 255), thickness=1, lineType=cv.LINE_AA)
        
        objects,intervals = ct.update(rects) #ct.update references my "centroidtracking.py" file to get objectID and time interval for each objectID (time spent by a given person in front of camera)

        for (objectID, centroid) in objects.items():
                text = "ID {}".format(objectID)
                cv.putText(frame, text, (centroid[0] - 10, centroid[1] - 10),
                    cv.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
                cv.circle(frame, (centroid[0], centroid[1]), 4, (0, 255, 0), -1)

        for (objectID, time) in intervals.items():
                totaltime+=time
                totalppl+=1

        text = ("%0.2f" %(totaltime))
        self.ui.timetextbox.setPlainText(text)
        text2 = ("%d" %(totalppl))
        self.ui.ppltextbox.setPlainText(text2)

        if cv.waitKey(1) & 0xFF == ord('q'):
                     break

        has_frame, frame = source.read()
        frame_id += 1
这只是我的while循环的一个片段,在这里,年龄和性别以及对象ID跟踪都会发生

到目前为止,如果我尝试计数男性/女性,它会增加每帧的计数,并且与被检测的人无关


如果有任何建议让我将两者结合起来,以便对特定ID(个人)进行年龄和性别检测,而不是只在每个帧上运行并在每个帧上检测性别?

我建议您参考人员计数器解决方案,可在

有关实现计数器的信息,请参见main.py文件的第91-110行。