CN106056560B - 单应性校正 - Google Patents
单应性校正 Download PDFInfo
- Publication number
- CN106056560B CN106056560B CN201610207533.6A CN201610207533A CN106056560B CN 106056560 B CN106056560 B CN 106056560B CN 201610207533 A CN201610207533 A CN 201610207533A CN 106056560 B CN106056560 B CN 106056560B
- Authority
- CN
- China
- Prior art keywords
- image
- pixel
- transformation
- homography
- dimension
- 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
Links
- 238000012937 correction Methods 0.000 title abstract description 74
- 230000009466 transformation Effects 0.000 claims description 173
- 238000000034 method Methods 0.000 claims description 84
- 239000011159 matrix material Substances 0.000 claims description 50
- 238000007689 inspection Methods 0.000 claims description 32
- 230000017105 transposition Effects 0.000 claims description 29
- 238000001514 detection method Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 abstract description 36
- 230000007246 mechanism Effects 0.000 abstract description 8
- 238000005070 sampling Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 22
- 239000000872 buffer Substances 0.000 description 21
- 238000000354 decomposition reaction Methods 0.000 description 18
- 238000003384 imaging method Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 10
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 5
- 239000002609 medium Substances 0.000 description 5
- 238000005096 rolling process Methods 0.000 description 5
- 238000002591 computed tomography Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 244000078534 Vaccinium myrtillus Species 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000002594 fluoroscopy Methods 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 244000131316 Panax pseudoginseng Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 235000003095 Vaccinium corymbosum Nutrition 0.000 description 1
- 235000017537 Vaccinium myrtillus Nutrition 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000021014 blueberries Nutrition 0.000 description 1
- 239000007853 buffer solution Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 239000001963 growth medium Substances 0.000 description 1
- 230000007773 growth pattern Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 239000000825 pharmaceutical preparation Substances 0.000 description 1
- 229940127557 pharmaceutical product Drugs 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G06T5/80—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G06T3/18—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
Abstract
本公开提供了用于将畸变图像映射到校正图像的多阶段图像映射机制。例如,多阶段图像映射机制可以从畸变图像去除单应性以分两个阶段重构校正图像:(1)其中从畸变图像部分地去除畸变以生成中间图像的第一阶段,以及(2)其中从中间图像去除残余畸变以恢复校正图像的第二阶段。
Description
技术领域
在本文中公开了涉及针对图像处理应用校正图像的单应投影的设备、系统以及方法。
背景技术
数字图像可以由许多装置形成并用于许多实际目的。装置包括具有对可见光或红外光进行操作的图像传感器的相机,所述图像传感器诸如电耦合器件(CCD)图像传感器或互补金属氧化物半导体(CMOS)图像传感器、行扫描传感器、飞点扫描仪、电子显微镜、包括计算机断层成像(CT)扫描仪的X光线装置、磁共振成像器以及本领域的技术人员已知的其它装置。在工业自动化、医疗诊断、用于多种军事、民用以及科学目的的卫星成像、摄影处理、监控和交通监视、文档处理以及许多其它应用中有实际应用。
为了服务于这些应用,可以用机器视觉系统来分析由各种装置形成的图像以提取适当的信息。具有相当可观的实际重要性的一种分析是确定与成像装置的视场中的对象对应的图像中的图案的位置、取向以及尺寸。图案检测方法在工业自动化中特别重要,在工业自动化中其用于在半导体制造、电子装置组装、医药制品、食品加工、消费品制造等中引导机器人和其它自动化装置。
图案检测方法可以对已经受透视畸变的图像进行操作。然而,透视畸变趋向于增加图案检测方法的计算复杂性和计算时间。因此,作为预处理步骤,可以对图像进行校正以在执行图案检测方法之前去除透视畸变。
发明内容
根据公开主题,提供了用于针对图像处理应用对图像的单应畸变进行校正的设备、系统以及方法。
某些实施例包括机器视觉系统。该系统可以包括被配置成运行在存储器中存储的计算机程序的处理器。计算机程序可以被配置成使处理器接收畸变图像和与畸变图像相关联的单应性矩阵,使用单应性分解模块来确定共同表示单应性矩阵的第一变换和第二变换,其中,第一变换使畸变图像与中间图像相关,并且第二畸变使中间图像与已校正图像相关,其中,第一变换被约束为将沿着中间图像的第一维度的像素映射到沿着畸变图像的第一维度的位置,并且其中,沿着畸变图像的第一维度的位置与沿着畸变图像的第一维度的相邻位置间隔开相同距离,使用单应性去除模块通过从畸变图像去除第一变换来生成中间图像,并且使用单应性去除模块通过从中间图像去除第二变换来生成已校正图像。
在某些实施例中,第二变换被约束为将沿着已校正图像的第一维度的像素映射到沿着中间图像的第一维度的位置,并且其中,沿着中间图像的第一维度的位置与沿着中间图像的第一维度的相邻位置间隔开相同距离。
在某些实施例中,处理器还被配置成在从中间图像去除第二变换之前使用单应性去除模块将中间图像转置。
在某些实施例中,处理器还被配置成使用单应性去除模块来使直接存储器访问控制器在从中间图像去除第二变换之前将中间图像转置。
在某些实施例中,直接存储器访问控制器被配置成使用二维直接存储器访问来将中间图像转置。
在某些实施例中,处理器还被配置成使用单应性去除模块通过针对中间图像的第一像素确定畸变图像中的对应第一位置并对围绕畸变图像中的对应第一位置的像素求卷积以确定用于第一像素的图像值来从畸变图像去除第一变换。
在某些实施例中,处理器还被配置成使用单应性去除模块通过在第一像素的坐标上操作第一变换来确定对应第一位置。
在某些实施例中,处理器被配置成使用单应性去除模块通过向第一维度上的对应第一位置的坐标添加常数来针对在第二维度上具有与第一像素相同的坐标的中间图像的第二像素确定畸变图像中的对应第二位置。
在某些实施例中,处理器被配置成使用单应性去除模块来向图案检测系统提供已校正图像,使得图案检测系统可以使用已校正图像来确定已校正图像是否包括特定图案。
在某些实施例中,处理器被配置成从图案检测系统接收单应性矩阵,其中,该单应性矩阵由图案检测系统基于与畸变图像相关联的单应性的假设来确定。
在某些实施例中,处理器被配置成使用单应性去除模块基于沿着畸变图像的第一维度的位置中的一个的亚像素坐标来选择一组内核中的一个,并在所述位置中的一个处应用所选内核。
某些实施例包括一种用于操作所公开的系统或所公开的非临时计算机可读介质的方法。该方法包括:在单应性分解模块处接收与畸变图像相关联的单应性矩阵;使用单应性分解模块来确定共同表示单应性矩阵的第一变换和第二变换,其中,第一变换使畸变图像与中间图像相关,并且第二畸变使中间图像与已校正图像相关,其中,第一变换被约束为将沿着中间图像的第一维度的像素映射到沿着畸变图像的第一维度的位置,并且其中,沿着畸变图像的第一维度的位置与沿着畸变图像的第一维度的相邻位置间隔开相同距离;使用耦合到单应性分解模块的单应性去除模块通过从畸变图像去除第一变换而生成中间图像;并且使用单应性去除模块通过从中间图像去除第二变换来生成已校正图像。
在某些实施例中,该方法包括在从中间图像去除第二变换之前使用单应性去除模块将中间图像转置。
在某些实施例中,该方法包括在从中间图像去除第二变换之前使用单应性去除模块使直接存储器访问控制器将中间图像转置。
在某些实施例中,该方法针对中间图像的第一像素确定畸变图像中的对应第一位置,并对围绕畸变图像中的对应位置的像素求卷积以确定用于第一像素的图像值。
在某些实施例中,该方法包括通过向第一维度上的对应第一位置的坐标添加常数来针对在第二维度上具有与第一像素相同的坐标的中间图像的第二像素确定畸变图像中的对应第二位置。
在某些实施例中,该方法包括向图案检测系统提供已校正图像,使得图案检测系统可以使用已校正图像来确定已校正图像是否包括特定图案。
在某些实施例中,该方法包括基于沿着畸变图像的第一维度的位置中的一个的亚像素坐标来选择一组内核中的一个,并在所述位置中的一个处应用所选内核。
某些实施例包括具有与单应性分解模块和单应性去除模块相关联的可执行指令的非临时计算机可读介质。该模块可操作用于使机器视觉系统接收与畸变图像相关联的单应性矩阵,确定共同表示单应性矩阵的第一变换和第二变换,其中,第一变换使畸变图像与中间图像相关,并且第二畸变使中间图像与已校正图像相关,其中,第一变换被约束为将沿着中间图像的第一维度的像素映射到沿着畸变图像的第一维度的位置,并且其中,沿着畸变图像的第一维度的位置与沿着畸变图像的第一维度的相邻位置间隔开相同距离;通过从畸变图像去除第一变换来生成中间图像,并且通过从中间图像去除第二变换来生成已校正图像。
本文所述的公开的设备、系统以及方法可以通过使用多阶段校正过程将畸变图像映射到已校正图像来改善校正畸变图像中的单应畸变的效率。校正过程的每个阶段被设计成减少计算并减少从存储器访问图像所需的时间量。
某些实施例包括机器视觉系统。该系统可以包括被配置成运行在存储器中存储的计算机程序的处理器。该计算机程序可以被配置成使处理器接收第一图像和与第一图像相关联的第一变换,其中,第一变换使第一图像与第二图像相关,并且被约束为将沿着第二图像的维度的多个像素映射到沿着第一图像的维度的多个位置,针对所述多个像素中的第一像素确定第一图像中的对应第一位置的坐标,基于与第一位置的坐标相关联的亚像素阶段来选择多个内核中的一个,其中,亚像素阶段指示第一位置与第一图像的像素网格相比的亚像素偏移,并且通过部分地对围绕第一图像中的第一位置的至少一个像素应用所选内核以确定用于第二图像中的第一像素的图像值来从第一图像生成第二图像。
在某些实施例中,处理器被配置成通过在第一像素的坐标上操作第一变换来确定第一位置的坐标。
在某些实施例中,处理器被配置成通过向第一位置的坐标添加常数来针对所述多个像素中的第二像素确定第一图像中的对应第二位置的坐标。
在某些实施例中,处理器被配置成基于与第二位置的坐标相关联的亚像素相位选择所述多个内核中的第二个,并且通过部分地对围绕第一图像中的第一位置的至少一个像素应用所述多个内核中的第二个以确定用于第二图像中的第一像素的图像值来从第一图像生成第二图像。
在某些实施例中,处理器被配置成接收与第二图像相关联的第二变换,其中,第二变换将第二图像与第三图像相关,并被约束为将沿着第三图像的维度的多个像素映射到沿着第二图像的维度的多个位置,针对第三图像的第一像素确定第三图像的对应第一位置的坐标,基于与第三图像中的第一位置的坐标相关联的亚像素相位选择所述多个内核中的一个,并且部分地通过对围绕第三图像的第一位置的至少一个像素应用所述多个内核中的一个以确定用于第三图像的第一像素的图像值来从第二图像生成第三图像。
某些实施例包括一种用于操作公开的系统或公开的非临时计算机可读介质的方法。该方法包括:接收第一图像和与第一图像相关联的第一变换,其中,第一变换使第一图像与第二图像相关,并且被约束为将沿着第二图像的维度的多个像素映射到沿着第一图像的维度的多个位置,针对所述多个像素中的第一像素确定第一图像中的对应第一位置的坐标,基于与第一位置的坐标相关联的亚像素相位来选择多个内核中的一个,其中,亚像素相位指示第一位置与第一图像的像素网格相比的亚像素偏移,并且通过部分地对围绕第一图像中的第一位置的至少一个像素应用所选内核以确定用于第二图像中的第一像素的图像值来从第一图像生成第二图像。
在某些实施例中,确定第一位置的坐标包括在第一像素的坐标上操作第一变换。
在某些实施例中,该方法还包括通过向第一位置的坐标添加常数来针对所述多个像素中的第二像素确定第一图像中的对应第二位置的坐标。
在某些实施例中,该方法还包括基于与第二位置的坐标相关联的亚像素相位选择所述多个内核中的第二个,并且通过部分地对围绕第一图像中的第二位置的至少一个像素应用所述多个内核中的第二个以确定用于第二图像中的第二像素的图像值来从第一图像生成第二图像。
在某些实施例中,该方法还包括接收与第二图像相关联的第二变换,其中,第二变换将第二图像与第三图像相关,并被约束为将沿着第三图像的维度的多个像素映射到沿着第二图像的维度的多个位置,针对第三图像的第一像素确定第三图像的对应第一位置的坐标,基于与第三图像中的第一位置的坐标相关联的亚像素相位选择所述多个内核中的一个,并且部分地通过对围绕第三图像的第一位置的至少一个像素应用所述多个内核中的一个以确定用于第三图像的第一像素的图像值来从第二图像生成第三图像。
某些实施例包括具有与单应性分解模块和单应性去除模块相关联的可执行指令的非临时计算机可读介质。该模块可操作用于使机器视觉系统接收第一图像和与第一图像相关联的第一变换,其中,第一变换使第一图像与第二图像相关,并且被约束为将沿着第二图像的维度的多个像素映射到沿着第一图像的维度的多个位置,针对所述多个像素中的第一像素确定第一图像中的对应第一位置的坐标,基于与第一位置的坐标相关联的亚像素相位来选择多个内核中的一个,其中,亚像素相位指示第一位置与第一图像的像素网格相比的亚像素偏移,并且通过部分地对围绕第一图像中的第一位置的至少一个像素应用所选内核以确定用于第二图像中的第一像素的图像值来从第一图像生成第二图像。
在某些实施例中,所述可执行指令还可操作用于使机器视觉系统通过向第一位置的坐标添加常数来针对所述多个像素中的第二像素确定第一图像中的对应第二位置的坐标。
在某些实施例中,该多个内核与在多个子相位处采样的相同函数对应。
在某些实施例中,第一变换和第二变换共同表示仿射变换。
在某些实施例中,第一变换包括向下采样操作。
在某些实施例中,第一变换包括第一变换矩阵。
本文所述的公开的设备、系统以及方法可以通过使用多阶段校正过程将畸变图像映射到已校正图像来改善校正畸变图像中的单应畸变的效率。校正过程的每个阶段被设计成减少计算并减少从存储器访问图像所需的时间量。
因此已相当宽泛地概括了公开的主题的特征,目的在于可更好地理解随后的其详细描述,并且目的在于可更好地灵活对本领域的贡献。当然,存在下文中将描述且将形成所附权利要求的主题的公开主题的附加特征。应理解的是本文所采用的措辞和术语是用于描述的目的且不应被视为限制性的。
附图说明
当结合以下附图来考虑时,参考公开的主题的以下详细描述,可以更全面地认识到公开的主题的各种目的、特征以及优点,在所述附图中,相同的附图标记表示相同元件。
图1示出了根据某些实施例的用于校正畸变图像的单应性的机器视觉系统。
图2示出根据某些实施例的用以使已校正图像畸变成中间图像的第二变换B的应用和用以使中间图像畸变成畸变图像的第一变换A的应用。
图3示出根据某些实施例的两阶段图像映射过程。
图4示出根据某些实施例的已经经受透视畸变的畸变图像的示例。
图5示出根据某些实施例的通过从图4的畸变图像去除第一变换A而生成的中间图像的示例。
图6示出根据某些实施例的通过从图5的中间图像去除第二变换B而生成的已校正图像的示例。
具体实施方式
在以下描述中,阐述了关于公开的主题的系统和方法及此类系统和方法可在其中操作的环境等的许多特定细节,以便提供公开的主题的透彻理解。仍然,对于本领域的技术人员将显而易见的是可在没有这些特定细节的情况下实施公开的主题,并且未详细地描述在本领域中众所周知的某些特征以避免公开的主题的复杂化。另外,将理解的是下面提供的示例是示例性的,并且可设想存在在公开的主题的范围内的其它系统和方法。
图像可以包括二维函数,其值对应于对象的物理特性,诸如亮度(辐射能、反射等)、色彩、温度、在参考平面之上的高度等,并且由图像形成装置测量,或者其值对应于对象的模拟特性,并且由任何数据处理装置生成。可以将图像视为二维矩阵,其中,二维矩阵中的每个仓(bin)(例如,像素)与一个值或一组值相关联。可以使用二维坐标(x,y)来识别每个像素。在某些实施例中,可以用具有相同y坐标的一组像素来识别一行图像;并且可以用具有相同x坐标的一组像素来识别一列图像。
畸变图像可以包括已例如由于透射效应而经受畸变的图像。可以将畸变图像设置在图像平面上,并且其可以表示对象平面的透视图。因此,对象平面上的平行线可在图像平面上会聚,在畸变图像内或者在畸变图像外面。
已校正图像可以包括通过从畸变图像去除畸变(例如,透视效应)而恢复的图像。可以将校正图像设置在对象平面上,并且其可以表示对象平面的正视图。在校正图像中,对象平面的没影线可以是无穷远线。
图像处理可以指代用以确定图像中所示的特征的特性的图像自动分析。其例如在自动化制造生产线中使用,在那里分析各部分的图像以在组装之前确定放置和对准。其还例如在其中分析封装的图像以保证产品标签、批号以及“新鲜”日期被适当地定位且易读的质量保证中使用。
图像处理也具有非工业应用。例如,在生物技术研究中,其可以用来识别显微镜成像样本的组分或培养基中的生长模式。在宏观规模,其可以在天文学研究中用来找到延时图像中的对象。图像处理器的气象学、农艺和国防应用包括卫星图像中的对象的检测和分析。
用于改善对象/图案/特征检测的准确度的一个图像处理技术是单应性校正。单应性指代空间中的同一平面的两个图像之间的关系。单应性被应用于图像校正,其可以指代用于在没影线在其上面变成无穷远线的公共图像平面上将畸变图像映射到校正图像的过程。此变换过程可以称为单应性校正。在某种意义上,单应性校正去除由成像系统的透视性质引入的畸变。
在单应性校正中,一旦已知了单应性(例如,畸变图像与校正图像之间的映射),图像映射技术可以用于从畸变图像去除单应性以恢复校正图像。此去除操作可以包括一个或多个图像处理操作,其可以包括缩放、平移、旋转、倾斜和/或其它图像变换操作中的一个或多个。
常规图像成像技术遗憾地对于大多数图像处理应用而言缓慢且过于计算密集。其常规图像映射技术针对校正图像中的每个像素位置识别畸变图像中的对应像素位置,并且畸变图像中的对应像素位置的值被拷贝到校正图像中的关联像素位置以完成映射。在简单示例中,校正图像中的每个像素坐标位置直接地映射到源中的现有像素。因此,例如,校正图像中的坐标(4,10)处的像素映射到畸变图像中的坐标(2,5);校正图像中的坐标(6,10)处的像素映射到畸变图像中的坐标(3,5)等等。
然而,校正图像中的像素很少直接地映射到畸变图像中的网格位置。因此,例如,校正图像中的坐标(4,10)处的像素可映射到畸变图像中的与像素远离一个亚像素(例如,坐标(2.5,5.33))的位置。这可能迫使需要内插和/或滤波来确定所确定位置处的适当图像值。在上文提供的示例中,可能将用于校正图像中的坐标(4,10)处的像素的适当强度确定为用于源像素位置(2,5)、(3,5)、(2,6)以及(3,6)的强度的加权平均值。在下文中,术语位置用于指代平面中的坐标,其可位于像素网格上也可不这样。
此类图像映射技术通常耗费计算且费时,因为必须针对校正图像中的每个像素独立地识别畸变图像中的一个或者多个对应像素。
此外,此类图像映射技术一般地在其存储器使用方面是低效的,因为其以存储在存储器中的像素未被对准到存储器结构的方式(即,数据被存储在存储器中的方式)访问该像素。例如,当图像映射技术使用畸变图像中的一个或多个像素来对用于校正图像中的像素的图像值进行内插时,从存储器获取所述一个或多个像素。某些种类的存储器(诸如动态随机访问存储器(DRAM))具有对连续存储器位置(例如,图像中的连续x个坐标)的访问一般地比非连续访问快得多的性质。因此,从存储器访问一个或多个像素的顺序或者一个或多个像素被写入到存储器的顺序对于快速存储器访问操作而言可能是关键的。遗憾的是,常规图像映射技术并不保证获取一个或多个像素的顺序将适合于存储器。因为从存储器访问一个或多个像素可能并不对应于存储器中的连续存储器位置,从存储器检索图像可能是费时的。
在3D Transformations of Images in Scanline Order(Catmull和Smith,1980)中在一定程度上解决了与常规图像映射技术相关联的某些问题。Catmull展示出一种将图像映射过程分解成多个阶段使得与校正图像中的像素(称为目的地像素)对应的畸变图像上的像素(称为源像素)位于存储器中的连续位置上的方法。然而,Catmull的方法仍要求针对每个目的地像素执行相当大的计算,特别是除法。Catmull看起来似乎已将其方法与特殊化硬件组合以改善计算速度,但是其方法不易在通用处理器上高效地执行。
在High-quality multi-pass image resampling(Szeliski等人,2010年)中也在一定程度上解决了与常规图像映射技术相关联的某些问题。Szeliski公开了用于执行可论证地具有某些期望性质的某些类别的图像映射的方法。然而,Szeliski’的方法并不适用于单应/透视图像映射。事实上,Szeliski承认“它尚未完全开发最佳多遍透视算法的理论,因为实现全计算效率是错综复杂的”。因此,需要改善用于单应/透视图像映射的计算和存储器访问的效率。
本公开提供了用于将畸变图像映射到校正图像的多阶段图像映射机制。例如,多阶段图像映射机制可以从畸变图像去除单应性以分两个阶段重构校正图像:(1)其中从畸变图像部分地去除畸变以生成中间图像的第一阶段,以及(2)其中从中间图像去除残余畸变以恢复校正图像的第二阶段。多阶段机制可以是有利的,因为其可以允许每个阶段在(1)识别两个图像中的像素之间的对应关系,(2)从存储器访问像素,以及(3)对像素进行滤波以确定图像值方面是高效的。
为此,多阶段图像映射机制将单应性变换H分解成两个单独的变换:第一变换A和第二变换B。因此:
H=A*B
根据此表示,第二变换B被设计成将对象平面(例如,与校正图像相关联的平面)的坐标映射到中间图像平面(例如,与中间图像相关联的平面)的坐标,并且第一变换A被设计成将中间图像平面的坐标映射到图像平面(例如,与畸变图像相关联的平面)的坐标。因此,可以将多阶段图像映射机制的第一阶段视为从畸变图像去除第一变换A以生成中间图形,并且可以将多阶段图像映射机制的第二阶段视为从中间图像去除第二变换B以生成校正图像。
在继续进行的描述中,源图像指代作为到单应性的分解变换中的一个(例如,第一变换A或第二变换B)的输入而提供的图像,并且目的地图像指代作为来自单应性的分解变换中的一个(例如,第一变换A或第二变换B)的输出而提供的图像。例如,针对第二变换B,源图像是校正图像,并且目的地图像是中间图像;并且针对第一变换A,源图像是中间图像,并且目的地图像是畸变图像。
在某些实施例中,分解变换中的一个或多个(A和/或B)被设计成将具有特定y坐标的源图像的所有像素映射到具有固定y坐标的目的地图像的像素。在一个示例中,第一变换A被配置成将一行源图像映射到一行目的地图像。此特征允许使用于源图像和/或目的地图像的大多数存储器访问与存储器结构对准,从而减少高速缓存未命中并减少用于访问外部存储器的访问时间。
在某些实施例中,分解变换(A和/或B)中的一个或多个被配置成将特定一行源图像中的像素映射到固定一行目的地图像中的与相邻位置等距离的位置。例如,可以将源图像(例如,用于第一变换A的中间图像)中的像素(1,y0)、(2,y0)、(3,y0)映射到目的地图像(例如,用于第一变换A的畸变图像)中的像素(2,y1)、(4,y1),(6,y1)。如前所述,固定的一行目的地图像可从像素网格偏离亚像素值。因此,坐标y1可以是分数坐标值(例如,3.5)。
在某些实施例中,由于目的地图像中的位置之间的距离是恒定的(称为“采样常数”),所以图像映射技术不需要独立地计算与特定一行源图像中的像素对应的目的地图像中的位置。替代地,一旦图像映射技术识别到与源图像中的第一像素对应的目的地图像中的第一位置,则图像映射技术可以使用该第一位置作为参考点来确定(例如,通过向第一位置的x坐标简单地添加采样常数)对应于与原图像中的第一像素在同一行中的相邻像素的第二位置。分解变换的此特性减少了识别目的图像中的与源图像中的像素对应的一个或多个位置所需的计算量。
图1示出了根据某些实施例的用于校正畸变图像的单应性的机器视觉系统100。系统100可以包括计算装置102,其包括处理器104、存储器106、单应性校正(HR)模块108、直接存储器访问(DMA)控制器114以及接口116。系统100还可以包括图像采集装置118,其可以生成场景的图像。
在某些实施例中,处理器104可以执行指令,并且一个或多个存储器装置106可以存储指令和/或数据。存储器装置106可以是非临时计算机可读介质,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动、光驱、可编程只读存储器(PROM)、只读存储器(ROM)或任何其它存储器或存储器的组合。存储器装置106可以用于临时地存储数据。存储器装置106还可以用于长期数据存储。可以用专用逻辑电路来补充处理器104和存储器装置106和/或将其结合到专用逻辑电路中。
在某些实施例中,HR模块108可以包括单应性分解模块110和单应性去除模块112。
单应性分解模块110可以被配置成接收要从畸变图像去除的单应性的表示,并确定与单应性对应的分解变换。分解变换可以包括例如要从畸变图像去除以生成中间图像的第一变换A以及要从中间图像去除以生成校正图像的第二变换B。在某些实施例中,分解变换可以包括可连续地从畸变图像去除以生成校正图像的超过两个变换,例如三个或四个变换。
单应性分解模块110可以约束分解变换中的一个或多个,使得特定一行源图像中的所有像素被映射到目的地图像的固定y坐标。固定y坐标可以是整数,在这种情况下,特定的一行源图像中的所有像素被映射到固定的一行目的地图像。并且,单应性分解模块110可以约束分解变换中的一个或多个,使得特定一行源图像中的像素被映射到目的地图像的固定y坐标中的相互等距离的位置。
单应性去除模块110可以被配置成从畸变图像去除分解变换以恢复校正图像。例如,单应性去除模块110可以从畸变图像去除第一变换A以生成中间图像,并且从中间图像去除第二变换B以恢复校正图像。在某些实施例中,单应性去除模块110可以对一行目的地图像进行向下采样以从目的地图像去除分解变换。在这种情况下,单应性去除模块110可以以不同的采样率对每行目的地图像进行向下采样以虑及分解变换的投影畸变。
在某些实施例中,单应性去除模块110可以被配置成对目的地图像进行向下采样作为分解变换去除过程的一部分。这可以通过例如用向下采样率来适当地调整分解变换来完成。
在某些实施例中,直接存储器访问(DMA)控制器114被配置成允许某些硬件装置向或从主存储器发送或接收数据,从而绕过处理器104以加速存储器操作。例如,DMA控制器114可以在不涉及到处理器104的情况下允许单应性分解模块110访问存储器106。在某些实施例中,DMA控制器114可以执行二维DMA。该二维DMA能够自动地跳过存储器中的并未与一行图像对应的某些字节。
在某些实施例中,可以用硬件来实现接口116以在多种介质(诸如光学、铜和/或无线接口)中以及在许多不同协议中(其中的某些可以是非暂时的)发送和接收信号。
在某些实施例中,可以用软件来实现模块108、110、112中的一个或多个。软件可以在能够执行计算机指令或计算机代码的处理器104上运行。处理器104是用硬件使用专用集成电路(ASIC)、可编程逻辑阵列(PLA)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或任何其它集成电路实现的。适合于执行计算机程序的处理器104举例来说包括通用微处理器和专用微处理器、数字信号处理器以及任何种类的数字计算机的任何一个或多个处理器。一般地,处理器104从只读存储器或随机存取存储器或两者接收指令和数据。
可以用数字电子电路或用计算机硬件、固件、软件或者用其组合来实现模块108、110、112。该实现可以是作为计算机程序产品,例如,在机器可读存储装置中有形地体现以便由数据处理设备(例如,可编程处理器、计算机和/或多个计算机)执行或控制器操作的计算机程序。可以用任何形式的计算机或编程语言来编写计算机程序,包括源代码、编译代码、解释代码和/或机器代码,并且可以用任何形式来部署计算机程序,包括作为独立程序或作为子例程、元件或者适合于在计算环境中使用的其它单元。可以将计算机程序部署在一个或多个地点处的一个计算机上或多个计算机上执行。
在某些实施例中,可以在同一集成电路(诸如ASIC、PLA、DSP或FPGA)上形成两个或更多模块108、110、112,从而形成片上系统。子例程可以指代实现一个或多个功能的计算机程序和/或处理器/特殊电路的各部分。
计算装置102可以操作耦合到图像采集装置118。图像采集装置118可以经由接口116来提供要校正的一个或多个图像。图像采集装置118可以包括电荷耦合器件(CCD)图像传感器或互补金属氧化物半导体(CMOS)图像传感器、行扫描传感器、飞点扫描仪、电子显微镜、包括计算机断层成像(CT)扫描仪的X光线装置、磁共振成像器和/或本领域的技术人员已知的其它装置。
计算装置102可以操作地耦合到外部装置(例如,工厂自动化或物流装置)或通信网络(例如,工厂自动化或物流网络)以便从装置或网络接收指令和/或数据和/或向设备或网络传输指令和/或数据。适合于体现计算机程序指令和数据的计算机可读存储装置包括所有形式的易失性存储器和非易失性存储器,举例来说,包括半导体存储器装置,例如DRAM、SRAM、EPROM、EEPROM以及闪存装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及光盘,例如CD、DVD、HD-DVD以及蓝光磁盘。
在某些实施例中,计算装置102可以包括用户设备。用户设备可以与一个或多个无线电接入网和有线通信网通信。用户设备可以是蜂窝式电话。用户设备还可以是提供服务的蜂窝电话,所述服务例如文字处理、网络浏览、玩游戏、电子书能力、操作系统以及整字键盘。用户设备还可以是提供网络访问和由智能电话提供的大多数服务的平板计算机。用户设备使用诸如Symbian OS、iPhone OS、RIM的黑莓、Windows Mobile、Linux、HP Web OS以及安卓之类的操作系统进行操作。屏幕可能是用来向移动装置输入数据的触摸屏,在这种情况下可以使用屏幕来代替整字键盘。用户设备还可以保持全球定位坐标、简档信息或其它位置信息。
在某些实施例中,计算装置102可以包括服务器。服务器可以使用操作系统(OS)软件进行操作。在某些实施例中,OS软件是基于Linux软件内核,并在服务器中运行特定应用程序,诸如监视任务和提供协议栈。OS软件允许分别地针对控制和数据路径分配服务器资源。例如,某些分组加速卡和分组服务卡专用于执行路由或安全控制功能,而其它分组加速卡/分组服务卡专用于处理用户会话业务。随着网络要求改变,在某些实施例中,可以动态地部署硬件资源以满足要求。
在某些实施例中,单应性去除模块112可以被配置成使用两阶段图像映射过程来校正畸变图像以恢复校正图像。在两阶段图像映射过程的第一阶段中,单应性去除模块112可以从畸变图像去除第一变换A以通过沿着畸变图像的x轴处理像素来生成中间图像,并且在两阶段图像映射过程的第二阶段中,单应性去除模块112可以通过沿着中间图像的y轴处理像素来去除第二变换B。
在某些实施例中,单应性的一个或多个分解变换可以被设计成使得单应性去除模块112优先地沿着源图像的x轴且沿着目的地图像的x轴访问像素。这是因为存储器一般地与图像的x轴对准。换言之,存储器一般地通过(1)在沿着x轴保持像素顺序的同时存储具有第一y坐标的所有图像且然后(2)在沿着x轴保持像素顺序的同时存储具有第二y坐标(常常邻近于第一y坐标)的所有像素直至图像中的所有像素都被存储为止来存储图像。因此,通过将一个或多个分解变换设计成优先地沿着图像的x轴访问像素,单应性去除模块112可以使用直接存储器访问(例如使用直接存储器访问控制器)来减少高速缓存未命中和存储器访问时间。
在某些实施例中,单应性去除模块112可以被配置成在发起两阶段图像映射过程的第二阶段之前将由两阶段图像映射过程的第一阶段生成的中间图像转置。通过这样做,虽然两阶段图像映射过程的第二阶段被配置成沿着中间图像的y轴处理像素,但单应性去除模块112仍可以在两阶段图像映射过程的第二阶段期间沿着转置中间图像的x轴(其实际上是转置中间图像的y轴)访问像素以使存储器访问与存储器结构对准。
如上文所讨论的,在某些实施例中,单应性分解模块110被配置成将单应性分解成共同表示单应性的第一变换和第二变换。在某些情况下,一旦单应性分解模块110接收到预定单应性,则单应性分解模块110可以使用单应性、第一变换与第二变换之间的预定关系来确定分解。下面描述单应性、第一变换与第二变换之间的此预定关系。
通常在齐次坐标(xh,yh,zh)中使用3×3单应性矩阵H来表示单应性,其中,下标h指示变量与齐次坐标相关联。假设(x,y)是对象平面(例如,与校正图像相关联的平面)的坐标系,且(x',y')是图像平面(例如,与畸变图像相关联的平面)的坐标系。根据齐次坐标的定义,于是:
x=xh/zh
y=yh/zh
x′=x′h/z′h
可以如下表示一般透视操作:
或者,等价地,通过明确地识别H的系数:
在不失一般性的情况下,单应性分解模块110可以选择图像平面上的原点,并且将该位置定义成也是对象平面的原点。这样,可以简化单应性矩阵H以去除平移:
h02=h12=0
此外,如齐次坐标表示的情况所是,单应性分解模块110可以任意地设定单应性矩阵H的总规模。在某些实施例中,单应性分解模块110可以通过设定h22=1来设定单应性矩阵H的规模。
用这些假设,定义对象平面与图像平面之间的单应性的单应性矩阵H具有六个参数,并且可以写为:
单应性矩阵H的此表示允许校正任意量的旋转。
在某些情况下,可以进一步约束单应性矩阵H以改善校正图像的质量。为此,单应性分解模块112可以约束单应性矩阵H的旋转元素。关于单应性矩阵H的旋转元素的约束实际上确定(例如,决定)与单应性矩阵H相关联的旋转量。
在某些实施例中,单应性分解模块112被配置成通过设定h01=h10来约束单应性矩阵H的旋转分量。根据此约束,定义对象平面与图像平面之间的单应性的单应性矩阵H具有五个参数,并且可以写为:
在某些情况下,与畸变图像相关联的实际旋转可以相当大地偏离与单应性矩阵H相关联的旋转量。这可导致不期望的性能退化。在这种情况下,单应性分解模块112可以命令单应性去除模块110以在多阶段校正过程的阶段1期间局部地向下采样,并且然后在多阶段校正过程的阶段2期间局部地向上采样以减少性能退化。
在某些实施例中,可以进一步约束单应性矩阵H以仅包括关于倾斜的两个自由度。可以使用以下各项来将关于倾斜的两个自由度参数化:(1)倾斜方向τ(也称为方位角)和(2)倾斜量α(也称为倾斜角或仅仅倾斜)。当倾斜约束与前述约束和惯例组合时,这足以计算单应性矩阵H以矫正用σ和τ指定的倾斜:
在某些实施例中,单应性分解模块112可以通过另一组参数来来约束单应性矩阵H的旋转部件。这组参数化包括三个角参数,其执行(连续地):(1)围绕z轴的旋转,(2)围绕y轴的旋转和(3)围绕x轴的旋转。这常常称为“横摇、纵摇以及平摇”表示。存在用以将“横摇、纵摇以及平摇”表示参数化的至少两个不同方式。在第一示例中,纵摇和平遥表示先前旋转之后的围绕“新”轴的旋转;并且在第二示例中,横摇、纵摇以及平摇中的每一个表示围绕不移动“世界”轴的旋转。出于举例说明的目的,本公开使用“横摇、纵摇以及平摇”表示的第二示例,其中,将围绕世界z轴的旋转指示为γ;将围绕世界y轴的旋转指示为β;并且将围绕x轴的旋转指示为α。基于此表示,单应性矩阵H可以采取以下形式:
在某些实施例中,单应性分解模块112可以约束单应性矩阵H中的围绕z轴的旋转(γ)。通过将γ的值约束为零,可以将单应性矩阵H简化成以下形式:
此参数化具有良好的特性,即h01和h10两者都具有小量值。
本公开的其余部分基于单应性矩阵H的以下表示而提供实施例。
然而,本领域的技术人员可以使公开实施例适应于使用其它单应性矩阵表示。
给定单应性矩阵H,单应性校正的目标是从图像平面(x'h、y'h、z'h)上的畸变图像去除此单应性H。
在某些实施例中,单应性分解模块112被配置成将单应性矩阵H分解成第一变换A和第二变换B,使得
H=A*B
其中,*指示并置运算符。可以如下写出此关系:
在某种意义上,第一变换A将坐标系(x',y')所表示的图像平面上的畸变图像相关到坐标系(xI,yI)所表示的中间图像平面上的中间图像,并且第二变换B将坐标系(xI,yI)所表示的中间图像平面上的中间图像相关到坐标系(x,y)所表示的对象平面上的校正图像。
图2示出用以使校正图像(例如,对象平面的正视图,其为两阶段校正过程的期望结果)畸变成中间图像的第二变换B的应用以及用以使中间图像畸变成畸变图像(例如,到两阶段校正过程的输入图像)的第一变换A的应用。
由于第一变换A使畸变图像与中间图像相关且第二变换B使中间图像与校正图像相关,所以可以从畸变图像去除单应性H以通过(1)从畸变图像去除第一变换A以生成中间图像和(2)从中间图像去除第二变换B以生成校正图像来恢复校正图像。
在某些实施例中,可以将第二变换B表示为三个操作的串联:在保持z坐标原封不动的同时将x和y坐标交换的转置操作T,转置的第二变换Byx,以及另一转置操作T:
B=T*Byx*T
其中,可以如下表示转置操作T:
因此,可以如下表示单应性矩阵H:
H=A*T*Byx*T
其中下标“yx”用来指示转置的第二变换Byx对交换的x-y坐标进行操作。请注意,转置的第二变换Byx不仅仅是第二变换B的转置(例如,)。可以通过基于x和y坐标被交换而z坐标保持相同的事实来重新布置B中的各项而从第二变换B导出转置的第二变换Byx。
在某些实施例中,可以将第一变换A和第二变换B约束为具有上文所讨论的性质:(1)特定一行源图像中的像素被映射到固定一行目的地图像中的等距离像素(例如,每对相邻像素相隔相等的距离),在下文中称为第一约束,并且(2)一行源图像被映射到一行目的地图像,在下文中称为第二约束。
可以通过约束来向第一变换A中引入第一约束,指示x'(图像平面的x坐标)相对于xI(中间图像平面中的x坐标)的变化率。可以使用第一变换A的参数来直接地表示x':
因此,使用微分的链式法则,可以如下表示x'相对于xI的导数:
如果此导数仅仅取决于yI,则中间图像中的相邻像素之间的距离对于所有相邻像素而言将是相等的。可以使得导数仅仅取决于yI。取决于xI的唯一一项在分母中。因此,为了去除对xI的依赖性,可以将乘数a20设置成零。
可以通过引入畸变图像的y坐标必须仅仅取决于中间图像的y坐标的约束来向第一变换A中引入第二约束。通过如上所述地设置a20=0,已知分母zh'仅仅取决于yI。因此,如果分子yh'仅仅取决于yI,则y'(例如,畸变图像的y坐标)将仅仅取决于在中间图像的y坐标,从而将该行中间图像映射到一行畸变图像。
通过对中间图像坐标应用第一变换A,可以如下表示畸变图像的y坐标:
y′h=a10xI+a11yI
因此,为了使畸变图像的y坐标仅仅取决于y,可以将用于xI的系数设置成零:a10=0。
因此,总而言之,第一约束和第二约束要求第一变换A采取以下形式:
在某些实施例中,也应对第二变换B施加第一约束和第二约束。由于转置的第二变换在与A相同的条件下操作,所以Byx应具有与A相同的形式。因此,按照第一约束b21=0且按照第二约束b01=0。因此,可以如下表示Byx:
可以如下将转置的第二变换Byx相关回到第二变换B:
总而言之,可以如下表示单应性矩阵H:
替换地,还可以如下表示单应性矩阵H:
可以使用单应性矩阵H的分解来以分析方式求解出H的系数、A的系数与B的系数之间的关系。基于此分析计算,可以表明第一变换A和转置的第二变换Byx如下与H的系数相关:
因此,一旦单应性分解模块110接收到单应性矩阵H的系数,则单应性分解模块110可使用上述关系来生成第一变换A和转置的第二变换Byx。
在某些实施例中,第一变换A和/或第二变换B可以包括当恢复源图像时有效地对目的地图像进行向下采样的比例因数。以下分解遵守第一约束和第二约束,如上所述,同时允许用第一变换A中的向下采样速率进行向下采样:
其中,sAx和sAy分别地指代x维度和y维度上的采样因数。替换地,可以如下表示单应性矩阵H:
在某些实施例中,采样因数sAx和/或sAy可小于1以有效地在第一阶段对畸变图像进行过采样。这样,可以保存畸变图像中的信息以便在第二阶段中处理。
在某些实施例中,单应性去除模块112可以高效地从畸变图像去除第一变换A和转置的第二变换Byx。两阶段校正过程的每个阶段中的单应性去除模块112的工作在于仅用四个重要的系数去除有限的单应性(例如,第一变换A或转置的第二变换Byx):
或者
因为第一变换A和转置的第二变换Byx具有相同结构,所以单应性去除模块112可以实际上执行同一程序两次,一次针对第一变换A且一次针对转置的第二变换Byx。因此,两阶段校正过程的第一阶段和第二阶段可以包括基本上相等的操作。
图3示出根据某些实施例的两阶段图像映射过程。两阶段图像映射过程使用由单应性分解模块110确定的单应性的分解来分两个阶段执行校正。在两阶段图像映射过程的第一阶段(识别为步骤302—304)中,单应性去除模块112可以沿着x轴处理畸变图像的像素,并且在两阶段图像映射过程的第二阶段(识别为步骤306—308)中,单应性去除模块112可以沿着y轴处理中间图像的像素。由于在第一阶段与第二阶段之间发生的转置操作,值得注意的是多阶段校正过程的第一阶段基本上类似于多阶段校正过程的第二阶段。
在发起图3中的步骤之前,可以将单应性去除模块112配置成接收畸变图像,并且将单应性表示为第一变换A和第二变换B(或转置的第二变换)的串联。单应性去除模块112可以从单应性分解模块110接收单应性表示。图4示出已经经受透视畸变的畸变图像的示例。透视畸变表现为将两个垂直的平行线402、404变换成两个不平行线并将两个水平的平行线406、408变换成两个不平行线。
在步骤302中,单应性去除模块112被配置成通过沿着x轴处理畸变图像而从畸变图像去除第一变换,从而生成中间图像。在步骤302a中,单应性去除模块112可以可选地对中间图像进行向下采样。在某些实施例中,可以同时执行步骤302和步骤302a。例如,第一变换A可以结合向下采样因数,如上文所讨论的,使得通过从畸变图像去除第一变换A,单应性去除模块112可以实际上还执行向下采样操作。
在步骤302中,可以将单应性去除模块112配置成针对中间图像的每个像素配置成畸变图像中的相应位置。例如,单应性去除模块112可以访问一行中间图像中的像素中的一个,并且使用第一变换A来确定畸变图像中的哪个位置对应于中间图像中的像素中的一个。在某些情况下,畸变图像内的此位置可以具有亚像素坐标值。例如,畸变图像内的位置可以具有(2.24,3.1)的坐标。
因为第一变换A经受第一约束和第二约束,所以单应性去除模块112预先知道一行中间图像中的像素始终对应于畸变图像的预定y坐标中的位置。因此,其中单应性去除模块112应访问存储器106中的畸变图像的图案是可预测的且确定性的。因此,单应性去除模块112可以使用标准乒乓双缓冲器系统和DMA控制器114来并行地读取和存储一行或各组的各行图像。
一旦单应性去除模块112确定中间图像中的像素与畸变图像中的位置之间的对应关系,则单应性去除模块112可以确定用于中间图像中的该像素的图像值。为了确定用于该像素的图像值,单应性去除模块112可以使用畸变图像中的相应位置处的图像值。
当相应位置落在畸变图像的像素网格上时,单应性去除模块112可以对畸变图像中的对应位置周围的图像值进行滤波。在某些情况下,单应性去除模块112可以简单地拷贝畸变图像中的对应位置的图像值。当对应位置并未落在畸变图像的网格上时,单应性去除模块112可以通过对畸变图像中的对应位置周围的像素的图像值进行内插来确定中间图像中的像素的图像值。
例如,单应性去除模块112可以用内核(kernel)对畸变图像中的对应位置周围的像素求卷积以对畸变图像中的对应位置周围的像素的图像值进行内插。在某些情况下,还可以将内核设计成沿着一行畸变图像执行适当的平滑化(例如,以满足尼奎斯特采样约束)。在某些实施例中,内核可以是截断同步函数;在其它实施例中,内核可以是截断高斯函数。
在某些实施例中,单应性去除模块112可以预定将用于从网格位置的预选亚像素偏离的一组内核。当畸变图像中的对应位置远离x轴中的网格0.1像素时,然后单应性去除模块112可以使用预定的一组内核中的第一个;当畸变图像中的对应位置远离x轴中的网格0.3像素时,然后单应性去除模块112可以使用预定的一组内核中的第二个等。在某些实施例中,该组内核中的每个内核具有相同的函数形式。
例如,该组内核可以包括以下:
这些内核K1-K8全部具有相同的函数形式,但是每个内核与不同的亚像素坐标(也称为亚像素相位)相关联。
当单应性去除模块112将对像素网格上的位置(例如,0亚像素相位)进行滤波时,单应性去除模块112可以使用K1对该位置周围的像素进行滤波。请注意,K1围绕中心是对称的。当单应性去除模块112对与像素网格分离1/8亚像素相位的位置进行滤波,然后单应性去除模块112可以使用K2来对该位置周围的像素进行滤波。例如,单应性去除模块112可以直接地将K2乘以四个图像像素的序列以便同时地执行亚像素内插和滤波。当单应性去除模块112对与像素网格分离1/2亚像素相位的位置进行滤波,然后单应性去除模块112可以使用K5来对该位置周围的像素进行滤波。由于1/2亚像素相位的偏移指的是识别两个相邻像素的精确边界处的图像值,所以K5是对称的。请注意,分别对应于1/8和7/8的亚像素相位的K2和K8具有相同的值但是彼此的镜像。这讲得通,因为1/8与-7/8相同且-1/8与7/8相同。对于各对“1/4,3/4”和“3/8,5/8”而言同样如此。
在某些实施例中,当畸变图像上的位置不具有与该组中的内核中的一个的亚像素相位精确地匹配的亚像素相位时,则单应性去除模块112可以使用与最接近于该位置的亚像素相位相关联的内核。例如,当位置的亚像素相位是1/9时,单应性去除模块112可以使用K1来对该位置进行滤波,因为1/9比与内核相关联的任何其它亚像素相位更接近于1/8。
在某些实施例中,单应性去除模块112可以使用单指令多数据(SIMD)处理单元来执行卷积运算。特别地,可以使用可被SIMD处理单元操作的SIMD乘法和/或SIMD点积指令来容易地执行卷积运算。
在某些实施例中,卷积运算可以涉及到二维内核。当内核在空间轴(例如,x轴和y轴)上可分离时,单应性去除模块112可以分两个单独步骤执行卷积:(1)沿着x轴(例如,一行图像)求卷积,以及(2)沿着y轴(例如,一列图像)求卷积。
相对于第一步骤,由于第一变换A经受第一约束,所以一行中间图像上的像素被映射到与畸变图像的固定y坐标内的相邻位置等距离的位置。因此,单应性去除模块112可以对畸变图像的固定y坐标内的所有对应位置应用单个核函数。由于畸变图像内的位置的亚像素相位可相互不同,所以单应性去除模块112可以基于每个位置的亚像素相位选择对应于该单个核函数的一组中的内核中的一个。这可以避免单应性去除模块112需要在沿着固定一行畸变图像的求卷积期间生成内核。在某些实施例中,单应性去除模块121可以对不同的行使用相同的核函数;在其它实施例中,单应性去除模块112可以对不同的行使用不同的核函数。可以将沿着x轴的卷积运算的结果(也称为x卷积结果)存储在临时缓冲器中。
当单应性去除模块112完成沿着x轴的卷积时,单应性去除模块112可以对在临时缓冲器中存储的x卷积结果执行通过对y方向内核求卷积进行的沿着y轴的卷积。在某些实施例中,临时缓冲器可以保持与x卷积结果相关联的预定数目的行。可以基于y方向内核的尺寸来确定此预定数目的行。例如,当y方向内核具有5个像素的长度时,临时缓冲器可以保持与x卷积结果相关联的5行。
在某些实施例中,临时缓冲器可以是横摇缓冲器(例如,圆形缓冲器),其存储一行x卷积结果直至不再需要计算y卷积为止。例如,当单应性去除模块112在具有j的y坐标的像素处计算y卷积且y方向内核具有五个像素时,则单应性去除模块112可以在临时缓冲器中存储用y坐标:j+2、j+1、j、j-1、j-2识别的五行x卷积结果。当单应性去除模块112完成具有j的y坐标的所有像素的y卷积时,单应性去除模块112可以将目标y坐标增加一个像素,并计算具有j+1的y坐标的所有像素的y卷积。在这种情况下,单应性去除模块112可以使用用y坐标:j+3、j+2、j+1、j、j-1识别的五行x卷积结果。因此,临时缓冲器不再需要具有j-2的y坐标的那行x卷积结果。在这种情况下,临时缓冲器去除具有j-2的y坐标的那行x卷积结果,并用具有j+3的y坐标的那行x卷积结果将其替换。
在某些实施例中,y方向内核对于沿着该行输出图像的每个像素而言是相同的。因此,可以通过将x卷积行的每个像素乘以对应于该行的内核系数且然后沿着列求和来实现此y方向卷积。可以使用SIMD处理单元、例如SIMD乘法和/或SIMD加法指令来高效地实现此操作。
对第一变换A的约束不保证关于沿着y轴的像素采样的任何特殊特性。因此,每行具有其自己的核函数,其可以例如通过(1)将对象平面中的对称核函数映射到图像平面中的对应不一定对称核函数并且(2)将其积分到像素仓来计算。此类内核固有地允许在y轴中的非整数位置上的正确采样,并且还在不损失性能的情况下允许任何两行之间的采样距离是不同的。可选地,可以在训练阶段期间预先计算被用于沿着y轴的卷积的所有核函数。
图5示出根据某些实施例的通过从图4的畸变图像去除第一变换A而生成的中间图像的示例。请注意,两个垂直的平行线402、404现在在中间图像中是平行的。然而,第一阶段尚未去除两个水平平行线406和408的畸变。
如图5所示,中间图像可以具有倾斜梯形形状(例如,两个侧边是平行的;另外两个侧边可能不是)。在某些情况下,可选地可以在训练步骤中预先计算畸变图像中的每行、x卷积行以及中间图像中的每行中的相关起始点和行程长度。
为了去除两个水平平行线406和408的畸变,单应性去除模块112可以移动至两阶段图像处理过程的第二阶段上。然而,如上文所讨论的,在发起第二阶段之前,在步骤304中,单应性去除模块112被配置成将中间图像转置。
在某些实施例中,单应性去除模块112可以使用“垂直”缓冲器来执行转置操作。例如,可以将y方向卷积的输出值(例如,中间图像)存储为固定长度、优选地拟合到接近芯片存储器(例如用户控制层级2高速缓存器)的临时图像。这些输出值被按照列顺序而不是行顺序写入到缓冲器和因此的该垂直缓冲器。由于缓冲器可以完全包含在接近芯片存储器中,单应性去除模块112不需要存储或访问任何外部存储器设备,这改善了存储器访问时间。实际上,本实施例以局部方式执行转置操作。
在某些实施例中,单应性去除模块112可以以“乒乓”方式使到两个垂直缓冲器中的一个的写入交替,使得在当前列被写入到第二垂直缓冲器的同时,被写入到第一垂直缓冲器的前一列可以被写出到外部存储器。
在某些实施例中,可以使用DMA控制器114将垂直缓冲器数据传输到外部存储器中的区域。外部存储器中的该区域可以大到足以容纳全校正图像。
在某些实施例中,DMA控制器114可以使用二维DMA将垂直缓冲器数据传输到外部存储器。二维DMA能够自动地跳过与图像的垂直区段不对应的外部存储器中的字节,其在概念上与垂直缓冲器中的数据匹配。不同于局部垂直缓冲器,外部存储器并不存储连续存储器位置中的结果图像的相邻区段(例如,区块),这可使读和/或写速度劣化。在这种情况下,二维DMA可以以最小的附加成本高效地处理读/写操作(只要局部垂直缓冲器的宽度足够大即可)。
在步骤306中,一旦中间图像被转置,则单应性去除模块112被配置成通过处理转置的中间图像的x轴(例如,中间图像的y轴)中的像素来从中间图像去除第二变换。随后,在步骤306a中,单应性去除模块112可选地被配置成对步骤306的结果进行向下采样,并且在步骤308中,单应性去除模块112被配置成将步骤306的结果(或步骤306a的结果,如果其被执行的话)转置。在某些实施例中,在步骤306/306a中,单应性去除模块112可以使用与步骤302/302a类似的操作,并且在步骤308中,单应性去除模块112可以使用与步骤304类似的过程。
图6示出根据某些实施例的通过从图5的中间图像去除第二变换B而生成的已校正图像的示例。请注意,两个水平的平行线406、408以及两个垂直的平行线402、404在校正图像中是平行的。因此,结果得到的校正图像的所有透视畸变都被校正,并且被以目标向下采样率进行向下采样。
如上文所讨论的,单应性去除模块112可以在单应性校正期间对畸变图像进行向下采样,并且单应性去除模块112可以在多阶段校正过程的两个阶段中的一个或多个中执行向下采样。在某些实施例中,当存在目标向下采样率时,在步骤302a中(例如,在第一阶段中)尽可能多地进行向下采样可能是有利的,因为这可以加速第一阶段,并进一步加速多阶段校正过程的第二阶段。在多阶段校正过程的每个阶段中,可以在x或y方向独立地对图像进行向下采样。
在某些实施例中,可以将校正图像提供给图案检测系统,使得图案检测系统可以确定校正图像是否包括特定图案。由于图案检测系统一般地在源图像不包括非线性畸变时更高效地操作,所以公开的单应性校正过程可以改善图案匹配的效率。在某些情况下,图案检测系统可以使用简单的基于相关的图案匹配技术来确定校正图像是否包括特定图案。在其它情况下,图案检测系统可以使用在2006年3月21日公布的题为“Method for fast,robust,multi-dimensional pattern recognition”的美国专利号7,016,539中公开的图案检测技术的实施例,其通过引用方式并入本文中。
在某些实施例中,当单应性并非预先已知时,可以使用多个假设单应性变换中的一个来校正畸变图像,并且可以将校正图像提供给图案检测系统以确定在多个假设单应性变换中的一个下存在特定图案。可以针对其它假设单应性变换重复此过程直至图案检测系统从校正图像检测到特定图案为止。
在某些实施例中,公开的多阶段校正过程可以用于仅仅执行仿射图像采样,而并不实际上去除一般的单应透视畸变。例如,为了使单应性矩阵H局限于仿射变换,可以将参数h20和h21设置成零。在其它实施例中,公开的多阶段校正过程可以用于仅仅去除图像缩放。例如,可以将公开多阶段校正过程配置成通过除h20和h21之外还将单应性矩阵H的参数h10和h01设置成零来去除图像缩放操作。
即使当公开的多阶段校正过程用于仅仅去除仿射变换或图像缩放操作时,公开的多阶段校正过程也可以在计算上比用于去除仿射变换或图像缩放操作的先前已知方法更快。计算益处源自于对一行图像应用内核的方式。如上文所讨论的,单应性去除模块112被配置成对一行图像应用单个核函数。单应性去除模块112可以保持对应于此核函数的一组内核,其中,该组中的每个内核对应于特定亚像素相位。这样,当单应性去除模块112对一行图像应用单个核函数时,在该行中的每个位置处,单应性去除模块112可以基于该位置的亚像素相位来选择这些内核中的一个。由于对应于亚像素相位的该组内核是预定的,所以单应性去除模块112可以通过应用这些内核中的所选的一个来去除仿射变换或图像缩放。当位置的亚像素相位并非精确地对应于该组中的内核中的一个时,单应性去除模块112可以选择与最接近于该位置的亚像素相位相关联的内核。这去除几乎所有内插操作,这往往是计算昂贵的。
在单应性去除模块112被配置成仅去除图像缩放的情况下,单应性去除模块112可以通过保持许多内核(每个内核适合于来自像素网格的更细亚像素变化(例如,亚像素相位))来进一步改善准确度。当单应性去除模块112执行向下采样时,单应性去除模块112可以针对校正图像中的每个像素确定畸变图像中的对应位置的亚像素相位,并且使用亚像素变化来选择预定的一组内核中的一个。随后,单应性去除模块112可以对畸变图像中的对应像素应用所选内核以去除图像缩放。
在某些实施例中,当单应性去除模块112被配置成仅去除图像缩放时,单应性去除模块112可以通过仅使用多阶段校正过程的第一阶段来执行操作。
在某些实施例中,当校正图像与畸变图像之间的单应性变换H满足上述第一约束和第二约束时,单应性去除模块112可使用多阶段校正过程中的阶段中的仅一个来从畸变图像去除透视畸变。例如,畸变图像可经由从图像传感器围绕着图像传感器的x轴(例如,一行图像传感器位蜂窝)的旋转得到的透视畸变。在这种情况下,可将图像传感器定位成使得对象平面的顶部远离图像传感器倾斜,如同图像传感器围绕着平行于图像传感器轴中的一个的轴旋转一样。可用实际上满足第一约束和第二约束的单应性变换H来表示图像传感器平面与对象平面之间的此关系:(1)特定一行校正图像中的像素被映射到固定的一行畸变图像中的等距离像素,(2)一行校正图像被映射到一行畸变图像。因此,在这种情况下,单应性去除模块112可以被配置成通过仅使用多阶段校正过程的阶段中的一个来执行校正操作。
在某些实施例中,多阶段校正过程可以用于对准由多个相机采集的图像。在某些情况下,机器视觉系统可以包括观看场景的不同部分的多个相机,但是大致上对准。换言之,所述多个相机中的每一个被设计成具有相同的平面内旋转和与平面的距离。然而,由于物理限制,在平面内旋转和与平面的距离方面可存在“小的”差异,其分别地表现为平面内旋转和缩放。此外,来自每个相机的像素网格可以相互移位一定的亚像素值,因为由于物理限制而难以使来自每个相机的像素精确地对准。
可以对由多个相机采集的图像中的差异进行离线校准。因此,可以离线确定由多个相机采集的图像之间的关系。可以将此关系表示为单应性矩阵。因此,公开的多阶段校正过程可以用来对准由多个相机采集的图像。在某些情况下,公开的多阶段校正过程还可以用来对采集的图像进行向下采样,使得如果一个或多个相机具有不同数目的像素或不同像素尺寸,则公开的多阶段矫正过程可以对图像进行向下采样以虑及此类差异。
应理解的是公开的主题在其应用方面不限于在以下描述中阐述或在图中示出的部件的布置和构造的细节。公开的主题能够有其它实施例并以各种方式实施和执行。并且,应理解的是本文所采用的措辞和术语是用于描述的目的且不应被视为限制性的。
同样地,本领域的技术人员将认识到可容易地利用本公开所基于的概念作为用于设计用于执行公开主题的多个目的的其它结构、方法以及装置的基础。因此,重要的是将权利要求视为包括此类等价构造,只要其不脱离公开主题的精神和范围即可。例如,某些公开实施例涉及一个或多个变量。可使用数学等式来表示此关系。然而,本领域的技术人员中的一个还可通过对公开数学等式进行变换使用不同的数学等式来表示一个或多个变量之间的相同关系。重要的是将权利要求视为包括一个或多个变量之间的此类等价关系。
虽然在前述示例性实施例中已描述并举例说明了公开的主题,但应理解的是本公开仅仅是以示例的方式实现的,并且在不脱离公开主题的精神和范围的情况下可以实现公开的主题的实施方式的细节方面的许多改变。
Claims (40)
1.一种机器视觉系统,包括:
处理器,其被配置成运行在存储器中存储的计算机程序,其被配置成使处理器:
接收畸变图像和与畸变图像相关联的单应性矩阵;
使用单应性分解模块来确定共同表示单应性矩阵的第一变换和第二变换,
其中,第一变换使畸变图像与中间图像相关,并且第二变换使中间图像与已校正图像相关,
其中,第一变换被约束为将沿着中间图像的第一维度的像素映射到沿着畸变图像的第一维度的位置,并且其中,沿着畸变图像的第一维度的位置与沿着畸变图像的第一维度的相邻位置间隔开相同距离;
使用单应性去除模块通过从畸变图像去除第一变换来生成中间图像;以及
使用单应性去除模块通过从中间图像去除第二变换来生成已校正图像。
2.根据权利要求1所述的机器视觉系统,其中,第二变换被约束为将沿着已校正图像的第一维度的像素映射到沿着中间图像的第一维度的位置,并且其中,沿着中间图像的第一维度的位置与沿着中间图像的第一维度的相邻位置间隔开相同距离。
3.根据权利要求1所述的机器视觉系统,其中,所述处理器还被配置成在从中间图像去除第二变换之前使用单应性去除模块将中间图像转置。
4.根据权利要求3所述的机器视觉系统,其中,所述处理器还被配置成使用单应性去除模块来使直接存储器访问控制器在从中间图像去除第二变换之前使用单应性去除模块将中间图像转置。
5.根据权利要求4所述的机器视觉系统,其中,所述直接存储器访问控制器被配置成使用二维直接存储器访问来将中间图像转置。
6.根据权利要求1所述的机器视觉系统,其中,所述处理器被配置成使用单应性去除模块通过以下各项从畸变图像去除第一变换:
针对中间图像的第一像素确定畸变图像中的对应第一位置;且
对围绕畸变图像中的对应第一位置的像素求卷积以确定用于第一像素的图像值。
7.根据权利要求6所述的机器视觉系统,其中,所述处理器还被配置成使用单应性去除模块通过在第一像素的坐标上操作第一变换来确定对应第一位置。
8.根据权利要求6所述的机器视觉系统,其中,所述处理器被配置成使用单应性去除模块针对在第二维度上具有与第一像素相同的坐标的中间图像的第二像素通过向第一维度上的对应第一位置的坐标添加常数来确定畸变图像中的对应第二位置。
9.根据权利要求1所述的机器视觉系统,其中,所述处理器被配置成使用单应性去除模块来向图案检测系统提供已校正图像,使得图案检测系统能够使用已校正图像来确定已校正图像是否包括特定图案。
10.根据权利要求9所述的机器视觉系统,其中,所述处理器被配置成从图案检测系统接收单应性矩阵,其中,由所述图案检测系统基于与畸变图像相关联的单应性的假设来确定单应性矩阵。
11.根据权利要求1所述的机器视觉系统,其中,所述处理器被配置成使用单应性去除模块基于沿着畸变图像的第一维度的位置中的一个的亚像素坐标来选择一组内核中的一个,并在所述位置中的一个处应用所选内核。
12.一种计算机化方法,包括:
在单应性分解模块处接收与畸变图像相关联的单应性矩阵;
使用单应性分解模块来确定共同表示单应性矩阵的第一变换和第二变换,
其中,第一变换使畸变图像与中间图像相关,并且第二变换使中间图像与已校正图像相关,其中,第一变换被约束为将沿着中间图像的第一维度的像素映射到沿着畸变图像的第一维度的位置,并且
其中,沿着畸变图像的第一维度的位置与沿着畸变图像的第一维度的相邻位置间隔开相同距离;
使用耦合到单应性分解模块的单应性去除模块通过从畸变图像去除第一变换而生成中间图像;以及
使用单应性去除模块通过从中间图像去除第二变换来生成已校正图像。
13.根据权利要求12所述的方法,其中,第二变换被约束为将沿着已校正图像的第一维度的像素映射到沿着中间图像的第一维度的位置,并且其中,沿着中间图像的第一维度的位置与沿着中间图像的第一维度的相邻位置间隔开相同距离。
14.根据权利要求12所述的方法,还包括:使用单应性去除模块在从中间图像去除第二变换之前将中间图像转置。
15.根据权利要求14所述的方法,还包括:使用单应性去除模块使直接存储器访问控制器在从中间图像去除第二变换之前将中间图像转置。
16.根据权利要求12所述的方法,其中,从畸变图像去除第一变换包括:针对中间图像的第一像素确定畸变图像中的对应第一位置并对围绕畸变图像中的对应第一位置的像素求卷积以确定用于第一像素的图像值。
17.根据权利要求16所述的方法,还包括:针对在第二维度上具有与第一像素相同的坐标的中间图像的第二像素通过向第一维度上的对应第一位置的坐标添加常数来确定畸变图像中的对应第二位置。
18.根据权利要求16所述的方法,还包括:向图案检测系统提供已校正图像,使得图案检测系统能够使用已校正图像来确定已校正图像是否包括特定图案。
19.根据权利要求16所述的方法,还包括:基于沿着畸变图像的第一维度的位置中的一个的亚像素坐标来选择一组内核中的一个,并在所述位置中的一个处应用所选内核。
20.一种具有与单应性分解模块和单应性去除模块相关联的可执行指令的非临时计算机可读介质,所述可执行指令可操作用于使机器视觉系统:
接收与畸变图像相关联的单应性矩阵;
确定共同表示单应性矩阵的第一变换和第二变换,
其中,第一变换使畸变图像与中间图像相关,并且第二变换使中间图像与已校正图像相关,其中,第一变换被约束为将沿着中间图像的第一维度的像素映射到沿着畸变图像的第一维度的位置,并且
其中,沿着畸变图像的第一维度的位置与沿着畸变图像的第一维度的相邻位置间隔开相同距离;
通过从畸变图像去除第一变换来生成中间图像;且
通过从中间图像去除第二变换来生成已校正图像。
21.一种机器视觉系统,包括:
处理器,其被配置成运行在存储器中存储的计算机程序,其被配置成使处理器:
接收第一图像和与第一图像相关联的第一变换,其中;第一变换使第一图像与第二图像相关;并且被约束为将沿着第二图像的维度的多个像素映射到沿着第一图像的维度的多个位置;
针对所述多个像素中的第一像素确定第一图像中的对应第一位置的坐标;
基于与第一位置的坐标相关联的亚像素相位来选择多个内核中的一个,
其中,亚像素相位指示第一位置与第一图像的像素网格相比的亚像素偏移;且
通过部分地对围绕第一图像中的第一位置的至少一个像素应用所选内核以确定用于第二图像中的第一像素的图像值来从第一图像生成第二图像。
22.根据权利要求21所述的机器视觉系统,其中,所述处理器被配置成通过在第一像素的坐标上操作第一变换来确定第一位置的坐标。
23.根据权利要求21所述的机器视觉系统,其中,所述处理器被配置成针对所述多个像素中的第二像素通过向第一位置的坐标添加常数来确定第一图像中的对应第二位置的坐标。
24.根据权利要求23所述的机器视觉系统,其中,所述处理器被配置成:
基于与第二位置的坐标相关联的亚像素相位选择所述多个内核中的第二个;以及
通过部分地对围绕第一图像中的第二位置的至少一个像素应用所述多个内核中的第二个以确定用于第二图像中的第二像素的图像值来从第一图像生成第二图像。
25.根据权利要求21所述的机器视觉系统,其中,所述多个内核对应于在多个子相位处采用的相同函数。
26.根据权利要求21所述的机器视觉系统,其中,所述处理器被配置成:
接收与第二图像相关联的第二变换,其中,第二变换将第二图像与第三图像相关,并被约束为将沿着第三图像的维度的多个像素映射到沿着第二图像的维度的多个位置;
针对第三图像的第一像素确定第三图像的对应第一位置的坐标;
基于与第三图像中的第一位置的坐标相关联的亚像素相位选择所述多个内核中的一个;且
部分地通过对围绕第三图像的第一位置的至少一个像素应用所述多个内核中的一个以确定用于第三图像的第一像素的图像值来从第二图像生成第三图像。
27.根据权利要求26所述的机器视觉系统,其中,所述第一变换和第二变换共同表示仿射变换。
28.根据权利要求21所述的机器视觉系统,其中,所述第一变换包括向下采样操作。
29.根据权利要求21所述的机器视觉系统,其中,所述第一变换包括第一变换矩阵。
30.一种计算机化方法,包括:
接收第一图像和与第一图像相关联的第一变换,其中,第一变换使第一图像与第二图像相关且被约束为将沿着第二图像的维度的多个像素映射到沿着第一图像的维度的多个位置;
针对所述多个像素中的第一像素确定第一图像中的对应第一位置的坐标;
基于与第一位置的坐标相关联的亚像素相位来选择多个内核中的一个,
其中,亚像素相位指示第一位置与第一图像的像素网格相比的子像素偏移;且
通过部分地对围绕第一图像中的第一位置的至少一个像素应用所选内核以确定用于第二图像中的第一像素的图像值来从第一图像生成第二图像。
31.根据权利要求30所述的计算机化方法,其中,确定第一位置的坐标包括:在第一像素的坐标上操作第一变换。
32.根据权利要求30所述的计算机化方法,还包括:针对所述多个像素中的第二像素通过向第一位置的坐标添加常数来确定第一图像中的对应第二位置的坐标。
33.根据权利要求32所述的计算机化方法,还包括:
基于与第二位置的坐标相关联的亚像素相位选择所述多个内核中的第二个;以及
通过部分地对围绕第一图像中的第二位置的至少一个像素应用所述多个内核中的第二个以确定用于第二图像中的第二像素的图像值来从第一图像生成第二图像。
34.根据权利要求30所述的计算机化方法,还包括:
接收与第二图像相关联的第二变换,其中,第二变换将第二图像与第三图像相关,并被约束为将沿着第三图像的维度的多个像素映射到沿着第二图像的维度的多个位置;
针对第三图像的第一像素确定第三图像的对应第一位置的坐标;
基于与第三图像中的第一位置的坐标相关联的亚像素相位选择所述多个内核中的一个;以及
通过部分地对围绕第三图像的第一位置的至少一个像素应用所述多个内核中的一个以确定用于第三图像的第一像素的图像值来从第二图像生成第三图像。
35.根据权利要求34所述的计算机化方法,其中,所述第一变换和第二变换共同表示仿射变换。
36.根据权利要求30所述的计算机化方法,其中,所述第一变换包括向下采样操作。
37.根据权利要求30所述的计算机化方法,其中,所述第一变换包括第一变换矩阵。
38.一种具有与单应性分解模块和单应性去除模块相关联的可执行指令的非临时计算机可读介质,所述可执行指令可操作用于使机器视觉系统:
接收第一图像和与第一图像相关联的第一变换,其中,第一变换使第一图像与第二图像相关且被约束为将沿着第二图像的维度的多个像素映射到沿着第一图像的维度的多个位置;
针对所述多个像素中的第一像素确定第一图像中的对应第一位置的坐标;
基于与第一位置的坐标相关联的亚像素相位来选择多个内核中的一个,其中,亚像素相位指示第一位置与第一图像的像素网格相比的亚像素偏移;以及
通过部分地对围绕第一图像中的第一位置的至少一个像素应用所选内核以确定用于第二图像中的第一像素的图像值来从第一图像生成第二图像。
39.根据权利要求38所述的非临时计算机可读介质,其中,所述可执行指令还可操作用于使机器视觉系统针对所述多个像素中的第二像素通过向第一位置的坐标添加常数来确定第一图像中的对应第二位置的坐标。
40.根据权利要求38所述的非临时计算机可读介质,其中,所述多个内核对应于在多个子相位处采用的相同函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910739100.9A CN110458788B (zh) | 2015-04-03 | 2016-04-05 | 单应性校正系统、方法及计算机可读存储介质 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/678,279 US10275863B2 (en) | 2015-04-03 | 2015-04-03 | Homography rectification |
US14/678,299 US9542732B2 (en) | 2015-04-03 | 2015-04-03 | Efficient image transformation |
US14/678,299 | 2015-04-03 | ||
US14/678,279 | 2015-04-03 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910739100.9A Division CN110458788B (zh) | 2015-04-03 | 2016-04-05 | 单应性校正系统、方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106056560A CN106056560A (zh) | 2016-10-26 |
CN106056560B true CN106056560B (zh) | 2019-09-06 |
Family
ID=56068610
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910739100.9A Active CN110458788B (zh) | 2015-04-03 | 2016-04-05 | 单应性校正系统、方法及计算机可读存储介质 |
CN201610207533.6A Active CN106056560B (zh) | 2015-04-03 | 2016-04-05 | 单应性校正 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910739100.9A Active CN110458788B (zh) | 2015-04-03 | 2016-04-05 | 单应性校正系统、方法及计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
EP (3) | EP3640886B1 (zh) |
JP (3) | JP6316330B2 (zh) |
CN (2) | CN110458788B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110431563B (zh) * | 2017-04-06 | 2022-04-22 | 华为技术有限公司 | 图像校正的方法和装置 |
CN108876725A (zh) * | 2017-05-12 | 2018-11-23 | 深圳市魔眼科技有限公司 | 一种虚拟图像畸变矫正方法及系统 |
DE102018202998A1 (de) * | 2017-12-20 | 2019-06-27 | Continental Automotive Gmbh | Verfahren und Vorrichtung zum Betreiben eines Kamera-Monitor-Systems für ein Kraftfahrzeug |
US11436765B2 (en) * | 2018-11-15 | 2022-09-06 | InstaRecon | Method and system for fast reprojection |
JP6570164B1 (ja) * | 2018-11-28 | 2019-09-04 | 株式会社ツバサファクトリー | コンピュータプログラム、画像処理方法、及び画像処理装置 |
CN109871841B (zh) * | 2019-02-14 | 2023-04-21 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、终端及存储介质 |
CN112770041A (zh) * | 2019-11-05 | 2021-05-07 | 杭州海康威视数字技术股份有限公司 | 一种多个变焦镜头切换的图像处理方法、以及摄像机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4829587A (en) * | 1987-03-02 | 1989-05-09 | Digital Equipment Corporation | Fast bitonal to gray scale image scaling |
US6449664B1 (en) * | 1998-11-16 | 2002-09-10 | Viewahead Technology, Inc. | Two dimensional direct memory access in image processing systems |
CN101533513A (zh) * | 2009-04-24 | 2009-09-16 | 天津大学 | 基于双视几何的图片伪造检测方法 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03128583A (ja) * | 1990-06-11 | 1991-05-31 | Ampex Corp | 映像を空間的に変形する方法及び装置 |
US5808623A (en) * | 1996-10-07 | 1998-09-15 | Adobe Systems Incorporated | System and method for perspective transform in computer using multi-pass algorithm |
US7016539B1 (en) | 1998-07-13 | 2006-03-21 | Cognex Corporation | Method for fast, robust, multi-dimensional pattern recognition |
JP3055024B2 (ja) * | 1999-01-08 | 2000-06-19 | 株式会社トプコン | 画像デ―タの転送装置 |
US7313289B2 (en) * | 2000-08-30 | 2007-12-25 | Ricoh Company, Ltd. | Image processing method and apparatus and computer-readable storage medium using improved distortion correction |
US7738706B2 (en) * | 2000-09-22 | 2010-06-15 | Sri International | Method and apparatus for recognition of symbols in images of three-dimensional scenes |
GB0104664D0 (en) * | 2001-02-23 | 2001-04-11 | Hewlett Packard Co | Improvements relating to document capture |
GB2372659A (en) * | 2001-02-23 | 2002-08-28 | Sharp Kk | A method of rectifying a stereoscopic image |
US6963365B2 (en) * | 2001-02-28 | 2005-11-08 | Hewlett-Packard Development Company, L.P. | System and method for removal of digital image vertical distortion |
KR20050085355A (ko) * | 2002-12-05 | 2005-08-29 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 분할된 이미지로부터 폴스 엣지들을 제거하는 방법 및 장치 |
JP4355535B2 (ja) * | 2003-08-07 | 2009-11-04 | 株式会社岩根研究所 | 360度画像変換処理装置 |
US7379623B2 (en) * | 2004-04-30 | 2008-05-27 | Microsoft Corporation | Method to quickly warp a 2-D image using only integer math |
JP2006146760A (ja) * | 2004-11-24 | 2006-06-08 | Aisin Seiki Co Ltd | 画像変換方法及び画像変換装置 |
US7403658B2 (en) * | 2005-04-15 | 2008-07-22 | Microsoft Corporation | Direct homography computation by local linearization |
JP2006300890A (ja) * | 2005-04-25 | 2006-11-02 | Toyota Motor Corp | 画像処理検査装置及び画像処理検査方法 |
JP4104631B2 (ja) * | 2006-03-27 | 2008-06-18 | 三洋電機株式会社 | 運転支援装置 |
TW200740212A (en) * | 2006-04-10 | 2007-10-16 | Sony Taiwan Ltd | A stitching accuracy improvement method with lens distortion correction |
US8023144B2 (en) * | 2006-07-11 | 2011-09-20 | Lexmark International, Inc. | Method for generating transposed image data |
CN101276465B (zh) * | 2008-04-17 | 2010-06-16 | 上海交通大学 | 广角图像自动拼接方法 |
US20100079385A1 (en) * | 2008-09-29 | 2010-04-01 | Smart Technologies Ulc | Method for calibrating an interactive input system and interactive input system executing the calibration method |
CN101789122B (zh) * | 2009-01-22 | 2013-06-26 | 佳能株式会社 | 用于校正畸变文档图像的方法和系统 |
DE102009049402B4 (de) * | 2009-10-14 | 2012-09-27 | Siemens Aktiengesellschaft | Korrektur von Verzerrungen bei der diffusionsgewichteten Magnetresonanzbildgebung |
US8480238B2 (en) * | 2010-10-26 | 2013-07-09 | Canon Kabushiki Kaisha | Projector array for multiple images |
TWI423659B (zh) * | 2010-11-09 | 2014-01-11 | Avisonic Technology Corp | 影像校正方法與相關影像校正系統 |
US8818132B2 (en) * | 2010-11-29 | 2014-08-26 | Microsoft Corporation | Camera calibration with lens distortion from low-rank textures |
CN102506828B (zh) * | 2011-07-29 | 2013-11-20 | 上海交通大学 | 基于线特征的交通事故现场图几何校正系统 |
JP2013156722A (ja) * | 2012-01-27 | 2013-08-15 | Sony Corp | 画像処理装置、画像処理方法、学習装置、学習方法およびプログラム |
JP6071257B2 (ja) * | 2012-06-07 | 2017-02-01 | キヤノン株式会社 | 画像処理装置及びその制御方法、並びにプログラム |
CN102750697B (zh) * | 2012-06-08 | 2014-08-20 | 华为技术有限公司 | 一种参数标定方法及装置 |
CN103177439B (zh) * | 2012-11-26 | 2015-10-28 | 惠州华阳通用电子有限公司 | 一种基于黑白格角点匹配的自动标定方法 |
CN103124334B (zh) * | 2012-12-19 | 2015-10-21 | 四川九洲电器集团有限责任公司 | 一种镜头畸变校正的方法 |
US9286656B2 (en) * | 2012-12-20 | 2016-03-15 | Chung-Ang University Industry-Academy Cooperation Foundation | Homography estimation apparatus and method |
US9208536B2 (en) * | 2013-09-27 | 2015-12-08 | Kofax, Inc. | Systems and methods for three dimensional geometric reconstruction of captured image data |
CN103218786B (zh) * | 2013-04-23 | 2015-11-25 | 西北工业大学 | 一种基于非线性逆映射机理的严重桶形畸变图像校正方法 |
CN104091308B (zh) * | 2014-06-12 | 2017-02-15 | 华南理工大学 | 一种减少图像畸变的极线校正方法 |
-
2016
- 2016-03-29 JP JP2016065237A patent/JP6316330B2/ja active Active
- 2016-04-04 EP EP19197618.2A patent/EP3640886B1/en active Active
- 2016-04-04 EP EP16163730.1A patent/EP3076365B1/en active Active
- 2016-04-04 EP EP16179195.9A patent/EP3101623B1/en active Active
- 2016-04-05 CN CN201910739100.9A patent/CN110458788B/zh active Active
- 2016-04-05 CN CN201610207533.6A patent/CN106056560B/zh active Active
-
2018
- 2018-02-02 JP JP2018016914A patent/JP6619034B2/ja active Active
-
2019
- 2019-11-13 JP JP2019205175A patent/JP6843212B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4829587A (en) * | 1987-03-02 | 1989-05-09 | Digital Equipment Corporation | Fast bitonal to gray scale image scaling |
US6449664B1 (en) * | 1998-11-16 | 2002-09-10 | Viewahead Technology, Inc. | Two dimensional direct memory access in image processing systems |
CN101533513A (zh) * | 2009-04-24 | 2009-09-16 | 天津大学 | 基于双视几何的图片伪造检测方法 |
Non-Patent Citations (1)
Title |
---|
3-D Transformations of image in Scanline order;Ed Catmull,et al;《ACM SIGGRAPH Computer Graphics》;19801231;第5-6页 |
Also Published As
Publication number | Publication date |
---|---|
JP2016197857A (ja) | 2016-11-24 |
CN110458788A (zh) | 2019-11-15 |
EP3076365A1 (en) | 2016-10-05 |
JP6316330B2 (ja) | 2018-04-25 |
EP3101623B1 (en) | 2019-06-05 |
JP6843212B2 (ja) | 2021-03-17 |
EP3640886B1 (en) | 2022-02-09 |
JP2020053062A (ja) | 2020-04-02 |
EP3640886A1 (en) | 2020-04-22 |
JP2018085140A (ja) | 2018-05-31 |
EP3101623A1 (en) | 2016-12-07 |
JP6619034B2 (ja) | 2019-12-11 |
CN110458788B (zh) | 2023-10-10 |
EP3076365B1 (en) | 2019-09-18 |
CN106056560A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106056560B (zh) | 单应性校正 | |
Makovoz et al. | Mosaicking with MOPEX | |
AU2020289841A1 (en) | Quotidian scene reconstruction engine | |
US9858464B2 (en) | 3-D localization and imaging of dense arrays of particles | |
EP3074945B1 (en) | Content-aware image rotation | |
US9542732B2 (en) | Efficient image transformation | |
US9235063B2 (en) | Lens modeling | |
US20190251677A1 (en) | Homography rectification | |
US7991240B2 (en) | Methods, systems and apparatuses for modeling optical images | |
EP3038049A1 (en) | Method for upscaling an image and apparatus for upscaling an image | |
CN107563978A (zh) | 人脸去模糊方法及装置 | |
CN109871841A (zh) | 图像处理方法、装置、终端及存储介质 | |
CN114641790A (zh) | 红外图像的超分辨率的处理方法及系统 | |
JP2009501966A (ja) | ランク−1格子による画像合成 | |
Scotney et al. | Biologically motivated feature extraction using the spiral architecture | |
He et al. | An approach of canny edge detection with virtual hexagonal image structure | |
JP7031511B2 (ja) | 信号処理装置、畳み込みニューラルネットワーク、信号処理方法及び信号処理プログラム | |
Altstidl et al. | Just a matter of scale? reevaluating scale equivariance in convolutional neural networks | |
Jing et al. | A novel spiral addressing scheme for rectangular images | |
Jing et al. | Multiscale “Squiral"(Square-Spiral) Image Processing | |
JP6361195B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 | |
Elwarfalli | A Convolutional Neural Network for Motion-Based Multiframe Super-Resolution Using Fusion of Interpolated Frames | |
KR20220004460A (ko) | 이미지 병합을 위한 이미지 매칭 방법 및 이를 수행하는 데이터 처리 장치 | |
CN116777737A (zh) | 图像变换方法、装置、电子设备及存储介质 | |
CN112419372A (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 |