SmartKC 低成本角膜地形圖方案

在上一篇文章中我说了我佩戴 OK 镜的过程在整个过程中我发现最烦人的就是这个角膜地形图了因为这个必须要用那个非常昂贵且巨大的设备才能拍摄尤其是在我靠眼罩压镜片的那段时间如果能每天都得到这个角膜地形图的反馈我就可以立即知道哪里出了问题后来我发现还真有这样的解决方案https://github.com/microsoft/SmartKC-A-Smartphone-based-Corneal-Topographer/tree/main 这是微软实验室做的一个项目虽然很老旧但好在有详细的文档我成功的复现了结果

由于模具变形比较边缘的位置地形实际上已经没有参考性但相对中央区域还是可以很好的看出 OK 镜的效果的尤其右眼压得很深很居中而左眼就相对差了一些

现在我就记录一下整个实现过程希望能够帮到更多的人

硬件

整个项目硬件打开可以分为三部分

  • 手機
  • 电路板
  • 3D 打印的模具

手機

手机这个很好理解了你得有个设备来拍照——但还真有点要求由于是要拍眼球是近距离拍照所以要求你的手机默认镜头有一定的微距能力而现在主流旗舰都是长焦这一点要注意不然你的镜头根本没法清楚对焦到眼球

官方给出了实测可兼容的设备列表 OnePlus 7T, OnePlus 6T, Samsung Galaxy A52s 5G, Xiaomi Pocophone F1我买到了 Samsung Galaxy A52s 5G效果如文章开头的照片

基本上,任何手机 1200 万像素以上并且对焦距离在 75mm 或者更近就可以的这一点上如果你能买到以上列表中的设备那就没有坑(你需要一个手机壳毕竟直接将模具粘在手机上不是不行但并不方便取下)

电路板

其实这个电路板就是控制了一个环形的 led 灯它并没有任何其他功能

控制器长这样 (ATTINY85)我是在這裡买到的我搜了搜淘宝上其实有注意型号和外形完全一样即可

然后是灯我也是在同一家店买的(WS2812 12bit rgb):

我搜了搜可能比 ATTiny85 要难找一点淘宝上并不能直接搜到但理论上型号一致,12位彩色就行

买到之后需要一点点焊接能力将他们连在一起

开发板LED 灯圈
5v5v
grdgrd
p1d1

刷代码

這裡註意,由于这个板子比较旧了我实测是无法成功在 mac 上写入代码的我猜测可能是出在 typec 转换这一块但并不能确认后来我换 Windows 后即使插在 usb3 的接口也能顺利刷入,一次成功。

这里值得注意的是官方教程里给的链接 HTTP://digistump.com/package_digistump_index.json 早就过期失效了可用的链接是这个HTTPS://raw.githubusercontent.com/digistump/arduino-boards-index/refs/heads/master/package_digistump_index.json

在添加到 Arduino IDE 后不需要去选择 Contributed而是直接搜索 digis点击安装

模具

我在模具这一块花了很多功夫普通打印机并不能很好的打印这个模具难点有两个一个是很多店铺只能打黑色模具而扩散器(那个锥形的东西)需要白色导光需要注意另一个是遮光罩内部结构十分脆弱普通 pla 的话出来的东西你很难拆掉支撑部分大概率里边的结构就跟着一起掉下来了当然理论上你可以进一步清理然后粘回去应该也是能用的

我最终是找到这家成功打印

不过遗憾的是他们在邮寄的时候为了保护遮光罩里边的结构塞了过多的填充物反而是填充物把结构压变了形这一点需要注意可以把扩散器套在上面或者干脆三个东西组装起来再发货

軟件

软件部分一个是手机app用来拍照另一个是在电脑端进行运算生成地形图的python代码由于这个计算过于复杂恐怕是很难把他们放进手机里实时出图了不过 SmartKC 提供了另一种方案就是用 Azure functions拍照后自动上传functions 拿到照片云端计算目前我还没有这个需求在拍照后我是手动连线到电脑导出照片用python计算的

APP

代码是可以正常运行的下载 Android Studio 后直接打开项目目录编译到手机就好了很粗糙但能用的app

实际拍摄的时候你需要等待 LED 补光灯稳定白色然后再拍另外它会每只眼睛自动拍摄三次焦点和中心点找对后会自动触发拍摄对于单人操作也十分友好

蟒蛇

这部分比较复杂我是 macOS显然他们是在 Windows 上完成的。而且,蟒蛇 3.8 已经过于老旧我用目前 macOS 内置的 3.10 运行成功了

首先配置环境

然后安装依赖这里注意要跳过 nvidia-* 相关的包

最后把你的照片和生成的csv都从手机中取出来放到一个目录里,比如 user_image,然後執行

總結

以上都是我的踩坑记录总的来说你还是需要查看这个完整的文档 https://github.com/microsoft/SmartKC-A-Smartphone-based-Corneal-Topographer/blob/main/hardware/README.md 软件部分相对简单对我来说最困难的就是找店铺打印这个模具和想办法用 mac 刷那个控制器。顯然,不行,你必须用 Windows不要再走弯路

我目前还在和眼科医生交流等看看这个结果和他们专业机器相比究竟有多大的可比性能不能具有真实的参考价值如果后续我有空的话我会考虑把安卓方面的代码优化一下还有尝试将 python 部分封装优化一下之类的

本文由 落格博客 原創撰寫:落格博客 » SmartKC 低成本角膜地形圖方案

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/4228.html

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。