今年大家的学术热情都十分高涨,以前本科的时候参加过小挑,商业性更强,大挑能参加的项目更丰富,更加注重科技创新能力。本次比赛感觉小论文的内容还能继续丰富,于是就拿最近的一项专利投了。
首先写了作品申报书,因为最近一直在做元宇宙的应用,所以又手搓了一个Unity融合多传感器的项目,因为不确定进入市赛还是转战专项赛,所以只能暂时讲一讲实现的思路,等所有比赛结束,再分享心路历程和准备过程。
一、课题背景及研究意义
老年人作为一个特殊的群体,认知功能减退已成为影响个体身心状况和生活质量的重要因素。目前,市面上已经存在一些辅助行走的设备等,但是没有辅助设备针对记忆力退化这一问题。微软 2016 年的一项专利为此提出了解决方案:使用 HoloLens 帮助人们记忆。借鉴微软的思路,开发视觉SLAM在HoloLens下的应用,这样就可以提高智能系统可行性,以及长期运行的鲁棒性。
二、作品所处阶段
- 实验室阶段
- 中试阶段
- 生产阶段
目前处于中试阶段,技术转让方式为专利权转让
客户端部分代码展示
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
public class ClientItem : MonoBehaviour
{
public GameObject SubPanel;
public int Type;
public int Id;
public int UChatPhone;
public int UChatVideo;
public TextMeshProUGUI NameText;
public TextMeshProUGUI IpText;
public Image TypeImage;
public Sprite[] TypeSprits;
RuntimePlatform platform;
public void SetValue(int id, int type, string name, string ip)
{
Id = id;
Type = type;
int spriteIndex = 0;
platform = (RuntimePlatform)type;
if (platform == RuntimePlatform.OSXEditor || platform == RuntimePlatform.WindowsEditor
|| platform == RuntimePlatform.WindowsPlayer || platform == RuntimePlatform.OSXPlayer)
{
spriteIndex = 1;
}
else if (platform == RuntimePlatform.IPhonePlayer)
{
spriteIndex = 2;
}
else if (platform == RuntimePlatform.Android)
{
spriteIndex = 3;
}
else if (platform == RuntimePlatform.WSAPlayerX86)
{
spriteIndex = 4;
}
else if (platform == RuntimePlatform.WSAPlayerARM)
{
spriteIndex = 5;
}
NameText.text = name;
IpText.text = ip;
TypeImage.sprite = TypeSprits[spriteIndex];
}
private void OnEnable()
{
LayoutRebuilder.ForceRebuildLayoutImmediate(transform.GetComponent<RectTransform>());
}
public void OnClick()
{
SubPanel.SetActive(!SubPanel.activeInHierarchy);
LayoutRebuilder.ForceRebuildLayoutImmediate(transform.parent.GetComponent<RectTransform>());
}
public void UploadAnchor()
{
if (platform == RuntimePlatform.WSAPlayerX86 || platform == RuntimePlatform.WSAPlayerARM)
{
ARManager.Instance.UploadAnchor();
}
else
{
ShowMessageManager.Instance.ShowMessage("请选择HoloLens设备!");
}
}
public void DownLoadAnchor()
{
if (platform == RuntimePlatform.WSAPlayerX86 || platform == RuntimePlatform.WSAPlayerARM)
{
ARManager.Instance.DownLoadAnchor();
}
else
{
ShowMessageManager.Instance.ShowMessage("请选择HoloLens设备!");
}
}
public void Callibration()
{
if (Id == ClientNetworkManager.Instance.UserId || ServerNetworkManager.Instance==null || !ServerNetworkManager.Instance.IsStartServer)
{
ShowMessageManager.Instance.ShowMessage("无权限!");
return;
}
ShowMessageManager.Instance.ShowSelectBox("校准客户端?",()=>
{
ARManager.Instance.SendCallibrationRequest(Id);
});
}
public void StartHoloview()
{
if (platform == RuntimePlatform.WSAPlayerX86 || platform == RuntimePlatform.WSAPlayerARM)
{
ShowMessageManager.Instance.ShowSelectBox("开启第一视角?", () =>
{
ARManager.Instance.StartHoloview(Id);
});
}
else
{
ShowMessageManager.Instance.ShowMessage("请选择HoloLens设备!");
}
}
public void PhoneCall()
{
if (UChatPhone == UnityChatManager.Instance.UnityChatPhone )
{
UChatManager.Instance.UnityChatPhone();
}
else
{
ShowMessageManager.Instance.ShowMessage("语音呼叫失败,请检查服务器!");
}
}
public void VideoCall()
{
if (UChatVideo == UnityChatManager.Instance.UnityChatVideo )
{
UChatManager.Instance.UnityChatVideo();
}
else
{
ShowMessageManager.Instance.ShowMessage("视频呼叫失败,请检查服务器!");
}
}
}
三、使用范围和前景预测
设计有效和完善的协同交互模型来促进原型系统的实现,旨在帮助穿戴 Microsoft HoloLens2 设备的用户对真实世界的物体对象进行实时高效的检测,不仅能够识别目标得到物体对象的位置,而且可以取得目标的分类信息及其所属类别的置信度。
前景方面,利用 HoloLens2 的增强现实信息能够更加直观地看到检测信息,摆脱传统的人机交互方式,达到虚实交互的目的,本项目工作不仅扩宽了 HoloLens 的用户群体,而且为 HoloLens等增强现实设备的应用提供了新的思路。
四、总结
本次挑战杯从校内预选赛到正式比赛收获很丰富,也认识了很多技术大牛,也有一些本科生也非常优秀,当然研究生同学大家之间的竞争也非常激烈,这也是自疫情以来第一次参加线下答辩,紧张且兴奋!且长凌风翮,乘春自有期。