是的,有了这个时钟,你的生活就离不开MNIST手写数据集。古代我们看惯了用电子管做的钟表。AI时代,有没有更潮的时间显示方式?是的,数据集也可以做成时钟。每天早上,让MNIST手写数字唤醒你对一天的记忆。MNIST是计算机视觉领域的老经典。当第一代卷积神经网络在这个手写数字数据集上大放异彩时,注定要载入“史册”。虽然计算机视觉已经走出了MNIST数据集的时代,但即便是拥有超过1000万张图片的ImageNet也不再是一个非常庞大的图像数据集。然而,MNIST仍然不容忽视。它是入门深度学习的第一个数据集,也是验证算法的第一个实验。它甚至被用在Hinton用来测试他的Capsule想法的数据集中。如果要向这样的数据集“先行者”致敬,你会用什么方式呢?在GitHub中,机器之心发现了一个有趣的小项目。作者DheeraVenkatraman做了一个时钟,里面的数字都是从MNIST数据集上采样的。项目地址:https://github.com/dheera/mnist-clock即24小时随机抽取一万个不同的手写数字,每天不重复抽样。效果如下:这样的电子钟只需要一块简单的电路板加上4块电子墨水屏。其背后的外观如下:硬件项目使用TinyPICO开发板;紧凑的ESP32板和许多GPIO引脚、4MB闪存、Wi-Fi等等。TinyPICO可以说是目前世界上最小的基于ESP32-PICO-D4的开发板。240MHz的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打印的外壳上,大功告成:如果读者对硬件不熟悉,不用担心,我们只需要按照项目作者并组装它很好。稍后我们会介绍所有“设备”的价格,作者提供了设计图纸。该软件项目的作者DheeraVenkatraman表示,他经常写C++或C,但他对MicroPython非常感兴趣,所以在这个项目中使用了它。项目作者使用每像素2位的灰度深度来表示MNIST手写数字。一个28*28像素的图像在这个位深度下只需要196个字节,因此4MB的闪存足以用于整个MNIST验证集。如果要拟合整个数据集,那么只需要换成闪存更大的单片机,??或者使用1-bit深度的图片,或者使用压缩的方法等。把所有文件放在根目录下的/code下TinyPICO,正确的文件大致如下图所示。另外,我们还需要为Wi-Fi建立一个名为.wifi的文件,中间写上yourssid和yorpassword,读取WIFI设置的具体代码如下。项目作者DheeraVenkatraman在GitHub中提供了所有代码文件,打印时钟数字的代码也非常可读。比较友好的是作者的代码提供了非常完整的注释,基本的重要语句都有解释。现实一点,多少钱一件?从硬件上看,主要成本似乎是TinyPICO开发板和四块电子墨水屏。首先,TinyPICO可以在淘宝或者国外网站上买到。国外20美元,淘宝235元,运费差不多。此外,读者还可以选择专门的元器件商城,价格也在200元左右。其次,一块电子墨水屏成本约为24美元。虽然在淘宝上找不到,但是国内的元器件店便宜很多。一件只要92元左右。可能树莓派对它的需求比较大。其他的费用比较少,钟表的线材和接头的外包装比较容易拿到,在国内元器件商城也可以一次性采购。如果读者想要3D打印外包装,作者也提供了具体的打印参数。因此,一般情况下,制作成本应该在650元以下,开发板和电子屏可以在其他项目中重复使用。或许我们还可以改进项目作者的实现方式,在大墨屏上实现一个数字时钟,直接使用比较常用的树莓派作为主板(功耗比TinyPICO高很多),实现更多的能力,比如real-时间采样CIFAR-10作为背景。总而言之,MNIST数字时钟还有很多可以玩的地方。最后,可以在原始项目中找到所有硬件和软件详细信息。另外,值得一提的是,DheeraVenkatraman还是一个很有意思的小哥哥。他骑自行车沿着人类历史上最长的人工河从杭州到北京骑行了1600公里。LastButNotLeast诚然,MNIST站在舞台中央的时代已经过去,但它的作用也不容忽视。还有许多研究人员致力于改进和修复它,做出了独特的贡献。2017年,德国时尚科技公司Zalando提供了FashionMNIST数据集。它的大小、格式和训练集/测试集拆分与原始MNIST完全相同。我们不需要修改任何代码即可从MNIST迁移到它。去年6月,纽约大学和Facebook的研究人员重建并扩展了MNIST数据集,向测试集添加了50,000个样本,将测试集增加到60,000个样本。MNIST的作者之一YannLeCun说,“如果你多次使用原来的MNIST测试集,你的模型可能已经在测试集上拟合好了,是时候在新的样本上试一试了。”无论是让MNIST成为日常生活中好看好玩的项目,还是提高数据集本身的能力,MNIST永远是一部活的历史~
