Rekognition的作业FaceDetection和FaceSearch返回不同的结果...

0

【以下的问题经过翻译处理】 大家好,

我正在测试FaceSearch 和 FaceDetection,发现它们针对 S3 中的同一个视频进行分析,但对于同一个检测目标返回不同的值。例如,两个 Jobs 都对同一个S3存储桶的对象进行分析,我会得到不同的BoundingBox 和 Landmarks ,我认为它们应该是相同的。我还记得,在四个月之前测试,我得到了预期的结果。

例如:同一个人的视频。

  • aws rekognition start-face-detection --video "S3Object={Bucket=facejobs,Name=head-pose-face-detection-female.mp4}"
  • aws rekognition start-face-search --video "S3Object={Bucket=facejobs,Name=head-pose-face-detection-female.mp4}" --collection-id test-collection

获取结果:

aws rekognition get-face-detection --job-id "3661ab79c711bbd530ca5a910003d..."

aws rekognition get-face-search --job-id "cc3555290d2093bec860519bf53403e8..."

比较:

FaceDetection 结果

{  
    "JobStatus": "SUCCEEDED",  
    "VideoMetadata": {  
        "Codec": "h264",  
        "DurationMillis": 134584,  
        "Format": "QuickTime / MOV",  
        "FrameRate": 12.0,  
        "FrameHeight": 432,  
        "FrameWidth": 768  
    },  
    "Faces": \[  
        {  
            "Timestamp": 0,  
            "Face": {  
                "BoundingBox": {  
                    "Width": 0.13135695457458496,  
                    "Height": 0.36436259746551514,  
                    "Left": 0.4154500961303711,  
                    "Top": 0.22901538014411926  
                },  
                "Landmarks": \[  
                    {  
                        "Type": "eyeLeft",  
                        "X": 0.4518287479877472,  
                        "Y": 0.3687707185745239  
                    },  
                    {  
                        "Type": "eyeRight",  
                        "X": 0.5152483582496643,  
                        "Y": 0.3756844997406006  
                    },  
                    {  
                        "Type": "mouthLeft",  
                        "X": 0.451990008354187,  
                        "Y": 0.5045619010925293  
                    },  
                    {  
                        "Type": "mouthRight",  
                        "X": 0.5046293139457703,  
                        "Y": 0.5103421807289124  
                    },  
                    {  
                        "Type": "nose",  
                        "X": 0.47848179936408997,  
                        "Y": 0.4353737533092499  
                    }  
                ],  
                "Pose": {  
                    "Roll": 2.838758707046509,  
                    "Yaw": -1.3927381038665771,  
                    "Pitch": 10.166311264038086  
                },  
                "Quality": {  
                    "Brightness": 79.76757049560547,  
                    "Sharpness": 26.1773681640625  
                },  
                "Confidence": 99.99970245361328  
            }  
        },  
        {  
            "Timestamp": 499, 

FaceSearch

{  
    "JobStatus": "SUCCEEDED",  
    "VideoMetadata": {  
        "Codec": "h264",  
        "DurationMillis": 134584,  
        "Format": "QuickTime / MOV",  
        "FrameRate": 12.0,  
        "FrameHeight": 432,  
        "FrameWidth": 768  
    },  
    "Persons": \[  
        {  
            "Timestamp": 0,  
            "Person": {  
                "Index": 0,  
                "Face": {  
                    "BoundingBox": {  
                        "Width": 0.13410408794879913,  
                        "Height": 0.365193247795105,  
                        "Left": 0.4145432412624359,  
                        "Top": 0.2288028597831726  
                    },  
                    "Landmarks": \[  
                        {  
                            "Type": "eyeLeft",  
                            "X": 0.4514598548412323,  
                            "Y": 0.3685579001903534  
                        },  
                        {  
                            "Type": "eyeRight",  
                            "X": 0.5149661898612976,  
                            "Y": 0.37557920813560486  
                        },  
                        {  
                            "Type": "mouthLeft",  
                            "X": 0.4519285261631012,  
                            "Y": 0.5038205981254578  
                        },  
                        {  
                            "Type": "mouthRight",  
                            "X": 0.5038713216781616,  
                            "Y": 0.5095799565315247  
                        },  
                        {  
                            "Type": "nose",  
                            "X": 0.47897493839263916,  
                            "Y": 0.43512672185897827  
                        }  
                    ],  
                    "Pose": {  
                        "Roll": 1.5608868598937988,  
                        "Yaw": -18.46771240234375,  
                        "Pitch": 8.22950553894043  
                    },  
                    "Quality": {  
                        "Brightness": 81.00172424316406,  
                        "Sharpness": 53.330047607421875  
                    },  
                    "Confidence": 99.99984741210938  
                }  
            },  
            "FaceMatches": \[]  
        },  
        {  
            "Timestamp": 499, 

所以基本上使用这两个调用来获取正确的结果是不可能的。想象一下当您想检测情感并搜索一个面孔时的情况。更奇怪的是,我无法确认在三个月前,我做了同样的测试,两个API返回的结果是相同的。我甚至保存了那个时间的 json,但我无法确定我是如何得到它们的,因为我不记得我是如何实现的,或者我是否篡改了它们:(

当时我得到了如下结果:

FaceDetection

{  
    "JobStatus": "SUCCEEDED",  
    "VideoMetadata": {  
        "Codec": "h264",  
        "DurationMillis": 1500,  
        "Format": "QuickTime / MOV",  
        "FrameRate": 30,  
        "FrameHeight": 720,  
        "FrameWidth": 1280  
    },  
    "Faces": \[{  
            "Timestamp": 499,  
            "Face": {  
                "BoundingBox": {  
                    "Width": 0.16875895857810974,  
                    "Height": 0.4913144111633301,  
                    "Left": 0.4124282896518707,  
                    "Top": 0.2672847807407379  

FaceSearch

{  
    "JobStatus": "SUCCEEDED",  
    "VideoMetadata": {  
        "Codec": "h264",  
        "DurationMillis": 1500,  
        "Format": "QuickTime / MOV",  
        "FrameRate": 30,  
        "FrameHeight": 720,  
        "FrameWidth": 1280  
    },  
    "Persons": \[{  
            "Timestamp": 499,  
            "Person": {  
                "Index": 0,  
                "Face": {  
                    "BoundingBox": {  
                        "Width": 0.16875895857810974,  
                        "Height": 0.4913144111633301,  
                        "Left": 0.4124282896518707,  
                        "Top": 0.2672847807407379  
                    },  
                    "Landmarks": \[{  

所以,可以看出这两个 API 的 BoundingBox 是相同的。

感谢你们能提供任何有用的信息。

再啰嗦一句,用例是希望能够在搜索 API 中使用情感检测,但是目前并不支持。

profile picture
EXPERTE
gefragt vor 8 Monaten58 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 hi, brahama80,

感谢您的反馈。可能由于最近面部模型更新至5.0版,所以您看到了差异。当模型更新时,现有集合仍保持与旧版的兼容性,但面部检测和新集合会自动开始使用最新版本。您可以使用此API检查您的集合模型版本(可能为V 4.0)。 https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rekognition/describe-collection.html. 我们建议您能够创建一个新的人脸集合并重新索引人脸,以确保这两个工作流使用相同版本。我们也已经注意到了您要求将情感返回到人脸搜索输出中,我们已将其添加到我们的待办事项中。

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen