阅读视图

发现新文章,点击刷新页面。

漂泊异乡终归巢:游子踏上归途,重逢温馨家园

安然无恙,各位;


临近新春,父亲向我提问:

儿子,你回去过年吗?搬电脑回去。

我毅然的回答:

嗯,回去吧,搬电脑。

起床,张开眼睛,临近下午,昨天熬的太晚,睡得比较深;他们早已收拾好了行李,我打包好了电脑,收拾了自己的行李,和那令人厌恶的精神药物。

很快的,开车扬帆起航,一上车,身心俱疲,睡了一路,即便是小轿车放荡不羁的上下摆动,依然在我的梦境中禁不起一丝波澜。

差不多到老家那条村里头了,村里房子越来越多,但是人家还是熟悉的那几口人,不增,不减;村子很大,大到房子拥有十几栋;村子很小,小到看来看去就这么几个“家族”。

爷爷奶奶还未归家,父亲攀爬上了围墙,翻了进去,为我们开了门,父亲从不会迷茫,入了家很快的就开始了自己的工作,帮家里处理网络的事情,为我们接上了网络。

父亲一向做事犀利。


奶奶爷爷很快回来,到了房间瞧了瞧我,我没有打招呼叫人,我一向不喜欢打招呼,我对离开很敏感。

天渐渐暗下来,我们一家吃饭,乡村的饭菜总是很朴实,不是什么山珍海味,但是却是二老能拿出来的最好的东西了,桌面上有一道菜,比较辣的腊肠,老人家吃不得这些,但是还是为我们弄了,只是因为年轻人喜欢吃辣。

我发现,我和二老居然能聊得起来话题。

看着家里的小孩们,我仿佛是一个近中年的大人,管束着他们;爷爷奶奶禁不起折腾。

夜幕低垂,星光洒满天际,二老在房间中忙活着,为我套被子被单,我想上前帮忙,但是被拒绝了;你不会套的,我们来弄就行。

在家人眼中我永远是孩子。

夜,晚了,关掉电脑,切断外界的喧嚣,只为这一刻的静谧与安宁;在睡前聆听着轻音乐,让旋律抚平心中的波澜。


一早,二老又在忙活着,不知道在忙活着什么,刨着番薯,洗着番薯。

我依然坐在电脑前面,突然间觉得后面有东西在敲窗;

是奶奶。

她在挑着两麻袋山薯,扛不动了,我急忙出去,帮奶奶挑了这两袋子东西回去。

二老一天都在忙活着,忙活着好啊,忙活着好啊,这也意味着,二老身体依旧硬朗,我并不希望二老活力减退。


二老褪去活力的那一天,也是我将要去担当家中的这个“活力”的人物。

社会变迁与个人成长:一种代际观察

很多人一直活在一种恶性的死循环中,不仅是社会结构发生了变化,人们的价值观和生活方式也在不断地演进。老一代的人想着爸妈那一代的人,能早点出去社会赚大钱,抓住机缘;而爸妈那一代的人,又因为知道了社会的残酷,转而去要求自己的后代一定要好好的去读书学习,将来考上大学拿下一个好工作。
然后我们这一代体会到了生活的苦,知道人生没有未来了也就会不会有产生后代的想法,既然自己都过得这么苦了何必让后代在来到这个残忍的世界受苦呢?

可结果就是,我们这一代人,学业贬值,大量“啃老族”滋生,啃老族已经不是单方面的不出去工作只在家吃父母的住父母的那么简单了,现在年轻人买房结婚彩礼,自己弄不到资金了还是得靠父母用了半辈子的积蓄为你付出,转过头来父母还说自己有出息了,这何尝不也是一种“啃老”。更别说结婚生子了。“啃老”现象不再仅仅代表依赖,而是包含了对传统教育模式的质疑。

以前的我,也很叛逆,也觉得父母的思想过于封建,后来我得了点病了父母对待我的态度也开始了改变,变得随着我的心意来;随着我的年纪逐渐的增长了,我也才发现我也慢慢变得和曾经父母一样的人了,家里弟弟妹妹成绩不算差劲,最近迷上了互联网电子设备,这让我看到了曾经的自己,现在的我不会像曾经一样加入、不理睬,而是会像父母一样去批评他们,觉得他们小小年纪就迷上了电子设备,这辈子就和我一样要毁了只有读个技校的未来。我也无法确定究竟是不是家庭小时候对我的教育方式是否有问题,我往往这么想的时候都会评价一句自己“不孝子”“白眼狼”。

再谈,现在的结婚人数相对以前更是直接减300%都有,即便是顺利了结婚了,也没几个会想要孩子的
现在的人更需要的是一场救赎。何谈?年轻一代人不会拘束自己的想法,只要不违法违反道德观念的事情绝对不委屈自己,更多的人逐渐转向去寻找人生的真正是意义,去见识世界的美好,去看一场给白花花的雪夜给自己礼物,看一场独属于自己的烟火,见证生活的点滴瞬间。寻求生活的真谛和个体满足感,这本身就是一场内在的救赎。不仅是社会的救赎,更是个人精神层面的觉醒和自我成长。即便结局都事与愿违。

常见的一句话,以前的人一般都是最求物质上的需求,想要更多的财富,而现在的人普遍更注重精神上的满足。

在人民网就曾对这方面出过文章:

从炫耀性消费到策略性消费。炫耀性消费是美国经济学家凡勃伦在《有闲阶级论》一书中提出的概念,指的是通过在消费过程中的奢侈与浪费,向他人炫耀和展示自己财力和社会地位的市场消费。炫耀性消费需求形成了凡勃伦效应,即商品价格越高越是畅销,价格和需求量之间呈现正向关系。凡勃伦效应似乎违背了传统经济学的需求定律,但实际上揭示了一个非常重要的社会经济现象,即商品不仅满足人们的功能属性需求,而且还要满足人们的社会属性需求。20世纪90年代后,伴随着中国经济的发展与中西方价值观的交汇融合,在虚荣、拜金、盲从、贪图享乐等不成熟的价值取向驱动下,年轻人中出现了炫耀性消费的现象,其表现为讲究名牌、攀比模仿、盲从消费、奢侈浪费、未富先奢等消费行为。例如,一些年轻人缺乏买名牌产品的经济实力,有人就购买名牌纸袋装东西,装点形象满足“面子”的需要。中国青年报社社会调查中心2011年对1104人进行调查的数据显示,84.2%人认为身边年轻人“面子消费”普遍存在。“面子消费”是炫耀性消费的一种变异。

如今,Z世代年轻人成长为理性的策略型消费者,在消费过程中变得更加“聪明”。策略性消费是一种理性消费行为,与短视消费行为相对应。按照传统经济学理论,消费者只要对商品的评价高于商品价格就会产生购买行为,这就是短视消费行为。策略性消费行为则是追求预期效用的最大化,在购买决策过程中消费者不仅考虑当前的价格,还会考虑预期价格。在激烈的竞争中商家经常通过降价优惠等促销手段扩张市场,理性的消费者可以预期到这种降价行为,不急于消费,而是等待到最优惠的价格再去购买。Z世代年轻人了解商家的营销策略,是精明的策略型消费者,能够很好地把握商家促销的节奏,掌握最低的价格,从而使消费者效用最大化。2021年中国青年报社社会调查中心对1520名年轻人进行的调查显示,95.3%的受访者认为年轻消费者变得更加“精明”。

老一辈与年轻一代之间的代际观念冲突背后,是社会结构变化和价值观念的转变。老一辈期望子女通过教育和稳定工作实现社会地位,而年轻一代感受到了生活的不易,对未来的悲观和对精神满足的追求导致了学业价值的降低和“啃老”现象的出现。他们更多关注个体满足和生活的真谛,而不是仅仅追求物质财富。

大概就水到这,博主的随便说说

闲鱼买年费会员靠谱吗:年轻人的第一次被诈骗

这篇文章介绍了作者在闲鱼上购买低价迅雷年费会员被骗的经历。他明知低价会员存在风险,但因侥幸心理仍决定购买,并最终遭遇退款。文章详细描述了作者被骗的心理过程及对诈骗手法的认识,分析了骗子的常见特征,并提出了识别此类卖家的方法。作者还计划通过闲鱼平台和政府投诉途径维权,并记录其过程中所学,以帮助他人识别和防范类似骗局。

博客五周年记

这篇文章介绍了作者建立博客五年来的成长经历和心态变化。作者回顾了从初创博客到参与AI项目、组建团队、独自应对前端开发的过程,重拾对创造的热情。尽管生活安逸带来惰性,但作者在项目中找到了坚持和自我激励的动力,并完成了多个目标。同时,作者反思了现代生活的压力与意义,认为写博客能记录成长,激励探索新事物,是赋予生活意义的重要部分。最终,作者决定博客应回归写作和分享本质。

起底CEC-IDE,为什么“国产”“自主可控”等名词逐渐让人PTSD

注:本文不针对任何骗取经费的项目

是什么让CEC-IDE在开发者圈子爆火?

在平静的一天,著名开发平台Github突然出现一个名为CEC-IDE,在readme叠满了各种buff的仓库(目前已删库)

在仓库出现后,紧接着就有人扒出来一个官网(目前无法正常打开)

存档图片的部分信息

这些buff叠起来不免让人好奇是个什么样的项目 兼容vscode插件 保护开发成果 自主研发 ,这些还只是我截图的一部分内容。

各路开发者看见这种东西当然很“兴奋”,很快啊,就有人进行了下载,与现存IDE(如果你不知道什么是IDE的话,白话就是写代码的工具)进行了比较。不过我们先看看近处的安装包吧,家人们~

欸,这个logo,是不是和你手机中的某一个绿色APP很像呢????

不过等等,好像还有一处不对劲。

版权来自微软!!!国产软件怎么可能版权来自微软呢???哦,我知道了,肯定是这个自主研发的IDE用的windows系统打包的可执行程序吧。那没事了,一定是windows偷偷改的。

怀着对国产的期待,便有开发者与著名IDE vscode进行了比较

(截图自网友:云默安喵~)

欸,又不对啊?怎么一模一样啊?不会是抄袭吧!
当然不会抄袭,此时仓库迎来更新,甚至支持了鸿蒙平台!!也说明了“致敬”vscode。

甚至还有VIP功能,一定是提供非常高档的服务才需要VIP吧。

⛵到此结束,到这里事情已经明了了,直接拿着Microsoft的vscode开源项目改了几个词几个logo就直接包装成自主研发,自主可控的国产IDE了,从仓库中的emoji以及其他相关句就能知道这是个整活仓库。开发者们显然是对于这种事情无法忍受,在仓库被删前已经出现了许多issue对这种行为(指国产IDE)进行“鼓励”。

不幸的是CEC—IDE的开发公司显然已经知道了这件事,即使在官网已经被关闭的情况下也进行了更新

为什么这种行为让开发者们反应如此激烈?

是因为他套皮不说?是因为他使用了开源项目自己却不开源?是因为国产?

显然,都不是,国产有错吗?当然没错;遵守开源协议了吗?MIT,基本上开放的;套皮不说?只有这个恐怕也不会让大家反应这么强烈。

那我简单举几个例子:红芯浏览器 木兰开发语言 汉芯一号 等等等等
如果你都不知道,建议百度一下这些事情,知乎都有详细说明。

在以上的例子中我们发现其中基本上都离不开几个关键词“国产”,“自主”,“卡脖子”。这些词有错吗?不,我不认为有错,北斗导航,复兴号动车组,C919等等这些有很多其实在研发单位发出的文章或宣传或多或少都有一些上面提到的关键词,这难道不是成果吗?(注:C919没有做到100%国产,这是其所属单位承认的,但是在部分媒体宣传口径可能与实际不符,请注意官方单位宣传与媒体宣传差异。)

其中,最出名的当属汉芯事件,其涉案金额之大,范围之广直接导致了现目前科研领域的经费审批严格,让许多真正想搞科研的没钱审批下来,一颗老鼠屎坏了一锅汤,当然,不止一颗老鼠屎,仍有不少人搞科研经费。

今天这个CEC-IDE居然拿着开源项目加几个插件就敢说自己自主可控,还要建设数字_____。但是IDE可不是只有科研人员要用到的东西,IDE可以说是深入群众的基础工具,最小小学可能都已经会用vscode,但是不了解这方面或者没有编码需求根本不知情,这就导致了即使是换皮,上面也不知道。这么一款深入不少群众的工具对于开发者们来说自然无法接受,所以才会让各个开发者如此激烈,基本上我所在的有开发者的群都在转。

大家可以想象,如果有很多这种垃圾天天打着国产自研的名号招摇撞骗,以后你如果看见北斗这类真正务实的新闻你会持什么态度?🤣👉🏻

事件后续开发公司表态

8月24日晚,我司获悉有网友发帖讨论我司CEC-IDE系统,公司管理层高度重视。我司感谢网友对CEC-IDE系统的支持与关注,诚恳接受网友批评,并认真开展核查。

CEC-IDE系统由开发工具、后端系统和组件库组成,其中开发工具使用开源VSCode,进行了少量改造,增加了部分功能,后端系统开发了用户、权限、项目、需求等管理,以及任务协作和知识共享等功能,组件库中开发了公共能力组件。今年7月投入试运行,目前仍处在探索阶段,未用于商业用途。

经初步核查,因版本迭代更新中出现疏忽,近几个版本中缺失了MIT协议文件,产品表述中“自主研发”等用语被网友质疑,对此,我们深感愧疚和自责,公司已责令相关工作团队进行认真整改,今后,我们将进一步完善产品研发管理机制。

开源软件的使用极大提升了我司产品研发效率,开源项目为我司提供了巨大帮助,开源精神是程序员共同的同心圆,数字广东公司向所有开源贡献者致以衷心的感谢和崇高的敬意。

数字广东网络建设有限公司
2023年8月26日

必须敢于正视,这才可望敢想,敢说,敢做,敢当。(鲁迅)

123云盘也开始收割了,事实证明靠免费来吸引用户然后再收割这招太好用

继阿里云盘承诺不限速开始,就举行了一系列举措,首先就是降低不限速的宣传量,然后过几个月再开始高峰时间限速,然后变成整个客户端全时间限速,然后再设置流量包和新的三方流量包的会员制度。事实证明这样做总会有人上当,也屡试不爽,不仅积累了用户量,而且因为前期确实良心口碑也会不错。<

最近欣赏的一些影视作品

安然无恙,各位;

这几天一直在疯狂开始“长视频耐心模式”,是的,在看电影以及剧,将近有近十余年没有静下心来欣赏过视频艺术作品了;

主题

现代年轻人更偏向于快节奏时间管理,与其和这些需要长时间解读欣赏一类的作品反而更偏向快餐式节奏,比如说十分且无用,只能提供垃圾信息的短视频;

个人认为,不是不能接触短视频,这是一种新时代的潮流,但是被短视频完全占据时间占比,大脑过度分泌多巴胺,会提高对信息处理的“门槛”面对枯燥内容会提不起兴趣,就会导致人脑只能过滤那些真正有用的信息,但是往往有用的信息反而是需要耐性和一定的坚持、枯燥的

对于我而言,自从我掌控了科技产品管理权限后(大约初一开始自己掌控自己的手机,电子设备等),我或许刚刚开始会有一定的成瘾性,这多亏与儿时的严厉管理,导致的一种“报复性心理”,导致最后的玩物丧志

例子:一个穷人,立马有了很多钱就会可能导致报复性消费,大量消耗,导致很快又变成穷人,一种穷人思想,不计后果’,不经长远之策

这几天我欣赏了不少作品,亦现代年轻人所讨论的内容,毕竟我终究是一个年轻人,我的思想上未免过于古董且融入不了现代年轻人团体,至今才刚刚明白少量的现代词语,类似于Strong哥什么的

以下内容仅个人观念,可以提出意见,但不适者请CTRL+W关闭网页离开

现代动画作品

我也曾简单的欣赏过小说,所以我优先查阅的都是小说改编,毕竟能在茫茫书海中万里挑一出来的,才能进行动漫化

《斩神之凡尘神域》

第一部作品,欣赏的就是网络舆论上比较热闹的:《斩神之凡尘神域》作品改编于小说:《我在精神病院学斩神》

作品无论是场景建模,画质,配乐都很热血,符合现代年轻人审美观,无论是人物塑造,还是细节说明,都十分不错,以及非常让中国人感兴趣的背景主题:中国神

主角林七夜是“守夜人”组织中的一员,前期完全是被动的,但是跟随着剧情的慢慢深入,就会愈发的觉得这部作品的精彩,话说,这部作品是不是央妈提过?

随着剧情的推进,我一口气看到了我们中国神(也许是,猜测,因为从未了解过此作品),一下子提起了兴趣,因为,他是《西游记》中的主角,孙悟空

故事前期,以赵空城(组织的一个成员)拉拢林七夜进组织为主线任务,伴随着后面的慢慢讲诉,也同时说明了赵空城加入的目的,背景,以及怀揣着的梦想

只可惜,最后赵将军陨落了

作品十分优秀,值得一看,目前更新不超过10集,每一集都内容满满,正文占比能打败不少作品

《吞噬星空》

相对于斩神或许稍逊一些,可能更适合年纪小一点的观众,个人觉得前期入坑动漫的观众需要一些耐心,才可以溶解剧情,细节方面等肯定是比不上新生代的,这是一部很多年前的作品,只不过至今都在续集,花费了两天两夜一口气看完,100多集,是经典的成长型金手指

但是也不算是,主人公也是从弱者一步步登上的,也同样花费了大量的时间去变强强化自己,不过动画制作个人认为对于战力的描述可能会存在一点的战力崩坏?

现代电影作品

看完了动漫,因为没有找到什么合适的内容,我便调整了心态开始进军电影作品

《第二十条》

之所以叫《第二十条》,指的就是《中华人民共和国刑法》第二十条,也就是“正当防卫”条款;故事主题是一个主线围绕着两个支线进行的(比较符合年轻人更易懂的说法无它暗示)

这一年的不容易谁能懂?自打挂职到市检察院,韩明(雷佳音 饰)的糟心事就接二连三。儿子韩雨辰(刘耀文 饰)打了校领导(张译 饰)儿子并拒绝道歉,妻子李茂娟(马丽 饰)义愤填膺继而揍了校领导,补刀成功;搭

影片穿插讲述了三个案子,霸凌案,故意害人案,见义勇为案

故意害人

主体是一个家庭因为借了高利贷而偿还不起,家庭中的父亲因主犯人对被害人实施了猥亵手段,经过一系列事情最终出手解决了主犯人

最终一一位母亲轻生跳楼,吓到了那群主犯人的亲属们,送了口,然后经历了主公人的帮助下才得以解决

![](C:\Users\Administrator\Documents\Tencent Files\3531266512\nt_qq\nt_data\Pic\2024-09\Ori\5fd1b9a0130fa63d36da1e6b646e52fa.png)

校园霸凌

这是一个现时代十分常见且难以解决的一个现状,校园霸凌致一个家庭破碎的事件不算少,甚至可以说是泛滥!

我没遇见过我也没经历过,可能是我比较擅长于现实中虚伪的交际,不深入也但是也结交

这里是因为主人公的儿子,因救了一个被校园欺凌的男生遭到报复,然后经历繁杂的事件后得以解决,但是当看到这里难免会思考,如今的中国为什么会冷淡,对待需要救援的人漠不关心,这或许就是原因

施暴者的家长甚至不知道,自己的孩子做了坏事,说了假话

最终故事末尾还是比较美好的收尾了

“我们办的不是案子,那是别人的人生!”

《飞驰人生2》

这是韩寒老师带来的飞驰人生精彩作品的续作;

昔日冠军车手张驰(沈腾 饰)沦为落魄驾校教练,过着靠脸吃饭勉强度日的生活。不料天上掉馅饼,濒临停产的老头乐车厂厂长(贾冰 饰)主动提出赞助张驰组建车队再闯最后一届巴音布鲁克拉力赛。面对这泼天的富贵,张驰蠢蠢欲动,而厂长背后真实的目的无人知晓……带资进队的车手厉小海(范丞丞 饰),看似单纯善良却为何有着与之身份毫不相符的超强天赋?  张驰召集老朋友孙宇强(尹正 饰)和记星(张本煜 饰),与天才车手厉小海和总是考不过科目二的菜鸟驾校学员刘显德(孙艺洲 饰)组成了一个苦中作乐、鸡飞狗跳的草台班子,克服重重困难,笑料百出地奔赴赛场。这一次他将超越无数次出现在梦中的终点线……

体现了人对于初心的重要性,即便生活再哭,也不能丢失了本心,不能真正的成为一条咸鱼任人摆布

影片通过张驰组建车队的故事,让观众们看到了友情、拼搏和团队合作的重要性。张驰召集了老朋
友孙宇强和记星,以及天才车手厉小海和菜鸟驾校学员刘显德,他们组成了一个充满欢乐与挑战的团
队,一起克服重重困难,笑料百出地奔赴赛场。这个草台班子的组合不仅展现了各种不同性格和技能的
碰撞,更是在挑战中彼此成长,共同追求梦想的过程。

当然,搞笑名场面就有不少,也有众多喜剧元素

image-20240910102708856

图片模糊请体谅,看时候截图的画质低图片少量均互联网收集,侵权请联系邮箱:gemiidozenz@hotmail.com

醍醐灌顶

安然无恙,各位;一日不见,如隔三秋

今个的主题很简单;


不熟悉的人可能不清楚,我个人,是有时候比较浮躁的,但有时候又很成熟?(根据不熟悉我的博友对我的第一印象)有时候会显得我很小孩子气,然后过去了又会自我讨伐,说自己不该这样的,算是一种精神内耗,时常出现自己和自己吵起来的场面

还是那句,终究活成了自己厌恶的样子!


网络上,当看到一些言论,慢慢的不会去客观去看待它,往往夹杂着私人恩怨,我们都讨厌,都会去讨伐施暴者,网络暴力,但是又有多少人清楚的知道,自己也成了网络暴力者的一员呢?

例子?

设,刷视频刷到了一些可能不符合你“口味”的,是否会留下一些言论?在发现网络施暴情况下又是否会不清楚事情由来就上前参与?

我们往往在不经意间,就已经成为了施暴者!却很少人清楚知道自己的行为,大喊着,贼喊捉贼

放下屠刀,立地成佛

对于自己不熟悉的事情,不关自己事情,不用去理会,不用去当加害者,脱离世俗


最近时常会遇见一些“可悲之人”,以别人的烦恼上建立快乐,往往是生活不如人意,于是通过这种极端的手段获取一时的“多巴胺”,恶意攻击他人,拿他人的“糟心事”说笑…

前情提要:

对的,他是攻击了我的博客,也拿着我的小伙伴去世说事,但是,意义上来说,他对我有什么实际上的影响吗,仅仅是我的名字以及那不准确的住址?想要摧残我的心智?事情过去了之后我也就不再理会,即便后面发了再多的邮件给我,我只需要视而不见即可,但是,忍让不代表好欺负,不发言不代表是哑巴,相对于的证据还是可以收集的

对于语言侮辱,谣言,威胁来说,相对于这个时代来说,很常见,所以我们要学会“屏蔽”,你可能就要说了,这不就是老实人活该被欺负吗?那么,如果在你家庭美满,衣食无忧的情况下,你要去反抗这些无意义的事情,导致你失去了这么多你本来拥有的美好事物,值得吗,舍得吗?

他们往往是生活中的失败者,精神上的需求不如意,研究指出,施暴者的行为可能是应对生活中压力和挫折的一种方式,他们可能在社会适应、人际关系或职业成就方面遇到困难。他们通过控制受害者来获得暂时的心理平衡。过度了解自己的对象可能使施暴者在情绪不稳定时将暴力当作是一种控制手段,特别是当他们的生活受到挑战、感到无力改变现状时,可能会寻求暴力亦或者加害他人来维护他们的自尊或对现状的控制

正如我所说,不要被他人牵住了心理,不然就是正如他们所意!

网络上,有不少都是心理作用,才出现各种奇怪的麻烦,就拿一个很普遍的事情,电信诈骗;你们说电信诈骗最经典的手段是什么?我想不少人都清楚,是心理作用,正是被人牵住了心理导致一步步走向深渊;

好了,离题了。

图片等均互联网收集,侵权请联系邮箱:gemiidozenz@hotmail.com

储蓄卡还会到期?学校学费卡到期,我在银行被硬控2小时

我上大学的时候学校会发一张学费卡,这个学费卡我从上大学到工作一直在用,直到昨天上午用云闪付转钱的时候提示“银行卡已经到期”,我:???

简单查了一下,储蓄卡有效期大概都是十年左右。不管因为什么,反正它确实到期了。(其实我都不知道储蓄卡会到期这件事,我一直以为只

光学系统远物镜设计报告

注:以下仿真模拟可能存在部分错误,欢迎指正

望远镜的历史及现状

望远镜的历史可以追溯到1608年,荷兰人Hans Lippershey以平凸透镜作为物镜,凹透镜作为目镜,构成了世界上第一台望远镜,值得一提的是,当时Hans Lippershey想依靠望远镜申请专利,或许是太多人都自称是发明者[1],因此,此项专利并没有得到批复,但是这项发明很快传遍了整个欧洲。伽利略在第二年基于此改进了这一型望远镜观测天象,因此这种望远镜被称为伽利略望远镜。开普勒在1611年描述了如何用凸透镜的物镜和目镜制作出更有用的望远镜;而克里斯蒂安·惠更斯配合复合目镜制造出倍数高但视野不广的开普勒望远镜。

图示

描述已自动生成

图 1伽利略型望远镜与开普勒型望远镜示意图

1668年,牛顿结合斜置对角的小平面镜将光线反射至望远镜侧边的目镜,制造出第一架"实用"的反射镜。洛朗·卡塞格林在1672年描述使用一个小凸透镜作为第二反射镜,将光线反射穿过主镜中心洞孔的设计。[2]

Zemax学习笔记(10)- 牛顿望远镜实例

图 2牛顿反射镜示意图

undefined

图 3卡塞格兰反射镜示意图

消色差透镜在1733年出现在贾斯特·摩尔·霍尔制做的望远镜,大大的降低了物镜的色差,使望远镜可以制做得更短并且有更多的功能,但是它没有公布。约翰·多隆德学到了霍尔的发明,并且在1758年制作出望远镜,开始商业的量产。

在1721年,约翰·哈德利制造出大的抛物面镜,这标志着反射镜望远镜发展的重要事件。莱昂·傅科在1857年引入了在玻璃镜面上镀银的程序,进一步提高了反射镜的性能。到了1932年,人们开始采用可以持久的渗铝涂层反射镜,使反射镜的性能更加稳定和持久。[3]

图 4抛物面镜锅

然而,在1850–1900年间,反射镜遭受了金属镜面材料的问题,这使得许多"伟大的折射望远镜"得以诞生,口径从60公分到1米的折射望远镜,例如叶凯士天文台在1897年建造的。但从1900年代初期开始,一系列口径越来越大的,以玻璃做为镜面的反射镜陆续建造出来,包括威尔逊山的60英寸、100英寸(2.5米)的虎克望远镜(1917年),和200英寸的海尔望远镜(1948年)。基本上,从1900年以来所有主要的研究望远镜一直都是反射望远镜。[4]

图 5虎克望远镜

在1975–1985年代,一些4米级(160英寸)的望远镜在夏威夷的火山岛和智利沙漠中的高海拔地点被建造起来。在1970年代,发展出由电脑控制的经纬仪架台,和1980年代的主动光学,使新一代更巨大的望远镜诞生,从在1993年和1996年完成的两架10米的凯克望远镜,以及一些8米的望远镜,包括ESA的甚大望远镜、双子望远镜和昴星团望远镜。[5]

图 6凯克望远镜

另一方面,电波天文学的发展也对望远镜的历史产生了重要影响。在1931年,卡尔·央斯基偶然意外发现一个电波源,开启了电波望远镜(连同电波天文学)的纪元。许多类型的望远镜,从无线电到伽玛射线的广阔波长范围,都是在20世纪发展起来的。在1960年以后发展的太空望远镜,可以观测在地面上观测不到的几个波段,包括X射线和波长更长的红外线波段。

随着科技的不断进步,现代望远镜已经演变成为极其复杂和强大的天文观测工具。在性能上的飞跃主要得益于光学设计的创新、材料科学的发展,以及电子技术和计算机技术的应用。

在口径的大小上,为了捕获更多的光线以提高观测的灵敏度,现代望远镜的尺寸在不断增加。例如,位于智利的甚大望远镜(VLT)由四个8.2米的主镜组成,而正在建造中的大型望远镜,如欧洲极大望远镜(ELT),其主镜口径达到了39.3米,预示着未来地基望远镜在集光能力方面的新纪元。[6]

Image Credit: ESO

图 7ELT

不止于地基望远镜,在1990年4月24日由发现号航天飞机,于STS-31航次将哈勃空间望远镜成功的送入计划中的轨道。其中,地基望远镜所没有的好处:影像不受大气湍流的扰动、视宁度绝佳,且无大气散射造成的背景光,还能观测会被臭氧层吸收的紫外线。其于1990年被发射之后,成为了天文史上最重要的仪表。它成功弥补了地面观测的不足,帮助天文学家解决了许多天文学上的基本问题,使得人类对天文物理有更多的认识,直至今日,哈勃空间望远镜仍为人类提供重要科研数据。[7]在未来,中国也将使用运载火箭发射巡天空间望远镜,在功能参数上巡天号比哈勃望远镜视野范围更大一点,像素也更高一点,观测效率也更高。[8]

飞机飞在云层上飞行

描述已自动生成

图 8哈勃空间空间望远镜

现代望远镜不再仅限于传统意义上的可见光学望远镜,也包括射电望远镜等。射电望远镜是一个专门的天线和无线电接收机,在射电天文学用来接收天空中从天文射电源的无线电波。射电望远镜的外形差别很大,有固定在地面的单一口径的球面射电望远镜,有能够全方位转动的类似卫星接收天线的射电望远镜,有射电望远镜阵列,还有金属杆制成的射电望远镜。[9]射电望远镜观测高能射线和深远宇宙方面有着独特的优势,使得宇宙的观测变得更加全面。比如中国FAST射电望远镜,到现在工作不到十年时间里,已经发现超900颗脉冲星。[10]

图示

描述已自动生成

图 9射电望远镜使用的干涉原理示意图

参考文献:

  1. 望远镜. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E6%9C%9B%E8%BF%9C%E9%95%9C.
  2. 洛朗·卡塞格兰. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E6%B4%9B%E6%9C%97%C2%B7%E5%8D%A1%E5%A1%9E%E6%A0%BC%E5%85%B0.
  3. 拋物面反射器. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/zh-cn/%E6%8B%8B%E7%89%A9%E9%9D%A2%E5%8F%8D%E5%B0%84%E5%99%A8.
  4. 威尔逊山天文台. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E5%A8%81%E5%B0%94%E9%80%8A%E5%B1%B1%E5%A4%A9%E6%96%87%E5%8F%B0.
  5. 凯克天文台. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E5%87%B1%E5%85%8B%E5%A4%A9%E6%96%87%E5%8F%B0.
  6. 欧洲极大望远镜. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%B4%B2%E6%9E%81%E5%A4%A7%E6%9C%9B%E8%BF%9C%E9%95%9C.
  7. 哈勃空间望远镜. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E5%93%88%E5%8B%83%E7%A9%BA%E9%97%B4%E6%9C%9B%E8%BF%9C%E9%95%9C.
  8. 巡天号光学舱. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E5%B7%A1%E5%A4%A9%E5%8F%B7%E5%85%89%E5%AD%A6%E8%88%B1.
  9. 射电望远镜. 维基百科,自由的百科全书[EB/OL]. [2024-06-15]. https://zh.wikipedia.org/wiki/%E5%B0%84%E7%94%B5%E6%9C%9B%E8%BF%9C%E9%95%9C.
  10. 中国科学院国家天文台. 百年巡天,接续奋斗:国家天文台发展历程回顾[EB/OL]. [2024-06-15]. https://www.nao.cas.cn/ncb/kp/202203/t20220331_6417254.html.
  11. 刘正军. 《望远镜的发明与发展》[J]. 物理通报, 2013, 35(1): 12-15.
  12. 黄一成. 《牛顿望远镜的发展历史》[J]. 自然科学史研究, 2012, 31(4): 78-82.

透射式反摄远物镜设计

具体参数:对无穷远物体成像,需要一个光学系统能满足下面技术指标:长(前透镜到像面距离)200mm,工作距离(从后透镜到像面距离)80mm,焦距(efl)50mm,速度f/4.0,视场    11.4°(±0.1rad),零渐晕,孔径光阑位于后透镜上。

要求:1.采用透射式结构,计算物镜、目镜各自的焦距fa、fb和光在两个透镜上的投射高度D1、D2。假设初始结构采用的是BK7玻璃,(要求写明计算步骤)。

  1. 用光学软件设计结构(要求在大作业中需要写清楚具体结构参数);用软件优化,并展示点列图。

计算

文本, 信件

描述已自动生成

模拟

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成 表格

描述已自动生成

图形用户界面, 应用程序, 表格

描述已自动生成

根据要求设置f 4.0、视场11.4°,需要转为弧度制,约为0.198,再输入三个镜片参数

此时结果如下:

图形用户界面

描述已自动生成 图表, 散点图

描述已自动生成

再设置镜面5为光阑面,并且将6个镜面均设置为变量:

图形用户界面, 应用程序

描述已自动生成

优化,评价函数勾选删除渐晕,新增EFFL设置为50mm:

图形用户界面, 文本, 应用程序

描述已自动生成

图形用户界面

中度可信度描述已自动生成

优化后结果如下:

图形用户界面, Word

描述已自动生成

反射式望远镜物镜设计

具体参数:设计一个天文望远镜R-C系统,要求主镜口径为2160毫米,整个系统的相对孔径为1:9,系统的焦距为19440mm,主镜的曲率半径为-12960mm,次镜的曲率半径为:-5797.5mm,两镜直径的距离为4547.5mm,焦点需引出主镜之后,焦点伸出量为1250mm.

要求:用光学软件进行反射式望远镜物镜结构设计,用软件进行优化,并展示点列图,MFT曲线,及衍射圈入能量分析。

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成 表格

描述已自动生成

表格

描述已自动生成

首先,根据要求设置孔径,设置2个视场,半视场角为0.1度,波长选择可见光,再设置主镜曲率半径为-12960mm,次镜的曲率半径为:-5797.5mm,再设置两镜直径的距离为4547.5mm。

此时结果如下:

图片包含 图示

描述已自动生成 图表, 箱线图

描述已自动生成

下一步新增空气面并移除遮挡:

表格

描述已自动生成

图形用户界面, 应用程序

描述已自动生成

此时结果如下:

图表, 箱线图

描述已自动生成 图片包含 图形用户界面

描述已自动生成

下一步需要完成光学系统的优化:

图形用户界面, 应用程序

描述已自动生成

图片包含 日程表

描述已自动生成

表格

低可信度描述已自动生成

设置两镜圆锥系数均为变量而非定值,再使用默认评价函数设置PTV和主光线,再将EFFL设置为焦距19440,设置CTGT(焦点伸长量)为1250,最后运行优化,最后结果如下:

表格

描述已自动生成

图片包含 图形用户界面

描述已自动生成 图表

描述已自动生成

图表, 箱线图

描述已自动生成

基于rPPG的心率测算程序设计报告[公开版]

观前提醒:笔者非医学生,非专业学习图像处理,如有任何表述不明,有失偏驳,请在评论区提出意见。

现如今,大众越来越重视个人健康或者运动,在此基础上国内各种可穿戴设备也发展飞速,小米手环、华为Watch、OPPOwatch等设备在国内外广受好评,各种手环/手表最基础的身体健康监测使用PPG传感器(Photoplethysmography 光电容积脉搏波描迹法),体现心率同时进行健康评测(例如心脏早搏,房颤等等,PPG并非心电图,所反应心脏信息有限,一般是各种厂商联合医疗研究机构使用AI进行判断,例如华为心脏健康研究,OPPO心脏健康研究),以及通过相关算法完成各种多维数据(体能等)的测算。

在文章开始前,我们需要先知道PPG实现原理,想必大家小学都知道,心脏跳动是将血液泵送至全身,底层原理类似于老中医把脉,通过脉搏来获取心脏跳动。但是可穿戴设备无法像老中医一样自行寻找到脉搏明显起伏的地方,也不可能像血压计一样通过充气紧紧束缚手腕从而获取心脏跳动(PS:事实上早已有了充气测血压的可穿戴设备,但其主要作用是为亚健康人群提供随时可用的血压计,且作为可穿戴设备舒适性不够)。

随着每个心跳周期,心脏将血液传送到身体周边。虽然这个脉膊压到达皮肤时有所衰减,但此脉膊压足以使动脉和小动脉在皮下组织中扩张。如果脉搏血氧仪没有压迫皮肤,脉膊压的第二波峰可以在静脉丛中看到。

使用发光二极管的光线照射皮肤,并用光电二极管测量光透射或反射到的光量,就可以得到一张表示脉冲压引起的体积变化的图表。因为流向皮肤的血液可以被多种其他生理系统调节,PPG也可以用来监测呼吸、血容量不足及其他循环状况。另外,PPG波形的形状会随着受试者的不同而不同,同时也与脉搏血氧仪所放置的位置和方式而有所不同。[1]

如果你买过智能手环与智能手表设备那么你可能有这样的问题,大晚上的睡觉翻身可能会有一束绿光从手腕闪入眼睛,这就是你的手环/手表心率传感器在工作,但是你可能会疑惑这个绿光是干什么的,为什么非得用绿光,这个问题我们先按下不表。你可能知道血液呈现红色,因此对于红光反射更强,实际上最初PPG传感器做出来使用的红光,而不是现在随处可见的绿光PPG。首先,让我们欣赏一首古诗,看看古人如何评价气色好的人:《诗经·卫风·硕人》中的“颜如花荣,目如秋水 ”这里的“花荣”指的是花朵盛开的样子,用来形容面色红润,从古诗出发你能够注意到人类好气色都是会偏向红润的,你在仔细观察一下你的皮肤,可能会有一点泛红,虽然不明显,但是即使是黑人皮肤也是红黑而不是纯黑色。这样就好解释为什么不用红光了,红光会受皮肤吸收,从而导致传感器获取到的信号较弱或失真,不适合进行心率测算。(PS:这里补充说明,红光仅仅不用于心率测算,但是有着其他的用途,比如说与红外光组合加上光电传感器能够测得血氧,本文不涉及因此不过多赘述,详情可查看:智能手环测量血氧是用的什么原理,是否准确?

这里我用一篇我认为解释的很浅显易懂的图来描述:

同样的光强的绿光,射到大杯和小杯红色的水里,由于红色的水对于绿色吸收率高,水量不一样反射回去的光强差别较大。
而同样光强的红光,射到大杯和小杯红色的水里,由于红色的水对于红色吸收率低,水量不一样反射回去的光强差别较小。

现在我们想象血管就是上面的水,随着心脏搏动,水量变多变少。

如果入射光是绿光,心脏搏动导致的反射光变化较大;
如果入射光是红光,心脏搏动导致的反射光变化较小。

换句话说,用绿光得到的信号会比用红光得到的信号变化幅度要大。[2]

在上述图示中我们可以很简单的理解到心率传感器使用绿光的原因,接下来,我们再来了解一下心跳规律。

心脏一次规则的跳动可以用以下心电图表示:

如果你体检时做心电图,心电图报告正是由这一个一个单位图示波形组成,不过体检心电图使用的是多导联,不同导联所展示心电图信息与图示信息可能会有差异,能够反应更多的心率信息,同时,由于肌肉电信号与仪器影响,实际心电图并不会有这样规范,当然,我不是医学生,并不能做出更多解释。

心电图其实就是相当于在你身体加了个电流计,测量电流随时间的变化,实际上更为复杂,需要处理各种电信号及滤波。

至于各种波我这里不做出过多讲解,您可以参考以下图示就能理解心脏跳动规律了。

你可以看见心电图R波非常高,实际上PPG传感器就是监测这个R波,所以叫脉搏波描迹法,再用R波单位时间出现频率就可获得人体心率(以下图示由于超出图示范围在顶峰显示为平波,实际上是一个类正弦波形,同时,心电图使用单导联以及肌肉电信号干扰,并不能表示图示中的完美示例,由于电信号速度远大于血液传输速度,因此脉搏波相比心电信号有明显滞后性,值得一提的是,由此可以推算出血液传输速率,从而进行各种健康评估,比如血管健康)

在以上图示中可以很明显的看出来PPG已经能够估算出心脏跳动频率,但是实际上PPG并不能如此完美的体现出人体脉搏波动,因为毕竟是光电传感器,会受各种干扰,比如自然光,或者测试者的运动,因此需要各种滤波算法,才能较为准确的体现心率信号。

可能此时会有读者有疑问,你这篇文章不是说的rPPG吗,为什么你这里一直讲的PPG。本质上是一个东西,PPG指Photoplethysmography,rPPG则指Remote Photoplethysmography ,多了个Remote,大家都知道可穿戴设备是接触式的,在买来时APP或说明书都会告诉你如何佩戴测量心率最准确,这里的rPPG则是远程实现心率测量。

那么,远程依靠什么远程,测量什么呢?
在众多研究中,大家基本上均采用额头和面颊来测得心率数据,一方面,除了监控外,现在数码设备的摄像头一般面朝自己脸部,另一方面额头相比其他人体裸露在外部的部位能更加明显的体现人体心脏跳动,不知道你有没有这样的经历,当压力大或者心情不好时能很明显的感受到你的太阳穴脉搏跳动,这种微小的变动会影响光强大小的改变,那么我只需要获取到额头平均光强也就可以得到P波了。

在此基础上,我们可以通过人脸识别定位出人脸,从比例上再定位额头,这里使用golang opencv(这里使用Golang实现,而不使用python以及MatLAB这种专注于图像处理的编程语言及工具,起初是想做成网页端,让每个人都可以测试,同时增加样本数据,更有助于我学习并优化算法,但是考虑到隐私及成本影响因此停止实现)库实现人脸识别定位:

// 忽略前面的代码
	classifierFace := gocv.NewCascadeClassifier()
	defer classifierFace.Close()
	if !classifierFace.Load("haar/haarcascade_frontalface_default.xml") {
		log.Fatalf("加载人脸分类器文件时出错")
	}

// 忽略中间处理
			faces := classifierFace.DetectMultiScale(img)
			if len(faces) == 0 {
				continue
			}

			maxFace = faces[0]
			for _, r := range faces {
				if r.Dx()*r.Dy() > maxFace.Dx()*maxFace.Dy() {
					maxFace = r
				}
			}

以上代码中使用了opencv haar库实现了简单且精准的haar级别库来定位人脸,并引入一个for循环来找到图像中最大的人脸,至于为什么需要引入for循环找最大人脸,是为了尽可能的排除掉非测试者走动经过摄像头拍摄区域影响。

在接下来的流程中还需要定位额头

			forehead = maxFace
			forehead.Min.Y = maxFace.Min.Y + maxFace.Dy()/10
			forehead.Max.Y = maxFace.Min.Y + maxFace.Dy()*2/10
			forehead.Min.X = maxFace.Min.X + maxFace.Dx()/2 - maxFace.Dx()/10
			forehead.Max.X = maxFace.Min.X + maxFace.Dx()/2 + maxFace.Dx()/10

			gocv.Rectangle(&img, forehead, color.RGBA{255, 0, 0, 0}, 1)
			gocv.Rectangle(&img, maxFace, color.RGBA{0, 255, 0, 0}, 1)

以上代码中定位额头我比较简单粗暴,根据选择的人脸,计算前额的位置。这里假设前额占据人脸高度的1/10,宽度为人脸宽度的1/5,位于人脸上部中间位置。但是这样并不能直接使用,因为由程序定位的人脸会时刻发生小幅度变化,在实际测量中我们应该尽可能排除掉程序影响,因此为了方便我通过代码实现了输入“5”实现固定额头位置,不再实时监测人脸位置,再按下“5”解除释放,这里就不放出代码了,仅需一个Flag+if else就可以实现。
额头如上图红框所示。

实时人脸监测活动就像这样。

实际上,在众多研究项目及论文中均使用面颊+额头计算,但是笔者算法太菜,就不过多纠结了。

前面提到,最适合的测量心率的光线颜色是绿光,那么我们将使用RGB颜色系统中的G通道表示,也有研究中使用HSV颜色模型进行测算。

那么我们先看看额头RGB颜色系统各个分量光强随时间变化的曲线。

各个通道平均光强可使用以下示例代码实现:

		greenChannel := gocv.NewMat()
		gocv.ExtractChannel(img.Region(forehead), &greenChannel, 1)

		greenChannelData := greenChannel.ToBytes()
		for i := 0; i < len(greenChannelData); i++ {
			greenChannelSum += float64(greenChannelData[i])
		}
		greenChannelCount = len(greenChannelData)

		greenChannelAvg := greenChannelSum / float64(greenChannelCount)

		blueChannel := gocv.NewMat()
		gocv.ExtractChannel(img.Region(forehead), &blueChannel, 0)
		blueChannelData := blueChannel.ToBytes()
		blueChannelSum := 0
		for i := 0; i < len(blueChannelData); i++ {
			blueChannelSum += int(blueChannelData[i])
		}
		blueChannelAvg := float64(blueChannelSum) / float64(len(blueChannelData))

		redChannel := gocv.NewMat()
		gocv.ExtractChannel(img.Region(forehead), &redChannel, 2)
		redChannelData := redChannel.ToBytes()
		redChannelSum := 0
		for i := 0; i < len(redChannelData); i++ {
			redChannelSum += int(redChannelData[i])
		}
		redChannelAvg := float64(redChannelSum) / float64(len(redChannelData))

(注,几个比较明显的波动是由于头部活动导致)

根据以上图可以看见,红光平均光强更高,这是由于人体反射红光水平更强,而且波动幅度太大,但是蓝光平均光强更低,而且人造光源(屏幕等)通常包含部分蓝色杂光,较容易影响人体心率数据采集。

通过观察波形我们可以看见会有一些小起伏,这些起伏中就可能包含脉搏波数据。

作为对比,下面放出稳定后的摄像头识别白墙区域RGB平均光强变化波形图

前面的起伏是由于程序写好的先人脸锁定后再开始记录,可以看见波动后几乎为直线,不过由于测试时为晚上,人造光源存在部分频闪,因此会出现些微规律波动(亦或是摄像头规格限制),但不明显,就像我前面提到的,人造光蓝光较多,且人造光源存在着频闪,导致蓝光光强随时间变化波动最大。

接下来,我们要进行滤波。根据相关文献,正常成年人静息心率为50-100左右,也就是心脏每分钟跳动次数。[3]

但是在部分情况下,例如运动较多人群或者刚运动完,心率会更低或更高,因此我们需要筛选掉一些数据,我将所需BPM设定为45-240,也就是心率范围0.75-4Hz的数据,代码如下所示(结合注释查看)

var BPMMin float64 = 45 // 所需最小心率
var BPMMax float64 = 240 // 所需最大心率
func calculateBPM(data []float64, times []float64) float64 {
	if len(data) < 2 {
		return 0
	}

	timeDiff := times[len(times)-1] - times[0]
	if timeDiff <= 0 {
		return 0
	}

	samplesPerSecond := float64(len(data)) / timeDiff

	// 引入带通滤波器以减少噪声
	filteredData := bandPassFilter(data, samplesPerSecond)

	// 应用汉宁窗以减少频谱泄漏
	windowedData := make([]float64, len(filteredData))
	for i, d := range filteredData {
		windowedData[i] = d * 0.5 * (1 - math.Cos(2*math.Pi*float64(i)/float64(len(filteredData)-1)))
	}

	// 将数据转换为复数
	complexData := make([]complex128, len(windowedData))
	for i, d := range windowedData {
		complexData[i] = complex(d, 0)
	}

	// 应用FFT
	fftResult := fft.FFT(complexData)

	// 计算每个频率点代表的实际频率(单位:Hz)
	freqs := make([]float64, len(data)/2+1)
	for i := range freqs {
		freqs[i] = float64(i) * samplesPerSecond / float64(len(data))
	}

	maxMag := 0.0
	maxIdx := 0
	for i, c := range fftResult[:len(data)/2+1] {
		mag := cmplx.Abs(c)
		if freqs[i] >= BPMMin/60 && freqs[i] <= BPMMax/60 {
			if mag > maxMag {
				maxMag = mag
				maxIdx = i
			}
		}
	}

	bpm := freqs[maxIdx] * 60 // 转换为每分钟的心跳次数

	return bpm
}

func bandPassFilter(data []float64, samplesPerSecond float64) []float64 {
	// 创建一个带通滤波器,将频率限制在0.75-4 Hz之间
	lowFreq := BPMMin / 60.0
	highFreq := BPMMax / 60.0

	// 创建一个带通滤波器
	filteredData := make([]float64, len(data))
	for i := range data {
		if i == 0 {
			filteredData[i] = data[i]
			continue
		}

		// 计算当前频率
		freq := float64(i) * samplesPerSecond / float64(len(data))

		// 计算带通滤波器的系数
		lowPassCoef := 1 / (1 + math.Pow(freq/lowFreq, 4))
		highPassCoef := 1 / (1 + math.Pow(highFreq/freq, 4))

		// 应用带通滤波器
		filteredData[i] = lowPassCoef * highPassCoef * data[i]
	}

	return filteredData
}

  • calculateBPM函数接受时间序列的光强度数据,首先通过FFT转换得到频域数据。
  • 在一定的频率范围内(对应人的心率范围),找到最大幅度的频率,并将其转换为每分钟的心率(bpm)。
  • FFT(快速傅里叶变换)是信号处理中一种重要的工具,用于将信号从时域转换到频域,这里使用现成的库处理。
  • bandPassFilter带通滤波器用于筛选感兴趣信号,后面会提到。这里算法过于简单,Golang本身不是用来干这行的,暂时还没找到相关数学库,因此需要自己实现,这里暂时仅简单处理。
  • 汉宁窗(Hanning window)是一种窗函数,用于对信号进行加窗处理,以减少频谱泄漏(spectral leakage)和提高频谱分辨率。频谱泄漏是指当信号进行离散傅里叶变换(DFT,此处通过FFT实现)时,由于信号的周期性假设与实际信号的非周期性不匹配,导致频谱能量泄漏到其他频率 bin 中。这会使得频谱分析结果模糊,难以准确识别信号的频率成分。汉宁窗通过减少信号两端的幅值,使得信号在时域上平滑地过渡到零,从而减少频谱泄漏。具体来说,汉宁窗在每个数据点上乘以一个特定的系数,这些系数是根据汉宁窗函数计算得出的,使得数据序列的两端逐渐衰减到零。

转换到频域后,信号被表示为一系列频率和对应的幅度。每一个频率成分的幅度表明了该频率在原始时域信号中的强度。在心率测量的上下文中,我们特别关注那些与心脏跳动频率相对应的频率成分。

设定搜索范围:人的正常心率大约在每分钟45次(0.75 Hz)到240次(4 Hz)之间,这对应于频率的0.75 Hz到4 Hz。FFT分析结果中,只有这个频率范围内的成分才是我们关注的目标。
寻找最大幅度的频率:在上述范围内,程序寻找幅度最大的频率点,因为最大幅度表明了信号中最显著的周期性成分,即心跳引起的周期性变化最强烈的部分。

一旦识别出心跳对应的主要频率,将这个频率乘以60(每分钟的秒数),就可以得到心率的估计值,单位是“每分钟的心跳次数(bpm)”,在实际程序设计中需要优化,我这里非常简单并没有实现采样时间限制,实际上采样时间应该至少5S以获取更为准确的心率。

大起伏为人脸活动造成的影响,小起伏可以视为心脏跳动时的P波(实际上由于算法存在太多问题,会有干扰信号),至此,此代码就告一段落了,对于滤波相关,严格意义上需要对图像进行降噪处理并进行更复杂的滤波。但是在ECG与实验结果对比情况下已经知足了,图一为瞬时心率,图二为30S平均心率,笔者睡眠不好,有窦性心律不齐,某种意义上来讲已经符合事实了。

不过在实际应用中rPPG范围太窄已经淹没于历史的洪流中,就算是现在一线厂商的PPG传感器及算法也不能做到医疗级别的监测,rPPG由于受各种环境影响,变量更多,其能反应身体健康状态信息较少,也仅限于学术研究中,不过相信这项技术在未来更高精度的摄像头发展中,这项技术将被重新使用,在未来为智能设备用户提供更准确的身体健康反馈。

引用文献:
[1] 维基百科 光体积变化描记图法
[2] 知乎 绿or红?心率监测使用哪种光比较好?
[3] 医学百科 心率正常值
参考文献:
[1] Akselrod S, Gordon D, Ubel F A, Shannon D C, Berger A C, Cohen R J. 1981. Power spectrum analysis of heart rate fluctuation:a quantitative probe of beat-to-beat cardiovascular control. Science, 213(4504): 220-222 [DOI:10.1126/science.6166045]
[2] Niu X S, Han H, Shan S G . 2020. Remote photoplethysmography-based physiological measurement: a survey. Journal of Image and Graphics, 25(11): 2321-2336. (牛雪松, 韩琥, 山世光. 2020. 基于rPPG的生理指标测量方法综述. 中国图象图形学报, 25(11): 2321-2336.) [DOI: 10.11834/jig.200341]
[3] Chen X, Cheng J, Song R C, Liu Y, Ward R, Wang Z J. 2019. Video-based heart rate measurement:recent advances and future prospects. IEEE Transactions on Instrumentation and Measurement, 68(10): 3600-3615 [DOI:10.1109/TIM.2018.2879706]
[4] De Haan, Gerard, and Arno Van Leest. "Improved motion robustness of remote-PPG by using the blood volume pulse signature." Physiological measurement 35.9 (2014): 1913.
[5] Wang, Wenjin, et al. "Algorithmic principles of remote PPG." IEEE Transactions on Biomedical Engineering 64.7 (2016): 1479-1491.

2023年度总结


最失败的一年:

得到了些什么

做错了些什么

失去了些什么

还是没有找到职业/未来方向,迫于学历与能力,不想从事专业相关,迷茫于方向。

人生中第一次坐飞机

拿到驾照

吃了罚单

挂了科

服务器运营成本越来越高,不得不降本增效。

被网络攻击让我手足无措,但是没想到以前做的公益项目让很多用过的用户帮我回血(很感谢大家)。

和志趣相投的网友一起写了人生第一个盈利项目,虽然我很菜,bug很多,但是当自己写的东西被很多开发者使用的时候内心还是非常高兴的。

放弃一些东西/事情/想法。

反思

暑假因为家人常住医院,为了一些事情不得不两城跑,在医院写代码。

为了家人不得不通宵几天。 没有时间和高中舍友聚会。

独立写项目。

找到了几个一起打游戏的朋友。

参加了几个大厂的开发者大会(感觉这几年各种开发者大会的主要基调就是AI。)

申请了人生第一个软件著作权。

申请了人生第一个发明专利。

尝试和校友起一个新项目。

对于一些问题有自己的想法,不再像以前一样,跟风。

逃避现实。

越来越喜欢听老歌。

域名被江苏反诈中心制裁,想尽办法申诉。

域名解封。

想法远大,然而没有能力实现。

越来越缺乏独立思考。

网站很少更新。

年度关键词: 废,寝,忘,食

2024就二十了,没有别的想法,只想自己早点找到方向。

验证节点:

域名被江苏省公益反诈拦截解决方案

江苏省公益反诈拦截很迷惑,不知道具体的触发条件,正规运营的站点(即使你有ICP备案号以及网安备案号)也有可能被拦截,至于申诉,在经历了一些波折后只能说拨打025-66096110按照提示提交相关信息即可。在提交当天相关部门就会联系你让你提交域名地址,如果没有问题会两天内解封。

注:网警哥哥声音真好听

博客为什么大批倒闭跑路

上班摸鱼,闲着没事,在兜兜转转我的企鹅,偶然看见一条消息

image-20240804225313600

想法很不错,想去实操,但是我个人不清楚头绪,该如何去做,既然做就不能寥寥草草完成!

日常一说

首先,我们先了解,我们为什么要做博客,于是我在我的群简单提问了一下

83cba52b649e295713cb1f880b07a743

回答七七八八,各种都有

image-20240804230039151云城星海:初衷:学k圈钱,以后:打算跑路785ee59911be4b87701b5ce88e9c9d00

image-20240804230039151雨滴思绪:因为懒

image-20240804230039151时歌的博客:就是纯粹的记录自己的输出

image-20240804230039151荣6的博客:随手记记,如果有人看到能帮到他就好了,有的时候忘了东西还可以帮自己

不过,还是有人是想赚钱,但是后面认清现实之后也低头了。。。

34af09bd96b2fa443f95ce78fe4fe83e

image-20240804232342409

我个人

在这过程中,我收获了很多知识和伙伴e。也有很多恶搞03f5a48e9e4c034ea81439e98ccd8d8a

那啥,哥你上电视了不客气:image-20240804233308671

除了技术和恶搞我带来的快乐外,博主最开心的,也许就是有访客到访,各种博客博主互访,互相支持(特别说明杜老师的积极互访温热博友圈)真的很有成就感。当然,这期间也经历过很多痛苦,比如网站被攻击、当初的H2数据库炸了、恶意用户对我的恶语相向等

为啥很多跑了?

当谈到博客站长运营的问题时,花了点功夫,联系上了近10名闭站博主,共同交谈了一下,主要因素基本上就这几个:

  1. 内容水化:随着网络多样性的饱和,很多博客都开始出现了“低产”、“过于水文”等低劣现象。内容质量为王的时代,缺乏持续更新或者文笔吸引力的文章会使其快速失去吸引力。正如时歌的博客所述:“都移动互联网时代了 压根不指望能靠这个赚钱。”单纯为了赚钱,博客很难维持长期活跃!
  2. 精力限制:在运营过程中不仅要撰写文字篇章,还要应对SEO优化、维护等。大多数时候,可能因为现实中需要分配精力的事情越来越多/占用时间精力比例,就会在博客上的精力投入越来越少,自然到最后也不甘堕落
  3. 兴趣和激情减退:博主最初可能是出于兴趣,好奇心建立博客网站,但长期下来,因为没有受益和访客留言基于的自豪感,就会难以保持更新,最终可能导致停更,甚至是永久闭站!这就是杜老师所说的《一时兴起》
  4. 经济负担:私人博客服务器需要维护服务器,域名,流量等,这在初期好做,但随着时间推移,可能会成为运营负担。有时候也会一定程度影响生活,即便成本很低,不过好在现在免费托管的项目有很多选择,因为经济负担而影响的反而占比不是很高

image-20240805102325413

总而言之,就是**“迫不得已”**,或者,初衷不同,不是大众化的想法,当不达到预期自然就没了

如何杜绝

想要杜绝,

目前,有很多项目去给博友圈提供相互认识帮助的通道,例如:

497969.webp

开往友联接力

image-20240804235146583

笔墨迹

image-20240804235332040

萌国ICP备案

image-20240804235638285

以及我们博主本身的社区,鱼塘,友联页

image-20240804235812865

image-20240805095945412

不管如何,博客了落幕实质上,可能是信息分享方式的演变,以及人们注意力和消费习惯的改变。

日常日更❌

凑字水文低产✔

开源某系统投毒事件

在今年的五月份,国内开源自建CDN平台的主要作者在QQ交流群发布了1.3.9的版本之后,就失去了联系并且解散了QQ交流群。

之后大量的开发者发现官方发布的系统的V1.4.0版本添加了恶意的JS代码,会导致使用该CDN部署的网站被跳转到博彩电诈平台,与前段时间的类似投毒事件情况比较类似

有大佬指出该CDN会往使用了该CDN的前端网站中植入一段恶意JS包,这是一个加密的JS乱码包:

但很快就有大佬对该JS包进行了解密,发现了一段代码:

图片

不仅如此,人家还贴心的给你写了一段分地区,分设备,分时间,分概率跳转的逻辑代码:

图片

大量使用系统的开发者开始涌入官方群组,质问客服关于这段恶意代码的情况。

但客服在电报群中表示“不传谣不信谣”后开始踢人,随后对v1.4.0的版本进行了重新的编译,发布了无毒版v1.4.1

可信任一旦崩塌,就很难重新建立。

随着越来越多的开发者关注这件事,更多的细节被爆了出来:

大家对无毒的最后一个版本V1.3.9的编译版本和有毒的第一个版本V1.4.0的编译版本进行了比较。

发现两个版本竟然连编译器都换了。这真的是一个团队写的项目吗?并且有人对两个版本的项目进行了检查,发现代码风格明显不同。

图片

随后大家便发现主域名已经被更改,Whois记录发生变化。大家都在猜测是否已经被出售。

在这里我建议大家尽快对自己的网站进行自查,如果使用了夹带私货的版本,记得尽快对版本进行回退,删除恶意JS代码。

事情到此便落下帷幕,接下来是我想说的:

截止到现在,已经出现了多起CDN投毒事件,这种来自供应链的投毒总是让我们猝不及防。

在查询这件事相关的资料时,我发现不止有我一个人关注到了这件事,有的开发者对这件事甚至挖的更深。将这件事与BootCDN投毒的事件串联起来,找到了一些蛛丝马迹。但他本人也受到了威胁邮件,相关的论坛也直接被打挂了一段时间。

因此我不愿意在这里过多过深的谈论这件事情,感兴趣的朋友可以自行搜索相关资料。

最后我想说:我们无法对这类开源项目的作者要求太多。更没必要从道德的角度苛责这些开源作者为什么要进行投毒事件。

我们更应该把视角放到开源项目的发展问题上,如何建立更加健康,可持久运行的开源项目运营体系。国内的开源环境之所以烂,有一部分原因就是部分开源开发者只管生不管养。

必看?我被恐吓和博客一些事

开端

如何好奇为什么我文章评论大部分无了或者是文章丢失几个,可以翻到后面看

本文采用wp加速永久缓存图片

收到邮件

在一次忙碌的打代码中,我突然收到一封邮件,他的描述是这样的:

image-20240708015407742

然后我就懵了,但是并没有畏惧,而是感到了十足的兴趣性!

解读

首先,我先一点点的去解读这一邮件,文中说到的第一个点就是我于雨云论坛中的luyii用户有联系(例如回复他或者沟通),但是我并不认识他

image-20240708015943117

于是我翻了一下雨云论坛,发现可能是我在有这个用户存在的文章留言了

image-20240708015802277

然后是第二点,说我“你的博客中“关于”页面中的“追求源于热爱”为非法句子,这句话与TCO(资本主义青年团 Teenager Capitalism Organization)近期正在清剿的国产垃圾非法“星火”病毒商店的作者shenmo(欧阳云睿)的gitee简介完全相同”

首先;我的博客中实际上并不存在这一句话,我也不认识《“星火”商店》,我在Linux的造化并不深入,仅仅是入门槛,所以说我很多都不知道并且我也不会去使用。同时我从未听说过“资本主义青年团”,但是,如果存在,他可能是:资本主义青年团 (Teenager Capitalism Organization) 是一个名为 “Teenager Capitalism” 的组织,旨在通过教育和社区活动,培养青少年对资本主义经济体系的理解和参与意识。他们通常通过举办研讨会、讲座或社区项目,引导青少年了解企业运作、市场经济原理以及个人金融管理等方面的知识。这种组织旨在帮助年轻人在未来成为理解和参与经济社会的积极分子。(我的理解)而不是恶意攻击他人网站。

我的想法

我对此想评价,语言逻辑破绽百出

中间

如何一步步回复

首先,在第一封邮件我其实并没有发现,因为他被列入了垃圾邮件,但是对方再一次发送邮件并且也发送了我的QQ,于是乎我才真正意义上的去注意到

image-20240708020817320

图片已删除,特殊原因

这是他的类似于“宣传书”的东西,不过并无威慑力,甚至搞笑

然后,他就发送了我的人照片,并且附加恐吓信息,以此来想让我低头(实际上照片是他在我记录日常的文章找到的并不是通过自己厉害的非法手段获取)

image-20240708021232887

遭受攻击

然后我便收到了一系列的攻击,在6月4-5号奇迹我遭受了1200万次CC攻击请求,由于我7月份事务繁忙,并没有多理会他,切流量然后后面上了微软死抗秒解,后续又发了邮件对我进行勒索恐吓

image-20240708021541139

image-20240708021602315

image-20240708021820716

image-20240708021852727

实际情况

实际上对我造成的影响微乎其微,以下是7月4号-6号的攻击数据,我的运营合伙人表示:谁家小盆友这么好免费给我们刷数据

image-20240708022049458

期间存在的CPU满载情况,不过只是因为我们7月份的事务较多,所以并没有过多去维护以及去特意更新扩容,所以便置之不理了,后续开启海外127,然后就打不动没量了(国内打找机房举报即可)

实际上,他的攻击十分弱小,一次攻击CC大约是几十万上下,并且他所说的用户也在此刻联系到我,让我更加确信

image-20240708022504772

解决

闲话

我经过了一些人的“关系”寻找到他所得罪的人,并且取得了联系,都说不足为惧

image-20240708023134013

我的损失

一系列事件下来,我无任何损失

我为什么换hexo

不过我的halo博客框架被我折腾坏了,并且我备份过于久远,于是再经历几天修复移植hexo,8号基本移植完成,后续会进行一系列的代码改造,编写cssjs美化

可以发现我文章评论区丢失了,因为hexo的链接模式后面有/,我原来的halo没有,就导致评论区的数据对不上,然后我在4月份其实是hexo框架的,所以说不难发现,我评论区会存在4月份以前的留言,而5-7月的评论数据则是对不上导致不显示了,例如友联,4月也使用hexo,所以是link/,5月换了halo是links,期间有了很多评论数据,然后现在又换hexo了,还有,文章也丢失了,不过在其他平台转发了,我尽量修复了!

十分抱歉!我会稳定下来的,也请多多评论互访,增加博客圈子的活跃度!

后续更新

7月9号晚上

现在评论区已经清理部分,有的无脑的评论也清除了,对方恶意者是08年8月的小孩比我小说我小孩😂

事件结束,不在阐复说明

❌