输出

在介绍了如何获得探测结果以后,我们接下来介绍结果变量的构成。

如果没有探测到任何面部

变量为空。更确切地说,变量是一个零元素数组(即在Python语言里显示为“[ ]”)

如果探测到N个面部

变量结构包括两个字段:[ [ TimeStampField ] [ Face_info_0 , Face_info_1, . . . , Face_info_N-1, Time_Filtered_Reco_info ] ]

with:

  • TimeStampField = [ TimeStamp_seconds, Timestamp_microseconds ]。这个字段是用来执行探测的图像的时间戳。
  • Face_info = [ ShapeInfo, ExtraInfo ]。每个探测到的面部都有一个Face_info字段。

    ShapeInfo = [ 0, alpha, beta, sizeX, sizeY ]。alpha和beta是用摄像头角度表示的面部位置 - sizeX和sizeY是面孔在摄像头角度中的大小。

    ExtraInfo = [ Reco_info_0, Reco_info_1, ..., Reco_info_M ]

    其中,Reco_info_0 = [ faceID, score_reco, face_label, left_eye_points, right_eye_points, left_eyebrow_points, right_eyebrow_points, nose_points, mouth_points ]

    其中:

    - faceID:面孔的ID编号

    - score_reco:由识别进程返回的评分(越高越好)

    - face_label:识别出的面孔名称

    - xxxx_eye_points = [ eyeCenter_x, eyeCenter_y, noseSideLimit_x, noseSideLimit_y, earSideLimit_x, earSideLimit_y, topLimit_x, topLimit_y, bottomLimit_x, bottomLimit_y, midTopEarLimit_x, midTopEarLimit_y, midTopNoseLimit_x, midTopNoseLimit_y ]

    - xxxx_eyebrow_points = [ noseSideLimit_x, noseSideLimit_y, center_x, center_y, earSideLimit_x, earSideLimit_y ]

    - nose_points = [ bottomCenterLimit_x, bottomCenterLimit_y, bottomLeftLimit_x, bottomLeftLimit_y, bottomRightLimit_x, bottomRightLimit_y ]

    - mouth_points = [ leftLimit_x, leftLimit_y, rightLimit_x, rightLimit_y, topLimit_x, topLimit_y, bottomLimit_x, bottomLimit_y, midTopLeftLimit_x, midTopLeftLimit_y, midTopRightLimit_x, midTopRightLimit_y, midBottomRightLimit_x, midBottomRightLimit_y, midBottomLeftLimit_x, midBottomLeftLimit_y ]

    以摄像头角度给出以上所有坐标。

  • Time_Filtered_Reco_info可等于:

    [],这说明没有新情况

    [ 2 face_label ],这说明识别出一个面孔

    [ 3 [ face_label_0, ..., face_label_P ] ],这说明识别出数个面孔

    [ 4 ],这说明探测到一个面孔,但超过8秒后仍未能识别。获得这个小结果时,如需要,可学习这个面孔。





Copyright © 2010 Aldebaran-Robotics - 版权所有