人文关怀
请不要忘记那些重要的人。
在2013年中国公益广告《打包》中,年迈的父亲即便已经慢慢丧失了记忆,直到连自己亲爱的儿子都不再认识,但却没忘记在餐厅中偷偷“打包”儿子最爱吃的饺子。这份跨越了时间和病痛的爱意,打动了无数观众,也给年幼的我们留下了深刻的印象。最近几年,有关老年痴呆,即“阿尔兹海默症”的影视作品越来越多。《寻梦幻游记》中,阿尔兹海默症让主人公COCO的奶奶忘记了家人,但COCO最终用歌声与爱唤起了她的记忆。就是这些,老人与好友、子女甚至爱人明明面面相对,却无法相认的场景,总让我们心情沉重;而当老人重拾记忆,回想起对面那熟悉的面庞时的场景,又总让我们潸然泪下。影片中曾有这么一句话:死亡并不可怕,遗忘才是最终的告别,请记住你爱的和爱过的人。正因如此,我们希望能够帮助患有阿尔兹海默症的老人们记住那些对他们十分重要的人们,所以,我们想做这么一个记忆唤醒帽,通过经常性的提示,帮助老人们保持记忆。
根据中国老年保健协会阿尔茨海默病分会的报告,我国60岁以上的人口占总人口的12.5%,其中老年痴呆症患者越600万人,随着年龄的升高,老年痴呆症的患者也显著增加,80岁以上高达11.04%。勤于动脑,加强脑功能锻炼,使大脑经常接受信息刺激,有助于保持和增加记忆功能,既能够预防痴呆的发生,也是针对老年痴呆症的非药物治疗的重要手段之一。记忆唤醒帽能够识别摄像头中的人与物,并和事先录入的数据进行比对,进而提供该人或物的信息。更为重要的是,记忆唤醒帽会提供该人或物与戴帽者的关系以及他们曾共同经历过的重要往事,从而帮助戴帽者不断加深对该人或物的记忆。其最终目的是为了向老年人经常性的提供外界信息刺激,帮助老年人保持和增加记忆功能。不论老年人是在独处时,亦或者与人共处时,都能够更加频繁的获取信息,时刻保持头脑的活力。同时,记忆唤醒帽也能够提供更加可靠的人物信息,避免错认,在一定程度上也有保护老年人安全的功能。
1、根据“电路接线图”连接好硬件。
2、将各个模块用扎带固定在帽子上。
3、安装视觉传感器的时候注意调节摄像头的角度。
软件需要一个数组来存储已学习对象的信息。由于AI识图模块返回的ID是一个数字,所以可以用这个数字进行一定运算后作为该数组的标识,从而取出对应的信息。
String briefs[IDS] = {
"这是来自天马初中十一班的肖江锦同学", // 1
"这是来自天马初中十六班的李恒宇同学", // 2
"这是来自天马初中十班的阮知强同学", // 3
"这是来自天马初中十六班的沈子睿同学" // 4
};
setup()函数
在setup()函数中完成各个模块的初始化。
void setup() {
Serial.begin(115200);
Wire.begin();
initSS();
initHuskylens();
ss.speak("现在开始智能识别");
Serial.println("现在开始智能识别");
}
setup()函数主要进行了如下工作:
1、设置波特率
2、initSS()函数初始化语音合成模块
3、initHuskylens()函数初始化AI识图模块
4、Wire.begin()函数启动I2C协议
5、提示用户开始智能识别
initSS()函数
void initSS(){
//初始化语音合成传感器
ss.begin();
//设置语音的音量大小为10
ss.setVolume(10);
//设置语音的播放速度为5
//ss.setSpeed(5);
//设置发音人为女性
ss.setSoundType(ss.FEMALE3);
//设置音调为5
//ss.setTone(5);
//设置英文以单词发音
//ss.setEnglishPron(ss.WORD);
}
可以对语音合成模块做各种设置,我们这里只设置了音量和发声类型。
initHuskylens()函数
void initHuskylens(){
while (!huskylens.begin(Wire))
{
Serial.println(F("Begin failed!"));
Serial.println(F("1.Please recheck the \"Protocol Type\""));
Serial.println(F("2.Please recheck the connection."));
delay(100);
}
}
这个函数中,循环去执行huskylens.begin(Wire)函数,直到成功。huskylens.begin(Wire)为初始化。
loop()函数
void loop() {
if (!huskylens.request())
Serial.println(F("Fail to request data from HUSKYLENS"));
else if(!huskylens.isLearned())
Serial.println(F("Nothing learned"));
else if(!huskylens.available())
Serial.println(F("No block or arrow appears on the screen!"));
else {
while (huskylens.available()){
HUSKYLENSResult result = huskylens.read();
showResult(result);
delay(1000);
}
}
}
loop()函数中首先会做如下检查:
1、AI识图模块是否正常工作
2、检查是否已经学习内容
3、画面内是否存在目标对象
当所有检查都通过之后,会通过huskylens.read()函数读取对象信息。最后通过showResult()函数播放识别到的人物简介。
showResult():
void showResult(HUSKYLENSResult result){
if(result.ID <= IDS){
ss.speak(briefs[result.ID - 1]);
Serial.println((String)"1:" + briefs[result.ID - 1]);
}
}
1、result.ID<=IDS确保不会访问不存在的数组成员
2、briefs[result.ID-1]是该ID对应的人物简介信息
3、使用ss.speak()通过I2C协议将要播放的内容传递给语音合成模块,输出成音频。
4、随后使用Serial.println()打印一些日志信息。
该产品基本实现了预期效果,能够通过识别图像为老年人提供一定的信息。在老年人独处时,该产品的主要功能是为老年人更加频繁的提供信息刺激,使脑细胞更加活跃,防止大脑老化。在老年人与人共处时,该产品的主要功能是为老年人预先提供更加可靠的人物信息,可以一定程度上减少明明重要的人站在面前,老年人却无法辨认的局面,也可以避免老年人认错人,或有人冒充亲人身份的情况。
该产品目前仅仅能够提供语音信息,可视化程度远远不够,人工虽然不能如记忆唤醒帽一般时刻伴随老年人左右,但在实际工作时,人工甚至可能比记忆唤醒帽的效果更好。因此,后续产品的迭代应该更加关注怎样将可视化方案融入该产品当中,更多地使用影像资料为老年人提供往事记录,更加有效地提供信息刺激,帮助老年人唤起记忆。