4

我正在从 mjpg 流中提取 jpg 帧。这些是有效的 jpg 文件,可以在我尝试过的任何图像工具中使用;但是,当将其作为字节发送时,或者当我将它们移动到 S3 并尝试该路线时,Rekognition 不会接受它们。

我制作了几个版本(附在此处),全部来自相同的源 jpg(我会将它们内联,但我不希望图像优化代码更改它们)

test.jpg- 原始框架

test-photoshop.jpg- 在 Photoshop 中打开,“保存为网络”d

test-imageoptim.jpg- 通过 ImageOptim 运行(我相信用 jpegtran 压缩)

在十六进制编辑器中查看这些,我看不到的唯一区别是更多的 exif 数据(使用 exiftool)。当我在原版上运行 exiftool 时,它仍然会报告框架的所有基本细节。

我假设这是 Rekognition 的一个错误,或者它正在寻找一些特定的 exif 位,我的 mjpeg 流提取正在省略。也许有人知道为什么仅通过附加正确的开始和结束帧字节就无法从 mjpeg 中提取 jpeg 帧。

4

3 回答 3

3

来自评论:

只是一个猜测,尝试在最后的 FF D9 标记之后砍掉最后 6 个字节,也许这些字节让亚马逊感到困惑。

这是来自十六进制查看器的快照:

在此处输入图像描述

于 2016-12-20T16:19:59.347 回答
1

我只能做出有根据的猜测,因为我无法访问导致问题的应用程序。但是,我的猜测是它无法识别 JPEG 流的文件格式(或缺少文件格式)。

在图像开始标记之后,您有一个帧开始标记。根据 JPEG 标准,这是合法的。但是,没有任何东西可以指示文件格式。这对于解释 JPEG 流不是绝对必要的(假设 3 分量扫描是 YCbCr 编码的),但您的应用程序可能正在寻找一些特定于格式的标记(例如,JFIF、EXIF)。

于 2016-12-20T03:20:31.637 回答
0

你的图像很好。您的代码有问题或您的权限不正确。我与您一起使用了https://github.com/yourtion/Rekognition_API_NODEJS_SDKtest.jpg ,结果如下:

{
   "url":"POST",
   "face_detection":[
      {
         "boundingbox":{
            "tl":{
               "x":470.77,
               "y":109.23
            },
            "size":{
               "width":53.85,
               "height":53.85
            }
         },
         "confidence":0.25,
         "eye_left":{
            "x":489.3,
            "y":132.4
         },
         "eye_right":{
            "x":498,
            "y":128.9
         },
         "nose":{
            "x":504.1,
            "y":142.5
         },
         "mouth l":{
            "x":497.7,
            "y":152.1
         },
         "mouth_l":{
            "x":497.7,
            "y":152.1
         },
         "mouth r":{
            "x":502.4,
            "y":151.9
         },
         "mouth_r":{
            "x":502.4,
            "y":151.9
         },
         "pose":{
            "roll":-27.01,
            "yaw":86.01,
            "pitch":-12.56
         },
         "quality":{
            "brn":0.22,
            "shn":0.1
         },
         "emotion":{
            "happy":0.25,
            "surprised":0.09,
            "sad":0.07
         },
         "age":30.11,
         "smile":0.71,
         "glasses":0.79,
         "sunglasses":0.87,
         "beard":0.96,
         "mustache":0.52,
         "eye_closed":1,
         "mouth_open_wide":0.04,
         "beauty":0.5041,
         "sex":1
      }
   ],
   "ori_img_size":{
      "width":640,
      "height":480
   },
   "usage":{
      "quota":98,
      "status":"Succeed.",
      "api_id":"XXXXXXXXXXXXXXXXXXXX"
   }
}
于 2016-12-19T19:37:57.197 回答