CN110033426A - 一种用于对视差估计图像进行处理的装置 - Google Patents
一种用于对视差估计图像进行处理的装置 Download PDFInfo
- Publication number
- CN110033426A CN110033426A CN201810031866.7A CN201810031866A CN110033426A CN 110033426 A CN110033426 A CN 110033426A CN 201810031866 A CN201810031866 A CN 201810031866A CN 110033426 A CN110033426 A CN 110033426A
- Authority
- CN
- China
- Prior art keywords
- pixel point
- target pixel
- value
- target
- filling
- 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.)
- Granted
Links
- 230000004927 fusion Effects 0.000 claims abstract description 51
- 238000012795 verification Methods 0.000 claims abstract description 26
- 239000000872 buffer Substances 0.000 claims description 325
- 239000011800 void material Substances 0.000 claims description 55
- 238000010606 normalization Methods 0.000 claims description 34
- 238000001914 filtration Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 12
- 108010001267 Protein Subunits Proteins 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims description 6
- 241001442055 Vipera berus Species 0.000 claims description 4
- 239000003550 marker Substances 0.000 claims description 2
- 238000007670 refining Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 19
- 230000009471 action Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 208000011580 syndromic disease Diseases 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明实施例提供了用于对视差估计图像进行处理的装置,包括校验模块循环接收第一像素点和第二像素点;循环将最先接收的第一像素点作为目标像素点,基于第二像素点进行左右一致性校验,根据校验结果标记目标像素点;将标记后的目标像素点输出至空洞填补模块;空洞填补模块根据被标记为稳定像素点的目标像素点,对被标记为空洞像素点的目标像素点进行填补;后将目标像素点输出至融合模块;亚像素求精模块按预设的亚像素求精算法,对第一像素点进行亚像素求精处理,并作为目标像素点输出至融合模块;融合模块融合从空洞填补模块接收的目标像素点,与从亚像素求精模块接收的目标像素点。以提高对视差估计值图像中像素点的处理效率。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种用于对视差估计图像进行处理的装置。
背景技术
立体匹配(Stereo Matching)是:将作为立体匹配对的两个图像进行匹配的过程,即估计其中一图像(例如:左视图)中每一像素点,在另一图像(例如右视图)中的对应的立体匹配(Stereo Matching)关系。其中,上述作为立体匹配对的两个图像可以为:处于不同视点的图像采集设备针对同一场景所采集的两个图像,上述处于不同视点的图像采集设备可以为双目摄像机。
在对作为立体匹配对的两个图像进行立体匹配的过程中,可以先基于每一个图像在不同预设视差等级下的代价值,以及优化线扫描算法,计算得到该图像中每一像素点对应的在不同预设视差等级下的代价聚合值;将每一像素点对应的最小的代价聚合值,作为该像素点对应的视差估计值,进而得到每一图像对应的视差估计图像,即获得一对视差估计图像,分别为第一视差估计图像和第二视差估计图像,且视差估计图像中的每一像素点对应一预设视差等级。后续的,需要对上述所获得的一对视差估计图像中的视差估计值进行视差估计值优化,以获得最终的视差值。
现有技术中进行视差估计值优化,获得最终的视差值的基本过程,包括:
选择第一视差估计图像中的一个待处理的像素点,基于第二视差估计图像中的像素点,对该待处理的像素点进行左右一致性校验,以确定该待处理的像素点是否为未满足左右一致性校验的空洞像素点;当确定该待处理的像素点为空洞像素点时,获取第一视差估计图像中该待处理的像素点对应的预设区域内的像素点,并根据所获取的预设区域内的像素点,对该待处理的像素点进行填补,获得填补后的像素点;对该待处理的像素点进行亚像素求精,获得亚像素求精后的像素点;融合该填补后的像素点和亚像素求精后的像素点,获得融合后的像素点;另外,当确定该待处理的像素点不为空洞像素点时,即为稳定像素点时,不对该待处理的像素点进行填补;直接融合该待处理的像素点和亚像素求精后的像素点,获得融合后的像素点,以得到该待处理的像素点对应的最终的视差值。其中,上述针对像素点的处理,均为针对该像素点的像素值的处理。后续的,当得到该待处理的像素点的最终的视差值后,再选择第一视差估计图像中的上述待处理的像素点的下一个像素点,作为新的待处理的像素点,进行后续处理,得到该新的待处理的像素点的最终的视差值。
另外的,为了获得更好的待处理的像素点对应的最终的视差值,在获得该待处理的像素点对应的融合后的像素点后,可以对融合后的像素点进行滤波处理,以得到更好的最终的视差值。
现有技术中是一个像素点一个像素点的串行处理,也就是在一个像素点完全处理完后再对下一个像素点进行处理,以获得所有像素点的最终的视差值,串行处理过程消耗时间较长,效率不高。
发明内容
本发明实施例的目的在于提供一种用于对视差估计图像进行处理的装置,以实现提高对整个视差估计值图像中像素点的处理效率。具体技术方案如下:
一方面,本发明实施例提供了一种用于对视差估计图像进行处理的装置,包括:校验模块、空洞填补模块、亚像素求精模块和融合模块;
所述的校验模块,用于以先入先出方式循环接收第一视差估计图像的第一像素点,并同时接收第二视差估计图像的第二像素点;当接收的第一像素点数量达到第一预设值时,将当前接收到的第一像素点中最先接收的第一像素点作为目标像素点,基于当前接收的第二像素点进行左右一致性校验,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点输出至所述空洞填补模块;
所述的空洞填补模块,用于以先入先出方式接收所述目标像素点;当接收到第二预设值个目标像素点时,根据接收到的目标像素点中被标记为稳定像素点的目标像素点,对接收到的目标像素点中被标记为空洞像素点的目标像素点进行填补;按先入先出方式将各个目标像素点输出至融合模块;
所述的亚像素求精模块,用于接收第一视差估计图像的第一像素点,按预设的亚像素求精算法,对每个第一像素点进行亚像素求精处理后,将处理后的第一像素点作为目标像素点逐一输出至融合模块;
所述的融合模块,用于将从空洞填补模块接收的目标像素点,与从亚像素求精模块接收的目标像素点进行融合处理,将处理后的目标像素点逐一输出。
可选地,所述的校验模块,包含:第一缓存器、第二缓存器和校验单元;
所述第一缓存器,用于以先入先出方式循环接收第一视差估计图像的第一像素点;
所述第二缓存器,用于循环接收第二视差估计图像的第二像素点;
所述校验单元,用于当确定所述第一缓存器缓存的第一像素点数量达到第一预设值时,将所述第一缓存器中最先进入的第一像素点作为目标像素点;基于当前所述第二缓存器中的第二像素点进行左右一致性校验,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点以及标记信息输出至所述空洞填补模块。
可选地,所述的空洞填补模块,包含:第三缓存器和填补单元;
所述第三缓存器包含预设数量个寄存器,用于以先入先出方式接收所述目标像素点以及目标像素点对应的标记信息;当所述第三缓存器的第二预设值个寄存器存储有目标像素点时,将当前第三缓存器中存储的各个目标像素点以及各个目标像素点对应的标记信息输出给填补单元;
所述填补单元,用于根据第三缓存器中被标记为稳定像素点的目标像素点,对第三缓存器中被标记为空洞像素点的目标像素点进行填补;按先入先出方式将各个目标像素点输出至融合模块;其中,所述第二预设值等于:二分之一倍的所述预设数量与一的和。
可选地,所述亚像素求精模块,包含:第四缓存器和计算单元;
所述第四缓存器,用于接收第一视差估计图像的第一像素点;
所述计算单元,用于按预设的亚像素求精算法,对所述第四缓存器中的每个第一像素点进行亚像素求精处理后,将处理后的第一像素点作为目标像素点逐一输出至融合模块。
可选地,所述融合模块,包含:第五缓存器、第六缓存器和融合单元;
所述第五缓存器,用于接收空洞填补模块输出的目标像素点;
所述第六缓存器,用于接收亚像素求精模块输出的目标像素点;
所述融合单元,用于将所述第五缓存器中的目标像素点与所述第六缓存器中相对应的目标像素点进行融合处理,将处理后的目标像素点逐一输出。
可选地,所述校验单元,包含:计数子单元、第一读取子单元、延迟子单元和校验子单元;
所述计数子单元,用于对所述第一读取子单元所读取的目标像素点的个数,进行计数,并在每次计数值达到预设的行像素点总数时,重新计数;
所述第一读取子单元,用于当确定所述第一缓存器缓存的第一像素点数量达到第一预设值时,以先进先出方式从第一缓存器中读取最先进入的第一像素点,作为目标像素点,获得所述目标像素点的视差值,输入所述延迟子单元;并基于所获得的目标像素点的视差值、预先接收的所述第一视差估计图像中最小的视差值以及所述计数子模块的当前计数值,确定读取地址;基于所确定的读取地址,读取所述第二缓存器,并确定读取结果,将所确定的读取结果输入所述校验子单元;
所述延迟子单元,用于获得所述目标像素点的视差值,并等待;直到当所述读取子模块读取所述第二缓存器,并确定读取结果后,将该目标像素点的视差值输入所述校验子单元;
所述校验子单元,用于获得所述第一读取子单元输出的读取结果和所述延迟子单元输出的目标像素点的视差值,当所述读取结果包含与所述目标像素点相应的第二像素点的视差值时,基于所述目标像素点的视差值、所述相应的第二像素点的视差值以及预设的视差门限,确定所述目标像素点是否为空洞像素点,以获得校验结果;当确定所述读取结果未包含视差值时,确定所述目标像素点为空洞像素点,以获得校验结果,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点以及标记信息输出至所述空洞填补模块。
可选地,所述的填补单元,包含:行像素点处理子单元、第七缓存器、列像素点处理子单元、填补判决子单元和填补子单元;
所述行像素点处理子单元,用于获得所述第三缓存器所存储的目标像素点的视差值以及标记信息,并基于所获得的目标像素点的视差值以及每一目标像素点对应的标记信息,确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数;确定每一目标像素点对应的水平支持区域内所对应视差值数量最多的视差值的个数,作为第二个数;以及确定每一目标像素点对应的水平支持区域内所对应视差值数量最多的视差值,作为第一初选视差值;将每一目标像素点的视差值、标记信息以及所确定的每一目标像素点对应的第一个数、第二个数和第一初选视差值输入第七缓存器;
第七缓存器,包含所述预设数量个行缓存器,用于接收行像素点处理子单元输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;当所述第七缓存器的第二预设值个行缓存器缓存目标像素点的视差值、标记信息以及目标像素点对应的第一个数、第二个数和第一初选视差值时,将当前所述第七缓存器中该第二预设值个行缓存器中所存储的目标像素点的视差值、标记信息以及该目标像素点对应的第一个数、第二个数和第一初选视差值,当前所述第七缓存器中所存储的与该第二预设值个行缓存器所存储的目标像素点同列的每一目标像素点的视差值、标记信息以及对应的第一个数、第二个数和第一初选视差值,输入所述列像素点处理子单元;
所述列像素点处理子单元,用于获得所述第七缓存器所输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;基于所获得的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值,确定每一目标像素点对应的垂直支持区域内被标记为稳定像素点的目标像素点的个数,作为第三个数;确定每一目标像素点对应的垂直支持区域内所对应视差值数量最多的视差值的个数,作为第四个数;基于每一目标像素点对应的第一个数和第三个数,确定每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数,作为第一总数;并基于每一目标像素点对应的第二个数和第四个数,确定每一目标像素点对应的支持区域内所对应视差值数量最多的视差值的总数,作为第二总数,并确定每一目标像素点对应的支持区域内所对应视差值数量最多的视差值,作为待填补视差值,将每一目标像素点对应的第一总数以及第二总数输入所述填补判决子单元;并将每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值输入填补子单元;
所述填补判决子单元,用于获得列像素点处理子单元输出的每一目标像素点对应的第一总数以及第二总数,基于所获得的每一目标像素点对应的第一总数以及第二总数,判决每一目标像素点是否满足进行填补的填补条件,获得每一目标像素点对应的填补判决结果,将每一目标像素点对应的填补判决结果输入填补子单元;
所述填补子单元,包含用于获得列像素点处理子单元输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值,并获得所述填补判决子模块输出的每一目标像素点对应的填补判决结果;基于每一目标像素点对应的填补判决结果以及标记信息,确定是否填补每一目标像素点,当确定填补时,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当确定不填补时,保留该目标像素点的视差值,并输出该视差值。
可选地,所述行像素点处理子单元,包含第一比较器阵列、水平支持窗口像素点确定子模块、第一加法树子模块、第二比较器阵列、第一移位寄存器、第二移位寄存器和第八缓存器;
所述第三缓存器,还用于获得每一目标像素点,在预设的第一时长后,以先进先出的原则,将每一目标像素点输入第八缓存器;
第一比较器阵列,用于获得第三缓存器所存储的目标像素点的视差值以及标记信息,对所获得每一目标像素点的视差值进行两两比较,确定每一目标像素点对应的比较结果,并将每一目标像素点对应的比较结果,输入水平支持窗口像素点确定子模块;其中,每一目标像素点对应的比较结果包含:该目标像素点相应于其他目标像素点中每一目标像素点的比较结果;当目标像素点的视差值与其他目标像素点的视差值相同时,该目标像素点相应于该其他目标像素点的比较结果包含第一预设标记,当目标像素点的视差值与其他目标像素点的视差值不同时,该目标像素点相应于该其他目标像素点的比较结果包含第二预设标记;
水平支持窗口像素点确定子模块,用于接收第一比较器阵列输入的每一目标像素点对应的比较结果以及标记信息,并获得每一目标像素点对应的水平支持区域的水平支持区域信号;基于所接收的水平支持区域信号,对每一目标像素点对应的比较结果进行调整,其中,当目标像素点对应的水平支持区域信号为第一水平支持信号时,保持该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果不变,当目标像素点对应的水平支持窗口信号为第二水平支持信号时,将该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果设置为第二预设标记;将每一目标像素点对应的处理后的比较结果以及标记信息,输入第一加法树子模块;
第一加法树子模块,用于获得每一目标像素点对应的处理后的比较结果以及标记信息,对每一目标像素点对应的处理后的比较结果中的第一预设标记进行计数,确定每一目标像素点对应的第一计数值,并基于每一目标像素点对应的标记信息,确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数,将每一目标像素点对应的第一计数值以及标记信息输入第二比较器阵列;并将每一目标像素点对应的第一个数输入第一移位寄存器;
第二比较器阵列,用于获得每一目标像素点对应的第一计数值以及标记信息,对所获得的第一计数值进行比较,确定每一目标像素点对应的数值最大的第一计数值,将每一目标像素点对应的数值最大的第一计数值加一所得结果,作为水平支持区域对应的目标像素点对应的第二个数;并基于每一目标像素点对应的最大的第一计数值,确定每一目标像素点对应的第一寄存器地址;将所确定的每一目标像素点对应的第一寄存器地址以及每一目标像素点对应的第二个数输入第八缓存器,以得到每一目标像素点对应的寄存器地址对应的位置的视差值,作为每一目标像素点对应的第一初选视差值;同时,第一移位寄存器将每一目标像素点对应的第一个数输入第二移位寄存器;
第八缓存器,包含所述预设数量个寄存器;用于将每一目标像素点的视差值、标记信息以及每一目标像素点对应的第二个数和第一初选视差值输入所述第七缓存器,并且,所述第二移位寄存器将每一目标像素点对应的第一个数输入所述第七缓存器。
可选地,所述列像素点处理子单元,包含第三比较器阵列、垂直支持窗口像素点确定子模块、第二加法树子模块、第四比较器阵列、第九缓存器;
所述第七缓存器,还用于获得每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;在预设的第二时长后,以先进先出方式将所获得的目标像素点的视差值输入第九缓存器;
所述第三比较器阵列,用于获得所述第七缓存器所输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;对所获得每一目标像素点的视差值进行两两比较,确定每一目标像素点对应的比较结果,并将每一目标像素点对应的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值输入垂直支持窗口像素点确定子模块;其中,每一目标像素点对应的比较结果包含:该目标像素点相应于其他目标像素点中每一目标像素点的比较结果;当目标像素点的视差值与其他目标像素点的视差值相同时,该目标像素点相应于该其他目标像素点的比较结果包含第一预设标记,当目标像素点的视差值与其他目标像素点的视差值不同时,该目标像素点相应于该其他目标像素点的比较结果包含第二预设标记;
垂直支持窗口像素点确定子模块,用于获得第三比较器阵列输入的每一目标像素点对应的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值,并获得每一目标像素点对应的垂直支持区域的垂直支持区域信号;基于所接收的垂直支持区域信号,对每一目标像素点对应的比较结果进行调整,其中,当目标像素点对应的垂直支持区域信号为第一垂直支持信号时,保持该目标像素点的比较结果中,相对于该垂直支持区域对应的目标像素点的比较结果不变,当目标像素点对应的垂直支持窗口信号为第二垂直支持信号时,将该目标像素点的比较结果中,相对于垂直支持区域目标像素点的比较结果设置为第二预设标记;将每一目标像素点对应的处理后的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值输入第二加法树子模块;
第二加法树子模块,用于获得每一目标像素点对应的处理后的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值;对每一目标像素点对应的处理后的比较结果中的第一预设标记进行计数,确定每一目标像素点对应的第二计数值;基于每一目标像素点对应的标记信息,确定每一目标像素点对应的垂直支持区域内被标记为稳定像素点的目标像素点的个数,作为第三个数;基于每一目标像素点对应的第一个数和第三个数,确定每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数,作为第一总数;将每一目标像素点对应的第二计数值、每一目标像素点对应的标记信息、第二个数和第一初选视差值输入第四比较器阵列;并将每一目标像素点对应的第一总数输入填补判决子单元;
第四比较器阵列,接收第二加法树子模块输出的每一目标像素点对应的第二计数值、每一目标像素点对应的标记信息、第二个数和第一初选视差值;对每一目标像素点对应的第二计数值进行比较,获得每一目标像素点对应的数值最大的第二计数值,将每一目标像素点对应的数值最大的第二计数值加一所得结果,作为该对应的第四个数;基于每一目标像素点对应的第二个数和第四个数,确定该目标像素点对应的第二总数;将每一目标像素点对应的第二总数输入填补判决子单元;
基于每一目标像素点对应的第二总数,确定每一目标像素点对应的第二寄存器地址;将所确定的每一目标像素点对应的第二寄存器地址、每一目标像素点对应的标记信息、第二总数和初选像素值输入第九缓存器;
第九缓存器,包含所述预设数量个寄存器;用于读取所确定的每一目标像素点对应的第二寄存器地址对应的位置的视差值,作为该目标像素点对应的第二初选视差值,基于每一目标像素点对应的第一初选视差值和第二初选视差值,确定每一目标像素点对应的待填补视差值;将每一目标像素点待填补视差值、每一目标像素点的视差值以及每一目标像素点对应的标记信息输入填补子单元。
可选地,所述填补判决子单元,包含第一比较子模块、第三移位寄存器、填补判决子模块;
所述第一比较子模块,用于获得所述第二比较器阵列输出的每一目标像素点对应的第一总数,并获得预设的第一门限值;将每一目标像素点对应的第一总数与所述预设的第一门限值进行比较,获得每一目标像素点对应的比较结果,将所获得的每一目标像素点对应的比较结果输入所述填补判决子模块;
所述第三移位寄存器,用于获得所述第二比较器阵列输出的每一目标像素点对应的第一总数,并等待,当所述第一比较子模块将所获得的每一目标像素点对应的比较结果输入所述填补判决子模块,将每一目标像素点对应的第一总数输入所述填补判决子模块;
所述填补判决子模块,用于获得所述第一比较子模块输出的每一目标像素点对应的比较结果,以及第三移位寄存器输出的每一目标像素点对应的第一总数,以及第二比较器阵列输出的每一目标像素点对应的第二总数;获得预设的第二门限值;基于所述预设的第二门限值、比较结果、每一目标像素点对应的第一总数、第二总数以及标记信息,判决每一目标像素点是否满足进行填补的填补条件,获得每一目标像素点对应的填补判决结果;当所述第九缓存器将所确定的每一目标像素点对应的待填补视差值、标记信息以及每一目标像素点的视差值输入填补子单元时,将所确定的每一目标像素点对应的填补判决结果输入填补子单元。
可选地,所述填补子单元,用于获得第九缓存器输出的所确定的每一目标像素点对应的待填补视差值、标记信息以及每一目标像素点的视差值,填补判决子模块所输出的所确定的每一目标像素点对应的填补判决结果;基于每一目标像素点对应的填补判决结果以及标记信息,确定是否对每一目标像素点进行填补;当确定填补时,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当确定不填补时,保留该目标像素点的视差值,并输出该视差值。
可选地,所述亚像素求精算法,为:
d*=dl-diff
其中,
其中,所述d*标识所述目标像素点进行亚像素求精后所得的视差值;所述dl标识目标像素点的视差值,所述C(p,d)标识目标像素点对应的预设视差等级下的代价值,所述C(p,d+)标识目标像素点对应的预设视差等级的前一个预设视差等级下的代价值,所述C(p,d-)标识目标像素点对应的预设视差等级的后一个预设视差等级下的代价值。
可选地,所述融合单元,具体用于;
确定所述第五缓存器中的目标像素点以及所述第六缓存器中相对应的目标像素点,是否满足预设替换条件,当确定满足预设替换条件时,将所述第五缓存器中的目标像素点的视差值,替换为所述第六缓存器中相对应的目标像素点的视差值。
可选地,所述装置还包括差值填补模块;
所述差值填补模块,包含用于缓存所述融合模块输出的像素点的第十缓存器、空洞标定单元、归一化单元和差值填补单元;
所述空洞标定单元,用于基于预设的中间视差值算法,以先进先出方式,确定第十缓存器中的各个目标像素点对应的中间视差值;并基于每一目标像素点对应的中间视差值,对每一目标像素点进行标定,获得每一目标像素点对应的标定结果;将每一目标像素点对应的中间视差值以及标定结果输入归一化单元;
所述归一化单元,用于获得每一目标像素点对应的中间视差值以及标定结果,基于预设的归一化公式、每一目标像素点对应的中间视差值以及标定结果,确定每一目标像素点的归一化后的视差值,作为每一目标像素点对应的目标视差值,将每一目标像素点对应的目标视差值以及标定结果输入差值填补单元;
所述差值填补单元,用于基于每一目标像素点对应的标定结果,基于被标记为稳定像素点的目标像素点的目标视差值,对被标记为空洞像素点的目标像素点的目标视差值进行填补,并输出。
可选地,所述预设的中间视差值算法,为:
disp_norm=256/(dmax-dmin)*(disp-dmin)
其中,所述dmin标识所述第三预设值,所述dmax标识第四预设值,所述disp标识所述融合模块输出的每一目标像素点的视差值;所述disp_norm标识所述融合模块输出的每一目标像素点对应的中间视差值;
所述空洞标定单元,包括第一标定子单元和第二标定子单元;
所述第一标定子单元,用于当确定目标像素点对应的中间视差值大于第一视差阈值或小于第二视差阈值时,对该目标像素点标记第一标记,以获得标定结果;其中,所述第一视差阈值大于所述第二视差阈值;
所述第二标定子单元,用于当确定目标像素点对应的中间视差值大于等于所述第二视差阈值,且小于等于所述第一视差阈值时,对该目标像素点标定第二标记,以获得标定结果。
可选地,所述归一化单元,包含第一归一化子单元和第二归一化子单元;
第一归一化子单元,用于当目标像素点被标记为所述第一标记时,将该目标像素点的视差值设置为第一视差值,作为该目标像素点对应的目标视差值;
第二归一化子单元,用于当目标像素点被标记为所述第二标记时,基于所述预设的归一化公式、每一目标像素点的中间视差值,确定该目标像素点对应的目标视差值,其中,所述预设的归一化公式,为:
其中,所述depth标识目标像素点对应的目标视差值;所述minz_invert标识第五预设值,所述maxz_invert标识第六预设值,其中,所述第五预设值为所述第一视差估计图像对应的最近预设视差平面值的倒数,所述第六预设值为所述第一视差估计图像对应的最远预设视差平面值的倒数。
可选地,所述差值填补单元,包含第一行缓存器、第二读取子单元、第一遍历子单元、第二遍历子单元、第二行缓存器、第三行缓存器、差值填补子单元;
所述第一行缓存器,用于获得每一目标像素点对应的目标视差值以及标定结果,并缓存;
所述第二读取子单元,用于当所述第一行缓存器所缓存目标视差值的个数达到预设的行像素点总数时,按与第一行缓存器缓存顺序相反的顺序,读取每一目标像素点对应的目标视差值以及标定结果,并输入所述第二遍历子单元;
所述第一遍历子单元,获得每一目标像素点对应的目标视差值以及标定结果,当基于每一目标像素点对应的标定结果,确定目标像素点为空洞像素点时,针对该被标定为空洞像素点的目标像素点,确定所遍历过的其所在行中的目标像素点中是否存在被标定为稳定像素点的目标像素点;当确定存在时,确定与该被标定为空洞像素点的目标像素点距离最近的、且被标定为稳定像素点的目标像素点,作为该被标定为空洞像素点的目标像素点的第一差值填补像素点,以及该第一差值填补像素点与该被标定为空洞像素点的目标像素点的距离,作为第一距离;并相应于该被标定为空洞像素点的目标像素点存储于第一行缓存器的位置,将该被标定为空洞像素点的目标像素点的第一差值填补像素点的目标视差值,以及该第一距离作为确定结果,存储于第二行缓存器;当确定不存在时,将表征不存在的预设信息作为确定结果,相应于该被标定为空洞像素点的目标像素点存储于第一行缓存器的位置,存储于第二行缓存器;
所述第二行缓存器,用于缓存每一被标记为空洞像素点的目标像素点对应的确定结果;
所述第二遍历子单元,用于获得所述第二读取子单元从所述第一行缓存器中读取出的每一目标像素点对应的目标视差值以及标定结果,确定目标像素点为空洞像素点时,针对被标定为空洞像素点的目标像素点,确定所遍历过的目标像素点中是否存在被标定为稳定像素点的目标像素点;当确定存在时,针对被标定为空洞像素点的目标像素点,确定所遍历过的与该被标定为空洞像素点的目标像素点距离最近的、且被标记为稳定像素点的目标像素点,作为被标定为空洞像素点的目标像素点的第二差值填补像素点;并确定该第二差值填补像素点与该被标定为空洞像素点的目标像素点的距离,作为第二距离;将所确定的第二差值填补像素点的目标视差值以及第二距离,输入差值填补子单元;当确定不存在时,将表征不存在的预设信息作为确定结果,输入差值填补子单元;
第二读取子单元,还用于从所述第二行缓存器中读取被标定为空洞像素点的目标像素点对应的确定结果,输入所述差值填补子单元;
所述差值填补子单元,用于获得第二遍历子单元输出的确定结果,并获得第二读取子单元读取的确定结果,基于第二遍历子单元输出的确定结果和第二读取子单元读取的确定结果,对所对应的被标定为空洞像素点的目标像素点进行填补,得到填补后的目标像素点,将该填补后的目标像素点作为填补替换像素点输入第三行缓存器;
第三行缓存器,用于基于每一目标像素点在第一视差估计图像中的位置,缓存作为填补替换像素点的目标像素点。
可选地,所述差值填补子单元,具体用于
获得第二遍历子单元输出的确定结果,并获得第二读取子单元读取的确定结果;
当第二读取子单元读取的确定结果包含表征不存在的预设信息,且第二遍历子单元输出的确定结果包含第二差值填补像素点的目标视差值和第二距离时,将该被标定为空洞像素点的目标像素点的目标视差值,替换为所对应的第二差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含第一差值填补像素点的目标视差值以及第一距离,且第二遍历子单元输出的确定结果包含第二差值填补像素点的目标视差值和第二距离时,判断所述第一距离与所述第二距离之差是否小于距离阈值;
当判断小于时,基于预设差值填补视差值计算公式、所对应第一距离、所对应第二距离、所对应第一差值填补像素点的目标视差值和所对应第二差值填补像素点的目标视差值,对被标定为空洞像素点的目标像素点进行填补,获得被标定为空洞像素点的目标像素点填补后的目标视差值;
其中,所述预设差值填补视差值计算公式为:
dibr_image=(dibr_l*distance_r+dibr_r*distance_l)/(distance_r+distance_l)
其中,所述dibr_image标识被标定为空洞像素点的目标像素点填补后的目标视差值,所述distance_l标识所对应第一距离,所述distance_r标识所对应第二距离,所述dibr_l标识所对应第一差值填补像素点的目标视差值,所述dibr_r标识所对应第二差值填补像素点的目标视差值;
当判断为不小于时,比较所述第一距离和所述第二距离的大小;
当所述第一距离小于所述第二距离,将被标定为空洞像素点的目标像素点的目标视差值,替换为所对应第一差值填补像素点的目标视差值;
当所述第一距离不小于所述第二距离,将被标定为空洞像素点的目标像素点的目标视差值,替换为所对应第二差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含第一差值填补像素点的目标视差值以及第一距离,且第二遍历子单元输出的确定结果包含表征不存在的预设信息时,将该被标定为空洞像素点的目标像素点的目标视差值,替换为所对应的第一差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含表征不存在的预设信息,且第二遍历子单元输出的确定结果包含表征不存在的预设信息时,从所述第三行缓存器中,确定针对该被标记为空洞像素点的目标像素点所在行的前一行的被标记为空洞像素点的目标像素点所存储的填补替换像素点的目标像素点;并将所确定的填补替换像素点的目标像素点,替换该被标记为空洞像素点的目标像素点的目标视差值。
可选地,所述装置还包括:滤波模块;
所述滤波模块,包含:用于接收差值填补模块输出的目标像素点的第十一缓存器,对第十一缓存器中的各个目标像素点进行滤波处理,得到滤波后的目标像素点。
本发明实施例中,校验模块,用于以先入先出方式循环接收第一视差估计图像的第一像素点,并同时接收第二视差估计图像的第二像素点;当接收的第一像素点数量达到第一预设值时,将当前接收到的第一像素点中最先接收的第一像素点作为目标像素点,基于当前接收的第二像素点进行左右一致性校验,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点输出至所述空洞填补模块;空洞填补模块,用于以先入先出方式接收所述目标像素点;当接收到第二预设值个目标像素点时,根据接收到的目标像素点中被标记为稳定像素点的目标像素点,对接收到的目标像素点中被标记为空洞像素点的目标像素点进行填补;按先入先出方式将各个目标像素点输出至融合模块;亚像素求精模块,用于接收第一视差估计图像的第一像素点,按预设的亚像素求精算法,对每个第一像素点进行亚像素求精处理后,将处理后的第一像素点作为目标像素点逐一输出至融合模块;融合模块,用于将从空洞填补模块接收的目标像素点,与从亚像素求精模块接收的目标像素点进行融合处理,将处理后的目标像素点逐一输出。
本发明实施例中,针对像素点的处理步骤形成流水形式的处理过程,对一个像素点处理完成一步后,即可对该像素点的下一个像素点进行处理,整个处理过程,提高了对整张视差估计图像中的每一像素点的处理速度,并提高了对整张视差估计图像中的每一像素点的处理效率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种用于对视差估计图像进行处理的装置的结构示意图;
图2A为本发明实施例所提供的校验模块的一种结构示意图;
图2B为本发明实施例所提供的校验模块的另一种结构示意图;
图3为上述校验模块缓存第一视差估计图像的第一像素点和第二视差估计图像的第二像素点的一种示意图;
图4A为本发明实施例所提供的空洞填补模块的一种结构示意图;
图4B为空洞填补模块的一种填补原理的示意图;
图5为本发明实施例所提供的填补单元的一种结构示意图;
图6A为本发明实施例所提供的行像素点处理子单元的一种结构示意图;
图6B为本发明实施例所提供的第三缓存器和填补单元中的行像素点处理子单元之间的结构示意图;
图7A为本发明实施例所提供的列像素点处理子单元、填补判决子单元和填补子单元的一种结构示意图;
图7B为本发明实施例所提供的第七缓存器、列像素点处理子单元、填补判决子单元和填补子单元之间的结构示意图;
图8为本发明实施例所提供的一种用于对视差估计图像进行处理的装置的另结构示意图;
图9为本发明实施例所提供的差值填补单元的一种结构示意图;
图10为第一行缓存器和/或第二行缓存器的实现和读写时序;
图11为一种差值填补单元的结构示意图;
图12为“scan_proc”的目标像素点的遍历原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种用于对视差估计图像进行处理的装置,以实现提高对整个视差估计值图像中像素点的处理效率。
如图1所示,本发明实施例提供了一种用于对视差估计图像进行处理的装置,可以包括校验模块110、空洞填补模块120、亚像素求精模块130和融合模块140;
上述的校验模块110,用于以先入先出方式循环接收第一视差估计图像的第一像素点,并同时接收第二视差估计图像的第二像素点;当接收的第一像素点数量达到第一预设值时,将当前接收到的第一像素点中最先接收的第一像素点作为目标像素点,基于当前接收的第二像素点进行左右一致性校验,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点输出至空洞填补模块120;
其中,上述循环接收第一视差估计图像的第一像素点可以是:上述校验模块110将标记后的目标像素点输出至空洞填补模块120,并同时接收新的第一像素点。
可以理解的是,上述接收第一视差估计图像的第一像素点,并同时接收第二视差估计图像的第二像素点,可以为:接收上述第一视差估计图像和上述第二视差估计图像中相同位置处的第一像素点和第二像素点。具体的可以为:当接收第一视差估计图像的第一像素点(xi,yj)时,接收第二视差估计图像的第二像素点(vi,uj)。
在一种实现方式中,上述第一预设值可以为上述第一视差估计图像中数值最小的视差值的绝对值,以保证在上述第二视差估计图像的第二像素点中,存在与上述第一视差估计图像的第一像素点对应的第二像素点时,能够确定出该与上述第一视差估计图像的第一像素点对应的第二像素点。
本发明实施例中,当上述的校验模块110接收的第一像素点数量达到第一预设值时,开始对所接收的每一第一像素点进行处理。在处理过程中,将当前接收到的第一像素点中最先接收的第一像素点作为目标像素点,并基于该目标像素点,确定当前接收的第二像素点中是否存在目标像素点对应的第二像素点,并当确定存在上述目标像素点对应的第二像素点时,确定该第二像素点是否与上述目标像素点匹配,以确定校验结果,并根据校验结果将目标像素点标记为稳定像素点或空洞像素点,并输出。
上述第一视差估计图像以及第二视差估计图像为:一对作为立体匹配对的图像分别计算得到的图像,上述第一视差估计图像中包含每一第一像素点的视差值;上述第二视差估计图像中包含每一第二像素点的视差值。在一种情况中,上述第一视差估计图像为:作为立体匹配对的图像中的左视图计算所得的图像,即上述第一视差估计图像中每一第一像素点的视差值为:基于上述左视图相同位置处的像素点计算所得的视差值;上述第二视差估计图像为作为立体匹配对的图像中的右视图计算所得的图像,即上述第二视差估计图像中每一第二像素点的视差值为:基于上述右视图相同位置处的像素点计算所得的视差值。
上述的空洞填补模块120,用于以先入先出方式接收目标像素点;当接收到第二预设值个目标像素点时,根据接收到的目标像素点中被标记为稳定像素点的目标像素点,对接收到的目标像素点中被标记为空洞像素点的目标像素点进行填补;按先入先出方式将各个目标像素点输出至融合模块140;
可以理解的是,上述第二预设值可以为预先设置的数值,当空洞填补模块120接收到第二预设值个目标像素点,即所接收的目标像素点的数量达到上述第二预设值时,开启处理过程。空洞填补模块120基于当前接收的所有目标像素点,利用其中被标记为稳定像素点的目标像素点,对其中被标记为空洞像素点的目标像素点进行填补,并将填补后的目标像素点输出至融合模块140。
上述的亚像素求精模块130,用于接收第一视差估计图像的第一像素点,按预设的亚像素求精算法,对每个第一像素点进行亚像素求精处理后,将处理后的第一像素点作为目标像素点逐一输出至融合模块140;
上述的融合模块140,用于将从空洞填补模块接收的目标像素点,与从亚像素求精模块接收的目标像素点进行融合处理,将处理后的目标像素点逐一输出。
在本发明实施例中,为了更好的提高对视差估计图像中像素点的处理速度以及处理效率,上述的亚像素求精模块130对第一像素点的处理流程可以与上述的校验模块110、上述的空洞填补模块120的处理流程,同步执行。当上述的空洞填补模块120将填补后的目标像素点输入融合模块140时,上述的亚像素求精模块130将相应的亚像素求精后的目标像素输入融合模块140。上述的融合模块140接收到上述空洞填补模块120输出的目标像素点,以及上述亚像素求精模块130输出的相应的目标像素点时,可以对上述空洞填补模块120输出的目标像素点和上述亚像素求精模块130输出的相应的目标像素点,进行融合,并输出。
本发明实施例中,上述的针对像素点的处理,均为针对该像素点的视差值的处理。
本发明实施例中,针对像素点的处理步骤形成流水形式的处理过程,对一个像素点处理完成一步后,即可对该像素点的下一个像素点进行处理,整个处理过程,提高了对整张视差估计图像中的每一像素点的处理速度,并提高了对整张视差估计图像中的每一像素点的处理效率。
并且,本发明实施例所提供的用于对视差估计图像进行处理的装置,可以通过FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现,其中,上述FPGA具有成本较低,且计算效率高的优点。通过上述FPGA可以提高对视差估计图像中像素点的整体处理效率,并能够降低对视差估计图像中像素点的处理过程的成本。
在一种实现方式中,如图2A所示,上述的校验模块110,可以包含:第一缓存器210、第二缓存器220和校验单元230;
第一缓存器210,用于以先入先出方式循环接收第一视差估计图像的第一像素点;
第二缓存器220,用于循环接收第二视差估计图像的第二像素点;
校验单元230,用于当确定第一缓存器缓存的第一像素点数量达到第一预设值时,将第一缓存器中最先进入的第一像素点作为目标像素点;基于当前第二缓存器中的第二像素点进行左右一致性校验,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点以及标记信息输出至空洞填补模块。
在一种情况中,上述第一缓存器210可以为先进先出缓存队列(FIFO)。可以理解的是,当针对作为立体匹配对的两个图像,计算上述第一视差估计图像和第二视差估计图像时,可以基于每一图像的像素点在不同预设视差等级下的代价值,计算得到上述第一视差估计图像和第二视差估计图像,在一种实现方式中,上述不同预设视差等级可以为128个,此时,上述FIFO的存储容量可以为128*8bit。上述第一视差估计图像可以为作为立体匹配对的两个图像中的左视图对应的图像,此时,可以称上述第一视差估计图像中每一第一像素点的视差值为左视差值,上述第一缓存器210可以缓存左视差值,如图2B所示,“left_disparity_fifo”可以标识上述第一缓存器210。
上述第二缓存器220可以为RAM(Random Sccess Memory,随机存取存储器),上述RAM的存储容量可以为MAX_LINE_LENGTH*8bit。上述MAX_LINE_LENGTH可以标识上述第一视差估计图像中每行第一像素点的总数量,即上述第一视差估计图像的图像宽度。上述第二视差估计图像可以为作为立体匹配对的两个图像中的右视图对应的图像,此时,可以称上述第二视差估计图像中每一第二像素点的视差值为右视差值,上述第一缓存器210可以缓存为右视差值,如图2B所示,“right_disparity_ram”可以标识上述第二缓存器220。
在一种实现方式中,上述视差估计图像为基于优化线扫描算法得到的,在将上述第二视差估计图像的第二像素点输入第二缓存器220之前,需要对上述第二视差估计图像的第二像素点的视差值进行转换。当上述不同预设视差等级可以为128个,转换后的第二视差估计图像的第二像素点的视差值dr,可以标识为128-dr*,其中,上述dr*标识第二视差估计图像的第二像素点的原视差值。
在一种实现方式中,上述第一缓存器210可以存储第一预设值个第一像素点,当其所存储第一像素点的个数达到第一预设值时,可以是每接收一个第一像素点,即输出当前最先接收的一个第一像素点。上述第二缓存器220可以存储第一视差估计图像中整行的第二像素点,当上述第一缓存器210将第一视差估计图像中一行第一像素点中的最后一个第一像素点输入校验单元230,并且,校验单元230针对该第一视差估计图像中一行第一像素点中的最后一个第一像素点校验完成后,上述第二缓存器220可以直接将上述第一视差估计图像中一行第一像素点中的最后一个第一像素点,对应的一行第二像素点,全部丢弃。
上述校验单元230,当确定第一缓存器210缓存的第一像素点数量达到第一预设值时,开启处理流程,将第一缓存器210中最先进入的第一像素点作为目标像素点,并基于当前第二缓存器220中的第二像素点,对目标像素点进行左右一致性校验,并基于校验结果将目标像素点标记为稳定像素点或空洞像素点,并输出。
在一种实现方式中,如图2所示,上述校验单元230,可以包含:计数子单元231、第一读取子单元232、延迟子单元233和校验子单元234;
计数子单元231,用于对第一读取子单元232所读取的目标像素点的个数,进行计数,并在每次计数值达到预设的行像素点总数时,重新计数;
第一读取子单元232,用于当确定第一缓存器210缓存的第一像素点数量达到第一预设值时,以先进先出方式从第一缓存器210中读取最先进入的第一像素点,作为目标像素点,获得目标像素点的视差值,输入延迟子单元233;并基于所获得的目标像素点的视差值、预先接收的第一视差估计图像中最小的视差值以及计数子模块231的当前计数值,确定读取地址;基于所确定的读取地址,读取第二缓存器220,并确定读取结果,将所确定的读取结果输入校验子单元234;
延迟子单元233,用于获得目标像素点的视差值,并等待;直到当读取子模块232读取第二缓存器220,并确定读取结果后,将该目标像素点的视差值输入校验子单元234;
校验子单元234,用于获得第一读取子单元232输出的读取结果和延迟子单元233输出的目标像素点的视差值,当读取结果包含与目标像素点相应的第二像素点的视差值时,基于目标像素点的视差值、相应的第二像素点的视差值以及预设的视差门限,确定目标像素点是否为空洞像素点,以获得校验结果;当确定读取结果未包含视差值时,确定目标像素点为空洞像素点,以获得校验结果,根据校验结果将目标像素点标记为稳定像素点或空洞像素点。
可以理解的是,本发明实施例中,存在针对第一缓存器所存储的第一像素点进行计数的另一计数子单元,计数可以用fifo_cnt标识。当该另一计数子单元计数达到第一预设值时发送信号至第一读取子单元232,第一读取子单元确定第一缓存器210缓存的第一像素点数量达到第一预设值。
如图2B所示,计数子单元231对第一读取子单元232所读取的目标像素点的个数进行计数,可以用proc_cnt;第一读取子单元232在获得目标像素点的视差值dl*后,可以基于预先接收的所述第一视差估计图像中最小的视差值dmin,得到此时目标像素点的实际视差值dl=dl*+dmin,并将该目标像素点计算所得的视差值dl输入延迟子单元233,进行等待,直到当读取子模块232读取第二缓存器220,并确定读取结果后,将该目标像素点的视差值dl输入校验子单元230。其中,图2B中,“addr_gen”可以标识第一读取子单元232,“delay”可以标识延迟子单元233,“proc_cnt”可以标识计数子单元231。
如图2B所示,该第一读取子单元232基于该目标像素点的视差值dl以及计数子单元231的当前计数值proc_cnt,计算得到读取地址addr,在一种实现方式中,上述addr=proc_cnt-dl。第一读取子单元232基于上述addr从第二缓存器220中进行读取,确定读取结果,将所确定的读取结果输入校验子单元230。其中,图2中,“cross_check”可以标识校验子单元230。
校验子单元230,基于目标像素点的视差值dl、以及读取结果,对目标像素点进行左右一致性校验,具体的,当addr=proc_cnt-dl<0,或addr=proc_cnt-dl>=width时,上述读取结果未包含视差值,此时,确定目标像素点为空洞像素点,当addr=proc_cnt-dl>0,且,addr=proc_cnt-dl<width时,上述读取结果包含与目标像素点相应的第二像素点的视差值,此时,可以基于目标像素点的视差值dl、相应的第二像素点的视差值dr以及预设的视差门限dispTolerance,确定目标像素点是否为空洞像素点,其中,当dl*与dr之差的绝对值大于上述预设的视差门限dispTolerance时,确定目标像素点为空洞像素点,反之,确定目标像素点为稳定像素点。其中,上述width可以表示第一视差估计图像的图像宽度。
可以基于上述确定目标像素点为空洞像素点,或稳定像素点的结果,对上述目标像素点赋予新的视差值,得到标识后的目标像素点的视差值,具体可以通过公式(1)标识:
其中,上述disp标识标识后的目标像素点的视差值,上述abs(dl*-dr)标识dl*与dr之差的绝对值。
如图3所示,为上述校验模块110的第一缓存器210循环接收第一视差估计图像的第一像素点和第二缓存器220接收第二视差估计图像的第二像素点的一种示意图。如图3中第一张图所示,为新的图像帧(第一视差估计图像以及第二视差估计图像)开始输入时的状态的示意图,上述第一预设值被设置为6,当第一缓存器210所接收的第一像素点的数量达到6个,即第一缓存器210所存储的第一像素点的数量达到abs(dmin),即第一视差估计图像中数值最小的视差值的绝对值时,开启处理流程,之后上述第一缓存器210非空即被读取。第一读取子单元232从第一缓存器210中读取最先接收的第一像素点,作为目标像素点;并基于目标像素点的视差值、abs(dmin)以及计数子单元231的当前计数值,确定出目标像素点对应第二缓存器中的第四个第二像素点。
如图3中第二张图所示,为该新的图像帧的第一视差估计图像的一行中的第一像素点的中间流程处理示意图;上述第一缓存器210中每被读取出一第一像素点后,接收一新的第一像素点,其中所存储的第一像素点的数量保持在第一预设值。上述第二缓存器220可以存储预设的行像素点总数,即上述第一视差估计图像中一行的像素点的总数个第二像素点。
如图3中第三张图所示,为处理第一视差估计图像中某一行中的最后一个第一像素点的处理示意图;此时,第二缓存器220中缓存有第二视差估计图像中与该当前处理的上述最后一个第一像素点同行的第二像素点,以及第二视差估计图像中为该当前处理的上述最后一个第一像素点的下一行的第二像素点。可以理解的是,当基于上述最后一个第一像素点的视差值以及位置,所确定出的读取地址,已超出第二视差估计图像的图像宽度时,可以基于所确定出的读取地址,在上述第二缓存器220中左移该最后一个第一像素点的视差值个数个地址,当该左移所得到的地址仍超出第二视差估计图像的图像宽度时,将该最后一个第一像素点标记为空洞像素点。
在一种实现方式中,如图4A所示,上述的空洞填补模块120,可以包含:第三缓存器410和填补单元420;
第三缓存器410包含预设数量个寄存器,用于以先入先出方式接收目标像素点以及目标像素点对应的标记信息;当第三缓存器410的第二预设值个寄存器存储有目标像素点时,将当前第三缓存器410中存储的各个目标像素点以及各个目标像素点对应的标记信息输出给填补单元420;
填补单元420,用于根据第三缓存器410中被标记为稳定像素点的目标像素点,对第三缓存器410中被标记为空洞像素点的目标像素点进行填补;按先入先出方式将各个目标像素点输出至融合模块140;其中,第二预设值等于:二分之一倍的预设数量与一的和。
在一种情况中,上述预设数量可以通过2L+1标识,其中,上述L为正整数,为根据经验值所确定的第一像素点的水平支持区域的最大臂长。上述第二预设值可以标识为L+1。
在一种情况中,上述第三缓存器410所包含的预设数量个寄存器,可以为移位寄存器。上述第三缓存器410移位寄存目标像素点以及目标像素点对应的标记信息,当第三缓存器410的第二预设值个寄存器存储目标像素点时,开启处理流程,将当前第三缓存器410中存储的各个目标像素点以及各个目标像素点对应的标记信息输出给填补单元420。
填补单元420基于当前所接收的所有的目标像素点以及目标像素点对应的标记信息,利用其中被标记为稳定像素点的目标像素点,其中被标记为空洞像素点的目标像素点进行填补。
如图4B所示,为本发明实施例中上述填补单元对被标记为空洞像素点的目标像素点的填补原理,首先在水平方向上,确定目标像素点所对应的支持区域中每一行中视差值数量最多的视差值,进行水平投票;并进一步确定垂直方向上的确定目标像素点所对应的支持区域中每一行中视差值数量最多的视差值,进而得到目标像素点所对应的支持区域中,视差值数量最多的视差值,进行垂直投票,利用上述水平投票和上述垂直投票,确定出被标记为空洞像素点的目标像素点的支持区域内视差值数量最多的视差值,利用所确定出的视差值对该目标像素点进行填补。在一种实现方式中,上述利用所确定出的视差值为支持区域内视差值数量最多的被标记为稳定像素点的像素点的视差值。
在一种实现方式中,如图5所示,上述的填补单元420,可以包含:行像素点处理子单元421、第七缓存器422、列像素点处理子单元423、填补判决子单元424和填补子单元425;
行像素点处理子单元421,用于获得第三缓存器410所存储的目标像素点的视差值以及标记信息,并基于所获得的目标像素点的视差值以及每一目标像素点对应的标记信息,确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数;确定每一目标像素点对应的水平支持区域内所对应视差值数量最多的视差值的个数,作为第二个数;以及确定每一目标像素点对应的水平支持区域内所对应视差值数量最多的视差值,作为第一初选视差值;将每一目标像素点的视差值、标记信息以及所确定的每一目标像素点对应的第一个数、第二个数和第一初选视差值输入第七缓存器422;
第七缓存器422,包含预设数量个行缓存器,用于接收行像素点处理子单元421输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;当第七缓存器422的第二预设值个行缓存器缓存目标像素点的视差值、标记信息以及目标像素点对应的第一个数、第二个数和第一初选视差值时,将当前第七缓存器422中该第二预设值个行缓存器中所存储的目标像素点的视差值、标记信息以及该目标像素点对应的第一个数、第二个数和第一初选视差值,当前第七缓存器422中所存储的与该第二预设值个行缓存器所存储的目标像素点同列的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值,输入列像素点处理子单元423;
列像素点处理子单元423,用于获得第七缓存器422所输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;基于所获得的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值,确定每一目标像素点对应的垂直支持区域内被标记为稳定像素点的目标像素点的个数,作为第三个数;确定每一目标像素点对应的垂直支持区域内所对应视差值数量最多的视差值的个数,作为第四个数;基于每一目标像素点对应的第一个数和第三个数,确定每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数,作为第一总数;并基于每一目标像素点对应的第二个数和第四个数,确定每一目标像素点对应的支持区域内所对应视差值数量最多的视差值的总数,作为第二总数,并确定每一目标像素点对应的支持区域内所对应视差值数量最多的视差值,作为待填补视差值,将每一目标像素点对应的第一总数以及第二总数输入填补判决子单元424;并将每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值输入填补子单元425;
填补判决子单元424,用于获得列像素点处理子单元423输出的每一目标像素点对应的第一总数以及第二总数,基于所获得的每一目标像素点对应的第一总数以及第二总数,判决每一目标像素点是否满足进行填补的填补条件,获得每一目标像素点对应的填补判决结果,将每一目标像素点对应的填补判决结果输入填补子单元425;
填补子单元425,包含用于获得列像素点处理子单元423输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值,并获得填补判决子单元424输出的每一目标像素点对应的填补判决结果;基于每一目标像素点对应的填补判决结果以及标记信息,确定是否填补每一目标像素点,当确定填补时,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当确定不填补时,保留该目标像素点的视差值,并输出该视差值。
本发明实施例中,上述每一目标像素点对应的标记信息,可以标识该目标像素点为空洞像素点或稳定像素点。上述行像素点处理子单元421获得第三缓存器410所存储的目标像素点的视差值以及标记信息后,基于上述目标像素点的视差值以及标记信息,可以确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数,并且可以通过上述目标像素点的视差值,确定出每一目标像素点对应的水平支持区域内所对应视差值数量最多的视差值的个数,作为第二个数,并确定出每一目标像素点对应的所对应视差值数量最多的视差值,作为第一初选视差值;后续的,述行像素点处理子单元421将所确定的每一目标像素点的视差值、标记信息以及所确定的每一目标像素点对应的第一个数、第二个数和第一初选视差值输入第七缓存器422。同时,继续获得第三缓存器410所存储的目标像素点的视差值以及标记信息,针对新获得的目标像素点的视差值以及标记信息,进行上述处理流程。形成流水形式的处理流程,以提高对整个第一视差估计图像中第一像素点的处理速度及处理效率。
第七缓存器422包含预设数量个行缓存器,其中,上述行缓存器的深度可以由视差估计图像的图像宽度确定。第七缓存器422接收行像素点处理子单元421输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值,并对上述每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值进行移位寄存。当第七缓存器422的第二预设值个行缓存器缓存目标像素点的视差值、标记信息以及目标像素点对应的第一个数、第二个数和第一初选视差值时,将该第二预设值个行缓存器缓存目标像素点的视差值、标记信息以及目标像素点对应的第一个数、第二个数和第一初选视差值以及当前第七缓存器422中所存储的与该第二预设值个行缓存器所存储的目标像素点同列的每一目标像素点的视差值、标记信息以及对应的第一个数、第二个数和第一初选视差值,输入列像素点处理子单元423。
其中,上述当前第七缓存器422中所存储的与该第二预设值个行缓存器所存储的目标像素点同列的每一目标像素点可以为:每一行缓存器中所缓存的第一个目标像素点。
后续的,列像素点处理子单元423获得第七缓存器422所输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值,并基于所获得的信息,确定每一目标像素点对应的第一总数、第二总数以及待填补视差值,并将每一目标像素点对应的第一总数以及第二总数输入填补判决子单元424,将每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值输入填补子单元425。同时列像素点处理子单元423获得第七缓存器422所输出的新的一组每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值,并进行相应处理流程。形成流水形式的处理流程,以提高对整个第一视差估计图像中第一像素点的处理速度及处理效率。
填补判决子单元424,针对每一目标像素点,判决每一目标像素点是否满足进行填补的填补条件,获得每一目标像素点对应的填补判决结果,将每一目标像素点对应的填补判决结果输入填补子单元425。上述填补子单元425基于上述填补判决子单元424输出的判决结果、列像素点处理子单元423输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值,确定是否填补每一目标像素点。当确定填补时,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当确定不填补时,保留该目标像素点的视差值,并输出该视差值。
在一种实现方式中,如图6A所示,行像素点处理子单元421,包含第一比较器阵列4211、水平支持窗口像素点确定子模块4212、第一加法树子模块4213、第二比较器阵列4214、第一移位寄存器4215、第二移位寄存器4216和第八缓存器4217;
第三缓存器410,还用于获得每一目标像素点,在预设的第一时长后,以先进先出的原则,将每一目标像素点输入第八缓存器4217;
第一比较器阵列4211,用于获得第三缓存器410所存储的目标像素点的视差值以及标记信息,对所获得每一目标像素点的视差值进行两两比较,确定每一目标像素点对应的比较结果,并将每一目标像素点对应的比较结果,输入水平支持窗口像素点确定子模块4212;其中,每一目标像素点对应的比较结果包含:该目标像素点相应于其他目标像素点中每一目标像素点的比较结果;当目标像素点的视差值与其他目标像素点的视差值相同时,该目标像素点相应于该其他目标像素点的比较结果包含第一预设标记,当目标像素点的视差值与其他目标像素点的视差值不同时,该目标像素点相应于该其他目标像素点的比较结果包含第二预设标记;
水平支持窗口像素点确定子模块4212,用于接收第一比较器阵列4211输入的每一目标像素点对应的比较结果以及标记信息,并获得每一目标像素点对应的水平支持区域的水平支持区域信号;基于所接收的水平支持区域信号,对每一目标像素点对应的比较结果进行调整,其中,当目标像素点对应的水平支持区域信号为第一水平支持信号时,保持该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果不变,当目标像素点对应的水平支持窗口信号为第二水平支持信号时,将该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果设置为第二预设标记;将每一目标像素点对应的处理后的比较结果以及标记信息,输入第一加法树子模块4213;
第一加法树子模块4213,用于获得每一目标像素点对应的处理后的比较结果以及标记信息,对每一目标像素点对应的处理后的比较结果中的第一预设标记进行计数,确定每一目标像素点对应的第一计数值,并基于每一目标像素点对应的标记信息,确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数,将每一目标像素点对应的第一计数值以及标记信息输入第二比较器阵列4214;并将每一目标像素点对应的第一个数输入第一移位寄存器4215;
第二比较器阵列4214,用于获得每一目标像素点对应的第一计数值以及标记信息,对所获得的第一计数值进行比较,确定每一目标像素点对应的数值最大的第一计数值,将每一目标像素点对应的数值最大的第一计数值加一所得结果,作为水平支持区域对应的目标像素点对应的第二个数;并基于每一目标像素点对应的最大的第一计数值,确定每一目标像素点对应的第一寄存器地址;将所确定的每一目标像素点对应的第一寄存器地址以及每一目标像素点对应的第二个数输入第八缓存器4217,以得到每一目标像素点对应的寄存器地址对应的位置的视差值,作为每一目标像素点对应的第一初选视差值;同时,第一移位寄存器4215将每一目标像素点对应的第一个数输入第二移位寄存器4216;
第八缓存器4217,包含预设数量个寄存器;用于将每一目标像素点的视差值、标记信息以及每一目标像素点对应的第二个数和第一初选视差值输入第七缓存器422,并且,第二移位寄存器4216将每一目标像素点对应的第一个数输入第七缓存器422。
上述第八缓存器4217所包含的预设数量个寄存器为移位寄存器。
其中,上述预设的第一时长为根据经验值设定的,用于保证当第二比较器阵列4214确定出上述每一目标像素点对应的第一寄存器地址时,上述第八缓存器4217所缓存的目标像素点与上述第三缓存器410输入上述第一比较器阵列4211,以开启计算得到上述每一目标像素点对应的第一寄存器地址时的各目标像素点相同。
举例而言,当上述预设数量为5时,即上述第三缓存器包含5个寄存器,分别为寄存器0、寄存器1、寄存器2、寄存器3和寄存器4;
第三缓存器获得目标像素点0,目标像素点0存储入寄存器4;当获得目标像素点1时,上述目标像素点0存储入寄存器3,上述目标像素点1存储入寄存器4;当获得目标像素点2时,上述目标像素点0存储入寄存器2,上述目标像素点1存储入寄存器3,上述目标像素点2存储入寄存器4;当上述寄存器2存储有目标像素点时,开启处理流程,第三缓存器将上述目标像素点0、目标像素点1和目标像素点2输入第一比较器阵列4211,即将目标像素点0、目标像素点1和目标像素点2分别对应的视差值以及标记信息输入第一比较器阵列4211;同时,可以获得目标像素点3,并移位寄存上述目标像素点0、目标像素点1、目标像素点2和目标像素点3;其中,上述的目标像素点0~3,均标识对应目标像素点的视差值以及标记信息;
第一比较器阵列4211,对上述目标像素点0、目标像素点1和目标像素点2的视差值进行两两比较;针对目标像素点0记录,相应于目标像素点1和目标像素点2的比较结果;针对目标像素点1记录,相应于目标像素点0和目标像素点2的比较结果;针对目标像素点2记录,相应于目标像素点0和目标像素点1的比较结果;其中,当相比较的两个目标像素点的视差值相同时,标记第一预设标记“1”,当相比较的两个目标像素点的视差值不同时,标记第二预设标记“0”;将上述目标像素点0、目标像素点1和目标像素点2分别对应的标记信息和比较结果输入水平支持窗口像素点确定子模块4212;同时,获得第三缓存器中存储的上述目标像素点0、目标像素点1、目标像素点2和目标像素点3,并进行相应处理;
水平支持窗口像素点确定子模块4212,基于上述目标像素点0、目标像素点1和目标像素点2分别对应的标记信息,以及所接收的水平支持区域信号,对每一目标像素点对应的比较结果进行调整,当目标像素点对应的水平支持区域信号为第一水平支持信号时,保持该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果不变,当目标像素点对应的水平支持窗口信号为第二水平支持信号时,将该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果设置为第二预设标记;当该水平支持区域对应的目标像素点为目标像素点0时,当目标像素点1在目标像素点0对应的水平支持区域内时,目标像素点1的比较结果不变,且目标像素点1相对应目标像素点0的比较结果不变,当目标像素点2不在目标像素点0对应的水平支持区域内时,当目标像素点2相对应目标像素点0的比较结果包含第一预设标记时,将该第一预设标记设置为第二预设标记;并将上述目标像素点0、目标像素点1和目标像素点2分别对应的标记信息以及处理后的比较结果,输入第一加法树子模块4213;同时,获得第一比较器阵列4211所确定出的上述目标像素点0、目标像素点1、目标像素点2和目标像素点3分别对应的比较结果以及标记信息,并进行相应处理;
第一加法树子模块4213,基于目标像素点0、目标像素点1和目标像素点2分别对应的标记信息,确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数;当该水平支持区域对应的目标像素点为目标像素点0时,上述第一个数为目标像素点0对应的水平支持区域内被标记为稳定像素点的目标像素点的个数;对目标像素点0、目标像素点1和目标像素点2分别对应的处理后的比较结果中的第一预设标记进行计数;获得目标像素点0、目标像素点1和目标像素点2分别对应的第一计数值;将目标像素点0、目标像素点1和目标像素点2分别对应的第一计数值以及标记信息输入第二比较器阵列4214;并将每一目标像素点对应的第一个数输入第一移位寄存器4215;同时,第一加法树子模块4213获得水平支持窗口像素点确定子模块4212所确定出的上述目标像素点0、目标像素点1、目标像素点2和目标像素点3分别对应的处理后的比较结果以及标记信息,并进行相应处理;
第二比较器阵列4214,基于上述目标像素点0、目标像素点1和目标像素点2分别对应的第一计数值以及标记信息,确定出对应的数值最大的第一计数值,;将上述数值最大的第一计数值加一所得结果,作为水平支持区域对应的目标像素点对应的第二个数;当水平支持区域对应的目标像素点为目标像素点0时,上述第二个数为目标像素点0对应的所对应视差值数量最大的视差值的个数;其中,上述数值最大的第一计数值需为被标记为稳定像素点对应的计数值;基于目标像素点0对应的最大的第一计数值,确定目标像素点0对应的第一寄存器地址;将所确定的目标像素点0对应的第一寄存器地址以及目标像素点0对应的第二个数输入第八缓存器4217,以得到目标像素点0对应的寄存器地址对应的位置的视差值,作为目标像素点0对应的第一初选视差值;同时,第一移位寄存器4215将目标像素点0对应的第一个数输入第二移位寄存器4216;同时,第二比较器阵列4214获得第一加法树子模块4213所确定出的上述目标像素点0、目标像素点1、目标像素点2和目标像素点3分别对应的第一计数值以及标记信息,并进行相应处理;
第八缓存器4217,包含预设数量个寄存器;其中,上述第八缓存器4217包含的预设数量个寄存器为移位寄存器;将每一目标像素点的视差值、标记信息以及每一目标像素点对应的第二个数和第一初选视差值输入第七缓存器422,并且,第二移位寄存器4216将每一目标像素点对应的第一个数输入第七缓存器422。
如图6B所示,为本发明实施例所提供的第三缓存器410和填补单元420中的行像素点处理子单元421之间的结构示意图。其中,图6B中所示的第三缓存器410中包含2L+1个移位寄存器,每一个移位寄存器可以用“Reg”标识;每一移位寄存器与第一比较器阵列4211连接;第一比较器阵列4211与水平支持窗口像素点确定子模块4212连接;后续的,水平支持窗口像素点确定子模块4212与第一加法树子模块4213连接,在一种情况中,图6B中所示的第一加法树子模块4213可以存在(2L+1)(2L-1)个;第一加法树子模块4213与第二比较器阵列4214连接;图6B中最后一行所示的第八缓存器4217中可以包含2L+1个移位寄存器,每一个移位寄存器可以用“Reg”标识;图6B中右侧所示分别为第一移位寄存器4215、第二移位寄存器4216,其中,上述第一移位寄存器4215和第二移位寄存器4216分别用“Reg”标识,其中,第一移位寄存器4215在第二移位寄存器4216之上。图6B中所示的输入为第一视差估计图像中进行左右一致性校验后的目标像素点的视差值以及标记信息。图6B中水平支持窗口像素点确定子模块4212左侧标识输入的箭头,可以标识输入水平支持区域信号。图6B中第八缓存器的输出为:目标像素点的视差值、该目标像素点对应的第一初选视差值、标记信息和第二个数,以及目标像素点对应的第一个数。图6B中第二移位寄存器4216的输出为目标像素点对应的第一个数。
在一种实现方式中,如图7A所示,列像素点处理子单元423,包含第三比较器阵列4231、垂直支持窗口像素点确定子模块4232、第二加法树子模块4233、第四比较器阵列4234、第九缓存器4235;
第七缓存器422,还用于获得每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;在预设的第二时长后,以先进先出方式将所获得的目标像素点的视差值输入第九缓存器4235;
第三比较器阵列4231,用于获得第七缓存器422所输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;对所获得每一目标像素点的视差值进行两两比较,确定每一目标像素点对应的比较结果,并将每一目标像素点对应的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值输入垂直支持窗口像素点确定子模块4232;其中,每一目标像素点对应的比较结果包含:该目标像素点相应于其他目标像素点中每一目标像素点的比较结果;当目标像素点的视差值与其他目标像素点的视差值相同时,该目标像素点相应于该其他目标像素点的比较结果包含第一预设标记,当目标像素点的视差值与其他目标像素点的视差值不同时,该目标像素点相应于该其他目标像素点的比较结果包含第二预设标记;
垂直支持窗口像素点确定子模块4232,用于获得第三比较器阵列4231输入的每一目标像素点对应的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值,并获得每一目标像素点对应的垂直支持区域的垂直支持区域信号;基于所接收的垂直支持区域信号,对每一目标像素点对应的比较结果进行调整,其中,当目标像素点对应的垂直支持区域信号为第一垂直支持信号时,保持该目标像素点的比较结果中,相对于该垂直支持区域对应的目标像素点的比较结果不变,当目标像素点对应的垂直支持窗口信号为第二垂直支持信号时,将该目标像素点的比较结果中,相对于垂直支持区域目标像素点的比较结果设置为第二预设标记;将每一目标像素点对应的处理后的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值输入第二加法树子模块4233;
第二加法树子模块4233,用于获得每一目标像素点对应的处理后的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值;对每一目标像素点对应的处理后的比较结果中的第一预设标记进行计数,确定每一目标像素点对应的第二计数值;基于每一目标像素点对应的标记信息,确定每一目标像素点对应的垂直支持区域内被标记为稳定像素点的目标像素点的个数,作为第三个数;基于每一目标像素点对应的第一个数和第三个数,确定每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数,作为第一总数;将每一目标像素点对应的第二计数值、每一目标像素点对应的标记信息、第二个数和第一初选视差值输入第二比较器阵列4234;并将每一目标像素点对应的第一总数输入填补判决子单元424;
第四比较器阵列4234,接收第二加法树子模块4233输出的每一目标像素点对应的第二计数值、每一目标像素点对应的标记信息、第二个数和第一初选视差值;对每一目标像素点对应的第二计数值进行比较,获得每一目标像素点对应的数值最大的第二计数值,将每一目标像素点对应的数值最大的第二计数值加一所得结果,作为该对应的第四个数;基于每一目标像素点对应的第二个数和第四个数,确定该目标像素点对应的第二总数;将每一目标像素点对应的第二总数输入填补判决子单元424;
基于每一目标像素点对应的第二总数,确定每一目标像素点对应的第二寄存器地址;将所确定的每一目标像素点对应的第二寄存器地址、每一目标像素点对应的标记信息、第二总数和初选像素值输入第九缓存器4235;
第九缓存器4235,包含预设数量个寄存器;用于读取所确定的每一目标像素点对应的第二寄存器地址对应的位置的视差值,作为该目标像素点对应的第二初选视差值,基于每一目标像素点对应的第一初选视差值和第二初选视差值,确定每一目标像素点对应的待填补视差值;将每一目标像素点待填补视差值、每一目标像素点的视差值以及每一目标像素点对应的标记信息输入填补子单元425。
其中,上述预设的第二时长为根据经验值设定的,用于保证当第四比较器阵列4214确定出上述每一目标像素点对应的第二寄存器地址时,上述第九缓存器4235所缓存的目标像素点与上述第七缓存器410输入第三比较器阵列4231,以开启获得上述每一目标像素点对应的第二寄存器地址时的各目标像素点相同。
上述第三比较器阵列4231对目标像素点的处理流程与上述第一比较器阵列4211大致相同,在此不再赘述。
上述垂直支持窗口像素点确定子模块4232,基于所接收的每一目标像素点对应的垂直支持区域的垂直支持区域信号对每一目标像素点的处理流程,与上述水平支持窗口像素点确定子模块4212基于所接收的每一目标像素点对应的水平支持区域的水平支持区域信号对每一目标像素点的处理流程大致相同,在此不再赘述。
上述第二加法树子模块4233确定每一标像素点对应的第二计数值的过程,与上述第一加法树子模块4213确定每一标像素点对应的第一计数值的过程,大致相同,上述第二加法树子模块4233确定每一目标像素点对应的第三个数的过程,与一加法树单元4213确定每一目标像素点对应的第一个数的过程大致相同,在此不再赘述。
另外,当上述第二加法树子模块4233确定每一目标像素点对应的第三个数后,还需基于上述每一目标像素点对应的第三个数和第一个数,确定每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数,作为第一总数;在一种情况中,可以将每一目标像素点对应的第三个数和第一个数之和,作为每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数。并将所确定的每一目标像素点对应的第一总数输入填补判决子单元424;将每一目标像素点对应的第二计数值、每一目标像素点对应的标记信息、第二个数和第一初选视差值输入第四比较器阵列4234。
第四比较器阵列4234确定每一标像素点对应的第四个数的过程,与第二比较器阵列4214确定每一标像素点对应的第二个数的过程大致相同,在此不再赘述。
另外,当第四比较器阵列4234确定每一标像素点对应的第四个数后,还需基于每一目标像素点对应的第二个数和第四个数,确定该目标像素点对应的第二总数;将每一目标像素点对应的第二总数输入填补判决子单元424;基于每一目标像素点对应的第二总数,确定每一目标像素点对应的第二寄存器地址;将所确定的每一目标像素点对应的第二寄存器地址、每一目标像素点对应的标记信息、第二总数和初选像素值输入第九缓存器4235。
第九缓存器4235,包含预设数量个寄存器;其所包含的预设数量个寄存器均为移位寄存器;读取所确定的每一目标像素点对应的第二寄存器地址对应的位置的视差值,作为该目标像素点对应的第二初选视差值,基于每一目标像素点对应的第一初选视差值和第二初选视差值,确定每一目标像素点对应的待填补视差值;将每一目标像素点待填补视差值、每一目标像素点的视差值以及每一目标像素点对应的标记信息输入填补子单元。其中可以是:当上述第一初选视差值对应的个数多于上述第二初选视差值对应的个数,将上述第一初选视差值作为待填补视差值,反之,将上述第二初选视差值作为待填补视差值。
如图7A所示,填补判决子单元424,包含第一比较子模块4241、第三移位寄存器4242、填补判决子模块4243;
第一比较子模块4241,用于获得第二比较器阵列4234输出的每一目标像素点对应的第一总数,并获得预设的第一门限值;将每一目标像素点对应的第一总数与预设的第一门限值进行比较,获得每一目标像素点对应的比较结果,将所获得的每一目标像素点对应的比较结果输入填补判决子模块4243;
其中,上述比较结果包含表征上述每一目标像素点对应的第一总数与预设的第一门限值的大小的信息,
第三移位寄存器4242,用于获得第二比较器阵列4234输出的每一目标像素点对应的第一总数,并等待,当第一比较子模块4241将所获得的每一目标像素点对应的比较结果输入填补判决子模块4243,将每一目标像素点对应的第一总数输入填补判决子模块4243;
填补判决子模块4243,用于获得第一比较子模块4241输出的每一目标像素点对应的比较结果,以及第三移位寄存器4242输出的每一目标像素点对应的第一总数,以及第二比较器阵列输出的每一目标像素点对应的第二总数;获得预设的第二门限值;基于预设的第二门限值、比较结果、每一目标像素点对应的第一总数、第二总数以及标记信息,判决每一目标像素点是否满足进行填补的填补条件,获得每一目标像素点对应的填补判决结果;当第九缓存器4235将所确定的每一目标像素点对应的待填补视差值、标记信息以及每一目标像素点的视差值输入填补子单元425时,将所确定的每一目标像素点对应的填补判决结果输入填补子单元425。
在一种实现方式中,上述预设的第一门限值可以用“votingRatioThreshold”标识,简写为TS,上述预设的第二门限值可以用“votingThreshold”标识,简写为TH。当第一总数大于上述预设的第一门限值,且上述第二总数与上述第一总数的比值大于上述预设的第二门限值时,可以判决所对应的目标像素点满足进行填补的填补条件,所获得的填补判决结果为可填补。其他情况,均判决所对应的目标像素点不满足进行填补的填补条件,所获得的填补判决结果为不可填补。
如图7A所示,填补子单元425,用于获得第九缓存器4235输出的所确定的每一目标像素点对应的待填补视差值、标记信息以及每一目标像素点的视差值,填补判决子模块4243所输出的所确定的每一目标像素点对应的填补判决结果;基于每一目标像素点对应的填补判决结果以及标记信息,确定是否对每一目标像素点进行填补;当确定填补时,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当确定不填补时,保留该目标像素点的视差值,并输出该视差值。
本发明实施例中,上述填补子单元425,基于每一目标像素点对应的填补判决结果以及标记信息,确定是否对每一目标像素点进行填补时,可以是,判断每一目标像素点对应的填补判决结果是否为可填补,且判断每一目标像素点对应的标记信息是否为空洞像素点;当上述判断结果均为是时,确定填补,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当上述判断结果存在至少一个为否时,确定不填补,保留所对应目标像素点的视差值,并输出该视差值。
如图7B所示,为本发明实施例所提供的第七缓存器422和列像素点处理子单元423、填补判决子单元424和填补子单元425之间的结构示意图。其中,图7B中所示的“LineBufferx”标识第七缓存器422,其中,上述“x”可以取值为0~2L,即可以标识第七缓存器422中的2L+1个行缓存器。图7B中所示的第三比较器阵列4231与垂直支持窗口像素点确定子模块4232连接;后续的,垂直支持窗口像素点确定子模块4232与第二加法树子模块4233连接,在一种情况中,上述第二加法树子模块4233可以存在(2L+1)(2L-1)个;第二加法树子模块4233与第四比较器阵列4234连接;图7B中所示的第九缓存器4235包括2L+1个移位寄存器,其中,每一个移位寄存器可以用“Reg”标识。图7B中所示的输入为目标像素点的视差值,以及该目标像素点对应的第一初选视差值、标记信息、第二个数和第一个数。图7B中所示的垂直支持窗口像素点确定子模块4232的左侧标识输入的箭头,可以标识输入垂直支持区域信号。图7B中所示的“Addr”可以标识从第四比较器阵列4234所输出的每一目标像素点对应的第二寄存器地址。图7B中所示的“Counter(addr)”可以标识每一目标像素点对应的第二总数。图7B中所示的第二加法树子模块4233的左侧的输出为每一目标像素点对应的第一总数,图7B中所示的“d”可以标识每一目标像素点对应的待填补视差值,所示的“disp”可以标识每一目标像素点的视差值。图7B中左侧所示的为填补判决子单元424,填补判决子单元424包括“MUL”、“Reg”以及填补判决子模块4243;其中,“MUL”可以标识第一比较子模块4241;“Reg”可以标识第三移位寄存器4242;TS可以标识输入“MUL”的第一门限值;TH可以标识输入填补判决子模块4243的第二门限值。图7B中最后一行所示的“A”可以标识填补子单元425。图7B中所示的输出可以标识填补子单元425所输出的每一目标像素点的视差值。
在一种实现方式中,上述亚像素求精模块130,包含:第四缓存器和计算单元;
第四缓存器,用于接收第一视差估计图像的第一像素点;
计算单元,用于按预设的亚像素求精算法,对第四缓存器中的每个第一像素点进行亚像素求精处理后,将处理后的第一像素点作为目标像素点逐一输出至融合模块140。
在一种实现方式中,亚像素求精算法,可以为:
d*=dl-diff
其中,
上述d*标识目标像素点进行亚像素求精后所得的视差值;上述dl标识目标像素点的视差值,上述C(p,d)标识目标像素点对应的预设视差等级下的代价值,上述C(p,d+)标识目标像素点对应的预设视差等级的前一个预设视差等级下的代价值,上述C(p,d-)标识目标像素点对应的预设视差等级的后一个预设视差等级下的代价值。
在一种实现方式中,上述融合模块140,可以包含:第五缓存器、第六缓存器和融合单元;
第五缓存器,用于接收空洞填补模块120输出的目标像素点;
第六缓存器,用于接收亚像素求精模块130输出的目标像素点;
融合单元,用于将第五缓存器中的目标像素点与第六缓存器中相对应的目标像素点进行融合处理,将处理后的目标像素点逐一输出。
在一种实现方式中,上述第五缓存器和第六缓存器可以为任意类型的缓存器,例如RAM、移位寄存器等。
在一种实现方式中,上述融合单元140,具体用于;
确定第五缓存器中的目标像素点以及第六缓存器中相对应的目标像素点,是否满足预设替换条件,当确定满足预设替换条件时,将第五缓存器中的目标像素点的视差值,替换为第六缓存器中相对应的目标像素点的视差值。
在一种实现方式中,当目标像素点对应的diff的绝对值小于1时,则可以表明满足预设替换条件,此时,可以将第五缓存器中的目标像素点的视差值,替换为第六缓存器中相对应的目标像素点的视差值;否则,当目标像素点对应的diff的绝对值不小于1时,可以表明不满足预设替换条件,此时,不做替换,保留第五缓存器中的目标像素点的视差值。
在一种实现方式中,上述空洞填补模块120可能不能将所有的被标记为空洞像素点的目标像素点进行填补完成,为了更好的实现对第一视差估计图像中每一第一像素点进行处理,如图8所示,所述装置还可以包括差值填补模块;
差值填补模块810,包含用于缓存融合模块140输出的像素点的第十缓存器、空洞标定单元、归一化单元和差值填补单元;
空洞标定单元,用于基于预设的中间视差值算法,以先进先出方式,确定第十缓存器中的各个目标像素点对应的中间视差值;并基于每一目标像素点对应的中间视差值,对每一目标像素点进行标定,获得每一目标像素点对应的标定结果;将每一目标像素点对应的中间视差值以及标定结果输入归一化单元;
归一化单元,用于获得每一目标像素点对应的中间视差值以及标定结果,基于预设的归一化公式、每一目标像素点对应的中间视差值以及标定结果,确定每一目标像素点的归一化后的视差值,作为每一目标像素点对应的目标视差值,将每一目标像素点对应的目标视差值以及标定结果输入差值填补单元814;
差值填补单元,用于基于每一目标像素点对应的标定结果,基于被标记为稳定像素点的目标像素点的目标视差值,对被标记为空洞像素点的目标像素点的目标视差值进行填补,并输出。
在一种实现方式中,上述预设的中间视差值算法,可以为:
disp_norm=256/(dmax-dmin)*(disp-dmin)
其中,上述dmin标识第三预设值,上述dmax标识第四预设值,上述disp标识融合模块140输出的每一目标像素点的视差值;上述disp_norm标识融合模块140输出的每一目标像素点对应的中间视差值;
其中,上述第三预设值为第一视差估计图像中数值最小的视差值,上述第四预设值为第一视差估计图像中数值最大的视差值。
空洞标定单元,可以包括第一标定子单元和第二标定子单元;
第一标定子单元,用于当确定目标像素点对应的中间视差值大于第一视差阈值或小于第二视差阈值时,对该目标像素点标记第一标记,以获得标定结果;其中,所述第一视差阈值大于所述第二视差阈值;
第二标定子单元,用于当确定目标像素点对应的中间视差值大于等于第二视差阈值,且小于等于第一视差阈值时,对该目标像素点标记第二标记,以获得标定结果。
上述第一视差阈值与上述第二视差阈值可以为预先设置的阈值,在一种实现方式中,第一视差阈值可以取为200,上述第二视差阈值可以取为16。上述第一标记可以为1,上述第二标记可以为0。具体的,标定结果可以用如下公式(2)标识:
其中,上述hole_mask标识目标像素点对应的标定结果。
在一种实现方式中,上述归一化单元,可以包含第一归一化子单元和第二归一化子单元;
第一归一化子单元,用于当目标像素点被标记为第一标记时,将该目标像素点的视差值设置为第一视差值,作为该目标像素点对应的目标视差值;
第二归一化子单元,用于当目标像素点被标记为第二标记时,基于预设的归一化公式、每一目标像素点的中间视差值,确定该目标像素点对应的目标视差值,其中,预设的归一化公式,可以为:
其中,上述depth标识目标像素点对应的目标视差值;上述minz_invert标识第五预设值,上述maxz_invert标识第六预设值,其中,上述第五预设值为第一视差估计图像对应的最近预设视差平面值的倒数,上述第六预设值为第一视差估计图像对应的最远预设视差平面值的倒数。
上述预设视差平面值为基于经验值针对每一预设视差等级所设定的值,上述最近预设视差平面值可以表征最大的预设视差等级所对应的值,上述最远预设视差平面值可以表征最小的预设视差等级所对应的值。
在一种实现方式中,上述第一视差值可以为0。
在一种实现方式中,如图9所示,上述差值填补单元,可以包含第一行缓存器910、第二读取子单元920、第一遍历子单元930、第二遍历子单元940、第二行缓存器950、第三行缓存器960、差值填补子单元970;
第一行缓存器910,用于获得每一目标像素点对应的目标视差值以及标定结果,并缓存;
第二读取子单元920,用于当第一行缓存器910所缓存目标视差值的个数达到预设的行像素点总数时,按与接收顺序相反的顺序,读取每一目标像素点对应的目标视差值以及标定结果,并输入第二遍历子单元940;
第一遍历子单元930,获得每一目标像素点对应的目标视差值以及标定结果,当基于每一目标像素点对应的标定结果,确定目标像素点为空洞像素点时,针对该被标定为空洞像素点的目标像素点,确定所遍历过的其所在行中的目标像素点中是否存在被标定为稳定像素点的目标像素点;当确定存在时,确定与该被标定为空洞像素点的目标像素点距离最近的、且被标定为稳定像素点的目标像素点,作为该被标定为空洞像素点的目标像素点的第一差值填补像素点,以及该第一差值填补像素点与该被标定为空洞像素点的目标像素点的距离,作为第一距离;并相应于该被标定为空洞像素点的目标像素点存储于第一行缓存器910的位置,将该被标定为空洞像素点的目标像素点的第一差值填补像素点的目标视差值,以及该第一距离作为确定结果,存储于第二行缓存器950;当确定不存在时,将表征不存在的预设信息作为确定结果,相应于该被标定为空洞像素点的目标像素点存储于第一行缓存器910的位置,存储于第二行缓存器950;
第二行缓存器950,用于缓存每一被标记为空洞像素点的目标像素点对应的确定结果;
第二遍历子单元940,用于获得所述第二读取子单元从所述第一行缓存器中读取出的每一目标像素点对应的目标视差值以及标定结果,确定目标像素点为空洞像素点时,针对被标定为空洞像素点的目标像素点,确定所遍历过的目标像素点中是否存在被标定为稳定像素点的目标像素点;当确定存在时,针对被标定为空洞像素点的目标像素点,确定所遍历过的与该被标定为空洞像素点的目标像素点距离最近的、且被标记为稳定像素点的目标像素点,作为被标定为空洞像素点的目标像素点的第二差值填补像素点;并确定该第二差值填补像素点与该被标定为空洞像素点的目标像素点的距离,作为第二距离;将所确定的第二差值填补像素点的目标视差值以及第二距离,输入差值填补子单元970;当确定不存在时,将表征不存在的预设信息作为确定结果,输入差值填补子单元970;
第二读取子单元920,还用于从所述第二行缓存器中读取被标定为空洞像素点的目标像素点对应的确定结果,输入所述差值填补子单元970;
差值填补子单元970,用于获得第二遍历子单元输出的确定结果,并获得第二读取子单元读取的确定结果,基于第二遍历子单元输出的确定结果和第二读取子单元读取的确定结果,对所对应的被标定为空洞像素点的目标像素点进行填补,得到填补后的目标像素点,将该填补后的目标像素点作为填补替换像素点输入第三行缓存器960;
第三行缓存器960,用于基于每一目标像素点在第一视差估计图像中的位置,缓存作为填补替换像素点的目标像素点。
本发明实施例中,上述归一化单元确定出每一目标像素点的目标视差值后,将上述每一目标像素点的目标视差值标定结果;输入第一行缓存器以及第一遍历子单元,上述第一行缓存器对所获得的每一目标像素点对应的目标视差值以及标定结果进行缓存;上述第一遍历子单元获得每一目标像素点对应的目标视差值以及标定结果,当基于每一目标像素点对应的标定结果,确定目标像素点为空洞像素点时,针对该被标定为空洞像素点的目标像素点,确定所遍历过的其所在行中是否存在被标定为稳定像素点的目标像素点,获得确定结果;后续的,第二遍历子单元获得每一目标像素点对应的目标视差值以及标定结果,并确定另一确定结果;上述差值填补子单元基于上述两个确定结果,对所对应的被标定为空洞像素点的目标像素点进行填补,得到填补后的目标像素点。
本发明实施例中,上述第三行缓存器可以存在两个,用于基于每一目标像素点在第一视差估计图像中的位置,缓存作为填补替换像素点的目标像素点。
在一种情况中,上述第一行缓存器的深度为基于第一视差估计图像的图像宽度设定的,其中,上述第一行缓存器的深度大于上述第一视差估计图像的图像宽度,差值可以用d0标识。上述d0可以通过第一行缓存器的属性以及上述空洞填补模块所包含的各子单元、子模块等的处理每一目标像素点的时延进行设定。当当前第一行缓存器的深度和/或第二行缓存器的深度不够存储目标像素点时,需要对上述第一行缓存器的深度和/或第二行缓存器的深度进行扩展。其中扩展方式相同,以对上述第一行缓存器的深度进行扩展为例说明。
在一种实现方式中,本发明实施例中所提的各个行缓存器可以由RAM(RandomAccess Memory,随机存取存储器)实现。在对第一行缓存器的深度进行扩展,即扩展RAM时,可以通过一个BRAM(BlockRAM)加一个分布式的RAM实现,如图10所示,当第二读取子单元读取上述第一行缓存器所扩展的RAM时,可以是通过所输入的地址的bit0~bit9,对BRAM进行寻址,读取得到BRAM所存储的数据,即目标像素点的目标像素值;通过所输入的地址的bit0~bit5对分布式的RAM进行寻址,读取得到分布式的RAM所存储的数据。进而通过所输入的地址最高位对所读取到的BRAM所存储的数据和分布式的RAM所存储的数据进行选通,从而得到上述第一行缓存器所扩展的RAM的数据,并进行输出。通过上述扩展方式以及读取方式可以节省RAM的硬件资源,更好的降低用于对视差估计图像进行处理的装置的成本。其中,BRAM的输出需要时钟控制。
如图11所示,为一种差值填补单元的结构示意图,其中,图10中所示的两个“scan_proc”可以分别标识第一遍历子单元、第二遍历子单元,图10中所示的“LineBuffer0”可以标识上述第一行缓存器,“LineBuffer1”可以标识上述第二行缓存器,“LineBuffer2”和“LineBuffer3”可以标识上述第三行缓存器;“addr_gen”可以标识上述第二读取子单元,“hole_fill”可以标识差值填补子单元。
如图12所示,为“scan_proc”的目标像素点的遍历原理的一种示意图。其中,第一遍历子单元和第二遍历子单元的遍历目标像素点的方向不同。第一遍历子单元为从基于第一视差估计图像的像素点左到右的方向遍历,针对每一行目标像素点依次进行遍历,以遍历一行像素点为例,作为当前行的目标像素点;依次遍历当前行每一目标像素点;基于每一目标像素点的标定信息,识别该目标像素点是否被标定为空洞像素点;当识别出为被标定为空洞像素点的目标像素点时,在第一行缓存器中对应该被标定为空洞像素点的目标像素点,记录当前的第一差值填补像素点的目标视差值以及位置;当识别出为被标定为稳定像素点的目标像素点时,将当前的第一差值填补像素点的目标视差值,更新为该被标定为稳定像素点的目标像素点的目标视差值,并将当前的第一差值填补像素点的位置,更新为该被标定为稳定像素点的目标像素点的位置;直至当前行中,每一目标像素点均遍历完成;其中,当针对当前行的当前的第一差值填补像素点的目标视差值未更新时,遍历出被标定为空洞像素点的目标像素点,该当前的第一差值填补像素点的目标视差值,为该当前行的前一行的填补替换像素点的目标视差值,并,在第一行缓存器中对应该被标定为空洞像素点的目标像素点。
第二遍历子单元针对当前行的目标像素点进行反向遍历,上述反向遍历为相对于第一遍历子单元针对当前行的目标像素点遍历的方向;依次遍历当前行每一目标像素点;基于每一目标像素点的标定信息,识别该目标像素点是否被标定为空洞像素点;当识别出为被标定为空洞像素点的目标像素点时,确定当前的第二差值填补像素点的目标视差值以及位置;当识别出为被标定为稳定像素点的目标像素点时,将当前的第二差值填补像素点的目标视差值,更新为该被标定为稳定像素点的目标像素点的目标视差值,并将当前的第二差值填补像素点的位置,更新为该被标定为稳定像素点的目标像素点的位置;其中,当针对当前行的当前的第二差值填补像素点的目标视差值未更新时,遍历出被标定为空洞像素点的目标像素点,该当前的第二差值填补像素点的目标视差值为空。
其中,图12中的稳定点标识被标记为稳定素点的目标像素点,空洞标识被标记为空洞像素点的目标像素点,替换点在正向遍历过程中标识第一差值填补像素点,在反向遍历过程中标识第二差值填补像素点。
在一种实现方式中,每一目标像素点对应的第一差值填补像素点的位置,可以通过该目标像素点与所对应的第一差值填补像素点之间的距离标识,每一目标像素点对应的第二差值填补像素点的位置,可以通过该目标像素点与所对应的第二差值填补像素点之间的距离标识。
在一种实现方式中,可以理解的是,上述第二遍历子单元输出的确定结果和第二读取子单元读取的确定结果可以形成四种情况,为了更好的得到每一目标像素点对应的视差值,可以针对不同的情况,对每一被标定为空洞像素点的目标像素点进行填补;差值填补子单元970,具体用于
获得第二遍历子单元输出的确定结果,并获得第二读取子单元读取的确定结果;
当第二读取子单元读取的确定结果包含表征不存在的预设信息,且第二遍历子单元输出的确定结果包含第二差值填补像素点的目标视差值和第二距离时,将该被标定为空洞像素点的目标像素点的目标视差值,替换为所对应的第二差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含第一差值填补像素点的目标视差值以及第一距离,且第二遍历子单元输出的确定结果包含第二差值填补像素点的目标视差值和第二距离时,判断第一距离与第二距离之差是否小于距离阈值;
当判断小于时,基于预设差值填补视差值计算公式、所对应第一距离、所对应第二距离、所对应第一差值填补像素点的目标视差值和所对应第二差值填补像素点的目标视差值,对被标定为空洞像素点的目标像素点进行填补,获得被标定为空洞像素点的目标像素点填补后的目标视差值;
其中,预设差值填补视差值计算公式为:
dibr_image=(dibr_l*distance_r+dibr_r*distance_l)/(distance_r+distance_l)
其中,dibr_image标识被标定为空洞像素点的目标像素点填补后的目标视差值,distance_l标识所对应第一距离,distance_r标识所对应第二距离,所述dibr_l标识所对应第一差值填补像素点的目标视差值,dibr_r标识所对应第二差值填补像素点的目标视差值;
当判断为不小于时,比较第一距离和第二距离的大小;
当第一距离小于第二距离,将被标定为空洞像素点的目标像素点的目标视差值,替换为所对应第一差值填补像素点的目标视差值;
当第一距离不小于所述第二距离,将被标定为空洞像素点的目标像素点的目标视差值,替换为所对应第二差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含第一差值填补像素点的目标视差值以及第一距离,且第二遍历子单元输出的确定结果包含表征不存在的预设信息时,将该被标定为空洞像素点的目标像素点的目标视差值,替换为所对应的第一差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含表征不存在的预设信息,且第二遍历子单元输出的确定结果包含表征不存在的预设信息时,从所述第三行缓存器中,确定针对该被标记为空洞像素点的目标像素点所在行的前一行的被标记为空洞像素点的目标像素点所存储的填补替换像素点的目标像素点;并将所确定的填补替换像素点的目标像素点,替换该被标记为空洞像素点的目标像素点的目标视差值。
为了获得更好的处理后的目标像素点,即获得更好的每一目标像素点对应的视差值,如图8所示,所述装置还可以包括:滤波模块820;
滤波模块820,包含:用于接收差值填补模块输出的目标像素点的第十缓存器,对第十缓存器中的各个目标像素点进行滤波处理,得到滤波后的目标像素点。
上述滤波模块820可以通过中值滤波算法对上述第十缓存器中的各个目标像素点进行滤波处理,得到滤波后的目标像素点。以得到更好的每一目标像素点对应的视差值。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (19)
1.一种用于对视差估计图像进行处理的装置,其特征在于,包括:校验模块、空洞填补模块、亚像素求精模块和融合模块;
所述的校验模块,用于以先入先出方式循环接收第一视差估计图像的第一像素点,并同时接收第二视差估计图像的第二像素点;当接收的第一像素点数量达到第一预设值时,将当前接收到的第一像素点中最先接收的第一像素点作为目标像素点,基于当前接收的第二像素点进行左右一致性校验,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点输出至所述空洞填补模块;
所述的空洞填补模块,用于以先入先出方式接收所述目标像素点;当接收到第二预设值个目标像素点时,根据接收到的目标像素点中被标记为稳定像素点的目标像素点,对接收到的目标像素点中被标记为空洞像素点的目标像素点进行填补;按先入先出方式将各个目标像素点输出至融合模块;
所述的亚像素求精模块,用于接收第一视差估计图像的第一像素点,按预设的亚像素求精算法,对每个第一像素点进行亚像素求精处理后,将处理后的第一像素点作为目标像素点逐一输出至融合模块;
所述的融合模块,用于将从空洞填补模块接收的目标像素点,与从亚像素求精模块接收的目标像素点进行融合处理,将处理后的目标像素点逐一输出。
2.根据权利要求1所述的装置,其特征在于,
所述的校验模块,包含:第一缓存器、第二缓存器和校验单元;
所述第一缓存器,用于以先入先出方式循环接收第一视差估计图像的第一像素点;
所述第二缓存器,用于循环接收第二视差估计图像的第二像素点;
所述校验单元,用于当确定所述第一缓存器缓存的第一像素点数量达到第一预设值时,将所述第一缓存器中最先进入的第一像素点作为目标像素点;基于当前所述第二缓存器中的第二像素点进行左右一致性校验,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点以及标记信息输出至所述空洞填补模块。
3.根据权利要求1所述的装置,其特征在于,
所述的空洞填补模块,包含:第三缓存器和填补单元;
所述第三缓存器包含预设数量个寄存器,用于以先入先出方式接收所述目标像素点以及目标像素点对应的标记信息;当所述第三缓存器的第二预设值个寄存器存储有目标像素点时,将当前第三缓存器中存储的各个目标像素点以及各个目标像素点对应的标记信息输出给填补单元;
所述填补单元,用于根据第三缓存器中被标记为稳定像素点的目标像素点,对第三缓存器中被标记为空洞像素点的目标像素点进行填补;按先入先出方式将各个目标像素点输出至融合模块;其中,所述第二预设值等于:二分之一倍的所述预设数量与一的和。
4.根据权利要求1所述的装置,其特征在于,
所述亚像素求精模块,包含:第四缓存器和计算单元;
所述第四缓存器,用于接收第一视差估计图像的第一像素点;
所述计算单元,用于按预设的亚像素求精算法,对所述第四缓存器中的每个第一像素点进行亚像素求精处理后,将处理后的第一像素点作为目标像素点逐一输出至融合模块。
5.根据权利要求1所述的装置,其特征在于,
所述融合模块,包含:第五缓存器、第六缓存器和融合单元;
所述第五缓存器,用于接收空洞填补模块输出的目标像素点;
所述第六缓存器,用于接收亚像素求精模块输出的目标像素点;
所述融合单元,用于将所述第五缓存器中的目标像素点与所述第六缓存器中相对应的目标像素点进行融合处理,将处理后的目标像素点逐一输出。
6.根据权利要求2所述的装置,其特征在于,所述校验单元,包含:计数子单元、第一读取子单元、延迟子单元和校验子单元;
所述计数子单元,用于对所述第一读取子单元所读取的目标像素点的个数,进行计数,并在每次计数值达到预设的行像素点总数时,重新计数;
所述第一读取子单元,用于当确定所述第一缓存器缓存的第一像素点数量达到第一预设值时,以先进先出方式从第一缓存器中读取最先进入的第一像素点,作为目标像素点,获得所述目标像素点的视差值,输入所述延迟子单元;并基于所获得的目标像素点的视差值、预先接收的所述第一视差估计图像中最小的视差值以及所述计数子模块的当前计数值,确定读取地址;基于所确定的读取地址,读取所述第二缓存器,并确定读取结果,将所确定的读取结果输入所述校验子单元;
所述延迟子单元,用于获得所述目标像素点的视差值,并等待;直到当所述读取子模块读取所述第二缓存器,并确定读取结果后,将该目标像素点的视差值输入所述校验子单元;
所述校验子单元,用于获得所述第一读取子单元输出的读取结果和所述延迟子单元输出的目标像素点的视差值,当所述读取结果包含与所述目标像素点相应的第二像素点的视差值时,基于所述目标像素点的视差值、所述相应的第二像素点的视差值以及预设的视差门限,确定所述目标像素点是否为空洞像素点,以获得校验结果;当确定所述读取结果未包含视差值时,确定所述目标像素点为空洞像素点,以获得校验结果,根据校验结果将目标像素点标记为稳定像素点或空洞像素点;将标记后的目标像素点以及标记信息输出至所述空洞填补模块。
7.根据权利要求3所述的装置,其特征在于,所述的填补单元,包含:行像素点处理子单元、第七缓存器、列像素点处理子单元、填补判决子单元和填补子单元;
所述行像素点处理子单元,用于获得所述第三缓存器所存储的目标像素点的视差值以及标记信息,并基于所获得的目标像素点的视差值以及每一目标像素点对应的标记信息,确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数;确定每一目标像素点对应的水平支持区域内所对应视差值数量最多的视差值的个数,作为第二个数;以及确定每一目标像素点对应的水平支持区域内所对应视差值数量最多的视差值,作为第一初选视差值;将每一目标像素点的视差值、标记信息以及所确定的每一目标像素点对应的第一个数、第二个数和第一初选视差值输入第七缓存器;
第七缓存器,包含所述预设数量个行缓存器,用于接收行像素点处理子单元输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;当所述第七缓存器的第二预设值个行缓存器缓存目标像素点的视差值、标记信息以及目标像素点对应的第一个数、第二个数和第一初选视差值时,将当前所述第七缓存器中该第二预设值个行缓存器中所存储的目标像素点的视差值、标记信息以及该目标像素点对应的第一个数、第二个数和第一初选视差值,当前所述第七缓存器中所存储的与该第二预设值个行缓存器所存储的目标像素点同列的每一目标像素点的视差值、标记信息以及对应的第一个数、第二个数和第一初选视差值,输入所述列像素点处理子单元;
所述列像素点处理子单元,用于获得所述第七缓存器所输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;基于所获得的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值,确定每一目标像素点对应的垂直支持区域内被标记为稳定像素点的目标像素点的个数,作为第三个数;确定每一目标像素点对应的垂直支持区域内所对应视差值数量最多的视差值的个数,作为第四个数;基于每一目标像素点对应的第一个数和第三个数,确定每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数,作为第一总数;并基于每一目标像素点对应的第二个数和第四个数,确定每一目标像素点对应的支持区域内所对应视差值数量最多的视差值的总数,作为第二总数,并确定每一目标像素点对应的支持区域内所对应视差值数量最多的视差值,作为待填补视差值,将每一目标像素点对应的第一总数以及第二总数输入所述填补判决子单元;并将每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值输入填补子单元;
所述填补判决子单元,用于获得列像素点处理子单元输出的每一目标像素点对应的第一总数以及第二总数,基于所获得的每一目标像素点对应的第一总数以及第二总数,判决每一目标像素点是否满足进行填补的填补条件,获得每一目标像素点对应的填补判决结果,将每一目标像素点对应的填补判决结果输入填补子单元;
所述填补子单元,包含用于获得列像素点处理子单元输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的待填补视差值,并获得所述填补判决子模块输出的每一目标像素点对应的填补判决结果;基于每一目标像素点对应的填补判决结果以及标记信息,确定是否填补每一目标像素点,当确定填补时,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当确定不填补时,保留该目标像素点的视差值,并输出该视差值。
8.根据权利要求7所述的装置,其特征在于,所述行像素点处理子单元,包含第一比较器阵列、水平支持窗口像素点确定子模块、第一加法树子模块、第二比较器阵列、第一移位寄存器、第二移位寄存器和第八缓存器;
所述第三缓存器,还用于获得每一目标像素点,在预设的第一时长后,以先进先出的原则,将每一目标像素点输入第八缓存器;
第一比较器阵列,用于获得第三缓存器所存储的目标像素点的视差值以及标记信息,对所获得每一目标像素点的视差值进行两两比较,确定每一目标像素点对应的比较结果,并将每一目标像素点对应的比较结果,输入水平支持窗口像素点确定子模块;其中,每一目标像素点对应的比较结果包含:该目标像素点相应于其他目标像素点中每一目标像素点的比较结果;当目标像素点的视差值与其他目标像素点的视差值相同时,该目标像素点相应于该其他目标像素点的比较结果包含第一预设标记,当目标像素点的视差值与其他目标像素点的视差值不同时,该目标像素点相应于该其他目标像素点的比较结果包含第二预设标记;
水平支持窗口像素点确定子模块,用于接收第一比较器阵列输入的每一目标像素点对应的比较结果以及标记信息,并获得每一目标像素点对应的水平支持区域的水平支持区域信号;基于所接收的水平支持区域信号,对每一目标像素点对应的比较结果进行调整,其中,当目标像素点对应的水平支持区域信号为第一水平支持信号时,保持该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果不变,当目标像素点对应的水平支持窗口信号为第二水平支持信号时,将该目标像素点的比较结果中,相对于该水平支持区域对应的目标像素点的比较结果设置为第二预设标记;将每一目标像素点对应的处理后的比较结果以及标记信息,输入第一加法树子模块;
第一加法树子模块,用于获得每一目标像素点对应的处理后的比较结果以及标记信息,对每一目标像素点对应的处理后的比较结果中的第一预设标记进行计数,确定每一目标像素点对应的第一计数值,并基于每一目标像素点对应的标记信息,确定每一目标像素点对应的水平支持区域内被标记为稳定像素点的目标像素点的个数,作为第一个数,将每一目标像素点对应的第一计数值以及标记信息输入第二比较器阵列;并将每一目标像素点对应的第一个数输入第一移位寄存器;
第二比较器阵列,用于获得每一目标像素点对应的第一计数值以及标记信息,对所获得的第一计数值进行比较,确定每一目标像素点对应的数值最大的第一计数值,将每一目标像素点对应的数值最大的第一计数值加一所得结果,作为水平支持区域对应的目标像素点对应的第二个数;并基于每一目标像素点对应的最大的第一计数值,确定每一目标像素点对应的第一寄存器地址;将所确定的每一目标像素点对应的第一寄存器地址以及每一目标像素点对应的第二个数输入第八缓存器,以得到每一目标像素点对应的寄存器地址对应的位置的视差值,作为每一目标像素点对应的第一初选视差值;同时,第一移位寄存器将每一目标像素点对应的第一个数输入第二移位寄存器;
第八缓存器,包含所述预设数量个寄存器;用于将每一目标像素点的视差值、标记信息以及每一目标像素点对应的第二个数和第一初选视差值输入所述第七缓存器,并且,所述第二移位寄存器将每一目标像素点对应的第一个数输入所述第七缓存器。
9.根据权利要求7所述的装置,其特征在于,所述列像素点处理子单元,包含第三比较器阵列、垂直支持窗口像素点确定子模块、第二加法树子模块、第四比较器阵列、第九缓存器;
所述第七缓存器,还用于获得每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;在预设的第二时长后,以先进先出方式将所获得的目标像素点的视差值输入第九缓存器;
所述第三比较器阵列,用于获得所述第七缓存器所输出的每一目标像素点的视差值、标记信息以及每一目标像素点对应的第一个数、第二个数和第一初选视差值;对所获得每一目标像素点的视差值进行两两比较,确定每一目标像素点对应的比较结果,并将每一目标像素点对应的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值输入垂直支持窗口像素点确定子模块;其中,每一目标像素点对应的比较结果包含:该目标像素点相应于其他目标像素点中每一目标像素点的比较结果;当目标像素点的视差值与其他目标像素点的视差值相同时,该目标像素点相应于该其他目标像素点的比较结果包含第一预设标记,当目标像素点的视差值与其他目标像素点的视差值不同时,该目标像素点相应于该其他目标像素点的比较结果包含第二预设标记;
垂直支持窗口像素点确定子模块,用于获得第三比较器阵列输入的每一目标像素点对应的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值,并获得每一目标像素点对应的垂直支持区域的垂直支持区域信号;基于所接收的垂直支持区域信号,对每一目标像素点对应的比较结果进行调整,其中,当目标像素点对应的垂直支持区域信号为第一垂直支持信号时,保持该目标像素点的比较结果中,相对于该垂直支持区域对应的目标像素点的比较结果不变,当目标像素点对应的垂直支持窗口信号为第二垂直支持信号时,将该目标像素点的比较结果中,相对于垂直支持区域目标像素点的比较结果设置为第二预设标记;将每一目标像素点对应的处理后的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值输入第二加法树子模块;
第二加法树子模块,用于获得每一目标像素点对应的处理后的比较结果、每一目标像素点对应的标记信息、第一个数、第二个数和第一初选视差值;对每一目标像素点对应的处理后的比较结果中的第一预设标记进行计数,确定每一目标像素点对应的第二计数值;基于每一目标像素点对应的标记信息,确定每一目标像素点对应的垂直支持区域内被标记为稳定像素点的目标像素点的个数,作为第三个数;基于每一目标像素点对应的第一个数和第三个数,确定每一目标像素点对应的支持区域内被标记为稳定像素点的目标像素点的总数,作为第一总数;将每一目标像素点对应的第二计数值、每一目标像素点对应的标记信息、第二个数和第一初选视差值输入第四比较器阵列;并将每一目标像素点对应的第一总数输入填补判决子单元;
第四比较器阵列,接收第二加法树子模块输出的每一目标像素点对应的第二计数值、每一目标像素点对应的标记信息、第二个数和第一初选视差值;对每一目标像素点对应的第二计数值进行比较,获得每一目标像素点对应的数值最大的第二计数值,将每一目标像素点对应的数值最大的第二计数值加一所得结果,作为该对应的第四个数;基于每一目标像素点对应的第二个数和第四个数,确定该目标像素点对应的第二总数;将每一目标像素点对应的第二总数输入填补判决子单元;
基于每一目标像素点对应的第二总数,确定每一目标像素点对应的第二寄存器地址;将所确定的每一目标像素点对应的第二寄存器地址、每一目标像素点对应的标记信息、第二总数和初选像素值输入第九缓存器;
第九缓存器,包含所述预设数量个寄存器;用于读取所确定的每一目标像素点对应的第二寄存器地址对应的位置的视差值,作为该目标像素点对应的第二初选视差值,基于每一目标像素点对应的第一初选视差值和第二初选视差值,确定每一目标像素点对应的待填补视差值;将每一目标像素点待填补视差值、每一目标像素点的视差值以及每一目标像素点对应的标记信息输入填补子单元。
10.根据权利要求7所述的装置,其特征在于,
所述填补判决子单元,包含第一比较子模块、第三移位寄存器、填补判决子模块;
所述第一比较子模块,用于获得所述第二比较器阵列输出的每一目标像素点对应的第一总数,并获得预设的第一门限值;将每一目标像素点对应的第一总数与所述预设的第一门限值进行比较,获得每一目标像素点对应的比较结果,将所获得的每一目标像素点对应的比较结果输入所述填补判决子模块;
所述第三移位寄存器,用于获得所述第二比较器阵列输出的每一目标像素点对应的第一总数,并等待,当所述第一比较子模块将所获得的每一目标像素点对应的比较结果输入所述填补判决子模块,将每一目标像素点对应的第一总数输入所述填补判决子模块;
所述填补判决子模块,用于获得所述第一比较子模块输出的每一目标像素点对应的比较结果,以及第三移位寄存器输出的每一目标像素点对应的第一总数,以及第二比较器阵列输出的每一目标像素点对应的第二总数;获得预设的第二门限值;基于所述预设的第二门限值、比较结果、每一目标像素点对应的第一总数、第二总数以及标记信息,判决每一目标像素点是否满足进行填补的填补条件,获得每一目标像素点对应的填补判决结果;当所述第九缓存器将所确定的每一目标像素点对应的待填补视差值、标记信息以及每一目标像素点的视差值输入填补子单元时,将所确定的每一目标像素点对应的填补判决结果输入填补子单元。
11.根据权利要求7所述的装置,其特征在于
所述填补子单元,用于获得第九缓存器输出的所确定的每一目标像素点对应的待填补视差值、标记信息以及每一目标像素点的视差值,填补判决子模块所输出的所确定的每一目标像素点对应的填补判决结果;基于每一目标像素点对应的填补判决结果以及标记信息,确定是否对每一目标像素点进行填补;当确定填补时,将目标像素点的视差值,替换为该目标像素点对应的待填补视差值,并输出该待填补视差值;当确定不填补时,保留该目标像素点的视差值,并输出该视差值。
12.根据权利要求1-11任一项所述的装置,其特征在于,所述亚像素求精算法,为:
d*=dl-diff
其中,
其中,所述d*标识所述目标像素点进行亚像素求精后所得的视差值;所述dl标识目标像素点的视差值,所述C(p,d)标识目标像素点对应的预设视差等级下的代价值,所述C(p,d+)标识目标像素点对应的预设视差等级的前一个预设视差等级下的代价值,所述C(p,d_)标识目标像素点对应的预设视差等级的后一个预设视差等级下的代价值。
13.根据权利要求4所述的装置,其特征在于,所述融合单元,具体用于;
确定所述第五缓存器中的目标像素点以及所述第六缓存器中相对应的目标像素点,是否满足预设替换条件,当确定满足预设替换条件时,将所述第五缓存器中的目标像素点的视差值,替换为所述第六缓存器中相对应的目标像素点的视差值。
14.根据权利要求1所述的装置,其特征在于,所述装置还包括差值填补模块;
所述差值填补模块,包含用于缓存所述融合模块输出的像素点的第十缓存器、空洞标定单元、归一化单元和差值填补单元;
所述空洞标定单元,用于基于预设的中间视差值算法,以先进先出方式,确定第十缓存器中的各个目标像素点对应的中间视差值;并基于每一目标像素点对应的中间视差值,对每一目标像素点进行标定,获得每一目标像素点对应的标定结果;将每一目标像素点对应的中间视差值以及标定结果输入归一化单元;
所述归一化单元,用于获得每一目标像素点对应的中间视差值以及标定结果,基于预设的归一化公式、每一目标像素点对应的中间视差值以及标定结果,确定每一目标像素点的归一化后的视差值,作为每一目标像素点对应的目标视差值,将每一目标像素点对应的目标视差值以及标定结果输入差值填补单元;
所述差值填补单元,用于基于每一目标像素点对应的标定结果,基于被标记为稳定像素点的目标像素点的目标视差值,对被标记为空洞像素点的目标像素点的目标视差值进行填补,并输出。
15.根据权利要求14所述的装置,其特征在于,所述预设的中间视差值算法,为:
disp_norm=256/(dmax-dmin)*(disp-dmin)
其中,所述dmin标识所述第三预设值,所述dmax标识第四预设值,所述disp标识所述融合模块输出的每一目标像素点的视差值;所述disp_norm标识所述融合模块输出的每一目标像素点对应的中间视差值;
所述空洞标定单元,包括第一标定子单元和第二标定子单元;
所述第一标定子单元,用于当确定目标像素点对应的中间视差值大于第一视差阈值或小于第二视差阈值时,对该目标像素点标记第一标记,以获得标定结果;其中,所述第一视差阈值大于所述第二视差阈值;
所述第二标定子单元,用于当确定目标像素点对应的中间视差值大于等于所述第二视差阈值,且小于等于所述第一视差阈值时,对该目标像素点标定第二标记,以获得标定结果。
16.根据权利要求15所述的装置,其特征在于,所述归一化单元,包含第一归一化子单元和第二归一化子单元;
第一归一化子单元,用于当目标像素点被标记为所述第一标记时,将该目标像素点的视差值设置为第一视差值,作为该目标像素点对应的目标视差值;
第二归一化子单元,用于当目标像素点被标记为所述第二标记时,基于所述预设的归一化公式、每一目标像素点的中间视差值,确定该目标像素点对应的目标视差值,其中,所述预设的归一化公式,为:
其中,所述depth标识目标像素点对应的目标视差值;所述minz_invert标识第五预设值,所述maxz_invert标识第六预设值,其中,所述第五预设值为所述第一视差估计图像对应的最近预设视差平面值的倒数,所述第六预设值为所述第一视差估计图像对应的最远预设视差平面值的倒数。
17.根据权利要求16所述的装置,其特征在于,所述差值填补单元,包含第一行缓存器、第二读取子单元、第一遍历子单元、第二遍历子单元、第二行缓存器、第三行缓存器、差值填补子单元;
所述第一行缓存器,用于获得每一目标像素点对应的目标视差值以及标定结果,并缓存;
所述第二读取子单元,用于当所述第一行缓存器所缓存目标视差值的个数达到预设的行像素点总数时,按与第一行缓存器缓存顺序相反的顺序,读取每一目标像素点对应的目标视差值以及标定结果,并输入所述第二遍历子单元;
所述第一遍历子单元,获得每一目标像素点对应的目标视差值以及标定结果,当基于每一目标像素点对应的标定结果,确定目标像素点为空洞像素点时,针对该被标定为空洞像素点的目标像素点,确定所遍历过的其所在行中的目标像素点中是否存在被标定为稳定像素点的目标像素点;当确定存在时,确定与该被标定为空洞像素点的目标像素点距离最近的、且被标定为稳定像素点的目标像素点,作为该被标定为空洞像素点的目标像素点的第一差值填补像素点,以及该第一差值填补像素点与该被标定为空洞像素点的目标像素点的距离,作为第一距离;并相应于该被标定为空洞像素点的目标像素点存储于第一行缓存器的位置,将该被标定为空洞像素点的目标像素点的第一差值填补像素点的目标视差值,以及该第一距离作为确定结果,存储于第二行缓存器;当确定不存在时,将表征不存在的预设信息作为确定结果,相应于该被标定为空洞像素点的目标像素点存储于第一行缓存器的位置,存储于第二行缓存器;
所述第二行缓存器,用于缓存每一被标记为空洞像素点的目标像素点对应的确定结果;
所述第二遍历子单元,用于获得所述第二读取子单元从所述第一行缓存器中读取出的每一目标像素点对应的目标视差值以及标定结果,确定目标像素点为空洞像素点时,针对被标定为空洞像素点的目标像素点,确定所遍历过的目标像素点中是否存在被标定为稳定像素点的目标像素点;当确定存在时,针对被标定为空洞像素点的目标像素点,确定所遍历过的与该被标定为空洞像素点的目标像素点距离最近的、且被标记为稳定像素点的目标像素点,作为被标定为空洞像素点的目标像素点的第二差值填补像素点;并确定该第二差值填补像素点与该被标定为空洞像素点的目标像素点的距离,作为第二距离;将所确定的第二差值填补像素点的目标视差值以及第二距离,输入差值填补子单元;当确定不存在时,将表征不存在的预设信息作为确定结果,输入差值填补子单元;
第二读取子单元,还用于从所述第二行缓存器中读取被标定为空洞像素点的目标像素点对应的确定结果,输入所述差值填补子单元;
所述差值填补子单元,用于获得第二遍历子单元输出的确定结果,并获得第二读取子单元读取的确定结果,基于第二遍历子单元输出的确定结果和第二读取子单元读取的确定结果,对所对应的被标定为空洞像素点的目标像素点进行填补,得到填补后的目标像素点,将该填补后的目标像素点作为填补替换像素点输入第三行缓存器;
第三行缓存器,用于基于每一目标像素点在第一视差估计图像中的位置,缓存作为填补替换像素点的目标像素点。
18.根据权利要求17所述的装置,其特征在于,所述差值填补子单元,具体用于
获得第二遍历子单元输出的确定结果,并获得第二读取子单元读取的确定结果;
当第二读取子单元读取的确定结果包含表征不存在的预设信息,且第二遍历子单元输出的确定结果包含第二差值填补像素点的目标视差值和第二距离时,将该被标定为空洞像素点的目标像素点的目标视差值,替换为所对应的第二差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含第一差值填补像素点的目标视差值以及第一距离,且第二遍历子单元输出的确定结果包含第二差值填补像素点的目标视差值和第二距离时,判断所述第一距离与所述第二距离之差是否小于距离阈值;
当判断小于时,基于预设差值填补视差值计算公式、所对应第一距离、所对应第二距离、所对应第一差值填补像素点的目标视差值和所对应第二差值填补像素点的目标视差值,对被标定为空洞像素点的目标像素点进行填补,获得被标定为空洞像素点的目标像素点填补后的目标视差值;
其中,所述预设差值填补视差值计算公式为:
dibr_image=(dibr_l*distance_r+dibr_r*distance_l)/(distance_r+distance_l)
其中,所述dibr_image标识被标定为空洞像素点的目标像素点填补后的目标视差值,所述distance_l标识所对应第一距离,所述distance_r标识所对应第二距离,所述dibr_l标识所对应第一差值填补像素点的目标视差值,所述dibr_r标识所对应第二差值填补像素点的目标视差值;
当判断为不小于时,比较所述第一距离和所述第二距离的大小;
当所述第一距离小于所述第二距离,将被标定为空洞像素点的目标像素点的目标视差值,替换为所对应第一差值填补像素点的目标视差值;
当所述第一距离不小于所述第二距离,将被标定为空洞像素点的目标像素点的目标视差值,替换为所对应第二差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含第一差值填补像素点的目标视差值以及第一距离,且第二遍历子单元输出的确定结果包含表征不存在的预设信息时,将该被标定为空洞像素点的目标像素点的目标视差值,替换为所对应的第一差值填补像素点的目标视差值;
当第二读取子单元读取的确定结果包含表征不存在的预设信息,且第二遍历子单元输出的确定结果包含表征不存在的预设信息时,从所述第三行缓存器中,确定针对该被标记为空洞像素点的目标像素点所在行的前一行的被标记为空洞像素点的目标像素点所存储的填补替换像素点的目标像素点;并将所确定的填补替换像素点的目标像素点,替换该被标记为空洞像素点的目标像素点的目标视差值。
19.根据权利要求1所述的装置,其特征在于,所述装置还包括:滤波模块;
所述滤波模块,包含:用于接收差值填补模块输出的目标像素点的第十一缓存器,对第十一缓存器中的各个目标像素点进行滤波处理,得到滤波后的目标像素点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810031866.7A CN110033426B (zh) | 2018-01-12 | 2018-01-12 | 一种用于对视差估计图像进行处理的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810031866.7A CN110033426B (zh) | 2018-01-12 | 2018-01-12 | 一种用于对视差估计图像进行处理的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110033426A true CN110033426A (zh) | 2019-07-19 |
CN110033426B CN110033426B (zh) | 2021-07-09 |
Family
ID=67234847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810031866.7A Active CN110033426B (zh) | 2018-01-12 | 2018-01-12 | 一种用于对视差估计图像进行处理的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110033426B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825343A (zh) * | 2019-11-05 | 2020-02-21 | 中电科仪器仪表有限公司 | 一种快速数据筛选方法及系统 |
WO2023225825A1 (zh) * | 2022-05-23 | 2023-11-30 | 上海玄戒技术有限公司 | 位置差异图生成方法及装置、电子设备、芯片及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101437171A (zh) * | 2008-12-19 | 2009-05-20 | 北京理工大学 | 一种具有视频处理速度的三目立体视觉装置 |
US20130286158A1 (en) * | 2012-04-27 | 2013-10-31 | Delta Electronics, Inc. | Dual-channel three-dimension projector |
CN103778632A (zh) * | 2014-01-18 | 2014-05-07 | 南京理工大学 | 一种基于fpga的立体匹配方法 |
CN104835165A (zh) * | 2015-05-12 | 2015-08-12 | 努比亚技术有限公司 | 图像处理方法及装置 |
CN105611271A (zh) * | 2015-12-18 | 2016-05-25 | 华中科技大学 | 一种实时立体图像生成系统 |
CN105611269A (zh) * | 2015-12-18 | 2016-05-25 | 华中科技大学 | 基于fpga的实时视差计算系统 |
CN106525004A (zh) * | 2016-11-09 | 2017-03-22 | 人加智能机器人技术(北京)有限公司 | 双目立体视觉系统及深度测量方法 |
-
2018
- 2018-01-12 CN CN201810031866.7A patent/CN110033426B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101437171A (zh) * | 2008-12-19 | 2009-05-20 | 北京理工大学 | 一种具有视频处理速度的三目立体视觉装置 |
US20130286158A1 (en) * | 2012-04-27 | 2013-10-31 | Delta Electronics, Inc. | Dual-channel three-dimension projector |
CN103778632A (zh) * | 2014-01-18 | 2014-05-07 | 南京理工大学 | 一种基于fpga的立体匹配方法 |
CN104835165A (zh) * | 2015-05-12 | 2015-08-12 | 努比亚技术有限公司 | 图像处理方法及装置 |
CN105611271A (zh) * | 2015-12-18 | 2016-05-25 | 华中科技大学 | 一种实时立体图像生成系统 |
CN105611269A (zh) * | 2015-12-18 | 2016-05-25 | 华中科技大学 | 基于fpga的实时视差计算系统 |
CN106525004A (zh) * | 2016-11-09 | 2017-03-22 | 人加智能机器人技术(北京)有限公司 | 双目立体视觉系统及深度测量方法 |
Non-Patent Citations (3)
Title |
---|
S. JIN 等: "FPGA Design and Implementation of a Real-Time Stereo Vision System", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 * |
李贺建: "三维视频中基于FPGA的实时深度估计研究与应用", 《中国博士学位论文全文数据库信息科技辑》 * |
马利 等: "适于硬件实现的自适应权重立体匹配算法", 《系统仿真学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825343A (zh) * | 2019-11-05 | 2020-02-21 | 中电科仪器仪表有限公司 | 一种快速数据筛选方法及系统 |
CN110825343B (zh) * | 2019-11-05 | 2021-12-03 | 中电科思仪科技股份有限公司 | 一种快速数据筛选方法及系统 |
WO2023225825A1 (zh) * | 2022-05-23 | 2023-11-30 | 上海玄戒技术有限公司 | 位置差异图生成方法及装置、电子设备、芯片及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110033426B (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140177927A1 (en) | System of image stereo matching | |
US8755592B2 (en) | Stereo matching system using dynamic programming and method thereof | |
US20140002605A1 (en) | Imaging system and method | |
CN110033426B (zh) | 一种用于对视差估计图像进行处理的装置 | |
KR20100017748A (ko) | 깊이―관련 정보를 처리하기 위한 방법, 장치 및 시스템 | |
US9235879B2 (en) | Apparatus, system, and method for temporal domain hole filling based on background modeling for view synthesis | |
CN104915927B (zh) | 视差图像优化方法及装置 | |
CN109714587A (zh) | 一种多视点图像产生方法、装置、电子设备及存储介质 | |
EP3070671A1 (en) | A system and a method for generating a depth map | |
CN109785265A (zh) | 畸变矫正图像处理方法及图像处理装置 | |
CN109982064B (zh) | 一种裸眼3d的虚拟视点图像生成方法和便携式终端 | |
TWI502544B (zh) | 立體影像的視差估算方法 | |
CN114401391B (zh) | 虚拟视点生成方法及装置 | |
CN103369331A (zh) | 图像空洞的填补方法和装置及视频图像的处理方法和装置 | |
CN111383185B (zh) | 一种基于稠密视差图的孔洞填充方法及车载设备 | |
Liu et al. | Hole-filling based on disparity map and inpainting for depth-image-based rendering | |
CN104408710B (zh) | 一种全局视差估计方法和系统 | |
WO2021238499A1 (zh) | 双目图像快速处理方法、装置及对应的存储介质 | |
CN115176459B (zh) | 虚拟视点合成方法、电子设备和计算机可读介质 | |
CN112991419B (zh) | 视差数据生成方法、装置、计算机设备及存储介质 | |
TWI485653B (zh) | 成像系統及方法 | |
KR101233398B1 (ko) | 깊이 지도 생성 방법 및 장치 | |
US9097964B2 (en) | Device and method for stereoscopic image printing | |
CN114866758B (zh) | 视差图像填补方法以及图像处理装置 | |
CN112465891B (zh) | 一种深度图像获得方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |