【搬运】StickV(UnitV)+StickC进行自我学习实现移动侦测-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2472|回复: 2

【搬运】StickV(UnitV)+StickC进行自我学习实现移动侦测

[复制链接]
发表于 2020-1-8 15:34 | 显示全部楼层 |阅读模式
本帖最后由 vany5921 于 2020-1-8 15:36 编辑

此项目通过StickV的自我学习进行图像判断,发现异常后发送图像到line平台达到报警作用。 NN.jpg
原文地址 https://m5stack.hackster.io/anoken2017/mimamori-alert-for-your-home-security-098b12
主要处理过程如下:
①首先,利用Mobilnet的神经网络计算特征向量。 Mobilnet使用Keras和NNcase创建了V1权重为0.5。 NNCASE是Kendryte工具。
[mw_shl_code=python,true]task = kpu.load(0x200000)
fmap = kpu.forward(task, img)
new_data = np.array(fmap[:])[/mw_shl_code]

②将神经网络获得的特征向量在时间序列方向上进行滤波,得到加权平均值。向量运算使用Numpy。
[mw_shl_code=python,true]#Feature Vector Update
def update(capture,new_data,weight):
    new_data= new_data*weight+capture*(1.0-weight)
    return new_data
new_data=update(capture,new_data,cap_weight)[/mw_shl_code]

③计算当前时间的平均向量与特征向量之间的距离。这等同于找到运动。如果移动,则距离较大,如果静态,则距离较小。
[mw_shl_code=python,true]Feature Vector Compare
def get_dis(new_data,master_data):
    dist = np.sum((new_data-master_data)*(new_data-master_data))
    return dist

dist=get_dis(new_data,master_data)[/mw_shl_code]

④检测波形的上升沿并通过UART发送数据。将上升沿与时间序列中的先前数据进行比较

[mw_shl_code=python,true]if dist > dist_thresh:
    if dist_old <= dist_thresh:
        img_buf = img.copy()
        img_buf.compress(quality=70)
        img_size1 = (img_buf.size()& 0xFF0000)>>16
        img_size2 = (img_buf.size()& 0x00FF00)>>8
        img_size3 = (img_buf.size()& 0x0000FF)>>0
        data_packet = bytearray([0xFF,0xF1,0xF2,0xA1,img_size1,img_size2,img_size3,0x00,0x00,0x00])
        uart_Port.write(data_packet)
        uart_Port.write(img_buf)
        time.sleep(1.0)
        print("image send,data_packet")[/mw_shl_code]

sck_S03dUxEvPH.jpg

⑤M5StickC通过UART的通知将图像和消息发送到LINE。 M5StickC是使用ArduinoIDE开发的。
main_VS5tse75O3.jpg

此源代码需要MixPy选项配置Numpy。自定义二进制文件存储在Github中。而且,神经网络需要权重为0.5的MobileNetV1。该Kmodel文件也存储在Github中。使用Kflash GUI工具写入M5StickV / UnitV
kmodel_gui.jpg





发表于 2020-1-8 17:45 | 显示全部楼层
你这个是k210的芯片吧!
 楼主| 发表于 2020-1-9 10:49 | 显示全部楼层
点击小子 发表于 2020-1-8 17:45
你这个是k210的芯片吧!

是的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:41 , Processed in 0.081313 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表