多视角3D医疗空间感知系统的研究

weixin_42705053 2022-01-07 19:16:15

一、项目背景

智能手术室是随着物联网而诞生的一个新的医疗项目,它是以创造手术室的高效率、高安全性、以及提升手术室对外交流平台为目的的多个系统(如医学、工控、通讯、数码等)的综合运用。是将净化工程与数字信息化融合,将所有关于患者的信息进行系统集成,使手术医生、麻醉医生、手术护士获得全面的患者信息、更多的影像支持、精确的手术导航、通畅的外界信息交流,为整个手术提供更加准确、更加安全、更加高效的工作环境,也为手术观摩、手术示教、远程教学及远程会诊提供了可靠的通道,从而创造手术室的高成功率、高效率、高安全性、以及提升手术室的对外交流。因此,智能手术室需要构建多视角的3D空间系统,获取RGBD(颜色+深度)数据进行空间感知。

二、课题概述

2.1 课题简介

研究多传感器混合系统,搭建以RGBD 相机为基础的多模态空间感知系统。该系统针对室内环境,特别是医学场景(如手术室、影像室),利用多视角获取的RGBD数据进行空间感知。系统需实现多相机系统标定、实时捕捉、流式传输等多种实时系统必备功能。同时,系统需引入深度学习方法进行空间目标的识别和追踪,以探索多种医学场景应用:医学工具识别、关键点检测等。

2.2 基本功能

  1. 获取相机参数

  2. 多相机标定

  3. 多相机数据融合

  4. 实时捕捉画面与流式传输

2.3 开发平台和工具

相机平台:StereoLabs Zed2i , Asure Kinect DK

开发工具:C/C++,Python,PyTorch,Eigen,OpenCV,OpenGL,ffmpeg,libyuv

三、需求分析

3.1功能性需求

  1. 实现多平台多相机的实时视频传输,包括彩色图片和深度图片

  2. 获取带颜色的空间点云数据,用来进行三维重建、图像分割、关键点检测等研究用途

  3. 系统要有兼容不同相机平台的能力,包括未来可能加入系统的未知相机平台

3.2非功能性需求

  1. 健壮性:对于各种类型的相机(目前的需求有StereoLabs Zed2i , Asure Kinect DK两种相机,后续可能会加入新的相机平台),给定配置(分辨率、fps等),系统都可以获得正确的颜色图和深度图,并完成多相机视角的三维重建。

  2. 易用性:使用者只需要打开系统、设定参数、获取所需要的数据,无需关注不同相机平台api使用上的差异。

  3. 可靠性:由于系统将用于医学场景,因此要能够保证获取的图片等信息正确无误。

  4. 实时性:实时三维重建、医学工具识别、关键点检测等医学场景需求要求系统的响应时间足够小,不要有明显的延迟,因此对软件代码的优化、GPU性能等都要求较高。

四、用例建模

4.1用例图

image-20220107155619167

 

4.2用例描述

表4-1  捕获实时视频流用例描述表

描述项说 明
用例捕获实时视频流
参与者研究人员、医生
简要说明使用者打开系统,设置参数,显示实时传输的视频
前置条件本系统已经运行启动,相机已连接
后置条件前端显示实时传输的视频
基本事件流

1.使用者启动应用

2.选择要打开的相机

3.设置颜色/深度模式

4.设置分辨率、fps等参数

5.相机拍摄照片

6.将不同相机的数据融合

7.显示实时视频

其他事件流系统将不同相机捕获的图片转换为自定义的统一格式,然后再进行其他操作
异常事件流相机未部署或找不到指定ID的相机,系统弹出“未检测到改相机”

表4-2  捕获实时视频流用例描述表

描述项说 明
用例捕获多相机视角的空间数据
参与者研究人员
简要说明使用者打开系统,拍摄多张棋盘格照片,计算出相机参数并配置
前置条件本系统已经运行启动,相机已连接并部署在特定的应用场景
后置条件获得相机的内参和外参,完成多相机系统的空间搭建,获取多相机视角的空间数据
基本事件流

1.使用者启动应用

2.打开所有部署好的相机

3.设置颜色模式

4.移动棋盘格拍摄照片

5.通过标定算法计算每个相机的内参矩阵和外参矩阵

6.将参数写入配置表

7.获取空间数据

异常事件流相机未部署或找不到指定ID的相机,系统弹出“未检测到改相机”

表4-3  拓展相机系统用例描述表

描述项说 明
用例拓展新的相机系统
参与者研究人员
简要说明使用者在系统中加入新的相机,并实现系统中的所有功能
前置条件本系统已经开发完成
后置条件系统中加入了新的相机平台
基本事件流

1.使用者将新平台的api加入系统的接口

2.测试该相机能否正常工作

3.测试多相机能否正常工作

五、设计方案

5.1系统总体设计

本系统作为一个大型研究性项目的一部分,重点研究数据捕捉、数据融合、多相机系统标定等内容,因此在前端使用opencv显示图片和视频,使用opengl进行彩色点云图的渲染;使用eigen作为线性代数库用来对数据进行融合和处理;使用ffmpeg和libyuv进行视频数据的存储;在系统搭建完成后,将获取到的数据制作为数据集,利用PyTorch等平台进行进一步的研究。

5.2设计模式

由于要兼容不同相机平台,后续可能会继续添加新的相机系统,因此本系统采用的设计模式是工厂模式,这样就可以屏蔽不同平台api的差异,只关心抽象的功能接口,这样就可以为后续对于数据的获取和研究工作带来巨大的便利,但缺点是每次增加一个不同的相机系统时,都需要增加一个具体类和对象实现工厂。

具体来说,我们使用sensorBase类来作为不同相机类的抽象,使用者只需新建一个sensorBase的对象,并将其指定为特定的相机对象(比如zedSensor),就可以直接使用共同功能(例如CaptureColorImage)的不同实现,这样就不用关心具体的api调用和其他相关问题。不同相机捕获的所有类型的数据(bgra格式的颜色图、rgb格式的颜色图、float表示的深度、short表示的深度图、不同类型的点云数据等)都可以抽象为imageBase类,来完成数据融合。

以下为具体实现的类图:

class

 

作者:269

...全文
212 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧