赞
踩
我们小车MCU支持AI(人工智能)加速,可以用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions),可以实现高性能的图像识别功能。对于AI功能我们已经移植好MicroPython的库到小车固件,内置有6种模型,分别是:移动检测、人脸识别、人脸检测、猫脸检测、颜色识别、二维码识别。使用内置的模型可以快速实现AI功能开发,下面我们来认识下构建函数和使用方法。
构造函数 说明 mdAI=ai.motionDetection(threshold,displayType) 构造移动检测对象 threshold:触发检测阈值(像素值) displayType=1显示方式 为LCD显示屏 displayType=2显示方式 为网页方式(需WEB支持) 使用方法 说明 mdAI.start() 启动移动检测 mdAI.read() 读取检测结果,返回检测到的阈值 mdAI.stop() 停止移动检测 构造函数 说明 fdAI=ai.faceDetection(displayType) 构造人脸检测对象 displayType=1显示方式 为LCD显示屏 displayType=2显示方式 为网页方式(需WEB支持) 使用方法 说明 fdAI.start() 启动人脸检测 dat=fdAI.read() 读取人检测结果,最多支持检测两个人脸信息。 没有检测到返回(0),否则返回为元组格式 dat[0]:为返回检测到的人脸数量(0~2) dat[1],dat[2]:检测矩形左上角x、y坐标 dat[3],dat[4]:检测矩形右下角x、y坐标 dat[5],dat[6]:检测左眼x、y坐标 dat[7],dat[8]:检测右眼x、y坐标 dat[9],dat[10]:检测鼻子x、y坐标 dat[11],dat[12]:检测左嘴角x、y坐标 dat[13],dat[14]:检测右嘴角x、y坐标 检测到两个人数据依次排列下去 fdAI.stop() 停止人脸检测 构造函数 说明 frAI=faceRecognition(displayType) 构造人脸识别对象 displayType=1显示方式 为LCD显示屏 displayType=2显示方式 为网页方式(需WEB支持) 使用方法 说明 frAI.start() 启动人脸识别 frAI.enroll() 录入人脸信息,录入成功返回保存的ID编号,ID范围1~1000。录入失败返回None frAI.delete(id=0) 删除保存的人脸信息,参数默认为0则删除最后一个ID,否则删除输入的ID。 frAI.recognize() 人脸识别结果 没有识别到返回None,否则返回元组数据 dat[0]:为识别到的人脸ID dat[1],dat[2]:识别矩形左上角x、y坐标 dat[3],dat[4]:识别矩形右下角x、y坐标 dat[5],dat[6]:识别左眼x、y坐标 dat[7],dat[8]:识别右眼x、y坐标 dat[9],dat[10]:识别鼻子x、y坐标 dat[11],dat[12]:识别左嘴角x、y坐标 dat[13],dat[14]:识别右嘴角x、y坐标 frAI.stop() 停止人脸识别 构造函数 说明 cdAI=ai.colorDetection(color,displayType) 构造颜色识别对象 color:需要识别的颜色 ai.COLOR_RED 红色 ai.COLOR_ORANGE橙色 ai.COLOR_YELLOW黄色 ai.COLOR_CYAN 青色 ai.COLOR_BLUE 蓝色 ai.COLOR_PURPLE 紫色 ai.COLOR_PURPLE 紫色 ai.COLOR_WHITE 白色 ai.COLOR_BLACK 灰色 ai.COLOR_STUDY 学习颜色模式 displayType=1显示方式 为LCD显示屏 displayType=2显示方式 为网页方式(需WEB支持) 使用方法 说明 cdAI.start() 启动颜色识别 dat=cdAI.read() 读取识别结果 没有识别到返回(0),否则返回元组格式为矩形区域上下角坐标 dat[0]:为返回识别到数量(0~5) dat[1],dat[2]:检测矩形左上角x、y坐标 dat[3],dat[4]:检测矩形右下角x、y坐标 检测到两个以上依次排列下去 cdAI.stop() 停止颜色识别 构造函数 说明 catAI=ai.catDetection(displayType) 构造猫脸检测对象 displayType=1显示方式 为LCD显示屏 displayType=2显示方式 为网页方式(需WEB支持) 使用方法 说明 catAI.start() 启动猫脸检测 dat=catAI.read() 读取猫脸检测结果 没有检测到返回(0),否则返回为元组格式 dat[0]:1 为检测到猫脸 dat[1],dat[2]:检测矩形左上角x、y坐标 dat[3],dat[4]:检测矩形右下角x、y坐标 catAI.stop() 停止猫脸检测 构造函数 说明 crAI=ai.codeRecognition() 构造二维码识别对象 使用方法 说明 crAI.start() 启动二维码识别 crAI.read() 读取二维码识别结果 识别到则返回识别结果,否则返回None crAI.stop() 停止二维码识别 构造函数 说明 hstream=ai.http_stream() 构造AI识别HTTP数据流对象 需要网络支持 使用方法 说明 hstream.set_ok_callable(callback) 设置网页OK按钮回调函数 callback:方法,按下OK后的回调方法 hstream.set_up_callable(callback) 设置网页上键按钮回调函数 callback:方法,按下上键后的回调方法 hstream.set_down_callable(callback) 设置网页下键按钮回调函数 callback:方法,按下下键后的回调方法 hstream.set_left_callable(callback) 设置网页左边按钮回调函数 callback:方法,按下左边键后的回调方法 hstream.set_right_callable(callback) 设置网页右边按钮回调函数 callback:方法,按下右边键后的回调方法 hstream.stream_task() 启动检测网页按钮回调
移动检测用于检测摄像头区域物体变化,使用移动检测可以作为物体闯入监控,下面实验我们来学习移动检测的使用。
使用摄像头采集图像并在LCD显示屏显示,启动AI移动检测模型检测并读取检测到的变化像素大小,如果变化的像素超过检测阈值,图像显示会在左上角显示出绿色实心矩形。并且在调试窗口每隔100毫秒读取检测打印检测到变化像素的大小值。
在移动检测模型中,需要图像层数为两层。所以我们在构造摄像头对象的时候,参数需配置为两层图像。在代码里面,myCam = cam.OV2640(frame=2) 的fram=2表示使用2层图层作为AI移动检测。
构建AI移动检测中的参数threshold = 200表示像素变化为200个单位就触发检测结果,displayType=1表示图像在LCD显示屏显示。参数为displayType=2是表示图像在WEB网页显示,需要网络支持。
参考代码文件可以在资料包文件夹“智能小车mpy例程\基础实验\11-AI摄像头实验\01-移动检测-LCD显示”文件夹下的main.py 下面为完整代码内容:
''' AI摄像头实验-移动检测LCD显示 ''' from machine import Pin,Timer #导入Pin引脚和Time定时器模块 from lcd import LCD20 #导入2.0寸LCD模块 import cam #导入摄像头模块 import time,network import ai #导入AI模块 #颜色值定义,(R,G,B) 0~255代表颜色值 red = (255,0,0) #红色 green = (0,255,0) #绿色 blue = (0,0,255) #蓝色 white = (255,255,255) #白色 back = (0,0,0) #黑色 #创建LCD对象 dir 显示方向为竖屏,1、3竖屏,2、4屏横 ld=LCD20() #默认为竖屏1 # 整屏填充指定颜色 ld.fill(back) myCam = cam.OV2640(frame=2) #创建摄像头对象,图层为2层(移动检测需要) #设置摄像头尺寸240X240 myCam.framesize(cam.LCD240X240) #显示屏对应的分辨率 方便显示 myCam.set_hmirror(0) #设置摄像头水平镜像关闭 ''' 创建AI移动检测对象 threshold:检测深度像素点,触发图像指示 displayType: 显示方式为 1-LCD,2-WEB网页显示 ''' myAi = ai.motionDetection( threshold = 200,displayType=1) #深度200,LCD显示方式 myAi.start() #启动AI检测 while True: mValue=myAi.read() #读取检测到数据 print(mValue) #打印实时检测结果 time.sleep_ms(100)
编写程序后点击运行,稍等几秒钟后可以看到LCD显示屏显示图像,在软件调试界面有数据不断打印。没有物体在摄像头前面移动时,调试界面数值很小。在摄像头前面走动时,可以看到图像左上角有绿色矩形显示,查看调试界面数值打印是已经变化阈值很大,已经触发移动检测事件。根据触发数据可以判断有物体移动。
相关代码及固件:
https://download.csdn.net/download/lu330274924/88549191
智能小车购买链接
技术支持抖音:易驱达Easy Drive Coming
淘宝官方商城:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-18887194911.15.135014bdaKI6mV&id=715385110550
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。