最近做一个图像中文字方向判定的需求,4分类任务。
在处理数据的时候发现,在电脑上显示水平的图片,用opencv-imread读进来的时候,会出现旋转,且旋转方向不定。之前也遇到过类似的问题,但当时任务本身对方向不敏感,且预处理本身也会做左右上下的翻转以及小角度的旋转,这样的数据增强操作,而此次方向分类的任务对方向及其敏感。所以不得不解决这个问题。
图片旋转的原因:
图片本身的矩阵就是旋转的,显示水平是因为系统在展示图片前,做了处理。这个处理是根据图片中exif信息做的。
我们在代码中用opencv读取图片的时候,是缺失了这一部分信息的。
https://cloud.tencent.com/developer/article/1523050
用PIL.Image即可获取到相关信息。
但在实际操作过程中,有些图片是没有exif这个信息的,有些exif信息中是没有exif_orientation_tag这个key的,另外我处理的图片中出现了exif_orientation_tag对应值为0,没有找到value为0的对应情况。