This value is used by the model to constrain the list of possible species that it will try to detect, given the minimum occurence frequency. A 0.05 threshold means that the species is seen on average at least 5% of the time, from historically collected data for your lat/lon. If you'd like to tinker with this value and see the species list output, you can run the following command AFTER clicking 'Update Settings' at the very bottom of this page to install the appropriate labels file: ~/BirdNET-Pi/birdnet/bin/python3 ~/BirdNET-Pi/scripts/species.py --threshold 0.05
diff --git a/scripts/species.py b/scripts/species.py
index 3426f61..77da697 100644
--- a/scripts/species.py
+++ b/scripts/species.py
@@ -71,13 +71,13 @@ def predictFilter(lat, lon, week):
return M_INTERPRETER.get_tensor(M_OUTPUT_LAYER_INDEX)[0]
-def explore(lat, lon, week):
+def explore(lat, lon, week, threshold):
# Make filter prediction
l_filter = predictFilter(lat, lon, week)
# Apply threshold
- l_filter = np.where(l_filter >= 0.03, l_filter, 0)
+ l_filter = np.where(l_filter >= threshold, l_filter, 0)
# Zip with labels
l_filter = list(zip(l_filter, CLASSES))
@@ -92,7 +92,7 @@ def getSpeciesList(lat, lon, week, threshold=0.05, sort=False):
print('Getting species list for {}/{}, Week {}...'.format(lat, lon, week), end='', flush=True)
# Extract species from model
- pred = explore(lat, lon, week)
+ pred = explore(lat, lon, week, threshold)
# Make species list
slist = []