返回

AI朋克作品:手把手教你打造独一无二的MNIST时钟

人工智能

用 MNIST 数字打造个性化时钟:致敬计算机视觉经典

简介

在计算机视觉领域,MNIST 手写数字数据集可谓大名鼎鼎。它包含了成千上万张手写数字图片,广泛用于训练机器学习模型。然而,您可能从未想过,这个看似平淡无奇的数据集也能成为一件独一无二的艺术品。

打造专属 MNIST 时钟

来自 Dheera Venkatraman 的开发者用 MNIST 手写数字制作了一款永不重复的时钟。这款时钟每分钟都会随机显示一个 MNIST 手写数字,让您每天都可以在不同的数字陪伴下开启新的一天。

制作过程并不复杂,只需一些基本的电子元件和编程知识。如果您对 AI 朋克感兴趣,不妨跟着我们的教程,打造一款属于您自己的 MNIST 时钟吧!

所需材料

  • 开发板(如 Arduino Uno 或 Raspberry Pi)
  • LED 显示屏(8x8 像素或更大)
  • 电阻(100Ω)
  • 跳线
  • MNIST 手写数字数据集
  • Python 库(如 Pillow 和 NumPy)

步骤

  1. 连接 LED 显示屏

将 LED 显示屏连接到开发板上。

  1. 加载 MNIST 数据集

将 MNIST 手写数字数据集下载到开发板上。

  1. 转换数据格式

使用 Pillow 和 NumPy 库将 MNIST 手写数字转换为适合 LED 显示屏的格式。

  1. 编写显示程序

编写程序,让开发板每分钟随机显示一个 MNIST 手写数字。

代码示例

import random
import numpy as np
from PIL import Image

# 加载 MNIST 数据集
mnist = MNIST('data')

# 转换图像格式
def convert_to_led(image):
    # 黑白图像
    image = image.convert('1')
    # 调整大小
    image = image.resize((8, 8))
    # 转换为 NumPy 数组
    image = np.array(image)
    # 转换为 LED 显示屏格式
    image = np.where(image > 128, 1, 0)
    return image

# 每分钟随机显示数字
while True:
    # 随机选择数字
    image = random.choice(mnist.test_images)
    # 转换格式
    image = convert_to_led(image)
    # 显示数字
    display.show(image)
    # 等待一分钟
    time.sleep(60)

效果

运行程序后,LED 显示屏将每分钟随机显示一个 MNIST 手写数字。您可以将时钟放置在办公桌上或墙上,让它成为您每天的陪伴。

结语

这款 MNIST 时钟不仅仅是一件艺术品,更是一件实用的电子设备。它不仅可以显示时间,还可以让您在不同数字的陪伴下开启新的一天。如果您对 AI 朋克感兴趣,不妨制作一款属于您自己的 MNIST 时钟吧!

常见问题解答

  1. 为什么 MNIST 手写数字被用于制作时钟?

MNIST 手写数字具有极高的辨识度和丰富的视觉特征,非常适合用于制作时钟显示数字。

  1. 这款时钟可以显示多少种不同的数字?

理论上,这款时钟可以显示 10 种不同的数字(0-9),但由于数据集的随机性,实际显示的数字数量可能会略有不同。

  1. 制作这款时钟需要多少编程经验?

制作这款时钟需要一些基本的 Python 编程知识和对电子元件的了解。如果您是编程新手,建议先学习一些基础知识。

  1. 这款时钟可以连接到互联网吗?

这款时钟不需要连接到互联网,它使用内置的 MNIST 数据集随机显示数字。

  1. 这款时钟可以用于哪些场景?

这款时钟可以用于各种场景,如办公桌装饰、教室教具、创意艺术展示等。