学习教程:https://singtown.com/learn/50033/
本篇文章分享一下使用LBP特征分辨不同的人脸。
我们需要先建立自己的图像库。我们先在OpenMV的U盘(注意一定要插sd卡)中新建一个文件夹,命名为myselfpgm,然后在myselfpgm文件夹中再新建n个名为s1,s2,s3...sn的子文件夹,其中n为整个图像库中的人数。如下图:
然后,我们可以运行以下代码来采集不同的人脸样本。注意采集时尽量让背景均匀,并且让人脸尽量充满整个画面。人脸可以微笑,不笑,正脸,歪头,戴眼镜,不戴眼镜等。可以选择每人10-20张图片。
代码如下:
import sensor, image, pyb RED_LED_PIN = 1 BLUE_LED_PIN = 3 sensor.reset() # Initialize the camera sensor. sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.GRAYSCALE sensor.set_framesize(sensor.B128X128) # or sensor.QQVGA (or others) sensor.set_windowing((92,112)) sensor.skip_frames(10) # Let new settings take affect. sensor.skip_frames(time = 2000) num = 3 #设置被拍摄者序号,第一个人的图片保存到s1文件夹,第二个人的图片保存到s2文件夹,以此类推。每次更换拍摄者时,修改num值。 n = 20 #设置每个人拍摄图片数量。 #连续拍摄n张照片,每间隔3s拍摄一次。 while(n): #红灯亮 pyb.LED(RED_LED_PIN).on() sensor.skip_frames(time = 1000) # Give the user time to get ready.等待3s,准备一下表情。 #红灯灭,蓝灯亮 pyb.LED(RED_LED_PIN).off() pyb.LED(BLUE_LED_PIN).on() #保存截取到的图片到SD卡 print(n) sensor.snapshot().save("myselfpgm/s%s/%s.pgm" % (num, n) ) # or "example.bmp" (or others) n -= 1 pyb.LED(BLUE_LED_PIN).off() print("Done! Reset the camera to see the saved image.")
拍摄结束后OpenMV U盘中图像如下(注意每次OpenMV u盘写入新图像/文件后需要重置OpenMV才可以看到):
另外还需下载一个pgm看图软件(photos opener)才能打开pgm格式图片:
如果写入新图像/文件后没有重置OpenMV,会出现下面的情况:
经过百度之后,参考视频教程:https://jingyan.baidu.com/article/454316ab597670f7a7c03ab9.html
实现了再次采集人脸:
正是步行者,一步步登峰!