发布网友 发布时间:2022-04-22 06:24
共1个回答
热心网友 时间:2022-04-14 22:18
还行的。其实有很多办法,我说一种简单办法的思路吧,如果编码的话,代码量有些大。
[思路]识别出某个人的脸
(1)你先准备好这个人的几张或几十张的图片让程序来“学习”
(2)[程序分为两部分]第一部分:[学习这个人的脸]
把这些图片逐个读入程序,然后对每个图片进行以下处理:
a.初步降噪:可以用cvErode或更好级别的算法来对图像完成初步降噪(opencv这块有几个挺好的算法,自己是依据需求和场景来定用哪个吧)
b.用ROI或其他方法划定出人脸区域
c.为ROI圈定的区域 建立histogram
(3)这样你就有了几十个histogram,然后自己写个算法来提取这几十张histogram 的通用特点[也就是模糊的找到这个人的脸部特征]
(4)然后再依据提取的特征建立一个histogram
(5)[程序第二部分]:[识别人脸]
a.从摄像头,读入人脸
b.初步降噪
c.ROI划定区域
d.建立一个histogram
e.用这个histogram与之前[学习中]的histogram进行比较,如果差异小于你规定的阀值 ,则确定识别成功。
---------------------------------------------------------------------------------
以上功能只能做到:如果这个人出现在摄像头前,则能认出这个人来了,如果其他人出现在摄像头前则输出“这个人不是要找的人”。
---------------------------------------------------------------------------------
上面的算法应该算是最简单的啦,所以效果应该不会太好,opencv中还可以对图像进行划分,然后定点五官,这个方法可能更好一些。
---------------------------------------------------------------------------------
如果你要让它能识别出多人,那么思路一样,只不过要对每个人进行上面提到的“机器学习”的过程,也就是建立一个自己的识别库的过程。