Java中的"快速和肮脏"面部识别和数据库存储/查找

Wil*_*Wil 6 java sql database face-recognition

在过去的一周里,我一直在研究和试验面部识别.预期的应用是通过简单地拍摄他们的脸部照片,使人能够在数据库(SQL)中查找人的信息.最初的期望是能够将面向下压缩为密钥或散列,并将其用作数据库lokup.这不需要非常准确,因为查找信息的人可能并且最有可能最终在文件上的原始图像和站在他们面前的人之间进行最终比较.

OpenCV/JavaCV似乎是一个明显的起点,它提供的面部检测效果很好,但面部识别的特征脸的实现并不理想,因为每次新面孔需要时重新编译成千上万的用户面孔进行在线培训被添加到训练集是行不通的.

我正在尝试在使用OpenCV的Haar Cascade功能提取的脸上使用SURF描述符,这似乎让我更接近预期的结果,但是我无法想到一种有效查找和比较大约30个描述符的方法(它们要么是数据库中的64或128维向量).我已经完成了关于LSH和Spectral Hashing算法的一些阅读,但是没有找到Java的实现,而且我的数学不够强大,无法自己实现它们.

有没有人对如何实现这一点有任何想法或想法,或者甚至是否可能?

exc*_*ion 2

哈希并不复杂,也不需要数学学位。

假设任何 2 个图像都会产生相当相似数量的“描述符”,那么只需要您获得足够多的合理匹配即可获得足够高的置信因子。

这些描述符的具体程度决定了您的哈希算法可以接受的冲突级别。

由于您有其中几个,我建议您不需要任何太复杂的东西 - 毕竟,您可能希望在搜索中具有一定程度的“模糊性”?

从简单的事情开始——实验和完善。您甚至可能会发现不同的描述符需要不同的散列 - 即某些描述符可能比其他描述符更具体?

希望有一些值得深思的东西。