add big files
This commit is contained in:
parent
9d803ceac1
commit
17afd0f8d2
2816
EDGE_CODE/model/svm5ClassesAGRIREDUCED.arff
Normal file
2816
EDGE_CODE/model/svm5ClassesAGRIREDUCED.arff
Normal file
File diff suppressed because it is too large
Load Diff
BIN
SERVER_CODE/best_model_batch_590.h5
Normal file
BIN
SERVER_CODE/best_model_batch_590.h5
Normal file
Binary file not shown.
57
SERVER_CODE/cnn_classifier.py
Normal file
57
SERVER_CODE/cnn_classifier.py
Normal file
@ -0,0 +1,57 @@
|
||||
import librosa
|
||||
import librosa.display
|
||||
import os
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from keras.models import model_from_json
|
||||
from keras import optimizers
|
||||
from keras_preprocessing.image import ImageDataGenerator
|
||||
|
||||
class classifier(object):
|
||||
def __init__(self, model, weight):
|
||||
json_file = open(model, 'r')
|
||||
loaded_model_json = json_file.read()
|
||||
json_file.close()
|
||||
self.loaded_model = model_from_json(loaded_model_json)
|
||||
self.loaded_model.load_weights(weight)
|
||||
self.datagen=ImageDataGenerator(rescale=1./255.,validation_split=0.25)
|
||||
self.loaded_model.compile(optimizers.rmsprop(lr=0.0005, decay=1e-6),loss="categorical_crossentropy",metrics=["accuracy"])
|
||||
self.loaded_model.summary()
|
||||
|
||||
def predict(self,wav_to_predict):
|
||||
image = self.create_spectrogram(wav_to_predict)
|
||||
predict_generator = self.datagen.flow_from_directory(
|
||||
directory="images_to_predict/",
|
||||
batch_size=128,
|
||||
seed=42,
|
||||
shuffle=False,
|
||||
class_mode="categorical",
|
||||
target_size=(64,64))
|
||||
prediction = self.loaded_model.predict_generator(predict_generator,steps=1)
|
||||
os.remove(image)
|
||||
predicted_class_indices=np.argmax(prediction,axis=1)
|
||||
labels = {'anser': 0, 'columba': 1, 'hirundo': 2, 'passer': 3, 'sturnus': 4, 'turdus': 5, 'upupa': 6}
|
||||
labels = dict((v,k) for k,v in labels.items())
|
||||
predictions = [labels[k] for k in predicted_class_indices]
|
||||
print("The sound was a : ", predictions[0])
|
||||
return predictions
|
||||
|
||||
def create_spectrogram(self, wav):
|
||||
plt.interactive(False)
|
||||
clip, sample_rate = librosa.load(wav, sr=None)
|
||||
fig = plt.figure(figsize=[0.72,0.72])
|
||||
ax = fig.add_subplot(111)
|
||||
ax.axes.get_xaxis().set_visible(False)
|
||||
ax.axes.get_yaxis().set_visible(False)
|
||||
ax.set_frame_on(False)
|
||||
spectogram = librosa.feature.melspectrogram(y=clip, sr=sample_rate)
|
||||
librosa.display.specshow(librosa.power_to_db(spectogram, ref=np.max))
|
||||
if not os.path.exists("images_to_predict/unknown/"):
|
||||
os.makedirs("images_to_predict/unknown/")
|
||||
file_name = "images_to_predict/unknown/"+wav[:-4]+ '.jpg'
|
||||
plt.savefig(file_name, dpi=400, bbox_inches='tight',pad_inches=0)
|
||||
plt.close()
|
||||
fig.clf()
|
||||
plt.close(fig)
|
||||
plt.close('all')
|
||||
return file_name
|
Loading…
Reference in New Issue
Block a user