我正在尝试创建一个能够在实时视频流中检测和跟踪眼睛虹膜的应用程序。为此,我想使用Python
和OpenCV
。在互联网上对此进行研究时,在我看来,有多种可能的方法可以做到这一点。
第一种方式:
运行Canny Filter
以获得边,然后使用HoughCircle
查找Iris
。
第二种方式:
使用Otsus-Algorithm
查找理想阈值,然后使用cv2.findContours()
查找Iris
。
由于我希望它可以在Raspberry Pi
(4B)上运行,所以我的问题是,这些方法中哪一种更好,特别是在可靠性和性能方面?
答案 0 :(得分:0)
我将采取第三条路线,并从一种完善的面部地标检测方法(例如dlib)开始。您可以使用预先训练的模型来获得可靠的眼睛位置估计。
这是面部标志检测器的输出示例:
http://onedaystory.co/merchant/product
然后,您可以使用边缘检测,Hough或其他方法从那里继续查找虹膜。
可能您可以简单地使用启发式方法,因为您可以假设虹膜始终位于每只眼睛周围关键点的质心。
在线上也有一些很好的教程,它们在类似的环境下(甚至对于Raspberry也是如此),例如PyImageSearch的{{3}}或。