EDCC(Enhanced and Discriminative Competitive Code)
,用于掌纹识别。
使用该EDCC
算法在多个已发布的掌纹数据库(multispectral
,tongji
)上进行验证N(N = 2, 4, 6, 8)
,每个手掌的第一掌纹图像被用作训练样本,其余掌纹图像形成测试样本集。将测试样本集合中的每个样本与训练集合中每个类别的所有样本进行比较,以计算匹配分数。产生最高匹配分数的类被视为测试样本的类。
数据库 | N = 2 | N = 4 | N = 6 | N = 8 |
---|---|---|---|---|
Multispectral_B |
98.6800% | 99.8750% | 99.9667% | 99.9800% |
Multispectral_G |
98.8400% | 99.8500% | 99.9333% | 99.9500% |
Multispectral_I |
98.9200% | 99.9000% | 99.9000% | 99.9000% |
Multispectral_R |
98.8400% | 99.7500% | 99.8667% | 99.9000% |
Tongji |
98.8056% | 99.6979% | 99.9881% | 99.9861% |
EDCC
算法的优点:
- 减少训练样本。
- 更快的识别速度。
- 识别精度更高。
安装
如果你想安装,有一些要求EDCC
:
- Linux / Unix操作系统
- OpenCV
脚步:
git clone https://github.com/Leosocy/EDCC-Palmprint-Recognition.git
cd EDCC-Palmprint-Recognition && mkdir -p build && cd build
sudo cmake ..
sudo make -j install
如何EDCC
在你的项目中使用
- C++In your CMakeLists.txt, add these lines:
FIND_PACKAGE(EDCC REQUIRED) INCLUDE_DIRECTORIES(${EDCC_INCLUDE_DIRS}) TARGET_LINK_LIBRARIES(YOUR_TARGET_NAME ${EDCC_LIBS})
Then you can use those apis in
edcc.h
like this:#include <edcc.h> int main(int argc, char** argv) { const char* palmprint_image_path_1 = "IMAGE_PATH_1"; const char* palmprint_image_path_2 = "IMAGE_PATH_1"; const char* config_file_path = "config.json"; #define CODE_BUFFER_MAX_LEN 1024 unsigned char code_buffer_1[CODE_BUFFER_MAX_LEN] = {0}; unsigned char code_buffer_2[CODE_BUFFER_MAX_LEN] = {0}; size_t buffer_len_1 = 0; size_t buffer_len_2 = 0; int ret = GetEDCCCoding(palmprint_image_path_1, config_file_path, CODE_BUFFER_MAX_LEN, code_buffer_1, &buffer_len_1); ret = GetEDCCCoding(palmprint_image_path_2, config_file_path, CODE_BUFFER_MAX_LEN, code_buffer_2, &buffer_len_2); double coding_matching_score = 0.0; double image_matching_score = 0.0; GetTwoPalmprintCodingMatchScore(code_buffer_1, code_buffer_2, &coding_matching_score); GetTwoPalmprintMatchScore(palmprint_image_path_1, palmprint_image_path_2, config_file_path, &image_matching_score); }
- PythonPython need 3.x.In your py, add these lines:
from edcc_adapter import * EDCC_API = EdccApi() coding_1, coding_len_1 = EDCC_API.GetEDCCCoding("IMAGE_PATH_1", "CONFIG_PATH") coding_2, coding_len_2 = EDCC_API.GetEDCCCoding("IMAGE_PATH_2", "CONFIG_PATH") coding_matching_score = EDCC_API.GetTwoPalmprintCodingMatchScore(coding_1, coding_2) image_matching_score = EDCC_API.GetTwoPalmprintMatchScore("IMAGE_PATH_1", "IMAGE_PATH_2", "CONFIG_PATH")
Run samples
Before running the example, make sure make install
succeed.
- Run Python sample
cd EDCC-Palmprint-Recognition && mkdir -p build && cd build
sudo cmake ..
sudo make -j run_py_sample
https://github.com/Leosocy/EDCC-Palmprint-Recognition
转载请注明:《EDCC:快速高精度的掌纹识别算法》