0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

疫苗接种机器人中的肌肉注射点智能检测技术

XILINX开发者社区 来源:XILINX开发者社区 作者:王润曦、顾宇琪、 2022-07-14 14:28 次阅读

摘要

本项目对于目前全球新冠疫情下低收入国家疫苗接种率不高的问题,运用AMD-Xilinx提供的KV260硬件平台和Vitis-AI开发平台,基于2D图像的视觉AI辅助的疫苗肌肉注射点检测技术,结合轻量级神经网络模型,利用量化技术、后处理技术等,设计了一个低开发成本、低人力成本、低交叉感染风险的自动疫苗接种方案。

项目背景

新型冠状病毒还在影响着人们生活的方方面面,给公共卫生、全球运输系统和许多领域带来了前所未有的挑战。大多数政府已经实施过封锁,限制国际旅行等各类政策,以减轻病毒的传播。鉴于目前还没有能够对抗病毒的特效药,接种疫苗仍然是最有效手段之一。

然而,全球疫苗接种率仍然很低,尤其是在低收入国家。根据世卫组织的数据,低收入国家只有14.5%的人口接种了至少一剂疫苗[1]。许多非洲国家的疫苗接种率更低,仅在1.5%至4%之间。在这种情况下,如何才能提供一个低成本的疫苗接种方案是最紧急,但也是极具挑战性的。因为开发疫苗本身成本很高,接种疫苗这个过程也有一定成本,此外,传统的疫苗接种可能会增加病毒传播的风险,还有医护人员的工作量。

自主机器人注射能成为一种安全有效的方案,人们只需走进封闭的空间,露出手臂。最近,有两个自动注射机器人原型被开发出来。第一个是加拿大的初创公司开发的Cobi:是世界上第一个自动无针注射机器人,它通过激光雷达传感器和AI位置跟踪,得以识别人体识别。然后, 360度深度感知系统会引导机械臂定位,注射药物[2]。另外一个是“后羿”,它是由上海同济大学研发的国内首款自动疫苗注射机器人,它通过三维人体模型,得以自动识别注射位置。通过一个简单的三维点云相机对人体进行拍摄,快速自动拟合人体对应部位的三维模型,准确识别疫苗注射部位及注射角度。[3, 4]

9cebbede-033d-11ed-ba43-dac502259ad0.jpg

值得一提的是,这两种解决方案都采用了无针注射,确保了安全和无痛注射。另一个关键因素是它们检测注射部位的方案。为了完成检测任务,这两种机器人的方案都涉及到复杂的三维模型识别算法还有多维度的传感器。虽然这两个机器人所用的算法可以提供准确的部位检测,但它们也涉及大量的开发工作,多维度传感技术和昂贵的硬件支持,这些都会增加这些机器人的整体成本。所以本项目中,我们认为有必要去提出一个低成本且有效的注射点识别方案,这样才将机器人部署到世界各地。

在正式开始项目之前,我们咨询医学专家得知目前的新冠疫苗主要是靠肌肉注射,因为可以使药剂迅速参与到系统循环中。综合考虑下,三角肌是最适合接种的部位,因为它血供充足,面积大。而且不同个体之间,三角肌差异不大。这启发了我们,基于Xilinx KV260,利用视觉AI辅助技术,实现2D肌内注射部位检测方案。

技术设计过程总览

9cff6038-033d-11ed-ba43-dac502259ad0.png

我们的目标是让连接 KV260 的显示器指示患者手臂上的注射部位。由于硬件资源的限制和目前现有的手臂检测工作数量较少,我们决定将问题简化为人脸检测辅助后处理来指示结果。对于我们项目的主体部分,研究重点放在基于 Vitis-AI 的模型选择和训练策略。而对于后处理,主要使用OpenCV进行代码编写,后使用VVAS进行编译和处理。在测试阶段,我们使用收集到的与我们的应用场景相匹配的图片来查看模型与后处理模块结合下的准确性,然后相应地调整我们的模型或是后处理模块的参数

基于Vitis-AI的模型准备

根据VVAS官网的描述,VVAS支持 Vitis-AI 模型是有限的,对于我们需要的模型类 FACEDETECT,VVAS 中只有 densebox 可用,并且精度在我们可以接受的范围内。考虑到我们的应用场景是疫苗接种。为了降低病毒传播的风险,人们在打针时大多戴口罩。Vitis-AI 中预训练使用的数据集为 WIDER FACE,该数据集内不强调佩戴医用口罩的人脸。为了确保可以很好地检测戴口罩的人脸,尤其是当人们在注射过程中将侧脸转向仪器时,我们使用 MAFA(一个有口罩人脸数据集)对densebox原先自带的预训练的结果进行增加性训练。

模型训练、量化与编译流程

我们采用Vitis-AI里面预置的Caffe框架,可以使用以下命令在Vitis-AI中启动它:

9d172dbc-033d-11ed-ba43-dac502259ad0.png

我们的训练是基于Vitis-AI中预训练结果进行的,可以访问Vitis-AI的官方repo下载需要的densebox模型相关文件,并执行以下命令:

9d2e960a-033d-11ed-ba43-dac502259ad0.png

当然,在执行以上命令之前,请记得将“train.prototxt”文件中指向数据集的path改为MAFA数据集所在的路径。

对于模型的量化,我们只需执行以下命令:

9d5277a0-033d-11ed-ba43-dac502259ad0.png

该命令中使用到的“.caffemodel”浮点模型文件可由上一步的训练命令执行后得到,也可从我们整个项目的repo中下载:

https://github.com/iCAS-SJTU/J-eye/tree/main/models/float

为了得到最后能在KV260上执行的模型文件“.xmodel”,我们需要对量化后模型文件进行编译,可采用以下命令:

9d62bf20-033d-11ed-ba43-dac502259ad0.png

该命令中使用的文件均可从https://github.com/iCAS-SJTU/J-eye/tree/main/models/quantized下载,其中两个“deploy.*”文件均为模型量化后结果,“arch.json”文件可由KV260的官方源码repo获得。

后处理模块搭建

后处理模块的搭建中主要运用的工具就是VVAS,我们需要将它的整个repo clone下来。

9d700ed2-033d-11ed-ba43-dac502259ad0.png

(该部分的过程都假定我们在“${PATH_TO_VVAS}/VVAS/”目录底下,关于交叉编译环境的搭建,由于篇幅原因,详见我们在hackster.io上发布的文章)。

首先,我们需要先编译vvas-util里面的文件。这之中的第一步需要我们修改“meson.cross”里面的“SYSROOT”和“NATIVESYSROOT”。接着我们在“vvas-utils/”这个目录下执行以下命令:

9d8abd54-033d-11ed-ba43-dac502259ad0.png

在成功编译之后,将以下文件复制到指定位置。

9d98f860-033d-11ed-ba43-dac502259ad0.png

同时也可以把“vvas-utils/”目录下的所有“.h”文件复制到“${SYSROOT}/usr/include”这个目录下以避免一些后续的报错。

结束了“vvas-utils”部分的编译之后,我们开始“vvas-gst-plugins”部分的处理。我们可以再利用前面编辑过的“meson.cross”文件(直接复制到“vvas-gst-plugins/”目录下),然后执行同样的编译命令。

9da96f6a-033d-11ed-ba43-dac502259ad0.png

成功编译之后,我们还需要做一些文件复制。

9db5b8d8-033d-11ed-ba43-dac502259ad0.png

同时也同样需要把“vvas-gst-plugins/”目录下的所有“.h”文件复制到“${SYSROOT}/usr/include”这个目录下以避免一些后续的报错。

最后一步,我们进入到“vvas-accel-sw-libs/”目录下,将其中“vvas_xboundingbox/src”下的“vvas_xboundingbox.cpp”替换成我们修改过的https://github.com/iCAS-SJTU/J-eye/tree/main/post-processing/src中的cpp代码。然后执行以下命令:

9dc8c4b4-033d-11ed-ba43-dac502259ad0.png

在编译成功之后,进入到“build/vvas_xboundingbox/”下我们可以找到”vvas_xboundingbox.so”文件用于后处理模块当中。

集成于KV260

由于我们的应用是基于smartcam的,我们需要先下载基本的smartcam应用包。

9dda92fc-033d-11ed-ba43-dac502259ad0.png

在/opt/xilinx/share/ivas/smartcam/目录下,执行以下命令。

9df5246e-033d-11ed-ba43-dac502259ad0.png

接着,将

https://github.com/iCAS-SJTU/J-eye/tree/main/models/compiled

中所有的文件下载到该目录中。我们还需要将后处理模块要用到的文件

https://github.com/iCAS-SJTU/J-eye/tree/main/post-processing

复制到/opt/xilinx/lib目录底下。文件都部署完成后,我们可以执行以下命令来运行整个程序。

9e0d0840-033d-11ed-ba43-dac502259ad0.png

结果演示

患者应面朝左侧直立站/坐于相机前,检测结果将呈现于下图中显示器。

9e53f07a-033d-11ed-ba43-dac502259ad0.jpg

当患者位于难以进行注射的位置时,显示器上将发出位置偏离的警告信息

9e6e5af0-033d-11ed-ba43-dac502259ad0.jpg

当患者位于可检测范围内时,注射点位置将由白色圆圈标出。

9e82de4e-033d-11ed-ba43-dac502259ad0.jpg

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28418

    浏览量

    207073
  • 检测技术
    +关注

    关注

    2

    文章

    354

    浏览量

    29077

原文标题:作品回顾|J-Eye: 疫苗接种机器人中的肌肉注射点智能检测技术

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    烧结银在智能机器人的应用

    烧结银作为一种经过特殊工艺处理的导电材料,近年来在智能机器人领域的应用逐渐凸显出其独特优势。本文将深入探讨烧结银在智能机器人中的应用现状、技术
    的头像 发表于 12-26 16:34 52次阅读

    【「具身智能机器人系统」阅读体验】+初品的体验

    的学习资源,以培养更多的专业人才。随着具身智能机器人技术对社会的影响越来越大,该书还可以向公众普及相关的知识,以提升社会对新技术的认知和接受度,从而为
    发表于 12-20 19:17

    《具身智能机器人系统》第1-6章阅读心得之具身智能机器人系统背景知识与基础模块

    要给AI这个聪明的“头脑”装上一副“身体”。这个“身体”可以是一部手机,可以是一台自动驾驶汽车。而人形机器人则是集各类核心尖端技术于一体的载体,是具身智能的代表产品。与传统的软件智能
    发表于 12-19 22:26

    变速齿轮在机器人中的使用

    变速齿轮在机器人中具有广泛的应用,它们通过改变转速和扭矩来满足机器人执行不同任务时的需求。以下是对变速齿轮在机器人中使用情况的分析: 一、变速齿轮的基本概念 变速齿轮是一种能够改变输入轴转速和输出轴
    的头像 发表于 12-04 17:11 334次阅读

    产业用机器人中的旋转花键若损伤有何影响?

    旋转花键在产业用机器人中是关键的组件之一,如果机器人中的旋转花键损坏,会对机器人的运行和性能产生一定影响。
    的头像 发表于 11-23 17:54 90次阅读
    产业用<b class='flag-5'>机器人中</b>的旋转花键若损伤有何影响?

    PID控制在机器人中的应用案例

    PID控制作为一种经典的控制策略,因其简单、鲁棒和易于实现的特点,在机器人领域得到了广泛的应用。以下是一些PID控制在机器人中的具体应用案例: 1. 电机速度控制 在机器人的运动控制中,电机速度控制
    的头像 发表于 11-13 14:42 587次阅读

    NLP技术在聊天机器人中的作用

    聊天机器人,也称为聊天AI,是一种通过文本或语音与人类进行交流的软件。它们广泛应用于客户服务、在线购物、个人助理等领域。NLP技术是实现聊天机器人智能对话能力的关键。 1. 理解用户意
    的头像 发表于 11-11 10:33 437次阅读

    【书籍评测活动NO.51】具身智能机器人系统 | 了解AI的下一个浪潮!

    。 这些技术的综合应用使具身智能系统能够进行复杂的环境感知、决策制定和物理操作。例如,通过多模态感知技术智能体能够综合视觉、 听觉和触觉数据,更全面地理解和响应其所处的环境。 具身
    发表于 11-11 10:20

    3D霍尔传感器在扫地机器人中用于碰撞检测

    电子发烧友网站提供《3D霍尔传感器在扫地机器人中用于碰撞检测.pdf》资料免费下载
    发表于 09-06 10:26 0次下载
    3D霍尔传感器在扫地<b class='flag-5'>机器人中</b>用于碰撞<b class='flag-5'>检测</b>

    MT6825 磁编码 IC 赋能智能耕种机器人技术密码

    IC 在智能耕种机器人中的应用技术奥秘。 首先,我们来了解一下什么是 MT6825 磁编码 IC。简单来说,它是一种高度精密的集成电路,能够准确地检测和测量磁场的变化。在
    的头像 发表于 08-16 17:44 287次阅读

    NLP技术机器人中的应用

    在人工智能的广阔领域中,自然语言处理(NLP)技术作为连接人类语言与机器智能的桥梁,正逐渐渗透到我们日常生活的方方面面,其中机器人
    的头像 发表于 07-04 16:04 506次阅读

    步进电机在工业机器人中的应用

    类型,在工业机器人中发挥着至关重要的作用。本文将从步进电机的定义、特点出发,详细探讨其在工业机器人中的应用,并结合相关案例进行分析,以期为工业机器人技术的发展提供参考。
    的头像 发表于 06-17 10:10 784次阅读

    abb机器人home设置方法

    ,我们需要了解什么是home。在ABB机器人中,home是一个特定的位置,机器人在执行任务之前会先回到这个位置。这个位置可以是机器人的初
    的头像 发表于 06-17 09:27 3222次阅读

    触翔X86工控主板在交互机器人中的应用

    X86工控主板在交互机器人中的应用主要体现在其高可靠性、抗干扰性和稳定性等方面,为交互机器人的正常运行和精确控制提供了有力支持。以下是关于X86工控主板在交互机器人中应用的详细分析:
    的头像 发表于 05-28 15:48 475次阅读

    其利天下技术·搭载无刷电机的扫地机器人的前景如何?

    随着懒人经济的崛起,智能家居设备的需求呈现出显著的增长态势。作为智能家居领域的一员,扫地机器人因其方便、实用的特性而备受消费者青睐。特别是在无刷电机技术的加持下,扫地
    发表于 05-05 15:03