演示视频:浙工大工程实训树莓派——智能捡球小车Q宝_哔哩哔哩_bilibili
一、路线图
在起点播报“需要进行人脸认证”,人脸识别成功后,达到暂停点后,等待用户输入要寻找的目标小球类型,随后三个左转进行小球识别(识别成功后直接直行,不再继续识别下一小球),随后避开障碍物,三个左转进行二维码识别,将小球运送到对应的位置。在需要对用户进行提示(如需要用户操作或正确识别物体后等),会进行语音播报或微信消息推送。
二、运行过程
三、实验原理
八大模块:
1.巡线模块 2.超声波避障模块
由于我们的项目在分多个阶段进行,所以在不同阶段会调用不同的循迹的代码。
在第一阶段的循迹过程中,智能小车根据车头下方的感应器在判断前进,左右转弯等行为,在遇到第一个直角右转口后,进入阶段二,阶段二是智能小车减速,因为速度过快可能导致车头下方的检测出现小毛病,小车进入第一个左拐路口,增加左转时间,然后直行,到横线处,小车停止,进入阶段三,小车先识别前方的球类,然后倒车到拐口处,原地右转,之后的识别也是类似的操作,随后有一个简单的避障功能,利用超声波检测与前方障碍物的距离,在距离小于一定阈值的时候,小车不再是依靠黑线行动,而是右转绕过障碍物,进入下一个阶段,该阶段是寻找放置球类的地点,每个地点处都黏贴了一张二维码图,小车能够根据二维码图进入相应的停车位。至此结束循迹。
3.人脸识别模块
我们使用的分类器:haarcascade_frontalface_default.xml
使用OpenCV中检测的API函数:detectMultiScale(const Mat& image, vector& objects, double scaleFactor=1.1,int minNeighbors, int flag,cvSize)
4.手势识别模块
树莓派的运算力有限,所以我们直接用百度API实现手势识别。
百度支持支持的24类手势列表:拳头、OK、祈祷、作揖、作别、单手比心、点赞、Diss、我爱你、掌心向上、双手比心(3种)、数字(9种)、Rock、竖中指。
5.小球识别模块
HSV域颜色检测和霍夫圆检测
6.二维码识别模块
使用pyzbar识别二维码
7.语音播报模块
使用百度智能云的语音合成技术,调用百度API生成MP3文件
使用pygame.mixer.music.load()函数播放MP3文件
8.微信通知模块
使用Server酱,获取SendKey,调用API。