summaryrefslogtreecommitdiff
path: root/docs/specifications.md
blob: 6840a8d11dce435966c71c25edb48832b25c9b8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# 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
}
```
 			 

Example response for a successful image upload with a match, within the standard similarity threshold:

`check.vframe.io/v1/match/`

```
{
  "success": True,
  "match": True,
  "closest_match": {
	"sha256: "eadc688cd557ee351fa9b718e87a6e8dfb9c9fce69e9944c71c0f58f8b972632",
	"score": 0
  }
}
"
```

Get match, but with more permissive threshold

`check.vframe.io/v1/match/?threshold=10`

```
{
  "success": True,
  "match": True,
  "closest_match": {
    "sha256: "eadc688cd557ee351fa9b718e87a6e8dfb9c9fce69e9944c71c0f58f8b972632",
    "score": 7
  },
}
```