查看: 1021|回复: 0

[视觉识别入门教程] HuskyLens AI视觉传感器x掌控板:入门教程03—智能的追光灯

[复制链接]
本教程是关于二哈识图(HuskyLens)AI视觉传感器掌控板的官方系列教程,HuskyLens AI视觉传感器,二哈识图(HuskyLens)是一款用一个按键即可完成AI训练的学习门槛较低的人工智能视觉传感器,内置6种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签(二维码)识别。
另外DFRobot发布了micro:bit、Arduino开发板和HuskyLens AI视觉传感器入门教程

项目3:智能的追光灯

202007133886..png

我们在电视上或者剧院中观看节目时,我们经常会看到一道追光灯打到演员身上,并随着演员的动作而移动,是不是非常耀眼醒目?
你知道追光灯在舞台上都是怎么实现追光的吗?追光灯在实际应用中往往还是使用人工或者编程控制的方式进行,人工的方式需要追光师与演员多次彩排配合才能够实现出完美的舞台效果,而编程控制则是提前编写入固定的路径,使追光灯按照设置好的路径移动,这样对演员的限制又很多,如果稍微走偏几步就会影响舞台效果。
所以如果能有一个智能自动的追光灯,能自动识别演员去进行追光相信是对舞台表演会有很大的帮助。如果想要做舞台上最“亮”的仔,那自动追光灯是必不可少的,但是如何让追光灯能够跟上你的步伐,就需要一个操作精准的追光灯“师傅”了。

功能介绍:
本项目利用HuskyLens的物体追踪功能,通过学习舞台上的人,实现对其进行追踪,驱动云台自动追踪,从而驱动灯光实时追踪你的脚步。

材料清单:
202007132143..png


知识园地:
当我们需要追踪一个活动的物体,除了人工操作以外就需要使用到视觉物体追踪技术了,这项技术广泛应用在我们的生活中,如视频监控、无人机跟随拍摄等。我们这个项目就是利用HUSKYLENS的物体追踪功能来实现智能追光跟随的。

一、什么是物体追踪?
物体追踪是人工智能视觉识别中非常重要的一个功能,属于物体行为识别的一个类别。物体追踪是计算机视觉中的一项重要任务,是指对视频序列中的目标状态进行持续推断的过程,简单来说就是识别指定目标并追踪或者追踪摄像头视觉范围内移动的物体。物体追踪技术在军事和民用方面都有着十分广泛的应用。

202007135893..png

物体追踪工作原理:
通过单摄像头采集图像,将图像信息传入计算机,经过分析处理,计算出运动物体的相对位置,同时控制摄像头转动,对物体进行实时追踪。物体追踪系统执行追踪功能时主要分为四步,识别物体、追踪物体、预测物体运动、控制摄像头。

202007134224..png


识别物体是在静态背景下,通过一些图像处理的算法,得到较为精确的物体的外观信息,能够识别出物体的形态并标注出来,如图所示。

202007136697..png

追踪物体是通过上一步得到的物体的外观信息,根据物体的外观特征,使用算法对后面的图像序列进行跟踪,并且可以在后续的追踪中进行更深入的学习,使追踪越来越精确。如图中,在移动中缓慢旋转物体,可以对其进行多角度学习。

202007131943..png

预测物体运动是为了提高效率采用算法进行计算,预测下一帧运动物体图像的位置。可以优化算法并提高效率。如图可以通过前几秒钟鸟的移动趋势来预测后续的移动路径和动作。

202007132737..png

控制摄像头在采集图像信息的同时移动摄像头,使摄像头跟随着物体移动的方向调整方向,一般需要配合云台或其他运动机构来实现。

202007136668..png

物体追踪技术主要应用在以下领域:
1. 智能视频监控:基于运动识别(基于步法的人类识别、自动物体检测等),自动化监测(监视一个场景以检测可疑行为);交通监视(实时收集交通数据用来指挥交通流动);

202007137470..png

2. 人机交互:传统人机交互是通过计算机键盘和鼠标进行的,为了使计算机具有识别和理解人的姿态、动作、手势等能力,跟踪技术是关键;

202007139917..png

3. 机器人视觉导航:在智能机器人中,跟踪技术可用于计算拍摄物体的运动轨迹;


202007135783..png


4.虚拟现实:虚拟环境中3D交互和虚拟角色动作模拟直接得益于视频人体运动分析的研究成果,可给参与者更加丰富的交互形式,人体跟踪分析是其关键技术;

202007133987..png


二、HUSKYLENS传感器-物体追踪功能演示
如果想要追光灯能够实时的跟随你的步伐移动,那就需要有一双“眼睛”紧盯你的步伐,并操作灯光实时追随着你,那我们如何实现这个功能呢?就要使用到我们使用的HUSKYLENS传感器中的物体追踪功能。

HUSKYLENS传感器中的物体追踪功能是利用传感器内置算法,通过对物体的特征进行学习而实现对物体在屏幕中位置的追踪,并可以将位置的坐标值反馈给主控的功能。我们可以通过获取的物品位置值来驱动云台实现实时追踪的追光灯的功能。

学习物体:
与颜色识别或人脸识别不同,物体追踪是可以对一个物体(或人)进行完整的学习并进行识别的,颜色识别只针对颜色,而人脸则只是人体的一部分,物体追踪则是针对这个物体的整体特征进行学习从而进行追踪
把HuskyLens对准需要追踪的物体,调节物体与HuskyLens的距离,将物体包含在屏幕中央的橙黄色方框内。如不方便,包含特征鲜明的局部亦可。长按“学习按键”不松开,并调整角度和距离,使得HuskyLens从不同的角度和距离学习该物体。学习过程中,屏幕上的黄框会标注“学习中:ID1”。

202007133877..png

当HuskyLens在不同的角度和距离都能追踪到该物体时,就可以松开“学习按键”结束学习了。
小提示:如果屏幕中央没有橙黄色方框,说明HuskyLens之前学习过一个物体,请选择“忘记学过的物品”后重新学习。

打开“追光灯”

HuskyLens传感器上有两颗补光灯,可以让他在昏暗的环境下依然可以稳定的执行检测功能。

202007131474..png


打开补光灯:
切换到常规设置选项,进入设置菜单。在常规设置菜单下找到LED开关。

202007139029..png 202007131586..png

摁下按钮就可以通过左右拨动设置LED灯的开关了。

202007136171..png


三、二自由度云台
202007139324..png

什么是云台?
云台是安装、固定摄像机的支撑设备,它分为固定和电动云台两种。固定云台适用于监视范围不大的情况,在固定云台上安装好摄像机后可调整摄像机的水平和俯仰的角度,达到最好的工作姿态后只要锁定调整机构就可以了。电动云台适用于对大范围进行扫描监视,它可以扩大摄像机的监视范围。电动云台高速姿态是由两台执行电动机来实现,电动机接受来自控制器的信号精确地运行定位。

云台在案例中的应用
二自由度云台的作用是移动摄像头使摄像头保持一直将识别的图框保持在识别区域中心的功能。这样我们的追光灯就可以保证一直照射在目标身上。二自由度云台的两个自由度分别是水平移动(X轴)垂直移动(Y轴)这两个方向的移动,分别对应我们云台上安装的两个舵机的移动方向。


202007139548..png


Tips:什么是舵机?
舵机是一种可以指定控制位置(角度)的电机,可以通过Mind+中的程序来指定控制舵机旋转的角度。我们最常用的舵机大多最大旋转角度是0°~180°,也有90°或者其他角度的。也有比较特殊的360°舵机,但是360°舵机不能够控制其旋转到指定的角度。本节中我们使用的是180°舵机。

项目实践:
我们将分为两步将任务完成,首先我们会学习使用HuskyLens的物体追踪功能,并读取物体的坐标数据。然后再次基础上添加云台实现最终的自动追光的功能。
任务一:物体追踪与坐标值的作用
通过HuskyLens传感器获取到物体在屏幕中的位置坐标值,我们可以通过坐标值判断物体在传感器的相对位置。
任务二:云台驱动的追光灯
在上步获取了坐标值之后,驱动舵机移动HuskyLens传感器,让坐标值的位置移动到屏幕中心,这样就可以实现实时追光的效果。


任务一:物体追踪与坐标值的作用


1、 硬件连接:
202007138266..png


HuskyLens传感器使用的是IIC接口,需要注意线序,不要接错或接反。

2、 程序设计:
STEP1 学习与识别
在设计程序之前我们需要让HuskyLens传感器学习我们需要追踪的“演员”。

202007137059..png


STEP2 Mind+软件设置
打开Mind+软件(162或以上版本),切换到“上传模式”,点击“扩展”,在“主控板”下点击加载“掌控板”,在“传感器”下点击加载“HUSKYLENS AI摄像头”。

202007138597..png 202007132835..png


STEP3 指令学习
来认识一下主要用到的几条指令。

202007136953..png
202007137581..png
202007139620..png


STEP4 坐标分析
HuskyLens传感器屏幕分辨率为320*240,如图。那么我们通过程序获取的物体中心点坐标也就在这个范围之内。如,获取的坐标值为(160,120)那现在追踪的物体就在屏幕的中心。

202007131666..png

STEP5 流程图分析
202007139824..png

3、 程序示例
202007133304..png
4、 运行效果

202007132957..png

可以在掌控板上显示追踪的物体的X、Y坐标值。



任务二:
云台驱动的追光灯



1、结构搭建及硬件连接

在了解了物体追踪的功能和云台的功能后,我们就需要动手来组装了,首先我们组要组装二自由度云台。

1.首先,找到舵机中的舵盘,进行修剪,需要修剪途中标注的两个;

202007139584..png
202007131522..png


2. 将修建好的舵盘用螺丝固定在底座上;

202007132857..png

3. .用固定座固定舵机,注意左右方向不要装反;

202007137851..png

4. 将修剪好的另一个舵盘用螺丝固定在图示位置;

202007137252..png

5. 然后将底座与上步装好的组建组合;


202007131641..png


6. 然后将最后一个结构件与舵机组装在一起;
202007136422..png

7. 将装好的部件组装在一起就完成了,装入需要稍微掰开一点卡扣;

202007135721..png

8. 然后将HuskyLens传感器固定在上面,由于云台不是专为传感器设计所以我们可以简单添加一些结构来适配它。这里使用了一小片瓦楞纸来固定。

202007134572..png

9. 装上HuskyLens传感器后,云台的重心就偏移了,导致云台无法立住,所以需要添加一个底座来固定它。先将底座固定在上面,然后再将其他部件组装在一起。

202007131499..png

202007138694..png

完成后将他们的连接线接到扩展板上。
202007137634..png


注:接线时注意引脚一一对应


设备
扩展板引脚
HuskyLens
IIC
X轴舵机
P8
Y轴舵机
P9



2、程序设计:
让追光灯保持追踪物体的话,主要需要的就是这个功能:

202007137342..png


在上一步我们知道,HuskyLens传感器的屏幕分辨率为320*240,如图。那么屏幕的中心点坐标就是(160,120),那么我们可以根据对象方框的中心点坐标,让舵机作出以下动作,实现跟踪。

202007132300..png



对象中心坐标
舵机动作
X<160
X舵机向左
X>160
X舵机向右
X=160
X舵机停止
Y>120
Y舵机向上
Y<120
Y舵机向下
Y=120
Y舵机停止

当对象方框中心点到达屏幕中心时,系统会判断为目标在追光灯的位置中心。追光灯就依靠哈士奇上自带的两颗LED来实现。
根据以上分析得出程序逻辑图如下:

202007137285..png



为了简化程序的复杂度,这里我们会用到变量和自定义函数的模块。变量的主要作用,就是用来存储信息,在之后需要使用的时候再去调用它。而函数则是存储一段指令,在之后需要的时候去调用它。

202007139195..png 202007132988..png



变量与函数

3、程序示例:
为这段程序相交于上个案例多使用了两个舵机,所以需要在扩展模块的执行器中添加舵机模块。

202007132101..png


1、首先我们设置变量和自定义函数,在新疆数字类型变量中新建“X轴”、“Y轴”这两个变量;在函数自定义模块中新建“初始化舵机”、“X轴移动”、“Y轴移动”这三个模块。

202007137966..png 202007137360..png



2、对三个自定义模块函数进行定义,首先是初始化舵机,目标是将舵机位置移动到初始值,并将舵机的旋转角度于变量“X轴”和“Y轴进行了关联;

202007135590..png

3.定义”X轴移动“,这里执行的功能是程序框图中对物体中心坐标X轴这部分判断执行

202007134977..png


4.同理,“Y轴移动”的功能是依据程序框图里Y轴部分的判断
202007135037..png


5.最后我们来完成主程序,只需要调用之前编辑好的自定义函数就可以,程序内容简洁明了

202007131352..png

4、运行效果:
202007136849..png



202007131958..png

HuskyLens传感器会根据舞台上人物的移动而跟随进行追光。


项目小结:


项目回顾:
本节课学习使用了HuskyLens传感器的物体追踪功能,配合云台实现了自动追光灯的功能;在现实生活中,物体追踪功能还有这更多的应用。

知识点回顾:
1、 学习了物体追踪的主要技术;
2、 学习了云台和舵机的技术于使用;
3、 学习了程序中变量和自定义函数的概念和使用。


项目拓展:
在完成了智能追光灯项目之后,是否能够完成一个自动打靶装置?利用哈士奇的物体追踪功能来自动瞄准移动靶或固定靶。尝试使用激光灯来作为打靶的”子弹“,使用光线传感器来检测是否击中靶心的方式来实现功能。


拓展知识:
追踪物体深度学习:
移动HuskyLens或者目标物体,屏幕中的框会自动追踪目标物体。追踪物体时,会显示“学习中:ID1”,表示HuskyLens一边追踪物体,一边学习,这样设置有助于提高物体追踪的能力;也可以长按“功能按键”,进入二级菜单参数设置,选择“学习开启”,关闭此参数。


202007136110..png


当识别结果满足要求,达到预期效果,就可关闭一边追踪一边学习的功能,方法是:长按“功能按键”,进入物体追踪功能的二级菜单参数设置,选择“学习开启”,关闭此参数即可(进度条颜色变白,进度条上的方块位于进度条的左边)。
小提示:追踪物体时,每次只能追踪一个物体,可以是任何有明显轮廓的物体,甚至是各种手势。



二哈识图AI视觉传感器其他相关教程:


micro:bit:

掌控板:
HuskyLens AI视觉传感器x掌控板:入门教程01—音乐魔镜
HuskyLens AI视觉传感器x掌控板:入门教程02—色彩钢琴
HuskyLens AI视觉传感器x掌控板:入门教程03—智能的追光灯HuskyLens AI视觉传感器x掌控板:入门教程04—自助超市收银机
HuskyLens AI视觉传感器x掌控板:入门教程05—流浪猫狗喂食机
HuskyLens AI视觉传感器x掌控板:入门教程06-循“轨”蹈矩的麦昆
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail