3d from photographs: structure from motion · 2020-04-28 · 3d from photographs: structure from...
Post on 11-Jul-2020
5 Views
Preview:
TRANSCRIPT
3D from Photographs: Structure From Motion
Dr Francesco Banterle francesco.banterle@isti.cnr.it
Note: in these slides the optical center is placed back to simplify drawing and understanding.
3D model
3D from PhotographsAutomatic
Matching of Images
Camera Calibration
Dense Matching
Photographs
Surface Reconstruction
3D model
3D from PhotographsAutomatic
Matching of Images
Camera Calibration
Dense Matching
Photographs
Surface Reconstruction
Camera Pose Calibration
Camera Pose Calibration• We have seen methods for estimating the intrinsic
matrix K, and the extrinsic matrix G = [R | t] using a calibration pattern:
• DLT
• Zhang’s algorithm
• How do we get the camera’s pose, G, without patterns?
Camera Pose Calibration
• Let’s assume that:
• We have K for each photograph.
• We have matches between images.
A Two-Camera Example
A Two-Camera ExampleM
m1
m2
C1
C2
Camera 1
Camera 2
A Two-Camera Example: Epipolar Geometry
M
m1
m2
C1
C2
Camera 1
Camera 2
C1C2 is called baseline
A Two-Camera Example• Let’s assume that we have K1 and K2.
• Let’s assume that G1 is set in the origin and aligned with the reference frame. This means:
Note that we only need to estimate R and t !
G1 = [I|0] ! P1 = K1 ·G1
P2 = K2 · [R|t]
A Two-Camera Example
• To simplify, let’s remove K matrices:
• To points as well:
P 01 = K�1
1 · P1 = [I|0]P 02 = K�1
2 · P2 = [R|t]
m1 = K�11 ·m1
m2 = K�12 ·m2
A Two-Camera Example
• To simplify, let’s remove K matrices:
• To points as well:
P 01 = K�1
1 · P1 = [I|0]P 02 = K�1
2 · P2 = [R|t]
Normalized coordinates
m1 = K�11 ·m1
m2 = K�12 ·m2
A Two-Camera Example• Given the Longuet-Higgins equation, we know that:
• E (a 3×3 matrix) is called the essential matrix and it is defined as:
E = [t]⇥ ·R [t]⇥ =
2
40 �t3 t2t3 0 �t1�t2 t1 0
3
5
m>2 · E · m1 = 0
• If we do not have K1 and K2 and apply the Longuet-Higgins equation, we obtain:
• where F (a 3×3 matrix) is called the fundamental matrix. This matrix is linked to E as:
The Fundamental Matrix
F = K�>2 · E ·K�1
1 E = K>2 · F ·K1
<latexit sha1_base64="+NNPcjatjbkg5pujiKL5LtdcjHU=">AAACBXicbVBNSwMxEM36WevXqkcRgkXwVHaLoB6EoihCLxWsLXTrkk3TNjS7WZJZoSw9efGvePGg4tX/4M1/Y9ruQVsfDPN4b4ZkXhALrsFxvq25+YXFpeXcSn51bX1j097avtMyUZTVqBRSNQKimeARqwEHwRqxYiQMBKsH/YuRX39gSnMZ3cIgZq2QdCPe4ZSAkXx77xKf4YpfuvdAxtijbQn4atIqvuvbBafojIFniZuRAspQ9e0vry1pErIIqCBaN10nhlZKFHAq2DDvJZrFhPZJlzUNjUjIdCsdnzHEB0Zp445UpiLAY/X3RkpCrQdhYCZDAj097Y3E/7xmAp2TVsqjOAEW0clDnURgkHiUCW5zxSiIgSGEKm7+immPKELBJJc3IbjTJ8+SWql4WnRujgrl8yyNHNpF++gQuegYldE1qqIaougRPaNX9GY9WS/Wu/UxGZ2zsp0d9AfW5w+Qi5bY</latexit><latexit sha1_base64="+NNPcjatjbkg5pujiKL5LtdcjHU=">AAACBXicbVBNSwMxEM36WevXqkcRgkXwVHaLoB6EoihCLxWsLXTrkk3TNjS7WZJZoSw9efGvePGg4tX/4M1/Y9ruQVsfDPN4b4ZkXhALrsFxvq25+YXFpeXcSn51bX1j097avtMyUZTVqBRSNQKimeARqwEHwRqxYiQMBKsH/YuRX39gSnMZ3cIgZq2QdCPe4ZSAkXx77xKf4YpfuvdAxtijbQn4atIqvuvbBafojIFniZuRAspQ9e0vry1pErIIqCBaN10nhlZKFHAq2DDvJZrFhPZJlzUNjUjIdCsdnzHEB0Zp445UpiLAY/X3RkpCrQdhYCZDAj097Y3E/7xmAp2TVsqjOAEW0clDnURgkHiUCW5zxSiIgSGEKm7+immPKELBJJc3IbjTJ8+SWql4WnRujgrl8yyNHNpF++gQuegYldE1qqIaougRPaNX9GY9WS/Wu/UxGZ2zsp0d9AfW5w+Qi5bY</latexit><latexit sha1_base64="+NNPcjatjbkg5pujiKL5LtdcjHU=">AAACBXicbVBNSwMxEM36WevXqkcRgkXwVHaLoB6EoihCLxWsLXTrkk3TNjS7WZJZoSw9efGvePGg4tX/4M1/Y9ruQVsfDPN4b4ZkXhALrsFxvq25+YXFpeXcSn51bX1j097avtMyUZTVqBRSNQKimeARqwEHwRqxYiQMBKsH/YuRX39gSnMZ3cIgZq2QdCPe4ZSAkXx77xKf4YpfuvdAxtijbQn4atIqvuvbBafojIFniZuRAspQ9e0vry1pErIIqCBaN10nhlZKFHAq2DDvJZrFhPZJlzUNjUjIdCsdnzHEB0Zp445UpiLAY/X3RkpCrQdhYCZDAj097Y3E/7xmAp2TVsqjOAEW0clDnURgkHiUCW5zxSiIgSGEKm7+immPKELBJJc3IbjTJ8+SWql4WnRujgrl8yyNHNpF++gQuegYldE1qqIaougRPaNX9GY9WS/Wu/UxGZ2zsp0d9AfW5w+Qi5bY</latexit>
$<latexit sha1_base64="KThm7hMzkajF0dkF81AiBW1e9Ro=">AAAB93icbVBNS8NAEN3Ur1o/GvXoZbEInkoignorevFYwdhCG8pmu2mXbnbD7kSpob/EiwcVr/4Vb/4bt20O2vpg4PHeDDPzolRwA5737ZRWVtfWN8qbla3tnd2qu7d/b1SmKQuoEkq3I2KY4JIFwEGwdqoZSSLBWtHoeuq3Hpg2XMk7GKcsTMhA8phTAlbqudWuYDFoPhgC0Vo99tyaV/dmwMvEL0gNFWj23K9uX9EsYRKoIMZ0fC+FMCcaOBVsUulmhqWEjsiAdSyVJGEmzGeHT/CxVfo4VtqWBDxTf0/kJDFmnES2MyEwNIveVPzP62QQX4Q5l2kGTNL5ojgTGBSepoD7XDMKYmwJoZrbWzEdEk0o2KwqNgR/8eVlEpzWL+ve7VmtcVWkUUaH6AidIB+dowa6QU0UIIoy9Ixe0Zvz5Lw4787HvLXkFDMH6A+czx/SVpNk</latexit><latexit sha1_base64="KThm7hMzkajF0dkF81AiBW1e9Ro=">AAAB93icbVBNS8NAEN3Ur1o/GvXoZbEInkoignorevFYwdhCG8pmu2mXbnbD7kSpob/EiwcVr/4Vb/4bt20O2vpg4PHeDDPzolRwA5737ZRWVtfWN8qbla3tnd2qu7d/b1SmKQuoEkq3I2KY4JIFwEGwdqoZSSLBWtHoeuq3Hpg2XMk7GKcsTMhA8phTAlbqudWuYDFoPhgC0Vo99tyaV/dmwMvEL0gNFWj23K9uX9EsYRKoIMZ0fC+FMCcaOBVsUulmhqWEjsiAdSyVJGEmzGeHT/CxVfo4VtqWBDxTf0/kJDFmnES2MyEwNIveVPzP62QQX4Q5l2kGTNL5ojgTGBSepoD7XDMKYmwJoZrbWzEdEk0o2KwqNgR/8eVlEpzWL+ve7VmtcVWkUUaH6AidIB+dowa6QU0UIIoy9Ixe0Zvz5Lw4787HvLXkFDMH6A+czx/SVpNk</latexit><latexit sha1_base64="KThm7hMzkajF0dkF81AiBW1e9Ro=">AAAB93icbVBNS8NAEN3Ur1o/GvXoZbEInkoignorevFYwdhCG8pmu2mXbnbD7kSpob/EiwcVr/4Vb/4bt20O2vpg4PHeDDPzolRwA5737ZRWVtfWN8qbla3tnd2qu7d/b1SmKQuoEkq3I2KY4JIFwEGwdqoZSSLBWtHoeuq3Hpg2XMk7GKcsTMhA8phTAlbqudWuYDFoPhgC0Vo99tyaV/dmwMvEL0gNFWj23K9uX9EsYRKoIMZ0fC+FMCcaOBVsUulmhqWEjsiAdSyVJGEmzGeHT/CxVfo4VtqWBDxTf0/kJDFmnES2MyEwNIveVPzP62QQX4Q5l2kGTNL5ojgTGBSepoD7XDMKYmwJoZrbWzEdEk0o2KwqNgR/8eVlEpzWL+ve7VmtcVWkUUaH6AidIB+dowa6QU0UIIoy9Ixe0Zvz5Lw4787HvLXkFDMH6A+czx/SVpNk</latexit>
m>2 · F ·m1 = 0
<latexit sha1_base64="nVwmfvKdT5MuK4SdfZSl0uZeBcc=">AAACGHicbVBNS8NAEN3Ur1q/qh69LBbBU0mKoB6EoiAeK1hbaGLZbDft0k027E6EEvo3vPhXvHhQ8dqb/8ZNm0NtfbDs470ZZub5seAabPvHKqysrq1vFDdLW9s7u3vl/YNHLRNFWZNKIVXbJ5oJHrEmcBCsHStGQl+wlj+8yfzWM1Oay+gBRjHzQtKPeMApASN1y7YbEhj4QRqOu7UnF2SMXdqTgG/zf8538BW2u+WKXbWnwMvEyUkF5Wh0yxO3J2kSsgioIFp3HDsGLyUKOBVsXHITzWJCh6TPOoZGJGTaS6eXjfGJUXo4kMq8CPBUne9ISaj1KPRNZbanXvQy8T+vk0Bw4aU8ihNgEZ0NChKBQeIsJtzjilEQI0MIVdzsiumAKELBhFkyITiLJy+TZq16WbXvzyr16zyNIjpCx+gUOegc1dEdaqAmougFvaEP9Gm9Wu/Wl/U9Ky1Yec8h+gNr8gthnJ9x</latexit><latexit sha1_base64="nVwmfvKdT5MuK4SdfZSl0uZeBcc=">AAACGHicbVBNS8NAEN3Ur1q/qh69LBbBU0mKoB6EoiAeK1hbaGLZbDft0k027E6EEvo3vPhXvHhQ8dqb/8ZNm0NtfbDs470ZZub5seAabPvHKqysrq1vFDdLW9s7u3vl/YNHLRNFWZNKIVXbJ5oJHrEmcBCsHStGQl+wlj+8yfzWM1Oay+gBRjHzQtKPeMApASN1y7YbEhj4QRqOu7UnF2SMXdqTgG/zf8538BW2u+WKXbWnwMvEyUkF5Wh0yxO3J2kSsgioIFp3HDsGLyUKOBVsXHITzWJCh6TPOoZGJGTaS6eXjfGJUXo4kMq8CPBUne9ISaj1KPRNZbanXvQy8T+vk0Bw4aU8ihNgEZ0NChKBQeIsJtzjilEQI0MIVdzsiumAKELBhFkyITiLJy+TZq16WbXvzyr16zyNIjpCx+gUOegc1dEdaqAmougFvaEP9Gm9Wu/Wl/U9Ky1Yec8h+gNr8gthnJ9x</latexit><latexit sha1_base64="nVwmfvKdT5MuK4SdfZSl0uZeBcc=">AAACGHicbVBNS8NAEN3Ur1q/qh69LBbBU0mKoB6EoiAeK1hbaGLZbDft0k027E6EEvo3vPhXvHhQ8dqb/8ZNm0NtfbDs470ZZub5seAabPvHKqysrq1vFDdLW9s7u3vl/YNHLRNFWZNKIVXbJ5oJHrEmcBCsHStGQl+wlj+8yfzWM1Oay+gBRjHzQtKPeMApASN1y7YbEhj4QRqOu7UnF2SMXdqTgG/zf8538BW2u+WKXbWnwMvEyUkF5Wh0yxO3J2kSsgioIFp3HDsGLyUKOBVsXHITzWJCh6TPOoZGJGTaS6eXjfGJUXo4kMq8CPBUne9ISaj1KPRNZbanXvQy8T+vk0Bw4aU8ihNgEZ0NChKBQeIsJtzjilEQI0MIVdzsiumAKELBhFkyITiLJy+TZq16WbXvzyr16zyNIjpCx+gUOegc1dEdaqAmougFvaEP9Gm9Wu/Wl/U9Ky1Yec8h+gNr8gthnJ9x</latexit>
• F connects the two cameras “geometry” together.
• If we have a point m1 of I1 and we multiply it by F, we obtain a line equation in where its match, m2, lies in I2:
The Fundamental Matrix
l = F ·m1 $ (l1x+ l2y + l3) = 0<latexit sha1_base64="7fjjx60iUWDPR/7BxvUq2wD4Rg4=">AAACL3icbVBNS8NAFNz4bf2KevSyWARFKIkK6kEQBfVYwVqhKWGz3bSLm2zYfVFL6E/y4k/Ri4KKV/+FmzaCVgcWhpk3vH0TJIJrcJwXa2R0bHxicmq6NDM7N79gLy5dapkqympUCqmuAqKZ4DGrAQfBrhLFSBQIVg+uj3O/fsOU5jK+gG7CmhFpxzzklICRfPvUiwh0gjATPXyAT7BHWxLwtxj1fBd7goWgeLsDRCl5i9eF795tCn+rizex8Lc3TNDx7bJTcfrAf4lbkDIqUPXtR68laRqxGKggWjdcJ4FmRhRwKliv5KWaJYRekzZrGBqTiOlm1j+4h9eM0sKhVObFgPvqz0RGIq27UWAm80v0sJeL/3mNFMK9ZsbjJAUW08GiMBUYJM7bwy2uGAXRNYRQxc1fMe0QRSiYjkumBHf45L+ktlXZrzjnO+XDo6KNKbSCVtE6ctEuOkRnqIpqiKJ79IRe0Zv1YD1b79bHYHTEKjLL6Beszy8hCKdO</latexit><latexit sha1_base64="7fjjx60iUWDPR/7BxvUq2wD4Rg4=">AAACL3icbVBNS8NAFNz4bf2KevSyWARFKIkK6kEQBfVYwVqhKWGz3bSLm2zYfVFL6E/y4k/Ri4KKV/+FmzaCVgcWhpk3vH0TJIJrcJwXa2R0bHxicmq6NDM7N79gLy5dapkqympUCqmuAqKZ4DGrAQfBrhLFSBQIVg+uj3O/fsOU5jK+gG7CmhFpxzzklICRfPvUiwh0gjATPXyAT7BHWxLwtxj1fBd7goWgeLsDRCl5i9eF795tCn+rizex8Lc3TNDx7bJTcfrAf4lbkDIqUPXtR68laRqxGKggWjdcJ4FmRhRwKliv5KWaJYRekzZrGBqTiOlm1j+4h9eM0sKhVObFgPvqz0RGIq27UWAm80v0sJeL/3mNFMK9ZsbjJAUW08GiMBUYJM7bwy2uGAXRNYRQxc1fMe0QRSiYjkumBHf45L+ktlXZrzjnO+XDo6KNKbSCVtE6ctEuOkRnqIpqiKJ79IRe0Zv1YD1b79bHYHTEKjLL6Beszy8hCKdO</latexit><latexit sha1_base64="7fjjx60iUWDPR/7BxvUq2wD4Rg4=">AAACL3icbVBNS8NAFNz4bf2KevSyWARFKIkK6kEQBfVYwVqhKWGz3bSLm2zYfVFL6E/y4k/Ri4KKV/+FmzaCVgcWhpk3vH0TJIJrcJwXa2R0bHxicmq6NDM7N79gLy5dapkqympUCqmuAqKZ4DGrAQfBrhLFSBQIVg+uj3O/fsOU5jK+gG7CmhFpxzzklICRfPvUiwh0gjATPXyAT7BHWxLwtxj1fBd7goWgeLsDRCl5i9eF795tCn+rizex8Lc3TNDx7bJTcfrAf4lbkDIqUPXtR68laRqxGKggWjdcJ4FmRhRwKliv5KWaJYRekzZrGBqTiOlm1j+4h9eM0sKhVObFgPvqz0RGIq27UWAm80v0sJeL/3mNFMK9ZsbjJAUW08GiMBUYJM7bwy2uGAXRNYRQxc1fMe0QRSiYjkumBHf45L+ktlXZrzjnO+XDo6KNKbSCVtE6ctEuOkRnqIpqiKJ79IRe0Zv1YD1b79bHYHTEKjLL6Beszy8hCKdO</latexit>
The Fundamental Matrix
I2I1
m2
m1
F ·m1 = 0<latexit sha1_base64="df+ueZ9iy5T6iYr61cKNZLzHLvo=">AAACAnicbVBNS8NAEN3Ur1q/ot70slgETyURQT0IRUE8VjC20ISw2WzapbvZsLsRSih48a948aDi1V/hzX/jts1BWx8MPN6bYWZelDGqtON8W5WFxaXllepqbW19Y3PL3t65VyKXmHhYMCE7EVKE0ZR4mmpGOpkkiEeMtKPB1dhvPxCpqEjv9DAjAUe9lCYUI22k0N6D19DHsdDQ50j3o6Tgo9CFFxA6oV13Gs4EcJ64JamDEq3Q/vJjgXNOUo0ZUqrrOpkOCiQ1xYyMan6uSIbwAPVI19AUcaKCYvLDCB4aJYaJkKZSDSfq74kCcaWGPDKd40PVrDcW//O6uU7OgoKmWa5JiqeLkpxBLeA4EBhTSbBmQ0MQltTcCnEfSYS1ia1mQnBnX54n3nHjvOHcntSbl2UaVbAPDsARcMEpaIIb0AIewOARPINX8GY9WS/Wu/Uxba1Y5cwu+APr8weTNpW+</latexit><latexit sha1_base64="df+ueZ9iy5T6iYr61cKNZLzHLvo=">AAACAnicbVBNS8NAEN3Ur1q/ot70slgETyURQT0IRUE8VjC20ISw2WzapbvZsLsRSih48a948aDi1V/hzX/jts1BWx8MPN6bYWZelDGqtON8W5WFxaXllepqbW19Y3PL3t65VyKXmHhYMCE7EVKE0ZR4mmpGOpkkiEeMtKPB1dhvPxCpqEjv9DAjAUe9lCYUI22k0N6D19DHsdDQ50j3o6Tgo9CFFxA6oV13Gs4EcJ64JamDEq3Q/vJjgXNOUo0ZUqrrOpkOCiQ1xYyMan6uSIbwAPVI19AUcaKCYvLDCB4aJYaJkKZSDSfq74kCcaWGPDKd40PVrDcW//O6uU7OgoKmWa5JiqeLkpxBLeA4EBhTSbBmQ0MQltTcCnEfSYS1ia1mQnBnX54n3nHjvOHcntSbl2UaVbAPDsARcMEpaIIb0AIewOARPINX8GY9WS/Wu/Uxba1Y5cwu+APr8weTNpW+</latexit><latexit sha1_base64="df+ueZ9iy5T6iYr61cKNZLzHLvo=">AAACAnicbVBNS8NAEN3Ur1q/ot70slgETyURQT0IRUE8VjC20ISw2WzapbvZsLsRSih48a948aDi1V/hzX/jts1BWx8MPN6bYWZelDGqtON8W5WFxaXllepqbW19Y3PL3t65VyKXmHhYMCE7EVKE0ZR4mmpGOpkkiEeMtKPB1dhvPxCpqEjv9DAjAUe9lCYUI22k0N6D19DHsdDQ50j3o6Tgo9CFFxA6oV13Gs4EcJ64JamDEq3Q/vJjgXNOUo0ZUqrrOpkOCiQ1xYyMan6uSIbwAPVI19AUcaKCYvLDCB4aJYaJkKZSDSfq74kCcaWGPDKd40PVrDcW//O6uU7OgoKmWa5JiqeLkpxBLeA4EBhTSbBmQ0MQltTcCnEfSYS1ia1mQnBnX54n3nHjvOHcntSbl2UaVbAPDsARcMEpaIIb0AIewOARPINX8GY9WS/Wu/Uxba1Y5cwu+APr8weTNpW+</latexit>
• Note that:
• Therefore, If we have a point m2 of I2 and we multiply it by F T, we obtain a line equation in where its match, m1, lies in I1:
The Fundamental Matrix
m>2 · F ·m1 = 0
m>1 · F> ·m2 = 0
<latexit sha1_base64="Zl/LEIAhHeXLtIBq6dAY2KMtuQ8=">AAACU3icbVHPS8MwGE3r1DmdTj16CQ7B02iHoB6EoSAeJzg3WGtJs3QLS5uSfBVG2R+pB8G/xIsHs62H/fCDkJf3vUe+vISp4Boc59uyt0rbO7vlvcr+QfXwqHZ88qplpijrUCmk6oVEM8ET1gEOgvVSxUgcCtYNxw+zfvedKc1l8gKTlPkxGSY84pSAoYLa2IsJjMIoj6dB880DmWLs0YEE/FjsSwIX32HseF5lmVs1LU4bzqZxOkGt7jSceeFN4BagjopqB7VPbyBpFrMEqCBa910nBT8nCjgVbFrxMs1SQsdkyPoGJiRm2s/noUzxhWEGOJLKrATwnF125CTWehKHRjmbU6/3ZuR/vX4G0Y2f8yTNgCV0cVGUCQwSzxLGA64YBTExgFDFzayYjogiFMw/VEwI7vqTN0Gn2bhtOM9X9dZ9kUYZnaFzdIlcdI1a6Am1UQdR9IF+LGRZ1pf1a9t2aSG1rcJzilbKrv4BS8axBg==</latexit><latexit sha1_base64="Zl/LEIAhHeXLtIBq6dAY2KMtuQ8=">AAACU3icbVHPS8MwGE3r1DmdTj16CQ7B02iHoB6EoSAeJzg3WGtJs3QLS5uSfBVG2R+pB8G/xIsHs62H/fCDkJf3vUe+vISp4Boc59uyt0rbO7vlvcr+QfXwqHZ88qplpijrUCmk6oVEM8ET1gEOgvVSxUgcCtYNxw+zfvedKc1l8gKTlPkxGSY84pSAoYLa2IsJjMIoj6dB880DmWLs0YEE/FjsSwIX32HseF5lmVs1LU4bzqZxOkGt7jSceeFN4BagjopqB7VPbyBpFrMEqCBa910nBT8nCjgVbFrxMs1SQsdkyPoGJiRm2s/noUzxhWEGOJLKrATwnF125CTWehKHRjmbU6/3ZuR/vX4G0Y2f8yTNgCV0cVGUCQwSzxLGA64YBTExgFDFzayYjogiFMw/VEwI7vqTN0Gn2bhtOM9X9dZ9kUYZnaFzdIlcdI1a6Am1UQdR9IF+LGRZ1pf1a9t2aSG1rcJzilbKrv4BS8axBg==</latexit><latexit sha1_base64="Zl/LEIAhHeXLtIBq6dAY2KMtuQ8=">AAACU3icbVHPS8MwGE3r1DmdTj16CQ7B02iHoB6EoSAeJzg3WGtJs3QLS5uSfBVG2R+pB8G/xIsHs62H/fCDkJf3vUe+vISp4Boc59uyt0rbO7vlvcr+QfXwqHZ88qplpijrUCmk6oVEM8ET1gEOgvVSxUgcCtYNxw+zfvedKc1l8gKTlPkxGSY84pSAoYLa2IsJjMIoj6dB880DmWLs0YEE/FjsSwIX32HseF5lmVs1LU4bzqZxOkGt7jSceeFN4BagjopqB7VPbyBpFrMEqCBa910nBT8nCjgVbFrxMs1SQsdkyPoGJiRm2s/noUzxhWEGOJLKrATwnF125CTWehKHRjmbU6/3ZuR/vX4G0Y2f8yTNgCV0cVGUCQwSzxLGA64YBTExgFDFzayYjogiFMw/VEwI7vqTN0Gn2bhtOM9X9dZ9kUYZnaFzdIlcdI1a6Am1UQdR9IF+LGRZ1pf1a9t2aSG1rcJzilbKrv4BS8axBg==</latexit>
l = F> ·m2 $ (l1x+ l2y + l3) = 0<latexit sha1_base64="3xH5LConlrgZZHGPqVwnrj3nEzk=">AAACNHicbVDLSsNAFJ3Ud31VXboZLEKlUJIqqAtBFMSFCwWrhaaGyWTSDk4yYeZGLaE/5cb/cKULFypu/QanNYKvAwOHc+7lzjl+IrgG2360CiOjY+MTk1PF6ZnZufnSwuKZlqmirEGlkKrpE80Ej1kDOAjWTBQjkS/YuX+5P/DPr5jSXMan0EtYOyKdmIecEjCSVzpyIwJdP8xEH+/ggwsXZIJdGkjAX07U9+rYFSwExTtdIErJa1wRnnNTFV69h6tYeOtrZtv2SmW7Zg+B/xInJ2WU49gr3buBpGnEYqCCaN1y7ATaGVHAqWD9optqlhB6STqsZWhMIqbb2TB1H68aJcChVObFgIfq942MRFr3It9MDpLo395A/M9rpRButTMeJymwmH4eClOBQeJBhTjgilEQPUMIVdz8FdMuUYSCKbpoSnB+R/5LGvXads0+2Sjv7uVtTKJltIIqyEGbaBcdomPUQBTdogf0jF6sO+vJerXePkcLVr6zhH7Aev8Aif+pjg==</latexit><latexit sha1_base64="3xH5LConlrgZZHGPqVwnrj3nEzk=">AAACNHicbVDLSsNAFJ3Ud31VXboZLEKlUJIqqAtBFMSFCwWrhaaGyWTSDk4yYeZGLaE/5cb/cKULFypu/QanNYKvAwOHc+7lzjl+IrgG2360CiOjY+MTk1PF6ZnZufnSwuKZlqmirEGlkKrpE80Ej1kDOAjWTBQjkS/YuX+5P/DPr5jSXMan0EtYOyKdmIecEjCSVzpyIwJdP8xEH+/ggwsXZIJdGkjAX07U9+rYFSwExTtdIErJa1wRnnNTFV69h6tYeOtrZtv2SmW7Zg+B/xInJ2WU49gr3buBpGnEYqCCaN1y7ATaGVHAqWD9optqlhB6STqsZWhMIqbb2TB1H68aJcChVObFgIfq942MRFr3It9MDpLo395A/M9rpRButTMeJymwmH4eClOBQeJBhTjgilEQPUMIVdz8FdMuUYSCKbpoSnB+R/5LGvXads0+2Sjv7uVtTKJltIIqyEGbaBcdomPUQBTdogf0jF6sO+vJerXePkcLVr6zhH7Aev8Aif+pjg==</latexit><latexit sha1_base64="3xH5LConlrgZZHGPqVwnrj3nEzk=">AAACNHicbVDLSsNAFJ3Ud31VXboZLEKlUJIqqAtBFMSFCwWrhaaGyWTSDk4yYeZGLaE/5cb/cKULFypu/QanNYKvAwOHc+7lzjl+IrgG2360CiOjY+MTk1PF6ZnZufnSwuKZlqmirEGlkKrpE80Ej1kDOAjWTBQjkS/YuX+5P/DPr5jSXMan0EtYOyKdmIecEjCSVzpyIwJdP8xEH+/ggwsXZIJdGkjAX07U9+rYFSwExTtdIErJa1wRnnNTFV69h6tYeOtrZtv2SmW7Zg+B/xInJ2WU49gr3buBpGnEYqCCaN1y7ATaGVHAqWD9optqlhB6STqsZWhMIqbb2TB1H68aJcChVObFgIfq942MRFr3It9MDpLo395A/M9rpRButTMeJymwmH4eClOBQeJBhTjgilEQPUMIVdz8FdMuUYSCKbpoSnB+R/5LGvXads0+2Sjv7uVtTKJltIIqyEGbaBcdomPUQBTdogf0jF6sO+vJerXePkcLVr6zhH7Aev8Aif+pjg==</latexit>
The Fundamental Matrix
I2I1
m2
m1
F> ·m2 = 0<latexit sha1_base64="91/9qS3UFAB1EJUhF7qN1KD5cJ8=">AAACBXicbVBNS8NAEN3Ur1q/oh5FWCyCp5IWQT0IRUE8VrC20MSw2W7apZts2J0IJfTkxb/ixYOKV/+DN/+Nm7YHbX0w8Hhvhpl5QSK4Bsf5tgoLi0vLK8XV0tr6xuaWvb1zp2WqKGtSKaRqB0QzwWPWBA6CtRPFSBQI1goGl7nfemBKcxnfwjBhXkR6MQ85JWAk396/undBJtilXQnYjQj0gzCLRn4Nn2PHt8tOxRkDz5PqlJTRFA3f/nK7kqYRi4EKonWn6iTgZUQBp4KNSm6qWULogPRYx9CYREx72fiNET40SheHUpmKAY/V3xMZibQeRoHpzO/Us14u/ud1UghPvYzHSQosppNFYSowSJxngrtcMQpiaAihiptbMe0TRSiY5EomhOrsy/OkWaucVZyb43L9YppGEe2hA3SEqugE1dE1aqAmougRPaNX9GY9WS/Wu/UxaS1Y05ld9AfW5w/m05eq</latexit><latexit sha1_base64="91/9qS3UFAB1EJUhF7qN1KD5cJ8=">AAACBXicbVBNS8NAEN3Ur1q/oh5FWCyCp5IWQT0IRUE8VrC20MSw2W7apZts2J0IJfTkxb/ixYOKV/+DN/+Nm7YHbX0w8Hhvhpl5QSK4Bsf5tgoLi0vLK8XV0tr6xuaWvb1zp2WqKGtSKaRqB0QzwWPWBA6CtRPFSBQI1goGl7nfemBKcxnfwjBhXkR6MQ85JWAk396/undBJtilXQnYjQj0gzCLRn4Nn2PHt8tOxRkDz5PqlJTRFA3f/nK7kqYRi4EKonWn6iTgZUQBp4KNSm6qWULogPRYx9CYREx72fiNET40SheHUpmKAY/V3xMZibQeRoHpzO/Us14u/ud1UghPvYzHSQosppNFYSowSJxngrtcMQpiaAihiptbMe0TRSiY5EomhOrsy/OkWaucVZyb43L9YppGEe2hA3SEqugE1dE1aqAmougRPaNX9GY9WS/Wu/UxaS1Y05ld9AfW5w/m05eq</latexit><latexit sha1_base64="91/9qS3UFAB1EJUhF7qN1KD5cJ8=">AAACBXicbVBNS8NAEN3Ur1q/oh5FWCyCp5IWQT0IRUE8VrC20MSw2W7apZts2J0IJfTkxb/ixYOKV/+DN/+Nm7YHbX0w8Hhvhpl5QSK4Bsf5tgoLi0vLK8XV0tr6xuaWvb1zp2WqKGtSKaRqB0QzwWPWBA6CtRPFSBQI1goGl7nfemBKcxnfwjBhXkR6MQ85JWAk396/undBJtilXQnYjQj0gzCLRn4Nn2PHt8tOxRkDz5PqlJTRFA3f/nK7kqYRi4EKonWn6iTgZUQBp4KNSm6qWULogPRYx9CYREx72fiNET40SheHUpmKAY/V3xMZibQeRoHpzO/Us14u/ud1UghPvYzHSQosppNFYSowSJxngrtcMQpiaAihiptbMe0TRSiY5EomhOrsy/OkWaucVZyb43L9YppGEe2hA3SEqugE1dE1aqAmougRPaNX9GY9WS/Wu/UxaS1Y05ld9AfW5w/m05eq</latexit>
The Essential Matrix: 8-points algorithm
• From:
• We can define a linear system as:
• Given enough matches we can solve the system using the SVD. How many do we need? 8 is the minimum, as usual the more the better!
• This method is called 8-points algorithm, and it can be applied for computing F as well (we use pixel coordinates instead of normalized coordinates).
A · b = 0
A =
2
664
(p11)
> ⌦ (p12)
>
(p21)
> ⌦ (p22)
>
. . .(pn
1 )> ⌦ (pn
2 )>
3
775 b = vec(E)
m>2 · E · m1 = 0
A =
2
64(m1
1)> ⌦ (m1
2)>
...(mn
1 )> ⌦ (mn
2 )>
3
75 b = vec(E)
The Essential Matrix• The Kronecker product is defined as
• where A is m×n matrix, and B is a r×s matrix.
A⌦B =
2
6664
a1,1 ·B . . . a1,n ·Ba2,1 ·B . . . a2,n ·B
... . . ....
am,1 ·B . . . am,n ·B
3
7775
The Essential Matrix: Practice
• Typically, we compute E indirectly by computing F and then converting it into E :
• Why?
• The main reason is that we avoid to multiply K times all coordinates of points:
• computational efficiency.
• reducing accumulation of numerical errors.
E = K>2 · F ·K1
<latexit sha1_base64="+NNPcjatjbkg5pujiKL5LtdcjHU=">AAACBXicbVBNSwMxEM36WevXqkcRgkXwVHaLoB6EoihCLxWsLXTrkk3TNjS7WZJZoSw9efGvePGg4tX/4M1/Y9ruQVsfDPN4b4ZkXhALrsFxvq25+YXFpeXcSn51bX1j097avtMyUZTVqBRSNQKimeARqwEHwRqxYiQMBKsH/YuRX39gSnMZ3cIgZq2QdCPe4ZSAkXx77xKf4YpfuvdAxtijbQn4atIqvuvbBafojIFniZuRAspQ9e0vry1pErIIqCBaN10nhlZKFHAq2DDvJZrFhPZJlzUNjUjIdCsdnzHEB0Zp445UpiLAY/X3RkpCrQdhYCZDAj097Y3E/7xmAp2TVsqjOAEW0clDnURgkHiUCW5zxSiIgSGEKm7+immPKELBJJc3IbjTJ8+SWql4WnRujgrl8yyNHNpF++gQuegYldE1qqIaougRPaNX9GY9WS/Wu/UxGZ2zsp0d9AfW5w+Qi5bY</latexit><latexit sha1_base64="+NNPcjatjbkg5pujiKL5LtdcjHU=">AAACBXicbVBNSwMxEM36WevXqkcRgkXwVHaLoB6EoihCLxWsLXTrkk3TNjS7WZJZoSw9efGvePGg4tX/4M1/Y9ruQVsfDPN4b4ZkXhALrsFxvq25+YXFpeXcSn51bX1j097avtMyUZTVqBRSNQKimeARqwEHwRqxYiQMBKsH/YuRX39gSnMZ3cIgZq2QdCPe4ZSAkXx77xKf4YpfuvdAxtijbQn4atIqvuvbBafojIFniZuRAspQ9e0vry1pErIIqCBaN10nhlZKFHAq2DDvJZrFhPZJlzUNjUjIdCsdnzHEB0Zp445UpiLAY/X3RkpCrQdhYCZDAj097Y3E/7xmAp2TVsqjOAEW0clDnURgkHiUCW5zxSiIgSGEKm7+immPKELBJJc3IbjTJ8+SWql4WnRujgrl8yyNHNpF++gQuegYldE1qqIaougRPaNX9GY9WS/Wu/UxGZ2zsp0d9AfW5w+Qi5bY</latexit><latexit sha1_base64="+NNPcjatjbkg5pujiKL5LtdcjHU=">AAACBXicbVBNSwMxEM36WevXqkcRgkXwVHaLoB6EoihCLxWsLXTrkk3TNjS7WZJZoSw9efGvePGg4tX/4M1/Y9ruQVsfDPN4b4ZkXhALrsFxvq25+YXFpeXcSn51bX1j097avtMyUZTVqBRSNQKimeARqwEHwRqxYiQMBKsH/YuRX39gSnMZ3cIgZq2QdCPe4ZSAkXx77xKf4YpfuvdAxtijbQn4atIqvuvbBafojIFniZuRAspQ9e0vry1pErIIqCBaN10nhlZKFHAq2DDvJZrFhPZJlzUNjUjIdCsdnzHEB0Zp445UpiLAY/X3RkpCrQdhYCZDAj097Y3E/7xmAp2TVsqjOAEW0clDnURgkHiUCW5zxSiIgSGEKm7+immPKELBJJc3IbjTJ8+SWql4WnRujgrl8yyNHNpF++gQuegYldE1qqIaougRPaNX9GY9WS/Wu/UxGZ2zsp0d9AfW5w+Qi5bY</latexit>
The Essential Matrix: Practice
• If we solve the linear system using pixel coordinates, we may have numerical instabilities because pixel coordinates vary in [1, w] and in [1, h] (where h and w are, respectively, the height and width of the image).
• For reducing instabilities, we need to bound values in the range .
• Given the input n points mi, we compute:
u =1
n
nX
i=1
ui v =1
n
nX
i=1
vi mi =
2
4ui
vi1
3
5
s =1
np2
nX
i=1
p(vi � u)2 + (ui � v)2
[�p2,p2]
<latexit sha1_base64="tVqBtoomFSPBWvMEUqf4amPNCjM=">AAAB/XicbZDNSsNAFIUn9a/Wv6i4cjNYBBdakiKou6IblxWMLaShTKbTduhkEmduhBIKvoobFypufQ93vo3TNoK2Hhj4OPde7p0TJoJrcJwvq7CwuLS8Ulwtra1vbG7Z2zt3Ok4VZR6NRayaIdFMcMk84CBYM1GMRKFgjXBwNa43HpjSPJa3MExYEJGe5F1OCRirbe/5Jy19ryCrjo7xDwVtu+xUnInwPLg5lFGuetv+bHVimkZMAhVEa991EggyooBTwUalVqpZQuiA9JhvUJKI6SCbnD/Ch8bp4G6szJOAJ+7viYxEWg+j0HRGBPp6tjY2/6v5KXTPg4zLJAUm6XRRNxUYYjzOAne4YhTE0AChiptbMe0TRSiYxEomBHf2y/PgVSsXFefmtFy7zNMoon10gI6Qi85QDV2jOvIQRRl6Qi/o1Xq0nq03633aWrDymV30R9bHNxi6lSE=</latexit><latexit sha1_base64="tVqBtoomFSPBWvMEUqf4amPNCjM=">AAAB/XicbZDNSsNAFIUn9a/Wv6i4cjNYBBdakiKou6IblxWMLaShTKbTduhkEmduhBIKvoobFypufQ93vo3TNoK2Hhj4OPde7p0TJoJrcJwvq7CwuLS8Ulwtra1vbG7Z2zt3Ok4VZR6NRayaIdFMcMk84CBYM1GMRKFgjXBwNa43HpjSPJa3MExYEJGe5F1OCRirbe/5Jy19ryCrjo7xDwVtu+xUnInwPLg5lFGuetv+bHVimkZMAhVEa991EggyooBTwUalVqpZQuiA9JhvUJKI6SCbnD/Ch8bp4G6szJOAJ+7viYxEWg+j0HRGBPp6tjY2/6v5KXTPg4zLJAUm6XRRNxUYYjzOAne4YhTE0AChiptbMe0TRSiYxEomBHf2y/PgVSsXFefmtFy7zNMoon10gI6Qi85QDV2jOvIQRRl6Qi/o1Xq0nq03633aWrDymV30R9bHNxi6lSE=</latexit><latexit sha1_base64="tVqBtoomFSPBWvMEUqf4amPNCjM=">AAAB/XicbZDNSsNAFIUn9a/Wv6i4cjNYBBdakiKou6IblxWMLaShTKbTduhkEmduhBIKvoobFypufQ93vo3TNoK2Hhj4OPde7p0TJoJrcJwvq7CwuLS8Ulwtra1vbG7Z2zt3Ok4VZR6NRayaIdFMcMk84CBYM1GMRKFgjXBwNa43HpjSPJa3MExYEJGe5F1OCRirbe/5Jy19ryCrjo7xDwVtu+xUnInwPLg5lFGuetv+bHVimkZMAhVEa991EggyooBTwUalVqpZQuiA9JhvUJKI6SCbnD/Ch8bp4G6szJOAJ+7viYxEWg+j0HRGBPp6tjY2/6v5KXTPg4zLJAUm6XRRNxUYYjzOAne4YhTE0AChiptbMe0TRSiYxEomBHf2y/PgVSsXFefmtFy7zNMoon10gI6Qi85QDV2jOvIQRRl6Qi/o1Xq0nq03633aWrDymV30R9bHNxi6lSE=</latexit>
The Essential Matrix: Practice
• Finally, we shift and scale all n points using the following:
• We can now solve the linear system without numerical instabilities (or reducing them).
• Note that this operation, shift and scale, needs to be done for estimating a homography as well.
ui =ui � u
s
vi =vi � v
s
Non-Linear Optimization• As seen before, we need to refine E using a geometric
error, note that we compute E indirectly so we minimize F:
• where d𝜋 is the distance point-line ( is a line), and n is the number of matched points.
• Again we can solve it with the Nelder-Mead method (fminsearch in MATLAB).
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
Non-Linear Optimization• As seen before, we need to refine E using a geometric
error, note that we compute E indirectly so we minimize F:
• where d𝜋 is the distance point-line ( is a line), and n is the number of matched points.
• Again we can solve it with the Nelder-Mead method (fminsearch in MATLAB).
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
This is a lineargmin
E
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
Non-Linear Optimization• As seen before, we need to refine E using a geometric
error, note that we compute E indirectly so we minimize F:
• where d𝜋 is the distance point-line ( is a line), and n is the number of matched points.
• Again we can solve it with the Nelder-Mead method (fminsearch in MATLAB).
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
This is a line This is a lineargmin
E
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
Non-Linear Optimization: First Term of the Energy
I1
mi1
i
I2
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
F ·m1 = 0<latexit sha1_base64="df+ueZ9iy5T6iYr61cKNZLzHLvo=">AAACAnicbVBNS8NAEN3Ur1q/ot70slgETyURQT0IRUE8VjC20ISw2WzapbvZsLsRSih48a948aDi1V/hzX/jts1BWx8MPN6bYWZelDGqtON8W5WFxaXllepqbW19Y3PL3t65VyKXmHhYMCE7EVKE0ZR4mmpGOpkkiEeMtKPB1dhvPxCpqEjv9DAjAUe9lCYUI22k0N6D19DHsdDQ50j3o6Tgo9CFFxA6oV13Gs4EcJ64JamDEq3Q/vJjgXNOUo0ZUqrrOpkOCiQ1xYyMan6uSIbwAPVI19AUcaKCYvLDCB4aJYaJkKZSDSfq74kCcaWGPDKd40PVrDcW//O6uU7OgoKmWa5JiqeLkpxBLeA4EBhTSbBmQ0MQltTcCnEfSYS1ia1mQnBnX54n3nHjvOHcntSbl2UaVbAPDsARcMEpaIIb0AIewOARPINX8GY9WS/Wu/Uxba1Y5cwu+APr8weTNpW+</latexit><latexit sha1_base64="df+ueZ9iy5T6iYr61cKNZLzHLvo=">AAACAnicbVBNS8NAEN3Ur1q/ot70slgETyURQT0IRUE8VjC20ISw2WzapbvZsLsRSih48a948aDi1V/hzX/jts1BWx8MPN6bYWZelDGqtON8W5WFxaXllepqbW19Y3PL3t65VyKXmHhYMCE7EVKE0ZR4mmpGOpkkiEeMtKPB1dhvPxCpqEjv9DAjAUe9lCYUI22k0N6D19DHsdDQ50j3o6Tgo9CFFxA6oV13Gs4EcJ64JamDEq3Q/vJjgXNOUo0ZUqrrOpkOCiQ1xYyMan6uSIbwAPVI19AUcaKCYvLDCB4aJYaJkKZSDSfq74kCcaWGPDKd40PVrDcW//O6uU7OgoKmWa5JiqeLkpxBLeA4EBhTSbBmQ0MQltTcCnEfSYS1ia1mQnBnX54n3nHjvOHcntSbl2UaVbAPDsARcMEpaIIb0AIewOARPINX8GY9WS/Wu/Uxba1Y5cwu+APr8weTNpW+</latexit><latexit sha1_base64="df+ueZ9iy5T6iYr61cKNZLzHLvo=">AAACAnicbVBNS8NAEN3Ur1q/ot70slgETyURQT0IRUE8VjC20ISw2WzapbvZsLsRSih48a948aDi1V/hzX/jts1BWx8MPN6bYWZelDGqtON8W5WFxaXllepqbW19Y3PL3t65VyKXmHhYMCE7EVKE0ZR4mmpGOpkkiEeMtKPB1dhvPxCpqEjv9DAjAUe9lCYUI22k0N6D19DHsdDQ50j3o6Tgo9CFFxA6oV13Gs4EcJ64JamDEq3Q/vJjgXNOUo0ZUqrrOpkOCiQ1xYyMan6uSIbwAPVI19AUcaKCYvLDCB4aJYaJkKZSDSfq74kCcaWGPDKd40PVrDcW//O6uU7OgoKmWa5JiqeLkpxBLeA4EBhTSbBmQ0MQltTcCnEfSYS1ia1mQnBnX54n3nHjvOHcntSbl2UaVbAPDsARcMEpaIIb0AIewOARPINX8GY9WS/Wu/Uxba1Y5cwu+APr8weTNpW+</latexit>
mi2
Non-Linear Optimization: Second Term of the Energy
argminE
nX
i=1
d⇡(F ·mi1,m
i2)
2 + d⇡(F> ·mi
2,mi1)
2
I1
mi2
mi1
F> ·m2 = 0<latexit sha1_base64="91/9qS3UFAB1EJUhF7qN1KD5cJ8=">AAACBXicbVBNS8NAEN3Ur1q/oh5FWCyCp5IWQT0IRUE8VrC20MSw2W7apZts2J0IJfTkxb/ixYOKV/+DN/+Nm7YHbX0w8Hhvhpl5QSK4Bsf5tgoLi0vLK8XV0tr6xuaWvb1zp2WqKGtSKaRqB0QzwWPWBA6CtRPFSBQI1goGl7nfemBKcxnfwjBhXkR6MQ85JWAk396/undBJtilXQnYjQj0gzCLRn4Nn2PHt8tOxRkDz5PqlJTRFA3f/nK7kqYRi4EKonWn6iTgZUQBp4KNSm6qWULogPRYx9CYREx72fiNET40SheHUpmKAY/V3xMZibQeRoHpzO/Us14u/ud1UghPvYzHSQosppNFYSowSJxngrtcMQpiaAihiptbMe0TRSiY5EomhOrsy/OkWaucVZyb43L9YppGEe2hA3SEqugE1dE1aqAmougRPaNX9GY9WS/Wu/UxaS1Y05ld9AfW5w/m05eq</latexit><latexit sha1_base64="91/9qS3UFAB1EJUhF7qN1KD5cJ8=">AAACBXicbVBNS8NAEN3Ur1q/oh5FWCyCp5IWQT0IRUE8VrC20MSw2W7apZts2J0IJfTkxb/ixYOKV/+DN/+Nm7YHbX0w8Hhvhpl5QSK4Bsf5tgoLi0vLK8XV0tr6xuaWvb1zp2WqKGtSKaRqB0QzwWPWBA6CtRPFSBQI1goGl7nfemBKcxnfwjBhXkR6MQ85JWAk396/undBJtilXQnYjQj0gzCLRn4Nn2PHt8tOxRkDz5PqlJTRFA3f/nK7kqYRi4EKonWn6iTgZUQBp4KNSm6qWULogPRYx9CYREx72fiNET40SheHUpmKAY/V3xMZibQeRoHpzO/Us14u/ud1UghPvYzHSQosppNFYSowSJxngrtcMQpiaAihiptbMe0TRSiY5EomhOrsy/OkWaucVZyb43L9YppGEe2hA3SEqugE1dE1aqAmougRPaNX9GY9WS/Wu/UxaS1Y05ld9AfW5w/m05eq</latexit><latexit sha1_base64="91/9qS3UFAB1EJUhF7qN1KD5cJ8=">AAACBXicbVBNS8NAEN3Ur1q/oh5FWCyCp5IWQT0IRUE8VrC20MSw2W7apZts2J0IJfTkxb/ixYOKV/+DN/+Nm7YHbX0w8Hhvhpl5QSK4Bsf5tgoLi0vLK8XV0tr6xuaWvb1zp2WqKGtSKaRqB0QzwWPWBA6CtRPFSBQI1goGl7nfemBKcxnfwjBhXkR6MQ85JWAk396/undBJtilXQnYjQj0gzCLRn4Nn2PHt8tOxRkDz5PqlJTRFA3f/nK7kqYRi4EKonWn6iTgZUQBp4KNSm6qWULogPRYx9CYREx72fiNET40SheHUpmKAY/V3xMZibQeRoHpzO/Us14u/ud1UghPvYzHSQosppNFYSowSJxngrtcMQpiaAihiptbMe0TRSiY5EomhOrsy/OkWaucVZyb43L9YppGEe2hA3SEqugE1dE1aqAmougRPaNX9GY9WS/Wu/UxaS1Y05ld9AfW5w/m05eq</latexit>
i
I2
Now we have E, and so what?
E Factorization• Once we have estimated E, we would like estimate
R and t to get the pose of the camera:
• As you may notice we have:
• [t]× = S is an anti-symmetric matrix.
• R is orthogonal matrix.
E = [t]⇥ ·R
E Factorization• Given a m×n matrix A, its SVD decomposition is defined
as:
• where:
• U is an m×m orthogonal matrix.
• Σ is a diagonal m×n matrix.
• V* is the conjugate transpose of an orthogonal matrix.
SVD(A) = U · ⌃ · V ⇤
E Factorization• Theorem: A 3×3 matrix is an essential matrix if and only
if two singular values are equal and the third is zero.
• This means that:
• Note that:
SVD(E) = U · diag(1, 1, 0) · V >
diag(1, 1, 0) = W · Z
W =
2
40 �1 01 0 00 0 1
3
5 Z =
2
40 1 0�1 0 00 0 0
3
5
E Factorization
• Lemma: Given R a rotation matrix, and U and V two orthogonal matrices, we have that:
• Note that is still a rotation matrix!
R0 = det(U · V >) · U ·R ·R>
R0 = det(U · V >) · U ·R ·R>
E Factorization
• Given that:
• We can have four possible factorizations of E such that E = S . R:
SVD(E) = U · diag(1, 1, 0) · V >
S = U · (±Z) · U>
R = U ·W · V > or R = U ·W> · V >
S = U · (±Z) · U>
R = U ·W · V > or R = U ·W> · V >
E Factorization: The Four Cases
C1 C2 C1 C2
E Factorization: The Four Cases
C1 C2 C1 C2
Both cameras see the point. It is
in front of them
E Factorization: The Four Cases
C1 C2 C1 C2
Both cameras don’t see the point. It is behind them
Both cameras see the point. It is
in front of them
E Factorization: The Four Cases
C1
C2 C1
C2
E Factorization: The Four Cases
C1
C2 C1
C2
Left camera doesn’t see the point.
It is behind them
E Factorization: The Four Cases
C1
C2 C1
C2
Left camera doesn’t see the point.
It is behind them
Left camera doesn’t see the point.
It is behind them
Which is the correct configuration?
C1 C2
Why?
The red point is seen by both cameras!
How do we find it?
We need to compute all cases. Then, we determine the case in
which the majority of 3D points are in front of both cameras!
Triangulation
Triangulation
• Input: n matched 2D feature points in the two images and their P matrices (P1, and P2).
• Output: n 3D points.
Triangulation: Pure Translational Motion Case
X
Z M
m1 m2
f
b
M =
2
664
xyz1
3
775
mi =
2
4ui
vi1
3
5
Triangulation
• We first fix the frame of reference to one of the two cameras. Then, we know that:
• So, we can obtain:
(fz = �u1
xfz = � u2
x�b
z =b · f
u2 � u1
Triangulation: Pure Rotational Motion Case
X
Z M
m1 m2
M =
2
664
xyz1
3
775
mi =
2
4ui
vi1
3
5
There is no displacement —> The same lines for intersection —> no 3D
Triangulation: The General Case
M
m1
m2
C1
C2
Camera 1
Camera 2
Similar to DLT but different!
Triangulation: Eigen Method
P =
2
4p>1
p>2
p>3
3
5
8<
:u = p>
1 ·Mp>
3 ·M
v = p>2 ·M
p>3 ·M
Triangulation: Eigen Method
P =
2
4p>1
p>2
p>3
3
5
8<
:u = p>
1 ·Mp>
3 ·M
v = p>2 ·M
p>3 ·M
known!
Triangulation: Eigen Method
P =
2
4p>1
p>2
p>3
3
5
8<
:u = p>
1 ·Mp>
3 ·M
v = p>2 ·M
p>3 ·M
known! unknown!
• This leads to:
• Given that:
Triangulation: Eigen Method
((p1 � u · p1)> ·M = 0
(p2 � v · p1)> ·M = 0
Pi =
2
4(pi
1)>
(pi2)
>
(pi3)
>
3
5 mi =
2
4ui
vi1
3
5
Triangulation: Eigen Method• We obtain:
• For l cameras, this leads to:
2
664
(p11 � u1 · p1
3)>
(p12 � v1 · p1
3)>
(p21 � u2 · p2
3)>
(p22 � v2 · p2
3)>
3
775 ·M = 0
2
666664
(p11 � u1 · p1
3)>
(p12 � u1 · p1
3)>
...(pl
1 � u1 · pl3)
>
(pl2 � u1 · pl
3)>
3
777775·M = 0
Triangulation: Eigen Method• Again, we solve this linear system using SVD; i.e., the kernel of V:
• Again, we minimized an algebraic error without a geometric meaning!
• Again, we use this initial solution for a non-linear method that minimizes a geometric error. Here for each 3D points M, we minimize:
• where l is the number of cameras. [uj, vj, 1] is corner in the l-th camera (i.e., it is “the photograph” of M).
argminM
lX
j=1
✓uj �
(pj1)
> ·M(pj
3)> ·M
◆2
+
✓vj �
(pj2)
> ·M(pj
3)> ·M
◆2
<latexit sha1_base64="tgbyoZl2uYjfu4GCSF3+3G0c254=">AAAC5HicrVJNaxsxENVuv1L3y22OvYiYgkOp2XULbQ+FkFxyCaQQNwHLXrSydiNHH4s0GzDL3nvJIS255kf11v+SQ7W2W1KnuXVA8HjzNG80o7SQwkEU/QzCO3fv3X+w9rD16PGTp8/az198caa0jA+YkcYepdRxKTQfgADJjwrLqUolP0xPdpr84Sm3Thh9ALOCjxTNtcgEo+CppH1FqM2JEjqpiKJwnGbVXl0TV6qkmn6K67HELZKKPJfdVplM8RtMMktZ1f2tLurxNIk3xwRMQdjEAL5WZ0X29hbZwsFujvuv/5id3mrW/19mraTdiXrRPPBNEC9BBy1jP2n/IBPDSsU1MEmdG8ZRAaOKWhBMcl+6dLyg7ITmfOihpoq7UTXfUo1feWaCM2P90YDn7PUbFVXOzVTqlU23bjXXkP/KDUvIPowqoYsSuGYLo6yUGAxuVo4nwnIGcuYBZVb4XjE7pn6w4D9GM4R49ck3waDf+9iLPr/rbG0vp7GGXqIN1EUxeo+20C7aRwPEgjT4GpwH38I8PAu/hxcLaRgs76yjvyK8/AVs9epM</latexit><latexit sha1_base64="tgbyoZl2uYjfu4GCSF3+3G0c254=">AAAC5HicrVJNaxsxENVuv1L3y22OvYiYgkOp2XULbQ+FkFxyCaQQNwHLXrSydiNHH4s0GzDL3nvJIS255kf11v+SQ7W2W1KnuXVA8HjzNG80o7SQwkEU/QzCO3fv3X+w9rD16PGTp8/az198caa0jA+YkcYepdRxKTQfgADJjwrLqUolP0xPdpr84Sm3Thh9ALOCjxTNtcgEo+CppH1FqM2JEjqpiKJwnGbVXl0TV6qkmn6K67HELZKKPJfdVplM8RtMMktZ1f2tLurxNIk3xwRMQdjEAL5WZ0X29hbZwsFujvuv/5id3mrW/19mraTdiXrRPPBNEC9BBy1jP2n/IBPDSsU1MEmdG8ZRAaOKWhBMcl+6dLyg7ITmfOihpoq7UTXfUo1feWaCM2P90YDn7PUbFVXOzVTqlU23bjXXkP/KDUvIPowqoYsSuGYLo6yUGAxuVo4nwnIGcuYBZVb4XjE7pn6w4D9GM4R49ck3waDf+9iLPr/rbG0vp7GGXqIN1EUxeo+20C7aRwPEgjT4GpwH38I8PAu/hxcLaRgs76yjvyK8/AVs9epM</latexit><latexit sha1_base64="tgbyoZl2uYjfu4GCSF3+3G0c254=">AAAC5HicrVJNaxsxENVuv1L3y22OvYiYgkOp2XULbQ+FkFxyCaQQNwHLXrSydiNHH4s0GzDL3nvJIS255kf11v+SQ7W2W1KnuXVA8HjzNG80o7SQwkEU/QzCO3fv3X+w9rD16PGTp8/az198caa0jA+YkcYepdRxKTQfgADJjwrLqUolP0xPdpr84Sm3Thh9ALOCjxTNtcgEo+CppH1FqM2JEjqpiKJwnGbVXl0TV6qkmn6K67HELZKKPJfdVplM8RtMMktZ1f2tLurxNIk3xwRMQdjEAL5WZ0X29hbZwsFujvuv/5id3mrW/19mraTdiXrRPPBNEC9BBy1jP2n/IBPDSsU1MEmdG8ZRAaOKWhBMcl+6dLyg7ITmfOihpoq7UTXfUo1feWaCM2P90YDn7PUbFVXOzVTqlU23bjXXkP/KDUvIPowqoYsSuGYLo6yUGAxuVo4nwnIGcuYBZVb4XjE7pn6w4D9GM4R49ck3waDf+9iLPr/rbG0vp7GGXqIN1EUxeo+20C7aRwPEgjT4GpwH38I8PAu/hxcLaRgs76yjvyK8/AVs9epM</latexit>
Triangulation: Eigen Method Example
C1
C2
Camera 1
Camera 2
Projected M(triangulated)Corner mi
M (triangulated)
Triangulation: Eigen Method Example
C1
C2
Camera 1
Camera 2
M (real)
Projected M(triangulated)Corner mi
M (triangulated)
Triangulation: Eigen Method Example
C1
C2
Camera 1
Camera 2
NOTE: with the Geometric minimization, we force the green point to be the same as the red one.
M (real)
Projected M(triangulated)Corner mi
M (triangulated)
Structure from
Motion
Structure from Motion
• Input: n matched points (corners computed with the Harris algorithm) between two images, and K1 and K2 for the two cameras.
• Output: n 3D points, and G1 and G2 (i.e., for each camera).
Structure from Motion
• The algorithm is:
• Estimation of E.
• Factorization of E to obtain G.
• Triangulation of the n matched points using P1 and P2.
So far we have only used only a two cameras!
• We compute G for different views using the previous algorithm.
• We use a reference view for computing the different G matrices. For example, we can use the first image.
Structure from Motion: Multi-View
P1
P2P3
Structure from Motion: Multi-View Example
P1
P2 ReferenceP3
Structure from Motion: Multi-View Example
Structure from Motion: Multi-View Example
P1
P2P3 Reference
We compute G12
P1
P2P3 Reference
We compute G13
Structure from Motion: Multi-View Example
Hang on, was it a good reference the one before?
Hang on, what can possibly go wrong?
We are accumulating error, and we will drift
from the solution!
Structure from Motion: Bundle Adjustment
• To avoid error accumulation, we minimize in a non-linear way at the same time both poses estimation and 3D points generation:
• where l is the number of cameras, and n is the number of points.
P = K · [R|t]<latexit sha1_base64="OCW9Ob3Efg7x1KXDx4xLktLUPUo=">AAACAXicbVBNS8NAEN3Ur1q/qp7Ey2IRPJVUBPUgFL0IXqpYW0hC2Ww27dLNJuxOhBKLF/+KFw8qXv0X3vw3btoetPXBwOO9GWbm+YngGmz72yrMzS8sLhWXSyura+sb5c2tOx2nirImjUWs2j7RTHDJmsBBsHaiGIl8wVp+/yL3W/dMaR7LWxgkzItIV/KQUwJG6pR3GvgMX2GXBjE4Nw9uRKDnhxkMvU65YlftEfAsqU1IBU3Q6JS/3CCmacQkUEG0dmp2Al5GFHAq2LDkppolhPZJlzmGShIx7WWjF4Z43ygBDmNlSgIeqb8nMhJpPYh805mfqKe9XPzPc1IIT7yMyyQFJul4UZgKDDHO88ABV4yCGBhCqOLmVkx7RBEKJrWSCaE2/fIsaR5WT6v29VGlfj5Jo4h20R46QDV0jOroEjVQE1H0iJ7RK3qznqwX6936GLcWrMnMNvoD6/MHhuyWdg==</latexit><latexit sha1_base64="OCW9Ob3Efg7x1KXDx4xLktLUPUo=">AAACAXicbVBNS8NAEN3Ur1q/qp7Ey2IRPJVUBPUgFL0IXqpYW0hC2Ww27dLNJuxOhBKLF/+KFw8qXv0X3vw3btoetPXBwOO9GWbm+YngGmz72yrMzS8sLhWXSyura+sb5c2tOx2nirImjUWs2j7RTHDJmsBBsHaiGIl8wVp+/yL3W/dMaR7LWxgkzItIV/KQUwJG6pR3GvgMX2GXBjE4Nw9uRKDnhxkMvU65YlftEfAsqU1IBU3Q6JS/3CCmacQkUEG0dmp2Al5GFHAq2LDkppolhPZJlzmGShIx7WWjF4Z43ygBDmNlSgIeqb8nMhJpPYh805mfqKe9XPzPc1IIT7yMyyQFJul4UZgKDDHO88ABV4yCGBhCqOLmVkx7RBEKJrWSCaE2/fIsaR5WT6v29VGlfj5Jo4h20R46QDV0jOroEjVQE1H0iJ7RK3qznqwX6936GLcWrMnMNvoD6/MHhuyWdg==</latexit><latexit sha1_base64="OCW9Ob3Efg7x1KXDx4xLktLUPUo=">AAACAXicbVBNS8NAEN3Ur1q/qp7Ey2IRPJVUBPUgFL0IXqpYW0hC2Ww27dLNJuxOhBKLF/+KFw8qXv0X3vw3btoetPXBwOO9GWbm+YngGmz72yrMzS8sLhWXSyura+sb5c2tOx2nirImjUWs2j7RTHDJmsBBsHaiGIl8wVp+/yL3W/dMaR7LWxgkzItIV/KQUwJG6pR3GvgMX2GXBjE4Nw9uRKDnhxkMvU65YlftEfAsqU1IBU3Q6JS/3CCmacQkUEG0dmp2Al5GFHAq2LDkppolhPZJlzmGShIx7WWjF4Z43ygBDmNlSgIeqb8nMhJpPYh805mfqKe9XPzPc1IIT7yMyyQFJul4UZgKDDHO88ABV4yCGBhCqOLmVkx7RBEKJrWSCaE2/fIsaR5WT6v29VGlfj5Jo4h20R46QDV0jOroEjVQE1H0iJ7RK3qznqwX6936GLcWrMnMNvoD6/MHhuyWdg==</latexit>
arg minRi,ti,Mi
lX
j=1
nX
i=1
✓uij �
(pj1)
> ·Mi
(pj3)
> ·Mi
◆2
+
✓vij �
(pj2)
> ·Mi
(pj3)
> ·Mi
◆2
<latexit sha1_base64="iv8ND/8gWYWdlskkT7a0HK7d4R0=">AAADFXicrVLLbtNAFB2bVwmvtF2yGREhpaJEdkBqu0CqYMMGqSBCK8WxNZ6M3UnnYc1cV4osf0U3/AobFoDYIrHjbxgnBrUpsOJKI51zX+fOnUkLwS0EwQ/Pv3L12vUbazc7t27fuXuvu77xzurSUDaiWmhzlBLLBFdsBBwEOyoMIzIV7DA9edHED0+ZsVyrtzAv2ESSXPGMUwLOlax72xExeSS5Sqo3Md/GkSRwnGYV1OfZK8fqTmRLmVSzZ2EdC9wy3jDlWMrzXPQ7ZTKLOX6Mo8wQWvV/NSjqeJaEW3EEuojoVMPF1iuJT/6auNQxW/Hw0W/J039IDv+nZCfp9oJBsDB8GYQt6KHWDpLu92iqaSmZAiqIteMwKGBSEQOcCuZal5YVhJ6QnI0dVEQyO6kWz1rjh84zxZk27ijAC+/5iopIa+cydZnNvHY11jj/FBuXkO1OKq6KEpiiS6GsFBg0bv4InnLDKIi5A4Qa7mbF9Ji45YL7Sc0SwtUrXwaj4WBvELx+2tt/3m5jDd1HD1AfhWgH7aOX6ACNEPXOvA/eJ++z/97/6H/xvy5Tfa+t2UQXzP/2E0lZ/Dk=</latexit><latexit sha1_base64="iv8ND/8gWYWdlskkT7a0HK7d4R0=">AAADFXicrVLLbtNAFB2bVwmvtF2yGREhpaJEdkBqu0CqYMMGqSBCK8WxNZ6M3UnnYc1cV4osf0U3/AobFoDYIrHjbxgnBrUpsOJKI51zX+fOnUkLwS0EwQ/Pv3L12vUbazc7t27fuXuvu77xzurSUDaiWmhzlBLLBFdsBBwEOyoMIzIV7DA9edHED0+ZsVyrtzAv2ESSXPGMUwLOlax72xExeSS5Sqo3Md/GkSRwnGYV1OfZK8fqTmRLmVSzZ2EdC9wy3jDlWMrzXPQ7ZTKLOX6Mo8wQWvV/NSjqeJaEW3EEuojoVMPF1iuJT/6auNQxW/Hw0W/J039IDv+nZCfp9oJBsDB8GYQt6KHWDpLu92iqaSmZAiqIteMwKGBSEQOcCuZal5YVhJ6QnI0dVEQyO6kWz1rjh84zxZk27ijAC+/5iopIa+cydZnNvHY11jj/FBuXkO1OKq6KEpiiS6GsFBg0bv4InnLDKIi5A4Qa7mbF9Ji45YL7Sc0SwtUrXwaj4WBvELx+2tt/3m5jDd1HD1AfhWgH7aOX6ACNEPXOvA/eJ++z/97/6H/xvy5Tfa+t2UQXzP/2E0lZ/Dk=</latexit><latexit sha1_base64="iv8ND/8gWYWdlskkT7a0HK7d4R0=">AAADFXicrVLLbtNAFB2bVwmvtF2yGREhpaJEdkBqu0CqYMMGqSBCK8WxNZ6M3UnnYc1cV4osf0U3/AobFoDYIrHjbxgnBrUpsOJKI51zX+fOnUkLwS0EwQ/Pv3L12vUbazc7t27fuXuvu77xzurSUDaiWmhzlBLLBFdsBBwEOyoMIzIV7DA9edHED0+ZsVyrtzAv2ESSXPGMUwLOlax72xExeSS5Sqo3Md/GkSRwnGYV1OfZK8fqTmRLmVSzZ2EdC9wy3jDlWMrzXPQ7ZTKLOX6Mo8wQWvV/NSjqeJaEW3EEuojoVMPF1iuJT/6auNQxW/Hw0W/J039IDv+nZCfp9oJBsDB8GYQt6KHWDpLu92iqaSmZAiqIteMwKGBSEQOcCuZal5YVhJ6QnI0dVEQyO6kWz1rjh84zxZk27ijAC+/5iopIa+cydZnNvHY11jj/FBuXkO1OKq6KEpiiS6GsFBg0bv4InnLDKIi5A4Qa7mbF9Ji45YL7Sc0SwtUrXwaj4WBvELx+2tt/3m5jDd1HD1AfhWgH7aOX6ACNEPXOvA/eJ++z/97/6H/xvy5Tfa+t2UQXzP/2E0lZ/Dk=</latexit>
Structure from Motion: Bundle Adjustment
• Typically, the method is difficult to minimize as a whole thing. This is because there are many parameters to minimize.
• A two-step approach:
• First, minimize (or viceversa) all extrinsic parameters (G) without modifying the 3D points.
• Then, minimize (or viceversa) 3D points coordinates without modifying G.
Structure from Motion: Example
Structure from Motion: Example
Structure from Motion: Example
Structure From Motion: Multi-View
• To obtain something of interesting:
• we need to feed into the system hundreds of images.
• we need to manage thousands of features (corners)!
• Even the two-step approach would struggle a bit.
Structure from Motion: Multi-View
• To make the problem computational tractable, we can notice this:
12 4
3 5
6 8
7 9
A B C D
1,2,3,4,5,6,7,8, and 9 are points A,B,C, and D are cameras the point is seen in a camera
Structure from Motion: Multi-View
• The idea is to divide the scene into clusters.
• For each cluster we compute SfM.
• We combine all 3D reconstructions and camera poses together.
Structure from Motion: Multi-View
12 4
3 5
6 8
7 9
A B C D
Cluster A Cluster B
Structure from Motion: Conclusions
• Advantages:
• It requires only photographs/videos: cheap and fast.
• We can recover color information from photographs!
• Disadvantages:
• The output model may be skewed; it is hard to keep two things going at the same time (3D points and cameras’ poses).
• We do not have the scale of the 3D scene; we need some reference measures.
Structure from Motion: Scale
• This scale factor is due to the fact we do not know the real scale.
• if we took a photograph of:
• a large object far away from the camera.
• a small object near the camera. •
Structure from Motion: Scale ExampleDLT: Direct Linear Transform
Case 1 Case 2
One more thing…
We have some wrong matches!
RANSAC• Random sample consensus (RANSAC) is an
iterative method for estimating the parameters of a model in a robust way.
• The main idea is to get a subset of the set of samples and to estimate the model with this subset:
• We estimate the model using the best subset of samples!
RANSAC
• Input: a set of n samples S, and a model 𝜋.
• Output: parameters, P, for the model 𝜋., and the subset of S that was used to compute P.
RANSAC• e = +∞ and Sb = ∅
• For each iteration:
• Si ⊂ S where Si is random.
• Estimate Pi for 𝜋 using Si
• Compute the error ei for Pi
• if ei < e then
• e = ei and Sb = Si
RANSAC: Example𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 0 e = +∞
𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 1 e = +∞
𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 1 e = +∞
𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 1 e = +∞
ei = 10
𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 2 e = 10
𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 2 e = 10
𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 2 e = 10
𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 2 e = 10
ei = 1𝜋: a straight line
Si and Sb
RANSAC: Example
Iteration 2 e = 1
𝜋: a straight line
Si and Sb
and we continue for n iterations…
how many?
RANSAC: Iterations
• n has to be large; i.e., we need to have at least one subset containing only inliers Sinliers:
• We are interested for P = 1.
P (|Si| = c) = 1�✓1�
✓1� |Soutliers|
|S|
◆c◆n
Si ✓ Sinliers
RANSAC• When do we need to use it?
• Estimation of the fundamental/essential matrix.
• Estimation of a homography in the general case.
• When we do not need it for:
• DLT and Zhang’s algorithm:
• corners are extracted in an accurate way using a calibration pattern!
RANSAC: Fundamental Matrix Estimation• The algorithm is modified a bit:
• We count the inliers of each set given a threshold:
• terr takes into account this constraint:
• If we have a set with more inliers of the previous one it is accepted.
• We compute the F using only the inliers!
m>2 · F ·m1 = 0
m>1 · F> ·m2 = 0
<latexit sha1_base64="Zl/LEIAhHeXLtIBq6dAY2KMtuQ8=">AAACU3icbVHPS8MwGE3r1DmdTj16CQ7B02iHoB6EoSAeJzg3WGtJs3QLS5uSfBVG2R+pB8G/xIsHs62H/fCDkJf3vUe+vISp4Boc59uyt0rbO7vlvcr+QfXwqHZ88qplpijrUCmk6oVEM8ET1gEOgvVSxUgcCtYNxw+zfvedKc1l8gKTlPkxGSY84pSAoYLa2IsJjMIoj6dB880DmWLs0YEE/FjsSwIX32HseF5lmVs1LU4bzqZxOkGt7jSceeFN4BagjopqB7VPbyBpFrMEqCBa910nBT8nCjgVbFrxMs1SQsdkyPoGJiRm2s/noUzxhWEGOJLKrATwnF125CTWehKHRjmbU6/3ZuR/vX4G0Y2f8yTNgCV0cVGUCQwSzxLGA64YBTExgFDFzayYjogiFMw/VEwI7vqTN0Gn2bhtOM9X9dZ9kUYZnaFzdIlcdI1a6Am1UQdR9IF+LGRZ1pf1a9t2aSG1rcJzilbKrv4BS8axBg==</latexit><latexit sha1_base64="Zl/LEIAhHeXLtIBq6dAY2KMtuQ8=">AAACU3icbVHPS8MwGE3r1DmdTj16CQ7B02iHoB6EoSAeJzg3WGtJs3QLS5uSfBVG2R+pB8G/xIsHs62H/fCDkJf3vUe+vISp4Boc59uyt0rbO7vlvcr+QfXwqHZ88qplpijrUCmk6oVEM8ET1gEOgvVSxUgcCtYNxw+zfvedKc1l8gKTlPkxGSY84pSAoYLa2IsJjMIoj6dB880DmWLs0YEE/FjsSwIX32HseF5lmVs1LU4bzqZxOkGt7jSceeFN4BagjopqB7VPbyBpFrMEqCBa910nBT8nCjgVbFrxMs1SQsdkyPoGJiRm2s/noUzxhWEGOJLKrATwnF125CTWehKHRjmbU6/3ZuR/vX4G0Y2f8yTNgCV0cVGUCQwSzxLGA64YBTExgFDFzayYjogiFMw/VEwI7vqTN0Gn2bhtOM9X9dZ9kUYZnaFzdIlcdI1a6Am1UQdR9IF+LGRZ1pf1a9t2aSG1rcJzilbKrv4BS8axBg==</latexit><latexit sha1_base64="Zl/LEIAhHeXLtIBq6dAY2KMtuQ8=">AAACU3icbVHPS8MwGE3r1DmdTj16CQ7B02iHoB6EoSAeJzg3WGtJs3QLS5uSfBVG2R+pB8G/xIsHs62H/fCDkJf3vUe+vISp4Boc59uyt0rbO7vlvcr+QfXwqHZ88qplpijrUCmk6oVEM8ET1gEOgvVSxUgcCtYNxw+zfvedKc1l8gKTlPkxGSY84pSAoYLa2IsJjMIoj6dB880DmWLs0YEE/FjsSwIX32HseF5lmVs1LU4bzqZxOkGt7jSceeFN4BagjopqB7VPbyBpFrMEqCBa910nBT8nCjgVbFrxMs1SQsdkyPoGJiRm2s/noUzxhWEGOJLKrATwnF125CTWehKHRjmbU6/3ZuR/vX4G0Y2f8yTNgCV0cVGUCQwSzxLGA64YBTExgFDFzayYjogiFMw/VEwI7vqTN0Gn2bhtOM9X9dZ9kUYZnaFzdIlcdI1a6Am1UQdR9IF+LGRZ1pf1a9t2aSG1rcJzilbKrv4BS8axBg==</latexit>
that’s all folks!
top related