Skip to content

Commit ecfc145

Browse files
Update README.md
1 parent 8987fc5 commit ecfc145

File tree

1 file changed

+148
-39
lines changed

1 file changed

+148
-39
lines changed

README.md

Lines changed: 148 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
<img class="img-fluid" align="center" src="https://raw.githubusercontent.com/ExtrieveTechnologies/QuickCapture/main/img/QuickCapture.png" width="30%" alt="img-verification"><img align="right" class="img-fluid" padding="10px" src="https://raw.githubusercontent.com/ExtrieveTechnologies/QuickCapture/main/img/android.png" alt="img-verification">
23
<!-- <a align="center" href='https://play.google.com/store/apps/details?id=com.extrieve.exScan&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1' title="Click to download android app" target="_blank" rel="noopener noreferrer"><img align="center" width="150px" alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'/></a> -->
34

@@ -6,44 +7,28 @@
67
QuickCapture Mobile Scanning SDK Specially designed for native ANDROID from [Extrieve](https://www.extrieve.com/).
78

89
> It's not "**just**" a scanning SDK. It's a "**document**"
9-
> scanning/capture SDK evolved with **Best Quality**, **Highest Possible Compression**, **Image Optimisation**, keeping output of the document in mind.
10+
scanning/capture SDK evolved with **Best Quality**, **Highest Possible Compression**, **Image Optimisation**, keeping output quality of the document in mind.
1011

1112
> Control **DPI**,**Layout** & **Size** of output images and can convert them into **PDF & TIFF**
1213
1314
> **QR code** & **BAR Code** Scanning & Generation
1415
1516
> **Developer-friendly** & **Easy to integrate** SDK.
1617
17-
> **Works entirely offline***, locally on the device, with **no data transferred to any server or third party**.
18+
> **Works entirely offline**, locally on the device, with **no data transferred to any server or third party**.
1819
1920
*For reduced build size if needed, an initial internet connection may optionally be required to fetch ML data or resource files, depending on the specific integration and features used by the consumer application*
2021

21-
*Choose the **right** version that suits your need* :
22-
- [**QuickCapture v4**](https://github.com/ExtrieveTechnologies/QuickCapture_Android): Comprehensive & advanced **AI** functionalities,**QR Code & BAR Code** Scanning & Generation.
23-
- [**QuickCapture v3**](https://github.com/ExtrieveTechnologies/QuickCapture_Android/tree/QuickCapture-V3#document-scanning-capture-sdk-android-v3): Comprehensive & advanced **AI** functionalities, **comparatively bit** larger size [~ **20 MB**].
24-
- [**QuickCapture v2**](https://github.com/ExtrieveTechnologies/QuickCapture_Android/tree/QuickCapture-V2#document-scanning-capture-sdk-android-v2): Optimized capture functionality, designed to be as compact as possible [~ **2 MB**].
25-
2622
> **End of support Notice** :
2723
> QuickCapture SDK Android **V1** deprecated by Dec. 2022.For any further updates and support, can use **V2**
2824
> which having no major modifications.But with improved funcionalities,feature additions and fixes.
2925
>
3026
> QuickCapture SDK Android **V2** deprecated by May. 2024.For any further updates and support, can use **V4** & bugfixes on **V3**
3127
32-
[Refer here for **V2 documentation** and samples](https://github.com/ExtrieveTechnologies/QuickCapture_Android/tree/QuickCapture-V2#mobile-document-scanning-sdk-android-v2)
33-
[Refer here for **V3 documentation** and samples](https://github.com/ExtrieveTechnologies/QuickCapture_Android/tree/QuickCapture-V2#mobile-document-scanning-sdk-android-v2)
34-
35-
### Other available platform options
36-
- [iOS](https://github.com/ExtrieveTechnologies/QuickCapture_IOS)
37-
- [Fultter Plugin](https://pub.dev/packages/quickcapture)
38-
- [React-Native Plugin](https://pub.dev/packages/quickcapture)
39-
- [Web SDK](https://github.com/ExtrieveTechnologies/QuickCapture_WEB)
40-
41-
4228
Access / Download
4329
--------
4430
You can use this SDK in any Android project simply by using Gradle :
45-
### Latest Release verion : 4.0.12
46-
*From v4 SDK will not support direct aar file linking - Use maven link instead*
31+
4732
```java
4833
//Add expack central repo in settings.gradle
4934
repositories {
@@ -55,7 +40,7 @@ repositories {
5540
//Then add implementation for SDK in dependencies in build.gradle (module:<yourmodulename>)
5641
dependencies {
5742
implementation 'com.extrieve.quickcapture:QCv4_PLUS:<SDK-VERSION>'
58-
// use latest verision : 4.0.12
43+
//latest version : 4.1.10
5944
}
6045
SDK-VERSION - Need to replace with the correct v4 series.
6146
```
@@ -78,8 +63,8 @@ Compatibility
7863
-------------
7964
* **JAVA 17 Support**: QuickCapture v4 requires JAVA version 17 support for the application.
8065
* **Minimum Android SDK**: QuickCapture v4 requires a minimum API level of 21.
81-
* **Target Android SDK**: QuickCapture v4 features supports **API 34**.
82-
* **Compiled SDK Version**: QuickCapture v4 compiled against **API 33**.Host application using this SDK should compiled against 33 or later
66+
* **Target Android SDK**: QuickCapture v4 features supports **API 35**.
67+
* **Compiled SDK Version**: QuickCapture v4 compiled against **API 34**.Host application using this SDK should compiled against 34 or later
8368

8469

8570
# API & integration Details
@@ -493,7 +478,7 @@ var ImageHelper: ImgHelper? = ImgHelper(this)
493478
//KOTLIN
494479
var thumb = ImageHelper!!.GetThumbnail(ImageBitmap, 600, 600, true);
495480
```
496-
- ***CompressToJPEG*** - *This method will Compress the provided bitmap image and will save to given path.\*
481+
- ***CompressToJPEG*** - *This method will Compress the provided bitmap image and will save to given path.*
497482
```java
498483
//JAVA
499484
Boolean Iscompressed = ImageHelper.CompressToJPEG(bitmap,outputFilePath);
@@ -506,20 +491,6 @@ var ImageHelper: ImgHelper? = ImgHelper(this)
506491
//KOTLIN
507492
var Iscompressed = ImageHelper!!.CompressToJPEG(bitmap, outputFilePath);
508493
```
509-
510-
- ***rotateBitmap*** - *This method will rotate the image to preferred orientation.*
511-
```java
512-
//JAVA
513-
Bitmap rotatedBm = ImageHelper.rotateBitmapDegree(nBm, RotationDegree);
514-
/*
515-
Bitmap rotateBitmapDegree(Bitmap bitmap,int Degree)
516-
throws ImgException
517-
*/
518-
```
519-
```kotlin
520-
//KOTLIN
521-
var thumb = ImageHelper!!.rotateBitmapDegree(bitmap, RotationDegree);
522-
```
523494
- **GetTiffForLastCapture** - Build Tiff output file from last captured set of images.
524495
```java
525496
//JAVA
@@ -572,6 +543,136 @@ var ImageHelper: ImgHelper? = ImgHelper(this)
572543
//KOTLIN
573544
var thumb = ImageHelper!!.BuildPDF(ImageCol,OutputTiffFilePath);
574545
```
546+
> **Recommended Settings:**
547+
> - ImageQuality: `documentQuality`
548+
> - DPI: `150` or `200`
549+
> - LayoutType: `A4`
550+
> - ResizeMode: `preserveAspectOnly`
551+
552+
## 4. HumanFaceHelper
553+
554+
QuickCapture SDK equipped with advanced face identification intelligence can accurately detect human faces within documents and match them precisely.**SDK needs to be activated using a proper license** with Config.License.Acivate(); for the plus features to initialise.
555+
556+
```java
557+
//JAVA
558+
HumanFaceHelper humanFaceObj = new HumanFaceHelper(this);
559+
```
560+
561+
```kotlin
562+
//Kotlin
563+
var humanFaceObj:HumanFaceHelper? = HumanFaceHelper(this)
564+
```
565+
566+
Following are the options/methods available from the class **HumanFaceHelper** :
567+
568+
- **DetectHumanFaces** \- DetectHumanFaces Method from \*\*humanFaceObj \*\* will Identify human faces from provided image and return the detected details. .
569+
570+
```java
571+
//DetectHumanFaces will use callback function to return the result.
572+
humanFaceObj.DetectHumanFaces(inputImage,detectHumanFacesCallBack);
573+
*@param : inputImage "input image in Bitmap".
574+
*@param : "A callback method to capture the detected human faces response".
575+
576+
function detectHumanFacesCallBack(resultJson) {
577+
//Process the resultJson
578+
}
579+
580+
//Or use lambda function
581+
humanFaceObj.DetectHumanFaces(inputImage,resultJson -> {
582+
//Detected response JSON
583+
});
584+
```
585+
586+
Following is a sample of response structure :
587+
588+
```json
589+
{
590+
STATUS: true/false,
591+
//Detection status
592+
DESCRIPTION : "SUCCESS",
593+
//Success or failure description
594+
DOC_ID : 0,
595+
//Identifier/index of the used document.
596+
FACE_DATA :[
597+
//Collection of identified face data
598+
{
599+
ID : 0,
600+
//Identifier/index of face.
601+
LEFT : 0,
602+
TOP : 0,
603+
RIGHT : 0,
604+
BOTTOM : 0
605+
//Each location of face in document
606+
}
607+
]
608+
}
609+
```
610+
611+
- **MatchHumanFaces** \- DetectHumanFaces Method from **humanFaceObj** \- With AI intelligence, analyses the provided face data and returns a response on whether the provided faces are of same human or not.Document Id and Face Id will be provided by DetectHumanFaces, and same can be used.
612+
613+
```java
614+
//MatchHumanFaces will use callback function to return the result.
615+
humanFaceObj.MatchHumanFaces(DocId1,FaceId1,DocId2,FaceId2,matchHumanFacesCallBack);
616+
*@param "ID of first document"
617+
*@param "Face ID of first document"
618+
*@param "ID of second document"
619+
*@param "Face ID of second document".
620+
*@param : "A callback method to capture the match human faces response".
621+
622+
function matchHumanFacesCallBack(resultJson) {
623+
//Process the resultJson
624+
}
625+
626+
//Or use lambda function
627+
humanFaceObj.MatchHumanFaces(DocId1,FaceId1,DocId2,FaceId2,,resultJson -> {
628+
//Detected response JSON
629+
});
630+
```
631+
632+
Following is a sample response structure :
633+
634+
```json
635+
{
636+
STATUS: true/false,
637+
//Match status
638+
DESCRIPTION : "SUCCESS",
639+
//Success or failure description
640+
ACCURACY: 0,
641+
//Accuracy of match
642+
}
643+
```
644+
### Face Match Accuracy Interpretation
645+
The match level is determined based on the accuracy percentage, which reflects the similarity between two facial images. The table below provides detailed descriptions for each match level.
646+
| **Match Percentage** | **Match Level** | **Description** |
647+
|--|--|--|
648+
| **90% - 100%** |**Highly Reliable Match** | Faces match with extremely high confidence. They are almost certainly the same person. Suitable for critical identification applications. |
649+
| **75% - 89%** |**Strong Match** | Faces matched successfully with a high probability of being the same person. Reliable for most identity verification use cases. |
650+
| **65% - 74%** | ⚠️ **Moderate Match** | Faces show good similarity, but further validation may be required. Manual verification is recommended before confirmation. |
651+
| **50% - 64%** | ⚠️ **Low Confidence Match** | Faces have some resemblance, but the similarity is not strong enough to confirm identity. Additional verification is needed. |
652+
| **0% - 49%** |**No Match** | Faces do not match. There is minimal similarity, and they are highly unlikely to be the same person. |
653+
654+
### Usage of Results
655+
656+
#### ✅ **Highly Reliable Match (90% - 100%)**
657+
- **Best for**: Secure identity verification, biometric authentication, and critical decision-making.
658+
- **Action**: **Automatic acceptance. No further review required.**
659+
660+
#### ✅ **Strong Match (75% - 89%)**
661+
- **Best for**: General identification scenarios where strong confidence is required.
662+
- **Action**: **Safe for automatic approval** in most applications.
663+
664+
#### ⚠️ **Moderate Match (65% - 74%)**
665+
- **Best for**: Cases where additional review is acceptable before finalizing the decision.
666+
- **Action**: **Manual verification recommended before confirming a match.**
667+
668+
#### ⚠️ **Low Confidence Match (50% - 64%)**
669+
- **Best for**: Situations requiring strict validation before acceptance.
670+
- **Action**: **Use alternative verification methods. Do not rely on this score alone.**
671+
672+
#### ❌ **No Match (0% - 49%)**
673+
- **Best for**: Definitive rejection of mismatches.
674+
- **Action**: **Automatically reject matches in this range.**
675+
575676
## 5. OpticalCodeHelper
576677
Following are the options/methods available from class **OpticalCodeHelper** :
577678
```java
@@ -696,7 +797,15 @@ var opticalCodeObj : OpticalCodeHelper? = OpticalCodeHelper(this)
696797
- LOG_CREATION_ERROR= **-108**;
697798
- Also with **Config.CaptureSupport.LastLogInfo** last logged exception or error details can be identified.
698799

800+
# Notes
801+
### Regarding accuracy :
802+
803+
The accuracy of face detection and matching technologies depends on input image quality, including factors such as image distortion, rotation angles, lighting conditions, and color consistency. While offline solutions effectively reduce manual effort and operational costs, they do not guarantee 100% reliability in all scenarios.
804+
805+
This system enables on-device verification, efficiently identifying doubtful matches and flagging them for backend verification within the offline environment. By integrating backend validation, the system enhances reliability without relying on external APIs. Additionally, when a match achieves high accuracy as defined in the accuracy thresholds, the system can be considered reliable even without backend verification, making it a valuable solution for offline scenarios where external validation is limited.
806+
807+
For use cases demanding exceptionally high accuracy and reliability, an API-based advanced system is recommended.
808+
699809
**Extrieve** - *Your Expert in Document Management & AI Solutions.*
700810

701-
[© 1996 - 2024 Extrieve Technologies](https://www.extrieve.com/)
702-
811+
[© 1996 - 2025 Extrieve Technologies](https://www.extrieve.com/)

0 commit comments

Comments
 (0)