首页 / 科学 / 正文

我是如何用树莓派自动观鸟的

放大字体  缩小字体 来源:admin 2024-09-01 02:06  浏览次数:74 来源:本站    

  

  

  “别担心挂在窗外的麦克风,”我对最近的一位客人说。“这只是我的另一个树莓派项目。”

  生活在伦敦一个绿色的内郊区,飞往希思罗机场的飞机并不是唯一的飞行事物。在疫情最严重的封锁期间,我开始了一项新的爱好,记录花园和我家后面铁路上的野生动物。看到这么多不同的鸟类和小型哺乳动物频繁出现在花园底部的大树和接骨木丛中,从微小的鹪鹩到隐约出现的当地雀鹰,真是令人惊讶。

  在冬天拍摄鸟类要容易得多,因为树木和灌木丛都掉光了叶子。但夏天来的游客更多,黑鹂和知更鸟在灌木丛中筑巢,偶尔也会有啄木鸟从铁路线上飞过,从更广阔的公地和皇家公园向西飞去。随着天气变暖,办公室的窗户打开,我能听到它们在叽叽喳喳地叫着,叫着,咕咕叫着。

  有没有别的方法可以发现它们?一位朋友向我推荐了康奈尔鸟类学实验室(Cornell Lab of Ornithology)的一款iOS应用。Merlin是一个免费的鸟类识别工具,它使用计算机视觉和计算机音频来识别鸟类,其模型已经被世界各地的鸟类观察者和鸟类学家训练过。这是一个强大的工具,当你只能听到树上某处的歌声时,它可以看到周围可能有什么。

  看看哪些公司主导着套件市场。

  Merlin使用的音频模型是它自己的,使用神经网络从声音中识别鸟类,分析它们的叫声的频谱图。这是一个独立的模型,即使你的手机离线也可以使用,尽管这确实限制了它可以识别的大约700种主要是北美物种。如果你想在世界上更多的地方识别,那么你需要看看康奈尔大学的另一个项目,鸟网,来自K.丽莎杨保护生物声学中心。

  BirdNET也可以在移动设备上使用,有区域选项可以下载世界不同地区的模型。算法和模型是公开的,各种开源项目一直在努力在不同的系统上实现它们,通常使用为低功耗系统设计的版本BirdNET-Lite,使用TFLite Tensorflow包。

  TFLite支持许多不同的环境,允许您在非常小的设备上运行机器学习模型,包括树莓派。这使得爱好者们可以建立一个开源的工具集,把Pi变成一个鸟类识别设备,可以一天24小时坐在那里,不分昼夜地发现鸟类。

  我有一个备用的4GB Pi 4型号B,在我升级到CM4之前,它一直在运行我的ADS-B设备,所以它已经在一个带有240GB SSD的ArgonOne SSD机箱中。我建议使用带有BirdNET等技术的SSD,因为它们可以将大量数据写入磁盘,这可能会限制SD卡的使用寿命。

  如果您想在树莓派上构建BirdNET系统,有一个非常简单的方法可以开始,使用BirdNET-Pi项目。你所需要的是一个最近的树莓派,运行64位版本的Bullseye版本的树莓派操作系统。我用最新的Raspberry Pi OS Lite版本安装了我的系统,它是为无头系统设计的,删除了UI组件。

  一旦我的系统设置好了,我使用BirdNET-Pi GitHub上的说明下载并运行安装程序。这是一个简单的脚本,用于加载所需的包并为BirdNET Lite机器学习模型配置Python环境。该系统被设计为每分钟左右采集15秒的声音样本,分析鸟类的声音。唯一需要的额外硬件是一个USB声卡和一个麦克风,因为Pi的音频接口不支持麦克风。

  通过web浏览器访问BirdNET-Pi,内置日志文件的实时视图和基于web的系统管理终端。一切都由一个简单的控制台控制,它甚至可以运行系统更新。web控制台使用Caddy web服务器,这是一个理想的工具,可以从Pi或类似的设备上提供基本的web应用程序,而不需要大量的资源。我在这里确实有一个问题,因为系统配置为使用开箱即用的。local域。我的网络使用完整的。co。所以我必须编辑cadyfile配置来使用我的域名,然后才能访问web UI。这非常快,使用ssh登录到我的Pi和vi来编辑配置。快速重启后,我就能看到BirdNET-Pi的用户界面了。

  为你的录音设置选择合适的麦克风是很重要的。我的第一个是一个简单的USB设备,运行良好,足以表明系统可以工作,但不幸的是,它的质量是你期望的不到5英镑。我的第二次尝试使用了一个USB声卡,它承诺有麦克风输入和一个基本的翻领麦克风。这没有工作,即使我花了时间使用Raspberry Pi ALSA工具,很明显我的硬件出了问题。

  我在亚马逊上搜索了一下,发现了一款基于usb的翻领麦克风装置,看起来很有前景,于是我订购了它。这被证明是成功的,使用USB延长线使麦克风的内置声卡免受Pi的干扰。麦克风引线足够细,可以穿过封闭的窗框,并且足够长,可以让麦克风在自由空间中摇摆。

  经过几周的操作,我发现将采样时间增加到30秒显着提高了准确性,这要归功于BirdNET用户的提示,而且我还能够更改通知置信度以减少误报的风险(经过的柴油机车听起来很像BirdNET模型中的大鸟!)。我目前的设置也使用树莓派OS的ALSA工具来增加麦克风增益25dB。

  BirdNET-Pi中有很多信息,从显示一天中什么时间最常见的鸟类的图表,到检测到的所有东西的列表。还有一些工具会给你一个实时的声谱图,这样你就可以学会识别屏幕上的本地声音。希望像这样的工具能够让我们标记出常规的误报,以便将来可以忽略它们,从而允许更新基本模型并与其他用户共享。

  BirdNET-Pi还包括开源的通知工具作为其工具包的一部分。这是一个易于配置的命令行工具,它使用类似url的结构来构造可以传递到70多个服务中的任何一个的消息。我试着用它来“发布推文”,但它会为每次检测发送通知,这意味着花园里一群吵闹的野生鹦鹉会迅速淹没Twitter账户。

  我想,用Python为这个包编写自己的Twitter客户端,以获得我想要的更复杂、更细微的通知类型会更容易,比如每天发送一条tweet或类似的消息,每次发现一只鸟。这样的话,我花园里的鸟儿就会有一个公开的记录,不会让人分心或讨厌。构建我自己的工具的好处是,我还应该能够将录制的频谱图的屏幕截图添加到通知中。我还计划在Birda社交网络中添加新的身份。

  我已经有了一些有趣的结果,捕捉到了当地鹪鹩清晨的啁啾和树篱深处的野鸟的叫声,甚至是头顶上夏日雨燕的尖叫,以及一只飞过的啄木鸟的声音。然而,最有趣的鉴定是一个我几乎忽略的假阳性。我不断收到迟到的褐猫头鹰通知,这让我很惊讶,因为我住在伦敦的内郊区。我把它归结为经过的警车或救护车的警笛声。

  但是,在一个温暖的五月下旬的夜晚,有一天深夜,我站在屋顶的小露台上,关上门窗,把猫带进来。在远处,有一只猫头鹰的叫声,在铁路线上的某个地方狩猎。还有很多东西能让我惊喜。看看我越来越多的pi传感器能为我找到什么,这将是一件很有趣的事情。

声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知,立即做删除处理。
违法不良信息举报邮箱:rally510@qq.com
沪ICP备20018752号