-
摘要: 三维重建在视觉方面具有很高的研究价值, 在机器人视觉导航、智能车环境感知系统以及虚拟现实中被广泛应用.本文对近年来国内外基于视觉的三维重建方法的研究工作进行了总结和分析, 主要介绍了基于主动视觉下的激光扫描法、结构光法、阴影法以及TOF (Time of flight)技术、雷达技术、Kinect技术和被动视觉下的单目视觉、双目视觉、多目视觉以及其他被动视觉法的三维重建技术, 并比较和分析这些方法的优点和不足.最后对三维重建的未来发展作了几点展望.Abstract: 3D reconstruction is important in vision, which can be widely used in robot vision navigation, intelligent vehicle environment perception and virtual reality. This study systematically reviews and summarizes the progress related to 3D reconstruction technology based on active vision and passive vision, i.e. laser scanning, structured light, shadow method, time of flight (TOF), radar, Kinect technology and monocular vision, binocular vision, multi-camera vision, and other passive visual methods. In addition, extensive comparisons among these methods are analyzed in detail. Finally, some perspectives on 3D reconstruction are also discussed.
-
Key words:
- 3D reconstruction /
- active vision /
- passive vision /
- key techniques
-
1. Introduction
In order to test a software system completely, we should make the functional detection for all kinds of system element combinations. If a software system under test (SUT) has ${k}$ elements and each element has $v_i$ $(i=1, 2, \ldots, k)$ different values, then the number of whole test cases, which could covered all kinds of system element combinations for this SUT, is $\sum_{i=1}^k v_i$. For example, Table Ⅰ is a SUT with 3 testing elements, and the number of whole test cases for completely testing this SUT is $3^3=27$. Since $\sum_{i=1}^k v_i$ might be a huge number, the cost of entire operations for testing such SUT is likely to be tremendous. So, it is infeasible to make a complete testing for the SUT with large input space.
表 Ⅰ A SUT WITH THREE TEST PARAMETERSTable Ⅰ A SUT WITH THREE TEST PARAMETERSValue $A$ $B$ $C$ 0 a0 b0 c0 1 a1 b1 c1 2 a2 b2 c2 Fortunately, some researches show about 70$\, \%$ software bugs are caused by the combinations between two elements, meanwhile, the correlations among three elements generated about 90$\, \%$ software bugs [1]. That means, we can generate a smaller test case set, which just identifies the interactions among several system elements, such as pairwise or triple combinations, to capture most of bugs in a SUT [2], [3]. Therefore, the combinatorial testing could be a more effective technique for discovering interaction faults of SUT, whose key task is to generate a test suite as small as possible to cover all given system element combinations.
In this study, we propose a novel test suite generation and global optimization approach. In the first step, the test suite generation problem has been transformed into a binary sequence optimization problem by a binary encoding mechanism. Based on it, a novel evolutionary algorithm, cluster searching algorithm (CSA), is presented to optimize the binary sequence in solution space so as to construct the optimal test suite. In Section 2, we analyze the related research works. Section 3 introduces the problem transformation. Section 4 shows the CSA. Section 5 provides the simulations. Section 6 gives the conclusion.
2. Related Work
Generally, a test case subset, which can satisfy all covering requirements, is known as a representative set. Assuming that the cost of generating and managing each test case is the same, a representative set with a minimum number of test cases is desirable and is called the optimal testing suite. The optimal combinatorial test suite generation problem is defined as, given a SUT and a set of combinatorial covering criterion, find a minimal representative set from the complete test case set. For example, Table Ⅱ is an optimal pairwise combinations representative set, which can cover all combinations between any two system elements of the SUT in Table Ⅰ. In general, this problem can be expressed as a set-covering problem [4], and it is a NP-complete problem also [5].
表 Ⅱ AN OPTIMAL TEST SUITE COVERING ALL PAIRWISE COMBINATIONSTable Ⅱ AN OPTIMAL TEST SUITE COVERING ALL PAIRWISE COMBINATIONSNumber $A$ $B$ $C $ 1 a0 b0 c0 2 a0 b2 c2 3 a0 b1 c1 4 a1 b0 c2 5 a1 b1 c0 6 a1 b2 c1 7 a2 b0 c1 8 a2 b2 c0 9 a2 b1 c2 In traditional studies, people make use of some mathematical methods to construct the representative set, such as orthogonal array [6]. But, there are some unsolved problems existing in the orthogonal array generation method, such as we cannot generate a necessary orthogonal array for any kind of SUT. Another mathematical method is based on the matrix recursive construction process [7]. For some special instances, this method can give a wonderful result. But, it cannot be applied to all kinds of SUT either. Moreover, the theoretical researches of combinatorial testing are still unable to give an explicit optimal covering number for most problems. The major conclusions of such studies just can give some logical relations for the optimal covering number between different problems [8].
In recent years, the evolutionary algorithm (EA) has developed into a powerful global optimization algorithm to solve many complex engineering optimization problems [9]$-$[12]. In combinatorial testing researches, the EA is usually coupled with one-test-at-a-time mechanism [13]. In such studies, an EA has been used to search a best test case $t_i$ in the test case complete set, which can cover the maximum combinations in uncovering combination set (CS), in one computation. Then, let $t_i$ join test suite (TS) and delete the covered combinations by $t_i$ in CS. After that, the above operations will repeat until all combinations in CS have been covered. Based on this iterative construction process, the one-test-at-a-time mechanism can solve most large-size SUT very well [14], [15]. However, to a small-size SUT, it does not show a desired performance. Firstly, it is likely to generate an approximate representative set. Secondly, it always takes a much longer time and more matrix transformations to generate whole representative set. These characteristics make one-test-at-a-time mechanism not suitable to solve small-size SUT. For example, if we use this mechanism to generate the TS for the SUT in Table Ⅰ, the test cases a0b0c0, a1b1c1 and a2b2c2 are likely to be preferentially selected from complete set to join TS one by one, because both of them contain 3 uncovered pairwise combinations in CS, which conform to the optimal condition for the test case selection. However, if it does, no matter what test case in the left 24 cases has been chosen to join TS in the next computation cycle, the generated representative set would be an approximate solution, because there is at least one pair-wise combination repetitive with the 9 covered pair-wise combinations, which have been generated by the above 3 test cases.
Recently, efforts have been focused on the use of meta-heuristic algorithms as part of the computational approach for test suite generation. Generally, meta-heuristic algorithms start with a random set of test cases, such as using a simple one-test-at-a-time greedy procedure to construct it [16]. Then, the initial test case set undergoes a series of transformations in an attempt to improve itself. Each of them could be an independent meta-heuristic algorithm, such as teaching learning based optimization, global neighborhood algorithm, particle swarm optimization, and cuckoo search algorithm [17]. In this process, one best candidate is selected at each iteration until all the required interactions are covered. Such researches show a good performance for large-size constrained CA problems as well. But, these algorithms always contain several searching algorithms and try to balance them in the iteration computation process. So, these approaches often have a relatively heavy and complicated structure and are more suitable to solve large-size CA problems.
By using one-test-at-a-time mechanism or meta-heuristic algorithms, it is possible to perform large combinatorial testing that was not possible before. But, for small-size CA problem, such approaches still imply a high cost and often get an approximate result. In the practical applications, a portion of software testing works belongs to the small-size problem. So, finding a simple method to improve the probability of generating the optimal test suite for small-size combinatorial testing is a worthy goal. In order to optimize the test suite more effectively, some researchers try to translate small-size CA problem into another kind of problem to solve it, such as satisfiability problem (SAT) [18] and integer program problem [19] etc. However, these researches also meet some difficult challenges. For example, even translating a small-size SUT into a SAT problem, we will get a very large clause set. Besides, the normal planning algorithm cannot deal with a big optimization problem efficiently. Above researches enlighten us that the combination test suite generation problem should be translated into a simple and concise data structure for global optimization, meanwhile, it is necessary to equip an effective global optimization algorithm to improve the solution quality.
3. Proposed Method
Fig. 1 is the flowchart of combinatorial test suite global optimization mechanism. As it shows, a one-to-one correspondence is created between a test case in its complete set and a gene of a binary code string. Based on this, we can create a mapping relation between a test case subset of complete set and a vertex in the binary code space. This means we can translate a combination test suite generation problem into a binary code based global optimization problem to solve. The binary string is a simpler and more compact data structure. Moreover, it is more suitable for global optimization computation. In this section, we will introduce the encoding and decoding procedure firstly.
3.1 Binary Code Based Problem Transformation
Generally, we can use a covering array (CA) or a mixed level covering array (MCA) to describe a SUT [4]. The difference between CA and MCA is that each test parameter of CA has the same value range, but in MCA it can be different. Actually the CA can be looked upon as a special case of MCA, and the processing methods for them have no difference. To facilitate the computation process, we make this study for CA problem only. The following is the definition of covering array given by Cohen [20].
Definition 1 (Covering array): Let $N$, $k$, $t$, and $v$ be positive integers. A covering array, $CA(N; t, k, v)$, is a $N\times k$ array on $v$ symbols, and every $N\times t$ sub-array contains all ordered subsets from $v$ symbols of size $t$ at least once. In such an array, $t$ is called strength, $k$ is called the degree, $v$ is called the order.
By this definition, we can get that the number of test cases in the complete set of $CA(N;t, k, v)$ is $v^k$, and the number, of, whole, combinations, with covering strength $t$ is $v^tC_k^t$. For describing the problem transformation mechanism, the other definitions are given in the following.
Definition 2: Let $\Phi$ be the complete test case set of $CA(N;t, k, v)$, then $|\Phi|=v^k$. Sort $\Phi$ in ascending order by the value of each test parameter. The id $j$ of test case $t_j$ is labeled from 0 to $|\Phi|-1$.
By this definition, the complete test case set $\Phi$ will show an orderly structure. Furthermore, we can use the id $j$ to visit a definite test case $t_j$ in $\Phi$. For example, Table Ⅲ is the complete test case set of the SUT in Table Ⅰ.
表 Ⅲ AN ORDERLY COMPLETE TEST CASES SETTable Ⅲ AN ORDERLY COMPLETE TEST CASES SET$A$ $B$ $C$ $t_j$ id $j$ a0 b0 c0 $t_0$ 0 a0 b0 c1 $t_1$ 1 a0 b0 c2 $t_2$ 2 a0 b1 c0 $t_3$ 3 $\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $ a2 b2 c2 $t_{26}$ 26 Definition 3: The binary code sequence $I$ is a string of length $L$. Its genes $\alpha_j\{0, 1\}$, $j=0, 1, \ldots L-1$.
As Fig. 1 shows, the binary code space is an $L$-dimensional hypercube. The vertex in this hypercube is a unique binary coding string.
Definition 4: Let $\gamma_i$ be a test cases subset of $\Phi$ and $\Gamma=$ $\{\gamma_i|\gamma_i$ $\in$ $\Phi\}$. Then, $\Gamma$ is the complete set of $\Phi$'s subset, and for $\forall\gamma_i$ and $\forall\gamma_j$ $(\gamma_i, \gamma_j \in \Gamma$ and $i\neq j)$, $\gamma_i\neq\gamma_j$. Let $\lambda_i$ be a vertex in binary code space and $\Lambda=\{\lambda_0, \lambda_1, \ldots$ $\}$. Then, $\Gamma$ is the complete set of vertex in binary code space.
Based on above definitions we can get 2 characteristic theorems of set $\Gamma$ and set $\Lambda$ firstly.
Theorem 1: Let $L=|\Phi|$, then the element number of set $\Gamma$ is equal to set $\Lambda$'s. That is $|\Gamma|=|\Lambda|=2^L$.
Proof: By Definition 3, we can get there are $2^L$ unique vertexes in the $L$-dimensional hypercube. By Definition 1, we know there are $|\Phi|=v^k$ distinct test cases in $\Phi$. Meanwhile, for a test case, there are also two statuses, it belong to the test case subset or not. That means the element number of $\Gamma$ is $|\Gamma|=2^{|\Phi|}$. So, if $L=|\Phi|$, we can get $|\Gamma|=$ $|\Lambda|$ $=$ $2^L$.
Theorem 2: Make test case $t_j$ join the TS only when the gene $\alpha_j=1$ $(j=0, 1, \ldots, L-1)$. Then, both $\Gamma\rightarrow\Lambda$ and $\Lambda$ $\rightarrow$ $\Gamma$ are bijections.
Proof: Firstly, we can prove both $\Gamma\rightarrow\Lambda$ and $\Lambda\rightarrow\Gamma$ are surjections based on above assumption. By Theorem 1 we know the set $\Gamma$ and set $\Lambda$ have same number of elements when $L=|\Phi|$. Besides, both the test case in $\Phi$ and the gene in a binary string have two statuses, which is yes or no and 1 or 0. Meanwhile, the $t_j$ has corresponded to one and only $\alpha_j$ by the same id $j$. So, under the given condition, each element in set $\Gamma$ would correspond to one and only object in set $\Lambda$, and each element in set $\Lambda$ is mapped by a unique object in set $\Gamma$, and vice versa. Based on this, we can get both $\Gamma\rightarrow\Lambda$ and $\Lambda\rightarrow\Gamma$ are surjections. On the other hand, by the Theorem 1, we can get all elements in set $\Gamma$ and set $\Lambda$ is a unique object. That means each element in set $\Gamma$ and set $\Lambda$ is different from others. Therefore, both $\Gamma\rightarrow\Lambda$ and $\Lambda\rightarrow\Gamma$ are injections. For $\Gamma\rightarrow\Lambda$ and $\Lambda$ $\rightarrow$ $\Gamma$ are both surjection and injection, we can get that both $\Gamma\rightarrow\Lambda$ and $\Lambda\rightarrow\Gamma$ are bijections.
The bijection relationships between set $\Gamma$ and set $\Lambda$ show there is a one-to-one correspondence between the test case subset and the vertex in binary code space, which is a necessary condition for the problem transformation.
3.2 Decoding Mechanism
The decoding mechanism is used to parse the binary code sequence so as to construct the corresponding combinatorial test case subset. To facilitate this process, we use a positive integer, whose value is set from 0 to $v-1$, to mark the symbol of each parameter of SUT. Then, we can use a mod-$v$ number to present the details of a test parameter.
Definition 5: For a covering array $CA(N;t, k, v)$, a test case can be expressed as a $k$ figures integer sequence, and each figure is a positive mod-$v$ integer.
Let $x_i$ $(x_i\in\{0, 1, \ldots, v-1\})$ express the value of $i$th parameter ($i\in\{0, 1, \ldots, k-1\}$) of test case $t_j$. Then, an equation can be created to show the details of test case $t_j$ after parsing the number id $j$. The formula is
$ \begin{align} j=x_{k-1}\ast v^{k-1}+ \cdots + x_1\ast v^1+x_0\ast v^0 \end{align} $
(1) For example, to the CA in Table Ⅰ, if the gene value of $\alpha_3$ in $I_i$ is 1, that means $j=3.$ Then, we can create an equation $3=0\times3^2+1\times3^1+0\times3^0$. Based on this equation, we can get an integer sequence, which is 010. After that, this integer sequence can be translated into a test case $t_3$ $=$ a0b1c0. Repeating this process for each valuable gene in $I_i$, whose value is 1, we can generate a whole test suite. This procedure is shown as follows.
Algorithm 1 Decoding Input: positive integer $k$ and $v$, binary code of $I_i$ Output:test suite TS 1: for $j$ from 0 to $L-1$do 2: if $\alpha_j$ equal to 1 then 3: $dnum=j$; 4: for $m$ from 0 to $k-1$ do 5: $x = dnum$%$v; ~ dnum/=v$; 6: $t_j[m]=x$; 7: end for 8: put $t_j$ into TS; 9: end if 10:end for In above procedure, TS = $t_j|j=0, 1, \ldots, L-1$, $t_j=$ $ x_{k-1}, $ $\ldots, $ $x_1, x_0$ where $x_i$ is a mod-$v$ integer value. Firstly, we set TS = $\phi$.
3.3 Fitness Calculation and Constraint Handling
In the proposed approach, the CA problem can be regarded as a sort of optimization problem. So, we can formulate $\lambda_i$'s fitness as
$ \begin{align} \max f(\lambda_i), \quad \lambda_i\in\Lambda. \end{align} $
(2) By Theorem 2, we know $\lambda_i\rightarrow\gamma_i$ is a one to one mapping. So, we can give the following definition
Definition 6: the fitness of $\lambda_i$ and $\gamma_i$ is
$ \begin{align} f(\lambda_i)=f(\gamma_i)=f_i. \end{align} $
(3) Since we expect to use as few test cases as possible to cover whole combinations with strength-$t$, the fitness of $\lambda_i$ can be evaluated from two aspects. The first one is the covering degree for strength-$t$ combination in CS. The second one is the number of test cases in $\lambda_i$. In order to balance the two sides, we propose to use following formula to calculate $f_i$
$ \begin{align} f_i =10\ast\frac{\omega}{|CS|}+1-\frac{|TS|}{|\Phi|} \end{align} $
(4) where $\omega$ is the number of covered combinations in CS and $|CS|$ is the number of all strength-$t$ combinations. Obviously, $0<\omega\leq|CS|$ and $0<|TS|\leq|\Phi|$. Based on our experience, $10\ast\omega/|CS|$, which is between 0 and 10, is used to judge the coverage of combinations set. Meanwhile, $1$ $-$ $|TS|/|\Phi|$, which is between 0 and 1, is used to show the test suite size relationship.
Besides, for handing constraints, a specific calculation mechanism is used to filter out all invalid genes from $\lambda_i$ before fitness evaluating.
Definition 7: The constraint set $CO=\{co_i | i=1, 2, \ldots \}$. If the constraint $co_i$ is available, we can generate a corresponding binary string $I_i=\{\alpha_0\alpha_1 \cdots \alpha_{L-1}\}$, in which the $\alpha_j$ $=$ $0$ if its corresponding test case $t_j$ is infeasible to $co_i$; otherwise, $\alpha_j=1$. Based on ${I_1, I_2, \ldots}$, we can generate an invalid genes filtering string $I_{co}$
$ \begin{align} I_{co} = I_1\wedge I_2\wedge \cdots \end{align} $
(5) where $\wedge$ is the logic and operation.
Using $I_{co}$ we can filter out all invalid genes in $\lambda_i$ easily by following formula
$ \begin{align} \lambda_i =\lambda_i \wedge I_{co}. \end{align} $
(6) After this calculation process, the fitness of $\lambda_i$ would be calculated by (4).
Based on fitness function, the value of $\lambda_i$ and $\gamma_i$ can be evaluated. Moreover, both of them have the same fitness value. Then, if we sort the set $\Gamma$ and set $\Lambda$ based on its individuals fitness, we can see the corresponding individuals between two sets also have the same position in each fitness sequence. So, we can get Theorem 3.
Theorem 3: The $\gamma_i$ and $\lambda_i$ have the same relative position in its fitness ordering sequence of set $\Gamma$ and set $\Lambda$.
This theorem gives a sufficient condition for the problem transformation. Above all, we can get a conclusion that a combination test suite generation problem can be translated into a binary code based global optimization problem to solve.
4. Cluster Searching Algorithm
As we know, the solution of EA is much likely to be affected by the phenomena of premature convergence and searching stagnation. The adaptive mechanism is the most commonly used self-adjusting method in EA. Nevertheless, in a practical application, it is difficult to make a reliable and accurate self-adjusting strategy for EA. So, the adaptive mechanism just can make a limited impact on the performance improvement of EA. Recently, a new research trend is aimed at creating a hybrid algorithm model by merging various searching mechanisms and operators in order to improve the performance of optimization system [21], [22]. Meanwhile, a new problem has emerged. That is how to balance the diversity and the complexity in a hybrid evolution system and harmonize the specificity and the coordination among multiple operators. We find that an organization with sort of cluster form structure in a complicated and huge evolutionary group has shown a particularly important role in the occurrence and development process of such group. Inspired by this, we propose to create a certain cluster organization in the population, and use it to control and adjust the searching process of population. Fig. 2 is the model of cluster searching algorithm (CSA).
In CSA, the cluster $C$ is a connection relationship among individuals, which can be generated by a clustering process. Such structure makes the population searching procedure divided into two parts, which are the searching among group process and the searching inside group process. By the interactions among multiple clusters, the searching among group process is developed to explore the code space. In contrast with it, the searching inside group process is aimed at refining the individuals in each group. Such job-division mechanism is not only helpful keeping low coupling between the global and local searching computation in evolution system, but also provides an environment and foundation for merging various searching mechanisms and operators, and adjusting the interrelation between the global and local searching process. For describing CSA, we give some basic definitions firstly.
Definition 8: A population Pop of CSA consists of an $n$-tuple of strings $I_i$ $(i=0, 1, \ldots, n-1)$ of length $L$, where the genes $\alpha_j\in\{0, 1\}$, $j=0, 1, \ldots, L-1$. $I_i$ is called an individual. The fitness of $I_i$ is $f_i >0$.
Definition 9: The cluster $C$ is a virtual group organization and the $A_i^j$ is a member of group $C_i$, which maps an individual $I_k$ in $Pop$. We can express it as
$ C=\{C_1, C_2, \ldots \}, \ \ C_i=\{A_i^1, A_i^2, \ldots \} \notag\\ \qquad\qquad\qquad\qquad\quad A_i^j=k, \ \ i, j, k=1, 2, \ldots $
(7) $ \emptyset=\{C_i\cap C_j|i\neq j\}, \ \ \emptyset=\{A_i^r\cap A_j^s|i\neq j\}\notag\\ Pop=\cup C_i, \ \ i, j, r, s=1, 2, \ldots. $
(8) Definition 10: In cluster $C$, the members of the same group have more similarity, and the members belonging to different groups have more diversity. That is
$ \begin{align} & Distance(A_i^r, A_j^q) > Distance(A_i^r, A_i^s), \notag\\ & \qquad\qquad\qquad\qquad\qquad i\neq j, \ \ i, j, r, s, q=1, 2, \ldots. \end{align} $
(9) Definition 11: The core member $A_i^c$ of $C_i$ is a member who has the best fitness in group $C_i$. That is
$ \begin{align} f_{A_i^r}\leq f_{A_i^c}\quad \forall\, A_i^r \in C_i, \ \, i, r=1, 2, \ldots. \end{align} $
(10) In the iteration process of CSA, the cluster, created in $k$th generation, is written as $C^k$, and the children, generated by the searching process of $C^k$, are $Ch^k$. The following are the main steps of CSA.
1. $C^0 = initializing (Pop^0)$;
2. While (the termination criteria are not reached) do
3. $Ch^k = searching among group (Pop^{k-1}, C^{k-1})$;
4. $C^k= clustering (Pop^{k-1}, Ch^k)$;
5. $Ch^k = searching inside group (Pop^{k-1}, Ch^k, C^k)$;
6. $C^0 = initializing (Pop^0)$;
7. End while.
In the first step, CSA initializes the population $Pop^0$ in binary code space randomly. After that each $I_i$ in $Pop^0$ is set to be a group $C_i$ $(i=1, 2, \ldots, |n|)$. And it is the only member $A_i^1$ and center member $A_i^c$ of $C_i$ also. Then, the cluster $C^0$ is created. The following is the iteration searching process of CSA.
4.1 Searching Among Group Process
In the searching among group process, we choose an individual from different groups and use multi-point crossover operation $\oplus$ and mutation operation $\odot$ to explore the code space. This step will generate $n$ offspring individuals.The number of crossover point $\xi$ in $\oplus$ operation is randomly generated between $a$ and $b$. The default parameters $a$ and $b$ satisfy $1<a<b<L/2$. In $\odot$ operation, the gene mutation probability is $\rho\in(0, 0.05)$.
Algorithm 2 Searching among group Input: population $Pop^{k-1}$ and cluster $C^{k-1}$ Output:$n$ offspring individuals in $Ch^k$ 1: Randomly select two different groups $C_i$ and $C_j$ ($i\neq j$) from current cluster $C^{k-1}$, then randomly select member $A_i^r$ and $A_j^s$ from $C_i$ and $C_j$ respectively. 2: Perform $\oplus$ operation between $A_i^r$ and $A_j^s$ to generate binary string $ch_1$ and $ch_2$. Then, perform $\odot$ operation on $ch_1$ and $ch_2$, respectively. That is ${align}{matrix} c{{h}_{1}},c{{h}_{2}}=\odot (A_{i}^{r}\oplus A_{j}^{s}). & (11) \\ {matrix}{align}$ 3: The number of offspring individuals $p=p+2$. If $p<n$, return to step 1. Otherwise, exit. 4.2 Clustering Process
After the searching among group process, 2$n$ individuals will be dispersed in code space widely. Then, we use a clustering process to assign them into different groups so that they have a high degree of similarity within the group, and that the cluster is to be distinct. This process helps CSA to analyze the spatial distribution structure of population in code space. This clustering process also consists of two parts: a technique for calculating the distance between binary strings, and a grouping technique to minimize the distance between individuals in same group while maximizing the distance among groups.
4.2.1 Distance Calculation by PAD
Based on the bound researches of optimal test case number, such as symbol-fusing and the lower and upper bound [23], [8], we can see that the valuable genes, whose value is 1, just have occupied a small proportion in binary code. In order to emphasize the importance of these valuable genes in clustering process, we propose to use positive attribute distance (PAD) [24] instead of traditional hamming distance to calculate the individual distance.
The PAD of two binary sequences is as follows
$ \begin{align} PAD(I_i, I_j) = 0\leq \frac{2\Psi_{ij}}{\Psi_i+\Psi_j} \end{align} $
(12) where $\Psi_i$ is the number of 1's in $i$th binary sequence, $\Psi_j$ is the number of 1's in $j$th binary sequences, and $\Psi_{ij}$ is the number of 1's common to both $i$th and $j$th binary sequences. Obviously, the result of PAD is in the interval between 0 and 1, where 1 expresses absolute similarity and 0 expresses absolute diversity.
Furthermore, we use the average PAD of population as the indicator of population diversity $\gamma\in(0, 1)$. It can be calculated by following formula
$ \begin{align} \gamma=\frac{2}{|n|(|n|-1)}\sum\limits_{i=2}^{|n|}\sum\limits_{j=1}^{i-1}PAD(I_i, I_j). \end{align} $
(13) 4.2.2 Clustering Based on PAD
Algorithm 3 is the main steps of a hierarchical clustering process. In this process, we set two matrixes, IDM and GDM, to store the individual distance $idm_{ij}\in IDM$ and group distance $gdm_{ij}\in GDM$. That is
$ idm_{ij}=\begin{cases} 0,&{\rm if} ~i\leq j, \ \, i, j=1, 2, \ldots \\ PAD(I_i, I_j),&{\rm else} \end{cases} $
(14) $ gdm_{ij}= \begin{cases} 0,&{\rm if} \ i\leq j, \\ &\quad i, j, r, s=1, 2, \ldots \\ \frac{\sum\limits_{A_i^r\in C_i} \sum\limits_{A_j^s\in C_j}PAD(A_i^r, A_j^s)} {|C_i||C_j|},&{\rm else}. \end{cases} $
(15) Meanwhile, the current population $Pop^{k-1}$ and its offspring individuals $Ch^k$ have been mixed together to join clustering process.
Algorithm 3 Searching among group Input: population $Pop^{k-1}$ and offspring individuals $Ch^k$ Output: new cluster $C^k$ 1: Set each $I_i$ in population to be a temporary group $C_i$. Initialize the IDM by (14). After that initialize the GDM by (15) based on IDM. Then, calculate the population diversity $\gamma$ by (13), and set the average group distance $\xi=\gamma$. 2: Find the minimum group distance $gdm_{pq}$ in GDM and merge the group $C_p$ and $C_q$ into a new group $C_{pq}$. Then, update the GDM. 3: Calculate new average group distance $\xi'$ $ {align}{matrix} {\xi }'=\frac{2}{|C|(|C|-1)}\sum\limits_{i=2}^{|C|}{\sum\limits_{j=1}^{i-1}{g}}d{{m}_{ij}} & (16) \\ {matrix} {align}$ where $|C|$ is the number of groups after step 2. If $\xi'<\xi$, go to step 4; otherwise, $\xi=\xi'$ and return step 2. 4: Restore the group $C_p$, $C_q$ and GDM. After that, update the center member for each group and output $C$. 4.3 sSearching Inside Group Process
The searching inside group process consists of two operations, SIG1 and SIG2, which are used to reduce the valuable genes in binary string while maintaining it can satisfy all covering requirements. In this process, a parameter $m$ is used to limit the execution times of SIG1 and SIG2 for each group. In this paper, the $m$ is adjusted by the following formula
$ \begin{align} m = {\rm round}\left(\frac{m_2-m_1}{G-1}g+\frac{m_1G-m_2}{G-1}\right) \end{align} $
(17) where $0\leq m1<m2$, $g=1, 2, \ldots, G$ is the generation number, G is its ceiling number and round($\cdot$) is the rounding operation. During the searching process, (17) makes $m$ increase from $m_1$ to $m_2$ gradually. Besides, parameter $\lambda$ $\in$ $(0, 1)$ is used to adjust the operation probability between SIG1 and SIG2.
Algorithm 4 Searching inside group Input: $Pop^{k-1}$, $Ch^k$, $C^k$ and $\lambda$ Output: $m|C|$ offspring individuals in $Ch^k$ 1: Run this operation for $C_i$, $i=1, 2, \ldots, |C|$, and set $t=0$. 2: $UR(0, 1)$ is a uniformly distributed random number between 0 and 1. If $UR(0, 1)<\lambda$, goto step 2.1 to execute SIG1. Otherwise, goto step 2.2 to execute SIG2. 2.1: SIG1: select two members $A_i^r$ and $A_i^s$ from $C_i$ randomly, and execute logic and operation $\wedge$ between them. After that, perform multi-point crossover operation $\oplus$ between the output string by $A_i^r\wedge A_i^s$ and the center members $A_i^c$. This process can be expressed as ${align}{matrix} c{{h}_{1}},c{{h}_{2}}=A_{i}^{c}\oplus (A_{i}^{r}\wedge A_{i}^{s}). & (18) \\ {matrix}{align}$ After that, put the generating individuals $ch_1$ and $ch_2$ into $C_i$, $t=t+2$ and goto step 3. 2.2: SIG2: Randomly select three members $A_i^r$, $A_i^s$ and $A_i^t$ from $C_i$. Then, perform logic and operation $\wedge$ among them and output a binary string $ch$ ${align}{matrix} ch=A_{i}^{r}\wedge A_{i}^{s}\wedge A_{i}^{t}. & (19) \\ {matrix}{align}$ If $ch$ can cover all strength-$t$ combinations in CS, goto step 2.2.1. Otherwise, goto step 2.2.2. 2.2.1: Randomly select a valuable gene in $ch$, whose value is 1, and change it into 0. If the updated $ch$ still can cover all strength-$t$ combinations in CS, repeat this step. Otherwise, recover the value of last chosen gene to 1 and goto step 2.2.3. 2.2.2: Randomly select a gene in $ch$, whose value is 0, and change its value into 1. Then repeat this step until $ch$ has covered all strength-$t$ combination in CS and goto step 2.2.3. 2.2.3: Make the generating individuals $ch$ join $C_i$, set $t=t+1$ and goto step 3. 3: If $t<m$, update the $A_i^c$ of $C_i$ and return to step 2. Otherwise, set $i=i+1$ and return to step 1. Fig. 3 shows the practical calculation process of searching inside group. In Fig. 3(a), two binary strings, $ch_1$ and $ch_2$, are generated by (18). In Fig. 3(b), a temporary individual $ch$ is generated by (19). Then, one gene of $ch$ is selected to change its value from 0 to 1, and a solution is gotten.
4.4 Cluster Selection Process
After the cluster searching process, the scale of current population increases to $2n+m|C|$. In order to satisfy the computation requirement for next generation, we need to select $n$ individuals from current population to form next population. In cluster selection process, $n$ individuals will be selected from each group respectively.
Algorithm 5 Cluster selection Input: $Pop^{k-1}$, $Ch^k$, $C^k$ Output: $Pop^k$ 1: For each $C_i$, sort its members in descending order by their fitness. After that, set $i=1$, $k=1$, $j=1$. 2: Take member $A_i^k$ from $C_i$ to be a surviving individual $I_j$ and join next population. It can be expressed as ${matrix} {{I}_{j}}=A_{i}^{k},\quad j=1,2,\ldots ,n & {} \\ i=j \%|C|+1,\quad k=\text{round}\left( \frac{\mathit{j}}{|\mathit{C}|} \right)+1. & (20) \\ {matrix}$ 3: If $j<n$, $j=j+1$ and return to step 2; otherwise, exit. 5. Simulation Experiments
In this section, we implemented 3 algorithms, a real code genetic algorithm with one-test-at-a-time mechanism GA/OTAT, a binary code GA with global optimization approach GA/BCGO, and CSA, in C++. Meanwhile, 32 CA problems are chosen to test above 3 algorithms and TCA [16], whose source code is implemented in C++, and available online1, on a 2.1 GHz AMD Phenom PC with 2 GB memory.
1https://github.com/leiatpku/TCA
5.1 Experimental Settings
An individual $x_k, \ldots, x_2, x_1$ in GA/OTAT is a $k$-dimensional real vector. The gene value of each dimension is initialized between 0 and 1 randomly. In decoding process, the gene value of each dimension in an individual will be translated into an integer by the formula round $(x_i\cdot v)$. According to this integer, we can get the corresponding parameter symbol in the SUT. For example, in an individual, if the gene $x_1 =0.6$, we can get $1={\rm round} (0.6\cdot3)$. For the CA in Table Ⅰ, the integer 1 means $x_1\rightarrow a_1$. Besides, the population size $n$ of GA/OTAT is 100. The searching operations of GA/OTAT include algebraic crossover, non-uniform mutation and linear sort selection. The following is mainly the computation procedure of GA/OTAT.
1. Initialize test suite TS $=\phi$;
2. Initialize combination set CS;
3. While(CS $\neq\phi$) do
4. Initialize population of GA/OTAT randomly;
5. While(the termination criteria are not reached)do
6. search a best test case $t_i$;
7. End while;
8. Make $t_i$ join TS;
9. Delete the covered combinations in CS;
10. End while;
11. Output TS.
Both GA/BCGO and CSA use (4) to verify the quality of test suite. Besides, based on our experience, we set population size $n=60$ in CSA. Furthermore, the GA/BCGO and CSA use the same maximum running iterations in the following trials and the CSA will costs more operation number than GA/BCGO in each searching iteration process. To be fair, we set a big population size for GA/BCGO, which is 100, to make its searching operations number is not less than CSA in each iteration process. Besides, GA/BCGO and CSA use same crossover and mutation operation. In multi-point crossover operation, the parameter $a$ and $b$, which are used to set the lower and upper limitation of crossover point, are set to $a={\rm round}(L/10)$ and $b$ $=$ ${\rm round}(L/4)$. The gene mutation probability is $\rho$ $=$ $0.01$. But, GA/BCGO uses the linear sort selection operation to generate next population. Besides, the parameter $m_1$ and $m_2$ of CSA, which are used to limit the computation times $m$ in searching inside process, are set to $m_1$ $=$ ${\rm round}(n/10)$ and $m_2 ={\rm round}(n/4)$. The parameter $\lambda$, which is used to control the execute probability of SIG1 and SIG2, is set to $\lambda=0.4$. The computation procedure of CSA and GA/BCGO is
1. Encode the binary code space;
2. Initialize population of CSA or GA/BCGO;
3. While(the termination criteria are not reached)do
4. search the best genetic string $I_i$ in code space;
5. End while;
6. Decode $I_i$ and output TS.
In the beginning of TCA, the initialization step is called to construct a CA set to cover all valid $t$-tuples, which works with a simple one-test-at-a-time greedy strategy. After that, TCA executes the search steps to adjust the CA set until the time budget is reached. During the search process, TCA switches between two modes, that is, the greedy mode and the random mode. With a probability $p=0.001$, TCA works in the random mode; otherwise (with a probability 1-p), TCA works in the greedy mode. In each run of testing, we will set a cutoff time to TCA in advance.
5.2 Results and Discussions
We ran GA/OTAT, GA/BCGO, CSA and TCA for 32 CA problems over 30 independent trials. The experiment results of above 4 algorithms are shown in Table Ⅳ and Table Ⅴ with the experiment results of HHH [17] and integer program method [19] for part of testing problems.
表 Ⅳ EXPERIMENT STATISTICAL RESULTS OF 3 ALGORITHMS FOR 16 CA PROBLEMS WITH STRENGTH-2Table Ⅳ EXPERIMENT STATISTICAL RESULTS OF 3 ALGORITHMS FOR 16 CA PROBLEMS WITH STRENGTH-2$v$ $k$ $|\Phi|$ $\mathit{N}$ GA/OTAT GA/BCGO CSA TCA HHH Integer program $|TS|$ Time (s) $|TS|$ Time (s) $|TS|$ Time (s) $|TS|$ $|TS|$ $|TS|$ Time (s) Best Ave. Best Ave. Best Ave. Best Ave. Best Ave. Best Ave. 2 5 32 6 7 7.7 5.97 6 6 0.27 6 6 0.36 6 6.5 - - 6 - 0.70 6 64 - 7 8.1 6.54 6 6.2 0.68 6 6 1.10 6 6.7 - - 6 - 16.57 7 128 - 7 8.4 10.89 6 9.4 1.43 6 6 1.99 6 7.3 - - 6 - 441.2 8 256 - 8 10.7 12.71 6 11.3 3.91 6 6 4.70 6 7.0 - - - - - 9 512 - 8 11.2 14.5 40 51.6 7.49 6 6 9.60 7 7.9 - - - - - 10 1024 - 8 12.9 25.3 60 70.8 19.5 6 8.4 23.1 7 8.2 - - - - - 11 2048 7 9 14.2 28.8 141 167 40.3 7 9.5 49.0 8 8.7 - - - - - 12 4096 - 9 16.7 32.9 196 228 112.4 20 33.9 145 8 8.8 - - - - - 3 4 81 9 9 10.6 8.8 9 9 1.29 9 9 1.70 9 9.6 9 9 9 - 0.08 5 243 11 11 12.8 17.2 11 17.2 3.73 11 11 5.31 11 11.3 11 11.35 13 - * 6 729 12 16 18.1 19.6 44 57.8 11.5 12 12 14.9 13 14.1 13 14.2 - - - 7 2187 - 19 21.7 36.9 157 165 39.1 12 16.9 50.2 13 14.5 14 15 - - - 8 6561 13 20 27.9 40.3 224 277 133 88 97.5 148 14 14.7 15 15.6 - - - 4 5 1024 16 21 29.5 68.1 56 71.5 22.4 16 16.9 25.6 18 19.8 - - - - - 6 4096 19 25 36.7 74.4 197 227 194 22 34.2 223 21 22.7 - - - - - 7 16384 21 28 40.9 93 320 342 417 116 135 508 24 25.2 - - - - - 表 Ⅴ EXPERIMENT STATISTICAL RESULTS OF TEST CASE NUMBER FOR 16 CA PROBLEMS WITH STRENGTH-3Table Ⅴ EXPERIMENT STATISTICAL RESULTS OF TEST CASE NUMBER FOR 16 CA PROBLEMS WITH STRENGTH-3$v$ $k$ $|\Phi|$ $\mathit{N}$ GA/OTAT GA/BCGO CSA TCA HHH $|TS|$ Time (s) $|TS|$ Time (s) $|TS|$ Time (s) $|TS|$ $|TS|$ Best Ave. Best Ave. Best Ave. Best Ave. Best Ave. 2 5 32 10 11 13.6 11.1 10 11.2 0.41 10 10 0.42 10 10.6 - - 6 64 - 13 14.2 17.6 10 12.6 1.29 10 10 1.34 10 10.7 - - 7 128 - 14 15.6 24.4 12 15.1 2.09 10 10 2.15 10 11.2 - - 8 256 - 17 19.8 31.8 15 19.6 5.22 10 10 5.62 11 12.0 - - 9 512 - 19 21.9 41.0 17 23.9 9.85 10 10 11.0 11 11.9 - - 10 1024 - 22 25.2 52.3 41 54.7 25.9 10 11.8 25.3 13 15.8 - - 11 2048 12 24 27.7 69.9 80 92.8 56.8 12 19.4 55.5 14 15.5 - - 12 4096 15 28 30.9 82.1 239 257 131 69 85.7 133 17 18.1 - - 3 4 81 27 29 34.2 68.1 27 27 1.62 27 27 1.91 27 28.9 27 29.45 5 243 - 30 36.1 71.3 27 34.2 3.93 27 27 5.53 29 31.6 39 41.25 6 729 33 36 42.5 80.5 55 62.9 15.5 33 35.5 15.4 34 36.1 33 39 7 2187 39 48 54.4 89.9 195 217 87.9 49 54.9 93.2 46 47.7 49 50.8 8 6561 42 54 58.9 99.6 251 275 145 156 170 157 51 52.2 52 53.65 4 5 1024 64 72 81 148 60 78.2 22.7 64 67.9 27.6 66 68.7 - - 6 4096 88 93 105 198 229 249 212 194 216 231 94 96.6 - - 7 16384 - 99 117 153 370 379 499 233 247 527 96 98.4 - - In first round of experiments, 16 CA problems with strength-2 have been tested. In the first 8 tests, we set $v$ $= 2$ and $k= 3, 4, 5, \ldots, 12$, respectively. The maximum running iterations of GA/OTAT, GA/BCGO and CSA are set to 200, 500 and 1000 when $k$ is less than or equal to 6, 9 and 12, respectively. In the next 5 tests, $v =3$ and $k=$ $4, $ $5, $ $\ldots, $ $8$, respectively. The maximum running iterations of 3 algorithms are set to 200, 500 and 1000 when $k$ is less than or equal to 4, 6 and 8, respectively. In the last 3 tests, $v=4$ and $k = 5$, $6$, $7$, respectively. The maximum running iterations of 3 algorithms are set to 1000 and 2000 when $k$ is less than or equal to 6 and 7, respectively. The experiment statistical results of above 16 tests are shown in Table Ⅳ. In second round of experiments, the covering criterion of above 16 CA problems is changed to strength-3. Meanwhile, the parameters of $v$, $k$ and maximum running iterations of above 16 CA problems have the same value as the first round experiments. Table Ⅴ is the experiment statistical results of these 16 CA problems. For a fair comparison, the cutoff time of TCA for each CA problem is set to an integer number, which is gotten by rounding up CSAs running time. HHH does not provide its running time and just shows the best and average number of $|TS|$ for $CA(N; t, 3^k)$ where $4\leq k\leq 8$ with strength-2 and strength-3. The integer program method just provides the results of 8 small-size CA problems with strength-2. The $\ast$ in Table Ⅳ indicates the best possible solution found at the point when the process was stopped after running for about 6.5 hours. Besides, the number $N$ is the known minimal number of $|TS|$ for 36 CA problems, which can be found in Colbourns website2.
2http://www.public.asu.edu/~ccolbou/src/tabby/catable.html
In Table Ⅳ, we can see the CSA has gotten 11 best solutions of 16 CA problems and GA/BCGO has gotten 6 best solutions, but GA/OTAT just gets an approximate solution for each 16 problems. In Table Ⅴ, the experiment results show a similar formation as Table Ⅳ. With a holistic view, GA/BCGO can get the optimal solution with a high probability when the problems scale $|\Phi|$ is less than 250. It is worth noting that CSA has improved the performance of global optimization mechanism immensely. It can find the optimal solution with a high probability when the problems scale $|\Phi|$ is less than 2000. Instead, GA/OTAT just can get the approximate solution even the $|\Phi|$ of CA problem is very small. However, when the $|\Phi|$ of CA problem is more than 4000, the solution qualities and average CPU times of GA/OTAT begin to transcend CSA distinctly. Moreover, even the $|\Phi|$ is more than 16 000, the solutions and average CPU times of GA/OTOA still keep an acceptable approximate result.
Comparing the experiment results between GA/OTAT, TCA and HHH, we can see the meta-heuristic algorithms improve the average quality of $|TS|$ remarkably relative to the traditional one-test-at-a-time algorithm for its search step can adjust the generated CA set dynamically. However, the heuristic algorithms should cost lots of array transformation operations to adjust the CA set and combinations set in its greedy and random search processes, which make its running time increase clearly when the cover strength has been augmented. In [16], TCA sets its cutoff time up to 1000 second so as to get a good performance. For above experiments, we can see an extended cutoff time is very helpful for improving the stability of solutions in TCA. It is worth noting that the global optimization ability of TCA is usually limited, notwithstanding it can adjust the generated CA set constantly. So, for most of experiment trials, even the problems scale $|\Phi|$ is not very huge, TCA is likely to generate a high quality approximate solution. Under the same runtime, CSA shows a better average quality of $|TS|$ than TCA when the problems $|\Phi|$ is less than 2000. Meanwhile, the Integer Problems results shows that it is difficult for an integer program method to solve the problem which has more than about 100 integer variables. Instead, CSA shows a good performance when the $|\Phi|$ is less than 2000. That means the proposed approach can acquire more powerful global optimization ability through CSA than others. Moreover, the problem translation mechanism makes CSA less sensitive to strength-$t$ than TCA and HHH, which is a very helpful character for CSA to get a higher performance when the covering strength is augmented.
On the other hand, comparing the experiment data between CSA and GA/BCGO in Table Ⅳ and Table Ⅴ, we also find the best solution of GA/BCGO is very close to CSA when the $|\Phi|$ is less than 250. But, with the increasing of $|\Phi|$, the solution qualities of GA/BCGO begin to decline clearly. We believe the traditional searching operations, such as crossover operation and mutation operation are great at rearranging genetic structure and finding new code pattern, but not so good at refining the existing genetic structure, especially when the gene sequence is too long. In CSA, the searching among group process could be used to prospect the potential gene code, and the searching inside group process could be used to reduce multiple gene patterns in different groups. Based on the collaboration between the searching inside group process and the searching among group process, CSA can improve the performance of proposed approach remarkably.
Above all, we believe the proposed global mechanism is a more efficient calculation approach for small-size SUT with multiple covering strength.
5.3 Parameter Analysis
In this section, we will discuss how to adjust and control the coordination process between the searching among group process and the searching inside group process.
In CSA, the parameter $m$ is used to control the computing number of searching inside group process in each group, which affects the proportion between global searching and local searching. For discussing the proper range and adjusting rule of $m$, the CA problem $(v=2, $ $k=10$ and with strength-2) is used to do a testing. In this experiment, the $m$ has been assigned 3 different values, which is $m=m_1$ ($m_1$ $=n/10$), $m=m_2$ ($m_2=n/4$), and $m$ is increased from $m_1$ to $m_2$ linearly by (17). Besides, the population size $n$ is 60 and the other parameters in CSA are same as the testing in above section.
Fig. 4 is the statistical data of this experiment after 30 independent trials. The boxplot shows the dispersion of 30 experiment results of $|TS|$. We can see that too smaller $m$ is likely to affect the solution quality, and too bigger $m$ makes the distribution of solution much scattered. From the mean value curve of $\gamma$, which shows the changing trend of population diversity, we can find the bigger $m$ makes its curve fall rapidly in early stages of searching process and the smaller $m$ makes its curve fall slowly. The quick diversity loss in early searching stages is likely to make the probability of premature increasing. Conversely, too slow convergence will affect the solution accuracy. The formula (17) makes $m$ increase gradually during the searching process. This test shows it is a feasible balancing mechanism, which makes the population keep a higher diversity against premature convergence in early searching stage while making population accelerate convergence to improve the accuracy of solution in later searching stage.
The parameter $\lambda$ is another important controlling parameter, which is used to adjust the running probability between SIG1 and SIG2. For discussing the proper range of $\lambda$, the CA problem ($v=3$, $k=6$ and with strength-3) is used to do the test. In this experiment, the $\lambda$ has been set 3 different values 0, 0.4 and 1. The values of other parameter in CSA are same as in the above section.
Fig. 5 is the statistical data of this experiment after 30 independent trials. Obviously, this parameter has a great influence on the gene sequence reducing process. If $\lambda=0$, only SIG2 operation would be executed in searching inside group process. The boxplot shows it makes the distribution of solution much scattered and the quality of solution more unstable. Oppositely, if $\lambda=1$, it would take only SIG1 operation to be executed in searching inside group process and makes the gene sequence unable to reduce effectively. The mean value curve of $\gamma$ has shown the same changing trends. When $\lambda=0$, this curve has fallen more rapidly. Meanwhile, when $\lambda=1$, the falling speed of $\gamma$ is too slow to ensure the quality of population convergence. Therefore, the efficiency of searching inside group process depends on the reasonable coordination between SIG1 and SIG2. Obviously, 0.4 is a feasible experience value for this parameter.
6. Conclusion
In this paper, we propose a cluster searching driven combinatorial test data global optimization and generation method. A program based on the proposed method that can be executed on compatible PC has been implemented. The experimental results show the proposed method can get a good performance for small-size CA problems. Within a reasonable time, the optimal test suite can be obtained with higher probability when the scale of complete test case set is less than 2000. But, the quality of its solution declines clearly when the count of test case is more than 4000. So, the proposed method is not ideal for solving the large-size CA problems. Furthermore, we have discussed 2 main control parameters of CSA and given a feasible adjusting approach for them. In future work, we will try to make this approach applicable to MCA problems.
-
表 1 主动视觉方法对比
Table 1 Active visual method comparison
方法 激光扫描法[28-31] 结构光法[32-42] 阴影法[43-48] TOF技术[49-53] 雷达技术[54-58] Kinect技术[59-67] 优点 1.重建结果很精确;
2.能建立形状不规则物体的三维模型.1.简单方便、无破坏性;
2.重建结果速率快、精度高、能耗低、抗干扰能力强.1.设备简单, 图像直观;
2.密度均匀, 简单低耗, 对图像的要求非常低.1.数据采集频率高;
2.垂直视场角大;
3.可以直接提取几何信息.1.视场大、扫描距离远、灵敏度高、功耗低;
2.直接获取深度信息, 不用对内部参数进行标定.1.价格便宜、轻便;
2.受光照条件的影响较小;
3.同时获取深度图像和彩色图像.缺点 1.需要采用算法来修补漏洞;
2.得到的三维点云数据量非常庞大, 而且还需要对其进行配准, 耗时较长;3.价格昂贵.1.测量速度慢;
2.不适用室外场景.1.对光照的要求较高, 需要复杂的记录装置;
2.涉及到大口径的光学部件的消像差设计、加工和调整.1.深度测量系统误差大;
2.灰度图像对比度差、分辨率低;
3.搜索空间大、效率低;
4.算法扩展性差, 空间利用率低.1.受环境的影响较大;
2.计算量较大, 实时性较差;1.深度图中含有大量的噪声;
2.对单张图像的重建效果较差.表 2 单目、双目和多目视觉方法对比
Table 2 Comparison of monocular, binocular and multiocular vision methods
单目视觉[68] 双目视觉[101-110, 112] 多目视觉[111, 113-119] 优点 1.简单方便、灵活可靠、使用范围广;
2.可以实现重建过程中的摄像机自标定, 处理时间短;
3.价格便宜.1.方法成熟;
2.能够稳定地获得较好的重建效果;
3.应用广泛.1.避免双目视觉方法中难以解决的假目标、边缘模糊及误匹配等问题;
2.在多种条件下进行非接触、自动、在线的测量和检测;
3.简单方便、重建效果更好, 能够适应各种场景;缺点 1.不能够得到深度信息, 重建效果较差;
2.重建速度较慢.1.运算量大;
2.基线距离较大时重建效果降低;
3.价格较贵.1.设备结构复杂, 成本更高, 控制上难以实现;
2.实时性较低, 易受光照的影响.表 3 基于视觉的三维重建技术对比与分析
Table 3 Comparison and analysis of 3D reconstruction based on vision
方法 优点 缺点 自动化程度 重建效果 实时性 应用场景 接触式方法[18] 快速直接测量物体的三维信息; 重建结果精度比较高 必须接触测量物体, 测量时物体表面容易被划伤 难以实现自动化重建 重建质量效果较好 实时 不能被广泛的应用, 只能应用到测量仪器能接触到的场景 激光扫描法[28-31] 重建的模型很精确; 重建形状不规则物体的三维模型 形成的三维点云数据量非常庞大, 不容易处理; 重建的三维模型会产生漏洞; 设备比较复杂, 价格非常昂贵 一定程度的自动化重建 重建的三维模型很好 实时 目前主要应用在工厂的生产和检测中, 无法被广泛使用 结构光法[32-42] 仅需要一幅图像就能获得物体形状; 简单方便; 无破坏性 重建速度较慢 一定程度的自动化重建 重建效果的精度比较高 实时 适用于室内场景 阴影法[43-48] 设备简单低耗; 对图像的要求非常低 对光源有一定的要求 自动化重建较低 重建效果较差, 重建过程比较复杂 实时 无法被广泛使用 TOF技术[49-53] 数据采集频率高; 垂直视场角大; 可以直接提取几何信息 深度测量系统误差大; 灰度图像对比度差、分辨率低; 搜索空间大、效率低; 算法扩展性差, 空间利用率低 一定程度的自动化重建 重建效果的精度较低 实时 能够广泛应用在人脸检测、车辆安全等方面 雷达技术[54-58] 视场大、扫描距离远、灵敏度高、功耗低; 直接获取深度信息, 不用对内部参数进行标定 受环境的影响较大; 计算量较大, 实时性较差; 价格较贵 一定程度的自动化重建 重建效果一般 实时 能够广泛应用于各行各业 Kinect技术[59-67] 价格便宜、轻便; 受光照条件的影响较小; 同时获取深度图像和彩色图像 深度图中含有大量的噪声; 对单张图像的重建效果较差 一定程度的自动化重建 重建效果较好 实时 能够被广泛应用于室内场景 明暗度法[69-72] 重建结果比较精确应用范围广泛 易受光源影响; 依赖数学运算; 鲁棒性较差 完全自动化重建 在光源比较差的情况下重建效果较差 非实时 难以应用于镜面物体以及室外场景物体的三维重建 光度立体视觉法[73-82] 避免了明暗度法存在的一些问题; 重建精度较高 易受光源影响; 鲁棒性较差 一定程度的自动化重建 重建效果较好 非实时 难以应用于镜面物体以及室外场景物体的三维重建 纹理法[83-86] 对光照和噪声都不敏感; 重建精度较高 通用性较低; 速度较快; 鲁棒性较好 完全自动化重建 重建效果的精度较高 非实时 只适用于具有规则纹理的物体 轮廓法[87-93] 重建效率非常高; 复杂度较低 对输入信息的要求很苛刻; 无法对物体表面的空洞和凹陷部分进行重建 完全自动化重建 重建效果取决于轮廓图像数量, 轮廓图像越多重建越精确 非实时 通常应用于对模型细节精度要求不是很高的三维重建中 调焦法[94-96] 对光源条件要求比较宽松; 可使用少量图像测量物体表面信息 很难实现自动重建; 需要多张图片才能进行重建 不能实现自动化重建 重建效果比较好 非实时 对纹理复杂物体的重建效果较差, 不能广泛应用 亮度法[97-100] 可全自动、无手工交互地进行高精度建模; 对光照条件要求宽松 鲁棒性较低; 灵活性较低; 复杂度较高 自动化重建 重建效果比较精细 非实时 可应用于文物数字化和人脸自动建模等领域 单目视觉法[68] 简单方便、价格便宜、灵活可靠、使用范围广; 可以实现重建过程中的摄像机自标定, 处理时间短 不能够得到深度信息, 重建速度较慢 自动化重建 重建效果较差 实时 可应用于各种场景 双目视觉法[101-110, 112] 方法成熟; 能够获得较好的重建效果 运算量大; 价格较贵; 在基线距离较大时重建效果降低 完全自动化重建 基线在一定条件下重建效果较好 实时 适用于室外场景, 应用范围广泛 多目视觉法[111, 113-119] 识别精度高, 适应性较强, 视野范围大 运算量较大; 价格昂贵, 重建时间长 完全自动化重建 基线距离较大的情况下重建效果明显降低, 而且测量精度下降, 速度受限 实时 能够适应各种场景, 在很多范围内都可以使用 区域视觉法[120-126] 计算简单; 匹配速度有所提高; 匹配精度较高; 提高了稠密匹配效率 受光线干扰较大; 对图像要求较高; 实验对象偏少 一定程度的自动化重建 重建结果较好 非实时 适用于各种领域, 例如, 视觉导航、遥感测绘 特征视觉法[154-166] 提取简单; 抗干扰能力强; 鲁棒性好; 时间和空间复杂度低 不能够对图像信息进行全面的描述 完全自动化重建 能够较精确地对物体实现三维重建 实时 应用范围较广 运动恢复结构法[127-139] 实用价值较高; 鲁棒性较强; 对图像的要求较低 计算量较大, 重建时间较长 完全自动化重建 重建效果取决于获取图像数量, 图像越多重建效果越好 实时 一般适用于大规模场景中 因子分解法[145-148] 简便灵活, 抗噪能力强, 不依赖于其他模型 精度较低, 运算时间较长 完全自动化重建 重建效果精度较低 实时 一般适用于大场景中 多视图几何法[149-163] 实用性较高; 通用性较强; 能够解决运动恢复结构法中的一些问题 计算量较大, 重建时间较长 一定程度完全自动化重建 重建效果比较好 实时 一般应用于静止的场景 统计学习法[164-173] 重建质量和效率都很高; 基本不需要人工交互 获取的信息和数据库目标不一致时, 重建结果与目标相差甚远 一定程度的自动化重建 重建效果取决于数据库的完整程度, 数据库越完备重建效果越好 非实时 适用于大场景、识别和视频检索系统 神经网络法[174-177] 精度较高, 具有很强的鲁棒性 收敛速度慢, 运算量较大 一定程度完全自动化重建 重建效果较好 实时 能够应用于各种领域, 例如计算机视觉、军事及航天等 深度学习与语义法[178-181] 计算简单, 精度较高, 不需要进行复杂的几何运算, 实时性较好 训练时间较长, 对CPU的要求较高 一定程度完全自动化重建 重建结果取决于训练的好坏 实时 适用于各种大规模场景 -
[1] Shen S H. Accurate multiple view 3D reconstruction using patch-based stereo for large-scale scenes. IEEE Transactions on Image Processing, 2013, 22(5): 1901-1914 doi: 10.1109/TIP.2013.2237921 [2] Qu Y F, Huang J Y, Zhang X. Rapid 3D reconstruction for image sequence acquired from UAV camera. Sensors, 2018, 18(1): 225-244 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=sensors-18-00225 [3] Lee D Y, Park S A, Lee S J, Kim T H, Heang S, Lee J H, et al. Segmental tracheal reconstruction by 3D-printed scaffold: Pivotal role of asymmetrically porous membrane. The Laryngoscope, 2016, 126(9): E304-E309 doi: 10.1002/lary.25806 [4] Roberts L G. Machine Perception of Three-Dimensional Solids[Ph.D. dissertation], Massachusetts Institute of Technology, USA, 1963 http://www.researchgate.net/publication/37604327_Machine_perception_of_three-dimensional_solids [5] Kiyasu S, Hoshino H, Yano K, Fujimura S. Measurement of the 3-D shape of specular polyhedrons using an m-array coded light source. IEEE Transactions on Instrumentation and Measurement, 1995, 44(3): 775-778 doi: 10.1109/19.387330 [6] Snavely N, Seitz S M, Szeliski R. Photo tourism: exploring photo collections in 3D. ACM Transactions on Graphics, 2006, 25(3): 835-846 http://cn.bing.com/academic/profile?id=6d3ecda51169cc021bfe50dd9473002b&encoded=0&v=paper_preview&mkt=zh-cn [7] Pollefeys M, Nistér D, Frahm J M, Akbarzadeh A, Mordohai P, Clipp B, et al. Detailed real-time urban 3D reconstruction from video. International Journal of Computer Vision, 2008, 78(2-3): 143-167 doi: 10.1007/s11263-007-0086-4 [8] Furukawa Y, Ponce J. Carved visual hulls for image-based modeling. International Journal of Computer Vision, 2009, 81(1): 53-67 doi: 10.1007/s11263-008-0134-8 [9] Han J G, Shao L, Xu D, Shotton J. Enhanced computer vision with Microsoft Kinect sensor: a review. IEEE Transactions on Cybernetics, 2013, 43(5): 1318-1334 doi: 10.1109/TCYB.2013.2265378 [10] Ondrúška P, Kohli P, Izadi S. Mobilefusion: real-time volumetric surface reconstruction and dense tracking on mobile phones. IEEE Transactions on Visualization and Computer Graphics, 2015, 21(11): 1251-1258 doi: 10.1109/TVCG.2015.2459902 [11] 李利, 马颂德.从二维轮廓线重构三维二次曲面形状.计算机学报, 1996, 19(6): 401-408 doi: 10.3321/j.issn:0254-4164.1996.06.001Li Li, Ma Song-De. On the global quadric shape from contour. Chinese Journal of Computers, 1996, 19(6): 401-408 doi: 10.3321/j.issn:0254-4164.1996.06.001 [12] Zhong Y D, Zhang H F. Control points based semi-dense matching. In: Proceedings of the 5th Asian Conference on Computer Vision. Melbourne, Australia: ACCV, 2002. 23-25 https://www.researchgate.net/publication/237134453_Control_Points_Based_Semi-Dense_Matching [13] 雷成, 胡占义, 吴福朝, Tsui H T.一种新的基于Kruppa方程的摄像机自标定方法.计算机学报, 2003, 26(5): 587-597 doi: 10.3321/j.issn:0254-4164.2003.05.010Lei Cheng, Hu Zhan-Yi, Wu Fu-Chao, Tsui H T. A novel camera self-calibration technique based on the Kruppa equations. Chinese Journal of Computers, 2003, 26(5): 587-597 doi: 10.3321/j.issn:0254-4164.2003.05.010 [14] 雷成, 吴福朝, 胡占义.一种新的基于主动视觉系统的摄像机自标定方法.计算机学报, 2000, 23(11): 1130-1139 doi: 10.3321/j.issn:0254-4164.2000.11.002Lei Cheng, Wu Fu-Chao, Hu Zhan-Yi. A new camera self-calibration method based on active vision system. Chinese Journal of Computer, 2000, 23(11): 1130-1139 doi: 10.3321/j.issn:0254-4164.2000.11.002 [15] 张涛.基于单目视觉的三维重建[硕士学位论文], 西安电子科技大学, 中国, 2014 http://cdmd.cnki.com.cn/Article/CDMD-10701-1014325012.htmZhang Tao. 3D Reconstruction Based Monocular Vision[Master thesis], Xidian University, China, 2014 http://cdmd.cnki.com.cn/Article/CDMD-10701-1014325012.htm [16] Ebrahimnezhad H, Ghassemian H. Robust motion from space curves and 3D reconstruction from multiviews using perpendicular double stereo rigs. Image and Vision Computing, 2008, 26(10): 1397-1420 doi: 10.1016/j.imavis.2008.01.002 [17] Hartley R, Zisserman A. Multiple View Geometry in Computer Vision. New York: Cambridge University Press, 2003 [18] Várady T, Martin R R, Cox J. Reverse engineering of geometric models—an introduction. Computer-Aided Design, 1997, 29(4): 255-268 doi: 10.1016/S0010-4485(96)00054-1 [19] Isgro F, Odone F, Verri A. An open system for 3D data acquisition from multiple sensor. In: Proceedings of the 7th International Workshop on Computer Architecture for Machine Perception. Palermo, Italy: IEEE, 2005. 52-57 https://www.researchgate.net/publication/221210593_An_Open_System_for_3D_Data_Acquisition_from_Multiple_Sensor?ev=auth_pub [20] Williams C G, Edwards M A, Colley A L, Macpherson J V, Unwin P R. Scanning micropipet contact method for high-resolution imaging of electrode surface redox activity. Analytical Chemistry, 2009, 81(7): 2486-2495 doi: 10.1021/ac802114r [21] Kraus K, Pfeifer N. Determination of terrain models in wooded areas with airborne laser scanner data. ISPRS Journal of Photogrammetry and Remote Sensing, 1998, 53(4): 193-203 doi: 10.1016/S0924-2716(98)00009-4 [22] Göbel W, Kampa B M, Helmchen F. Imaging cellular network dynamics in three dimensions using fast 3D laser scanning. Nature Methods, 2007, 4(1): 73-79 doi: 10.1038/nmeth989 [23] Rocchini C, Cignoni P, Montani C, Pingi P, Scopigno R. A low cost 3D scanner based on structured light. Computer Graphics Forum, 2001, 20(3): 299-308 doi: 10.1111/1467-8659.00522 [24] Al-Najdawi N, Bez H E, Singhai J, Edirisinghe E A. A survey of cast shadow detection algorithms. Pattern Recognition Letters, 2012, 33(6): 752-764 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=0edff8a864c6e0b39fa06480e789be36 [25] Park J, Kim H, Tai Y W, Brown M S, Kweon I. High quality depth map upsampling for 3d-tof cameras. In: Proceedings of the 2011 International Conference on Computer Vision. Barcelona, Spain: IEEE, 2011. 1623-1630 https://www.researchgate.net/publication/221110931_High_Quality_Depth_Map_Upsampling_for_3D-TOF_Cameras [26] Schwarz B. LIDAR: mapping the world in 3D. Nature Photonics, 2010, 4(7): 429-430 doi: 10.1038/nphoton.2010.148 [27] Khoshelham K, Elberink S O. Accuracy and resolution of kinect depth data for indoor mapping applications. Sensors, 2012, 12(2): 1437-1454 doi: 10.3390/s120201437 [28] 杨耀权, 施仁, 于希宁, 高镗年.激光扫描三角法大型曲面测量中影响参数分析.西安交通大学学报, 1999, 33(7): 15-18 doi: 10.3321/j.issn:0253-987X.1999.07.005Yang Yao-Quan, Shi Ren, Yu Xi-Ning, Gao Tang-Nian. Laser scanning triangulation for large profile measurement. Journal of Xi'an Jiaotong University, 1999, 33(7): 15-18 doi: 10.3321/j.issn:0253-987X.1999.07.005 [29] Boehler W, Vicent M B, Marbs A. Investigating laser scanner accuracy. The International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences, 2003, 34(5): 696-701 https://www.researchgate.net/publication/246536800_Investigating_laser_scanner_accuracy [30] Reshetyuk Y. Investigation and Calibration of Pulsed Time-of-Flight Terrestrial Laser Scanners[Master dissertation], Royal Institute of Technology, Switzerland, 2006. 14-17 https://www.researchgate.net/publication/239563997_Investigation_and_calibration_of_pulsed_time-of-flight_terrestrial_laser_scanners [31] Voisin S, Foufou S, Truchetet F, Page D L, Abidi M A. Study of ambient light influence for three-dimensional scanners based on structured light. Optical Engineering, 2007, 46(3): Article No. 030502 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=dd6f1c5d53c51efe4c6ad10b4ed19e5e [32] Scharstein D, Szeliski R. High-accuracy stereo depth maps using structured light. In: Proceedings of the 2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Madison, WI, USA: IEEE, 2003. I-195-I-202 https://www.researchgate.net/publication/4022931_High-accuracy_stereo_depth_maps_using_structured_light [33] Chen F, Brown G M, Song M M. Overview of 3-D shape measurement using optical methods. Optical Engineering, 2000, 39(1): 10-22 doi: 10.1117/1.602438 [34] Pollefeys M, Van Gool L. Stratified self-calibration with the modulus constraint. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999, 21(8): 707-724 doi: 10.1109/34.784285 [35] O'Toole M, Mather J, Kutulakos K N. 3D shape and indirect appearance by structured light transport. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 38(7): 1298-1312 doi: 10.1109/TPAMI.2016.2545662 [36] Song Z, Chung R. Determining both surface position and orientation in structured-light-based sensing. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(10): 1770-1780 doi: 10.1109/TPAMI.2009.192 [37] Kowarschik R, Kuehmstedt P, Gerber J, Schreiber W, Notni G. Adaptive optical 3-D-measurement with structured light. Optical Engineering, 2000, 39(1): 150-158 doi: 10.1117/1.602346 [38] Shakhnarovich G, Viola P A, Moghaddam B. A unified learning framework for real time face detection and classification. In: Proceedings of the 5th IEEE International Conference on Automatic Face Gesture Recognition. Washington, USA: IEEE, 2002. 14-21 https://www.researchgate.net/publication/262436645_A_unified_learning_framework_for_real_time_face_detection_and_classification [39] Salvi J, Pagès J, Batlle J. Pattern codification strategies in structured light systems. Pattern Recognition, 2004, 37(4): 827-849 doi: 10.1016/j.patcog.2003.10.002 [40] 张广军, 李鑫, 魏振忠.结构光三维双视觉检测方法研究.仪器仪表学报, 2002, 23(6): 604-607, 624 doi: 10.3321/j.issn:0254-3087.2002.06.014Zhang Guang-Jun, Li Xin, Wei Zhen-Zhong. A method of 3D double-vision inspection based on structured light. Chinese Journal of Scientific Instrument, 2002, 23(6): 604-607, 624 doi: 10.3321/j.issn:0254-3087.2002.06.014 [41] 王宝光, 贺忠海, 陈林才, 倪勇.结构光传感器模型及特性分析.光学学报, 2002, 22(4): 481-484 doi: 10.3321/j.issn:0253-2239.2002.04.022Wang Bao-Guang, He Zhong-Hai, Chen Lin-Cai, Ni Yong. Model and performance analysis of structured light sensor. Acta Optica Sinica, 2002, 22(4): 481-484 doi: 10.3321/j.issn:0253-2239.2002.04.022 [42] 罗先波, 钟约先, 李仁举.三维扫描系统中的数据配准技术.清华大学学报(自然科学版), 2004, 44(8): 1104-1106 doi: 10.3321/j.issn:1000-0054.2004.08.028Luo Xian-Bo, Zhong Yue-Xian, Li Ren-Ju. Data registration in 3-D scanning systems. Journal of Tsinghua University (Science and Technology), 2004, 44(8): 1104-1106 doi: 10.3321/j.issn:1000-0054.2004.08.028 [43] Savarese S, Andreetto M, Rushmeier H, Bernardini F, Perona P. 3D reconstruction by shadow carving: theory and practical evaluation. International Journal of Computer Vision, 2007, 71(3): 305-336 doi: 10.1007/s11263-006-8323-9 [44] Wang Y X, Cheng H D, Shan J. Detecting shadows of moving vehicles based on HMM. In: Proceedings of the 19th International Conference on Pattern Recognition. Tampa, FL, USA: IEEE, 2008. 1-4 [45] Rüfenacht D, Fredembach C, Süsstrunk S. Automatic and accurate shadow detection using near-infrared information. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 36(8): 1672-1678 doi: 10.1109/TPAMI.2013.229 [46] Daum M, Dudek G. On 3-D surface reconstruction using shape from shadows. In: Proceedings of the 1998 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Santa Barbara, CA, USA: IEEE, 1998. 461-468 http://www.researchgate.net/publication/3758700_On_3-D_surface_reconstruction_using_shape_from_shadows [47] Woo A, Poulin P, Fournier A. A survey of shadow algorithms. IEEE Computer Graphics and Applications, 1990, 10(6): 13-32 http://d.old.wanfangdata.com.cn/Periodical/xxykz201502016 [48] Hasenfratz J M, Lapierre M, Holzschuch N, Sillion F, Gravir/Imag-Inria A. A survey of real-time soft shadows algorithms. Computer Graphics Forum, 2003, 22(4): 753-774 doi: 10.1111/j.1467-8659.2003.00722.x [49] May S, Droeschel D, Holz D, Wiesen C. 3D pose estimation and mapping with time-of-flight cameras. In: Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems. Nice, France: IEEE, 2008. 120-125 https://www.researchgate.net/publication/228662715_3D_pose_estimation_and_mapping_with_time-of-flight_cameras [50] Hegde G P M, Ye C. Extraction of planar features from swissranger sr-3000 range images by a clustering method using normalized cuts. In: Proceedings of the 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems. St. Louis, MO, USA: IEEE, 2009. 4034-4039 https://www.researchgate.net/publication/224090431_Extraction_of_Planar_Features_from_Swissranger_SR-3000_Range_Images_by_a_Clustering_Method_Using_Normalized_Cuts [51] Pathak K, Vaskevicius N, Poppinga J, Pfingsthorn M, Schwertfeger S, Birk A. Fast 3D mapping by matching planes extracted from range sensor point-clouds. In: Proceedings of the 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems. St. Louis, MO, USA: IEEE, 2009. 1150-1155 http://www.researchgate.net/publication/224090528_Fast_3D_mapping_by_matching_planes_extracted_from_range_sensor_point-clouds?ev=auth_pub [52] Stipes J A, Cole J G P, Humphreys J. 4D scan registration with the SR-3000 LIDAR. In: Proceedings of the 2008 IEEE International Conference on Robotics and Automation. Pasadena, CA, USA: IEEE, 2008. 2988-2993 http://www.researchgate.net/publication/224318679_4d_scan_registration_with_the_sr-3000_lidar [53] May S, Droeschel D, Fuchs S, Holz D, Nüchter A. Robust 3D-mapping with time-of-flight cameras. In: Proceedings of the 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems. St. Louis, MO, USA: IEEE, 2009. 1673-1678 https://www.researchgate.net/publication/46160281_3D_mapping_with_time-of-flight_cameras [54] Streller D, Dietmayer K. Object tracking and classification using a multiple hypothesis approach. In: Proceedings of the 2004 IEEE Intelligent Vehicles Symposium. Parma, Italy: IEEE, 2004. 808-812 https://www.researchgate.net/publication/4092472_Object_tracking_and_classification_using_a_multiple_hypothesis_approach [55] Schwalbe E, Maas H G, Seidel F. 3D building model generation from airborne laser scanner data using 2D GIS data and orthogonal point cloud projections. In: Proceedings of ISPRS WG Ⅲ/3, Ⅲ/4, V/3 Workshop "Laser Scanning 2005". Enschede, the Netherlands: IEEE, 2005. 12-14 https://www.researchgate.net/publication/228681223_3D_building_model_generation_from_airborne_laser_scanner_data_using_2D_GIS_data_and_orthogonal_point_cloud_projections [56] Weiss T, Schiele B, Dietmayer K. Robust driving path detection in urban and highway scenarios using a laser scanner and online occupancy grids. In: Proceedings of the 2007 IEEE Intelligent Vehicles Symposium. Istanbul, Turkey: IEEE, 2007. 184-189 https://www.researchgate.net/publication/4268869_Robust_Driving_Path_Detection_in_Urban_and_Highway_Scenarios_Using_a_Laser_Scanner_and_Online_Occupancy_Grids [57] 胡明.基于点云数据的重建算法研究[硕士学位论文], 华南理工大学, 中国, 2010 http://cdmd.cnki.com.cn/Article/CDMD-10561-1011044410.htmHu Ming. Algorithm Reconstruction Based on Cloud Data[Master thesis], South China University of Technology, China, 2010 http://cdmd.cnki.com.cn/Article/CDMD-10561-1011044410.htm [58] 魏征.车载LiDAR点云中建筑物的自动识别与立面几何重建[博士学位论文], 武汉大学, 中国, 2012 http://cdmd.cnki.com.cn/Article/CDMD-10486-1013151916.htmWei Zheng. Automated Extraction of Buildings and Facades Reconstructon from Mobile LiDAR Point Clouds[Ph.D. dissertation], Wuhan University, China, 2012 http://cdmd.cnki.com.cn/Article/CDMD-10486-1013151916.htm [59] Zhang Z Y. Microsoft kinect sensor and its effect. IEEE Multimedia, 2012, 19(2): 4-10 doi: 10.1109/MMUL.2012.24 [60] Zhang Z. A flexible new technique for camera calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334 doi: 10.1109/34.888718 [61] Smisek J, Jancosek M, Pajdla T. 3D with Kinect. In: Proceedings of the 2011 IEEE International Conference on Computer Vision. Barcelona, Spain: IEEE, 2011. 1154-1160 http://www.researchgate.net/publication/221429935_3D_with_Kinect [62] Zollhöfer M, Nießner M, Izadi S, Rehmann C, Zach C, Fisher M, et al. Real-time non-rigid reconstruction using an RGB-D camera. ACM Transactions on Graphics, 2014, 33(4): Article No. 156 http://d.old.wanfangdata.com.cn/NSTLQK/NSTL_QKJJ0234048647/ [63] Henry P, Krainin M, Herbst E, Ren X F, Fox D. RGB-D mapping: using depth cameras for dense 3D modeling of indoor environments. Experimental Robotics: the 12th International Symposium on Experimental Robotics. Heidelberg, Germany: Springer, 2014. 477-491 doi: 10.1007%2F978-3-642-28572-1_33 [64] Henry P, Krainin M, Herbst E, Ren X F, Fox D. RGB-D mapping: using Kinect-style depth cameras for dense 3D modeling of indoor environments. The International Journal of Robotics Research, 2012, 31(5): 647-663 doi: 10.1177/0278364911434148 [65] Newcombe R A, Izadi S, Hilliges O, Molyneaux D, Kim D, Davison A J, et al. KinectFusion: real-time dense surface mapping and tracking. In: Proceedings of the 10th IEEE International Symposium on Mixed and Augmented Reality. Basel, Switzerland: IEEE, 2011. 127-136 http://www.researchgate.net/publication/224266200_KinectFusion_Real-time_dense_surface_mapping_and_tracking [66] Izadi S, Kim D, Hilliges O, Molyneaux D, Newcombe R, Kohli P, et al. KinectFusion: real-time 3D reconstruction and interaction using a moving depth camera. In: Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology. Santa Barbara, California, USA: ACM, 2011. 559-568 https://www.researchgate.net/publication/220877151_KinectFusion_Real-time_3D_reconstruction_and_interaction_using_a_moving_depth_camera [67] 吴侗.基于点云多平面检测的三维重建关键技术研究[硕士学位论文], 南昌航空大学, 中国, 2013 http://cdmd.cnki.com.cn/Article/CDMD-10406-1014006472.htmWu Tong. Research on Key Technologies of 3D Reconstruction Based on Multi-plane Detection in Point Clouds[Master thesis], Nanchang Hangkong University, China, 2013 http://cdmd.cnki.com.cn/Article/CDMD-10406-1014006472.htm [68] 佟帅, 徐晓刚, 易成涛, 邵承永.基于视觉的三维重建技术综述.计算机应用研究, 2011, 28(7): 2411-2417 doi: 10.3969/j.issn.1001-3695.2011.07.003Tong Shuai, Xu Xiao-Gang, Yi Cheng-Tao, Shao Cheng-Yong. Overview on vision-based 3D reconstruction. Application Research of Computers, 2011, 28(7): 2411-2417 doi: 10.3969/j.issn.1001-3695.2011.07.003 [69] Horn B K P. Shape from Shading: A Method for Obtaining the Shape of A Smooth Opaque Object from One View[Ph.D. dissertation], Massachusetts Institute of Technology, USA, 1970 http://www.researchgate.net/publication/37602086_Shape_from_shading_a_method_for_obtaining_the_shape_of_a_smooth_opaque_object_from_one_view [70] Penna M A. A shape from shading analysis for a single perspective image of a polyhedron. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1989, 11(6): 545-554 doi: 10.1109/34.24790 [71] Bakshi S, Yang Y H. Shape from shading for non-Lambertian surfaces. In: Proceedings of the 1st International Conference on Image Processing. Austin, USA: IEEE, 1994. 130-134 https://www.researchgate.net/publication/2822887_Shape_From_Shading_for_Non-Lambertian_Surfaces [72] Vogel O, Breuß M, Weickert J. Perspective shape from shading with non-Lambertian reflectance. Pattern Recognition. Heidelberg, Germany: Springer, 2008. 517-526 doi: 10.1007/978-3-540-69321-5_52.pdf [73] Woodham R J. Photometric method for determining surface orientation from multiple images. Optical Engineering, 1980, 19(1): Article No. 191139 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=CC024631993 [74] Noakes L, Kozera R. Nonlinearities and noise reduction in 3-source photometric stereo. Journal of Mathematical Imaging and Vision, 2003, 18(2): 119-127 doi: 10.1023/A:1022104332058 [75] Horovitz I, Kiryati N. Depth from gradient fields and control points: bias correction in photometric stereo. Image and Vision Computing, 2004, 22(9): 681-694 doi: 10.1016/j.imavis.2004.01.005 [76] Tang K L, Tang C K, Wong T T. Dense photometric stereo using tensorial belief propagation. In: Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Diego, USA: IEEE, 2005. 132-139 http://www.researchgate.net/publication/4156302_Dense_photometric_stereo_using_tensorial_belief_propagation [77] Xie H, Pierce L E, Ulaby F T. SAR speckle reduction using wavelet denoising and Markov random field modeling. IEEE Transactions on Geoscience and Remote Sensing, 2002, 40(10): 2196-2212 doi: 10.1109/TGRS.2002.802473 [78] Sun J A, Smith M, Smith L, Midha S, Bamber J. Object surface recovery using a multi-light photometric stereo technique for non-Lambertian surfaces subject to shadows and specularities. Image and Vision Computing, 2007, 25(7): 1050-1057 doi: 10.1016/j.imavis.2006.04.025 [79] Vlasic D, Peers P, Baran I, Debevec P, Popović J, Rusinkiewicz S, et al. Dynamic shape capture using multi-view photometric stereo. ACM Transactions on Graphics, 2009, 28(5): Article No. 174 http://d.old.wanfangdata.com.cn/NSTLQK/NSTL_QKJJ0216027840/ [80] Shi B X, Matsushita Y, Wei Y C, Xu C, Tan P. Self-calibrating photometric stereo. In: Proceedings of the 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Francisco, USA: IEEE, 2010. 1118-1125 http://www.researchgate.net/publication/221363790_Self-calibrating_photometric_stereo [81] Morris N J W, Kutulakos K N. Dynamic refraction stereo. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(8): 1518-1531 doi: 10.1109/TPAMI.2011.24 [82] Higo T, Matsushita Y, Ikeuchi K. Consensus photometric stereo. In: Proceedings of the 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Francisco, USA: IEEE, 2010. 1157-1164 http://www.researchgate.net/publication/221363482_Consensus_photometric_stereo [83] Brown L G, Shvaytser H. Surface orientation from projective foreshortening of isotropic texture autocorrelation. In: Proceedings of the 1988 Computer Society Conference on Computer Vision and Pattern Recognition. Ann Arbor, USA: IEEE, 1988. 510-514 http://www.researchgate.net/publication/3497773_Surface_orientation_from_projective_foreshortening_of_isotropictexture_autocorrelation [84] Clerc M, Mallat S. The texture gradient equation for recovering shape from texture. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(4): 536-549 doi: 10.1109/34.993560 [85] Witkin A P. Recovering surface shape and orientation from texture. Artificial Intelligence, 1981, 17(1-3): 17-45 doi: 10.1016/0004-3702(81)90019-9 [86] Warren P A, Mamassian P. Recovery of surface pose from texture orientation statistics under perspective projection. Biological Cybernetics, 2010, 103(3): 199-212 doi: 10.1007/s00422-010-0389-3 [87] Martin W N, Aggarwal J K. Volumetric descriptions of objects from multiple views. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1983, PAMI-5(2): 150-158 doi: 10.1109/TPAMI.1983.4767367 [88] Laurentini A. The visual hull concept for silhouette-based image understanding. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994, 16(2): 150-162 doi: 10.1109/34.273735 [89] Bongiovanni G, Guerra C, Levialdi S. Computing the Hough transform on a pyramid architecture. Machine Vision and Applications, 1990, 3(2): 117-123 doi: 10.1007/BF01212195 [90] Darell T, Wohn K. Depth from focus using a pyramid architecture. Pattern Recognition Letters, 1990, 11(12): 787-796 doi: 10.1016/0167-8655(90)90032-W [91] Kavianpour A, Bagherzadeh N. Finding circular shapes in an image on a pyramid architecture. Pattern Recognition Letters, 1992, 13(12): 843-848 doi: 10.1016/0167-8655(92)90083-C [92] Forbes K, Nicolls F, De Jager G, Voigt A. Shape-from-silhouette with two mirrors and an uncalibrated camera. In: Proceedings of the 9th European Conference on Computer Vision. Graz, Austria: Springer, 2006. 165-178 doi: 10.1007/11744047_13.pdf [93] Lehtinen J, Aila T, Chen J W, Laine S, Durand F. Temporal light field reconstruction for rendering distribution effects. ACM Transactions on Graphics, 2011, 30(4): Article No. 55 http://cn.bing.com/academic/profile?id=f48b75e3f65df6c92db0ec3ba3f22ce9&encoded=0&v=paper_preview&mkt=zh-cn [94] Nayar S K, Nakagawa Y. Shape from focus. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994, 16(8): 824-831 doi: 10.1109/34.308479 [95] Hasinoff S W, Kutulakos K N. Confocal stereo. International Journal of Computer Vision, 2009, 81(1): 82-104 doi: 10.1007/s11263-008-0164-2 [96] Pradeep K S, Rajagopalan A N. Improving shape from focus using defocus cue. IEEE Transactions on Image Processing, 2007, 16(7): 1920-1925 doi: 10.1109/TIP.2007.899188 [97] Slabaugh G G, Culbertson W B, Malzbender T, Stevens M R, Schafer R W. Methods for volumetric reconstruction of visual scenes. International Journal of Computer Vision, 2004, 57(3): 179-199 doi: 10.1023/B:VISI.0000013093.45070.3b [98] de Vries S C, Kappers A M L, Koenderink J J. Shape from stereo: a systematic approach using quadratic surfaces. Perception & Psychophysics, 1993, 53(1): 71-80 http://cn.bing.com/academic/profile?id=23f384adcd3565fda27091b0a353d075&encoded=0&v=paper_preview&mkt=zh-cn [99] Seitz S M, Dyer C R. Photorealistic scene reconstruction by voxel coloring. International Journal of Computer Vision, 1999, 35(2): 151-173 doi: 10.1023/A:1008176507526 [100] Kutulakos K N, Seitz S M. A theory of shape by space carving. International Journal of Computer Vision, 2000, 38(3): 199-218 doi: 10.1023/A:1008191222954 [101] Li D W, Xu L H, Tang X S, Sun S Y, Cai X, Zhang P. 3D imaging of greenhouse plants with an inexpensive binocular stereo vision system. Remote Sensing, 2017, 9(5): Article No. 508 doi: 10.3390/rs9050508 [102] Helveston E M, Boudreault G. Binocular vision and ocular motility: theory and management of strabismus. American Journal of Ophthalmology, 1986, 101(1): 135 http://d.old.wanfangdata.com.cn/OAPaper/oai_pubmedcentral.nih.gov_2590061 [103] Qi F, Zhao D B, Gao W. Reduced reference stereoscopic image quality assessment based on binocular perceptual information. IEEE Transactions on Multimedia, 2015, 17(12): 2338-2344 doi: 10.1109/TMM.2015.2493781 [104] Sizintsev M, Wildes R P. Spacetime stereo and 3D flow via binocular spatiotemporal orientation analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 36(11): 2241-2254 doi: 10.1109/TPAMI.2014.2321373 [105] Marr D, Poggio T. A computational theory of human stereo vision. Proceedings of the Royal Society B: Biological Sciences, 1979, 204(1156): 301-328 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=CC026931228 [106] Zou X J, Zou H X, Lu J. Virtual manipulator-based binocular stereo vision positioning system and errors modelling. Machine Vision and Applications, 2012, 23(1): 43-63 http://d.old.wanfangdata.com.cn/NSTLQK/NSTL_QKJJ0225968290/ [107] 李占贤, 许哲.双目视觉的成像模型分析.机械工程与自动化, 2014, (4): 191-192 doi: 10.3969/j.issn.1672-6413.2014.04.081Li Zhan-Xian, Xu Zhe. Analysis of imaging model of binocular vision. Mechanical Engineering & Automation, 2014, (4): 191-192 doi: 10.3969/j.issn.1672-6413.2014.04.081 [108] 张文明, 刘彬, 李海滨.基于双目视觉的三维重建中特征点提取及匹配算法的研究.光学技术, 2008, 34(2): 181-185 doi: 10.3321/j.issn:1002-1582.2008.02.039Zhang Wen-Ming, Liu Bin, Li Hai-Bin. Characteristic point extracts and the match algorithm based on the binocular vision in three dimensional reconstruction. Optical Technique, 2008, 34(2): 181-185 doi: 10.3321/j.issn:1002-1582.2008.02.039 [109] Bruno F, Bianco G, Muzzupappa M, Barone S, Razionale A V. Experimentation of structured light and stereo vision for underwater 3D reconstruction. ISPRS Journal of Photogrammetry and Remote Sensing, 2011, 66(4): 508-518 doi: 10.1016/j.isprsjprs.2011.02.009 [110] Fusiello A, Trucco E, Verri A. A compact algorithm for rectification of stereo pairs. Machine Vision and Applications, 2000, 12(1): 16-22 doi: 10.1007/s001380050120 [111] Baillard C, Zisserman A. A plane-sweep strategy for the 3D reconstruction of buildings from multiple images. In: Proceedings of the 2000 International Archives of Photogrammetry and Remote Sensing. Amsterdam, Netherlands: ISPRS, 2000. 56-62 https://www.researchgate.net/publication/2813005_A_Plane-Sweep_Strategy_For_The_3D_Reconstruction_Of_Buildings_From_Multiple_Images [112] Hirschmuller H, Scharstein D. Evaluation of stereo matching costs on images with radiometric differences. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2009, 31(9): 1582-1599 doi: 10.1109/TPAMI.2008.221 [113] Zhang T, Liu J H, Liu S L, Tang C T, Jin P. A 3D reconstruction method for pipeline inspection based on multi-vision. Measurement, 2017, 98: 35-48 doi: 10.1016/j.measurement.2016.11.004 [114] Saito K, Miyoshi T, Yoshikawa H. Noncontact 3-D digitizing and machining system for free-form surfaces. CIRP Annals, 1991, 40(1): 483-486 doi: 10.1016/S0007-8506(07)62035-6 [115] 陈明舟.主动光栅投影双目视觉传感器的研究[硕士学位论文], 天津大学, 中国, 2002 http://www.wanfangdata.com.cn/details/detail.do?_type=degree&id=Y456511Chen Ming-Zhou. Research on Active Grating Projection Stereo Vision Sensor[Master thesis], Tianjin University, China, 2002 http://www.wanfangdata.com.cn/details/detail.do?_type=degree&id=Y456511 [116] 王磊.三维重构技术的研究与应用[硕士学位论文], 清华大学, 中国, 2002Wang Lei. The Research and Application of 3D Reconstruction Technology[Master thesis], Tsinghua University, China, 2002 [117] Hernández C, Vogiatzis G, Cipolla R. Overcoming shadows in 3-source photometric stereo. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(2): 419-426 doi: 10.1109/TPAMI.2010.181 [118] Park H, Lee H, Sull S. Efficient viewer-centric depth adjustment based on virtual fronto-parallel planar projection in stereo 3D images. IEEE Transactions on Multimedia, 2014, 16(2): 326-336 doi: 10.1109/TMM.2013.2286567 [119] Bai X, Rao C, Wang X G. Shape vocabulary: a robust and efficient shape representation for shape matching. IEEE Transactions on Image Processing, 2014, 23(9): 3935-3949 doi: 10.1109/TIP.2014.2336542 [120] Goshtasby A, Stockman G C, Page C V. A region-based approach to digital image registration with subpixel accuracy. IEEE Transactions on Geoscience and Remote Sensing, 1986, GE-24 (3): 390-399 doi: 10.1109/TGRS.1986.289597 [121] Flusser J, Suk T. A moment-based approach to registration of images with affine geometric distortion. IEEE Transactions on Geoscience and Remote Sensing, 1994, 32(2): 382-387 doi: 10.1109/36.295052 [122] Alhichri H S, Kamel M. Virtual circles: a new set of features for fast image registration. Pattern Recognition Letters, 2003, 24(9-10): 1181-1190 doi: 10.1016/S0167-8655(02)00300-8 [123] Schmid C, Mohr R. Local grayvalue invariants for image retrieval. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997, 19(5): 530-535 doi: 10.1109/34.589215 [124] Matas J, Chum O, Urban M, Pajdla T. Robust wide-baseline stereo from maximally stable extremal regions. Image and Vision Computing, 2004, 22(10): 761-767 doi: 10.1016/j.imavis.2004.02.006 [125] Tuytelaars T, Van Gool L. Matching widely separated views based on affine invariant regions. International Journal of Computer Vision, 2004, 59(1): 61-85 doi: 10.1023/B:VISI.0000020671.28016.e8 [126] Kadir T, Zisserman A, Brady M. An affine invariant salient region detector. In: Proceedings of the 8th European Conference on Computer Vision. Prague, Czech Republic: Springer, 2004. 228-241 http://www.researchgate.net/publication/2909469_An_Ane_Invariant_Salient_Region_Detector [127] Harris C, Stephens M. A combined corner and edge detector. In: Proceedings of the 4th Alvey Vision Conference. 1988. 1475-151 https://www.researchgate.net/publication/215458771_A_Combined_Corner_and_Edge_Detector [128] Morevec H P. Towards automatic visual obstacle avoidance. In: Proceedings of the 5th International Joint Conference on Artificial Intelligence. Cambridge, USA: ACM, 1977. 584 https://www.researchgate.net/publication/220814569_Towards_Automatic_Visual_Obstacle_Avoidance [129] Schmid C, Mohr R, Bauckhage C. Evaluation of interest point detectors. International Journal of Computer Vision, 2000, 37(2): 151-172 doi: 10.1023/A:1008199403446 [130] Van de Weijer J, Gevers T, Bagdanov A D. Boosting color saliency in image feature detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2006, 28(1): 150-156 doi: 10.1109/TPAMI.2006.3 [131] Mikolajczyk K, Schmid C. Scale & affine invariant interest point detectors. International Journal of Computer Vision, 2004, 60(1): 63-86 https://www.researchgate.net/publication/215721498_Scale_Affine_Invariant_Interest_Point_Detectors [132] Smith S M, Brady J M. SUSAN — a new approach to low level image processing. International Journal of Computer Vision, 1997, 23(1): 45-78 doi: 10.1023/A:1007963824710 [133] Lindeberg T, Gårding J. Shape-adapted smoothing in estimation of 3-D shape cues from affine deformations of local 2-D brightness structure. Image and Vision Computing, 1997, 15(6): 415-434 doi: 10.1016/S0262-8856(97)01144-X [134] Lindeberg T. Feature detection with automatic scale selection. International Journal of Computer Vision, 1998, 30(2): 79-116 doi: 10.1023/A:1008045108935 [135] Baumberg A. Reliable feature matching across widely separated views. In: Proceedings of the 2000 IEEE Conference on Computer Vision and Pattern Recognition. Hilton Head Island, USA: IEEE, 2000. 774-781 [136] Lowe D G. Object recognition from local scale-invariant features. In: Proceedings of the 7th IEEE International Conference on Computer Vision. Kerkyra, Greece: IEEE, 1999. 1150-1157 [137] Ke Y, Sukthankar R. PCA-SIFT: a more distinctive representation for local image descriptors. In: Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE, 2004. Ⅱ-506-Ⅱ-513 http://www.researchgate.net/publication/2926479_PCA-SIFT_A_More_Distinctive_Representation_for_Local_Image_Descriptors [138] Bay H, Tuytelaars T, Van Gool L. SURF: speeded up robust features. In: Proceedings of the 9th European Conference on Computer Vision. Graz, Austria: Springer, 2006. 404-417 [139] 葛盼盼, 陈强, 顾一禾.基于Harris角点和SURF特征的遥感图像匹配算法.计算机应用研究, 2014, 31(7): 2205-2208 doi: 10.3969/j.issn.1001-3695.2014.07.069Ge Pan-Pan, Chen Qiang, Gu Yi-He. Algorithm of remote sensing image matching based on Harris corner and SURF feature. Application Research of Computers, 2014, 31(7): 2205-2208 doi: 10.3969/j.issn.1001-3695.2014.07.069 [140] Wu C C. Towards linear-time incremental structure from motion. In: Proceedings of the 2013 International Conference on 3D Vision. Seattle, WA, USA: IEEE, 2013. 127-134 http://www.researchgate.net/publication/261447449_Towards_Linear-Time_Incremental_Structure_from_Motion [141] Cui H N, Shen S H, Gao W, Hu Z Y. Efficient large-scale structure from motion by fusing auxiliary imaging information. IEEE Transactions on Image Processing, 2015, 24(11): 3561-3573 doi: 10.1109/TIP.2015.2449557 [142] Sturm P, Triggs B. A factorization based algorithm for multi-image projective structure and motion. In: Proceedings of the 4th European conference on computer vision. Cambridge, UK: Springer, 1996. 709-720 https://www.researchgate.net/publication/47387653_A_Factorization_Based_Algorithm_for_multi-Image_Projective_Structure_and_Motion [143] Crandall D, Owens A, Snavely N, Huttenlocher D. Discrete-continuous optimization for large-scale structure from motion. In: Proceedings of CVPR 2011. Colorado Springs, CO, USA: IEEE, 2011. 3001-3008 [144] Irschara A, Hoppe C, Bischof H, Kluckner S. Efficient structure from motion with weak position and orientation priors. In: Proceedings of CVPR 2011 WORKSHOPS. Colorado Springs, CO, USA: IEEE, 2011. 21-28 http://www.researchgate.net/publication/224253054_Efficient_structure_from_motion_with_weak_position_and_orientation_priors [145] Tomasi C, Kanade T. Shape and motion from image streams: a factorization method. Carnegie Mellon University, USA, 1992. 9795-9802 http://www.researchgate.net/publication/2457353_Shape_and_Motion_from_Image_Streams_aFactorization_Method [146] Poelman C J, Kanade T. A paraperspective factorization method for shape and motion recovery. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997, 19(3): 206-218 doi: 10.1109/34.584098 [147] Triggs B. Factorization methods for projective structure and motion. In: Proceedings of the 1996 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Francisco, USA: IEEE, 1996. 845-851 https://www.researchgate.net/publication/3637798_Factorization_Methods_for_Projective_Structure_and_Motion [148] Han M, Kanade T. Multiple motion scene reconstruction from uncalibrated views. In: Proceedings of the 8th IEEE International Conference on Computer Vision. Vancouver, Canada: IEEE, 2001. 163-170 https://www.researchgate.net/publication/3906057_Multiple_motion_scene_reconstruction_from_uncalibrated_views [149] 于海雁.基于多视图几何的三维重建研究[博士学位论文], 哈尔滨工业大学, 中国, 2007 http://cdmd.cnki.com.cn/Article/CDMD-10287-1012041345.htmYu Hai-Yan. 3D Reconstruction Based on Multiple View Geometry[Ph.D. dissertation], Harbin Institute of Technology, China, 2007 http://cdmd.cnki.com.cn/Article/CDMD-10287-1012041345.htm [150] Sivic J, Zisserman A. Video Google: a text retrieval approach to object matching in videos. In: Proceedings of the 9th IEEE International Conference on Computer Vision. Nice, France: IEEE, 2003. 1470-1477 [151] Faugeras O. Three-dimensional Computer Vision: A Geometric Viewpoint. Cambridge: MIT Press, 1993 [152] Xie R P, Yao J, Liu K, Lu X H, Liu X H, Xia M H, et al. Automatic multi-image stitching for concrete bridge inspection by combining point and line features. Automation in Construction, 2018, 90: 265-280 doi: 10.1016/j.autcon.2018.02.021 [153] Yan W Q, Hou C P, Lei J J, Fang Y M, Gu Z Y, Ling N. Stereoscopic image stitching based on a hybrid warping model. IEEE Transactions on Circuits and Systems for Video Technology, 2017, 27(9): 1934-1946 doi: 10.1109/TCSVT.2016.2564838 [154] Pei J F, Huang Y L, Huo W B, Zhang Y, Yang J Y, Yeo T S. SAR automatic target recognition based on multiview deep learning framework. IEEE Transactions on Geoscience and Remote Sensing, 2018, 56(4): 2196-2210 doi: 10.1109/TGRS.2017.2776357 [155] Longuet-Higgins H C. A computer algorithm for reconstructing a scene from two projections. Nature, 1981, 293(5828): 133-135 doi: 10.1038/293133a0 [156] Faugeras O D, Maybank S. Motion from point matches: multiplicity of solutions. International Journal of Computer Vision, 1990, 4(3): 225-246 doi: 10.1007/BF00054997 [157] Luong Q T, Deriche R, Faugeras O D, Papadopoulo T. On determining the fundamental matrix: analysis of different methods and experimental results. RR-1894, INRIA, 1993. 24-48 http://www.researchgate.net/publication/243671119_On_determining_the_fundamental_matrix_Analysis_of_different_methods_and_experimental_results [158] Luong Q T, Faugeras O D. The fundamental matrix: theory, algorithms, and stability analysis. International Journal of Computer Vision, 1996, 17(1): 43-75 http://d.old.wanfangdata.com.cn/OAPaper/oai_arXiv.org_0908.0449 [159] Wu C C, Agarwal S, Curless B, Seitz S M. Multicore bundle adjustment. In: Proceedings of CVPR 2011. Providence, RI, USA: IEEE, 2011. 3057-3064 https://www.researchgate.net/publication/221361999_Multicore_bundle_adjustment?ev=auth_pub [160] Lourakis M I A, Argyros A A. SBA: a software package for generic sparse bundle adjustment. ACM Transactions on Mathematical Software, 2009, 36(1): Article No. 2 http://d.old.wanfangdata.com.cn/Periodical/wjclxb200304024 [161] Choudhary S, Gupta S, Narayanan P J. Practical time bundle adjustment for 3D reconstruction on the GPU. In: Proceedings of the 11th European Conference on Trends and Topics in Computer Vision. Heraklion, Crete, Greece: Springer, 2010. 423-435 [162] Hu Z Y, Gao W, Liu X, Guo F S. 3D reconstruction for heritage preservation[Online], available: http://vision.ia.ac.cn, March 29, 2012. [163] Fang T, Quan L. Resampling structure from motion. In: Proceedings of the 11th European Conference on Computer Vision. Crete, Greece: Springer, 2010. 1-14 https://www.researchgate.net/publication/221304471_Resampling_Structure_from_Motion [164] Tanimoto J, Hagishima A. State transition probability for the Markov model dealing with on/off cooling schedule in dwellings. Energy and Buildings, 2005, 37(3): 181-187 https://www.sciencedirect.com/science/article/pii/S0378778804000994 [165] Eddy S R. Profile hidden Markov models. Bioinformatics, 1998, 14(9): 755-763 doi: 10.1093/bioinformatics/14.9.755 [166] Chang M T, Chen S Y. Deformed trademark retrieval based on 2D pseudo-hidden Markov model. Pattern Recognition, 2001, 34(5): 953-967 doi: 10.1016/S0031-3203(00)00053-4 [167] Saxena A, Chung S H, Ng A Y. 3-D depth reconstruction from a single still image. International Journal of Computer Vision, 2008, 76(1): 53-69 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=f823a58e5ab3cd194d7e8f70359c345b [168] Handa A, Whelan T, McDonald J, Davison A J. A benchmark for RGB-D visual odometry, 3D reconstruction and SLAM. In: Proceedings of the 2014 IEEE International Conference on Robotics and Automation. Hong Kong, China: IEEE, 2014. 1524-1531 http://www.researchgate.net/publication/286680449_A_benchmark_for_RGB-D_visual_odometry_3D_reconstruction_and_SLAM [169] Kemelmacher-Shlizerman I, Basri R. 3D face reconstruction from a single image using a single reference face shape. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(2): 394-405 doi: 10.1109/TPAMI.2010.63 [170] Lee S J, Park K R, Kim J. A SFM-based 3D face reconstruction method robust to self-occlusion by using a shape conversion matrix. Pattern Recognition, 2011, 44(7): 1470-1486 doi: 10.1016/j.patcog.2010.11.012 [171] Song M L, Tao D C, Huang X Q, Chen C, Bu J J. Three dimensional face reconstruction from a single image by a coupled RBF network. IEEE Transactions on Image Processing, 2012, 21(5): 2887-2897 doi: 10.1109/TIP.2012.2183882 [172] Seo H, Yeo Y I, Wohn K. 3D body reconstruction from photos based on range scan. In: Proceedings of the 1st International Conference on Technologies for E-Learning and Digital Entertainment. Hangzhou, China: Springer, 2006. 849-860 https://www.researchgate.net/publication/221247718_3D_Body_Reconstruction_from_Photos_Based_on_Range_Scan [173] Allen B, Curless B, Popovi Z. The space of human body shapes: reconstruction and parameterization from range scans. ACM Transactions on Graphics, 2003, 22(3): 587-594 doi: 10.1145/882262.882311 [174] Funahashi K I. On the approximate realization of continuous mappings by neural networks. Neural Networks, 1989, 2(3): 183-192 doi: 10.1016/0893-6080(89)90003-8 [175] Do Y. Application of neural networks for stereo-camera calibration. In: Proceedings of the 1999 International Joint Conference on Neural Networks. Washington, USA: IEEE, 1999. 2719-2722 https://www.researchgate.net/publication/3839747_Application_of_neural_networks_for_stereo-camera_calibration [176] 袁野, 欧宗瑛, 田中旭.应用神经网络隐式视觉模型进行立体视觉的三维重建.计算机辅助设计与图形学学报, 2003, 15(3): 293-296 doi: 10.3321/j.issn:1003-9775.2003.03.009Yuan Ye, Ou Zong-Ying, Tian Zhong-Xu. 3D reconstruction of stereo vision using neural networks implicit vision model. Journal of Computer-Aided Design & Computer Graphics, 2003, 15(3): 293-296 doi: 10.3321/j.issn:1003-9775.2003.03.009 [177] Li X P, Chen L Z. Research on the application of BP neural networks in 3D reconstruction noise filter. Advanced Materials Research, 2014, 998-999: 911-914 doi: 10.4028/www.scientific.net/AMR.998-999.911 [178] Savinov N, Ladický L, Häne C, Pollefeys M. Discrete optimization of ray potentials for semantic 3D reconstruction. In: Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA: IEEE, 2015. 5511-5518 [179] Bláha M, Vogel C, Richard A, Wegner J D, Pock T, Schindler K. Large-scale semantic 3D reconstruction: an adaptive multi-resolution model for multi-class volumetric labeling. In: Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA: IEEE, 2016. 3176-3184 https://www.researchgate.net/publication/311611435_Large-Scale_Semantic_3D_Reconstruction_An_Adaptive_Multi-resolution_Model_for_Multi-class_Volumetric_Labeling [180] Sünderhauf N, Pham T T, Latif Y, Milford M, Reid I. Meaningful maps with object-oriented semantic mapping. In: Proceedings of the 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems. Vancouver, BC, Canada: IEEE, 2017. 5079-5085 [181] 赵洋, 刘国良, 田国会, 罗勇, 王梓任, 张威, 等.基于深度学习的视觉SLAM综述.机器人, 2017, 39(6): 889-896 http://d.old.wanfangdata.com.cn/Periodical/jqr201706015Zhao Yang, Liu Guo-Liang, Tian Guo-Hui, Luo Yong, Wang Zi-Ren, Zhang Wei, et al. A survey of visual SLAM based on deep learning. Robot, 2017, 39(6): 889-896 http://d.old.wanfangdata.com.cn/Periodical/jqr201706015 期刊类型引用(9)
1. 邵雪卷,韩雨豪,周亮亮,孙来庆,陈志梅,张井岗. 参数带宽化的双摆桥式起重机线性自抗扰控制. 振动与冲击. 2025(04): 82-90 . 百度学术
2. 宁佳慧,文新宇. 输入时滞系统的多频干扰预测补偿. 太原科技大学学报. 2024(05): 467-473 . 百度学术
3. 林海. 基于模糊线性二次型的桥式起重机定位控制方法. 机械研究与应用. 2023(03): 31-33 . 百度学术
4. 尤智腾,徐为民,许贤先,朱鑫磊,胡强. 基于视觉反馈的桥吊自适应滑模防摇控制. 控制工程. 2023(06): 1051-1061+1128 . 百度学术
5. 王守瑞,靳伍银,芮执元,张霞. 基于快速非奇异终端滑模的三维天车负载摆动控制. 吉林大学学报(工学版). 2023(12): 3508-3517 . 百度学术
6. 王子赟,李南江,王艳,纪志成. 基于凸空间收缩滤波的噪声不确定时滞系统状态估计. 控制理论与应用. 2022(12): 2331-2339 . 百度学术
7. 曹海昕,郝运嵩,林静正,卢彪,方勇纯. 绳长时变情况下轮胎式集装箱起重机非线性防摆控制算法. 自动化学报. 2021(08): 1876-1884 . 本站查看
8. 刘青松. 基于嵌套-伪预估器反馈的时滞控制系统输入时滞补偿. 自动化学报. 2021(10): 2464-2471 . 本站查看
9. 邢东峰,陈光武,刘孝博. 基于STM32的姿态感知四轴飞行器的设计. 传感技术学报. 2019(11): 1603-1607 . 百度学术
其他类型引用(7)
-