Abstract
In order to detect X-corner (or X-point) features more accurately and apace, this article presents a novel and fast detection method based on block-by-block search strategy. Unlike general pixel-by-pixel searching method, the sampling window is first moved along the image block-by-block to find the X-corner candidates rapidly keeping in view the four-step and min-step-distance constraints. During the motion, some overlap is kept between the adjacent sampling windows in order to ensure that all X-corners could have a chance to reside inside, avoiding the possibility of that some X-corners may locate on the edge. Moreover, labeling technology is adopted to prevent duplicate candidates. After the collection of X-corner candidates, the neighborhood variance and centrosymmetry constraints are used to exclude outliers, and the intersection lines is calculated as the sub-pixel position of true X-corner. The experimental results using synthetic and real images show that the presented method approximately takes just about 13 ms to detect 52 X-corners in an image size of 1024 × 768 on a computer having Intel Core i3 CPU at 3.6 GHz and 4GB RAM. The proposed method has faster detection speed compared with the latest methods such as ChESS, SC, and Micron Tracker system while possessing the same or higher detection precision.
Introduction
X-corner (or X-point) has been widely used in camera calibration (as chessboard)
1
and in devices tracking2–4 (as X-corner-based marker). Fast and accurate X-corner detection is crucial to these applications, particularly when the camera resolution increases from 640 × 480 pixels to
The currently available X-corner detection methods can be divided into two categories: chessboard detection or specialized X-detection. Chessboard can be regarded as the arrays of X-corners. Since chessboard features are the most recognized planar patterns used in Zhenyou Zhang’s 5 camera calibration method, numerous researchers are focusing on the detection of chessboard pattern. Universal feature detectors, such as Harris,6–8 FAST, 9 and SUSAN, can be employed to detect X-corners. Although, non-X-corner features may also be detected, the prior structural information and topological constraint of a chessboard can be used to remove outliers.
Specialized X-detection can be used not only in chessboard detection but also in individual X-corner detection. For example, MTS uses three non-collinear X-corners to locate and track an object in space.3,4 Unfortunately, as a commercial product, its algorithm for X-corner detection has not been made public yet. But for customizing task-specific application, 10 an efficient and robust X-corner detection framework is implemental.
There have been many specialized X-corner detectors making use of symmetry and hence are more robust to noise. Although the means of symmetry tests are different, they are all dependent on the coincidence of the center of circular ring or sampling window with the X-corner position, for example, SV,
11
Hessian-X,
12
ChESS,
13
and SC.
14
SV (Symmetry and Variance) detected the X-corners based on the gray-level distribution symmetry and gray-level variance in the local sample window with the X-corner being the center, but its accuracy is just on pixel level. Hessian-X detected X-corners based on its Hessian matrix transformation. The symmetry axis could also be computed. After the extraction of the pixel-level X-corners, the sub-pixel-level position was worked out with interpolation methods. ChESS employed a very efficient model to estimate the symmetry and variance of the sampling ring around the X-corner, thus its speed and robustness were both high. But its accuracy was pixel level, and there was no orientation information. SC (Symmetry Calculation) detected the X-corners by searching the local minimum in the transformed SC matrix, using the intersection of edge line to compute the sub-pixel position, and keeping the edge line direction as the orientation information of the X-corners. But it was necessary to compute
The above-mentioned feature detectors are all relied on pixel-by-pixel search strategy which guarantees that every pixel is tested. However, pixel-by-pixel search strategy results in large computation, and hence, its efficiency is low. Furthermore, duplicate features are often found in the neighbors of true corners; therefore, additional non-maximum suppression (NMS) is generally required.
In contrast to the pixel-by-pixel search strategy, there is also a block-by-block search strategy which moves the searching window in an image with constant pixel strides along horizontal and vertical directions.15–17 Block-by-block search strategy has sparse sampling on the background and can speed up detection.
In this article, a sub-pixel X-corner detection method based on block-search strategy is proposed to detect X-corner with high speed and accuracy in higher resolution images. Dissimilar to general pixel-by-pixel searching method, we first move the sampling window along the image block-by-block to find the X-corner candidates quickly following the four-step and min-step-distance constraints. During the motion, we perform some sort of overlapping between the adjacent sampling windows to ensure that all X-corners can have a chance to reside inside, in case that some X-corners may locate on the edge. Moreover, labeling technology is adopted to avoid duplicate candidates. After X-corner candidates’ collection, the neighborhood variance and centrosymmetry constraints are employed to exclude false X-corners, and the intersection of edge lines is calculated as the sub-pixel position of true X-corner. The experiments with synthetic and real images show that our method takes just about 13 ms to detect 52 X-corners in an image size of 1024 × 768 on a computer with Intel Core i3 CPU at 3.6 GHz and 4GB RAM. It has faster detection speed compared with the latest methods such as ChESS, SC, and Micron Tracker system, with the same or higher detection precision.
The major contributions of this method are (1) a specialized fast X-corner detection method is proposed, which is based on block-search strategy. (2) The characteristics of sampling window that may contain an X-corner is analyzed for the procedure of collection of the X-corner candidate; the
The contents of this article are organized as follows: In section “Method,” the characteristics of the sampling window that contain an X-corner is analyzed and are utilized to determine whether the sampling window contains an X-corner at first, and then, the method for computing sub-pixel location and direction is given and the block-based search strategy is addressed. Section “Experiment and analysis” is about the simulation and physical experiments. The experimental results show that the proposed method can not only acquire accurate location and direction information of X-corners with high speed but is also robust to noise and light and other types of feature points.
Method
In this section, we first present how to detect X-corner features with block-search strategy and then discuss about the window size and sampling stride in block search.
X-corner detection with block-search strategy
Figure 1 shows the procedure of the proposed algorithm. At first, a sampling window is moved from left to right, from top to bottom, block-by-block, on the whole image. For fast detection, the sampling window should have proper size such that it can contain just one possible X-corner at most. The sampling ring is analyzed to find out whether there is a possible X-corner inside. If true, then it is collected as an X-corner candidate; else it is ignored. Second, after collecting all X-corner candidates, more properties are used to filter outliers or false features. At the same time, the sub-pixel positions of true X-corners are refined.

Schematic procedure of proposed method.
Denote the side width of the sampling window as
Characteristics of sampling window containing X-corner
Figure 2 shows the two cases of sampling window that an X-corner lies inside. There are totally
1. Four steps

Four edges on sampling ring in sample window: (a) X-point lies on the center and (b) X-point lies offset the center.
Because the sampling window should not exceed the size of the X-corner marker while it must be larger than the X spot scattering patch (as shown in Figure 9), if an X-corner lies inside the sampling window, no matter on or offset the center, there will be four gray scale steps on the sampling ring
Denote
Then, the four-step constraint can be expressed as
2. Minimum distance between steps
The four-step pixels are named as
3. Centrosymmetry

Minimum distance between steps.
In Figure 2(a), the X-corner lies on the center of sampling window. In this case, there should be
where
4. Gray variance at X-corner vicinity
Figure 4 shows two outlier cases that meet above constraints. These outliers can be excluded by checking the gray variance of the vicinity of the X-corner candidate. Figure 5 shows the difference between true X-corner and outlier.

Outliers or false candidates: (a) Case 1 and (b) Case 2.

The neighborhood pixels: (a) X-corner and (b) non-X-corner.
Let
where
For X-corner detection in single frame, we set
X-corner candidate collection
As shown in Figure 2, a square sampling window is moved on the image every
1. Generation of X-corner candidates
To robustly check whether there are four steps on the sampling ring
where
where
Then, the steps are counted whether there are four steps in the sampling window (Figure 6). But due to noise, erroneous steps may be found, which interfere the detection. Since the noise is assumed independent, the false edge caused by noise should be very narrow. Therefore, if the width between two adjacent steps is just one to two pixels, it will be neglected.

Step analysis of X-corner sampling ring.
If equation (1) is satisfied, then equation (2) will be checked. If equation (2) is also satisfied, then it is highly possible that there is an X-corner inside. Then, a candidate is found and its position can be calculated as the intersectional pixel of line
where
2. Avoidance of repetitive candidates
To avoid that some X-corner features are missed if they lie on the rim of sampling window by chance, the sampling windows will be overlapped. As a result, one X-corner may be detected more than one time. For example, when stride

Duplicate candidate avoidance: (a) window sampling strategy and (b) “FOUND” area.
In order to avoid duplicate candidates, a mask is employed to label whether the X-corner candidate has been found ever before. When a candidate is found, a small area centered around the candidate is labeled “FOUND” area, as shown in Figure 7(b). The size of area is equivalent to the sampling window. When the new sampling window center falls into “FOUND” area, it implies that a candidate has been found before. Since there is one X-corner in the sampling window at most, it is unnecessary to check again. Thus, duplicate candidates are avoided.
X-corner validation and sub-pixel position calculation
In
1. X-corner candidate verification
For every candidate
If both equations (4) and (6) are satisfied, then
2. Sub-pixel X-corner position calculation
The pixel-level position of four steps
where
Let

The orientation of X-corner.
Analysis of block size and sampling interval
For the block-based search method, the choices of

Inappropriate sampling window size: (a) too big case and (b) too small case.
However, the further an X marker is away from the camera, the smaller it will be in the image. Therefore, we should set an appropriate size for the sampling window. Moreover, due to finite depth field of camera lens, the intersection of an X marker will diffuse into a white patch, as shown in Figure 9(b) (enlarged for exemplification). The size should be large enough to include the intersection of X marker in it. The appropriate window size is dependent on the resolution of the camera, work range, and the sizes of X markers. Typically, the size of sampling window is recommended as 11 × 11 or 13 × 13.
As to the stride
Experiment and analysis
In order to verify the effectiveness of the proposed method, the algorithm is implemented in Visual Studio 2013 with OpenCV 2.4.4. The final detection framework is shown in Figure 10. The environment configuration is Intel Core i3 CPU 3.6 GHz, Windows 10, 4GB RAM. The experiment consists of two parts: synthetic image test and real image test. The synthetic image test is conducted to verify the accuracy and robustness of the location and orientation information. The real image test is conducted to compare the performance of the proposed method with SC, CHESS, and MTS.

Final X-corner detection framework.
Tests with synthetic images
To verify the anti-noise ability and anti-distortion performance of the proposed detector, synthesized images with different noise levels were tested. The synthesized images were derived from the original image of a chessboard through affine transformation. The resolution of the image was set to 512 × 512. The ground truth positions of X-corners
where the extracted positions of X-corners are recorded as
In the synthetic image test, we just compared the proposed method with SC and ChESS, because we could not put the synthetic image into MTS. Figure 11 shows one result of the test. Table 1 shows the localization error and time consumption for SC, ChESS, and the proposed method. It shows that the proposed method can detect X-corners in relatively fast speed and high precision. The proposed method uses the same way as SC to work out sub-pixel position and orientation; therefore, their localization errors are same. However, SC method is based on pixel-by-pixel search, while the proposed method is based on block-by-block search, and the latter method is much faster.

X-corner extraction in noised synthesized image
The test results of X-corner detection in synthetic images.
From Table 1, it can be found that although ChESS is faster than SC, it is slower than the proposed method. Furthermore, ChESS just detects the pixel-level position of the X-corner, and its localization error is larger than SC and the proposed method.
Tests with real images
In the case of experiment dealing with the real image, the test phantom consisted of a chessboard with 49 X-corners and a triplet-X marker. Therefore, there are 52 X-corners totally in the test phantom. Here, chessboard is used just because it is easily available. All their X-corners are viewed as individual.
where
A comparison has been made between the proposed method and the SC, ChESS, and Micron Tracker H40. For SC, ChESS, and the proposed method, the images were captured with binocular camera, that is, BumbleBee2 BB2-08S2M. The image resolution was set to 1024 × 768. For MicronTracker H40, it captured the image by itself. The phantom was placed in the scene about 1 m before the camera at different deflection angle. Figure 12 shows the scenes of different deflection angle and lighting. The test was conducted on 10 frames and the average results are shown in Table 2.

X-corner extraction in real image under different tilt angles: (a) deflection ≈ 0°, (b) deflection ≈ 30°, and (c) deflection ≈ 45°.
The test results of X-corner detection in real image.
From Table 2, the following can be observed
In the compared methods, all detected X-corners are true X-corners except SC method. When the deflection angle increases, the accuracy decreases.
The proposed method takes about 13 ms to detect 52 X-corners in an image at resolution 1024 × 768 in the tests, which is just nearly one-sixth of the average time taken by ChESS and one-fifth of MTS. But because MTS is designed to locate Triplet-X markers, not specialized for X-corner, extra operation may be executed during its procedure.
Although the proposed method is an improved SC method to some extent, it detects the X-corner with block-search strategy, and more constraints are proposed to increase its robustness. Therefore, this method is faster than SC, and the detection accuracy and loss rate are both finer as well as compared to SC.
In the X-corner detection procedure, the parameter

X-corner detection with varying
Discussion
The experiments indicate that the proposed method can restrain the non-X-corner effectively and can detect the position and orientation of X-corner quickly. The above presented algorithm might miss the X-corners because of the improper selection of the sampling window size parameter
Conclusion
In this article, a fast X-corner detection method based on block-search strategy has been proposed. By analyzing the characters of sampling window that includes an X-corner inside, we successfully transformed the traditional pixel-by-pixel search to block-by-block search. The X-corner localization was still kept at sub-pixel precision, while the detection accuracy and speed have been improved significantly. For a 1024 × 768 pixels image with 52 X-corners, the average time consumption has been 13 ms on a PC with Intel Core i3-CPU, 4G RAM, and Windows 10 OS. It overperformed the ChESS, SC, and MTS. The proposed method can also be accelerated with GPU support, when the time consumption is reduced below 4 ms. Therefore, the proposed method has a potential to be used in future applications concerning high-resolution cameras.18,19
Footnotes
Acknowledgements
Thanks to Muhammad Adeel for his careful reading and helping us in improving the language of the article.
Handling Editor: Jixiang Yang
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: Thanks to the support by key projects of NSFC with grant nos 61533016, 61873010 and 91748201.
