首页 > 分享 > 使用BirdNET

使用BirdNET

##创作灵感:

BirdNET是一个基于深度学习的鸟类声音识别项目,旨在通过音频数据自动监测和识别鸟类物种。该项目由康奈尔大学鸟类学实验室和马克斯·普朗克生物地理学研究所联合开发,利用机器学习技术,特别是卷积神经网络(CNN),来分析音频记录中的鸟类叫声和歌声。

BirdNET项目介绍里给出了,使用者可以基于预训练模型训练自己的数据集:

按照其介绍流程去做就可以了,本篇内容主要记录一下我自己用Pycharm训练的过程,不涉及调参。

1.下载BirdNET Analyzer

点击下方链接GitHub - kahst/BirdNET-Analyzer: BirdNET analyzer for scientific audio data processing.

2.导入项目,按照requirement安装对应版本的包

3.进入train.py,修改下面的两个参数

cfg.TRAIN_DATA_PATH = "D:Learn-Work5species"

cfg.CUSTOM_CLASSIFIER = r"D:Learn-Workmy_modelbirdnet_model.tflite"

注意:训练数据集应该包括以类别命名的多个子文件夹,程序会遍历文件夹下的数据,超过3s的取中间切割三秒,不足3s的会自动补充;运行train.py,这个过程中可能会遇到utf-8编码报错,确保你项目地址路径没有中文。

4.训练过程

5.使用模型

训练好的模型会保存在你设定的 cfg.CUSTOM_CLASSIFIER里,生成三个文件,分别是模型,对应的标签和训练参数

模型预测是使用的model.py里的predict函数,这里我们想要使用自定义的分类器,需要把config.py里的cfg.CUSTOM_CLASSIFIER改为你的模型,最终该函数会返回预测值,将其与你的label.txt做一个对应就可以输出识别结果啦!

def predict(sample):

"""Uses the main net to predict a sample.

Args:

sample: Audio sample.

Returns:

The prediction scores for the sample.

"""

if cfg.CUSTOM_CLASSIFIER != None:

return predictWithCustomClassifier(sample)

global INTERPRETER

if INTERPRETER == None and PBMODEL == None:

loadModel()

if PBMODEL == None:

INTERPRETER.resize_tensor_input(INPUT_LAYER_INDEX, [len(sample), *sample[0].shape])

INTERPRETER.allocate_tensors()

INTERPRETER.set_tensor(INPUT_LAYER_INDEX, np.array(sample, dtype="float32"))

INTERPRETER.invoke()

prediction = INTERPRETER.get_tensor(OUTPUT_LAYER_INDEX)

return prediction

else:

prediction = PBMODEL.basic(sample)["scores"]

return prediction

好的,今天的分享就这些了,欢迎大家交流讨论~

相关知识

使用 BirdNET 应用程序轻松识别鸟叫
BirdNET(鸟类叫声识别)
BirdNET
探索自然之声:鸟语识别新境界 —— BirdNET
whoBIRD:实时识别鸟类声音的终极工具
识鸟软件哪个好?拍照识鸟app下载
whobird官方下载
听声识鸟手机版下载
whobird app
NVIDIA Jetson 月度项目:通过声音识别鸟类

网址: 使用BirdNET https://m.mcbbbk.com/newsview1074813.html

所属分类:萌宠日常
上一篇: 养宠指南:养好宠物鸟的全面视频教
下一篇: 羟铵盐在水产什么作用