人工智慧
自訂模型識別
from AI import CustomModel
模型初始化
CustomModel(labels,path)
參數說明
參數 |
值 |
描述 |
labels |
列表 |
標籤列表,必填 |
path |
字串 |
模型路徑,必填 |
載入識別
loadModel(img)
參數說明
參數 |
值 |
描述 |
img |
圖片 |
要識別的Image對象,必填 |
樣例
from cocopiPython import cameraPython,Screen
from AI import CustomModel
Screen = Screen() # 畫布初始化
camera = cameraPython() # 攝像頭初始化
labels = ["load", "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.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"]-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對象,必填 |
樣例
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.load(img) # 載入模型
Screen.show(canvas,48,8) # 顯示畫布
人臉檢測
from AI import Facedetection
模型初始化
Facedetection()
載入識別
loadModel(img)
參數說明
參數 |
值 |
描述 |
img |
圖片 |
要識別的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.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(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對象,必填 |
添加人臉
錄入人臉資訊保存到本地
add(name,feature,dataPath)
參數說明
參數 |
值 |
描述 |
name |
字串 |
識別到的人臉名稱,必填 |
feature |
列表 |
人臉資料,必填 |
dataPath |
字串 |
保存路徑,選填,預設為"/root/user/model/recorded_face_features.py" |
刪除人臉
刪除本地指定人臉資料
remove(name,dataPath)
參數說明
參數 |
值 |
描述 |
name |
字串 |
要刪除的人臉名稱,必填 |
dataPath |
字串 |
保存路徑,選填,預設為"/root/user/model/recorded_face_features.py" |
載入人臉信息
載入人臉採集時保存到本地的人臉資訊資料
loadface(DataPath)
參數說明
參數 |
值 |
描述 |
dataPath |
字串 |
保存路徑,選填,預設為""/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對象,必填 |
樣例
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.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"]-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對象,必填 |
樣例
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.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"]-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對象,必填 |
樣例
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對象,必填 |
訓練
trainSave(path)
參數說明
參數 |
值 |
描述 |
path |
字串 |
保存路徑,選填,預設為“/root/user/model/module.bin” |
載入識別
loadModel(img,path)
參數說明
參數 |
值 |
描述 |
img |
圖片 |
要識別的Image對象,必填 |
path |
字串 |
保存路徑,選填,預設為“/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對象,必填 |
樣例
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) # 顯示