CN113536024A - 一种基于fpga的orb_slam重定位特征点检索加速方法 - Google Patents
一种基于fpga的orb_slam重定位特征点检索加速方法 Download PDFInfo
- Publication number
- CN113536024A CN113536024A CN202110918561.XA CN202110918561A CN113536024A CN 113536024 A CN113536024 A CN 113536024A CN 202110918561 A CN202110918561 A CN 202110918561A CN 113536024 A CN113536024 A CN 113536024A
- Authority
- CN
- China
- Prior art keywords
- slam
- output
- fpga
- orb
- feature point
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06M—COUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
- G06M1/00—Design features of general application
- G06M1/27—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum
- G06M1/272—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum using photoelectric means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Library & Information Science (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
本发明提出了一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,包括:S1,将输入的图片缓冲,提取描述子;S2,然后进入工作空间Workspace,通过计算电路对结点的距离求解;S3,每个计算电路的结果会一起流向一个并行比较电路,求出最小值所在的点;S4,最后再判断是否是底层,若是则搜索结束,得出最终结点;S5,每个结点会有一个偏移值,用于寻找求子结点的地址,从而获得关键帧,然后根据关键帧集合进行重新定位。本发明对于电路资源的消耗情况,在计数器前加上近似单元AU形成累计并行计数器APC的电路结构,基于近似计算的原理,在bit流比较长并且需要复制多个相同结构的情况下可以减少硬件资源的消耗,并且提高电路计算速度。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种基于FPGA的ORB_SLAM重定位特征点检索加速方法。
背景技术
在slam导航定位失败的时候,***会启动重定位,基于***当前拍的一帧,跟据其特征点从帧库里面找出一些相似的关键帧来更新当前帧的地图点匹配,从而进行重定位的操作。在现有ORB重定位算法中,帧库的构建采用了k均值(k-means)树的结构,如图1所示。将所有训练图片的特征点提取并计算成描述子,并通过d次k-means聚类,就得到了一个d层度为k的检索树,每个簇中心用平均距离表示,在最底层的类就记录着所关联的帧,因此每次重定位算法就是将当前帧所提取出来的所有特征点(256bit描述子表示)通过检索树找到它们最终所属的类,每一层都会与其所有子结点求距离即汉明距离,最小值为下一层搜索路径方向,直至到最后一层,对于根据最后所找到的关联的帧求相似性分数筛选出一些关键帧来完成重定位的计算。
然而当我们的库里面帧的数量变得很庞大的时候,检索树的深度和广度都会变得比较大,特征点检索的速度相应地就会变得很慢,尽管在ORB算法中维护了一个前向索引来便以快速检索,但是面对巨大的帧库的时候,实时性还是难以达到实际的要求。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于FPGA的ORB_SLAM重定位特征点检索加速方法。
为了实现本发明的上述目的,本发明提供了一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,包括:
S1,将输入的图片缓冲,提取描述子;
S2,然后进入工作空间Workspace,通过计算电路对结点的距离求解;
S3,每个计算电路的结果会一起流向一个并行比较电路,求出最小值所在的点;
S4,最后再判断是否是底层,若是则搜索结束,得出最终结点;
S5,每个结点会有一个偏移值,用于寻找求子结点的地址,从而获得关键帧,然后根据关键帧集合进行重新定位。
在本发明的一种优选实施方式中,所述计算电路包括:
先通过异或门再通过累计并行计数器APC或并行计数器PC;
所述累计并行计数器APC为在计数器PC前加上X级近似单元AU;
所述近似单元AU包括:一级AU近似单元即一列的与门和或门;
所述并行计数器PC包括多个全加器。
在本发明的一种优选实施方式中,所述并行计数器PC包括:
每三个bit一组送入全加器,每个全加器会有一个权重,其中三个输入就是同样的这种权重,输出本位和Sum会往同级权重全加器送值,而向相邻高位的进位数Cout则会往高一级权重送值;用同样的操作将中间结果“打一拍”,接着计算输入都已有值的全加器,一直将中间结果打拍,直至输出结果的最高位算出,最后输出的每个箭头都是一个bit。
在本发明的一种优选实施方式中,所述并行计数器PC还包括:
v表示输出位宽,输入位宽N=2v,输出每增加一位消耗的全加器数量会变成2倍再加上v-1,即:
f(v)=2*f(v-1)+v-1
其中,f(v)代表输出位宽为v需要的全加器数量,f(v-1)代表输出位宽为v-1需要的全加器数量。
在本发明的一种优选实施方式中,并行计数器PC消耗的门级资源为:
g(v)=(2v-v-1)*5=(N-log2 N-1)*5
其中N表示输入位宽,v表示输出位宽。
在本发明的一种优选实施方式中,累计并行计数器APC在全加器前加上X级近似单元AU,消耗的门级资源为:
其中N表示输入位宽,X表示近似单元的级数。
在本发明的一种优选实施方式中,所述全加器包括:
两个异或门,两个与门和一个或门,具体逻辑表达式为:
Sum=(A^B)^Cin
Cout=(A&B)|((A^B)&Cin)
其中A、B、Cin为全加器的输入,分别为被加数、加数、相邻低位来的进位数,Sum、Cout为全加器的输出,分别为输出本位和、向相邻高位的进位数,^表示异或运算,&表示与运算,|表示或运算。
在本发明的一种优选实施方式中,在步骤S5中包括以下步骤:
S51,从关键帧集合中任意选取I个特征点,所述I为大于或者等于1的正整数,计算出当前帧的位姿(α,γ),其中α表示旋转角度,γ是平移量;
S52,根据步骤S51的位姿(α,γ),计算剩余关键帧的重投影误差,若计算得到的重投影误差小于或者等于所设定的误差阈值,则该点为关键点;
S53,统计关键点的个数及对应的位姿(α,γ);
S54,利用步骤S53的位姿(α,γ)作为位姿初始值,对当前帧的位姿进行局部优化,其优化的目标函数为:
其中,ex为相机观测到的第x个重投影误差,||·||表示范数,hx为观测数;O表示相机观测到的重投影个数;
S55,若优化出的关键点数超过设定的关键点数,则认为重定位成功。
在本发明的一种优选实施方式中,在步骤S51中当前帧的位姿(α,γ)的计算方法为:
其中,I表示参考帧中的特征点的总个数;
(Xi,Yi)表示在当前帧中第i特征点的位置坐标;
(Xj,Yj)表示在当前帧中第j特征点的位置坐标;j≠i;
(Xi′,Yi′)表示在参考帧中第i特征点对应当前帧中第i特征点的位置坐标;
(Xj′,Yj′)表示在参考帧中第j特征点对应当前帧中第i特征点的位置坐标;
(x0,y0)表示参考起始点;
[Xi-x0,Yi-y0]表示在当前帧中第i特征点的向量;
[Xj-x0,Yj-y0]表示在当前帧中第j特征点的向量;
|Xi-x0,Yi-y0|表示在当前帧中第i特征点的距离值;
|Xj-x0,Yj-y0|在当前帧中第j特征点的距离值;
在本发明的一种优选实施方式中,在步骤S52中剩余关键帧的重投影误差的计算方法为:
其中,ε表示平衡系数;
S(α,γ)表示位姿(α,γ)在剩余关键帧上偏移度;
Kk表示第k剩余关键帧的重投影误差;
当其Kk≤τ,τ表示所设定的误差阈值,则选取的特征点为关键点;
当其Kk>τ,则选取的特征点不为关键点。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1)本发明对于两个256bit的特征点求汉明距离采用并行计数器PC的电路结构,以形成流水的形式加速计算。
2)本发明对于电路资源的消耗情况,在计数器前加上近似单元AU形成累计并行计数器APC的电路结构,基于近似计算的原理,在bit流比较长并且需要复制多个相同结构的情况下可以减少硬件资源的消耗,并且提高电路计算速度。
3)本发明针对k-means树上层聚类粒度粗下层聚类粒度细的特性,上层采取多级近似单元,下层采用一层或者不用近似单元。
4)本发明对于每个子结点求距离计算的独立性,设计为k个Worker,其中k为聚类簇的数量,每个Worker都拥有加速电路的一个副本并且并行控制各自的数据的读取输入和计算。
5)本发明采用动态随机存取存储器DRAM来存储帧库的特征点,根据DRAM里各个内存库Bank读写并行的特性,将每个子结点分别存在不同的Bank可以提高数据的读取速度,并且由上述的每个Worker负责管理一个Bank。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是现有技术特征点检索树的结构图;
图2是本发明的整体结构图;
图3是本发明的求汉明距离的并行计数电路示意图(16位输入为例);
图4是全加器的门级电路示意图;
图5是采用近似单元的并行计数电路示意图;
图6是检索树数据在DRAM里的存储形式示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
如图1所示,结合帧库的所有特征点离线训练一个检索树,每个特征点用256bit描述子表示,而这些树节点用属于该类的所有描述子的均值来表示。在检索时逐层找到所属的类即找到最小汉明距离,直至最底层。其中特征点是具体图片中的特征点,结点指的是树结构中的结点,一般表示的属于该类的均值。
本发明提供了一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,包括:
S1,将输入的图片缓冲,提取描述子;
S2,然后进入工作空间Workspace,通过计算电路对结点的距离求解;
S3,每个计算电路的结果会一起流向一个并行比较电路,求出最小值所在的点;
S4,最后再判断是否是底层,若是则搜索结束,得出最终结点;
S5,每个结点会有一个偏移值,用于寻找求子结点的地址,从而获得关键帧,然后根据关键帧集合进行重新定位。
在本发明的一种优选实施方式中,所述计算电路包括:
先通过异或门再通过累计并行计数器APC或并行计数器PC;
所述累计并行计数器APC为在计数器PC前加上X级近似单元AU;
所述近似单元AU包括:一级AU近似单元即一列的与门和或门;
所述并行计数器PC包括多个全加器。
在本发明的一种优选实施方式中,所述并行计数器PC包括:
每三个bit一组送入全加器,每个全加器会有一个权重,其中三个输入就是同样的这种权重,输出本位和Sum会往同级权重全加器送值,而向相邻高位的进位数Cout则会往高一级权重送值;用同样的操作将中间结果“打一拍”,接着计算输入都已有值的全加器,一直将中间结果打拍,直至输出结果的最高位算出,最后输出的每个箭头都是一个bit。
在本发明的一种优选实施方式中,所述并行计数器PC还包括:
v表示输出位宽,输入位宽N=2v,输出每增加一位消耗的全加器数量会变成2倍再加上v-1,即:
f(v)=2*f(v-1)+v-1
其中,f(v)代表输出位宽为v需要的全加器数量,f(v-1)代表输出位宽为v-1需要的全加器数量。
在本发明的一种优选实施方式中,并行计数器PC消耗的门级资源为:
g(v)=(2v-v-1)*5=(N-log2 N-1)*5
其中N表示输入位宽,v表示输出位宽。
在本发明的一种优选实施方式中,累计并行计数器APC在全加器前加上X级近似单元AU,消耗的门级资源为:
其中N表示输入位宽,X表示近似单元的级数。
在本发明的一种优选实施方式中,所述全加器包括:
两个异或门,两个与门和一个或门,具体逻辑表达式为:
Sum=(A^B)^Cin
Cout=(A&B)|((A^B)&Cin)
其中A、B、Cin为全加器的输入,分别为被加数、加数、相邻低位来的进位数,Sum、Cout为全加器的输出,分别为输出本位和、向相邻高位的进位数,^表示异或运算,&表示与运算,|表示或运算。
图2是本发明的整体加速结构图,input query输入查询就是一副图会有很多特征点去进行检索查询,由于输入有很多,不能一次性全部送去查询,所以用了一种数据结构即具有先进先出特点的队列来存储。输入模块是一个队列用于缓冲输入的图片提出来的描述子;
Workspace是主要的工作空间,其中的每个Worker负责并行控制一个结点距离求解,每个Worker还分别对应一个高速缓存(cache)和计算电路(PC或者APC),cache用于缓冲曾经访问过的子结点,因为相邻特征点之间的距离比较小,可能会有一些相似的访问路径;当cache中不存在数据时,就会访问DRAM;每个计算电路的结果会一起流向一个并行比较电路,求出最小值所在的点,最后再判断是否是底层,若是则搜索结束,每个结点会有一个偏移值,用于寻找求子结点的地址,然后重新定位。
DRAM是FPGA中的一种存储结构,可以理解成电脑中的内存,cache是一种缓存,比较小但是访问速度比DRAM快。Cache会存储一部分DRAM的数据,本身比较小,但是访问它的速度会比去访问DRAM速度快,所以在访问dram的时候同时会把数据缓冲在cache里面(由于本身比较小,可能会覆盖掉一些旧的数据),每次取数据时,会先去访问cache,如果没有相应的数据就再去访问dram并把数据缓冲下来。这种机制主要是计算机里有个性质,最近访问的数据很可能会再次访问,这样可以提高取数据的速度。
图3是本发明的核心计算电路,采用并行计数的结构,以16位输入为例。每个单元为一个全加器,采用组合逻辑,具体逻辑表达式为:Sum=(A^B)^Cin,Cout=(A&B)|((A^B)&Cin),总共消耗两个异或门,两个与门和一个或门,如图4所示。
设输出v表示输出需要几位来表示即输出位宽,输入位宽N=2v,由图3可见输出每增加一位,输入增加一倍;输出每增加一位消耗的全加器数量会变成2倍再加上v-1,即:
f(v)=2*f(v-1)+v-1
其中f(2)=1
则消耗的门级资源为:
g(v)=(2v-v-1)*5=(N-log2 N-1)*5
其中N表示输入位宽,v表示结果的位数即输出位宽。基于近似计算的原理,APC在全加器前加上一级AU近似单元即一列的与门和或门,如图5所示,可以在很小的误差下得到计算结果(实验验证误差在5以内),还能减少资源的消耗,此时消耗的门级资源变为:
类似的,APC在全加器前加上X级AU近似单元,消耗的门级资源变为:
对于k-means树上层聚类粒度粗下层聚类粒度细的特性,上层采取多级近似单元,下层采用一层或者不用近似单元。其中相同层级的结点采用同样结构的计算电路,结点间是并行的。
对于输入为256位bit,一级(门级)近似单元就可以减少约50%的资源消耗,同时还提高了计算速度。
两个求距离的256bit进入电路后,所述电路包括异或门在计算电路PC或计算电路APC之前。首先用组合逻辑求异或,对异或后的256位bit求1的个数就是它们两个之间的距离。异或后的256bit首先进入近似单位将输入减半,例如通过一级AU后输入将相当于变成了128位,但是每一位的权重都变成了21。然后在时钟上升沿用寄存器非阻塞赋值将中间结果“打一拍”,然后每三个bit一组送入全加器(一开始送进权重20的全加器),每个全加器会有一个权重,其中三个输入就是同样的这种权重,输出Sum会往同级权重全加器送值,而进位Cout则会往高一级权重送值;用同样的操作将中间结果“打一拍”,接着计算输入都已有值的全加器,一直将中间结果打拍,直至输出结果的最高位算出,最后输出的每个箭头都是一个bit(0或者1)如图5是以16位为例的,输出可以用4位bit表示,2的多少次方就表示箭头指向4位中的哪一位,这是电路直接连线的,实际计算就是0或者1代表系数,2的多少次方代表权重然后累计起来。这样就形成了在计算电路内部的流水,第一个描述子会在第11个周期得到结果,接下来的每一个周期都会得到一个描述子的计算结果。由于与每个子结点求距是并行的,在求出结果后会全部送进比较树,求出最小值来确定下一层路径往哪里走。
在检索树上层簇与簇之间距离比较大,越往下差距会越来越小,根据数据集实际情况控制每一层采用的AU计算单元的级数,上层差距比较大,可以采用两到三层,底层的时候视数据集情况决定是否采用近似单元。
对于树在DRAM里面的存储,如图6所示,DRAM每个Bank共享一个I/O控制端口,但是在每个Bank内部的读写可以并行进行。将每个子结点存在对应的bank里,在cache里没有访问到数据需要访问DRAM时,每个Worker就可以并行读取自己的Bank。
在本发明的一种优选实施方式中,在步骤S5中包括以下步骤:
S51,从关键帧集合中任意选取I个特征点,所述I为大于或者等于1的正整数,计算出当前帧的位姿(α,γ),其中α表示旋转角度,γ是平移量;
S52,根据步骤S51的位姿(α,γ),计算剩余关键帧的重投影误差,若计算得到的重投影误差小于或者等于所设定的误差阈值,则该点为关键点;
S53,统计关键点的个数及对应的位姿(α,γ);
S54,利用步骤S53的位姿(α,γ)作为位姿初始值,对当前帧的位姿进行局部优化,其优化的目标函数为:
其中,ex为相机观测到的第x个重投影误差,||·||表示范数,hx为观测数;O表示相机观测到的重投影个数;
S55,若优化出的关键点数超过设定的关键点数,则认为重定位成功。
在本发明的一种优选实施方式中,在步骤S51中当前帧的位姿(α,γ)的计算方法为:
其中,I表示参考帧中的特征点的总个数;
(Xi,Yi)表示在当前帧中第i特征点的位置坐标;
(Xj,Yj)表示在当前帧中第j特征点的位置坐标;j≠i;
(Xi′,Yi′)表示在参考帧中第i特征点对应当前帧中第i特征点的位置坐标;
(Xj′,Yj′)表示在参考帧中第j特征点对应当前帧中第i特征点的位置坐标;
(x0,y0)表示参考起始点;
[Xi-x0,Yi-y0]表示在当前帧中第i特征点的向量;
[Xj-x0,Yj-y0]表示在当前帧中第j特征点的向量;
|Xi-x0,Yi-y0|表示在当前帧中第i特征点的距离值;
|Xj-x0,Yj-y0|在当前帧中第j特征点的距离值;
在本发明的一种优选实施方式中,在步骤S52中剩余关键帧的重投影误差的计算方法为:
其中,ε表示平衡系数;
S(α,γ)表示位姿(α,γ)在剩余关键帧上偏移度;
Kk表示第k剩余关键帧的重投影误差;
当其Kk≤τ,τ表示所设定的误差阈值,则选取的特征点为关键点;
当其Kk>τ,则选取的特征点不为关键点。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (8)
1.一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,其特征在于,包括:
S1,将输入的图片缓冲,提取描述子;
S2,然后进入工作空间Workspace,通过计算电路对结点的距离求解;
S3,每个计算电路的结果会一起流向一个并行比较电路,求出最小值所在的点;
S4,最后再判断是否是底层,若是则搜索结束,得出最终结点;
S5,每个结点会有一个偏移值,用于寻找求子结点的地址,从而获得关键帧,然后根据关键帧集合进行重新定位。
2.根据权利要求1所述的一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,其特征在于,所述计算电路包括:
先通过异或门再通过累计并行计数器APC或并行计数器PC;
所述累计并行计数器APC为在计数器PC前加上X级近似单元AU;
所述近似单元AU包括:一级AU近似单元即一列的与门和或门;
所述并行计数器PC包括多个全加器。
3.根据权利要求2所述的一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,其特征在于,所述并行计数器PC包括:
每三个bit一组送入全加器,每个全加器会有一个权重,其中三个输入就是同样的这种权重,输出本位和Sum会往同级权重全加器送值,而向相邻高位的进位数Cout则会往高一级权重送值;用同样的操作将中间结果“打一拍”,接着计算输入都已有值的全加器,一直将中间结果打拍,直至输出结果的最高位算出,最后输出的每个箭头都是一个bit。
4.根据权利要求2所述的一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,其特征在于,所述并行计数器PC还包括:
v表示输出位宽,输入位宽N=2v,输出每增加一位消耗的全加器数量会变成2倍再加上v-1,即:
f(v)=2*f(v-1)+v-1
其中,f(v)代表输出位宽为v需要的全加器数量,f(v-1)代表输出位宽为v-1需要的全加器数量。
5.根据权利要求2所述的一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,其特征在于,并行计数器PC消耗的门级资源为:
g(v)=(2v-v-1)*5=(N-log2 N-1)*5
其中N表示输入位宽,v表示输出位宽。
7.根据权利要求2所述的一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,其特征在于,所述全加器包括:
两个异或门,两个与门和一个或门,具体逻辑表达式为:
Sum=(A^B)^Cin
Cout=(A&B)|((A^B)&Cin)
其中A、B、Cin为全加器的输入,分别为被加数、加数、相邻低位来的进位数,Sum、Cout为全加器的输出,分别为输出本位和、向相邻高位的进位数,^表示异或运算,&表示与运算,|表示或运算。
8.根据权利要求1所述的一种基于FPGA的ORB_SLAM重定位特征点检索加速方法,其特征在于,在步骤S5中包括以下步骤:
S51,从关键帧集合中任意选取I个特征点,所述I为大于或者等于1的正整数,计算出当前帧的位姿(α,γ),其中α表示旋转角度;
S52,根据步骤S51的位姿(α,γ),计算剩余关键帧的重投影误差,若计算得到的重投影误差小于或者等于所设定的误差阈值,则该点为关键点;
S53,统计关键点的个数及对应的位姿(α,γ);
S54,利用步骤S53的位姿(α,γ)作为位姿初始值,对当前帧的位姿进行局部优化,其优化的目标函数为:
其中,ex为相机观测到的第x个重投影误差,||·||表示范数,hx为观测数;O表示相机观测到的重投影个数;
S55,若优化出的关键点数超过设定的关键点数,则认为重定位成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110918561.XA CN113536024B (zh) | 2021-08-11 | 2021-08-11 | 一种基于fpga的orb_slam重定位特征点检索加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110918561.XA CN113536024B (zh) | 2021-08-11 | 2021-08-11 | 一种基于fpga的orb_slam重定位特征点检索加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113536024A true CN113536024A (zh) | 2021-10-22 |
CN113536024B CN113536024B (zh) | 2022-09-09 |
Family
ID=78091542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110918561.XA Active CN113536024B (zh) | 2021-08-11 | 2021-08-11 | 一种基于fpga的orb_slam重定位特征点检索加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113536024B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019057179A1 (zh) * | 2017-09-22 | 2019-03-28 | 华为技术有限公司 | 一种基于点线特征的视觉slam方法和装置 |
CN109919825A (zh) * | 2019-01-29 | 2019-06-21 | 北京航空航天大学 | 一种orb-slam硬件加速器 |
CN110070580A (zh) * | 2019-03-29 | 2019-07-30 | 南京华捷艾米软件科技有限公司 | 基于局部关键帧匹配的slam快速重定位方法及图像处理装置 |
CN110782494A (zh) * | 2019-10-16 | 2020-02-11 | 北京工业大学 | 一种基于点线融合的视觉slam方法 |
CN111583093A (zh) * | 2020-04-27 | 2020-08-25 | 西安交通大学 | 一种实时性好的orb特征点提取的硬件实现方法 |
CN111795704A (zh) * | 2020-06-30 | 2020-10-20 | 杭州海康机器人技术有限公司 | 一种视觉点云地图的构建方法、装置 |
CN112381890A (zh) * | 2020-11-27 | 2021-02-19 | 上海工程技术大学 | 一种基于点线特征的rgb-d视觉slam方法 |
CN112991447A (zh) * | 2021-03-16 | 2021-06-18 | 华东理工大学 | 一种动态环境下视觉定位与静态地图构建方法及*** |
CN113160130A (zh) * | 2021-03-09 | 2021-07-23 | 北京航空航天大学 | 一种回环检测方法、装置及计算机设备 |
-
2021
- 2021-08-11 CN CN202110918561.XA patent/CN113536024B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019057179A1 (zh) * | 2017-09-22 | 2019-03-28 | 华为技术有限公司 | 一种基于点线特征的视觉slam方法和装置 |
CN109919825A (zh) * | 2019-01-29 | 2019-06-21 | 北京航空航天大学 | 一种orb-slam硬件加速器 |
CN110070580A (zh) * | 2019-03-29 | 2019-07-30 | 南京华捷艾米软件科技有限公司 | 基于局部关键帧匹配的slam快速重定位方法及图像处理装置 |
CN110782494A (zh) * | 2019-10-16 | 2020-02-11 | 北京工业大学 | 一种基于点线融合的视觉slam方法 |
CN111583093A (zh) * | 2020-04-27 | 2020-08-25 | 西安交通大学 | 一种实时性好的orb特征点提取的硬件实现方法 |
CN111795704A (zh) * | 2020-06-30 | 2020-10-20 | 杭州海康机器人技术有限公司 | 一种视觉点云地图的构建方法、装置 |
CN112381890A (zh) * | 2020-11-27 | 2021-02-19 | 上海工程技术大学 | 一种基于点线特征的rgb-d视觉slam方法 |
CN113160130A (zh) * | 2021-03-09 | 2021-07-23 | 北京航空航天大学 | 一种回环检测方法、装置及计算机设备 |
CN112991447A (zh) * | 2021-03-16 | 2021-06-18 | 华东理工大学 | 一种动态环境下视觉定位与静态地图构建方法及*** |
Non-Patent Citations (4)
Title |
---|
AYOUB MAMRI等: "ORB-SLAM accelerate on heterogeneous parallel architectures", 《E3S WEB OF CONFERENCES 229,01055(2021)》 * |
WEIKANG FANG等: "FPGA-based ORB feature extraction for real-time visual SLAM", 《2017 INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE TECHNOLOGY(ICFPT)》 * |
唐醅林: "基于ORB-SLAM的特征匹配与建图方法研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
张超凡: "基于多目视觉与惯导融合的SLAM方法研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113536024B (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fuh et al. | Hierarchical color image region segmentation for content-based image retrieval system | |
Cheung | Maximum weighted likelihood via rival penalized EM for density mixture clustering with automatic model selection | |
KR100865201B1 (ko) | 참조 데이터 최적화 학습 방법과 패턴 인식 시스템 | |
US9208374B2 (en) | Information processing apparatus, control method therefor, and electronic device | |
He et al. | Queryprop: Object query propagation for high-performance video object detection | |
Zhu | Dynamic feature pyramid networks for object detection | |
CN112667528A (zh) | 一种数据预取的方法及相关设备 | |
CN112906865B (zh) | 神经网络架构搜索方法、装置、电子设备及存储介质 | |
CN111160461A (zh) | 基于模糊聚类的加权在线极限学习机大数据分类方法 | |
US20230161811A1 (en) | Image search system, method, and apparatus | |
CN111597230A (zh) | 基于MapReduce的并行密度聚类挖掘方法 | |
CN115795065A (zh) | 基于带权哈希码的多媒体数据跨模态检索方法及*** | |
Zhang et al. | COLIN: A cache-conscious dynamic learned index with high read/write performance | |
CN107426315B (zh) | 一种基于BP神经网络的分布式缓存***Memcached的改进方法 | |
CN113656700A (zh) | 基于多相似度一致矩阵分解的哈希检索方法 | |
US9135984B2 (en) | Apparatuses and methods for writing masked data to a buffer | |
US9570125B1 (en) | Apparatuses and methods for shifting data during a masked write to a buffer | |
CN113536024B (zh) | 一种基于fpga的orb_slam重定位特征点检索加速方法 | |
CN108897847A (zh) | 基于局部敏感哈希的多gpu密度峰值聚类方法 | |
US20190095782A1 (en) | Calculation device for and calculation method of performing convolution | |
CN111368109B (zh) | 遥感图像检索方法、装置、计算机可读存储介质及设备 | |
Chen et al. | Unsupervised Intra-Domain Adaptation for Recommendation via Uncertainty Minimization | |
Lovagnini et al. | CIRCE: Real-time caching for instance recognition on cloud environments and multi-core architectures | |
Zhang et al. | NORB: A Stream-Based and Non-Blocking FPGA Accelerator for ORB Feature Extraction | |
Lee et al. | StaleLearn: Learning acceleration with asynchronous synchronization between model replicas on PIM |
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 |