用于从数据库进行人脸检测和识别的计算机视觉应用程序(+web 界面)

Posted

技术标签:

【中文标题】用于从数据库进行人脸检测和识别的计算机视觉应用程序(+web 界面)【英文标题】:Computer Vision application(+web interface) for face detection and recognition from database 【发布时间】:2012-04-11 11:02:53 【问题描述】:

我的项目是一个计算机视觉 Java 应用程序,它应该实现以下功能:

    一个 Web 界面,通过该界面,表单条目+图像(例如学生数据)将存储到数据库 (mysql) 中,并将图像存储到我的 Java 应用程序通用的目录中。 然后可以从我的 java Gui 应用程序中检索数据和图像,我可以通过 OpenCV 执行以下图像处理操作。 实际上,我想对检索到的图像进行人脸检测并丢弃虚假条目(没有正确的人脸)。 此外,应用程序用户/管理员可以基于文本搜索(按 Id)或使用面部识别的另一个参考图像来搜索图像。

我对 Java 很熟悉,但问题是我需要一个关于如何逐步组织它的指导(链接赞赏)。OpenCv、php 和 mySql 真的很乱。我知道在 java 中做 openCV 的东西是真正的开销,但我真的很想这样做。但是如果有任何建议可以做其他事情,请指导我。所以任何形式的帮助对我来说都是一线希望。

谢谢。

【问题讨论】:

避免所有开销。一旦最小功能起作用,您可以稍后添加它们。 【参考方案1】:

这听起来像是一个不错的应用程序。以下是我的建议:

1- 一个 Web 界面,通过该界面,表单条目+图像(例如学生数据)将存储到数据库(Mysql)中,并将图像存储到我的 Java 应用程序通用的目录中。

你可以很容易地用php和mysql创建这样的应用程序,只要找一些图片上传和php的教程。

2- 然后可以从我的 java Gui 应用程序中检索数据和图像,我可以通过 OpenCV 执行以下图像处理操作。

我建议您使用 JavaCV。它是 OpenCV 的一个包装器,从我所做的一些测试来看,它似乎工作得很好。您可以通过本机桥获得 Java 的灵活性和 C++ 的性能。

3- 实际上,我想对检索到的图像进行人脸检测并丢弃错误条目(没有正确的人脸)。

您可以轻松地将 OpenCV 人脸检测代码适配到 JavaCV:http://opencv.willowgarage.com/wiki/FaceDetection

4- 应用程序用户/管理员也可以基于文本搜索(按 ID)或使用面部识别的另一个参考图像搜索图像。

通过一些 JPA 甚至 JDBC 连接可以很容易地通过 id 进行搜索。现在相似的人脸搜索很棘手。我会把你指向这个链接 http://www.shervinemami.info/faceRecognition.html 关于 OpenCV 中的人脸识别。

我希望这会有所帮助。

最好的问候, 丹尼尔

【讨论】:

嗨,库什,不客气!如果你愿意,可以选择这个作为接受的答案吗?祝项目顺利!【参考方案2】:

在这里,我可以建议它如何进行,但需要处理此处可能无法解决的问题。

您将创建一个可直接访问以上传图像的 Web 服务。相同的服务可用于从您的 Java 应用程序下载图像。因此,请确保您创建了一个定义明确的服务来处理这两个不同的操作,并且干净地暴露给外部世界。 MySQL 将是负责存储学生信息和/或图像本身的后端数据库。您可以在没有 MySQL 的情况下编写服务,只在本地(在服务器端)拥有服务存储图像和/或学生信息,然后您可以开发代码来集成 MySQL。 A good and simple link to MySQL and Php

JavaCV 将是您的 Java 应用程序的候选者。您将轻松利用 OpenCV 的强大功能。开发应用程序并针对您的服务进行测试。尝试先从服务中下载一些图像。如果可行,请继续图像处理部分。

确保您不了解人脸检测和识别。这是两个不同的东西。来自 OpenCV wiki FaceDetection 和 FaceRecognition

如果您完成第一步并了解查询数据,则通过 id/文本字符串进行搜索将是微不足道的。通过图像搜索我会存储人脸识别工件(向量、尺寸、特征值等......无论如何)。一旦存储在您的服务器上,您的应用程序就会将输入图像工件发送到您的服务器,在那里将完成匹配并返回结果。

**

总结

**

通过 JDBC 等连接器连接您的 Web 服务和 MySQL。这个非常重要。没有 SQL 连接,意味着没有数据库和无用的服务。 负责上传/下载学生信息的服务。 图像处理。人脸伪影计算必须是常见的。相同的代码可以在服务器和客户端运行(有意义,不是吗?)。 通过字符串或图像查询搜索。两种不同类型的搜索。客户端必须告诉服务器应该执行什么类型的搜索。

【讨论】:

以上是关于用于从数据库进行人脸检测和识别的计算机视觉应用程序(+web 界面)的主要内容,如果未能解决你的问题,请参考以下文章

使用OpenCVKeras和TensorFlow进行微笑检测

计算机视觉·OpenCV使用Haar+Cascade实现人脸检测

人脸专题1 | 级联卷积神经网络用于人脸检测

[计算机视觉]人脸应用:人脸检测人脸对比五官检测眨眼检测活体检测疲劳检测

Python计算机视觉:人脸识别

Python计算机视觉:人脸识别