使用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://www.mcbbbk.com/newsview1074813.html
上一篇: 养宠指南:养好宠物鸟的全面视频教 |
下一篇: 羟铵盐在水产什么作用 |
推荐分享

- 1养玉米蛇的危害 28694
- 2狗交配为什么会锁住?从狗狗生 7180
- 3我的狗老公李淑敏33——如何 6236
- 4豆柴犬为什么不建议养?可爱的 4637
- 5南京宠物粮食薄荷饼宠物食品包 4563
- 6中国境内禁养的十大鸟种,你知 4429
- 7湖南隆飞尔动物药业有限公司宠 4259
- 8自制狗狗辅食:棉花面纱犬的美 4257
- 9家养水獭多少钱一只正常 4212
- 10广州哪里卖宠物猫狗的选择性多 4122