项目作者:Dheera Venkatraman
参与:思、Jamin
是的,有了这面钟,这辈子都离不开 MNIST 手写数据集了。
我们见惯了上古时期,由电子管组成的时钟。在 AI 时期,有没有更加新潮的韶光显示办法?是的,数据集也能做成时钟,每天早上,让 MNIST 手写数字唤醒你一天的影象。
MNIST 是打算机视觉中不老的经典,当第一代卷积神经网络在这个手写数字数据集上绽放出刺目耀眼的光芒,它注定会载入「史册」。
只管目前打算机视觉已经早就走出了 MNIST 数据集的时期,乃至连一千多万图像的 ImageNet 也不再是非常大的一个图像数据集。然而,MNIST 仍旧不可忽略,深度学习入门的第一个数据集、验证算法的第一个实验都是它。乃至连 Hinton 验证 Capsule 这个想法的数据集都用的它。
如果说想要致敬这样的数据集「先驱」,你会采取什么样的办法?在 GitHub 中,机器之心创造一个故意思的小项目,作者 Dheera Venkatraman 做了一壁钟,里面的数字都是从 MNIST 数据集中采样的。
项目地址:https://github.com/dheera/mnist-clock
也便是说,24 小时随机抽万张不同的手写数字,每天都不带重样。做出来的效果是这样的:
这样的电子钟只须要大略的电路板再加上 4 块电子墨水屏就行了,它背后的样子是这样的:
硬件
项目利用了 TinyPICO 开拓板;紧凑的 ESP32 板以及大量的 GPIO 插脚、4MB 闪存、Wi-Fi,以及其他很多功能。TinyPICO 可以说是目前天下上基于 ESP32-PICO-D4 体积最小的开拓板,240 MHz 的 32 位双核处理器足够我们完成打算。
4 块 e-link 数字显示器,之以是选择 e-link,是由于它符合手写数字的观点,在任何光芒条件下都能正常运行,而且也不至于打扰到任何人。Waveshare 的 e-link 显示屏大部分是 SPI,虽然也有些额外的引脚。大部分人会希望一块只包含 SPI 以及一块 CS 插脚,但多一些的链接器是有必要的。下面是 ESP32 的连接图,根据这个把电线卷起来。
作者在 TinyPICO 上利用的是两个 10-引脚的 JST-EH 的连接器,JST-EH 比 JST-XH 利用更低的配置,更适宜插入,以及比标准引脚更短更安全。
JST-EH 连接器所连接的 TinyPICO
下面,再见硬件固定在 3D 打印的外壳上,就大功告成了:
如果读者们对硬件不熟习,那也不要急,我们只要按照项目作者给出的硬件,并装置好就行了。后面我们会先容所有「装备」的价格以及作者供应了设计图。
软件
项目作者 Dheera Venkatraman 表示,他常常写 C++或者 C,但他对 MicroPython 非常有兴趣,因此在这个项目中采取的便是它。
项目作者利用每像素 2 比特的灰度深度来表示 MNIST 手写数字。在这种比特深度下一张 2828 像素的图像只须要 196 字节,因此一个 4MB 的闪存就能知足全体 MNIST 验证集。如果你想把全体数据集都装进去,那么也只须要换闪存更大的微掌握器、或者利用 1 比特深度的图像、或者利用压缩方法等。
将所有文件放在 TinyPICO 根目录中的/ code 中,精确的文件大概如下图所示。
其余,我们还须要为 Wi-Fi 创建一个名为.wifi 的文件,中间写上 yourssid 与 yourpassword,详细的读取 WIFI 设置的代码就如下所示。
项目作者 Dheera Venkatraman 在 GitHub 中供应了所有代码文件,打印钟表数字的代码也非常易读。更友善的的是,作者的代码供应了非常完善的注释,基本主要的语句都有解读。
现实一点,做一块多少钱?
如果从硬件来看,彷佛紧张本钱便是 TinyPICO 开拓板以及四块 e-ink 屏。首先 TinyPICO 在淘宝或者国外网站都能买到,国外卖 20 美元,而淘宝上标价 235 元,加上运费实在也差不多。此外,读者也可以选择专门的元器件商城,其价格也在 200 块旁边。
其次,一块 e-ink 屏大概 24 美元,虽然淘宝找不到,但是海内的元器件商城要便宜得多,一块只须要 92 元旁边,可能树莓派对它的需求比较大吧。
其它的本钱就比较少了,线材、连接器装时钟的外包装都比较随意马虎得到,在海内的元器件商城也可以一次性买到。如果读者想 3D 打印外包装,作者也供应了详细的打印参数。以是,总的来说,制作本钱该当是低于 650 元的,个中开拓板和电子屏都可以在其它项目中再利用。
大概我们还能改进该项目作者的实现,在一块大的墨水屏上实现数字时钟,直策应用更常用的树莓派作为主板(功耗远高于 TinyPICO),并实现更多的能力,例如实时采样个 CIFAR-10 作为背景。总之,MNIST 数字时钟还有很多可以玩的地方。
末了,所有硬件与软件的详细信息都可查阅原项目。此外,值得一提的是,Dheera Venkatraman 还是非常故意思的一位小哥哥,他从杭州到北京沿着人类历史上最长的人工河靠自行车骑了 1600 公里。
Last But Not Least
确实 MNIST 站在舞台中心的时期已经由去了,但它的浸染仍旧不可忽略,仍旧有很多研究者致力于改进并修复它,做出独特的贡献。
2017 年,德国时尚科技公司 Zalando 供应了 Fashion MNIST 数据集,它的大小、格式和演习集 / 测试集划分与原始的 MNIST 完备同等,从 MNIST 迁移到它,我们不须要修正任何代码。
去年 6 月份,NYU 和 Facebook 的研究者重修并扩展了 MNIST 数据集,在测试集中新增了 50000 个样本,将测试集增加到 6 万样本。MNIST 作者之一的 Yann LeCun 表示,「如果多次利用原版的 MNIST 测试集,你的模型可能在测试集上已经由拟合了,是时候在新增的样本上试一下了。」
不论是将 MNIST 做成日常生活中好看又好玩的项目,还是提升数据集本身的能力,MNSIT 一贯都会是活着的历史~