专栏名称: 机器之心
目录
相关文章推荐
AI前线  ·  民间大神魔改4090 ... ·  昨天  
新智元  ·  DeepSeek-R2曝5月前上线!第三弹D ... ·  昨天  
爱可可-爱生活  ·  [LG]《Minions: ... ·  昨天  
硅星GenAI  ·  DeepSeek开源周Day 2: ... ·  2 天前  
硅星GenAI  ·  DeepSeek开源周Day 2: ... ·  2 天前  
歸藏的AI工具箱  ·  Claude 3.7 Sonnet ... ·  2 天前  
歸藏的AI工具箱  ·  Claude 3.7 Sonnet ... ·  2 天前  
51好读  ›  专栏  ›  机器之心

AI朋克致敬MNIST:只用Python和开发板,制作永不重样的时钟

机器之心  · 掘金  · AI  · 2020-03-11 03:20

正文

阅读 129

AI朋克致敬MNIST:只用Python和开发板,制作永不重样的时钟

是的,有了这面钟,这辈子都离不开 MNIST 手写数据集了。

机器之心报道,项目作者:Dheera Venkatraman,参与:思、Jamin。

我们见惯了上古时代,由电子管组成的时钟。在 AI 时代,有没有更加新潮的时间显示方式?是的,数据集也能做成时钟,每天早上,让 MNIST 手写数字唤醒你一天的记忆。

MNIST 是计算机视觉中不老的经典,当第一代卷积神经网络在这个手写数字数据集上绽放出耀眼的光芒,它注定会载入「史册」。

尽管目前计算机视觉已经早就走出了 MNIST 数据集的时代,甚至连一千多万图像的 ImageNet 也不再是非常大的一个图像数据集。然而,MNIST 仍然不可忽视,深度学习入门的第一个数据集、验证算法的第一个实验都是它。甚至连 Hinton 验证 Capsule 这个想法的数据集都用的它。

如果说想要致敬这样的数据集「先驱」,你会采用什么样的方式?在 GitHub 中,机器之心发现一个有意思的小项目,作者 Dheera Venkatraman 做了一面钟,里面的数字都是从 MNIST 数据集中采样的。


也就是说,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 手写数字。在这种比特深度下一张 28*28 像素的图像只需要 196 字节,因此一个 4MB 的闪存就能满足整个 MNIST 验证集。如果你想把整个数据集都装进去,那么也只需要换闪存更大的微控制器、或者使用 1 比特深度的图像、或者使用压缩方法等。

将所有文件放在 TinyPICO 根目录中的/ code 中,正确的文件大概如下图所示。

另外,我们还需要为 Wi-Fi 创建一个名为.wifi 的文件,中间写上 yourssid 与 yourpassword,具体的读取 WIFI 设置的代码就如下所示。

项目作者 Dheera Venkatraman 在 GitHub 中提供了所有代码文件,打印钟表数字的代码也非常易读。更友善的的是,作者的代码提供了非常完善的注释,基本重要的语句都有解读。

现实一点,做一块多少钱?

如果从硬件来看,似乎主要成本就是 TinyPICO 开发板以及四块 e-ink 屏。首先 TinyPICO 在淘宝或者国外网站都能买到,国外卖 20 美元,而淘宝上标价 235 元,加上运费其实也差不多。此外,读者也可以选择专门的元器件商城,其价格也在 200 块左右。







请到「今天看啥」查看全文