CN105765624B - 内容感知图像旋转 - Google Patents

内容感知图像旋转 Download PDF

Info

Publication number
CN105765624B
CN105765624B CN201480064595.5A CN201480064595A CN105765624B CN 105765624 B CN105765624 B CN 105765624B CN 201480064595 A CN201480064595 A CN 201480064595A CN 105765624 B CN105765624 B CN 105765624B
Authority
CN
China
Prior art keywords
line
image
rotation
grid
described image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480064595.5A
Other languages
English (en)
Other versions
CN105765624A (zh
Inventor
K·何
H·常
J·孙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105765624A publication Critical patent/CN105765624A/zh
Application granted granted Critical
Publication of CN105765624B publication Critical patent/CN105765624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/04Context-preserving transformations, e.g. by using an importance map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/608Rotation of whole images or parts thereof by skew deformation, e.g. two-pass or three-pass rotation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Geometry (AREA)
  • Studio Circuits (AREA)

Abstract

根据本公开内容的实现,以内容感知方式对图像内容进行旋转。在一种实现中,在图像上形成一个网格,并且识别图像内容中的图像线。使用用于对这些线的一个子集旋转预定的旋转角度,而对其它线旋转与该预定的旋转角度不同的角度的能量函数,对该图像进行变形。举一个例子,对于在校正之后旨在是水平或垂直的线,按照将使得它们变成水平或垂直的旋转角度进行旋转,而对倾斜线旋转不同于该旋转角度的角度。

Description

内容感知图像旋转
背景技术
数字图像(尤其是随便拍摄的数字图像)通常出现倾斜和旋转。常规的图像编辑技术通过对图像旋转某个倾斜角,并将作为结果的倾斜图像裁剪成期望的大小或者宽高比(即,提供常规形状的矩形边界)来校正非期望的倾斜。但是,裁剪步骤不可避免地会删除内容。在一些实例中,5度的旋转和后续裁剪,可能会删除20%的原始内容。其它方法尝试增加内容,而不是裁剪,并具有不同的成功。在另一种提出的解决方案中,在图像内容中产生接缝,在这些接缝处增加或删除内容。在这些解决方案的每一种中,无论是由于删除还是增加了内容,经校正的图像都不同于原始图像内容。
发明内容
本申请描述了图像旋转校正的示例性实施例。在各个实施例中,用户可以识别用于进行基于旋转的图像校正的图像。在一些实施例中,图像旋转校正系统在图像内容上形成输入网格。输入网格可以具有与该图像内容的原始边界相对应的边界。在一些实施例中,在已应用了该网格之后,校正系统根据能量函数,对该网格进行优化。在一个实施例中,该能量函数可以具有旋转保持项、线保持项、形状保持项和边界保持项。例如,线保持项可以包括旋转项和平滑项二者,这两项一起指示针对不同组的线的不同的、但相互有关的旋转。在一个实施例中,该能量函数需要校正系统对水平线和垂直线旋转固定的旋转角度,而对所有其它倾斜线旋转某个不同的角度。随后,校正系统可以根据该优化的网格,对该图像内容进行变形,以产生校正的图像。在一些实施例中,输入图像的图像内容和经校正的图像的图像内容是相同的,这意味着该网格优化并不增加或者删除内容。
本概要部分介绍了将在以下的具体实施例方式中进一步描述的内容感知图像旋转校正的简化概念。本概要部分并不是旨在标识所声明主题的必要特征,也不是用于限制所声明主题的范围。
附图说明
参照附图描述具体实施方式。在这些附图中,附图标记的最左侧数字标识该附图标记第一次出现时的附图。不同附图中对于相同附图标记的使用,指示类似或相同的项。
图1示出了包括示例性图像旋转校正系统的示例性环境。
图2更详细地示出了图1的示例性图像旋转校正系统。
图3示出了根据本公开内容的一种实现,编辑接收到的图像内容的示例性场景。
图4示出了根据本公开内容的实现来编辑接收到的图像,与使用常规技术来编辑接收到的图像的对比性示例。
图5示出了图像内容的内容感知旋转的示例性方法。
图6示出了图像内容的内容感知旋转的示例性方法。
具体实施方式
概述
如上所述,图像(尤其是随便捕获的图像)可能具有非意愿的倾斜。人类视觉研究教示对图像倾斜的感知是由于倾斜的水平线(或者其它水平线)。与所有其它倾斜的直角相比,人类眼睛对法线的直角(即,其具有一个水平边和一个垂直边)更为敏感。视觉研究还教示人类并不能很好地感知锐角或者钝角的绝对值。
利用这些研究,本公开内容的实现寻求以下面的方式对内容进行旋转:分别将用户预期是垂直和水平的线变得垂直和水平,而允许其它线具有更大的旋转灵活度。结果是一个赏心悦目的效果,尽管图像内容中的一些发生了变形。
本公开内容描述了一种图像旋转校正系统,其使用内容感知旋转图像处理,以快速和有效的方式对原始图像内容进行旋转。经校正的图像可以包括全部的原始图像内容,例如,无需在旋转之后进行裁剪或者填充空间。
根据本发明的一些方面,在图像上形成网格以便进行弯曲,并且识别图像内容中的图像线。使用对这些线的子集旋转预定的旋转角度,而将其它线旋转与该预定的旋转角度不同的角度的能量函数,来对该图像进行弯曲。举一个例子,对于旨在校正之后是水平或垂直的线,按照将使得它们变成水平或垂直的旋转角度进行旋转,而对倾斜线旋转不同于该旋转角度的角度。在一些实现中,可以根据这些倾斜线的方向,对它们进行组合,使得对这些分组进行类似地处理。
在一些实现中,该能量函数包括多个项。例如,在下面所描述的示例性框架中,该能量函数可以包括:旋转保持项,用于促进保持图像内容的旋转,以抵消关于旋转角度的旋转;线保持项,用于定义线和网格的顶点之间的关系;形状保持项,用于促进某些形状在变形之后的连续性;和/或边界保持项,用于将经优化的网格约束到图像内容的边界或者某个其它边界。
本申请描述了多个并且不同的实现和实施例。下面的部分描述适用于实施各种实现的示例性环境。接着,本申请描述用于实现图像旋转校正系统的示例性系统、设备和过程。
示例性环境
图1示出了可用于实现图像旋转校正系统102的示例性环境100。在一个实施例中,环境100可以包括客户端设备104、服务器106和网络108。客户端设备104和/或服务器106可以经由网络108,与图像旋转校正系统102通信数据。
尽管将图1中的图像旋转校正系统102示出为与客户端设备104和服务器106分开,但在一个实施例中,可以将图像旋转校正系统102的功能包括和分布在一个或多个客户端设备104和/或一个或多个服务器106之中。例如,客户端设备104可以包括图像旋转校正系统102的功能的一部分,而图像旋转校正系统102的其它功能可以包括在服务器106中。在一些实施例中,可以将图像旋转校正系统102的所有功能都包括在客户端设备104中,或者包括在服务器106上。
可以将客户端设备104实现成各种常规的计算设备中的任何一种,例如,其包括:笔记本或便携式计算机、手持设备、上网本、互联网工具、便携式阅读设备、电子书阅读器设备、平板设备或slate computer、游戏控制台、移动设备(例如,移动电话、个人数字助理、智能电话等等)、媒体播放器等等或者其组合。
网络108可以是无线网络或有线网络或者其组合。网络108可以是彼此之间互连的单独网络的集合,并充当为单个大型网络(例如,互联网或内联网)。这些单独网络的例子包括,但不限于:电话网络、有线电视网络、局域网(LAN)、广域网(WAN)和城域网(MAN)。此外,这些单独网络可以是无线网络或有线网络或者其组合。
在所示出的实施例中,设备104包括耦合到存储器112的一个或多个处理器110。存储器112包括一个或多个应用114(例如,图像捕获应用、图像旋转校正应用等等)和其它程序数据116。存储器112可以耦合到其它设备、与其它设备相关联和/或对于其它设备可访问,这些其它设备例如为网络服务器、路由器、服务器106和/或其它客户端设备(没有示出)。
该一个或多个处理器110可以包括中央处理单元(CPU)、图形处理单元(GPU)、微处理器、数字信号处理器等等。存储器112可以被配置为存储一个或多个软件和/或固件模块,其中这些软件和/或固件模块可在一个或多个处理器110上执行以实现各种功能。术语“模块”旨在表示软件的示例性划分,以便于讨论目的,而不是旨在表示任何类型的需求或需要的方法、方式或组织方式。因此,尽管讨论了各种“模块”,但可以对它们的功能和/或类似的功能进行不同地排列(例如,组合成更少数量的模块、分割成更大数量的模块等等)。
替代地或额外地,本文所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。举例而言但非做出限制,可以使用的硬件逻辑组件的示例性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、特定应用标准产品(ASSP)、片上系统(SoC)、复杂可编程逻辑器件(CPLD)等等。
客户端设备104的用户118可以通过图像捕获应用来接收进入客户端设备104的图像。例如,客户端设备104可以包括图像捕获应用,用户通过该应用来捕获图像。图像捕获应用可以与并入到设备中的照相机相关联,可以将捕获的图像存储在设备104上。在其它实现中,用户可以在该设备上从某个其它源接收图像,例如,图像捕获应用可以包括消息传送应用、社交媒体应用、浏览应用等等。在这些例子中,图像捕获应用可以充当为前端应用,其中该应用获得或者以其它方式提供将向图像旋转校正系统102呈交的图像,其中图像旋转校正系统102可以充当为后端应用。
响应于从图像捕获应用接收到图像,图像旋转校正系统102可以通过向图像内容应用内容感知旋转来处理该图像。图像旋转校正系统102可以校正非意愿的旋转,该旋转可能源自于例如倾斜的图像捕获。在一些实施例中,可以将图像旋转校正系统102作为编辑工具来使用,以向图像内容应用期望的艺术效果(例如,不同于校正性旋转的期望的旋转)。
图2更详细地示出了图像旋转校正系统102。在一个实施例中,图像旋转校正系统102包括但不限于:一个或多个处理器202、网络接口204、存储器206和输入/输出接口208。处理器202被配置为执行从网络接口204接收的、从输入/输出接口308接收的,和/或被存储在存储器206中的指令。处理器202可以与图1的处理器110相同或者不相同,存储器206可以与图1的存储器112相同或者不相同。
存储器206(和存储器112)包括在设备和/或硬件组件(其是设备的一部分或者在设备之外)中包括的有形和/或物理形式的介质,该介质包括但不限于:随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、相变存储器(PRAM)、闪存、压缩盘只读存储器(CD-ROM)、数字多用途盘(DVD)、光卡或者其它光存储介质、盒式磁带、磁带、磁盘存储、磁卡或者其它磁存储设备或介质、固态存储器设备、存储阵列、网络附加存储、存储区域网络、托管计算机存储或者任何其它存贮设备存储器、存贮设备和/或可以用于存储和维持由计算设备进行访问的信息的存储介质。
尽管在附图中将存储器112、206描述成单个单元,但存储器112和/或206(以及本文所描述的所有其它存储器)可以包括计算机存储介质或者计算机存储介质和其它计算机可读介质的组合。计算机可读介质可以包括计算机存储介质和/或通信介质。计算机存储介质包括利用用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于:相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、压缩盘只读存储器(CD-ROM)、数字多用途盘(DVD)或其它光存储、盒式磁带、磁带、磁盘存储或者其它磁存储设备、或者能够用于存储由计算设备进行访问的信息的任何其它非传输介质。
相比而言,通信介质可以体现计算机可读指令、数据结构、程序模块或者调制的数据信号(例如,载波波形或其它传输机制)中的其它数据。如本文所定义的,计算机存储介质不包括通信介质。
存储器206可以包括程序模块210和程序数据212。在一个实施例中,程序模块210包括图像捕获模块214。图像捕获模块214可以例如从客户端设备104上的存储器112,获得或者获取与数字图像相对应的图像数据。额外地或者替代地,捕获模块214可以从服务器106获得或者获取图像数据。该图像数据可以包括但不限于:使用客户端设备104上的照相机所捕获的数字图像。或者,可以从某个其它源来获得这些数字图像。
数字图像通常包含由图像边界来约束的图像内容。图像边界可以由用于捕获该图像的技术或设备、由用户、由在图像旋转校正系统102处捕获图像内容之前所执行的该图像的某种预处理,或者由某种其它方法来确定。
可以将所捕获的图像中的每一个的图像内容旋转某个旋转角度△。例如,如果用于捕获获取的图像的捕获设备倾斜了△(例如,由于对于捕获器的部件的不小心),则所捕获的图像将倾斜△。在本公开内容的一些方面,使用图像旋转校正系统102来校正该非意愿的△。
图像旋转校正系统102还可以包括用于向数字图像应用输入网格的网格应用模块218。在一个实施例中,网格应用模块218应用均匀网格(例如,栅格),其定义多个象限(quadrant)。一旦应用到图像,则每一个象限与该数字图像的一部分相对应。象限可以是任何形状或大小。在一个实施例中,输入网格具有与图像边界相对应的网格边界。但是,在其它实现中,网格应用模块218可以将网格应用到比整个捕获的图像更小的部分。例如,用户可以选择在与整个输入图像相比更小的部分上实现本公开内容的技术。在该实施例中,用户可以例如经由客户端设备上的用户界面,定义要进行校正的输入图像的部分,以定义图像边界。再举一个例子,图像处理程序可以使得在与整个输入图像相比更小的部分上实现本公开内容的技术。
此外,程序模块210还可以包括线提取模块220。线提取模块220可以例如使用一种或多种提取技术(例如,边缘检测、角检测、斑点检测、脊线检测和/或尺度不变特征转换),从图像中提取线。此外,尽管本公开内容描述了线提取模块220,但本领域普通技术人员在了解本公开内容的益处的基础上应当理解,本公开内容的方面可以提供不同于线提取的提取或者除线提取之外的提取。例如,也可以提取和操作形状和/或特征。例如,可以使用基于形状的检测(例如,其可以包括门限法、斑点提取、模板匹配和/或霍夫(Hough)变换),从捕获的图像中提取不同于线的特征。
随后,可以使用线分组模块222,根据所提取的线的属性中的一个或多个,对它们进行分组。例如,可以根据这些线的方向,对它们进行分组。在一种实现中,可以根据每一个提取的线相对于某个轴(例如,水平轴)的旋转角度,将其分组到一个“bin”中。例如,可以将这些线分组到九十个bin中,每一个bin包括彼此之间的旋转位于2度之内的线。此外,线分组模块还可以定义这些分组或bin中的两个作为水平bin和垂直bin。水平bin包括在使用图像旋转校正系统102对图像进行校正之后旨在是水平的线,以及垂直bin包括在对图像进行校正之后旨在是垂直的线。在图像内容被旋转或倾斜该旋转角度△,以及用户期望针对这种非意愿的倾斜来对图像进行校正的例子中,水平和垂直bin将包括:当被旋转该旋转角度△时,在经校正的图像中将分别呈现为水平和垂直的线。
此外,程序模块210还可以包括优化模块224,后者对能量函数进行优化以确定优化的网格。该能量函数可以包括具有旋转保持项、线保持项、形状保持项和边界保持项的多个项。在一些实现中,旋转保持项可以促进图像内容(其包括所提取的线)关于旋转角度△的旋转。此外,旋转保持项还可以包括平滑项,其促进被分组在相邻或邻近的bin中的线进行类似的旋转。可以对旋转保持项进行设计,使得对水平和/或垂直bin中的线严格地旋转大约旋转角度△,而其它bin中的线则旋转不同于该旋转角度△的角度。
线保持项可以构建所提取的线和输入网格的顶点之间的关系。
形状保持项可以需要每一个网格象限经历类似的变换。诸如“尽可能刚性”之类的一些变换是公知的,并且是可以使用的。在该变换中,可以将每一个网格象限的失真减到最小以保持形状。在其它实现中,相似性变换可以使用“尽可能相似”变换。在下面将详细描述的示例性能量函数中,使用该变换的一个例子。
边界保持项可以将网格边界顶点约束到确定的边界。例如,可以将网格边界顶点约束到图像内容边界。用此方式,输出图像具有与输入图像相同的边界,这可以避免用于对输出图像进行裁剪的需求。在其它实现中,可以将网格边界顶点约束到某个其它预先定义的边界。
如下面将进一步详细描述的,优化模块224可以使用替代的算法,对能量函数进行优化。优化模块224还可以使用半二次分裂技术。下面还将描述一种示例性半二次分裂技术。
对能量函数进行优化描述了优化的网格,可以使用优化的网格应用模块将其应用于图像内容。
此外,程序模块210还可以包括图像变形模块228,后者对捕获的输入图像进行变形以适配该优化的网格。例如,图像变形模块228可以使用双线性插值。
此外,还可以提供图像输出模块230,以通过客户端设备104例如向用户118输出经校正的图像。
在其它实现中,程序数据212还可以包括其它程序数据232,其中这些其它程序数据232可以与线检测和分组和/或能量函数有关,也可以无关。举例而言但非做出限制,其它程序数据232可以包括用户优选的或者以其它方式预先建立的参数,这些参数可以用于促进新捕获的图像的校正。
示例性框架
下文描述用于内容感知图像旋转的示例性框架。
在图像校正装置的一个方面(例如,上面所描述的图像旋转校正系统102),可能期望对图像内容进行旋转以校正无意的旋转或倾斜。在该示例性框架中,捕获的图像中的图像内容被旋转了一个旋转角度△,而该图像内容要被校正该旋转角度△。在该框架中,旋转角度△是“应当”为水平和垂直的线(即,出于非意愿的旋转)分别相对于“真正”的水平和垂直被旋转了的角度。因此,对水平和垂直线的旋转角度△的旋转,将使得这些线呈现为水平和垂直的。在该框架中,旋转角度△是已知的,其是由用户输入的或者是从某个其它源获得的。例如,用于捕获该图像的设备的倾斜角可以是设备已知的,并且是由设备进行传达的。在另一种实现中,用户可以与图像进行交互以定义一条线(例如,提取的线),来指示该线应当是水平的或垂直的。
在该示例性框架中,例如由线提取模块220在所捕获的图像中识别线。根据需要,在与输入网格的交叉点处,将较长的线分割成较短的线(即,线段),使得每一个线只位于单个网格象限中。不对已经位于网格的仅仅单个象限中的线进行分割。
在定义了这些线中的每一个之后,确定这些线中的每一个相对于基准轴的方向。在该示例性框架中,基准轴是输入图像的x轴,这些线的方向是相对于该x轴的。对这些方向偏移π的周期,使得在输入图像中它们位于[-Δ,π-Δ)的范围中。因此,通过将图像内容严格地旋转△所获得的输出图像,使这些线在该输出图像中位于[0,π)的范围中。
随后,例如使用线分组模块222,对这些线进行分组。在该例子中,将[-Δ,π-Δ)的范围均匀地量化成M=90个bin,每一个覆盖π/90,或者2度。根据该分组,构成由网格所分割的线的所有线段都包括在同一个bin中,由于它们是平行线。能量函数促进相同bin中的所有线沿着一个共同期望的旋转角度,使得那些较长的线维持它们的线性,以及平行线维持它们的平行。第m个bin中的预期旋转角度是θm。集合形成M x 1向量θ。第m个bin中的线是在该图像的校正之后变成水平/垂直的那些线,对于m=1来说,M(水平)或M/2、M/2+1(垂直)。这四个bin可以被称为“规范的”bin,在本公开内容的一些实现中,对这些bin进行旋转角度△的旋转。
在对这些线进行确定和分组的情况下,该示例性框架随后提供一个能量函数。该能量函数优选地对规范的bin中的线进行△的严格旋转。该旋转对于经校正的图像的旋转产生良好的视觉感知。此外,该函数还可以将网格中的顶点约束到该输出的边界。用此方式,例如,原始图像的全部内容将被呈现在经校正的图像中。也就是说,与所建立的边界相比,校正之后的内容将不会更小(并因此需要增加内容)或者更大(并因此需要裁剪)。此外,能量函数还可以使局部失真减到最小。
从原始图像网格来看(在该例子中,其是四方网格),顶点的位置是Vi=(xi,yi)T,所有顶点{Vi}连接成一个向量V。
该示例性框架中的能量函数是关于V和θ的,其具有旋转保持项、线保持项、形状保持项和边界保持项。现在详细地描述这些项。
旋转保持项提供能量ER,并且其促进期望的旋转的保持。其给出为:
ER(θ)=∑mδmm-Δ)2+∑mmm+1)2 (1)
在式(1)中,第一项是用于促进按照△旋转这些线的数据项。δm是加权因子,对于规范的bin来说,该值更大,即,使得这些bin的旋转紧密接近于△。在一个实施例中,对于规范的bin来说,δm=103,而对于所有其它bin来说,其等于零。这对于水平和垂直bin施加了强约束,但也可以使用其它加权因子。
式(1)的第二项是平滑项,其促进对于相邻bin中的线进行类似地旋转。在与规范的bin靠近的bin处,该项平滑地传递规范的bin的严格旋转的影响。
应当理解的是,能量ER(θ)允许对于非规范的bin按照不同于△的角度进行旋转。这允许自适应、非刚性旋转。能量ER(θ)是关于向量θ的二次方程。
该能量方程中的下一个项是线保持项。该项构建这些线和网格顶点之间的关系。具体而言,对于第k个被检测到的线,可以将端点表示成四个网格顶点的双线性插值。可以将方向矢量ek计算成两个端点的差值。因此,可以将ek写成这些顶点V的线性函数(针对某个Pk的ek=PkV)。其中uk表示输入图像中的该线的方向矢量,并且利用预期旋转角度θm(k)来将该线的bin表示成m(k),则式(2)给出了用于测量线旋转的失真的能量:
在该式中,K是线的数量,sk是与线k相关联的比例,Rk是旋转矩阵:
根据该式,对输入向量uk旋转θm(k),并对其缩放sk倍,以及根据ek测量其失真。
假定比例sk是独立的,使EL关于每一个sk减到最小,这产生
将sk代入到式(2),则产生:
其中I是单位矩阵,理论上,该项有助于ek和uk之间的角度是θm(k),使得对该线旋转θm(k)
在该示例性框架中,该线保持项与s解耦合,以获得关于V和θ的闭合形式。用此方式,可以更容易对于θ的非线性进行优化。此外,能量EL(V,θ)是关于V的二次方程。
在该框架中,形状保持项包括相似性变换,其是“尽可能相似”变换。该形状保持能量Es是:
其中,N是象限(quad)数,q是象限索引。关于象限q进行定义,8x4矩阵Aq和8x1向量Vq是:
这里,(xq,0,yq,0)、…、(xq,0,yq,0)表示变形的象限的四个顶点,而是输入象限的四个顶点。能量Es是V的二次函数。
能量方程中的最后一项是边界保持项。在该示例性框架中,边界保持项维持右上方矩形边界中的图像内容。该项根据下式,对该矩形上的边界顶点进行约束:
在式(7)中,每一个累加是在每一个边界上的顶点上的。值w和h是右上矩形的宽度和高度。该例子中的矩形可以对应于对输入图像进行约束的矩形,或者其可以是某种其它定义的边界。EB(V)是关于V的二次方程。
根据刚刚所描述的四项,要进行优化的总能量E(V,θ)如下所述:
E(V,θ)=ES(V)+λBEB(V)+λLEL(V,θ)+λRER(θ) (8)
在一些实现中,λB=∞(108)用于定义硬边界约束。λL和λR可以是固定参数设置,它们可以是已知的。在一些实现中,发现100的值能很好地起作用。
在一种实现中,使用替代的算法来优化该能量E(V,θ)。具体而言,可以将该问题划分成两个子问题,其中每一个子问题进行迭代地优化。
首先,θ是固定的,该问题是求解V。在该实例中,E是关于V的二次函数。通过稀疏线性系统来给出该解,其中V包含几百个未知数。
接着,V是固定的,该问题是求解θ。随后,优化源自于使下式最小化:
第一项是非线性的,因此该解是非平凡的。在一种实现中,可以使用半二次分裂技术来求解该非线性问题。为此,使用一系列辅助变量每一个φk表示线k的各自旋转角度(而θm是bin m中的线的共同旋转角度)。将表示成线k的各自旋转矩阵,将式(9)重新写成:
β是罚数权重,当β→∞时,对于式(10)的求解收敛到式(9)。该半二次分裂技术可以从较小的β开始,逐渐增加到∞。在每一个步骤,当设置β时,将式10中的问题分割成两个子问题。
具体而言,当φ是固定的,对θ进行更新时,第一子问题是:
其是关于θ的二次函数,通过线性系统来求解,其中θ具有90(bin的数量)个未知数。
第二子问题(即,当θ是固定的,对φ进行更新时)是非线性的,但每一个φk是独立的,并因此可以分别地求解。第二子问题是:
这是一个单变量问题,例如,其可以使用梯度下降方法来求解。或者,可以使用查表方法。如果β=0,则通过ek和uk之间的角度来求解第一项,而如果β→∞,则通过φk=θm(k)来求解。式12中的问题在这两个值之间进行折衷。在一种实现中,可以将范围[∠(ek,ukm(k)]划分成多个离散值,可以对式(12)中的代价进行评估,可以选择使该代价最小化的φk的值。在一种实现中,发明人使用100个离散值,结果是简单明了的解。
可以根据诸如下面的算法,对该示例性能量函数进行优化:
算法1:优化
应当理解的是,根据该示例性框架,对规范的bin中的线进行严格地旋转(即,旋转角度△),而更少约束对所有其它bin中的线的旋转。由于用户更能感知的水平线和垂直线正确呈现,因此结果是令人赏心悦目的。
图形化示例
图3示出了使用类似于刚刚描述的示例性框架的系统的图像校正过程的第一例子。
提供了输入图像302。该输入图像是不令人满意的,由于其旋转或倾斜了。例如,用户可能在捕获该图像时不小心。
转而,通过在输入图像302上放置网格306,来形成输入网格图像304。如上所述,输入网格306包括多个相同大小的、正方形象限。在其它实现中,该网格可以具有不同大小和/或形状的象限,故这些象限不需要是统一的。
此外,还示出了优化的网格图像308,其中将初始网格进行了优化以生成优化的网格310。在该例子中,使用上面所描述的示例性框架来优化该网格。
删除优化的网格310产生经校正的图像312。在该经校正的图像中,内容显得是仅仅针对倾斜的角度进行校正而被旋转,这是由于仅仅对水平和垂直线进行关于倾斜角的严格旋转,在经校正的图像中可以保持所有原始内容。
图4示出了针对非意愿的旋转,对输入图像402进行校正的另一个示例。这里,旋转角度是7度。在404处,根据上面所描述的示例性框架,对原始图像进行校正。406示出了使用常规旋转和裁剪编辑的例子。如上所述,在经校正的图像404中呈现图像402的原始内容,但在经校正的图像406中丢失了许多的原始内容。
附图标记408示出了用于描绘上面在示例性框图中所描述的自适应旋转技术的图表。具体而言,该图表描绘了线的90个bin中的每一个的旋转角度,它们根据上面所描述的方法进行了分组。如图所示,在经校正的图像404中所示出的自适应技术中,由于上面所描述的能量函数,对bin 1、45和90中的线旋转大约该旋转角度(这里,7度),而对于其它bin中的线旋转某个不同的角度。事实上,一些bin被旋转小于3度。将此与使用非自适应方法形成的经校正的图像406(即,其中对所有线都旋转7度)进行比较。经校正的图像404是赏心悦目的,与经校正的图像406相比,仍然保留了所有的原始内容,其中经校正的图像406可能是旋转正确的,但以损失某些内容为代价。
示例性方法
图5和图6是用于描述使用图像旋转校正系统,对图像进行校正的示例性方法500、600的流程图。图5和图6的方法可以不需要在图1的环境下实现,以及不使用图2的系统来实现。为了便于解释起见,参照图1和图2来描述方法500、600。但是,方法500、600可以替代地在其它环境下和/或使用其它系统来实现。
在计算机可执行指令的通常背景下,描述方法500、600。通常,计算机可执行指令可以包括用于执行特定功能或者实现特定抽象数据类型的例程、程序、对象、组件、数据结构、过程、模块、函数等等。此外,方法还可以在分布式计算环境下实现,其中,可以由通过通信网络相链接的远程处理设备来执行功能。在分布式计算环境下,计算机可执行指令可以位于包括存储器存贮器件的本地和/或远程计算机存储介质中。
将示例性方法示出为表示一系列操作的逻辑流程图形式的方框的集合,其中该一系列操作可以用硬件、软件、固件或者其组合的方式来实现。用于描述方法的顺序不应被解释成限制性的,可以以任何顺序来组合任意数量的所描述的方法方框,以实现该方法或者替代的方法。另外,可以在不脱离本文所描述的主题的精神和范围的基础上,省略该方法中的个别方框。在软件的背景下,方框表示计算机指令,当其被一个或多个处理器执行时,执行所陈述的操作。在硬件的背景下,方框中的一些或全部可以表示专用集成电路(ASIC)或者执行所陈述的操作的其它物理组件。
返回到参见图5,在方框502处,图像旋转校正系统102可以例如从客户端设备106接收输入图像。在其它实施例中,图像旋转校正系统102可以从图像数据库216或者从其它系统中的数据库(例如,服务器106)接收图像数据。
在方框504处,响应于接收到该图像,图像旋转校正系统102向输入图像应用输入网格。在一个实施例中,输入网格是具有与该图像的边界相对应的边界的均匀网格。
在方框506处,图像旋转校正系统102可以对输入网格进行优化以生成优化的网格。该网格是根据能量函数来被优化的。在一个实施例中,该能量函数包括线保持项、旋转保持项、形状保持项和边界保持项。可以使用半二次分裂技术来求解该能量函数。
在方框508处,根据优化的网格,对图像内容进行变形。该结果是经校正的图像,其中,原始图像内容中的某些线被严格地旋转了例如大约预先定义的旋转角度,而其它线被旋转了大约某个其它角度。
现参见图6,在方框602处,图像旋转校正系统102可以例如从客户端设备104接收输入图像。
在方框504处,响应于接收到该输入图像,图像旋转校正系统102可以识别图像内容的边界。例如,该边界可以是矩形或者用于定义该图像的周界的其它形状。在其它实现中,该边界可以表示比整个输入图像更小的部分。例如,该边界可以只包围该图像内容的一部分,使得仅仅该部分才受到图像旋转校正系统102的校正。在一些实现中,可以例如使用形状或其它识别工具(例如,用于识别诸如人脸之类的某些特征)来自动地定义该部分,或者该部分可以是用户定义的,例如,使用客户端设备106上的输入界面。该边界优选地识别要进行校正的内容。
在方框606处,向由边界所识别的图像内容适配输入网格。举一个例子,该输入网格具有与在方框604处识别的边界相对应的网格边界。
在方框608处,识别图像内容中的线。例如,可以使用常规的边缘或线检测技术来识别这些线。此外,在该方框608中,还可以确定这些线的属性。例如,可以确定这些线的旋转方向。此外,还可以建立这些线与网格的关系。
接着,在方框610处,将所检测到的线分组成多个分组。这些分组可以是根据这些线的方向,使得水平线(或者将是水平的线,但具有非意愿的旋转)和垂直线(或者将是垂直的线,但具有非意愿的旋转)分别成组,其中针对倾斜线来提供一个或多个额外的bin。在上面所描述的示例性框架中,可以将线分组成90个bin,每一个bin对应于递增2度的旋转,其中bin 1和90包括水平线,bin 45包括垂直线。在其它实现中,可以使用更多或者更少的bin。
在对线进行分组之后,在方框612处,对输入网格进行优化。该优化是根据能量函数来进行的,其中该能量函数分别地对待每一个线分组。在一个实施例中,对网格进行优化,使得每一个bin中的所有线都经历相同的旋转,但分别地对待每一个bin。此外,对某些bin中的线进行严格地旋转,而将其它bin中的线旋转到不同的角度。
在方框614处,根据优化的网格,对图像内容进行变形。例如,可以使用双线性插值来对内容进行变形。
尽管将上面的动作描述成由图像旋转校正系统102来执行,但可以由客户端设备104或者客户端设备104的其它软件或硬件和/或任何其它计算设备(例如,服务器106)来执行由图像旋转校正系统102执行的一个或多个动作,反之亦然。例如,客户端设备104可以包括用于向图像应用网格或者从图像中提取线的机制和/或处理能力。随后,客户端设备104可以向图像旋转校正系统102发送这些图像(即,具有网格和/或提取的线)以进行校正。
此外,客户端设备104和图像旋转校正系统102可以进行协作,以完成所描述的由图像旋转校正系统102执行的动作。
本文所描述的方法中的任何一种方法的动作中的任何一个,可以基于一个或多个计算机可读介质上存储的指令,至少部分地由处理器或其它电子设备来实现。举例而言而非做出限制,可以在被配置有可执行指令的一个或多个处理器的控制之下,实现本文所描述的方法中的任何一种方法的动作中的任何一个,其中这些可执行指令可以存储在诸如一个或多个计算机存储介质之类的一个或多个计算机可读介质上。
结论
尽管以特定于结构特征和/或方法动作的语言描述了本发明,但应当理解的是,本发明并不一定限于所描述的特定特征或动作。相反,只是将该特定特征和动作公开成实现本发明的示例性形式。

Claims (13)

1.一种对由照相机捕获的数字图像进行校正的计算机实现方法,所述方法包括:
在图像校正系统处,从具有照相机的设备接收包含图像内容的图像,其中所述图像内容表示由所述照相机捕获的景物,所述图像内容旋转了一个旋转角度;
识别与所述图像内容中的所述景物的线性特征相对应的线;
根据所述线相对于基准轴的旋转角度,将所述线分组到多个分组中,其中所述多个分组包括一个或多个倾斜分组和水平分组或垂直分组中的至少一个,其中,所述水平分组和所述垂直分组包括当旋转所述旋转角度时,在校正的图像中分别显现为水平和垂直的线;通过对所述多个分组中的所述线进行旋转,对所述图像内容进行变形以生成校正的图像,其中,与所述一个或多个倾斜分组中的每一个倾斜分组中的所述线相比,更加严格地约束所述水平分组或者所述垂直分组中的至少一个中的所述线旋转所述旋转角度;以及
发送所述校正的图像以向用户进行显示。
2.根据权利要求1所述的方法,其中,在经变形的图像中保持所述图像内容的全部,并且经变形的图像不包含额外的图像内容。
3.根据权利要求1所述的方法,还包括:
在对所述线进行分组之前,向所述图像内容适配网格,所述网格具有与所述图像内容的边界相对应的网格边界;
在对所述线进行分组之后,并在对所述图像进行变形之前,根据能量函数对所述网格进行优化以定义优化的网格,所述能量函数包括:
旋转保持项,用于促进保持所述图像内容的旋转,以抵消关于所述旋转角度的所述旋转;
线保持项,用于定义所述线和所述网格的顶点之间的关系;
形状保持项;以及
边界保持项,用于将所述优化的网格约束到所述图像内容的所述边界。
4.根据权利要求3所述的方法,其中,对所述图像内容进行所述变形包括:将作为水平线或垂直线出现在所述校正的图像中的线旋转所述旋转角度。
5.根据权利要求3或4所述的方法,其中,对所述图像内容进行所述变形包括:将作为倾斜线出现在所述校正的图像中的线旋转不同于所述旋转角度的角度。
6.根据权利要求3或4所述的方法,其中,所述校正的图像包含所述图像的所述图像内容的全部。
7.根据权利要求3或4所述的方法,其中,所述校正的图像只包含所述图像的所述图像内容。
8.根据权利要求3或4所述的方法,其中,对所述网格进行优化包括:使用半二次分裂技术,对所述能量函数进行优化。
9.根据权利要求3所述的方法,其中,根据所述优化的网格对所述图像进行变形,使得对所述多个分组中的每一个分组中的所有线旋转相同的角度。
10.根据权利要求3或9所述的方法,其中,包括所述倾斜线的所述分组是以所述倾斜线的角度为特征的,以及根据所述优化的网格对所述图像进行变形,使得相邻分组中的线旋转类似的角度。
11.根据权利要求3所述的方法,其中,所述形状保持项包括针对所述网格的多个象限中的每一个象限的相似性变换,以及所述线保持项体现所述图像中的线和所述网格的顶点之间的关系。
12.一种其上存储有处理器可执行指令的计算机可读介质,其中在所述处理器可执行指令被执行时,配置处理器执行权利要求1-11中的任何一项所述的方法。
13.一种用于使用计算设备,对由照相机捕获的数字图像进行校正的系统,所述系统包括:
一个或多个处理器;
存储器,其通信地耦合到所述一个或多个处理器,其存储有可执行指令,其中当所述可执行指令被所述一个或多个处理器执行时,配置所述一个或多个处理器执行权利要求1-11中的任何一项所述的方法。
CN201480064595.5A 2013-11-27 2014-11-24 内容感知图像旋转 Active CN105765624B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/092,032 US9466092B2 (en) 2013-11-27 2013-11-27 Content-aware image rotation
US14/092,032 2013-11-27
PCT/US2014/066991 WO2015080986A1 (en) 2013-11-27 2014-11-24 Content-aware image rotation

Publications (2)

Publication Number Publication Date
CN105765624A CN105765624A (zh) 2016-07-13
CN105765624B true CN105765624B (zh) 2019-04-12

Family

ID=52146691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480064595.5A Active CN105765624B (zh) 2013-11-27 2014-11-24 内容感知图像旋转

Country Status (5)

Country Link
US (1) US9466092B2 (zh)
EP (1) EP3074945B1 (zh)
CN (1) CN105765624B (zh)
TW (1) TW201520976A (zh)
WO (1) WO2015080986A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI584018B (zh) 2014-08-03 2017-05-21 帕戈技術股份有限公司 穿戴式照相機系統與用於將照相機系統或其他電子裝置附接至穿戴式製品之設備及方法
AU2015371289A1 (en) 2014-12-23 2017-07-13 Pogotec. Inc. Wireless camera system and methods
CN107924071A (zh) 2015-06-10 2018-04-17 波戈技术有限公司 具有用于电子可佩戴装置的磁轨的眼镜
EP3341912B1 (en) 2015-08-26 2020-07-08 FotoNation Limited Image processing apparatus
WO2017075405A1 (en) 2015-10-29 2017-05-04 PogoTec, Inc. Hearing aid adapted for wireless power reception
US9865038B2 (en) * 2015-11-25 2018-01-09 Konica Minolta Laboratory U.S.A., Inc. Offsetting rotated tables in images
CN105812662A (zh) * 2016-03-17 2016-07-27 合肥联宝信息技术有限公司 图像获取方法
US11558538B2 (en) 2016-03-18 2023-01-17 Opkix, Inc. Portable camera system
WO2018189971A1 (ja) * 2017-04-13 2018-10-18 シャープ株式会社 画像処理装置、撮像装置、端末装置、画像補正方法および画像処理プログラム
TWI657410B (zh) * 2018-03-05 2019-04-21 光寶電子(廣州)有限公司 影像角度偵測的方法及其影像處理系統
CN110316084B (zh) * 2018-03-30 2021-09-21 比亚迪股份有限公司 基于车载显示终端的导航显示系统、方法和车辆
WO2020102237A1 (en) 2018-11-13 2020-05-22 Opkix, Inc. Wearable mounts for portable camera

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282300B1 (en) * 2000-01-21 2001-08-28 Signafy, Inc. Rotation, scale, and translation resilient public watermarking for images using a log-polar fourier transform
CN101976429A (zh) * 2010-10-27 2011-02-16 南京大学 基于游弋图像的水面鸟瞰图成像方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934422B2 (en) 2001-12-18 2005-08-23 Honeywell International Inc. Methods, data, and systems to warp an image
US8525871B2 (en) * 2008-08-08 2013-09-03 Adobe Systems Incorporated Content-aware wide-angle images
US8374462B2 (en) 2008-11-14 2013-02-12 Seiko Epson Corporation Content-aware image and video resizing by anchor point sampling and mapping
US8270771B2 (en) 2008-12-09 2012-09-18 Xerox Corporation Iterative selection of pixel paths for content aware image resizing
US8483513B2 (en) 2010-01-22 2013-07-09 Corel Corporation, Inc. Method of content aware image resizing
US8724854B2 (en) 2011-04-08 2014-05-13 Adobe Systems Incorporated Methods and apparatus for robust video stabilization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282300B1 (en) * 2000-01-21 2001-08-28 Signafy, Inc. Rotation, scale, and translation resilient public watermarking for images using a log-polar fourier transform
CN101976429A (zh) * 2010-10-27 2011-02-16 南京大学 基于游弋图像的水面鸟瞰图成像方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Line-Structure-Preserving Approach to Image Resizing;Che-Han Chang 等;《Computer Vision and Pattern Recognition (CVPR)》;20120621;第1075-1082页
Image Warps for Artistic Perspective Manipulation;Robert Carroll;《ACM Transactions on Graphics (TOG)》;20100730;第29卷(第4期);第127:1-127:9页

Also Published As

Publication number Publication date
EP3074945A1 (en) 2016-10-05
EP3074945B1 (en) 2019-03-27
TW201520976A (zh) 2015-06-01
WO2015080986A1 (en) 2015-06-04
CN105765624A (zh) 2016-07-13
US20150147003A1 (en) 2015-05-28
US9466092B2 (en) 2016-10-11

Similar Documents

Publication Publication Date Title
CN105765624B (zh) 内容感知图像旋转
US11783461B2 (en) Facilitating sketch to painting transformations
JP7373554B2 (ja) クロスドメイン画像変換
Karni et al. Energy‐based image deformation
US8355592B1 (en) Generating a modified image with semantic constraint
CN111199531A (zh) 基于泊松图像融合及图像风格化的交互式数据扩展方法
CN110660037A (zh) 图像间脸部交换的方法、装置、系统和计算机程序产品
CN108961303A (zh) 一种图像处理方法、装置、电子设备和计算机可读介质
US11587271B2 (en) Catalog normalization and segmentation for fashion images
Kaufmann et al. Finite element image warping
US11367263B1 (en) Image-guided three dimensional modeling
US10949523B2 (en) Method and electronic device for providing image-based CAPTCHA challenge
Joshi OpenCV with Python by example
WO2023035531A1 (zh) 文本图像超分辨率重建方法及其相关设备
CN109190629A (zh) 一种电子运单生成方法及装置
CN107563978A (zh) 人脸去模糊方法及装置
US20220198731A1 (en) Pixel-aligned volumetric avatars
JP2019219914A (ja) 画像生成装置、画像生成器、画像識別器、画像生成プログラム、及び、画像生成方法
KR20240032954A (ko) 타겟 객체의 위치를 지정하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 저장 매체
US20160086365A1 (en) Systems and methods for the conversion of images into personalized animations
CN112927339A (zh) 图形渲染方法和装置、存储介质及电子设备
US20210090302A1 (en) Encoding Three-Dimensional Data For Processing By Capsule Neural Networks
JP2023545052A (ja) 画像処理モデルの訓練方法及び装置、画像処理方法及び装置、電子機器並びにコンピュータプログラム
US20230162413A1 (en) Stroke-Guided Sketch Vectorization
CN107578375A (zh) 图像处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant