我正在使用 OpenVino python 代码进行年龄和性别检测。代码在每一帧上运行。
我有一个用于质心跟踪和分配 objectID 的 .py 文件。这用于跟踪在任何给定 session 期间出现的总人数。
但是现在,我正在尝试为上述代码创建一个 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(人)进行年龄和性别检测,而不是仅在每一帧上运行并在每一帧上检测性别?
最佳答案
我建议您引用人员计数器解决方案,可在
https://software.intel.com/content/www/us/en/develop/topics/iot/reference-implementations/people-counter-system.html
main.py 文件的第 91-110 行提供了有关实现计数器的信息。
https://github.com/intel-iot-devkit/people-counter-python/blob/master/main.py#L91
关于python - 如何检测特定对象 ID 的性别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63176725/