Reverse Image & Video Search — ORB

Upload a reference file and select a folder to search for similar images and videos using ORB feature matching. Detects rotated, cropped, and perspective‑warped copies.

Step 1 — Select Reference File

Choose a single image or video file to use as reference. OpenCV.js will compute its keypoint descriptors.

Step 2 — Select Folder to Search

Select a folder containing images/videos to search.

Ready
0 items

🎯 How ORB Reverse Image & Video Search Works — Complete Guide

Upload one reference image or video and Sakarto scans a folder to find everything visually similar to it using OpenCV ORB feature matching. Finds rotated, cropped, and perspective‑distorted copies that no hash‑based algorithm can detect. The reference card is always pinned first and protected from move or delete.

100% Private — Your Files Never Leave Your Computer All feature extraction and matching runs locally via OpenCV.js in your browser. No uploads, no accounts, no tracking.

🔁 What Is ORB Reverse Image & Video Search?

ORB Reverse Search lets you pick one image or video as your reference and find every similar file in a folder — including copies that have been rotated, mirrored, photographed at an angle, or cropped to a different size. This is the capability that sets ORB apart from every other algorithm in Sakarto.

Rather than comparing whole‑image fingerprints like hash‑based algorithms do, ORB detects hundreds of individual distinctive points in your reference and searches for those same points in each folder file. If enough points are found in the same spatial arrangement (even after rotation or perspective change), the files are considered a match. The reference card is always pinned at position 0 with a blue REFERENCE badge and cannot be moved or deleted.

Rotation Invariant

Finds copies at any rotation angle. Each feature descriptor is computed relative to its own local orientation, not the image's upright direction.

Crop & Perspective Tolerant

Matches on shared feature points, not the whole image. A cropped or perspective‑distorted copy can still match if it shares enough keypoints with the reference.

Video Support

Videos are supported as both reference and folder files. Sakarto extracts the middle frame of each video for ORB feature matching.

Live Results

Each match appears as a card the moment it's found — no waiting for the full folder to finish scanning before you can start reviewing.

ORB is slower than hash‑based reverse search. Feature extraction and matching is computationally heavier than hashing. Use ORB specifically when you need rotation, crop, or perspective tolerance. For standard photo collections, aHash or dHash reverse search will be much faster.

🧠 How the ORB Algorithm Works

Both the reference and each folder file go through the same ORB pipeline. In reverse search, each folder file is compared only against the reference — not against each other — which makes it significantly faster than the folder duplicate finder for large collections.

  1. Load OpenCV.js

    OpenCV.js is a WebAssembly‑compiled version of OpenCV running entirely in your browser. It loads once when the page opens and is cached for subsequent visits. The reference file selector and folder search are unavailable until loading completes.

  2. Extract Reference Features Immediately

    When you select your reference image or video, Sakarto immediately runs ORB feature detection on it. For images, the full image is processed. For videos, the middle frame is extracted and used. A thumbnail preview appears and the reference descriptors are ready to be matched against folder files.

  3. Extract Folder File Features

    For each image in the scanned folder, the same ORB pipeline runs: convert to grayscale at 320×320, detect Oriented FAST keypoints, compute Rotated BRIEF descriptors. For video files, the middle frame is extracted and processed the same way. In Fast Mode, JPEG files use their embedded EXIF thumbnail.

  4. Match Descriptors Against the Reference

    The folder file's descriptors are matched against the reference descriptors using a brute‑force Hamming distance matcher. For each reference keypoint, the closest match in the folder file is found. A match is counted as “good” if the Hamming distance is 40 or less.

  5. Count Good Matches & Compare to Threshold

    The number of good matches is compared to the similarity threshold. If the count meets or exceeds the threshold, the folder file is shown as a match. The reference card is always rendered first; matches appear live as they're found.

  6. Re‑Search on Threshold Change

    If you adjust the slider, the search re‑runs against all already‑computed descriptors in a background Web Worker after 3 seconds — no re‑scanning needed. Results update progressively. The reference card always stays pinned at position 0.

O(n), not O(n²). In the folder duplicate finder, every file is compared against every other file. In reverse search, each folder file is compared only against the reference. This is much faster for large folders and results are sorted by relevance to your specific reference file.

🎚️ The Similarity Threshold Slider

The Similarity Threshold slider controls the minimum number of good feature matches required between a folder file and the reference for it to appear in results. Unlike all hash‑based algorithms in Sakarto where a lower threshold is stricter, ORB's threshold works the other way: a higher value is stricter.

High values — Very strict (fewer, more confident matches)

Many matching features required. Only near‑identical files or very lightly transformed copies will meet this bar. Useful for large, feature‑rich references where hundreds of matches are expected for true duplicates.

Medium values — Balanced (default)

Requires a meaningful number of consistently matching features. Catches rotated copies, scanned documents photographed at angles, and perspective‑distorted versions. Good starting point for most ORB reverse searches.

Low values — Loose (more results, more false positives)

Only a few matching features required. Catches heavily cropped copies where many original keypoints are out of frame. More false positives from unrelated files that share common visual elements.

Higher = stricter for ORB. This is the opposite of all hash‑based algorithms where lower = stricter. ORB measures the count of good matches (more = more similar), while hash algorithms measure distance (less = more similar).

✅ What It Finds — and What It Might Miss

✅ Finds Well
  • Rotated copies of the reference (any angle)
  • Mirrored copies of the reference
  • Significantly cropped versions sharing content with the reference
  • Scanned documents that are photographed versions of the reference
  • Perspective‑distorted versions (photographed from an angle)
  • Re‑saved copies at different quality levels
  • Copies with minor brightness or contrast adjustments
  • Video files — middle frame extracted for matching
⚠️ May Struggle With
  • References with very few features (plain backgrounds, sky, gradients)
  • Heavily blurred copies (destroys keypoints)
  • Extremely low‑quality or tiny versions of the reference
  • Copies with aggressive filters that change edge structure fundamentally
  • Cartoon or line‑art references with few high‑contrast points
  • Videos where the middle frame is dark or low‑contrast (few keypoints)
For standard photo copies (same orientation, just resized or re‑compressed), dHash or aHash reverse search will find them much faster. Use ORB when you specifically need rotation, perspective, or crop tolerance — that's where it has no equal among the algorithms in Sakarto.

📋 Step‑by‑Step: How to Use ORB Reverse Search

Step 1

Wait for OpenCV.js to Load

OpenCV.js loads in the background when the page opens. The reference file selector is available immediately but waits up to 10 seconds with a toast if you click before it's ready. It's cached after the first visit so subsequent loads are instant.

Step 2

Select Your Reference File

Click Choose Reference File. Pick any image or video from your computer — it does not need to be inside the folder you're about to scan. Sakarto immediately extracts ORB features from it and shows a thumbnail preview.

Supported formats: JPEG, PNG, GIF, WebP, BMP (images) and MP4, WebM, MOV (videos). For videos, the middle frame is extracted and used as the reference. Files over 40 MB are not supported.

Step 3

Select the Folder to Search

Once your reference features are extracted, click Choose Folder to Search. A native folder picker opens (Chrome / Edge), or drag and drop a folder onto the page. If your reference is inside the scanned folder, Sakarto automatically skips it.

ORB is slower than hash‑based search. For very large folders consider scanning a targeted subfolder. Results appear live so you can start reviewing immediately.
Step 4

Start the Search

Click 🔍 Start Search. The reference card appears immediately at position 0 with a blue REFERENCE badge. Matches appear live as the scan progresses. Images are processed in the background even when you switch tabs. Video processing pauses when you leave the tab and resumes automatically when you return.

Step 5

Adjust the Threshold if Needed

Use the Similarity Threshold slider to tune how many matching features are required. Remember: higher is stricter for ORB. The slider debounces for 3 seconds then re‑searches using already‑computed descriptors in a background Worker — no re‑scan needed.

Too many unrelated files showing up? Raise the threshold. Missing a known rotated copy? Lower it, or check that both files have enough visual features.

Step 6

Review the Results

The reference card is pinned at position 0. All matched folder files follow. Rotated or cropped matches may look less obviously related at thumbnail size — always use preview and compare before acting:

  • Click a match card to select it (blue border)
  • Ctrl+Click the reference + a match, then click ⚖️ Compare to see them side‑by‑side with similarity info
  • Click the 🔍 icon on hover to preview full size
  • Right‑click any card for context menu (Move/Delete are disabled for the reference card)
  • Drag on empty space in the results area to box‑select multiple cards
Step 7

Act on Matches — Move or Delete

Select match cards and use the toolbar with Queue Mode on (recommended). The reference card is always excluded from file operations.

📋 CopyCopy filename(s) to clipboard
📂 MoveStage for move to a named subfolder
🗑️ DeleteStage for permanent deletion
⚖️ CompareView files side‑by‑side
Step 8

How the Reference File is Protected

The reference card is protected throughout the session. Move and Delete are silently blocked if you include the reference in a selection. The context menu grays out Move and Delete for the reference card. In the Compare modal, the reference shows only a Copy button. This is permanent and cannot be overridden.

🏛️ Quick Reference — All Controls

All toolbar buttons, checkboxes, and keyboard shortcuts for ORB reverse search
Button / ActionWhat it does
Choose Reference FileSelect the image or video to search for. Features are extracted immediately on selection. For videos, the middle frame is used.
Choose Folder to SearchSelect the folder to scan. Activates after reference features are extracted.
🔍 Start SearchBegin scanning. Reference card appears immediately; matches render live.
🔄 New SearchReload the page and start fresh with a new reference file
📋 Copy (N)Copy selected filenames to clipboard
📂 Move (N)Move match files or stage in Move Queue (reference excluded)
🗑️ Delete (N)Delete match files or stage in Delete Queue (reference excluded)
✕ Deselect AllRemove selection from all cards
⚖️ Compare (N)Open compare modal for Ctrl+clicked files. Needs 2+.
Queue Mode checkboxStage files for review before executing. Strongly recommended for ORB results.
Fast Mode checkboxUse EXIF thumbnails for JPEG files — faster with minimal accuracy difference.
Similarity Threshold sliderMinimum good feature matches required. Higher = stricter (opposite of hash algorithms). Debounces 3s then re‑searches.
Click match cardSelect / deselect (blue border)
Ctrl + Click cardsAdd to compare list (purple border). Works on reference card too.
Drag in results areaBox‑select multiple cards. Only activates in the results area to avoid text selection issues.
Right‑click cardContext menu. Move & Delete are disabled on the reference card.
🔍 hover iconOpen full‑size preview. Reference card shows “REFERENCE FILE” label.
🔇 Videos buttonToggle mute/unmute on all video cards

⭐ What Users Say

Based on 98 reviews

"ORB reverse search found rotated and cropped copies that every hash algorithm missed completely. I had dozens of photos scanned from different angles and it grouped them all perfectly. The reference protection saved me from accidentally deleting the original."

"I photograph documents and often have the same page at different angles. ORB is the only tool that reliably matches them. The OpenCV.js implementation runs smoothly in the browser."

"Takes longer to run than the hash algorithms, but for rotated images it's unbeatable. The threshold slider took a minute to understand (higher = stricter), but once I got it, the results were excellent."

"I had a scanned document collection where many pages were photographed at slight angles. ORB matched them all to the flat scans. No other tool even came close. A must‑have for anyone dealing with scanned and photographed documents."

💡 Tips for Best Results

Back Up First

Always back up before deleting. Deletions bypass the recycle bin permanently.

Choose a Feature‑Rich Reference

Pick a version with plenty of texture, edges, and detail. A well‑lit photo of an object or scene will produce many reliable keypoints. For videos, a clip with a clear, well‑lit scene works best.

ORB is Your Rotation Specialist

Use ORB when you need to find rotated, mirrored, or photographed‑from‑an‑angle copies. For all other cases, a hash‑based reverse search will be much faster.

Use a Targeted Folder

ORB is significantly slower than hash algorithms. Scan a specific subfolder of candidates rather than your entire library.

Always Compare Rotated Matches

Ctrl+Click the reference and a match, then click Compare to see them side‑by‑side. Rotated copies can look unrelated at thumbnail size but identical at full size.

Video Tips

For video references and folder videos, the middle frame is used for matching. If matches are missed, the video may have a dark or featureless middle section — try a different hash algorithm for those videos.

⚠️ Known Limitations

Significantly slower than hash‑based reverse search.

ORB requires full feature extraction for every folder file plus descriptor matching against the reference. For large folders this can take several minutes. Scan targeted subfolders and use hash‑based search for initial filtering.

Video matching uses a single middle frame.

For both the reference video and folder videos, Sakarto extracts the middle frame and runs ORB on it. If that frame is dark, blurry, or low‑contrast, matching may be unreliable. A hash‑based algorithm (aHash, dHash) may work better for low‑quality video files since they average multiple frames.

Feature‑sparse references produce unreliable results.

If the reference is mostly plain background, sky, or uniform texture, ORB will detect very few keypoints and matching will produce noise rather than meaningful similarity scores.

OpenCV.js must load before searching can start.

Set it up once: cp node_modules/opencv.js/opencv.js public/opencv.js. It is then cached by the browser for all subsequent visits.

No undo for file deletion.

The File System Access API bypasses the OS recycle bin. Use Queue Mode to review before executing. Preview all matches, especially rotated or cropped ones, before deleting.

Move and Delete require Chrome or Edge.

The File System Access API is available only in Chrome 86+ and Edge 86+. Firefox and Safari can run ORB searches and display results but cannot move or delete files.

🔒 Privacy & Security

Zero network activity after page load. All feature extraction and matching runs locally. No image or video data is ever sent anywhere.
No accounts, no cookies, no analytics. The only localStorage data saved is your checkbox preferences.
Folder access is scoped and session‑only. Permission lasts only while the tab is open and is revocable from browser site settings.
OpenCV runs entirely client‑side. The WebAssembly module processes files locally. No pixel data, keypoints, or descriptors reach any server at any point.

❓ Frequently Asked Questions

Why use ORB reverse search instead of aHash, dHash, or pHash?
All hash algorithms encode the image as a fixed‑size grid. Rotate the image and every cell in the grid shifts — the resulting hash is completely different and the match is lost, regardless of threshold. ORB takes a fundamentally different approach: it finds up to 500 individual visual landmarks (corners, blobs, edges) in your reference image, computes an orientation‑normalised 32‑byte descriptor for each, then searches for those same descriptors in each folder file. A rotated copy has the same keypoints in different positions, but each descriptor is still recognisable. ORB is the only algorithm in Sakarto that handles rotation, mirroring, and perspective distortion. Use it specifically for those cases — for standard unrotated copies, any hash algorithm will be much faster.
Why is the ORB threshold “higher = stricter” when all other algorithms are “lower = stricter”?
Hash algorithms measure Hamming distance (the count of differing bits between two fingerprints) — lower distance means more similar, so lower threshold = stricter. ORB measures the count of good keypoint matches between reference and folder file — more matches means more similar, so a higher required count = stricter. For example, a threshold of 30 means “only show this file if at least 30 good keypoint matches were found between it and the reference.” Raise the threshold if you're getting too many unrelated results; lower it if genuine rotated copies aren't appearing.
Does ORB support video files as reference or folder files?
Yes. Both the reference and folder files can be videos. Sakarto extracts the middle frame from each video file and runs ORB keypoint detection on that single frame. The rest of the pipeline is identical to images: reference keypoints are matched against folder file keypoints using Hamming distance plus Lowe's ratio test. Video result cards show a 🎬 VIDEO badge. Important caveat: ORB uses only one frame per video, so if the middle frame of a video is dark, blurred, or a scene transition, matching will be less reliable. For videos, hash algorithms that average multiple frames (aHash, pHash, wHash) may give more consistent results.
Does my reference file need to be inside the folder I'm scanning?
No — select it from anywhere on your computer. If it also lives inside the scanned folder, Sakarto detects and skips it automatically using filename, file size, and last‑modified timestamp. The reference card is always pinned at position 0 with a blue REFERENCE badge and is fully protected from deletion.
A rotated or cropped copy of my reference isn't appearing. What should I try?
First, lower the threshold to accept fewer matching keypoints as sufficient evidence. Second, check the visual content of both files: ORB needs corners, blobs, and textured regions to detect reliable keypoints. Images with large flat or uniform areas (solid sky, plain backgrounds, white walls) produce very few keypoints, leaving little for the algorithm to match. If both the reference and the copy are low in visual texture, ORB will struggle regardless of threshold. Third, check that both files have similar aspect ratios — pairs differing by more than 10% are excluded by the pre‑check. Fourth, check for very heavy compression on the copy: BRIEF descriptors are computed from local pixel patterns and severe blur or compression artifacts can destroy the patterns around keypoints.
What is Lowe's ratio test and why does ORB use it?
When matching a keypoint from the reference against all keypoints in a folder file, the best match is the descriptor with the lowest Hamming distance. Lowe's ratio test compares the best match distance to the second‑best match distance. If the two are too similar (the ratio exceeds 0.75), the keypoint appears ambiguous — it matches multiple regions in the folder file equally well — and is rejected. Only keypoints where the best match is clearly better than all alternatives are accepted as “good matches.” This dramatically reduces false keypoint pairings and is the reason ORB can reliably find rotated images without producing noise‑level false positives.
Why is ORB reverse search much slower than hash‑based reverse search?
Hash algorithms produce one compact hash (64 bits or 256 bits) per file and compare it against the reference hash in a single XOR+popcount operation taking nanoseconds. ORB produces up to 500 32‑byte descriptors per file and must match each one against all reference descriptors using Hamming distance — orders of magnitude more computation per file. Additionally, OpenCV.js is loaded as a WebAssembly module (~2‑5s on first use), and keypoint detection itself is more CPU‑intensive than a simple downscale. For large folders, consider running a fast hash algorithm first to eliminate obvious non‑rotated duplicates, then use ORB on a smaller subset.
Can I recover files after deleting them?
No. The File System Access API's remove() method permanently deletes files without going through the OS Recycle Bin or Trash. The reference file is fully protected and can never be deleted regardless. For ORB results specifically, always use the Compare modal to visually verify matches before acting — ORB can occasionally match visually distinct images that share strong repeated textures or similar architectural elements. Move to a subfolder rather than Delete if you have any doubt.
Does this work on Firefox or Safari?
OpenCV.js loads and runs correctly in Firefox and Safari, so keypoint detection, matching, result display, and the Compare modal all work. Move and Delete are the exception — they require the File System Access API (Chrome 86+ and Edge 86+ only). In other browsers, complete the search and use Download List to export a report for manual file management.