Latest NIST FRVT evaluation report 2024-12-20
🆔 ID Document Liveness Detection - Linux - Here 
🤗 Hugging Face - Here
📚 Product & Resources - Here
🛟 Help Center - Here
💼 KYC Verification Demo - Here
🙋♀️ Docker Hub - Here
sudo docker pull kbyai/palmvein-recognition:latest
sudo docker run -v ./license.txt:/home/openvino/kby-ai-palmvein/license.txt -p 8081:8080 -p 9001:9000 kbyai/palmvein-recognition:latestThis repository demonstrates an efficient and accurate palmvein recognition technology by implementing palm-vein comparison based on palmvein feature extraction and face matching algorithm, which was implemented via a Dockerized Flask API.
It includes features that allow for testing plamvein recognition between two images using both image files and base64-encoded images.
In this repo, we integrated
KBY-AI's palmvein recognition solution intoLinux Server SDKby wrapping with docker image.
We can customize the SDK to align with customer's specific requirements.
| No. | Repository | SDK Details | Status |
|---|---|---|---|
| 1 | Palmprint Recognition - Linux | Palmprint Comparison Linux SDK | Available |
| 2 | Palmprint Recognition - Docker | Palmprint Comparison Docker Image | Available |
| ➡️ | Palmvein Recognition - Linux | Palmvein Comparison Linux SDK | Available |
| 4 | Palmprint Recognition - Android | Palmprint Comparison Android SDK | Available |
| 5 | Palmvein Recognition - Docker | Palmvein Comparison Docker Image | Available |
To get more products, please visit products here:
This SDK can be tested on online test demo page here:
The API can be evaluated through Postman tool. Here are the endpoints for testing:
- Test with an image file: Send a
POSTrequest tohttp://127.0.0.1:8081/palmvein. - Test with a
base64-encodedimage: Send aPOSTrequest tohttp://127.0.0.1:8081/palmvein_base64.
This project demonstrates KBY-AI's Palmvein Recognition Server SDK, which requires a license per machine.
- The code below shows how to use the license:
Palmvein-Recognition-Docker/app.py
Lines 17 to 29 in c92c8d9
- To request the license, please provide us with the
machine codeobtained from thegetMachineCodefunction.
🧙Email: contact@kby-ai.com
🧙Telegram: @kbyaisupport
🧙WhatsApp: +19092802609
🧙Discord: KBY-AI
🧙Teams: KBY-AI
CPU: 2 cores or more (Recommended: 2 cores)RAM: 4 GB or more (Recommended: 8 GB)HDD: 4 GB or more (Recommended: 8 GB)OS:Ubuntu 20.04or later- Dependency:
ncnn(Version: 2024.12.26)
- Clone the project:
git clone https://github.com/kby-ai/Palmvein-Recognition-Docker.git
cd Palmvein-Recognition-Docker - Build the
Dockerimage:sudo docker build --pull --rm -f Dockerfile -t kby-ai-palmvein:latest . - Read
machine codesudo docker run -e LICENSE="xxxxx" kby-ai-palmvein:latest - Send us
machine codeobtained.
- Update the
license.txtfile by overwriting thelicense keythat you received fromKBY-AIteam. - Run the
Dockercontainer:sudo docker run -v ./license.txt:/home/openvino/kby-ai-palmvein/license.txt -p 8081:8080 -p 9001:9000 kby-ai-palmvein:latest

- Here are the endpoints to test the
APIthroughPostman: Test with an image file: Send aPOSTrequest tohttp://{xx.xx.xx.xx}:8081/palmvein.
Test with abase64-encodedimage: Send aPOSTrequest tohttp://{xx.xx.xx.xx}:8081/palmvein.
- Setup
GradioEnsure that the necessary dependencies are installed.
GradiorequiresPython 3.6or above.
InstallGradiousingpipby running the following command:pip install gradio
- Run the demo with the following command:
cd gradio python demo.py SDKcan be tested on the following URL:http://127.0.0.1:9000
- Obtain the
machine codeto activate and request a licensemachineCode = getMachineCode() print("\nmachineCode: ", machineCode.decode('utf-8'))
- Activate the
SDKusing the license keyOnceret = setActivation(license.encode('utf-8')) print("\nactivation: ", ret)
retvalue is zero,SDKcan get work started
ROIExtraction TheSDKprovides a single API for detecting hands and extractingROIfrom the whole hand image(palmvein).
The function can be used as follows:roi, label = get_roi_image(cv2.flip(image, 1))
image: input image.label:Lefthand orRightone.roi: handROI(Region Of Interest)image to get palm feature.
- Create Feature
getFeaturefunction returns palmvein feature againstROIdata.
cnt = getFeature(roi_byte, len(roi_byte), feature_array)
roi_byte: roi image in byte format(image should be converted to byte format by functionmat_to_byets()).feature_array: palmvein feature extracted from handROIdata.
- Similiarity
The
getScore()function takes two palmveinfeatures as arguments and returnsscorevalue to determine whether 2 input hands are from the same or different.score = getScore(feature_array1, cnt1, feature_array2, cnt2)
The threshold is 0.65 as a default.
Palmvein-Recognition-Docker/app.py
Lines 109 to 110 in a3553ee

