转载自微信公众号:差评(chaping321)

大家好,我是播妞,今天想给大家分享一位“业余”程序员的故事。

“ 这才是程序员该有的样子! ”

“ 楼主真的太强了,技术拯救世界 ”

“ 与他相比,我感觉自己写的代码毫无意义。。。 ”

这几条网友评论,出自程序员的聚集地——V2EX 论坛中的一个帖子。

当你第一次看到这些留言,可能觉得他们未免有点中二,但对于那些曾被帖子拯救过的人和家庭来说,这样的评价,名副其实。

因为帖子的作用是:检测乳腺癌

2018 年,一位名叫 coolwulf 的楼主开了个帖子,说自己做了一个网站。用户只要上传自己的 X 光影像图片,就能让 AI 为自己快速诊断乳腺癌病情,肿瘤识别的准确率,也已经达到 90%。

简单来说,就是让人工智能帮你“ 看片子 ”,准确率还几近媲美专业医生,并且完全免费。

众所周知,乳腺癌治愈率虽高,但因为早期症状不明显,所以很容易错过最佳治愈时机,往往发现时就已是晚期。

但,一个靠谱的肿瘤检测 AI,却可以让大量无法及时就医的病人,提早得知病情。即便最后需要医生确诊,但在很多医疗资源紧张的地区,这已经弥足珍贵。

同时,乳腺癌发病率也是所有癌症中最高的

很快,coolwulf 这篇帖子,就获得了罕见的数百条回复。

评论区里,有人正在等待医生的检测结果,焦急难耐;也有网友家人罹患乳腺癌,对此充满了未知和恐惧。而 coolwulf 的项目,让他们看到了希望。

随之而来的,当然还有大伙对项目和 coolwulf 本人的好奇。AI 检测乳腺癌,靠谱么?巨量的临床数据和硬件算力,又从何而来?更重要的是,这位愿意将其免费开放的超级大神,究竟是谁?

对于许多问题,coolwulf 本人并没有一一回复。甚至很快便事了拂衣去,深藏功与名,很少再出现了。

谁知,就在 2022 年,他英雄归来,还带来了更重磅的「脑癌项目」,而且神秘依旧。

为了拨开 coolwulf 身上的迷雾,作者联系到了远在美国中部的他。经过几轮采访后,今天,就让我们一起来听听 coolwulf 的故事——

coolwulf,原名姜浩。

学生时代,分别于南京大学物理系、密歇根大学核工程和放射科学系,攻读本科和博士学位。

他评价自己的职业生涯,言简意赅:“ 虽然主业是影像医学,但业余时间也是个做做开源项目的程序员 ”

coolwulf 姜浩( 右一 )

如果罗列一下他本人的履历,甚至会让人怀疑,他是不是有什么超能力。

coolwulf 的父母并不是医疗从业者,但从小就培养起了他对编程的兴趣。所以,coolwulf 在学业闲暇时,就爱写点代码。

在那个还没有 GitHub 的年代,他常常会把自己的项目放在 sourceforge 这种老牌程序员社区。

他曾在 2001 年左右,加入了一个叫 Mozilla Foundation 的开源项目中。

这个组当时有两个初始项目,其中一个是他贡献代码的 K-Meleon( 一款浏览器,早年在国内还挺火的 )。而另一个项目,代号 Pheonix,也就是我们熟悉的火狐浏览器前身还因为这事,他十几年前就被媒体采访过。

coolwulf 在 2009 年也写过一个网站,能帮大伙低价订到酒店。在北美的留学生,应该有不少人用过。而这些,都只是他业余时间,兴趣使然搞出来的。

完成影像医疗的学业后,他接连在布鲁克、西门子担任研发总监,指导影像领域的产品开发。

没过几年,又和现德克萨斯西南医学中心的终身教授——卢卫国,创立了两家针对放疗市场的软件公司,开始从事癌症放疗和人工智能技术的产品研发。

总之,纵观 coolwulf 这大半生,应该就是我们口中的“ 学神 ”,没跑了。

PS:老哥不仅学业副业两开花,在南大时候,还是篮球队的主力控球后卫。

coolwulf 领导开发的布鲁克 Photon III ▼

可能,他继续这样发展下去,会成为一个距离我们很遥远的科研企业家。

但下面这件事,既是 coolwulf 人生的转折点,也是将他与万千家庭、生命距离拉近的起始点。

他年仅 34 岁的南京大学校友,由于错过了乳腺癌最佳治疗期,不幸离世,只留下一个 4 岁的儿子。在亲眼目睹了生死,以及被病痛摧毁的家庭后,coolwulf 惋惜不已。同时,他也了解到,不少乳腺癌患者往往都缺乏检测途径,很容易耽误就诊。

校友家庭旧照 ▼

于是 coolwulf 诞生了用 AI 来检测 X 光片的想法,他也刚好有对口的专业经验。

不过,想做一个能准确检测肿瘤的 AI 可不是件容易事。

coolwulf 先在佛罗里达大学的官网下载了 DDSM、MIAS 数据集。但由于数据年代久远,影像资料还都是胶片翻拍的,所以又专门写了个程序,把所有信息转为可用形态。

然后,他为了取得巴塞罗那大学的非公开资源——乳腺癌数据集,还特地写了封邮件求得许可。

这期间,也要持续阅读大量的文献,撰写对应的模型代码。

当时 coolwulf 发送的请求邮件 ▼

然而这还不够,要正式训练这个模型,往往需要非常高的硬件算力。所以,他又自掏腰包,在本地搭建了一个—— 50 张 Nvidia GTX 1080 Ti 组成的 GPU 运算集。

要说这 50 张显卡,也属实来之不易。因为,买的过程中得和矿商黄牛斗智斗勇。coolwulf 当时是找来朋友,用了很多张信用卡,不停在网站蹲点刷新,才搞到手。事情到这儿,终于算是完成了网站的前期准备。

是的,除了游戏和挖矿,显卡还有更多用途 ▼

这个免费的 AI 检测乳腺癌网站,coolwulf 前后大概花了三个月的业余时间,忙的时候直接睡在办公室,最后终于在 2018 年上线。

他和作者说,由于后台不保存数据,所以并不清楚具体有多少人使用过。但在那段时间,他收到了很多患者的感谢邮件,不少都来自国人。

而且,用户真的用网站检查出了肿瘤,尤其对于医疗资源紧张地区的人们,相当于从死神手里抢下时间。

第一位哥们照片搞错了,重新检测后发现了肿瘤 ▼

几年前,相关技术还尚未普及,所以 coolwulf 的项目算是个启蒙。

网站也因此获得了业内的广泛关注,期间不乏复旦大学外科等国内外医疗机构,用邮件的方式向他表达感谢,并愿意提供资金、技术支持。毕竟,整件事 coolwulf 都是自费,这可不是一笔小数目。

复旦大学癌症中心发来的邮件 ▼

至于为什么不将网站商用、收点钱,这个问题作者也问了。coolwulf 的回答语气淡然,却不置可否:“ 癌症病人以及他们的家庭,承受了太多,相信每个人都想帮助他们,而我刚好有这个能力 ”。

就这样,他谢过了许多人的经济援助,仅凭一己之力包揽所有。

除了网站,当时还有个桌面版的检测软件 ▼

时间到了 2021 年,对 coolwulf 来说,也迎来了人生第二个关键的转折点。他同事的表哥身患脑肿瘤,情况不太乐观,并采用了「全脑放疗」进行治疗。

不幸的是,这位患者在全脑放疗几个月后,脑肿瘤再次复发,但此时已没有任何治疗手段,只能等待死亡降临。

全脑放疗,是一种通过放射线,对患者脑肿瘤进行大范围消杀的疗法,不仅会消除癌细胞,连正常脑细胞也会造成伤害,以此减少病灶发生。

用不太严谨的话说,全脑放疗,更像是一种“ 无差别攻击 ”。因此,考虑到脑部的耐受度,全脑放疗通常只能做一次。

经过此事后,彻底改变了 coolwulf 的看法,并决定突破一个业内难题——不再让 AI 停留在检测阶段,而是真正投入实际治疗。

要知道,全脑放疗是如今最普遍的脑肿瘤治疗方案。在美国,每年就有 20 万人接受全脑放疗。那么,是不是多肿瘤脑癌患者,就一定要铤而走险,选择全脑放疗呢?

其实也不尽然,因为还有另一种的疗法——立体定向放疗

与全脑放疗的大范围照射相比,立体定向放疗的射线更集中,可以在不伤及正常组织的情况下,精准切除病变组织。像我们熟悉的伽马刀,就是立体定向放疗的一种。这种疗法副作用低,对患者的伤害也更小,并可以多次使用。

在学术界也基本统一认为,立体定向放疗能提供给患者更好的生活质量,同时,疗效也更为显著。

唯一的问题就是,立体定向放疗,会导致医疗资源变得更加紧俏。因为一旦采用这种方案,肿瘤医生就要精确勾画,标注每一个肿瘤;物理师也得对每一个肿瘤,做精确的治疗计划,救治一位患者将耗费大量时间。

所以,在病人肿瘤数量过多时,医生几乎都倾向于选择全脑放疗,而不是立体定向放疗。

但 AI 影像技术,兴许就可以用来分担医生的工作量。

于是,为了让更多脑癌患者都能用上立体定向放疗,coolwulf 又一次投入研发。只是这次面临的问题,显然更具挑战性,再不是仅凭他一人就能做到的。所以他找到了美国西南医学中心、斯坦福大学,寻求合作。

在众人的帮助和努力下,终于在不久前开发出了以下三种 AI 模型:

自动勾画 / 标记脑转移瘤病灶的模型;

基于 SVM-放射组学,能快速减少假阳性的模型;

基于优化辐射剂量图,能快速分割多个病灶到不同治疗疗程的模型。

三种模型相辅相成,对应到医生的工作流程中,大幅减少使用立体定向放疗时的工作量

这个项目,目前已经在 2022 年 AAPM 春季临床会议上发表,再一次取得了业内的广泛认可。coolwulf 与合作学者们,也正在加快步伐,试图让整个立体定向放疗社区都能投入使用。

而在采访中,coolwulf 多次提到,能有今天这个成果,绝不是他一个人的功劳。

他希望,作者能把合作者的名单都公布出来,因为这里的每个人,都是默默和癌症战斗的英雄。

近些年的癌症死亡率,相比于 30 年前,已经下降了 30%。照这么发展下去,也许未来的某一天,癌症将不再是绝症。

但这并不是件船头桥头自然直的事,而是有无数个像 coolwulf 他们这样的人,在深渊中挑灯前行。

文章最后,就借用 Reddit 下一位国外网友的评论,用作结尾吧:

“ 不是所有英雄,都披着披风 ”。

 0基础,学IT,月薪过万 

 就来黑马程序员 

8大学科火热开班中

现在报名基础班,仅需 28 元

扫码咨询,抢优惠名额

咨询线上课程

可以直接添加播妞1对1解答哦

丨热门教程资源丨

回复【领取资源】领《黑马8学科汇总教程》

回复【spring1】领《Spring系列课》

回复【瑞吉外卖】领《瑞吉外卖项目》

回复【SSM】领《SSM框架教程》

回复【mysql1】领《Mysql入门到精通》

更多教程加播妞领取:heiniu526

(在下方公众号回复对应关键词,即可领取哦)

↓↓↓

撰文:赤膊朋克   编辑:面线&莽山烙铁头   美编:萱萱

图片、资料来源:

coolwulf,V2EX,Google图片,

National Library of Medicine:

Whole-Brain Radiotherapy for Brain Metastases: Evolution or Revolution?

Whole brain radiotherapy for brain metastasis

Whole Brain Radiation-Induced Cognitive Impairment: Pathophysiological Mechanisms and Therapeutic Targets

Damage to the Superior Retinae After 30 Gy Whole-Brain Radiation

Wikipedia:

Stereotactic surgery

这名“业余”程序员,曾用50张1080Ti对抗癌症!!!相关推荐

  1. 如何成为一名业余程序员

    为什么80%的码农都做不了架构师?>>>    为何有这篇文字 从毕业到现在已6年有余,从事软件相关行业也差不多这个数了,算是个入了门的程序员 最近,做电源开发的大学室友找我要学软件 ...

  2. 用 50 张游戏显卡检测癌症,这是“业余”程序员?

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 大多软件/网站在设计之初,都是被开发者赋予极大的期待与愿望的.但很多情况下,随着日复一日的维护与更新.逐渐减少的用户群体,他们的热情被消 ...

  3. 敲了 10000 小时代码,我也没能成为一名高级程序员

    [CSDN 编者按]Malcolm Gladwell在<离群索居>(Outliers)一书中曾言,要真正掌握某件事情,需要10000小时的练习.而本文作者Greg Bulmash拥有40多 ...

  4. 内卷失败:敲了 10000 小时代码,我也没能成为一名高级程序员

    [CSDN 编者按]Malcolm Gladwell在<离群索居>(Outliers)一书中曾言,要真正掌握某件事情,需要10000小时的练习.而本文作者Greg Bulmash拥有40多 ...

  5. 关于一名Java程序员如何备考教师资格证----高级中学信息技术学科

    文章目录 简介 笔试 科目一<综合素质> 选择题(29题58分) 材料分析题(3题42分) 写作题(1题50分) 科目二(教育知识与能力) 选择题(21题42分) 辨析题(4题32分) 简 ...

  6. 业余程序员余流 - 杂谈 之 《每个人都有自己的选择》

    大家好! 我是你们的好朋友 业余程序员余流.今天我来讲一个关于我的无血缘关系的姐姐的事情. 2007年的一个冬日的一个晚上, 寒风刺骨, 那时候还很冷, 起码秋衣秋裤要备上.在以前的老家里,坐着我们一 ...

  7. 作为一名Java程序员,这些Spring知识点面试官常考

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 丸纸 来源 | 极客时间 毋庸置疑,Spring 早已成为 Java 后端开发事实 ...

  8. python程序员工作怎样-怎样才能成为一名Python程序员

    随着互联网的不断发展,从事IT行的的人越来越多,近几年用Python编程的程序员更是十分火爆,有些人是看中Python语言的优势,有些人是看中Python程序员的人才缺口,为将来的就业和职业发展做好准 ...

  9. 从零开始成为一名开源程序员,其实只需要九步!

    探索技术世界,是一件非常令人兴奋的事情.你会发现有非常非常多的领域,等待你去学习,去深挖.如果有兴趣参与和帮助创造更好的功能,加入到开源的队伍当中,你知道要从哪里开始吗?第一步该做什么?第二十步又是什 ...

最新文章

  1. 华为:憧憬6G,共同定义6G
  2. 战队基地_走a怪凌晨四点被赶出训练基地,粉丝礼物还被战队瓜分
  3. 第八届蓝桥杯省赛第二题---等差素数列
  4. 如果机房的线路老化了要怎么做才对?
  5. linux内核头文件 cdev.h 解析
  6. java文件读入原理_描述一下JVM加载class文件的原理机制
  7. 分享WordPress博客搜索引擎优化的六点经验 博客园 cnbogs
  8. Tensorflow 踩的坑(一)
  9. js中的正则表达式(2)
  10. camvid数据集使用方法_github资源推荐:目标姿态检测数据集与渲染方法
  11. rabbitmq安装erlang,报错configure: error: /bin/sh ‘/app/otp_src_20.2/erts/configure‘ failed for erts
  12. 用友u8反记账反结账如何处理
  13. Verilog 语法合集
  14. node-sass 安装失败,原因总结
  15. SASE 本质探究(1):什么是云化
  16. c语言点阵输出字母,单片机C语言程序设计:8X8LED 点阵显示数字
  17. 芯片数据分析步骤2 读取数据-affy
  18. OCR+RFID感应识别电子护照阅读器|读卡器MERR100+的 API 接口函数说明
  19. easypoi利用模板导出图片到Excel;解决easypoi导出图片到合并单元格单元格被拉伸的问题
  20. c++ placement new

热门文章

  1. @NotNull 注解中groups 的用法
  2. Javascript数据库:Taffy DB
  3. 用计算机求平均数ppt,华东师大版八年级数学下册《用计算器求平均数》.ppt
  4. linux下赋予普通用户root权限
  5. 北京大学给所有Python自学者,分享的一份Python书单,入门的小白不可不读!
  6. position样式属性
  7. tightvnc使用技巧,教你个5步tightvnc使用技巧
  8. 无法启动计算机中丢失HAL.dll,win7系统提示“hal.dll损坏或丢失”导致windows无法启动的解决方法...
  9. 汽车动力总成综合匹配规律
  10. 双色球、大乐透、玩法、规则