LindaWu: Difference between revisions

From Psych 221 Image Systems Engineering
Jump to navigation Jump to search
imported>Student221
Created page with ' 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…'
 
imported>Student221
 
(112 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= Introduction =
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.
Image alignment is the technique of warping one image (or sometimes both images) so that the features in the two images line up perfectly.
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.




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.


= Basic Theory =
At the heart of image alignment techniques is a 3×3 matrix called Homography.


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.
1. The two images are that of a plane.
2. The two images were acquired by rotating the camera about its optical axis.
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.
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?
● 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.
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]
A feature point detector has two parts [3]
* '''Feature 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.


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.
* '''Feature 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.


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.
= 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).


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.
'''1. Alignment Algorithms'''


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.
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.


'''2. Evaluation'''


4. Task Definition
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.
Iset3D [6] produces (a) image data, and (b) a template with pixel RGB values that define the object location in each image (ground truth).
 
= Experiments & Results =
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].


a. Alignment Algorithm
==Dataset==
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
* '''Dataset-A'''
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.
Distorted image is prepared by scaling or/and rotations from original image. Cameraman image (256x256 in grayscale) shown in Fig. 1 is selected from the Computer Vision Toolbox™ of MATLAB.


[[Image:cameraman.png|100px|link=|caption]]


Fig. 1 Cameraman.tif


* '''Dataset-B'''
The driving scenes generated by Iset3D [6] with the camera shifted into multiple positions (see Fig. 2). Currently only translation is involved.


[[Image:carMovingAway.png|200px|link=|caption]] [[Image:drivingScene.png|200px|link=]] [[Image:drivingSceneDark.png|200px|link=]]


Fig. 2 Iset3D driving scenes


==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 (1° to 359°). For evaluating the translation invariance, pick the first image in Dataset-B as the ground-truth, and align the rest images to it.


==Generic image alignment phases==
5. EXPERIMENTS & RESULTS
Image alignment algorithm involves 5 phases in general [1][3]:
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
#'''Feature Detection & Description'''
Two datasets have been used for this project:
#Feature Matching
#Outlier Rejection
#Derivation of Transformation Function
#Image Warping


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.
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.


==Matching strategy based on MATLAB Computer Vision Toolbox™==
(a) Template image (256 x 256)
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.
(b) Distorted image
(scale 70% and rotate 30 degrees)
Figure 1. MATLAB’s Cameraman sample image (Dataset-A)


==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.


● 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)


[[Image:A-11.png|200px|link=|caption]] [[Image:A-12.png|200px|link=]] [[Image:A-13.png|200px|link=]]
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
Fig 3. Feature-detection, alignment, and error visualization with ORB (Scale=75%, Rotation=25 degrees on Dataset-A)
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.


[[Image:B-a1.png|200px|link=]] [[Image:B-a2.png|200px|link=]] [[Image:B-a3.png|200px|link=]]


Detector
[[Image:B-21.png|200px|link=]] [[Image:B-22.png|200px|link=]] [[Image:B-23.png|200px|link=]]
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


[[Image:B-31.png|200px|link=|caption]] [[Image:B-32.png|200px|link=]] [[Image:B-33.png|200px|link=]]


f. Demonstration of Results
Fig 4. Feature-detection, alignment, and error visualization with ORB (Dataset-B)
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).  
= Evaluation =
● Demo scripts: Appendix B-5 and Appendix D-5
== Error in Recovered Rotations (Dataset-A) ==
The result shows the capability of recovered error in recovered rotations.


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. 
''<span style="color:#0000ff">'''ORB'''>FAST>Harris>BRISK>MSER>'''SURF'''</span>''


Algorithm Feature Detectors in Image Template
[[File:recoveredRotations.png|300px|link=]]


( Key
== Error in Recovered Scale changes (Dataset-A)==
Points 1) Feature Detectors in Image to align
The result shows the capability of recovered error in recovered scales. 


( Key
''<span style="color:#0000ff">'''ORB'''>MSER>SURF>BRISK>Harris>'''FAST'''</span>''
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)
[[File:recoveredScales.png|300px|link=]]
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
== Inlier Percentage ==
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:
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
::::: <math>{Number of Correct Matches \over Keypoints1+Keypoints2}</math>
● 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)
* '''Percentage of inliers w.r.t synthetic rotations'''
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:
 
''<span style="color:#0000ff">'''SURF>ORB'''>MSER>FAST>Harris>'''BRISK'''</span>''
 
[[File:Inliers_theta.png|300px|link=]]
 
 
* '''Percentage of inliers w.r.t synthetic scale changes'''
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.
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)
The performance of inlier percentage w.r.t scale changes can be rated as:  
SURF>ORB>MSER>BRISK


iii. Percentage of inliers w.r.t synthetic translations (Fig. 6-1c)
''<span style="color:#0000ff">'''SURF'''>ORB>MSER>'''BRISK'''</span>''
[[File:Inliers_scale.png|300px|link=]]
 
 
* '''Percentage of inliers w.r.t synthetic translations'''
SURF and ORB detectors outperforms FAST and BRISK, while Harris performs the best, with over 90 % inliers, on Dataset-B w.r.t translations.  
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)
The performance of inlier percentage w.r.t translations can be rated as:  
Harris>SURF>ORB>FAST>BRISK>MSER
 
''<span style="color:#0000ff">'''Harris'''>SURF>ORB>FAST>BRISK>'''MSER''' </span>''
[[File:Inliers_car.png|300px|link=]]
 
== 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:
 
 
::::: <math>{Number of Correct Matches \over Number of Matches} * 100%</math>
 
 
 
* '''Feature Matching Accuracy w.r.t synthetic rotations'''
''<span style="color:#0000ff">'''FAST>Harris'''>ORB>BRISK>MSER>'''SURF''' </span>''
[[File:Accuracy_theta.png|300px|link=]]




* '''Feature Matching Accuracy w.r.t synthetic scale changes'''
a. Dataset-A w.r.t rotations
  ''<span style="color:#0000ff">'''MSER>ORB'''>BRISK>'''SURF''' </span>''
(1~359 degrees)  
[[File:Accuracy_scale.png|300px|link=]]
b. Dataset-A w.r.t scale changes
 
(50~200%)  
 
c. Dataset-B w.r.t translations
* '''Feature Matching Accuracy w.r.t synthetic translations'''
Figure 6-1 Inlier percentage
  ''<span style="color:#0000ff">'''MSER>ORB'''>BRISK>Harris>SURF>'''FAST'''</span>''
[[File:Accuracy_car.png|300px|link=]]
 
 
 
In summary, MSER and ORB descriptors performs the best for extracting the correct features, while SURF and FAST performs the worst in this experiment.
 
== Total Image Matching Time ==
Total image matching time refers to the total computational time of feature detection, feature extraction, feature matching, outlier rejection and transformations.
* '''Total Matching Time w.r.t synthetic rotations'''
 
  ''<span style="color:#0000ff">'''SURF>ORB'''>FAST>Harris>MSER>'''BRISK'''</span>''
[[File:Time_theta.png|300px|link=]]




b. Feature Matching Accuracy
* '''Total Matching Time w.r.t synthetic scale changes'''
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%
  ''<span style="color:#0000ff">'''SURF>ORB'''>MSER>'''BRISK'''</span>''
[[File:Time_scale.png|300px|link=]]


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)
* '''Total Matching Time w.r.t synthetic translations'''


  ''<span style="color:#0000ff">'''FAST>ORB'''>SURF>Harris>MSER>'''BRISK'''</span>''
a. Dataset-A w.r.t rotations
[[File:Time_car.png|300px|link=]]
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 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.
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)
== Root-Mean-Square errors (RMSE)==


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].
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)
* '''RMSE w.r.t synthetic rotations'''


''<span style="color:#0000ff">'''Harris'''>MSER>FAST>ORB>BRISK>'''SURF'''</span>''
[[File:RMSE_theta.png|300px|link=]]


(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


* '''RMSE w.r.t synthetic scale changes'''
7. Conclusion
 
''<span style="color:#0000ff">'''MSER'''>ORB>BRISK>'''SURF'''</span>''
[[File:RMSE_scale.png|300px|link=]]
 
 
* '''RMSE w.r.t synthetic translations'''
 
''<span style="color:#0000ff">'''MSER'''>BRISK>FAST>Harris>SURF>ORB</span>''
[[File:RMSE_car.png|300px|link=]]
 
 
The result shows the variance of the RMSE are high w.r.t both scale changes and rotations, with SURF performs the worst. Harris shows less RMSE w.r.t rotations, while it is not scale invariant.  The RMSE experiments on Dataset-B with translation shows comparable restoration quality.
 
== Quantitative Comparison and Computational Costs of Different Feature-Detector-Descriptors ==
The quantitative results, including keypoints detected in template, keypoints detected in distorted image, number of match features, computational times, etc., shown on Table 2.
 
 
The quantitative comparison shows FAST and Harris outperforms on feature matching accuracy, however, they are not scale invariant. 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 computational time.
 
 
[[File:QData.png|700px|caption]]
 
Table 2. Quantitative Comparison and Computational Costs of Different Feature-Detector-Descriptors
 
= 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.  
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:
The quantitative comparison (Table 2.) 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
 
''<span style="color:#0000ff">'''SURF'''>Harris>ORB>BRISK>FAST>'''MSER'''</span>''


● The sequence of algorithms for computational efficiency of feature-detection-description per feature-point is:
● The sequence of algorithms for computational efficiency of feature-detection-description per feature-point is:
ORB>SURF>Harris>FAST>BRISK>MSER
 
''<span style="color:#0000ff">'''ORB'''>SURF>Harris>FAST>BRISK>'''MSER'''</span>''


● The order of efficient feature-matching per feature-point is:
● The order of efficient feature-matching per feature-point is:
Harris>SURF>BRISK>FAST>MSER>ORB
 
''<span style="color:#0000ff">'''Harris'''>SURF>BRISK>FAST>MSER>'''ORB'''</span>''


ORB is most efficient feature-detection-description algorithm, while it is most inefficient during feature matching.  
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:
● The feature-detector-descriptors can be rated for the speed of total image matching as:
ORB>FAST>SURF>Harris>MSER>BRISK
''<span style="color:#0000ff">'''ORB>FAST'''>SURF>Harris>MSER>'''BRISK'''</span>''


● The image matching accuracy of descriptors can be rated as:  
● The image matching accuracy of descriptors can be rated as:  
FAST>Harris>BRISK>MSER>ORB>SURF
''<span style="color:#0000ff">(FAST>Harris>)'''BRISK'''>MSER>ORB>SURF </span>''


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.
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.


= Experiment of Burst Photography =
One of the applications using image alignment algorithm is whether you can align these images and average them!
The goal is to bring all of the radiance images into register so that the average is less noisy than the originals.
This computational challenge is connected to the idea of 'burst photography' in which vendors take a series of brief images and then average them to produce a final high-quality image.
'''Experiment 1: Gray-scale Image'''
*Step 1: Pick any image in the carMovingAway dataset as the original(template) image.
*Step 2: Convert it to grayscale using MATLAB function, rgb2gray(rgbOriginal).
[[File:originalBurst.png|300px|link=]]
*Step 3: Align the rest of images (the other 7 images) to the template using ORB alignment algorithm. Choosing ORB alignment algorithm because it is evaluated as the fastest in this project.
*Step 4: Average the aligned images.
[[File:averageAlgined.png|300px|link=]]
*Step 5: Add the "averaged aligned data"(Step 4) to the original and produce below.
[[File:finalAligned.png|300px|link=]]
From the above experiment, Step 4 averaging the alignment data from sequence of burst photos does reduce the noise (misalignment from trees, clouds).
To enhance the original photo, I apply the "averaged" alignment data to the original, which brightens up the regions where were blurred by motion (Step 5).


 
8. References
 
'''Experiment 2: Color Image'''
*Step 1: Pick any image in the carMovingAway dataset as the original(template) image.
 
[[File:originalColor.png|300px|link=]]
 
*Step 2: Separate original template into R, G and B channels
*Step 3: Repeat Step 3&4 from Experiment 1 on R, G, B channels respectively
*Step 4: Add the "averaged aligned data"(Step 3) to the original image and generate below.
 
[[File:averageAlginedColor.png|300px|link=]]
 
*Step 5: Normalize R, G, B channels and generate enhanced quality image.
 
[[File:finalAlginedColor.png|300px|link=]]
 
 
The comparison between original image with the enhanced image:
 
[[File:compareAligned.png|600px|link=]]
 
= Reference =
[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
[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


Line 409: Line 318:
[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.
[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.
[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

Latest revision as of 00:12, 15 December 2019

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. 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.


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]

  • Feature 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.
  • Feature 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.

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).

1. Alignment Algorithms

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.

2. 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.

Experiments & Results

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].

Dataset

  • Dataset-A

Distorted image is prepared by scaling or/and rotations from original image. Cameraman image (256x256 in grayscale) shown in Fig. 1 is selected from the Computer Vision Toolbox™ of MATLAB.

caption

Fig. 1 Cameraman.tif

  • Dataset-B

The driving scenes generated by Iset3D [6] with the camera shifted into multiple positions (see Fig. 2). Currently only translation is involved.

caption

Fig. 2 Iset3D driving scenes

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 (1° to 359°). For evaluating the translation invariance, pick the first image in Dataset-B as the ground-truth, and align the rest images to it.

Generic image alignment phases

Image alignment algorithm involves 5 phases in general [1][3]:

  1. Feature Detection & Description
  2. Feature Matching
  3. Outlier Rejection
  4. Derivation of Transformation Function
  5. 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.

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.

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.


caption

Fig 3. Feature-detection, alignment, and error visualization with ORB (Scale=75%, Rotation=25 degrees on Dataset-A)


caption

Fig 4. Feature-detection, alignment, and error visualization with ORB (Dataset-B)



Evaluation

Error in Recovered Rotations (Dataset-A)

The result shows the capability of recovered error in recovered rotations.

ORB>FAST>Harris>BRISK>MSER>SURF

Error in Recovered Scale changes (Dataset-A)

The result shows the capability of recovered error in recovered scales.

ORB>MSER>SURF>BRISK>Harris>FAST

Inlier Percentage

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:

NumberofCorrectMatchesKeypoints1+Keypoints2


  • Percentage of inliers w.r.t synthetic rotations

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:

SURF>ORB>MSER>FAST>Harris>BRISK


  • Percentage of inliers w.r.t synthetic scale changes

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:

SURF>ORB>MSER>BRISK


  • Percentage of inliers w.r.t synthetic translations

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:

Harris>SURF>ORB>FAST>BRISK>MSER 

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:


NumberofCorrectMatchesNumberofMatches*100%


  • Feature Matching Accuracy w.r.t synthetic rotations
FAST>Harris>ORB>BRISK>MSER>SURF 


  • Feature Matching Accuracy w.r.t synthetic scale changes
MSER>ORB>BRISK>SURF 


  • Feature Matching Accuracy w.r.t synthetic translations
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.

Total Image Matching Time

Total image matching time refers to the total computational time of feature detection, feature extraction, feature matching, outlier rejection and transformations.

  • Total Matching Time w.r.t synthetic rotations
 SURF>ORB>FAST>Harris>MSER>BRISK


  • Total Matching Time w.r.t synthetic scale changes
 SURF>ORB>MSER>BRISK


  • Total Matching Time w.r.t synthetic translations
 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.

Root-Mean-Square errors (RMSE)

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].


  • RMSE w.r.t synthetic rotations
Harris>MSER>FAST>ORB>BRISK>SURF


  • RMSE w.r.t synthetic scale changes
MSER>ORB>BRISK>SURF


  • RMSE w.r.t synthetic translations
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. Harris shows less RMSE w.r.t rotations, while it is not scale invariant. The RMSE experiments on Dataset-B with translation shows comparable restoration quality.

Quantitative Comparison and Computational Costs of Different Feature-Detector-Descriptors

The quantitative results, including keypoints detected in template, keypoints detected in distorted image, number of match features, computational times, etc., shown on Table 2.


The quantitative comparison shows FAST and Harris outperforms on feature matching accuracy, however, they are not scale invariant. 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 computational time.


caption

Table 2. Quantitative Comparison and Computational Costs of Different Feature-Detector-Descriptors

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 (Table 2.) 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.

Experiment of Burst Photography

One of the applications using image alignment algorithm is whether you can align these images and average them! The goal is to bring all of the radiance images into register so that the average is less noisy than the originals. This computational challenge is connected to the idea of 'burst photography' in which vendors take a series of brief images and then average them to produce a final high-quality image.

Experiment 1: Gray-scale Image

  • Step 1: Pick any image in the carMovingAway dataset as the original(template) image.
  • Step 2: Convert it to grayscale using MATLAB function, rgb2gray(rgbOriginal).

  • Step 3: Align the rest of images (the other 7 images) to the template using ORB alignment algorithm. Choosing ORB alignment algorithm because it is evaluated as the fastest in this project.
  • Step 4: Average the aligned images.

  • Step 5: Add the "averaged aligned data"(Step 4) to the original and produce below.


From the above experiment, Step 4 averaging the alignment data from sequence of burst photos does reduce the noise (misalignment from trees, clouds).

To enhance the original photo, I apply the "averaged" alignment data to the original, which brightens up the regions where were blurred by motion (Step 5).


Experiment 2: Color Image

  • Step 1: Pick any image in the carMovingAway dataset as the original(template) image.

  • Step 2: Separate original template into R, G and B channels
  • Step 3: Repeat Step 3&4 from Experiment 1 on R, G, B channels respectively
  • Step 4: Add the "averaged aligned data"(Step 3) to the original image and generate below.

  • Step 5: Normalize R, G, B channels and generate enhanced quality image.


The comparison between original image with the enhanced image:

Reference

[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.