From 63890b9f700f2dfd9622d92d6c70ba404e0af549 Mon Sep 17 00:00:00 2001 From: Artsiom Tsybulko Date: Tue, 13 Jan 2026 17:48:21 +0300 Subject: [PATCH 1/3] 48925 - add matchAndSearch --- .../facesdk/webclient/api/MatchApi.java | 10 ++++++ .../com/regula/facesdk/webclient/Main.java | 33 +++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/client/src/main/java/com/regula/facesdk/webclient/api/MatchApi.java b/client/src/main/java/com/regula/facesdk/webclient/api/MatchApi.java index 39c24f0..51c56ff 100644 --- a/client/src/main/java/com/regula/facesdk/webclient/api/MatchApi.java +++ b/client/src/main/java/com/regula/facesdk/webclient/api/MatchApi.java @@ -7,6 +7,8 @@ import com.regula.facesdk.webclient.gen.model.DetectResponse; import com.regula.facesdk.webclient.gen.model.MatchRequest; import com.regula.facesdk.webclient.gen.model.MatchResponse; +import com.regula.facesdk.webclient.gen.model.MatchAndSearchRequest; +import com.regula.facesdk.webclient.gen.model.MatchAndSearchResponse; public class MatchApi extends com.regula.facesdk.webclient.gen.api.MatchApi { public MatchApi() { @@ -34,4 +36,12 @@ public DetectResponse detect(DetectRequest detectRequest) throws ApiException { ApiResponse localVarResp = detectWithHttpInfo(detectRequest, ""); return localVarResp.getData(); } + + public MatchAndSearchResponse matchAndSearch(MatchAndSearchRequest matchAndSearchRequest, String xRequestID) throws ApiException { + return super.matchAndSearch(matchAndSearchRequest, xRequestID); + } + + public MatchAndSearchResponse matchAndSearch(MatchAndSearchRequest matchAndSearchRequest) throws ApiException { + return super.matchAndSearch(matchAndSearchRequest, ""); + } } diff --git a/example/src/main/java/com/regula/facesdk/webclient/Main.java b/example/src/main/java/com/regula/facesdk/webclient/Main.java index 1c8339c..33be0f1 100755 --- a/example/src/main/java/com/regula/facesdk/webclient/Main.java +++ b/example/src/main/java/com/regula/facesdk/webclient/Main.java @@ -4,6 +4,8 @@ import com.regula.facesdk.webclient.gen.model.ImageSource; import com.regula.facesdk.webclient.gen.model.MatchImage; import com.regula.facesdk.webclient.gen.model.MatchRequest; +import com.regula.facesdk.webclient.gen.model.MatchAndSearchRequestImagesItem; +import com.regula.facesdk.webclient.gen.model.MatchAndSearchRequest; import java.io.IOException; import java.util.List; @@ -28,8 +30,7 @@ public static void main(String[] args) throws IOException { var matchImages = List.of(matchImage1, matchImage2, matchImage3); - var matchRequest = new MatchRequest() - .images(matchImages); + var matchRequest = new MatchRequest().images(matchImages); var matchResponse = sdk.matchApi.match(matchRequest); @@ -45,6 +46,34 @@ public static void main(String[] args) throws IOException { } } + var matchAndSearchImage1 = new MatchAndSearchRequestImagesItem().content(face1).type(ImageSource.LIVE); + var matchAndSearchImage2 = new MatchAndSearchRequestImagesItem().content(face2).type(ImageSource.DOCUMENT_RFID); + + var matchAndSearchImages = List.of(matchAndSearchImage1, matchAndSearchImage2); + + var matchAndSearchRequest = new MatchAndSearchRequest().images(matchAndSearchImages); + + var matchAndSearchResponse = sdk.matchApi.matchAndSearch(matchAndSearchRequest); + + System.out.println("-----------------------------------------------------------------"); + System.out.println(" Match and Search Results "); + System.out.println("-----------------------------------------------------------------"); + if (matchAndSearchResponse != null && matchAndSearchResponse.getDetections() != null) { + for (var detection : matchAndSearchResponse.getDetections()) { + System.out.format("image index: %d%n", detection.getImageIndex()); + System.out.format("status: %s%n", detection.getStatus()); + System.out.format("faces: %n"); + if (detection.getFaces() != null) { + for (var face : detection.getFaces()) { + System.out.format(" index: %s%n", face.getFaceIndex()); + System.out.format(" landmarks: %s%n", face.getLandmarks()); + System.out.format(" roi: %s%n", face.getRoi()); + } + } + System.out.println(); + } + } + var detectRequest = new DetectRequest().image(face2).tag("1"); var detectResponse = sdk.matchApi.detect(detectRequest); var detectResults = detectResponse.getResults(); From 9a12639a00838a0272c255bb4e13ab1172dee79c Mon Sep 17 00:00:00 2001 From: Artsiom Tsybulko Date: Wed, 14 Jan 2026 10:31:01 +0300 Subject: [PATCH 2/3] 48925 - update sample --- .../com/regula/facesdk/webclient/Main.java | 30 ------------------- 1 file changed, 30 deletions(-) diff --git a/example/src/main/java/com/regula/facesdk/webclient/Main.java b/example/src/main/java/com/regula/facesdk/webclient/Main.java index 33be0f1..c32061d 100755 --- a/example/src/main/java/com/regula/facesdk/webclient/Main.java +++ b/example/src/main/java/com/regula/facesdk/webclient/Main.java @@ -4,8 +4,6 @@ import com.regula.facesdk.webclient.gen.model.ImageSource; import com.regula.facesdk.webclient.gen.model.MatchImage; import com.regula.facesdk.webclient.gen.model.MatchRequest; -import com.regula.facesdk.webclient.gen.model.MatchAndSearchRequestImagesItem; -import com.regula.facesdk.webclient.gen.model.MatchAndSearchRequest; import java.io.IOException; import java.util.List; @@ -46,34 +44,6 @@ public static void main(String[] args) throws IOException { } } - var matchAndSearchImage1 = new MatchAndSearchRequestImagesItem().content(face1).type(ImageSource.LIVE); - var matchAndSearchImage2 = new MatchAndSearchRequestImagesItem().content(face2).type(ImageSource.DOCUMENT_RFID); - - var matchAndSearchImages = List.of(matchAndSearchImage1, matchAndSearchImage2); - - var matchAndSearchRequest = new MatchAndSearchRequest().images(matchAndSearchImages); - - var matchAndSearchResponse = sdk.matchApi.matchAndSearch(matchAndSearchRequest); - - System.out.println("-----------------------------------------------------------------"); - System.out.println(" Match and Search Results "); - System.out.println("-----------------------------------------------------------------"); - if (matchAndSearchResponse != null && matchAndSearchResponse.getDetections() != null) { - for (var detection : matchAndSearchResponse.getDetections()) { - System.out.format("image index: %d%n", detection.getImageIndex()); - System.out.format("status: %s%n", detection.getStatus()); - System.out.format("faces: %n"); - if (detection.getFaces() != null) { - for (var face : detection.getFaces()) { - System.out.format(" index: %s%n", face.getFaceIndex()); - System.out.format(" landmarks: %s%n", face.getLandmarks()); - System.out.format(" roi: %s%n", face.getRoi()); - } - } - System.out.println(); - } - } - var detectRequest = new DetectRequest().image(face2).tag("1"); var detectResponse = sdk.matchApi.detect(detectRequest); var detectResults = detectResponse.getResults(); From a4d5bd177d825a3522e53fa5429611385b9e0126 Mon Sep 17 00:00:00 2001 From: Artsiom Tsybulko Date: Mon, 19 Jan 2026 16:43:12 +0300 Subject: [PATCH 3/3] 48925 - update readme --- README.md | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 487e3b7..36fffdf 100755 --- a/README.md +++ b/README.md @@ -21,24 +21,44 @@ repositories { } dependencies { - implementation("com.regula.facesdk:webclient:5.2.3") + implementation("com.regula.facesdk:webclient:7.2.145") } ``` ## Example -Performing request: +Performing match request: ```java var sdk = new FaceSdk(apiBasePath); byte[] face1 = readFile("face_1.jpg"); byte[] face2 = readFile("face_2.jpg"); -var compareImage1 = new MatchImage().index(0).data(face1).type(ImageSource.LIVE); -var compareImage2 = new MatchImage().index(1).data(face1).type(ImageSource.DOCUMENT_RFID); -var compareImage3 = new MatchImage().index(3).data(face2).type(ImageSource.LIVE); +var matchImage1 = new MatchImage().index(0).data(face1).type(ImageSource.LIVE); +var matchImage2 = new MatchImage().index(1).data(face1).type(ImageSource.DOCUMENT_RFID); +var matchImage3 = new MatchImage().index(3).data(face2).type(ImageSource.LIVE); -var compareRequest = new CompareRequest().images(List.of(compareImage1, compareImage2, compareImage3)); -var compareResponse = sdk.matchingApi.compare(compareRequest); +var matchImages = List.of(matchImage1, matchImage2, matchImage3); + +var matchRequest = new MatchRequest().images(matchImages); + +var matchResponse = sdk.matchApi.match(matchRequest); +``` + +Performing match and search request: +```java +var sdk = new FaceSdk(apiBasePath); + +byte[] face1 = readFile("face_1.jpg"); +byte[] face2 = readFile("face_2.jpg"); + +var matchAndSearchImage1 = new MatchAndSearchRequestImagesItem().content(face1).type(ImageSource.LIVE); +var matchAndSearchImage2 = new MatchAndSearchRequestImagesItem().content(face2).type(ImageSource.DOCUMENT_RFID); + +var matchAndSearchImages = List.of(matchAndSearchImage1, matchAndSearchImage2); + +var matchAndSearchRequest = new MatchAndSearchRequest().images(matchAndSearchImages); + +var matchAndSearchResponse = sdk.matchApi.matchAndSearch(matchAndSearchRequest); ``` You can find a more detailed example in [example](./example) folder.