Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Feature detection is the step in computer vision that finds distinctive local image structures, such as corners, blobs and small textured patches, that can be found again in other images of the same scene. Tinne Tuytelaars and Krystian Mikolajczyk define a local feature as "an image pattern which differs from its immediate neighborhood", usually tied to a change in intensity, color or texture.[1] The detected points are usually called keypoints or interest points. In most systems a detector is paired with a descriptor, a compact numeric summary of the patch around each point, so that the same point can be matched between images.[2]

Feature detection is an early step of camera-based tracking in virtual reality and augmented reality. Apple's ARKit documentation says ARKit "recognizes notable features in the scene image" and tracks how their positions change between video frames,[3] Google's ARCore documentation describes "visually distinct features in the captured camera image called feature points",[4] and Meta engineers wrote that the Oculus Insight tracking system "detects pixels in images with high contrast, such as the corners of a window".[5] The same features feed SLAM, visual-inertial odometry, loop closure and relocalization.

Reviewed 12 October 2026. Checked every cited paper (authors, venue, year, DOI via Crossref, quoted passages and numbers in the paper text), the OpenCV changelog and tutorials, the SIFT patent dates, and the Apple ARKit, Google ARCore, Meta Oculus Insight and Vuforia pages against the article text. About review dates.

Definition and properties

Tuytelaars and Mikolajczyk note that local features can be points, but also edge pixels (edgels) or small image patches, and that measurements taken from a region centered on a feature are converted into descriptors.[1] Bay, Tuytelaars and Van Gool split the search for image correspondences into three steps: interest points are selected at distinctive locations "such as corners, blobs, and T-junctions"; the neighborhood of each point is represented by a descriptor vector; and the descriptors are matched between images, often by a distance such as the Euclidean distance.[2]

The same survey lists the properties of an ideal local feature:[1]

Property Meaning (after Tuytelaars and Mikolajczyk)
Repeatability In two images of the same scene taken under different viewing conditions, a high percentage of the features on the shared part of the scene should be found in both images
Distinctiveness The intensity pattern under each feature should vary enough that features can be told apart and matched
Locality Features should be local, which reduces the chance of occlusion and allows simple models of the deformation between views
Quantity Enough features should be found even on small objects, ideally adjustable with a simple threshold
Accuracy Features should be accurately localized in image position, scale and possibly shape
Efficiency Detection should be fast enough for time-critical applications

The authors call repeatability "arguably the most important property of all" and note that it is reached either by invariance (modelling large deformations such as scale or rotation changes mathematically) or by robustness to small ones such as noise, blur and compression artifacts. They also point out that distinctiveness and locality compete with each other.[1]

How it works

Detection

Rosten and Drummond note that the majority of feature detection algorithms compute a corner response function across the image and keep pixels whose response exceeds a threshold.[6] Corner detectors look for windows whose content changes strongly when the window is shifted in any direction, while blob detectors look for extrema of filters such as the difference of Gaussians across image positions and scales.[7][8] Many detectors run on an image pyramid (successively downscaled copies of the image) so that the same structure can be found when the camera moves closer or farther away.[8][9]

Description

A descriptor turns the patch around a keypoint into a vector that should stay similar when the same point is seen from another viewpoint or under different lighting. Two broad families exist. Floating-point descriptors such as SIFT build histograms of local gradient orientations; SIFT's descriptor has 128 elements.[8] Binary descriptors such as BRIEF are bit strings built from simple intensity comparisons, and their similarity is measured with the Hamming distance, which its authors describe as "very efficient to compute" compared with the L2 norm used for floating-point vectors.[10] In a 2005 comparison of local descriptors, Mikolajczyk and Cordelia Schmid found that the ranking of descriptors was mostly independent of the detector used and that SIFT-based descriptors performed best.[11]

Matching and outlier rejection

Descriptors are matched by nearest-neighbor search. Because some nearest neighbors are wrong, matches are filtered. David Lowe proposed comparing the distance to the closest neighbor with the distance to the second-closest one; in his object recognition system, rejecting matches whose distance ratio was greater than 0.8 eliminated 90% of the false matches while discarding less than 5% of the correct ones.[8]

The remaining matches are then checked against a geometric model with a robust estimator such as RANSAC (random sample consensus). Martin Fischler and Robert Bolles of SRI International introduced RANSAC in 1981 as a model-fitting method suited to image analysis "based on the data provided by error-prone feature detectors". Instead of fitting a model to all data and then removing bad points, RANSAC fits a model to a minimal random subset and counts how many other points agree with it (the consensus set).[12] Examples of such models include a homography for a planar target, the fundamental matrix between two frames, and a Perspective-n-Point pose against known 3D points.[13][9]

Tracking without descriptors

Between consecutive video frames, a feature can also be followed by local image registration instead of descriptor matching. Bruce Lucas and Takeo Kanade published an iterative, gradient-based image registration method in 1981.[14] Carlo Tomasi and Kanade's 1991 technical report Detection and Tracking of Point Features built a point tracker on it and derived a feature selection criterion from the tracker itself, defining "a feature to be good if it can be tracked well".[15] Tracking of this kind is a form of sparse optical flow. The VINS-Mono visual-inertial estimator, for example, follows existing features with what its authors call the KLT sparse optical flow algorithm, citing Lucas and Kanade, and detects new corners with the Shi and Tomasi method to maintain a minimum number of features (100 to 300) in each image.[13]

History and notable methods

Year Method Authors Type Venue
1980 Moravec corner detector Hans Moravec Corner detector Stanford AIM-340 / CMU report[16]
1988 Harris corner detector Chris Harris, Mike Stephens Corner detector Alvey Vision Conference[7]
1994 Shi-Tomasi ("Good Features to Track") Jianbo Shi, Carlo Tomasi Corner detector CVPR 1994[17]
1999, 2004 SIFT David Lowe Scale-invariant detector and descriptor ICCV 1999; IJCV 2004[18][8]
2006 SURF Herbert Bay, Tinne Tuytelaars, Luc Van Gool Scale-invariant detector and descriptor ECCV 2006[2]
2006 FAST Edward Rosten, Tom Drummond Corner detector ECCV 2006[6]
2010 BRIEF Michael Calonder, Vincent Lepetit, Christoph Strecha, Pascal Fua Binary descriptor ECCV 2010[10]
2011 ORB Ethan Rublee, Vincent Rabaud, Kurt Konolige, Gary Bradski Oriented FAST detector and binary descriptor ICCV 2011[9]
2018 SuperPoint Daniel DeTone, Tomasz Malisiewicz, Andrew Rabinovich Learned detector and descriptor CVPR 2018 workshops[19]

Corner detectors

Hans Moravec's 1980 report on the Stanford cart, a camera-equipped mobile robot that used stereo vision to locate obstacles and estimate its own motion,[16] is the source Harris and Stephens cite for the corner detector they took as their starting point. Lowe likewise traces local feature matching back to Moravec's work on stereo matching with a corner detector.[8] As described by Harris and Stephens, Moravec's detector shifts a small window by a small amount in four directions (at 45-degree intervals), measures the change in image intensity for each shift, and marks local maxima of the minimum change above a threshold as corners.[7]

Chris Harris and Mike Stephens of Plessey Research Roke Manor presented their combined corner and edge detector in 1988. Their motivation was "3D interpretation of image sequences using feature tracking algorithms". They identified three problems with Moravec's operator (an anisotropic response from only a few shift directions, noise from a binary rectangular window, and too ready a response to edges) and replaced it with an analysis of the local auto-correlation function. A 2x2 matrix built from image gradients describes how the intensity changes for small shifts; its two eigenvalues are both small in flat regions, one large and one small on edges, and both large at corners. To avoid computing the eigenvalues explicitly, they defined a corner response from the determinant and trace of the matrix, which is positive in corner regions and negative in edge regions.[7]

Jianbo Shi and Carlo Tomasi argued in their 1994 paper Good Features to Track that features should be chosen according to how well the tracker that follows them will work, rather than by a separate "interest" or "cornerness" measure. Their criterion accepts a window when the smaller of the two eigenvalues of the gradient matrix exceeds a threshold. The paper also monitored feature quality during tracking, noting that trackers "often blissfully drift away from their original target" when a feature becomes occluded.[17] The OpenCV library implements this detector as the function goodFeaturesToTrack.[20]

Scale-invariant features: SIFT and SURF

Corner detectors such as Harris respond to structure at one fixed scale. David Lowe of the University of British Columbia introduced the Scale-Invariant Feature Transform (SIFT) at ICCV 1999 and gave the full description in a 2004 paper in the International Journal of Computer Vision.[18][8] SIFT finds candidate keypoints as maxima and minima of a difference-of-Gaussian function across image positions and scales, rejects poorly localized candidates and edge responses, assigns each keypoint an orientation from local gradients, and describes it with a 4x4 array of gradient orientation histograms with 8 bins each, a 128-element vector. Lowe reported that the features are invariant to image scale and rotation and provide robust matching across a substantial range of affine distortion, viewpoint change, noise and illumination change.[8]

SURF (Speeded Up Robust Features), published by Herbert Bay, Tinne Tuytelaars and Luc Van Gool at ECCV 2006, uses a detector based on the determinant of the Hessian matrix and a descriptor built from Haar wavelet responses, both computed quickly with integral images. Its standard descriptor has 64 dimensions.[2] A journal version appeared in Computer Vision and Image Understanding in 2008.[21]

FAST

FAST (Features from Accelerated Segment Test) came out of Edward Rosten and Tom Drummond's work on real-time tracking at Cambridge University. The segment test examines a circle of 16 pixels around a candidate pixel and classifies it as a corner if enough contiguous pixels on the circle are all brighter than the center plus a threshold, or all darker than the center minus that threshold. In their 2006 ECCV paper the authors used machine learning (a decision tree) to derive a faster version of the test and added non-maximal suppression. They reported that the learned detector could process live PAL video using less than 7% of the available processing time, while the Harris detector would need 120% and the detection stage of SIFT 300%. They also wrote that they used the resulting detectors for real-time tracking and for AR label placement.[6] A 2010 journal paper with Reid Porter added FAST-ER, a generalization optimized for repeatability.[22]

BRIEF

BRIEF (Binary Robust Independent Elementary Features), proposed by Michael Calonder, Vincent Lepetit, Christoph Strecha and Pascal Fua of EPFL in 2010, uses a binary string instead of a floating-point vector. Each bit of the descriptor is the result of comparing the intensities of two points in a smoothed patch, and the authors found that 256 or even 128 bits often suffice for very good matching results. BRIEF is only a descriptor, so it must be paired with a separate detector. Its authors state that it "is not designed to be rotationally invariant", although it tolerates small amounts of rotation.[10]

ORB

ORB (Oriented FAST and Rotated BRIEF) was presented by Ethan Rublee, Vincent Rabaud, Kurt Konolige and Gary Bradski of Willow Garage at ICCV 2011 as a fast binary alternative to SIFT and SURF.[9] It combines a FAST detector with a modified BRIEF descriptor:[9]

  • oFAST (detection): ORB uses FAST-9 (circular radius of 9). Because FAST has large responses along edges and gives no measure of cornerness, ORB sets a low threshold, ranks the FAST keypoints with the Harris corner measure and keeps the top N. Since FAST is not multi-scale, it detects features at each level of an image pyramid.
  • Orientation: FAST corners have no orientation, so ORB assigns one with the intensity centroid method: the direction from the corner to the intensity-weighted centroid of the surrounding patch.
  • rBRIEF (description): BRIEF is "steered" by rotating its sampling pattern to the keypoint orientation, with the angle discretized to steps of 12 degrees and the patterns precomputed in a lookup table. Steering lowers the variance of the binary tests, so the authors ran a greedy search over training keypoints to choose 256 tests with high variance, means near 0.5 and low correlation. The result is called rBRIEF.

In the authors' timing test on 640x480 images with about 1,000 features, ORB took 15.3 ms per frame against 217.3 ms for SURF and 5,228.7 ms for SIFT. They also ran ORB at 640x480 and 7 Hz on a phone with a 1 GHz ARM chip for planar patch tracking. The paper notes that ORB "is free from the licensing restrictions of SIFT and SURF" and that its BSD-licensed implementation was contributed to OpenCV 2.3.[9] In the OpenCV implementation the default maximum number of retained features is 500, and the Harris score is used to rank features by default.[23]

ORB became the feature of the ORB-SLAM family of SLAM systems. Raúl Mur-Artal, J. M. M. Montiel and Juan D. Tardós wrote that their system needed features that take much less than 33 ms per image to extract, which excluded SIFT and SURF (about 300 ms each), and that place recognition needed rotation invariance, which excluded BRIEF. ORB-SLAM extracts FAST corners at 8 scale levels with a scale factor of 1.2 and uses the same ORB features for tracking, mapping, relocalization and loop closing.[24]

Learned features

Neural networks can also be trained to detect and describe features. SuperPoint, by Daniel DeTone, Tomasz Malisiewicz and Andrew Rabinovich of Magic Leap, is a fully convolutional network that computes interest point locations and descriptors for a full image in one forward pass. It is trained with a self-supervised method the authors call Homographic Adaptation, and they reported that it ran at 70 frames per second on 480x640 images on a Titan X GPU.[19] The authors presented it at the CVPR 2018 workshop on deep learning for visual SLAM and wrote that a learning-based visual SLAM front end would enable more robust applications in robotics and augmented reality.[25]

Learned matching followed. SuperGlue (CVPR 2020), from ETH Zurich and Magic Leap, is a graph neural network that matches two sets of local features while rejecting points that have no match.[26] LightGlue (ICCV 2023), from ETH Zurich and the Microsoft Mixed Reality & AI Lab, revisits SuperGlue's design to make matching faster and more accurate, and adapts its computation to how hard each image pair is to match.[27]

Patents and licensing

SIFT was covered by US patent 6,711,293, filed by David Lowe and assigned to the University of British Columbia. The application was filed on 6 March 2000 and granted on 23 March 2004, and the patent expired on 6 March 2020.[28] OpenCV had shipped SIFT in its separate opencv_contrib repository (the xfeatures2d module). After the expiry, OpenCV 4.3.0 enabled the SIFT detector in opencv_contrib by default, without the previous NONFREE build option, and OpenCV 4.4.0, released in July 2020, moved SIFT into the main repository with the note "patent on SIFT is expired".[29][30] The ORB authors listed freedom from "the licensing restrictions of SIFT and SURF" as an additional benefit of their method.[9]

Applications in VR and AR

Camera tracking and SLAM

Early real-time monocular SLAM systems that were demonstrated for AR relied on feature detection. Andrew Davison and colleagues' MonoSLAM (IEEE TPAMI, 2007) detected salient image regions with the Shi-Tomasi operator and used 11x11 pixel patches as long-term landmarks; the authors demonstrated it with a humanoid robot and with live augmented reality from a hand-held camera.[31] Georg Klein and David Murray's Parallel Tracking and Mapping (PTAM), presented at ISMAR 2007 and designed for "small AR workspaces", ran the FAST-10 corner detector on each level of a four-level image pyramid and used the Shi-Tomasi score to choose new map points.[32] Later research systems such as ORB-SLAM and VINS-Mono kept the same pattern of detecting corners, following or matching them across frames, and feeding them to an optimizer.[24][13]

Headset makers rarely publish which detector their inside-out tracking uses. For Oculus Insight, Meta engineers described the system detecting high-contrast pixels such as window corners, tracking and associating these regions from image to image, and triangulating them into a 3D environment map; the post describes the system as visual-inertial simultaneous localization and mapping (SLAM). They added that such landmarks are observed repeatedly, which lets Insight compensate for drift, the build-up of small IMU measurement errors over time.[5]

Smartphone AR frameworks

Apple's ARKit uses visual-inertial odometry: it recognizes notable features in the camera image, tracks differences in their positions across video frames, and compares that with motion sensor data.[3] ARKit exposes the detected points to developers as the rawFeaturePoints point cloud, which Apple describes as "intermediate results of the scene analysis ARKit uses to perform world tracking". Apple notes that the number and arrangement of these points are not guaranteed to stay stable between software releases or even between frames.[33] Google's ARCore documentation states that ARCore uses SLAM, detects feature points and uses them to compute its change in location, and combines this visual information with IMU measurements. ARCore also looks for clusters of feature points that appear to lie on common horizontal or vertical surfaces to report planes for plane detection.[4]

Image targets and natural feature tracking

Marker-less AR on known images also relies on feature detection. Daniel Wagner, Gerhard Reitmayr, Alessandro Mulloni, Tom Drummond and Dieter Schmalstieg showed natural feature tracking of textured planar targets on mobile phones at up to 20 Hz at ISMAR 2008. Their modified SIFT replaced the difference-of-Gaussian scale-space search, which they considered too resource intensive for phones, with the FAST corner detector.[34] The commercial Vuforia Engine rates how well an image will work as a target by its features. Its documentation defines a feature as "a sharp, spiked, chiseled detail in the image, such as the ones present in textured objects", notes that soft corners and organic edges are not marked as features, and gives each target a star rating from 1 to 5.[35]

Relocalization and loop closure

Binary features also make place recognition fast enough for real-time use. Dorian Gálvez-López and Juan D. Tardós built a bag of words vocabulary over FAST+BRIEF features for visual place recognition; including feature extraction, their method needed 22 ms per frame on a sequence of 26,300 images.[36] The authors note that robust place recognition supplies the loop closures needed for consistent maps and can also relocate a system after tracking is lost.[36]

Limitations

Because tracking depends on finding features, scenes with little texture are a known weak point. ARCore's documentation warns that flat surfaces without texture, such as a white wall, may not be detected properly as planes,[4] and Apple's guidance says tracking quality drops when the camera cannot see details, for example when it points at a blank wall or the scene is too dark, and that excessive motion blurs the image.[3]

See also

References

  1. ↑ 1.0 1.1 1.2 1.3 Tinne Tuytelaars, Krystian Mikolajczyk (2008). "Local Invariant Feature Detectors: A Survey". Foundations and Trends in Computer Graphics and Vision, vol. 3, no. 3, pp. 177-280. doi:10.1561/0600000017. https://doi.org/10.1561/0600000017. Retrieved 2026-10-12.
  2. ↑ 2.0 2.1 2.2 2.3 Herbert Bay, Tinne Tuytelaars, Luc Van Gool (2006). "SURF: Speeded Up Robust Features". Computer Vision - ECCV 2006, Lecture Notes in Computer Science, vol. 3951, pp. 404-417. Springer. doi:10.1007/11744023_32. https://doi.org/10.1007/11744023_32. Retrieved 2026-10-12.
  3. ↑ 3.0 3.1 3.2 "Understanding world tracking". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/understanding-world-tracking. Retrieved 2026-10-12.
  4. ↑ 4.0 4.1 4.2 "Fundamental concepts". ARCore, Google for Developers. Google. https://developers.google.com/ar/develop/fundamentals. Retrieved 2026-10-12.
  5. ↑ 5.0 5.1 Joel Hesch, Anna Kozminski, Oskar Linde (2019-08-22). "Powered by AI: Oculus Insight". Meta AI Blog. Meta. https://ai.meta.com/blog/powered-by-ai-oculus-insight/. Retrieved 2026-10-12.
  6. ↑ 6.0 6.1 6.2 Edward Rosten, Tom Drummond (2006). "Machine Learning for High-Speed Corner Detection". Computer Vision - ECCV 2006, Lecture Notes in Computer Science, vol. 3951, pp. 430-443. Springer. doi:10.1007/11744023_34. https://doi.org/10.1007/11744023_34. Retrieved 2026-10-12.
  7. ↑ 7.0 7.1 7.2 7.3 Chris Harris, Mike Stephens (1988). "A Combined Corner and Edge Detector". Proceedings of the Alvey Vision Conference 1988, pp. 23.1-23.6. Alvey Vision Club. doi:10.5244/C.2.23. https://doi.org/10.5244/C.2.23. Retrieved 2026-10-12.
  8. ↑ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 David G. Lowe (2004). "Distinctive Image Features from Scale-Invariant Keypoints". International Journal of Computer Vision, vol. 60, no. 2, pp. 91-110. doi:10.1023/B:VISI.0000029664.99615.94. https://doi.org/10.1023/B:VISI.0000029664.99615.94. Retrieved 2026-10-12.
  9. ↑ 9.0 9.1 9.2 9.3 9.4 9.5 9.6 Ethan Rublee, Vincent Rabaud, Kurt Konolige, Gary Bradski (2011-11). "ORB: An efficient alternative to SIFT or SURF". 2011 International Conference on Computer Vision (ICCV), pp. 2564-2571. IEEE. doi:10.1109/ICCV.2011.6126544. https://doi.org/10.1109/ICCV.2011.6126544. Retrieved 2026-10-12.
  10. ↑ 10.0 10.1 10.2 Michael Calonder, Vincent Lepetit, Christoph Strecha, Pascal Fua (2010). "BRIEF: Binary Robust Independent Elementary Features". Computer Vision - ECCV 2010, Lecture Notes in Computer Science, vol. 6314, pp. 778-792. Springer. doi:10.1007/978-3-642-15561-1_56. https://doi.org/10.1007/978-3-642-15561-1_56. Retrieved 2026-10-12.
  11. ↑ Krystian Mikolajczyk, Cordelia Schmid (2005-10). "A Performance Evaluation of Local Descriptors". IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 27, no. 10, pp. 1615-1630. doi:10.1109/TPAMI.2005.188. https://doi.org/10.1109/TPAMI.2005.188. Retrieved 2026-10-12.
  12. ↑ Martin A. Fischler, Robert C. Bolles (1981-06). "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography". Communications of the ACM, vol. 24, no. 6, pp. 381-395. doi:10.1145/358669.358692. https://doi.org/10.1145/358669.358692. Retrieved 2026-10-12.
  13. ↑ 13.0 13.1 13.2 Tong Qin, Peiliang Li, Shaojie Shen (2018-08). "VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator". IEEE Transactions on Robotics, vol. 34, no. 4, pp. 1004-1020. doi:10.1109/TRO.2018.2853729. https://doi.org/10.1109/TRO.2018.2853729. Retrieved 2026-10-12.
  14. ↑ Bruce D. Lucas, Takeo Kanade (1981-08). "An Iterative Image Registration Technique with an Application to Stereo Vision". Proceedings of the 7th International Joint Conference on Artificial Intelligence (IJCAI '81), vol. 2, pp. 674-679. Carnegie Mellon University Robotics Institute. https://publications.ri.cmu.edu/an-iterative-image-registration-technique-with-an-application-to-stereo-vision-ijcai. Retrieved 2026-10-12.
  15. ↑ Carlo Tomasi, Takeo Kanade (1991-04). "Detection and Tracking of Point Features (Technical Report CMU-CS-91-132)". Carnegie Mellon University School of Computer Science. https://cecas.clemson.edu/~stb/klt/tomasi-kanade-techreport-1991.pdf. Retrieved 2026-10-12.
  16. ↑ 16.0 16.1 Hans Moravec (1980-09). "Obstacle Avoidance and Navigation in the Real World by a Seeing Robot Rover". Carnegie Mellon University Robotics Institute. https://publications.ri.cmu.edu/obstacle-avoidance-and-navigation-in-the-real-world-by-a-seeing-robot-rover/. Retrieved 2026-10-12.
  17. ↑ 17.0 17.1 Jianbo Shi, Carlo Tomasi (1994). "Good Features to Track". Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR 1994), pp. 593-600. doi:10.1109/CVPR.1994.323794. https://doi.org/10.1109/CVPR.1994.323794. Retrieved 2026-10-12.
  18. ↑ 18.0 18.1 David G. Lowe (1999). "Object recognition from local scale-invariant features". Proceedings of the Seventh IEEE International Conference on Computer Vision, vol. 2, pp. 1150-1157. doi:10.1109/ICCV.1999.790410. https://doi.org/10.1109/ICCV.1999.790410. Retrieved 2026-10-12.
  19. ↑ 19.0 19.1 Daniel DeTone, Tomasz Malisiewicz, Andrew Rabinovich (2018-06). "SuperPoint: Self-Supervised Interest Point Detection and Description". 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW). doi:10.1109/CVPRW.2018.00060. https://doi.org/10.1109/CVPRW.2018.00060. Retrieved 2026-10-12.
  20. ↑ "Shi-Tomasi Corner Detector & Good Features to Track". OpenCV documentation (source). OpenCV. https://github.com/opencv/opencv/blob/4.x/doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.markdown. Retrieved 2026-10-12.
  21. ↑ Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool (2008-06). "Speeded-Up Robust Features (SURF)". Computer Vision and Image Understanding, vol. 110, no. 3, pp. 346-359. doi:10.1016/j.cviu.2007.09.014. https://doi.org/10.1016/j.cviu.2007.09.014. Retrieved 2026-10-12.
  22. ↑ Edward Rosten, Reid Porter, Tom Drummond (2010-01). "Faster and Better: A Machine Learning Approach to Corner Detection". IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 32, no. 1, pp. 105-119. doi:10.1109/TPAMI.2008.275. https://doi.org/10.1109/TPAMI.2008.275. Retrieved 2026-10-12.
  23. ↑ "ORB (Oriented FAST and Rotated BRIEF)". OpenCV documentation (source). OpenCV. https://github.com/opencv/opencv/blob/4.x/doc/py_tutorials/py_feature2d/py_orb/py_orb.markdown. Retrieved 2026-10-12.
  24. ↑ 24.0 24.1 Raúl Mur-Artal, J. M. M. Montiel, Juan D. Tardós (2015-10). "ORB-SLAM: A Versatile and Accurate Monocular SLAM System". IEEE Transactions on Robotics, vol. 31, no. 5, pp. 1147-1163. doi:10.1109/TRO.2015.2463671. https://doi.org/10.1109/TRO.2015.2463671. Retrieved 2026-10-12.
  25. ↑ Daniel DeTone, Tomasz Malisiewicz, Andrew Rabinovich (2017-12-20). "SuperPoint: Self-Supervised Interest Point Detection and Description". arXiv. arXiv:1712.07629. https://arxiv.org/abs/1712.07629. Retrieved 2026-10-12.
  26. ↑ Paul-Edouard Sarlin, Daniel DeTone, Tomasz Malisiewicz, Andrew Rabinovich (2020-06). "SuperGlue: Learning Feature Matching With Graph Neural Networks". 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pp. 4937-4946. doi:10.1109/CVPR42600.2020.00499. https://doi.org/10.1109/CVPR42600.2020.00499. Retrieved 2026-10-12.
  27. ↑ Philipp Lindenberger, Paul-Edouard Sarlin, Marc Pollefeys (2023-10). "LightGlue: Local Feature Matching at Light Speed". 2023 IEEE/CVF International Conference on Computer Vision (ICCV), pp. 17581-17592. doi:10.1109/ICCV51070.2023.01616. https://doi.org/10.1109/ICCV51070.2023.01616. Retrieved 2026-10-12.
  28. ↑ "US6711293B1 - Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image". Google Patents. https://patents.google.com/patent/US6711293B1/en. Retrieved 2026-10-12.
  29. ↑ "OpenCV Change Logs v2.2 to v4.10". OpenCV wiki, GitHub. OpenCV. https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs-v2.2%E2%80%90v4.10. Retrieved 2026-10-12.
  30. ↑ "OpenCV 4.4.0". GitHub. OpenCV. 2020-07-18. https://github.com/opencv/opencv/releases/tag/4.4.0. Retrieved 2026-10-12.
  31. ↑ Andrew J. Davison, Ian D. Reid, Nicholas D. Molton, Olivier Stasse (2007-06). "MonoSLAM: Real-Time Single Camera SLAM". IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 29, no. 6, pp. 1052-1067. doi:10.1109/TPAMI.2007.1049. https://doi.org/10.1109/TPAMI.2007.1049. Retrieved 2026-10-12.
  32. ↑ Georg Klein, David Murray (2007-11). "Parallel Tracking and Mapping for Small AR Workspaces". 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality, pp. 1-10. doi:10.1109/ISMAR.2007.4538852. https://doi.org/10.1109/ISMAR.2007.4538852. Retrieved 2026-10-12.
  33. ↑ "rawFeaturePoints". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/arframe/rawfeaturepoints. Retrieved 2026-10-12.
  34. ↑ Daniel Wagner, Gerhard Reitmayr, Alessandro Mulloni, Tom Drummond, Dieter Schmalstieg (2008-09). "Pose tracking from natural features on mobile phones". 2008 7th IEEE/ACM International Symposium on Mixed and Augmented Reality, pp. 125-134. doi:10.1109/ISMAR.2008.4637338. https://doi.org/10.1109/ISMAR.2008.4637338. Retrieved 2026-10-12.
  35. ↑ "Best Practices for Designing and Developing Image-Based Targets". Vuforia Engine Library. PTC. https://developer.vuforia.com/library/vuforia-engine/images-and-objects/image-targets/best-practices/best-practices-designing-and-developing-image-based-targets/. Retrieved 2026-10-12.
  36. ↑ 36.0 36.1 Dorian Gálvez-López, Juan D. Tardós (2012-10). "Bags of Binary Words for Fast Place Recognition in Image Sequences". IEEE Transactions on Robotics, vol. 28, no. 5, pp. 1188-1197. doi:10.1109/TRO.2012.2197158. https://doi.org/10.1109/TRO.2012.2197158. Retrieved 2026-10-12.