How to Read Documents Effectively

As a graduate student, you must maintain the ability to read the literature. Taking "Efficient & Effective Prioritized Matching for Large-Scale Image-Based Localization" as an example, this article records how you read it during the learning process. Literature skills.

1. Title

When you first see a paper, first look at what the content is doing from the title. The first thing to do is matching (Matching). Matching is a method. The goal is for localization (Localization). The scene is large-scale ( Large-Scale). Titles require careful consideration.
insert image description here

2. Summary

Just need to understand two questions:

1. What problem was solved and what method was used

Problem: Large-scale matching and positioning large scale image-based localization

Method: Prioritized matching algorithm a novel prioritized matching step

Some literature may not clearly solve the problem. It is also possible to directly talk about the innovation points in the abstract, and then complete the entire abstract by highlighting the innovation points. In the end, the result you want is whether I can use my own method. inside the algorithm.

3. Introduction

The introduction part generally introduces the defects of some other algorithms and the innovations of the algorithm in this paper. The main thing to pay attention to is: what are the defects of other algorithms, and what are the innovation points of this algorithm? It is also necessary to pay attention to the fact that the description paper may be proposed on the basis of XX paper, so it is best to read the basic paper again.

The innovations of the literature can be seen from the following directions

1. Describe several types of innovations (contributions)

It is possible to describe three innovative points, and finally settled on one innovative point, so how can he expand this innovative point into three, and suggest reading more high-quality papers, so that he can see the difference in writing. One is to look at the contribution, which methods are used, how to implement these methods, and think about how to implement it if it is your own. You may not think of the way the author thought of, so the author may talk about him in the introduction Some of the work, or some work inspired by it, may be the same problem as other algorithm research, then you can follow the summary point to see what kind of method is used to solve the same problem

It is necessary to pay attention to whether the innovation point is similar to other articles, preferably from the author's point of view. Think about how he came up with this algorithm and where he got the inspiration from

2. Description based on xxx

And based on... (base on...) Then download his references and compare the differences between them, such as this article (This paper is based on our previous publications [7], [8].)
insert image description here

Then it proves that the two documents [7][8] led to the current document, so how did the current document come to mind from that angle, and how did it base on the two documents [7][8] to form such a The inertia of thinking, so that seeing other papers can trigger your own ideas

Four. Text

There is no major language problem in the specific description of the algorithm, pay attention to logic

1. System block diagram

A good author's entire system block diagram is very meticulous, and the connection between each part. Some places in the block diagram may not be innovative, and some places are innovative,
insert image description here

2. Algorithm formula

To find some basic formulas, you need to pay attention to drawing and which formulas or graphics are basic and can be used by yourself.
insert image description here

Like this article, the basic formula is the best matching algorithm for descriptors

3. Think from the perspective of the author

Screen the content from it, select valuable paragraphs, connect several papers, and form such a thinking inertia, so that seeing other papers can trigger your own ideas, so that you have ideas to innovate, and then prepare to implement

5. Experiment

Analyze the steps of the experimental design, why it is designed like this

1. From a global perspective

Check the logic, learn why the experiment is designed, and compare the numerical values

2. Describe the picture

How does the author describe each picture, how would you describe it, the way of expressing data, tables and graphs are different, and graphs are more intuitive
insert image description here

优先匹配算法

# 二部图的匹配关系
graph = {
    
    'a': {
    
    1}, 'b': {
    
    1, 2}, 'c': {
    
    1, 2, 3}, 'd': {
    
    2, 3, 4}, 'e': {
    
    3, 4, 10}, 'f': {
    
    4, 5, 6}, 'g': {
    
    5, 6, 7},
         'h': {
    
    7, 8}, 'i': {
    
    9}}

from copy import deepcopy


class HK_algorithm(object):
    def __init__(self, graph):
        """
        初始化和接受配对关系图,初步处理
        :param graph:为了方便操作,二部图的左右集合我们用不同的数据类型来表示
        """
        self._graph = deepcopy(graph)
        self._left_set = set(self._graph.keys())
        self._right_set = set()

        self._matching = {
    
    }
        self._dfs_paths = []
        self._dfs_alternately = {
    
    }

        self.iter_times = 0

        # 处理 右端点 的端点,放入 self._right
        graph_values = set
        for value in self._graph.values():
            for i in value:
                self._right_set.add(i)
        print(self._right_set)

        # 为了找增广路径, 需要将右端点,可以连接的左端点处理成为一个相应的 graph 字典
        for left_node in self._left_set:
            for neighbour in self._graph[left_node]:
                if neighbour not in self._graph:
                    # 防止重复
                    self._graph[neighbour] = set()
                    self._graph[neighbour].add(left_node)
                else:
                    self._graph[neighbour].add(left_node)
def breadth_first_search(self):
        visited = set()
        layers = []  # index = layer 按照层存储点 待遍历的点
        layer = set()

        for node in self._left_set:
            if node not in self._matching:
                layer.add(node)

        layers.append(layer)

        while True:
            new_layer = set()
            layer = layers[-1]  
            for node in layer:
                if node in self._left_set:
                    visited.add(node)
                    for neighbour in self._graph[node]:
                        if neighbour not in visited and (
                                node not in self._matching or neighbour != self._matching[node]):
                            new_layer.add(neighbour)
                else:
                    visited.add(node)
                    for neighbour in self._graph[node]:
                        if neighbour not in visited and (node in self._matching and neighbour == self._matching[node]):
                            new_layer.add(neighbour)

            layers.append(new_layer)

            if len(new_layer) == 0:
                return layers
            for node in new_layer:
                if any(node in self._right_set and node not in self._matching for node in new_layer):
                    return layers

6. Conclusion

The conclusion part of some papers will have future prospects, you can take a look, as your new direction

For the outlook of some major authors, you can track his recent achievements and pay more attention to papers in this area
insert image description here

Summary: IEEE TRANSACTIONS is recommended, the quality of the papers is very high

Guess you like

Origin blog.csdn.net/Prototype___/article/details/131729158