diff options
| author | Adam Harvey <adam@ahprojects.com> | 2019-04-13 12:04:16 +0200 |
|---|---|---|
| committer | Adam Harvey <adam@ahprojects.com> | 2019-04-13 12:04:16 +0200 |
| commit | 7bb209f90be3b844522a11472539556d98b714b0 (patch) | |
| tree | 7a00d84e9f0817af2ae7432a430cd8d6d7f7d2da /docs/specifications.md | |
| parent | 5cd091641f097b138cc03c88da6978763edb9740 (diff) | |
init
Diffstat (limited to 'docs/specifications.md')
| -rw-r--r-- | docs/specifications.md | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/docs/specifications.md b/docs/specifications.md new file mode 100644 index 0000000..ec5c81f --- /dev/null +++ b/docs/specifications.md @@ -0,0 +1,119 @@ +# Check Image Deduplication API + +- Draft April 13, 2019 +- Specs from "VFRAME - SHARED Image Matching - Checkpoint Spec 2019APR.odt" + + +The VFRAME/Check image deduplication API will provide capabilities to determine if a query image matches any of prior submitted query images. + +Functional Requirements: + +- provide matching results for at least 10,000 image requests submitted per day +- provide scalable capacity for sustained usage of at least one year +- provide an authenticated API service to match a query image to all previously submitted query images and receive a match result + + +## Use Case Scenario + +User story: +- Audience member sends image to a number on WhatsApp (or generically, user adds an image to Check). - Handled by Smooch. + • Image is ingested into Check. - Handled by Smooch & Check. + • Image is matched against existing images in Check. + ◦ MVP: + ▪ detect near-identical matches that are different sizes, resolutions. + ◦ Assess for feasibility: + ▪ find same meme images used for different claims + ▪ find same claims using different meme images + ▪ find same images (not memes) with different text + ▪ find same images + text in different physical files + • Image is automatically related to any matching images in Check. + • Analyst can confirm matches and dissociate any false matches. - Handled in Check + • Audience member receives the verification result for any matching images with existing final-status. - Handled in Check, Smooch, and WA Business API + + +## Out of Scope + +- Video matching +- Machine vision or content analysis +- Indian-language OCR (though OCR models/ libraries should be easily integrated) +- User-in-the-loop machine learning for improvement of matching algorithms + + + +## Example Requests + +Example response for a successful image upload with no match: + +`check.vframe.io/v1/match/` + +``` +{ + "success": True, + "match": False, + "closest_matches": + [ + { + "sha256: "cf80cd8aed482d5d1527d7dc72fceff84e6326592848447d2dc0b0e87dfc9a90", + "score": 2 + }, + { + "sha256: "156350ca18fa04545c4192432860c7efe9ddba18ea6e40e4da81bb7097a7166f", + "score": 3 + } + ] +" +``` + + +Example response for a successful image upload with a match: + +`check.vframe.io/v1/match/` + +``` +{ + "success": True, + "match": True, + "match": + { + "sha256: "eadc688cd557ee351fa9b718e87a6e8dfb9c9fce69e9944c71c0f58f8b972632", + "score": 0 + }, + "close_matches": + [ + { + "sha256: "cf80cd8aed482d5d1527d7dc72fceff84e6326592848447d2dc0b0e87dfc9a90", + "score": 2 + }, + { + "sha256: "156350ca18fa04545c4192432860c7efe9ddba18ea6e40e4da81bb7097a7166f", + "score": 2 + } + ] +" +``` + +Get match, but with more permissive threshold + +`check.vframe.io/v1/match/threshold/3/` + +``` +{ + "success": True, + "match": True, + "matches": + { + "sha256: "eadc688cd557ee351fa9b718e87a6e8dfb9c9fce69e9944c71c0f58f8b972632", + "score": 0 + }, + "closest_matches": + [ + { + "sha256: "cf80cd8aed482d5d1527d7dc72fceff84e6326592848447d2dc0b0e87dfc9a90", + "score": 3 + }, + { + "sha256: "156350ca18fa04545c4192432860c7efe9ddba18ea6e40e4da81bb7097a7166f", + "score": 3 + } + ] +"
\ No newline at end of file |
