人工智能
自定义模型识别
from AI import CustomModel
模型初始化
CustomModel(labels,path)
参数说明
参数 |
类型 |
说明 |
labels |
list |
标签列表,必填 |
path |
str |
模型路径,必填 |
加载识别
loadModel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
样例
from cocopiPython import cameraPython,Screen
from AI import CustomModel
Screen = Screen() # 画布初始化
camera = cameraPython() # 摄像头初始化
labels = ["loadModel", "unload", "left", "right", "forward", "stop"] # 标签
path = "/root/preset/model/autologistics" # 模型路径
CustomModel = CustomModel(labels,path) # 初始化模型
while True:
canvas = camera.capture() # 获取摄像头图像
canvas = canvas.crop(48,8,224,224) # 裁剪图像为224*224
data = CustomModel.loadModel(canvas) # 加载模型进行识别
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=(255,0,0),thickness=1) # 在屏幕绘制检测框
canvas.draw_string(i["X"],i["Y"]-20,(str(i["name"])+":"+str(i["score"])),color=(255,0,0)) # 在屏幕上绘制名称与置信度
Screen.show(canvas,48,8) # 显示画布
其中i["X"]表示识别结果的检测框起点X轴坐标,i["Y"]表示识别结果的检测框起点Y轴坐标,i["W"]表示识别结果的检测框宽度,i["H"]表示识别结果的检测框高度,i["name"]表示识别结果的名称,i["score"]表示识别结果的置信度,i["middleX"]表示识别结果的检测框中心点的X轴坐标,i["middleY"]表示识别结果的检测框中心点的Y轴坐标。
边缘检测
from AI import EdgeDetection
模型初始化
EdgeDetection()
加载识别
loadModel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
样例
from cocopiPython import cameraPython,Screen
from AI import EdgeDetection
Screen = Screen() # 画布初始化
camera = cameraPython() # 摄像头初始化
EdgeDetection = EdgeDetection() # 初始化
while True:
img = camera.capture() # 获取摄像头数据
img = img.crop(48,8,224,224) # 裁剪尺寸为224*224
canvas = EdgeDetection.loadModel(img) # 加载模型
Screen.show(canvas,48,8) # 显示画布
人脸检测
from AI import Facedetection
模型初始化
Facedetection()
加载识别
loadModel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
样例
from cocopiPython import cameraPython,Screen
from AI import Facedetection
Screen = Screen() # 画布初始化
camera = cameraPython() # 摄像头初始化
face = Facedetection() # 人脸检测初始化
while True:
canvas = camera.capture() # 获取摄像头图像
canvas = canvas.crop(48,8,224,224) # 裁剪图像尺寸
data = face.loadModel(canvas) # 加载人脸检测模型
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=(255,0,0), thickness=1) # 在屏幕上绘制人脸检测框
canvas.draw_string(5,5,str(len(data)), scale = 1, color = (255,255,255) , thickness = 1) # 在屏幕上显示人脸数量
Screen.show(canvas,48,8) # 显示画布
人脸识别
from AI import FaceRecognition
模型初始化
FaceRecognition()
加载模型
加载人脸检测模型,获取人脸信息
loadmodel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
添加人脸
录入人脸信息保存到本地
add(name,feature,dataPath)
参数说明
参数 |
类型 |
说明 |
name |
str |
识别到的人脸名称,必填 |
feature |
list |
人脸数据,必填 |
dataPath |
str |
保存路径,选填,默认为"/root/user/model/recorded_face_features.py" |
删除人脸
删除本地保存的最后一条人脸数据
remove(name,dataPath)
参数说明
参数 |
类型 |
说明 |
name |
str |
要删除的人脸名称,必填 |
dataPath |
str |
保存路径,选填,默认为"/root/user/model/recorded_face_features.py" |
加载人脸信息
加载人脸采集时保存到本地的人脸信息数据
loadface(DataPath)
参数说明
参数 |
类型 |
说明 |
dataPath |
str |
保存路径,选填,默认为"/root/user/model/recorded_face_features.py" |
样例
人脸采集
import time
from cocopiPython import cameraPython,Screen
from AI import FaceRecognition
from CocoPi import BUTTON
# 按钮初始化
key_C = BUTTON(13)
key_D = BUTTON(7)
Screen = Screen()
camera = cameraPython()
FaceRecognition = FaceRecognition()
People_list = ["小明","小红","小刚","小花"]
FaceNum = 0
faceScore = 0
color = (255,0,0)
while True:
canvas = camera.capture() # 获取摄像头数据
canvas = canvas.crop(48,8,224,224) # 裁剪图片尺寸
data = FaceRecognition.loadmodel(canvas) # 加载人脸检测模型
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=color,thickness=1) # 检测框
if key_C.is_pressed() and FaceNum < len(People_list):
while not key_C.is_pressed()== False:
time.sleep(0.01)
FaceRecognition.add(People_list[len(FaceRecognition)],i["feature"]) # 录入人脸保存
canvas.draw_rectangle(0,0,320,20,color=(0,0,0),thickness=-1)
canvas.draw_string(0,0,"已采集"+str(People_list[FaceNum])+"人脸数据",scale=1,color=(255,255,255),thickness=1)
Screen.show(canvas,48,8)
FaceNum = FaceNum + 1
time.sleep(1)
if key_D.is_pressed() and FaceNum > 0:
while not key_D.is_pressed()== False:
time.sleep(0.01)
FaceRecognition.remove(People_list[len(FaceRecognition)-1]) # 删除人脸
canvas.draw_rectangle(0,0,320,20,color=(0,0,0),thickness=-1)
canvas.draw_string(0,0,"已删除"+str(People_list[FaceNum-1])+"人脸数据",scale=1,color=(255,255,255),thickness=1)
Screen.show(canvas,48,8)
FaceNum = FaceNum - 1
time.sleep(1)
Screen.show(canvas,48,8)
人脸识别
from cocopiPython import cameraPython,Screen
from AI import FaceRecognition
Screen = Screen()
camera = cameraPython()
FaceRecognition = FaceRecognition()
faceScore = 0
color = (255,0,0)
while True:
canvas = camera.capture() # 获取摄像头数据
canvas = canvas.crop(48,8,224,224) # 裁剪图片尺寸
data = FaceRecognition.loadmodel(canvas) # 加载人脸检测模型
FaceRecognition.loadface()
for i in data:
faceScore = round(i["recognizeScore"],2)
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=color,thickness=1) # 检测框
canvas.draw_string(i["X"],i["Y"],str(i["name"])+":"+str(faceScore),scale=1,color=color,thickness=1)
if faceScore > 80:
color = (0,255,0)
else:
color = (255,0,0)
Screen.show(canvas,48,8)
人脸识别+人脸采集
import time
from cocopiPython import cameraPython,Screen
from AI import FaceRecognition
from CocoPi import BUTTON
# 按钮初始化
key_C = BUTTON(13)
key_D = BUTTON(7)
Screen = Screen()
camera = cameraPython()
FaceRecognition = FaceRecognition()
People_list = ["小明","小红","小刚","小花"]
FaceNum = 0
faceScore = 0
color = (255,0,0)
while True:
canvas = camera.capture() # 获取摄像头图像
canvas = canvas.crop(48,8,224,224) # 裁剪图片尺寸
data = FaceRecognition.loadmodel(canvas) # 加载人脸检测模型
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=color,thickness=1) # 检测框
if key_C.is_pressed() and FaceNum < len(People_list):
while not key_C.is_pressed()== False:
time.sleep(0.01)
FaceRecognition.add(People_list[len(FaceRecognition)],i["feature"]) # 录入人脸保存
canvas.draw_rectangle(0,0,320,20,color=(0,0,0),thickness=-1)
canvas.draw_string(0,0,"已采集"+str(People_list[FaceNum])+"人脸数据",scale=1,color=(255,255,255),thickness=1)
Screen.show(canvas,48,8)
FaceNum = FaceNum + 1
time.sleep(1)
faceScore = round(i["recognizeScore"],2)
if faceScore > 70:
color = (0,255,0)
canvas.draw_string(i["X"],i["Y"],str(i["name"])+":"+str(faceScore),scale=1,color=color,thickness=1)
else:
color = (255,0,0)
if key_D.is_pressed() and FaceNum > 0:
while not key_D.is_pressed()== False:
time.sleep(0.01)
FaceRecognition.remove(People_list[len(FaceRecognition)-1]) # 删除人脸
canvas.draw_rectangle(0,0,320,20,color=(0,0,0),thickness=-1)
canvas.draw_string(0,0,"已删除"+str(People_list[FaceNum-1])+"人脸数据",scale=1,color=(255,255,255),thickness=1)
Screen.show(canvas,48,8)
FaceNum = FaceNum - 1
time.sleep(1)
Screen.show(canvas,48,8)
数字识别
from AI import Digitalecognition
模型初始化
Digitalecognition()
加载识别
loadModel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
样例
from cocopiPython import cameraPython,Screen
from AI import Digitalecognition
Screen = Screen() # 画布初始化
camera = cameraPython() # 摄像头初始化
Digit = Digitalecognition() # 人脸检测初始化
while True:
canvas = camera.capture() # 获取摄像头图像
canvas = canvas.crop(48,8,224,224) # 裁剪图像尺寸
data = Digit.loadModel(canvas)
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=(255,0,0),thickness=1)
canvas.draw_string(i["X"],i["Y"]-20,(str(i["name"])+":"+str(i["score"])),color=(255,0,0))
Screen.show(canvas,48,8)
物体检测
from AI import ObjectDetection
模型初始化
ObjectDetection()
加载识别
loadModel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
样例
from cocopiPython import cameraPython,Screen
from AI import ObjectDetection
Screen = Screen() # 画布初始化
camera = cameraPython() # 摄像头初始化
object = ObjectDetection() # 物体检测初始化
while True:
canvas = camera.capture() # 获取摄像头图像
canvas = canvas.crop(48,8,224,224) # 裁剪图像尺寸
data = object.loadModel(canvas)
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=(255,0,0),thickness=1)
canvas.draw_string(i["X"],i["Y"]-20,(str(i["name"])+":"+str(i["score"])),color=(255,0,0))
Screen.show(canvas,48,8)
猜拳识别
from AI import RockPaperScissors
模型初始化
RockPaperScissors()
加载识别
loadModel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
样例
from cocopiPython import cameraPython,Screen
from AI import RockPaperScissors
Screen = Screen()
camera = cameraPython()
RockPaperScissors = RockPaperScissors()
while True:
canvas = camera.capture()
canvas = canvas.crop(48,8,224,224)
data = RockPaperScissors.loadModel(canvas)
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=(255,0,0),thickness=1)
canvas.draw_string(i["X"],i["Y"]-10,(str(i["name"])+":"+str(i["score"])),color=(255,0,0))
Screen.show(canvas,48,8)
自学习识别
from AI import SelfLearning
模型初始化
SelfLearning(lables)
参数说明
参数 |
类型 |
说明 |
lables |
列表 |
要识别的物体名称列表,必填 |
添加类别
addClass(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
训练
trainSave(path)
参数说明
参数 |
类型 |
说明 |
path |
string |
保存路径,选填,默认为“/root/user/model/module.bin” |
加载识别
loadModel(img,path)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
path |
string |
保存路径,选填,默认为“/root/user/model/module.bin” |
样例
采集
import time
from cocopiPython import cameraPython,Screen
from AI import SelfLearning
from CocoPi import BUTTON
key_C = BUTTON(13)
key_D = BUTTON(7)
Screen = Screen()
camera = cameraPython()
lables=(['鼠标','键盘','水杯'])
SL = SelfLearning(lables)
is_train = 0
count = 0
str_display = "按C键添加类别,按D键進行学习"
while True:
# 获取摄像头数据
canvas = camera.capture()
canvas = canvas.crop(48,8,224,224)
if key_C.is_pressed():
while not key_C.is_pressed()== False:
time.sleep(0.01)
if count < len(lables):
# 采集数据添加到列表中
time.sleep(1)
SL.addClass(canvas)
count += 1
if key_D.is_pressed():
while not key_D.is_pressed()== False:
time.sleep(0.01)
if count >= len(lables) and is_train == 0:
time.sleep(1)
# 训练并保存,参数:path 为保存路径默认/root/user/model/module.bin
SL.train()
is_train = 1
str_display = "学习已完成"
canvas.draw_string(0,0,str_display,scale=1,color=(255,0,0),thickness=1)
canvas.draw_string(0,16,"采集次数:"+str(count),scale=1,color=(255,0,0),thickness=1)
Screen.show(canvas,48,8)
识别
from cocopiPython import cameraPython,Screen
from AI import SelfLearning
Screen = Screen()
camera = cameraPython()
SL= SelfLearning(['鼠标','键盘','水杯'])
SL.load()
while True:
# 获取摄像头数据
img = camera.capture()
canvas = img.crop(48,8,224,224)
data = SL.predict(canvas)
canvas.draw_string(0,5,(str(data["name"])+":"+str(data["score"])),scale=1,color=(255,0,0),thickness=1)
Screen.show(canvas,48,8)
拼音识别
from AI import PinyinRecognition
模型初始化
PinyinRecognition(keywords)
参数说明
参数 |
类型 |
说明 |
keywords |
列表 |
拼音参数,文字的拼音与音调,必填 |
获取结果
getresult()
样例
from cocopiPython import Screen
from AI import PinyinRecognition
Screen = Screen()
canvas = Screen.create()
keywords = [["ni3 hao3",0.1],["hao3 de1",0.1],["wan3 shang4 hao3",0.1]] # 设置拼音参数
PinyinRecognition = PinyinRecognition(keywords)
data =""
while True:
canvas.clear()
data = str(PinyinRecognition.getResult()) # 获取拼音识别结果
print("jieguo:"+str(data))
canvas.draw_string(0,0, "请对准麦克风说出指令", scale = 2, color = (255,0,0) , thickness = 1)
if data != "None":
canvas.draw_string(0, 30, "拼音识别结果:", scale=2, color=(255,0,0), thickness = 1)
canvas.draw_string(30, 60, (data), scale=2, color=(255,255,255), thickness = 1)
Screen.show(canvas)
车牌识别
from AI import PlateRecognition
模型初始化
PlateRecognition()
加载识别
loadModel(img)
参数说明
参数 |
类型 |
说明 |
img |
image.Image() |
要识别的Image对象,必填 |
样例
from cocopiPython import cameraPython,Screen
from AI import PlateRecognition
Screen = Screen() # 画布初始化
camera = cameraPython() # 摄像头初始化
PlateRecognition = PlateRecognition() # 车牌识别初始化
while True:
canvas = camera.capture() # 获取摄像头图像
canvas = canvas.crop(48,8,224,224) # 裁剪图像尺寸
data = PlateRecognition.load(canvas) # 加载识别
for i in data:
canvas.draw_rectangle(i["X"],i["Y"],i["X"]+i["W"],i["Y"]+i["H"],color=(255,0,0),thickness=1) # 检测框
canvas.draw_string(i["X"],i["Y"]-10,(str(i["name"])),color=(255,0,0)) # 名称
Screen.show(canvas,48,8) # 显示