发给视觉模型前,怎样处理照片 EXIF 方向并固定后续坐标
相册里看起来竖着的照片,文件像素可能横着存,只靠 EXIF Orientation 指示显示方向。若先在预览图上标坐标,再把未经归一的像素送进后续流程,位置可能整体旋转。客户端应先确定实际像素与方向,再固定后续坐标基准。
保存原始与归一两份身份
本文生成一张三乘二的合成小图,六个像素颜色各不相同,并写入 Orientation 为六的方向标签。原文件像素尺寸、方向值和字节摘要单独保存。使用 Pillow 的 ImageOps.exif_transpose 得到方向归一后的图,预期尺寸变为二乘三,对应顺时针旋转,方向标签被移除。
这是软件构造的测试图,不是用户照片,也没有模拟真实相机。选用可无损保存颜色的图像格式,避免 JPEG 压缩使角点色值变化,从而把压缩误差误判为方向错误。检查器按实际像素位置核对,而不是截一张相册画面作证。
四角可以直接复算
原图左下角转到新图左上角,原图左上角转到新图右上角,右下角转到左下角,右上角转到右下角。附件保存原始和归一图,以及各角颜色与归一文件摘要。输出尺寸正确但角点不对,仍要拒绝,说明可能转了相反方向或发生镜像。
反例是只把 Orientation 改成一,却没有旋转像素。这会让图在部分查看器中改变显示,而后续坐标仍以错误像素为准。另一个是已经旋转后仍保留旧标签,下一环节可能再次处理方向。归一操作需要同时核对像素和元数据。
后续坐标只认一个版本
图像缩放、裁剪和视觉标注都以归一后的像素图为基准,并保存该版本摘要。原始尺寸不能再拿来解释归一图坐标。如果用户在别的查看器中确认位置,应明确它展示的是哪一版图,避免一个界面自动应用方向、另一个只显示原始像素。
OpenAI 视觉资料描述图像输入能力,也提醒视觉定位存在限制;它不能用来推断每个模型如何处理 EXIF。本文由应用提前归一,不声称平台内部有某种统一方向策略。坐标一致也不意味着模型能精确检测目标,识别质量需要另外实测。
运行样例仅使用 Pillow 本地读写,不上传图片。检查通过代表合成方向图的尺寸、角点和标签处理符合预期,未测真实相机文件、色彩管理与大图性能。真实素材接入前应保留原件,先在副本上验证,以便遇到异常时能够重新追溯像素处理过程。
配套文件与依据
本文的合成输入和参考结果可下载独立样本 a039.json,离线检查器 a039.py与样本放在同一目录后运行。检查器不调用模型接口。 使用 Python 3.12 或兼容版本,将上述文件下载到同一目录,执行 python a039.py。 此项依赖 Pillow,本次实际运行版本记录在检查结果中。 同篇运行还需要:a039-oriented.png、a039-normalized.png,请一并下载。
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。