|
|
| Line 1: |
Line 1: |
|
| |
|
| Evaluation of Feature-based
| |
| Image Alignment Algorithms
| |
| Psych221: Project Proposal
| |
| Linda Wu
| |
|
| |
|
| |
| 1. Introduction
| |
| Image alignment is the technique of warping one image (or sometimes both images) so that the features in the two images line up perfectly.
| |
|
| |
|
| |
| 2. Background
| |
| In many applications, we have two images of the same scene, but they are not aligned. In other words, if you pick a feature (say a corner) on one image, the coordinates of the same corner in the other image is very different.
| |
|
| |
|
| |
| 3. Basic Theory
| |
| At the heart of image alignment techniques is a 3×3 matrix called Homography.
| |
| 1. The two images are that of a plane.
| |
| 2. The two images were acquired by rotating the camera about its optical axis.
| |
| If we knew the homography, we could apply it to all the pixels of one image to obtain a warped image that is aligned with the second image.
| |
|
| |
| ● How to find corresponding points automatically?
| |
| In many Computer Vision applications, we often need to identify interesting stable points in an image. These points are called keypoints or feature points.
| |
|
| |
| A feature point detector has two parts [3]
| |
|
| |
| 1. Detector: Detector identifies points on the image that are stable under image transformations like translation (shift), scale (increase / decrease in size), and rotations. The detector finds the x, y coordinates of such points.
| |
|
| |
| 2. Descriptor : The locator only tells us where the interesting points are. The second part of the feature detector is the descriptor which encodes the appearance of the point so that we can tell one feature point from the other. The descriptor evaluated at a feature point is simply an array of numbers. Ideally, the same physical point in two images should have the same descriptor.
| |
|
| |
| The detector of the feature detector localizes interesting points but does not deal with the identity of the point. The descriptor describes the region around the point so it can be identified again in a different image.
| |
|
| |
| The homography that relates the two images can be calculated only if we know the corresponding features in the two images. So a matching algorithm is used to find which features in one image match features in the other image. For this purpose, the descriptor of every feature in one image is compared to the descriptor of every feature in the second image to find good matches.
| |
|
| |
|
| |
| 4. Task Definition
| |
| Iset3D [6] produces (a) image data, and (b) a template with pixel RGB values that define the object location in each image (ground truth).
| |
|
| |
| a. Alignment Algorithm
| |
| Investigate on image alignment algorithms to generate the optical flow for image alignment. The image alignment algorithm aligns (a) image data to (b) the template, then generated (c) the aligned image.
| |
|
| |
| b. Evaluation
| |
| Implement and apply metric(s) to evaluate the alignment performance. To evaluate the algorithm, compare (b) the template and the (c) the aligned image generated from the alignment algorithm.
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| 5. EXPERIMENTS & RESULTS
| |
| a. Experimental Setup
| |
| MATLAB-2019b has been used for performing the image alignment in this project. Table 1 shows the image alignment algorithms from MATLAB’s Computer Vision Toolbox™ used for the feature-detector-descriptors. All remaining parameters are used as default [5].
| |
|
| |
| b. Datasets
| |
| Two datasets have been used for this project:
| |
|
| |
| ● Dataset-A (see Fig. 1): Distorted image is prepared by scaling or/and rotations from original image. Cameraman image (256x256 in grayscale) shown in Fig. 1(a) is selected from the Computer Vision Toolbox™ of MATLAB.
| |
|
| |
|
| |
| (a) Template image (256 x 256)
| |
| (b) Distorted image
| |
| (scale 70% and rotate 30 degrees)
| |
| Figure 1. MATLAB’s Cameraman sample image (Dataset-A)
| |
|
| |
|
| |
| ● Dataset-B (see Fig. 2): The driving scenes generated by iset3D [6] with the camera shifted into multiple positions. Currently only translation is involved.
| |
| (a) Car moving away (720 x 1280)
| |
| (a) Driving scene (818 x 1452)
| |
| (c) Dark driving scene (818 x 1452)
| |
| Figure 2. Driving scenes (Dataset-B)
| |
|
| |
|
| |
| c. Ground truths
| |
| Ground-truth values for image transformations have been used to calculate and demonstrate error in the recovered results with each feature detector and descriptor. For evaluating scale and rotation invariance, ground-truths have been synthetically generated for each image in Dataset-A by resizing and rotating it to known values of scale (50% to 200%) and rotation (0° to 360°). For evaluating the translation invariance, pick the first image in Dataset-B as the ground-truth, and align the reset images to it.
| |
|
| |
| d. Generic image alignment phases
| |
| Image alignment algorithm involves 5 phases in general [1][3]:
| |
| ● Feature Detection & Description
| |
| ● Feature Matching
| |
| ○ Nearest-Neighbor-Distance-Ratio has been used as the feature-matching strategy.
| |
| ● Outlier Rejection
| |
| ● Derivation of Transformation Function
| |
| ○ RANSAC has been applied for rejecting outliers and fitting the transformation models (in the form of homography matrices).
| |
| ● Image Warping
| |
|
| |
| This project focuses on applying image alignment algorithms on Dataset-A (Fig. 1) and Dataset-B (Fig. 2), then comparing the image alignment algorithms among ORB, BRISK, SURF, FAST, Harris and MSER.
| |
|
| |
| e. Matching strategy based on MATLAB Computer Vision Toolbox™
| |
| Local features and their descriptors are the building blocks of many computer vision algorithms. The applications include image registration, object detection and classification, tracking, and motion estimation. These algorithms use local features to better handle scale changes, rotation, and occlusion. Computer Vision Toolbox™ algorithms [5] include the corner detectors, and the blob detectors. The toolbox includes the descriptors. The detectors and the descriptors can be mix and match depending on the requirements of the application.
| |
|
| |
|
| |
|
| |
|
| |
| Detector
| |
| Algorithm Feature Type Detector function Keypoints Properties Descriptor function Scale Invariance Rotation Invariance
| |
| FAST [8] Corner cornerPoints = detectFASTFeatures(I) location — Location coordinates
| |
| ● M-by-2 array
| |
| Count — Number of points
| |
| ● 0 (default) | integer
| |
| Metric — Strength of detected feature
| |
| ● 0.0 (default) | numeric scalar extractFeatures(I,points) No No
| |
| Harris Corner cornerPoints = detectHarrisFeatures(I) location — Location coordinates
| |
| ● M-by-2 array
| |
| Count — Number of points
| |
| ● 0 (default) | integer
| |
| Metric — Strength of detected feature
| |
| ● 0.0 (default) | numeric scalar extractFeatures(I,points) No No
| |
| SURF [9] Blob SURFPoints = detectSURFFeatures(I) Count — Number of points
| |
| ● 0 (default) | integer
| |
| location — Point locations
| |
| ● M-by-2 array (default)
| |
| Scale — Scale
| |
| ● 12.0 (default) | scalar
| |
| Metric — Strength of detected feature
| |
| ● 0.0 (default) | numeric scalar
| |
| Orientation — Orientation
| |
| ● 0.0 (default) | angle in radians
| |
| SignOfLaplacian — Sign of Laplacian
| |
| ● 0 (default) | -1 | 1 extractFeatures(I,points,'Method','SURF') Yes Yes
| |
| ORB [2] Corner
| |
| (Binary) ORBPoints = detectORBFeatures(I) Location — Location of keypoints
| |
| ● [] (default) | M-by-2 matrix
| |
| Metric — Strength of keypoints
| |
| ● [] (default) | scalar | M-element vector.
| |
| Count — Number of keypoints
| |
| ● 0 (default) | nonnegative integer
| |
| Scale — Scale factor
| |
| ● [] (default) | scalar | M-element vector
| |
| Orientation — Angle of keypoints in radians
| |
| ● [] (default) | scalar | M-element vector extractFeatures(I,points,'Method','ORB') No Yes
| |
| BRISK [10] Corner
| |
| (Binary) BRISKPoints = detectBRISKFeatures(I) Count — Number of points
| |
| ● 0 (default) | integer
| |
| Location — Point locations
| |
| ● M-by-2 array (default)
| |
| Scale — Scale
| |
| ● 12.0 (default) | scalar
| |
| Metric — Strength of detected feature
| |
| ● 0.0 (default) | numeric scalar
| |
| Orientation — Orientation
| |
| ● 0.0 (default) | angle in radians extractFeatures(I,points,'Method','BRISK') Yes Yes
| |
| MSER [11] Region with uniform intensity MSERRegions = detectBRISKFeatures(I) Location — Locations of ellipses
| |
| ● M-by-2 array (default)
| |
| Axes — Major and minor axis
| |
| ● two-element vector (default)
| |
| Orientation — Ellipse orientation
| |
| ● scalar in the range -pi/2 to +pi/2
| |
| Count — Number of stored regions
| |
| ● 0 (default) | integer extractFeatures(I,points) Scalar in the range -pi/2 to +pi/2 Yes
| |
| Table 1. MATLAB’s Computer Vision Toolbox used for the feature-detector-descriptors
| |
|
| |
|
| |
| f. Demonstration of Results
| |
| The visualized results, including matching feature points, aligned images and visualized errors with Dataset-A shown on Fig. 3 and Dataset-B shown on Fig. 4. The quantitative results, including keypoints detected in template, keypoints detected in distorted image, number of match features, computational times, etc., shown on Table 2.
| |
|
| |
|
| |
| i. The aligned images and error visualization
| |
| ● Demo script: Appendix A
| |
|
| |
|
| |
| Image matching with ORB
| |
| Image alignment with ORB
| |
| Errors with ORB
| |
|
| |
| Image matching with BRISK
| |
| Image alignment with BRISK
| |
| Errors with BRISK
| |
|
| |
| Image matching with SURF
| |
| Image alignment with SURF
| |
| Errors with SURF
| |
|
| |
| Image matching with FAST
| |
| Image alignment with FAST
| |
| Errors with FAST
| |
|
| |
| Image matching with Harris
| |
| Image alignment with Harris
| |
| Errors with Harris
| |
|
| |
| Image matching with MSER
| |
| Image alignment with MSER
| |
| Errors with MSER
| |
| Figure 3 Feature-detection, matching, and error visualization with ORB, BRISK, SURF, FAST, Harris and MSER (Scale=75%, Rotation=25 degrees on Dataset-A).
| |
|
| |
| ● Demo script: Appendix C
| |
|
| |
|
| |
| Image matching with ORB
| |
| Image alignment with ORB
| |
| Error pixel locations
| |
|
| |
| Image matching with BRISK
| |
| Image alignment with BRISK
| |
| Error pixel locations
| |
|
| |
| Image matching with SURF
| |
| Image alignment with SURF
| |
| Error pixel locations
| |
|
| |
| Image matching with FAST
| |
| Image alignment with FAST
| |
| Error pixel locations
| |
|
| |
| Image matching with Harris
| |
| Image alignment with Harris
| |
| Error pixel locations
| |
|
| |
| Image matching with MSER
| |
| Image alignment with MSER
| |
| Error pixel locations
| |
| Figure 4 Feature-detection, matching, and error visualization with ORB, BRISK, SURF, FAST, Harris and MSER on Dataset-B (car moving away scene).
| |
|
| |
| ii. Quantitative Comparison and Computational Costs of Different Feature-Detector-Descriptors (Table 2).
| |
| ● Demo scripts: Appendix B-5 and Appendix D-5
| |
|
| |
| The quantitative comparison shows FAST and Harris outperforms on feature matching accuracy, however, they are not scale invariance. BRISK turned out to be the most accurate algorithm w.r.t the distortion among all geometry distortions, while the matching time for such a large number of features prolongs the total image matching time. ORB performs the fastest with lower decomposition level, which minimizes the number of detected features, and speed up the total computation time.
| |
|
| |
| Algorithm Feature Detectors in Image Template
| |
|
| |
| ( Key
| |
| Points 1) Feature Detectors in Image to align
| |
|
| |
| ( Key
| |
| Points 2) Feature Matched Outliers Rejected Feature MatchingAccuracy Feature Detection & Description Time (s)
| |
| (Keypoint1&2) Feature Matching Time (s) Outlier Rejection & Homography Calculation Time (s) Total Image
| |
| Matching Time (s)
| |
|
| |
| Dataset-A Cameraman.tif (256 x 256)
| |
| ORB 1167 2217 443 24.925 94.374 0.020774 0.027689 0.0040226 0.052486
| |
| BRISK 365 621 33 1.435 95.652 0.41138 0.004117 0.0032802 0.41877
| |
| SURF 180 210 53 13.79 73.981 0.032463 0.002524 0.0054998 0.040487
| |
| FAST 227 390 33 0 100 0.065897 0.002773 0.0029111 0.071581
| |
| Harris 166 335 29 0 100 0.089837 0.002541 0.0026367 0.095015
| |
| MSER 237 219 14 0.765 94.536 0.14122 0.00224 0.0030951 0.14655
| |
| Dataset-B carMovingAway (720 x 1280)
| |
| ORB
| |
| (NumLeve=1) 2511 3145 2313.1 4.75 99.794 0.031847 0.069256 0.003704 0.10481
| |
| BRISK 295 411.75 269.63 1 99.625 0.65602 0.002797 0.002908 0.66172
| |
| SURF 309 384.63 286.75 3.5 98.765 0.13852 0.0025 0.003059 0.14408
| |
| FAST 170 240.63 162 1.125 99.311 0.069829 0.002143 0.002576 0.074548
| |
| Harris 205 207.13 185.88 1 99.457 0.29482 0.002106 0.002543 0.29947
| |
| MSER 322 391.25 234.88 0.125 99.942 0.34853 0.002335 0.002714 0.35358
| |
| Dataset-B drivingScene (818 x 1452)
| |
| ORB
| |
| (NumLeve=1) 1653 1711.5 656.75 120.75 60.379 0.030975 0.026432 0.006166 0.063572
| |
| BRISK 828 869.75 408 83.625 68.393 0.58349 0.008439 0.004308 0.59624
| |
| SURF 703 711.25 462 176.13 53.024 0.16185 0.00668 0.008674 0.1772
| |
| FAST 354 367 165.75 35.375 65.085 0.065647 0.002391 0.003879 0.071917
| |
| Harris 651 647.25 299.75 62.75 63.904 0.31403 0.00573 0.004377 0.32414
| |
| MSER 585 638 213 42.25 51.836 0.48952 0.005501 0.006405 0.50143
| |
| Dataset-B drivingScene-dark (818 x 1452)
| |
| ORB (NumLeve=1) 774 765 446.75 46 80.253 0.026179 0.006747 0.003515 0.03644
| |
| BRISK 282 286.5 206.25 33.875 78.018 0.57272 0.002189 0.003443 0.57835
| |
| SURF 380 379.25 324 72.875 74.172 0.16159 0.002279 0.004617 0.16849
| |
| FAST 62 63.25 39.25 2.5 88.641 0.061589 0.001544 0.002304 0.065437
| |
| Harris 517 502.25 317.5 35.25 81.598 0.31614 0.003552 0.003058 0.32275
| |
| MSER 81 82.25 48 3.125 89.02 0.24727 0.001389 0.002982 0.25164
| |
| Mean Values for all datasets
| |
| ORB
| |
| (NumLeve=1) 1526.3 1959.6 964.9 49.106 83.7 0.027339 0.032564 0.0043298 0.064232
| |
| BRISK 442.5 547.25 229.22 29.984 85.422 0.55057 0.004411 0.0034941 0.55847
| |
| SURF 393 421.28 281.44 66.574 74.986 0.12357 0.00354 0.0055337 0.13265
| |
| FAST 203.25 265.22 100 9.75 88.259 0.065364 0.002213 0.002968 0.070544
| |
| Harris 384.75 422.91 208.03 24.75 86.24 0.25072 0.00351 0.0031934 0.25742
| |
| MSER 306.25 332.63 127.47 11.566 83.834 0.31412 0.00292 0.0038919 0.32093
| |
|
| |
| Table 2. Quantitative Comparison and Computational Costs of Different Feature-Detector-Descriptors
| |
|
| |
| 6. Evaluation
| |
| a. Inlier Percentages
| |
| Inlier percentage of a feature-detector is the percentage of detected features that survive photometric or geometric transformations in an image (a.k.a Repeatability[1]). Inlier percentage is not related with the descriptors and only depends on the performance of the feature detectors. The results of comparing each alignment algorithms shown on Fig. 6-1. The inlier percentage is calculated as:
| |
| Number of Correct matches / (Keypoints1)+(Keypoints2)
| |
| ● Keypoints1: Number of features detected in the template image
| |
| ● Keypoints2: Number of features detected in the distorted image
| |
|
| |
| The quantitative data are available at Appendix E.
| |
| i. Percentage of inliers w.r.t synthetic rotations (Fig. 6-1a)
| |
| FAST and Harris detectors outperforms BRISK ,while SURF and ORB have the best performance, which shows quantization effects at 45-degree angles due to its Haar-wavelet composition [2].
| |
| The performance of inlier percentage w.r.t. rotations can be rated as: (Demo script: Appendix B-1)
| |
| SURF>ORB>MSER>FAST>Harris>BRISK
| |
|
| |
| ii. Percentage of inliers w.r.t synthetic scale changes (Fig. 6-1b)
| |
| SURF outperforms ORB, MSER and BRISK with regards to the synthetic scale changes. FAST and Harris features detectors are not scale invariance, which is also proved from this experiment; FAST and Harris detectors are unable to locate sufficient keypoints for alignment while scale changes over 40 percent on Dataset-A, so keep them out of the comparison.
| |
| The performance of inlier percentage w.r.t scale changes can be rated as: (Demo script: Appendix B-1)
| |
| SURF>ORB>MSER>BRISK
| |
|
| |
| iii. Percentage of inliers w.r.t synthetic translations (Fig. 6-1c)
| |
| SURF and ORB detectors outperforms FAST and BRISK, while Harris performs the best, with over 90 % inliers, on Dataset-B w.r.t translations.
| |
| The performance of inlier percentage w.r.t translations can be rated as: (Demo script: Appendix D-1)
| |
| Harris>SURF>ORB>FAST>BRISK>MSER
| |
|
| |
|
| |
|
| |
| a. Dataset-A w.r.t rotations
| |
| (1~359 degrees)
| |
| b. Dataset-A w.r.t scale changes
| |
| (50~200%)
| |
| c. Dataset-B w.r.t translations
| |
| Figure 6-1 Inlier percentage
| |
|
| |
|
| |
| b. Feature Matching Accuracy
| |
| Accuracy of descriptor is the number of correctly matched regions with respect to total number of matches between template image and input image of the same scene [7]. The feature matching accuracy is calculated as:
| |
|
| |
| Number of Correct Matches / (Number of Matches) * 100%
| |
|
| |
| i. Feature matching accuracy w.r.t synthetic rotations (Fig. 6-2a)
| |
| FAST>Harris>ORB>BRISK>MSER>SURF
| |
| ii. Feature matching accuracy w.r.t synthetic scale changes (Fig. 6-2b)
| |
| MSER>ORB>BRISK>SURF
| |
| iii. Feature matching accuracy w.r.t synthetic translations (Fig. 6-2c)
| |
| MSER>ORB>BRISK>Harris>SURF>FAST
| |
|
| |
| In summary, MSER and ORB descriptors performs the best for extracting the correct features, while SURF and FAST performs the worst in this experiment. (The demo scripts: Appendix B-2 and Appendix D-2)
| |
|
| |
|
| |
| a. Dataset-A w.r.t rotations
| |
| b. Dataset-A w.r.t scale changes
| |
| c. Dataset-B w.r.t translations
| |
| Figure 6-2 Feature Matching Accuracy
| |
|
| |
|
| |
| c. Total Image Matching Time
| |
| Total image matching time refers to the total computation time of feature detection, feature extraction, feature matching, outlier rejection and transformations.
| |
|
| |
| i. Total image matching speed w.r.t synthetic rotations (Fig. 6-3a)
| |
| SURF>ORB>FAST>Harris>MSER>BRISK
| |
| ii. Total image matching speed w.r.t synthetic scale changes (Fig. 6-3b)
| |
| SURF>ORB>MSER>BRISK
| |
| iii. Total image matching speed w.r.t synthetic translations (Fig. 6-3c)
| |
| FAST>ORB>SURF>Harris>MSER>BRISK
| |
|
| |
| SURF and ORB performs as the fastest and stable image alignment algorithms. FAST performs the best with only translations involved. BRISK performs the slowest in all the datasets. (The demo scripts: Appendix B-3 and Appendix D-3)
| |
|
| |
|
| |
| a. Dataset-A w.r.t rotations
| |
| b. Dataset-A w.r.t scale changes
| |
| c. Dataset-B w.r.t translations
| |
| Figure 6-3 Total Image Matching Time
| |
|
| |
| d. Root-Mean-Square errors
| |
| Comparing restoration results requires a measure of image quality. RMSE is a measure of how spread out the regression data points are. In other words, it tells you how concentrated the data is around the line of best fit [12].
| |
|
| |
| i. Restoration quality (RMSE) w.r.t synthetic rotations (Fig. 6-4a)
| |
| Harris>MSER>FAST>ORB>BRISK>SURF
| |
| ii. Restoration quality (RMSE) w.r.t synthetic scale changes (Fig. 6-4b)
| |
| MSER>ORB>BRISK>SURF
| |
| iii. Restoration quality (RMSE) w.r.t synthetic translations (Fig. 6-4c)
| |
| MSER>BRISK>FAST>Harris>SURF>ORB
| |
|
| |
| The result shows the variance of the RMSE are high w.r.t both scale changes and rotations, with SURF performs the worst. FAST and MSER shows less RMS errors w.r.t rotations, while they are not scale invariance. The RMS experiments on Dataset-B with translation shows comparable restoration quality. (The demo scripts: Appendix B-4 and Appendix D-4)
| |
|
| |
|
| |
|
| |
| (j) Dataset-A w.r.t rotations
| |
| (k) Dataset-A w.r.t scale changes
| |
| (l) Dataset-B w.r.t translations
| |
| Figure 6-4 Root-Mean-Square error
| |
|
| |
|
| |
| 7. Conclusion
| |
| This project presents comparison of ORB, BRISK, SURF, FAST, Harris and MSER feature-detector-descriptors. SURF and ORB are found to be the most scale invariant feature detectors (on the basis of inlier percentage) that have survived wide-spread scale variations. BRISK is found to be least scale invariant (FAST and Harris are not scale invariant). SURF and ORB are also more rotation invariant than others. FAST and Harris have higher accuracy for image rotations as compared to the rest. Although, ORB, BRISK are the most efficient algorithms that can detect a huge amount of features, the matching time for such a large number of features prolongs the total image matching time. On the contrary, FAST and SURF perform fastest image matching but their accuracy gets compromised.
| |
|
| |
| The quantitative comparison (Appendix E) has shown that the generic order of feature-detector-descriptors for their ability to detect high quantity of features (Inliers Percentage) is:
| |
| SURF>Harris>ORB>BRISK>FAST>MSER
| |
|
| |
| ● The sequence of algorithms for computational efficiency of feature-detection-description per feature-point is:
| |
| ORB>SURF>Harris>FAST>BRISK>MSER
| |
|
| |
| ● The order of efficient feature-matching per feature-point is:
| |
| Harris>SURF>BRISK>FAST>MSER>ORB
| |
|
| |
| ORB is most efficient feature-detection-description algorithm, while it is most inefficient during feature matching.
| |
|
| |
| ● The feature-detector-descriptors can be rated for the speed of total image matching as:
| |
| ORB>FAST>SURF>Harris>MSER>BRISK
| |
|
| |
| ● The image matching accuracy of descriptors can be rated as:
| |
| FAST>Harris>BRISK>MSER>ORB>SURF
| |
|
| |
| The overall accuracy of BRISK and MSER are found to be highest for all types of geometric transformations (as FAST and Harris are not scale invariant), and ORB performs the best with regards to speed versus accuracy.
| |
|
| |
|
| |
|
| |
| 8. References
| |
| [1] Shaharyar Ahmed Khan Tareen and Zahra Saleem. “A Comparative Analysis of SIFT, SURF, KAZE, AKAZE, ORB, and BRISK”, in International Conference on Computing, Mathematics and Engineering Technologies, iCoMET, 2018
| |
|
| |
| [2] Rublee, E., V. Rabaud, K. Konolige and G. Bradski. "ORB: An efficient alternative to SIFT or SURF." In Proceedings of the 2011 International Conference on Computer Vision, 2564–2571. Barcelona, Spain, 2011.
| |
|
| |
| [3] Image Alignment (Feature Based) using OpenCV (C++/Python) https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/
| |
|
| |
| [4] Matlab Computer Vision Toolbox™ https://www.mathworks.com/help/vision/feature-detection-and-extraction.html
| |
|
| |
| [5] The Image Systems Engineering Toolbox for Cameras (isetcam) https://github.com/ISET/isetcam
| |
|
| |
| [6] PBRT scene rendering (Iset3D) https://github.com/ISET/iset3d
| |
|
| |
| [7] Siok Yee Tan, Haslina Arshad and Azizi Abdullah, “Distinctive accuracy measurement of binary descriptors in mobile augmented reality”, published in January, 2019
| |
|
| |
| [8] Rosten, E., and T. Drummond. “Machine Learning for High-Speed Corner Detection.” 9th European Conference on Computer Vision. Vol. 1, 2006, pp. 430–443.
| |
|
| |
| [9] Bay, H., A. Ess, T. Tuytelaars, and L. Van Gool. “SURF: Speeded Up Robust Features.” Computer Vision and Image Understanding (CVIU). Vol. 110, No. 3, 2008, pp. 346–359.
| |
|
| |
| [10] Leutenegger, S., M. Chli, and R. Siegwart. “BRISK: Binary Robust Invariant Scalable Keypoints.” Proceedings of the IEEE International Conference. ICCV, 2011.
| |
|
| |
| [11] Matas, J., O. Chum, M. Urba, and T. Pajdla. "Robust wide-baseline stereo from maximally stable extremal regions."Proceedings of British Machine Vision Conference. 2002, pp. 384–396.
| |
|
| |
| [12] Barnston, A., (1992). “Correspondence among the Correlation [root mean square error] and Heidke Verification Measures; Refinement of the Heidke Score.” Notes and Correspondence, Climate Analysis Center.
| |
| Appendix A: Image Alignment Experiments on Dataset-A
| |
| ● Script: featureAlignmentEvaluationMain.m
| |
|
| |
| Appendix B: Performance Evaluation function on Dataset-A
| |
| ● Function: featureAlignmentEvaluation.m
| |
| ● Performance evaluation:
| |
| ○ Inlier Percentage (Appendix B-1)
| |
| ■ Script: alignmentEvaluation_theta_Inliers.m, alignmentEvaluation_scale_Inliers.m
| |
| ●
| |
| ○ Feature Matching Accuracy (Appendix B-2)
| |
| ■ Script: alignmentEvaluation_theta_Accuracy.m, alignmentEvaluation_scale_Accuracy.m
| |
| ●
| |
| ○ Image Matching time (Appendix D-3)
| |
| ■ Script: alignmentEvaluation_theta_Time.m, alignmentEvaluation_scale_Time.m
| |
| ●
| |
| ○ Root-Mean-Square errors (Appendix B-4)
| |
| ■ Script: alignmentEvaluation_theta_RMSE.m, alignmentEvaluation_scale_RMSE.m
| |
| ●
| |
| ○ Quantitative evaluation (Appendix B-5)
| |
| ■ Script: alignmentEvaluation_theta_performance.m
| |
| ■ Output csv:
| |
| ● D1AveragePerformance.csv
| |
|
| |
|
| |
|
| |
| Appendix C: Image Alignment Experiments on Dataset-B
| |
| ● Script: featureAlignmentEvaluationMain2.m
| |
|
| |
| Appendix D: Performance evaluation function on Dataset-B
| |
| ● Function: featureAlignmentEvaluationPerformance2.m
| |
| ● Performance Evaluations:
| |
|
| |
| ○ Inlier Percentage (Appendix D-1)
| |
| ■ Script: alignmentEvaluation2_carMovingAway_Inliers.m
| |
|
| |
| ○ Feature Matching Accuracy (Appendix D-2)
| |
| ■ Script: alignmentEvaluation2_carMovingAway_Accuracy.m
| |
|
| |
| ○ Image Matching time (Appendix D-3)
| |
| ■ Script: alignmentEvaluation2_carMovingAway_Time.m
| |
|
| |
| ○ Root-Mean-Square errors (Appendix D-4)
| |
| ■ Script: alignmentEvaluation2_carMovingAway_RMSE.m
| |
|
| |
| ○ Quantitative evaluation (Appendix D-5)
| |
| ■ Script: alignmentEvaluation2_Performance.m
| |
| ■ Output csv:
| |
| ● D2AveragePerformance_carMovingAway.csv
| |
| ● D2AveragePerformance_drivingScene.csv
| |
| ● D2AveragePerformance_drivingScene-dark.csv
| |
|
| |
|
| |
|
| |
| Appendix E: Quantitative Evaluation Table
| |