ESP32 MicroPython 顏色及二維碼識別?
- 1、顏色識別
- 2、二維碼識別
1、顏色識別
使用AI顏色識別功能,可以實現顏色辨別、顏色追蹤等應用。顏色識別模型內置有9種常見的顏色識別和一種顏色學習識別模式。他們分別是:
ai.COLOR_RED 表示識別紅色
ai.COLOR_ORANGE 表示識別橙色
ai.COLOR_YELLOW 表示識別黃色
ai.COLOR_GREEN 表示識別綠色
ai.COLOR_CYAN 表示識別青色
ai.COLOR_BLUE 表示識別藍色
ai.COLOR_PURPLE 表示識別紫色
ai.COLOR_WHITE 表示識別白色
ai.COLOR_BLACK 表示識別黑色
ai.COLOR_STUDY 表示學習顏色模式
對于學習顏色識別模式(ai.COLOR_STUDY),需要先將攝像頭對準要識別的顏色,進行學習,學習成功后即可完成特定顏色識別。
實驗目的
使用攝像頭的AI顏色識別模型,識別紅色。并在顯示屏顯示出圖像
實驗內容
顏色識別模型中使用到2層圖像, 所以本次例程配置攝像頭圖層為2
cam.OV2640(frame=2) ,構建顏色識別模型參數為設置識別紅色ai.colorDetection( color = ai.COLOR_RED,displayType=1)。之后啟動AI識別,在主循環不停讀取識別結果,并在調試窗口打印識別信息。
參考代碼
參考代碼文件可以在資料包文件夾“智能小車mpy例程\基礎實驗\11-AI攝像頭實驗\06-顏色識別”文件夾下的main.py ,下面為完整代碼內容:
'''
AI攝像頭實驗-顏色識別
'''
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顏色檢測對象
color:顏色檢測類型
COLOR_RED:紅色
displayType: 顯示方式為 1-LCD,2-WEB網頁顯示
'''
myAi = ai.colorDetection( color = ai.COLOR_RED,displayType=1) #啟動紅色檢測,LCD顯示方式myAi.start() #啟動AI檢測while True:mValue=myAi.read() #讀取檢測到數據print(mValue)time.sleep_ms(100)
實驗結果
運行程序后,使用攝像頭對準要識別的顏色,攝像頭區域有紅色的可以識別出來。并用矩形框標記出來,調試界面打印輸出相應的區域矩形。
2、二維碼識別
實驗目的
使用小車攝像頭識別二維碼信息
實驗內容
通過攝像頭識別二維碼中的內容,并且在調試窗口打印出來。
參考代碼
參考代碼文件可以在資料包文件夾“智能小車mpy例程\基礎實驗\11-AI攝像頭實驗\07-二維碼識別”文件夾下的main.py ,下面為完整代碼內容:
'''
AI攝像頭實驗-二維碼識別
'''
from machine import Pin,Timer #導入Pin引腳和Time定時器模塊
from lcd import LCD20 #導入2.0寸LCD模塊
import cam #導入攝像頭模塊
import time
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() #創建攝像頭對象,圖層為1層#設置攝像頭尺寸240X240
myCam.framesize(cam.LCD240X240) #顯示屏對應的分辨率 方便顯示
myCam.set_hmirror(0) #設置攝像頭水平鏡像關閉
'''
創建AI二維碼掃描對象
'''
myAi = ai.codeRecognition() #只支持LCD顯示,監測結果在顯示屏顯示,只支持字符串顯示,中文顯示出異常myAi.start() #啟動AI檢測while True:mValue=myAi.read() #讀取檢測到數據if mValue != None: #讀取結果不為空,表示已經掃描到二維碼print(mValue)time.sleep_ms(100)
實驗結果
運行程序后攝像頭對準下面二維碼,二維碼信息為“hello mycar”,識別到后在顯示屏顯示出識別內容,并且在調試界面打印出識別結果。
相關代碼及固件:
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