Show HN:一个能听鸟叫并将其绘制成 19 世纪风格插画的电子墨水屏相框
Show HN: An e-ink frame that hears birds and draws them as 1800s illustrations

原始链接: https://github.com/arnegiacomo/fugleramme

**Fugleramme** 是一款基于树莓派(Raspberry Pi)的数字观鸟相框。它能够实时捕捉并识别本地鸟类的鸣叫声,并将识别结果转化为精美的 19 世纪手绘自然历史插图进行展示。 该软件使用 **BirdNET-Go** 来监听和识别鸟鸣,并将识别到的物种与包含 800 多幅公有领域插图的精选库进行匹配。这些图像会根据鸟类的实际体重,动态调整比例并渲染到电子墨水屏(或网页端信息亭)上。当未检测到鸟类时,相框会显示一张优雅的“空枝”图案。 该系统专为 DIY 爱好者设计,完全在本地运行,确保了隐私与完全的自主控制。它目前针对斯堪的纳维亚、英国和中欧的鸟类进行了优化,并正在努力扩展对北美地区的支持。 该项目具有高度的模块化:你可以使用树莓派、13.3 英寸 Inky Impression 显示屏和一个麦克风自行组装,或者直接在任何设备上以网页信息亭模式运行该软件。详细的文档、容器化安装指南和贡献准则均可在 GitHub 上找到。无论你是选择亲手打造,还是购买预装成品,Fugleramme 都能通过艺术与科学的结合,让你的花园焕发生机。

arnemunthekaas 最近在“Show HN”上发布的一个项目,展示了一个利用电子墨水屏来显示本地鸟类品种的数字相框。该系统通过在树莓派(Raspberry Pi)上运行开源分类器 BirdNET-Go,监听鸟鸣声,并显示出 19 世纪风格的高质量自然历史插画。 讨论中的重点包括: * **技术:** 该项目使用了本地托管、节能的电子墨水显示屏。用户指出,虽然大型电子墨水屏价格昂贵,但较小且实惠的替代品让该项目更易于实现。 * **艺术性:** 作者强调,这些鸟类插画均选自公共领域图版,并非由人工智能生成,尽管在图像修饰和分割中使用了 AI 工具。 * **社区:** 该项目引发了关于归属权的激烈讨论,用户指出它与《Avian Visitors》等早期项目有相似之处。作者随后更新了文档,以标注灵感来源及类似作品。 * **DIY 吸引力:** 爱好者们称赞该项目具有“魔力”且实用性强,并就电池寿命和本地鸟类识别的最佳硬件配置进行了探讨。 总的来说,社区赞扬该项目是一个富有创意且具备离线能力的机器学习应用,它避开了许多现代 AI 演示中那种“氛围导向(vibe-coded)”的弊端。
相关文章

原文

E-ink bird frame for Raspberry Pi - real-time bird detection by audio, fully local AI, rendered as real, hand-cut 1800s bird illustrations.

The frame on a kitchen windowsill showing six birds heard in the garden, a window feeder on the glass behind it
Sorry about the dirty window - squirrels have been stealing the bird food.

Live demo Latest release CI Last commit
Stars Contributors License: MIT, artwork CC BY-SA 4.0

Note

Still in early development: expect the odd bug and a few unpolished edges, with plenty more features to come.

Live on fugleramme.arnegiacomo.dev running from my kitchen window and displaying the actual birds currently heard in my garden (Bergen, Norway).

Hardware, install and operations docs: arnegiacomo.dev/fugleramme

BirdNET-Go listens on a mic and handles the classifier. Fugleramme polls its api, matches each species to an illustration, then packs them onto a page, and redraws only when the birds change - on an Inky Impression e-ink panel, and as a web kiosk serving the same view. There's an admin page that lets you configure what to show, and automatic updates and such.

If you already run BirdNET-Go, point the frame at it instead - on the same machine or anywhere else reachable from your network.

Tip

The e-ink panel is not required, although it's recommended for the intended experience. Without one, Fugleramme runs web-only - show the kiosk on a display over HDMI, or open it from any device on the network.

A Raspberry Pi 5, an Inky Impression 13.3" (Spectra 6), a mic and an A4 frame. Full parts list, recommendations and alternatives: Hardware.

Half the point of this project is showing off some amazing public-domain natural-history illustrations. Over 800 cut-outs covering more than 400 species, every one taken from a real plate and hand-curated for this project (no art is AI-generated, though some has been retouched with AI).

Each detected species is matched to its illustration, background-removed, and packed onto a textured paper page with the larger birds toward the centre, sized by body mass. An empty window shows a bare perch.

The plates are Scandinavian, British and central European, so the Nordics, the British Isles and Germany are best covered. Elsewhere not so much (yet). Broader European and North American coverage is in the works!

See Adding artwork for manual cutout steps.

Run locally (for development)

uv sync                                       # set up venv
uv run fugleramme-fake-detector               # stand-in BirdNET-Go on :8090
uv run fugleramme-dev                         # start service on :8080 with hot-reload

The fake detector's flags, and working against a real station instead: Running it without a Pi.

Install on a Raspberry Pi

From the pi (assuming you have the hardware up and running):

curl -fsSL https://raw.githubusercontent.com/arnegiacomo/fugleramme/main/install.sh | bash

Asks where BirdNET-Go should live and which ports to use, clones the repo, installs the required deps, and starts the frame as a systemd service. NB! Will probably require a reboot on a fresh system.

From a blank SD card, see the full install guide.

docker run -d -p 8080:8080 -v fugleramme:/data \
  -e FUGLERAMME_DETECTOR_URL=http://birdnet.local:8080 \
  ghcr.io/arnegiacomo/fugleramme

Or build the image from a checkout:

docker build -t fugleramme .
docker run --rm -p 8080:8080 -v fugleramme:/data \
  -e FUGLERAMME_DETECTOR_URL=http://birdnet.local:8080 fugleramme

Kiosk on :8080, admin on :8080/admin, everything it persists in /data.

On a Linux box with a USB mic, this brings up BirdNET-Go alongside it:

curl -fsSL https://raw.githubusercontent.com/arnegiacomo/fugleramme/main/examples/docker-compose.yml -o docker-compose.yml
docker compose up -d

See Container for more info.

Contributions are very welcome and encouraged - fixes, docs and artwork most of all. Thanks to everyone who has contributed so far ❤️

  • Something is broken - a bug report
  • A question, an idea, or a frame you have built - the FAQ first, then Discussions
  • A fix, a doc change, or a bird you have cut - open a PR, no issue needed

See Contributing for more info.

  • Code: MIT - see LICENSE.
  • Detection (BirdNET-Go, installed separately as a container): CC BY-NC-SA 4.0, non-commercial only. BirdNET model by the Cornell Lab of Ornithology and Chemnitz University of Technology, taxonomy data powered by eBird.org.
  • Bird images: each style folder carries its own terms and sources, and its manifest links the plate every file was cut from. classic is CC BY-SA 4.0 - see assets/artwork/classic/ATTRIBUTION.md.
  • Label fonts (assets/fonts/): SIL OFL 1.1 - see assets/fonts/ATTRIBUTION.md.
  • Bird sizes (assets/bird_sizes.csv): body mass from AVONET (Tobias et al. 2022, Ecology Letters, doi:10.1111/ele.13898), CC BY 4.0.
  • BirdNET scientific-name aliases (assets/birdnet_aliases.json): OpenFauna's compiled taxonomic alias map, CC BY-SA 4.0 - see assets/ATTRIBUTION.md.

I've built a few of these. If you'd like one rather than building it yourself, please get in touch.

联系我们 contact @ memedata.com