像Google Picasa这样的软件很好地展示了一点,即软件可以在没有Exif数据的情况下判断照片的拍摄方向,因为并不是每个相机都能提供该信息。
是否有一种记录在案的算法可输出图像是否需要旋转? 我想找出旋转方向,但不使用EXIF数据。如果可能的话,我想用ImageMagick来做到这一点。
像Google Picasa这样的软件很好地展示了一点,即软件可以在没有Exif数据的情况下判断照片的拍摄方向,因为并不是每个相机都能提供该信息。
是否有一种记录在案的算法可输出图像是否需要旋转? 我想找出旋转方向,但不使用EXIF数据。如果可能的话,我想用ImageMagick来做到这一点。
[请注意:下面大多数PDF链接都是从Google Scholar中推断出来的 - Google自然擅长在公开可用的论文摘要中找到匹配的PDF,而实际内容往往被隐藏在付费墙后面。当然,这种做法的合法性存在争议,对于通常公开资助的科学研究进行如此屏蔽也是如此 - 请自行判断!]
Hongjiang Zhang的许多后续论文之一是基于内容的图像方向检测技术与支持向量机(Yongmei Wang和Hongjiang Zhan - 2001)。
另一篇(虽然不太具有说明性)是室内外分类增强的图像方向检测方法(Lei Zhang,Mingjing Li,Hongjiang Zhang-2002)
因此,前述方法的摘要为基于低级视觉内容的图像方向检测(Yongmei Michelle Wang和Hongjiang Zhang - 2003)
一种相当复杂的方法是一种基于置信度的低级和语义线索集成的图像方向检测的概率方法(Jiebo Luo和Matthew Boutel-2004)
关于您的问题标题,最佳匹配实际上是使用综合人类感知线索进行图像方向检测(或哪个方向是正的)(Lei Wang,Xu Liu,Lirong Xia,Guangyou Xu,Alfred Bruckstein-2003);)
最后,您可能需要查看有关自动数字照片方向检测系统和方法(2008年)的专利 - 基本算法在图8中被详细总结。;)
玩得开心 :)
当可用时,它可能会读取储存在JPEG头中的exif信息,来确定相机在拍摄照片时的方向。这比尝试分析照片找出哪个方向朝上的方法要简单得多。
共有八种可能的方向。标志告诉您哪个方向是朝上的:
EXIF Orientation Value Row #0 is: Column #0 is:
1 Top Left side
2* Top Right side
3 Bottom Right side
4* Bottom Left side
5* Left side Top
6 Right side Top
7* Right side Bottom
8 Left side Bottom
NOTE: Values with "*" are uncommon since they represent "flipped" orientations.
这将减少需要使用图像识别的照片数量。
请注意,EXIF 数据中有一个旋转字段,来自相机的方向传感器。始终首先使用此数据,因为其余的是图像处理的猜测。
我不知道有没有现成的解决方案,但这是一个分类问题,有许多经典算法可以使用。B.D. Ripley的Pattern Recognition and Neural Networks 是这个主题的好读物。
openCV有一个机器学习模块可用于此。
解决方案可能涉及启发式方法,如 Yann Ramin 的答案中的 1-3,但以介于0和1之间的数字量化,并放入向量中。您可以使用具有关于方向的exif数据的图像来制作分类器的训练集。
Picasa具有面部识别功能,即使它没有实际标记已知的人,也可能会有所帮助。