##创作灵感:
BirdNET是一个基于深度学习的鸟类声音识别项目,旨在通过音频数据自动监测和识别鸟类物种。该项目由康奈尔大学鸟类学实验室和马克斯·普朗克生物地理学研究所联合开发,利用机器学习技术,特别是卷积神经网络(CNN),来分析音频记录中的鸟类叫声和歌声。
BirdNET项目介绍里给出了,使用者可以基于预训练模型训练自己的数据集:
按照其介绍流程去做就可以了,本篇内容主要记录一下我自己用Pycharm训练的过程,不涉及调参。
点击下方链接GitHub - kahst/BirdNET-Analyzer: BirdNET analyzer for scientific audio data processing.
cfg.TRAIN_DATA_PATH = "D:Learn-Work5species"
cfg.CUSTOM_CLASSIFIER = r"D:Learn-Workmy_modelbirdnet_model.tflite"
注意:训练数据集应该包括以类别命名的多个子文件夹,程序会遍历文件夹下的数据,超过3s的取中间切割三秒,不足3s的会自动补充;运行train.py,这个过程中可能会遇到utf-8编码报错,确保你项目地址路径没有中文。
训练好的模型会保存在你设定的 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
上一篇: 养宠指南:养好宠物鸟的全面视频教 |
下一篇: 羟铵盐在水产什么作用 |