-
-
The place gives the memory back. Real iPhone capture; the thumbnail appears only after OpenCV recognizes the scene.
-
Live camera and recalled photograph from one real-device session; matching runs locally with OpenCV 5.
-
Person A shares; Person B opens the link and reveals the same photo only when their camera matches the scene.
-
Private by default: recall stays on-device; AWS validates and temporarily delivers only explicitly shared pairs.
-
Score-blinded owner review: 21/24 same-scene pairs accepted both ways; 3/24 missed; 0/16 different-scene pairs accepted.
Inspiration
A photo library remembers when an image was taken. It rarely remembers what it felt like to stand there.
Recalllens began with a simple question: what if the physical world itself could become the interface to a memory? Instead of searching a grid, typing a date, or opening a map, you return your camera to a familiar view. When the scene aligns, the photograph returns.
The goal is deliberate recall: fewer photos competing for attention, and a stronger connection between an image and the place that gave it meaning.
What it does
Capture a photograph in Recalllens and save it privately. Later, point the camera at the same scene. OpenCV compares the live view with the local archive, and a small preview appears only when the scene matches. Open it to see every photograph currently associated with that view.
Sharing keeps the same interaction. Tap Share, send the generated link, and the recipient gets a simple receipt—without a photo preview. The image is revealed inside Recalllens when their camera finds the corresponding scene. The link delivers the memory; the place reveals it.
No account, social graph, message thread, Photos permission, or location permission is required.
How we built it
Recalllens is a SwiftUI iOS application with an Objective-C++ OpenCV bridge. OpenCV 5.0.0 extracts up to 1,600 ORB features, performs Hamming KNN matching with a 0.75 ratio test, and estimates a homography with RANSAC. The final score combines inlier ratio, support, and spatial coverage. Temporal smoothing and hysteresis keep the camera interface stable.
Each sampled live frame is compared with every compatible saved record. Records are sorted by the full geometric score, and the top five are passed to the temporal stabilizer. There is currently no separate approximate-retrieval stage. The 0.62 production threshold was frozen before the owner labels below were analyzed; the temporal values are engineering settings rather than results of a prospective video study.
Every normal capture, JPEG, feature signature, and live comparison stays on the iPhone. Ordinary use makes no AWS request.
AWS has one explicit role: account-free sharing. Share uploads a downscaled, EXIF-free JPEG with its ORB signature. An arm64 Lambda running OpenCV 5 re-extracts features and rejects a mismatched image-signature pair. A validated pair is stored in private encrypted S3 for 30 days. The recipient downloads it once, after which matching works locally and offline. There is no DynamoDB registry and no live-camera upload.
Why it matters
Recalllens turns retrieval into a physical interaction. The same idea can support personal memories, place-bound field notes, maintenance history, exhibitions, or site documentation—situations where where you are looking is more meaningful than a filename.
The privacy boundary is visible in the product: normal recall is local, and cloud transfer happens only after the user presses Share.
Challenges
The hardest problem was not finding descriptors; it was deciding when two views are similar enough to feel intentional and different enough to avoid surprising reveals. We combined local features with geometric verification, then added temporal stabilization so the interface would not flicker near the threshold.
Sharing introduced a second boundary: AWS needed to validate and deliver a pair without becoming a permanent photo library or receiving ordinary camera frames.
Evaluation
The primary evaluation used score-blinded labeling by the photograph owner. The offline tool hid matcher scores, previous labels, candidate-source metadata, and filenames. One byte-identical control was excluded from the main counts. On the remaining 40 selected, non-identical pairs:
- 21/24 same-scene pairs were accepted in both directions.
- 3/24 same-scene pairs were missed in both directions.
- 0/16 different-scene pairs were accepted in either direction.
These pairs are a similarity-mined, dependent sample with shared photographs and one owner-reviewer. The counts describe this selected set; they are not population error-rate estimates. A post-hoc threshold check produced the same pair-level result from 0.55 through 0.70 around the frozen production threshold of 0.62. This checks local stability but is not independent calibration.
A descriptor-support ablation accepted 45/48 positive directions, compared with 42/48 for geometry; both accepted 0/32 negative directions in this set. The study therefore did not demonstrate a specificity advantage from RANSAC at the current operating point. Fixed synthetic transformations and earlier AI-assisted labels remain supporting engineering checks rather than primary accuracy evidence.
Large viewpoint and scale changes remain visible failure modes. Full candidate-selection disclosure, raw counts, failures, score plots, sensitivity analysis, and correspondence examples are included in the attached technical report and judge package.
What we learned
The selected human-reviewed set did not show a rejection benefit from geometry at the current threshold. It did show that difficult natural viewpoint changes are more informative than fixed image transformations. The best next product improvement is therefore clearer capture guidance and coverage of multiple viewpoints, followed by a prospective session-level video study rather than retuning on these 40 pairs.
Responsible use
Recalllens recognizes visual correspondence, not identity or geographic presence. It is not access control, surveillance, or proof that someone visited a location. Bearer links grant access to shared bytes before expiry, and the current shared upload token is a competition-demo mechanism rather than production authentication.
What's next
Next steps are prospective multi-user evaluation, human validation of broader labels, viewpoint-aware capture guidance, indexed local retrieval for larger archives, and user-scoped protection for cloud sharing.
Technologies
SwiftUI, Objective-C++, OpenCV 5.0.0, ORB, Hamming KNN, RANSAC homography, AWS Lambda arm64, API Gateway, private S3, CloudWatch, AWS SAM, Python, and Jupyter.
Built With
- amazon-api-gateway
- amazon-web-services
- aws-lambda
- aws-sam
- jupyter
- objective-c++
- opencv-5
- orb
- python
- ransac
- s3
- swiftui