计算机视觉库/人脸识别EasyPR、QtOpenCV、fdlib、Flandmark介绍

以下为你介绍的计算机视觉库/人脸识别软件都可用在Linux系统上:EasyPR(中文车牌识别系统)、QtOpenCV(Qt 和 OpenCV 的集成)、fdlib(人脸检测库)、Flandmark(面部地标探测器)。

1、EasyPR(中文车牌识别系统)

EasyPR 是一个开源的中文车牌识别系统。

EasyPR是一个中文的开源车牌识别系统,其目标是成为一个简单、灵活、准确的车牌识别引擎。

跨平台,有C#、android、linux、ios、mac、java及懒人版。

相比于其他的车牌识别系统,EasyPR有如下特点:

1]、它基于openCV这个开源库,这意味着所有它的代码都可以轻易的获取。

2]、它能够识别中文,例如车牌为苏EUK722的图片,它可以准确地输出std:string类型的"苏EUK722"的结果。

3]、它的识别率较高。目前情况下,字符识别已经可以达到90%以上的精度。

例子:

假设我们有如下的原始图片,需要识别出中间的车牌字符与颜色:

计算机视觉库/人脸识别EasyPR、QtOpenCV、fdlib、Flandmark介绍

经过EasyPR的第一步处理车牌检测(PlateDetect)以后,我们获得了原始图片中仅包含车牌的图块:

计算机视觉库/人脸识别EasyPR、QtOpenCV、fdlib、Flandmark介绍

接着,我们对图块进行OCR过程,在EasyPR中,叫做字符识别(CharsRecognize)。我们得到了一个包含车牌颜色与字符的字符串:

“蓝牌:苏EUK722”

注意:

1]、对于Opencv3.2或以上版本,如果碰到编译问题,例如“ANN_MLP”相关的错误,尝试将config.h中将#define CV_VERSION_THREE_ZERO改为#define CV_VERSION_THREE_TWO试试.

2]、linux系统推荐使用Opencv3.2以上版本。3.2以下的版本例如3.0和3.1在识别时可能会出现车牌识别结果为空的情况。稳妥起见,建议都升级到最新的3.2版本。Windows版本没有这个问题。

下载地址:https://git.oschina.net/easypr/EasyPR

2、QtOpenCV(Qt 和 OpenCV 的集成)

QtOpenCV 是 Qt 和 OpenCV 的集成。

QtOpenCV提供了一些辅助函数来将cv::Mat从QImage转换为QImage。QtOpenCV提供了一个opencv.pri文件,可用于将OpenCV2或更高版本集成到基于qmake的项目中。

OpenCV2集成:

如果要在基于qmake的项目中使用OpenCV,则可以下载源文件并将其放置到所需的任何目录中,然后将以下代码添加到.pro文件中:

include (yourpath/yourpath/yourpath/opencv.pri)

或者您可以简单地将以下行添加到.pro文件中:

unix{

 CONFIG += link_pkgconfig

 PKGCONFIG += opencv

}

win32{

 # load(opencv) instead of CONFIG+=opencv used here

 !load(opencv):message("You must create an opencv.prf, and move it to $$[QT_INSTALL_PREFIX]/mkspecs/features/")

}

如您所见,非Windows用户不需要执行任何其他操作。

下载地址:https://github.com/dbzhang800/QtOpenCV

3、fdlib(人脸检测库)

计算机视觉库/人脸识别EasyPR、QtOpenCV、fdlib、Flandmark介绍

fdlib - 是一个 C/C++ 和 MATLAB的人脸检测库,可检测图像中的正脸。提供有fdlib for C/C++ (Windows)、fdlib for C/C++ (Linux)、fdlib for Matlab (Windows)、fdlib for Matlab (Linux)版本下载。

fdlib非常易于使用,C/C ++版本实现三个功能:

(1) void fdlib_detectfaces(byte *imagedata, int imagewidth, int imageheight, int threshold);

(2) int fdlib_getndetections(void);

(3) void fdlib_getdetection(int nr, int *xpos, int *ypos, int *width);

下载地址:http://people.kyb.tuebingen.mpg.de/kienzle/facedemo/facedemo.htm

4、Flandmark(面部地标探测器)

计算机视觉库/人脸识别EasyPR、QtOpenCV、fdlib、Flandmark介绍

Flandmark 是一个开源实现面部地标探测器。提供 MATLAB 接口。

C++ 示例代码:

#include "flandmark_detector.h"

int main(int argc, char * argv[])

{

// load flandmark model structure and initialize

FLANDMARK_Model * model = flandmark_init("flandmark_model.dat");

// load input image

IplImage *img = cvLoadImage("photo.jpg");

// convert image to grayscale

IplImage *img_grayscale = cvCreateImage(cvSize(img->width, img->height), IPL_DEPTH_8U, 1);

cvCvtColor(img, img_grayscale, CV_BGR2GRAY);

// bbox with detected face (format: top_left_col top_left_row bottom_right_col bottom_right_row)

int bbox[] = {72, 72, 183, 183};

// detect facial landmarks (output are x, y coordinates of detected landmarks)

float * landmarks = (float*)malloc(2*model->data.options.M*sizeof(float));

flandmark_detect(img_grayscale, bbox, model, landmarks);

}

下载地址:https://github.com/uricamic/flandmark

注明

以上就是计算机视觉库/人脸识别EasyPR、QtOpenCV、fdlib、Flandmark的介绍内容,这些计算机视觉库/人脸识别软件都能使用在Linux操作系统中。

栏目相关文章