Initial thoughts

This commit is contained in:
2025-04-05 17:08:03 +02:00
parent ff4d962168
commit eee3f614fa
13 changed files with 13829 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
ORB is a Key Point detector and a descriptor (FAST, BRIEF). Basically, an algorithm that will select which points of the image is what it considers as a Key Point, and then give descriptions using vector.
Basically, just a very quick way of converting an image to a high-dimensional feature vector. And without using AI.
OpenCV already has ORB implementation built in, it even has GPU acceleration (provided that you compile OpenCV yourself, official binary distribution of OpenCV from their official site and PyPi does not have CUDA support).
But, the built-in implementation of OpenCV ORB might present a problem, since all the "Descriptors" and "Key Points" that OpenCV ORB extracts are extremely close together. And if we are focusing on extracting local features from any image, it has to be even, so every local feature can be taken into account.
> ORB_SLAM3 - 解决了传统 ORB 算法中存在的特征点过于集中的问题
> (ORB_SLAM3 - Solves the issue of traditional ORB algorithm extracting feature vectors that are too closely together)
> [- GitHub:lolishinshi/imsearch](https://github.com/lolishinshi/imsearch)
ORB_SLAM3 is another project from the University of Zaragoza, which focuses on SLAM algorithm ([Simultaneous localization and mapping](https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping)). In this case, we will be using its ORB algorithm for our image-reverse search purposes. We can see the differences between the Key Points extracted from OpenCV and ORB_SLAM3:
Here's OpenCV ORB (1024 features/Key Points)
![[source_keypoints_opencvorb.jpg]]
Here's ORB_SLAM3
![[source_keypoints_slamorb3.jpg]]
You can clearly see that the Key Point distribution of ORB_SLAM3 is much more even, and distributes consistently through out the entire image. While OpenCV will center around specific features of the image.