99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

【DigiKey年度寵粉】基于AI攝像頭UNITV M12的巡邏檢測

開箱:得捷越做越好,現在從購買到收貨速度越來越快啦!短短一周就收到貨了。

UNITV M12板子非常小巧,正面是使用陽極氧化鋁切割出來的外殼,背面是塑料殼。有顆大大的攝像頭,攝像頭背面,可以插入SD卡。底部有兩個接口,一個是Type-C電源數據口,另外一個是2.0mm的4P的GLOVE接口,對應管腳G34、G35,可以做串口或I2C口使用。側面各有一個按鍵,按鍵對應管腳G19、G18。

因為引出的管腳有限,在編程開發時,從Grove接口用杜邦線接了個串口轉Usb模塊,將G34、G35作為串口使用,輸出數據,方便調試。

需求:大樓電機房需要定時巡檢。電機房位置比較偏僻,巡檢工作內容簡單,但是要求巡檢到位。為了保證值班人員巡檢到位,通過AI攝像頭,進行工作質量檢查。

設計:通過攝像頭進行人臉識別,當識別到人臉,就拍照記錄到SD卡上。定期收集SD卡的文件,核驗工作情況。

實現:首先附上代碼。

import sensor
import image
import lcd
import time
import utime
from machine import UART
import KPU as kpu
from Maix import GPIO
from fpioa_manager import *

fm.register(34,fm.fpioa.UART1_TX)
fm.register(35,fm.fpioa.UART1_RX)
uart_out = UART(UART.UART1, 115200, 8, None, 1, timeout=1000, read_buf_len=4096)

lastsnaptime=""

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)

while False:
    uart_out.write('TEST\n')
    utime.sleep_ms(100)


def getStrTime():
    nowtime=time.localtime()
    return "{:0>4d}{:0>2d}{:0>2d}{:0>2d}{:0>2d}{:0>2d}".format(nowtime[0],nowtime[1],nowtime[2],nowtime[3],nowtime[4],nowtime[5])

#task = kpu.load(0x300000) #  你需要把模型(face.kfpkg)在閃存地址0x300000
task = kpu.load("/sd/face.kmodel")#將模型放在 SD 卡中。
#模型描參數
anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025)
#初始化 yolo2 網絡
a = kpu.init_yolo2(task, 0.8, 0.3, 5, anchor)
while(True):
    img = sensor.snapshot()
    code = kpu.run_yolo2(task, img)#運行 yolo2 網絡
    if code:
        for i in code:
            uart_out.write(getStrTime()+"    "+str(i)+"\n")
            if lastsnaptime!=getStrTime():
                lastsnaptime=getStrTime()
                img.save("/sd/img/"+lastsnaptime+".jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20")
                #sensor.snapshot().save("/sd/img/"+str(time.ticks_ms())+".jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20")
            a = img.draw_rectangle(i.rect())
    a = lcd.display(img)
a = kpu.deinit(task)#反初始化


這里使用了maixpy作為編程工具,使用了官網提供的KPU人臉識別算法。從官網下載人臉識別算法模型文件(既可以保存在flash里,也可以保存在SD卡上)。在代碼中使用kpu.load()方法加載模型文件。

#初始化 yolo2 網絡
a = kpu.init_yolo2(task, 0.8, 0.3, 5, anchor)

為yolo2網絡模型傳入初始化參數, 留意第二個參數,是概率閾值, 只有是這個物體的概率大于這個值才會輸出結果, 取值范圍:[0, 1],我這里取了0.8的閾值,實測基本不會誤記錄了。當kpu模型檢測到人臉時,就將獲得到的圖片保存到SD卡。最后將代碼保持到boot.py就能夠上電運行了。

問題:整個項目過程中遇到兩個大問題。

問題1:原本計劃著搞好人臉檢測,再加上人臉識別的。Maixpy的人臉識別也提供了模型,但是模型是加了密的。 密碼使用的是機器碼。機器碼是一機一碼的一種加密方式,用于模型文件的加密。如果使用別的機器碼去加密或者下載以 smodel 為文件后綴的模型文件,開發板是無法使用該模型文件的。通過官方的說明,下載了key_gen.bin這個固件,燒寫后上電應該就能通過串口獲得到機器碼了。但是UNITV M12這個板子,沒有復位鍵!沒有復位鍵!沒有復位鍵!燒寫完固件后,只能通過插拔USB線,復位,但是插上USB線后,電腦要好一會才能認到這個USB串口,讀不到機器碼!最終放棄了這個思路。

問題2:這個模塊的RTC感覺很奇怪,使用 time.localtime()去讀取時間,按文檔說明,應該讀取到的是一個 年、月、日、時、分、秒……的元組。有時能讀到正常的時間,有時讀取到的數據又是亂的,找不到規律,還不清楚是什么引起的。

所以,這個UNITV M12很適合做一個圖像的傳感器,配合其它主控一起工作。

全部回復(0)
正序查看
倒序查看
現在還沒有回復呢,說說你的想法
主站蜘蛛池模板: 亚洲破处av| 国产精品色婷婷99久久精品 | 欧美日韩综合一区二区在线观看视频 | 久久久久久一区国产精品 | 国产无遮挡无码视频免费软件 | 成全动漫在线观看免费高清 | 韩国无码无遮挡在线观看 | 精品国产精品久久一区免费式 | 国产精品国产三级国产午 | 超碰公开免费 | 写作业写着写着就插了视频 | 大地资源网更新免费播放视频 | 亚洲精品一区二区三区中文字幕 | 色婷婷五月综合激情中文字幕 | 最近中文字幕在线视频 | 日本一区二区福利视频 | 少妇精品亚洲一区二区成人 | 日韩一本之道一区中文字幕 | 肉岳疯狂69式激情的高潮 | 无码人妻精品1国产婷婷 | 在线观看最新中文字幕AV | 亚洲日韩国产AV无码无码精品 | 免费在线一级片 | 情侣偷拍久久 | 亚洲狠狠婷婷综合久久久久图片 | 精品久久久久久无码人妻A片 | 黄色成人免费视频 | 日本久色 | 国产特级淫片免费看 | 国产亚洲视频网站 | 日本深夜福利 | 国产a一级毛片爽爽影院 | 18gay男同69亚洲帅男蓝宇 | 日本欧美一区二区三区高清 | 国产精品久久久免费视频 | 国产精品s房调教打屁股 | 91免费进入 | 麻花传媒沈芯语老师家访 | 亚洲精品欧美精品日韩精品 | 色一情一乱一乱一区99av白浆 | 日韩国产一区二区 |