HuskyLens人工智能摄像头

简介: HuskyLens人工智能摄像头

目录

1、模块特性


2、模块功能


3、模块调测


3.1、单对象识别


3.2、多对象识别


4、模块应用


1、模块特性

HuskyLens是一款简单易用的人工智能摄像头(视觉传感器),内置6种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签(二维码)识别。仅需一个学习按键即可完成AI训练,摆脱繁琐的训练和复杂的视觉算法,让你更加专注于项目的构思和实现。

image.png



HuskyLens板载UART/I2C接口,可以连接到Arduino、Raspberry Pi、LattePanda、micro:bit、STM32等主流控制器,实现硬件无缝对接,直接输出识别结果给控制器,无需折腾复杂的算法,就能制作非常有创意的项目,该智能硬件模组于2020年2月正式出售(预售价329RMB),通过一段官方演示视频进一步了解该模组。


image.png


Huskylens内置了许多类型的图像处理算法,可支持拍照、运算、识别和处理为一体,最终将识别结果通过UART/I2C输出到控制器,其接口说明如下所示:


image.png


USB 接口:接上电源自动开机,断掉电源自动关机,配上上位机,可以更新固件;

传感器接口:支持 UART 或 I2C 协议,通过该接口,可连接常用的主控板,如 Arduino、树莓派、micro:bit;该接口也支持供电;

功能按键:左右拨动,切换选择内置的功能;向下短按,调出或隐藏菜单;向下长按,进入当前功能的参数设置;

学习按键:按下“学习按键”,学习指定物体。支持长按操作,长按期间,将持续学习;

屏幕:2.0 寸 IPS 显示器,实时看到各种状态下的结果,方便调试,所见即所得。

2、模块功能

Huskylens主要有六大功能,简介如下所示:

image.png



物体追踪:追踪指定的物体,可以是任何有明显轮廓的物体,甚至是各种手势;

人脸识别:侦测脸部轮廓,可同时识别多人;

物体识别:识别这是什么物体(仅限于内置的 20 种物体);

巡线追踪:识别指定的线条,并做路径规划;

颜色识别:识别指定的颜色及其位置(由于光线的变化,对于相近的颜色,摄像头有时会误识别);

标签识别:侦测二维码标签,识别出指定标签(目前摄像头不能识别复杂二维码,如微信上用的二维码)。

3、模块调测

由于Huskylens将识别的结果通过UART/I2C传输到控制器,所以我们只需要在Huskylens上训练好识别对象,解析接口协议即可,这里我使用的是UART通信协议(57600 (bps)  8N1),该模块的协议格式如下所示:

image.png

数据头1 数据头2 地址 数据长度 命令 数据 累加和校验

0x55 0xAA 1 Byte 1Byte 1Byte

Data 1~Data n


(10Byte)


1Byte

协议解析如下:


数据头1和数据头2以0x55和0xAA固定格式开头,因为0x55二进制是0101 0101,0xAA二进制是1010 1010,在通讯编码原理中,应该尽可能避免过多的重复0或1,因为当你的传输变成一个长0/1时,一个脉冲干扰就会将你的数据截断,整加误码的机会。 若你的通讯机不能正确接受10101010或01010101,那么你的线路等肯定出现问题。 这个只是一个快速判断线路状态的一个手段,在做内现存测试的时候也经常使用这两个数据字段,也是同样的道理;


地址占用一个字节,本模块默认地址是0x11;


数据长度占用一个字节,指数据的长度,注意不是整个数据帧的长度;


命令ID占用一个字节;


数据长度为10位,数据信息为检测到对象的像素尺寸和对象属性,顺序为:检测对象X点中心低位字节、检测对象X点中心高位字节、检测对象Y点中心低位字节、检测对象Y点中心高位字节、检测对象宽度低位字节、检测对象宽度高位字节、检测对象高度低位字节、检测对象高度高位字节,剩余两个字节为检测到的对象;


8位累加和校验,不进位,例如:0x55+0xAA+0x11+0x0A+0x10+0x2C+0x01+0xC8+0x00+0x0A+0x00+0x14+0x00+0x01


+0x00=0x23E,则校验位为0x3E。


3.1、单对象识别

Huskylens无需请求指令,自动发送毫秒级的设备状态数据帧,打开串口调测助手即可直接分析,下面以人脸识别功能为例,分析协议帧结构。


这里选取了周杰伦的图像作为识别对象, Huskylens人脸识别训练操作流程如下所示:


image.png


在尚未检测到目标对象的情况下,打开串口调测助手,模组发送大量数据(均相同),选择其中一条分析。


image.png

image.png


数据头1 数据头2 地址 数据长度 命令 数据 累加和校验

0x55 0xAA 0x11

0x0A


(10 Byte)


0x10

0x00 0x00 0x00 0x00 0x01 0x00 0x01 0x00


(8 Byte对象尺寸大小数据)


0x00 0x00


(2 Byte目标对象标识,此时代表无对象)


55+ AA+11+0A+10+00+00+00+00+01+ 00+01+00+00+00=0x12C


(取低位为0x2C)


训练周杰伦的人脸作为识别对象,如下所示:


image.png


此时模块发送的协议帧,可以识别出0001号ID,也就是周杰伦的人脸图像尺寸,如下所示:

image.png



数据头1 数据头2 地址 数据长度 命令 数据 累加和校验

0x55 0xAA 0x11

0x0A


(10 Byte)


0x10

0x9C 0x00 0x88 0x00 0x53 0x00 0x70 0x00


(8 Byte对象尺寸大小数据)


0x00 0x01


(创建的第一个人脸ID)


55+ AA+11+0A+10+9C+00+88+00+53+ 00+70+00+00+01=0x312


(取低位为0x12)


3.2、多对象识别

可以打开模块的多人脸训练模式,训练阿信为第二个识别对象,如下所示:


image.png


多人模式模块发送的协议帧中识别对象ID和单人模式有所区别,此时识别周杰伦(创建的第一个对象)。


image.png


模块发送协议如下所示:


image.png


其中0xFFFE代表多人识别中第二个对象(阿信)未识别到。


再识别阿信(创建的第二个对象),如下所示:


image.png


模块发送协议如下所示:

image.png



其中0xFFFF代表多人识别中第一个对象(周杰伦)未识别到。


HuskyLens人工智能摄像头的应用就简要讲解人脸识别的功能,其他功能都是大同小异,小伙伴们了解协议帧就可以轻松应对。


4、模块应用

由于目前手头上只有STM32系列开发板,遂基于STM32+HuskyLens实现人脸识别开关灯小案例,实现代码如下所示,主要是拆解、校验协议(演示视频)。


uint8_t UART2_ReceivedChar=0,check = 0;
uint8_t USART2_RxData[16]; 
uint32_t USART2_RX_DATA_BUF_CNT=0; 
int8_t USART2_RX_Flag=0;
uint16_t data_id=0;
void USART2_IRQHandler(void)
{
  //UART2接收数据
  if(LL_USART_IsActiveFlag_RXNE(USART2))
  {
    UART2_ReceivedChar = 0;
    //读取接收寄存器,读数据会清中断
    UART2_ReceivedChar = LL_USART_ReceiveData8(USART2);
    //判断若以0x55开头,接收16个字符
    if(UART2_ReceivedChar==0x55)
    {
      USART2_RX_Flag=1;
    }
    if(USART2_RX_Flag==1&&USART2_RX_DATA_BUF_CNT<16)
    {
      USART2_RxData[USART2_RX_DATA_BUF_CNT++] = UART2_ReceivedChar;
    }
    //接收16个字符后进行处理
    else
    {
      //因为模块发送速度过快,需要校验
      if(USART2_RxData[0]==0x55&&USART2_RxData[1]==0xAA&&USART2_RxData[2]==0x11)
      {
        //进行累加和校验,对比发送和接收的是否一致
        for(int8_t i=0;i<15;i++)
        {
          LL_mDelay(10);
          check+=USART2_RxData[i];
        }
         LL_mDelay(200);
        //若接收正确,处理
        if(check==USART2_RxData[15])
        {
            //装载低位、高位识别对象ID
            data_id=USART2_RxData[14];
            data_id<<=8;
            data_id|=USART2_RxData[13];
            //未检测到周杰伦
            if(data_id==0xFFFF)
            {  
              //LED灯灭
              LL_GPIO_ResetOutputPin(GPIOB, LL_GPIO_PIN_9);
            }
            //未检测到阿信
            else if(data_id==0xFFFE)
            {
              //LED灯亮
              LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_9);
            }
        }
      }
      //清除标志
      USART2_RX_Flag=0;
      USART2_RX_DATA_BUF_CNT=0;
      check=0;
    }
    //清除溢出标志
    LL_USART_ClearFlag_ORE(USART2);
  }
}

通过设定断点可以看到每一次的上次数据和发送到串口调试助手的一致。

image.png

相关文章
|
机器学习/深度学习 人工智能 搜索推荐
人工智能第三次黄金时代,藏在全球数亿摄像头里?
人工智能历史上的三次黄金时代是什么?这次有何不同?视觉智能应用成功的关键因素有哪些?本文通过众多的成功实例和遍地黄金的视觉计算应用机会,对这些问题进行探讨,并试图讨论云上视觉智能的终局。 注:本文整理自阿里iDST科学家华先胜在全球人工智能技术大会上的演讲。
1608 0
|
9天前
|
机器学习/深度学习 人工智能 算法
探究人工智能在现代医疗诊断中的应用与挑战
本文旨在深入探讨人工智能技术在现代医疗诊断领域中的应用及其所面临的挑战。随着科技的飞速发展,人工智能已逐渐渗透到医疗行业的多个方面,特别是在医疗诊断领域,AI的应用不仅提高了诊断的准确性和效率,还极大地减轻了医生的工作负担。然而,尽管人工智能在医疗诊断中展现出巨大的潜力,其发展过程中也遇到了一系列挑战,如数据隐私保护、算法的透明度和公平性等问题。本文通过对现有文献的综合分析,阐述了人工智能在医疗诊断中的具体应用案例,分析了这些技术的优势与不足,并对其未来的发展趋势进行了预测和建议。
26 5
|
9天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用及其挑战
人工智能技术在医疗领域的应用正迅速改变着我们理解健康和疾病的方式。本文将探讨AI在医疗诊断中的具体应用,包括影像诊断、病理分析及个性化治疗方案的制定,并分析其带来的革命性变化。然而,技术的局限性、数据隐私和伦理问题也不容忽视。尽管面临诸多挑战,但随着技术的不断进步,AI在医疗诊断中的潜力巨大,未来将更好地服务于人类健康事业。
|
8天前
|
数据采集 人工智能 安全
软件测试中的人工智能应用与挑战
在这篇文章中,我们将深入探讨人工智能(AI)在软件测试中的应用及其所面临的挑战。通过分析当前的技术趋势和具体案例,揭示AI如何提高测试效率和准确性,并指出在实施过程中遇到的主要问题及可能的解决途径。
23 1
|
14天前
|
机器学习/深度学习 传感器 人工智能
AI与未来医疗:重塑健康管理新格局随着人工智能(AI)技术的飞速发展,医疗行业正迎来一场前所未有的变革。AI不仅在数据分析、诊断支持方面展现出巨大潜力,还在个性化治疗、远程医疗等多个领域实现了突破性进展。本文将探讨AI技术在医疗领域的具体应用及其对未来健康管理的影响。
人工智能(AI)正在彻底改变医疗行业的面貌。通过深度学习算法和大数据分析,AI能够迅速分析海量的医疗数据,提供精准的诊断和治疗建议。此外,AI在远程医疗、药物研发以及患者管理等方面也展现出了巨大的潜力。本文将详细探讨这些技术的应用实例,并展望其对健康管理的深远影响。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与机器学习在医疗诊断中的应用
【9月更文挑战第32天】随着科技的不断发展,人工智能和机器学习已经在许多领域得到了广泛应用。在医疗领域,它们正在改变着医生和患者的生活。通过分析大量的医疗数据,AI可以帮助医生更准确地诊断疾病,预测患者的病情发展,并提供个性化的治疗方案。本文将探讨人工智能和机器学习在医疗诊断中的具体应用,包括图像识别、自然语言处理和预测分析等方面。我们还将讨论AI技术面临的挑战和未来的发展趋势。
|
1天前
|
机器学习/深度学习 人工智能 监控
AI与未来医疗:重塑健康产业的双刃剑随着科技的迅猛发展,人工智能(AI)正以前所未有的速度融入各行各业,其中医疗领域作为关系到人类生命健康的重要行业,自然也成为AI应用的焦点之一。本文将探讨AI在未来医疗中的潜力与挑战,分析其对健康产业可能带来的革命性变化。
在医疗领域,人工智能不仅仅是一种技术革新,更是一场关乎生死存亡的革命。从诊断到治疗,从后台数据分析到前端临床应用,AI正在全方位地改变传统医疗模式。然而,任何技术的发展都有其两面性,AI也不例外。本文通过深入分析,揭示AI在医疗领域的巨大潜力及其潜在风险,帮助读者更好地理解这一前沿技术对未来健康产业的影响。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在医疗诊断中的应用
【9月更文挑战第31天】本文将介绍人工智能(AI)在医疗诊断领域的应用。我们将探讨AI如何帮助医生更准确地诊断疾病,提高医疗效率,以及它对患者和医生的影响。通过实际案例,我们将展示AI如何在医疗领域发挥重要作用。
|
5天前
|
数据采集 人工智能 自然语言处理
软件测试中的人工智能应用与挑战
本文探讨了人工智能在软件测试中的应用及其所面临的挑战。通过分析AI技术如何优化测试流程、提高测试效率以及目前存在的局限性,文章提供了对软件测试未来发展趋势的深入思考。
|
5天前
|
机器学习/深度学习 人工智能 搜索推荐
探究人工智能在医疗健康中的应用与挑战
本文深入探讨了人工智能(AI)在医疗健康领域中的应用及其所面临的挑战。随着科技的不断进步,AI技术在医疗领域的应用日益广泛,从疾病诊断、治疗方案制定到患者护理等方面都展现出巨大的潜力。然而,尽管AI在医疗健康领域取得了显著成果,但也面临着数据隐私、算法偏见和伦理道德等方面的挑战。本文将详细介绍这些应用和挑战,并探讨可能的解决方案,以期为读者提供对AI在医疗健康领域发展的全面理解。
下一篇
无影云桌面