直观理解图片的EXIF orientation

有些数据集会备注对图像做了如下处理:

Auto-orientation of pixel data (with EXIF-orientation stripping)。

应该如何理解这个处理到底是做了什么呢?

什么是EXIF?

EXIF用来规定除图片内容以外的附加详细信息的一种文件格式,比如图片的属性信息和拍摄数据。
称为可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif)。

Exif可以附加于JPEG、TIFF、RIFF等文件之中,但不支持png,webp等图片格式。

以JPEG为例,我们知道,JPEG是一种对图片进行编码和解码的标准。

但通常,一个JPEG文件不仅包含了图片内容的信息,还包含了该图片的属性信息和拍摄数据,比如图片拍摄地理坐标、时间戳、相机相关信息等。

EXIF规定了上述这些附加信息,应该以何种方式存储于JPEG等文件中。

这也是为何大家顾虑分享手机拍摄的原图会泄露个人隐私。
直观理解图片的EXIF orientation_第1张图片

什么是EXIF orientation?

EXIF orientation是指代图片拍摄时相机的旋转信息。图片浏览器需根据这个参数,将图片自动旋转到正确方向。

为何需要有相机orientation的信息?

因为人们习惯看到的拍摄场景,是符合万有引力的、正向的图片,但相机只负责拍摄场景,并不能理解拍摄内容,所以需要将相机orientation信息记录下来,以便在图片解码时对图片方向进行补偿。

比如,下图中,左边是浏览器自动校正的图片,右边是实际上相机有旋转的拍摄的图片。(图片来源:http://dn-odum9helk.qbox.me/exif.png,http://dn-odum9helk.qbox.me/exif.png?imageMogr2/strip)
直观理解图片的EXIF orientation_第2张图片
根据参考文章,上述图片的EXIF信息如下:

{"ColorSpace":{"val":"sRGB","type":3},"ExifVersion":{"val":"Exif Version 2.1","type":7},"FlashPixVersion":{"val":"FlashPix Version 1.0","type":7},"Orientation":{"val":"Right-top","type":3},"PixelXDimension":{"val":"3264","type":4},"PixelYDimension":{"val":"2448","type":4},"ResolutionUnit":{"val":"Inch","type":3},"XResolution":{"val":"72","type":5},"YResolution":{"val":"72","type":5}}

EXIF orientation tag的值是“right-top”,即图片拍摄时,相机的旋转信息是“right-top”,则通过查阅文档,可知,相机是逆时针旋转了90°的基础上拍摄的。

需知,并非所有的解码器都能自动纠正,有些解码器直接忽视了exif orientation信息,从而导致所显示的图片方向错误。

如此,就可以解答本文一开始的数据集预处理问题了。

以上。

你可能感兴趣的:(计算机视觉基础)