7 zasad, których należy przestrzegać podczas konfigurowania domowej kamery bezpieczeństwa - i gdzie nigdy nie należy jej instalować
Dlaczego nie użyć zapasowego Pi do skatalogowania ptaków w ogrodzie, wykorzystując uczenie maszynowe do identyfikacji ich na podstawie ich piosenek?
Jeden z moich obiektów fotograficznych dzikiej przyrody na przedmieściach, wróbel przysiadający w bambusie.
"Nie martw się, że mikrofon wywisi przez okno" - powiedziałem do niedawnego gościa w domu. "To po prostu kolejny z moich projektów Raspberry Pi".
Mieszkając na jednych z bardziej zielonych przedmieść Londynu, samoloty lecące na Heathrow nie są jedynymi latającymi rzeczami. Przez najgorsze z pandemicznych lockdownów rozpoczęłam nowe hobby, dokumentując dziką przyrodę w ogrodach i na torach kolejowych za naszym domem. To było dość zaskakujące, widząc, jak wiele różnych ptaków i małych ssaków odwiedza duże drzewo i zarośla czarnego bzu na dnie ogrodu, od maleńkich strzyżyków po zbliżającą się obecność lokalnego krogulca.
Raspberry Pi 4 Model B
O wiele łatwiej jest fotografować ptaki zimą, kiedy drzewa i krzewy tracą liście. Ale latem jest o wiele więcej odwiedzających, z kosami i dunnockami gniazdującymi w zaroślach, a od czasu do czasu dzięcioły przelatują po torach kolejowych z dzikich błoniw i rozległości Królewskich Parków na zachodzie. Gdy dni otwierają się na oścież, słyszę, jak ćwierkają i ćwierkają, skrzeczą i gruchają.
Ekran główny BirdNET-Pi, pokazujący ostatnio zidentyfikowane ptaki.
Czy może istnieć inny sposób, aby je wykryć? Przyjaciel wskazał mi aplikację na iOS z Cornell Lab of Ornithology. Merlin to bezpłatne narzędzie do identyfikacji ptaków, które wykorzystuje zarówno widzenie komputerowe, jak i dźwięk komputerowy do identyfikacji ptaków, z modelami, które zostały przeszkolone przez obserwatorów ptaków i ornitologów na całym świecie. To potężne narzędzie do sprawdzania, co może być w pobliżu, gdy wszystko, co słyszysz, to piosenka gdzieś na drzewach.
Model audio, którego używa Merlin, jest własny, wykorzystując sieć neuronową do identyfikowania ptaków na podstawie ich dźwięków, analizując spektrogram ich odgłosów. Jest to samodzielny model i może być używany nawet wtedy, gdy telefon jest offline, chociaż ogranicza to to, co może zidentyfikować, do około 700 gatunków, głównie północnoamerykańskich. Jeśli chcesz zidentyfikować więcej i w większej części świata, musisz rzucić okiem na inny projekt Cornella, BirdNET, z Centrum Bioakustyki Konserwatorskiej im. K. Lisy Yang.
ZOBACZ: 5 najlepszych alternatyw dla Raspberry Pi: Najlepsze komputery jednopłytkowe
BirdNET jest również dostępny na urządzenia mobilne, z regionalnymi opcjami pobierania modeli dla różnych części świata. Algorytm i modele są publiczne, a różne projekty open-source pracują nad ich implementacją w różnych systemach, często przy użyciu wersji przeznaczonej dla systemów o niższej mocy, BirdNET-Lite, przy użyciu pakietów TFLite Tensorflow.
TFLite obsługuje wiele różnych środowisk, co pozwala na uruchamianie modeli uczenia maszynowego na zaskakująco małych urządzeniach, w tym na Raspberry Pi. Pozwoliło to entuzjastom na zbudowanie zestawu narzędzi o otwartym kodzie źródłowym, które zamieniają liczbę Pi w urządzenie identyfikujące ptaki, które jest w stanie siedzieć tam 24 godziny na dobę, obserwując ptaki dzień i noc.
Miałem zapasowy 4 GB Pi 4 model B, który działał na moim zestawie ADS-B przed aktualizacją do CM4, więc był już w obudowie ArgonOne SSD z dyskiem SSD o pojemności 240 GB. Polecam używanie dysków SSD z technologiami takimi jak BirdNET, ponieważ mogą one zapisywać dużo danych na dysku, potencjalnie ograniczając żywotność karty SD.
Jeśli chcesz zbudować system BirdNET na Raspberry Pi, istnieje dość łatwy sposób, aby zacząć, z projektem BirdNET-Pi. Wszystko, czego potrzebujesz, to najnowsze Raspberry Pi z 64-bitową wersją wersji Bullseye systemu operacyjnego Raspberry Pi. Skonfigurowałem swój system z najnowszą wersją Raspberry Pi OS Lite, która jest przeznaczona dla systemów headless i usuwa komponenty interfejsu użytkownika.
Po skonfigurowaniu systemu skorzystałem z instrukcji na GitHubie BirdNET-Pi, aby pobrać i uruchomić instalator. Jest to prosty skrypt, który ładuje wymagane pakiety i konfiguruje środowisko Pythona dla modeli uczenia maszynowego BirdNET Lite. System został zaprojektowany tak, aby co około minutę pobierać 15-sekundową próbkę dźwięku i analizować ją pod kątem odgłosów ptaków. Jedynym dodatkowym sprzętem potrzebnym jest karta dźwiękowa USB i mikrofon, ponieważ port audio Pi nie obsługuje mikrofonu.
Dostęp do BirdNET-Pi odbywa się przez przeglądarkę internetową, z wbudowanym podglądem na żywo plików dziennika i terminalem internetowym do administrowania systemem. Wszystko jest sterowane z prostej konsoli, która może nawet uruchamiać aktualizacje systemu. Konsola internetowa korzysta z serwera WWW Caddy, który jest idealnym narzędziem do dostarczania podstawowych aplikacji internetowych z Pi lub podobnego, bez konieczności angażowania znacznych zasobów. Miałem tutaj jeden problem, ponieważ system jest skonfigurowany do korzystania z domeny .local po wyjęciu z pudełka. Moja sieć korzysta z pełnej domeny .co.uk, więc musiałem edytować konfigurację Caddyfile, aby korzystać z mojej domeny, zanim mogłem uzyskać dostęp do internetowego interfejsu użytkownika. To było wystarczająco szybkie, używając ssh do zalogowania się do mojego Pi i vi w celu edycji konfiguracji. Szybki restart i mogłem zobaczyć interfejs użytkownika BirdNET-Pi.
Ważne jest, aby uzyskać odpowiedni mikrofon do konfiguracji nagrywania. Moim pierwszym było proste urządzenie USB, które działało na tyle dobrze, aby pokazać, że system będzie działał, ale niestety była to jakość, której oczekujesz za mniej niż 5 funtów. Moja druga próba użyła karty dźwiękowej USB, która obiecywała wejście mikrofonowe i podstawowy mikrofon klapowy. To nie zadziałało i mimo że spędziłem czas na używaniu narzędzi Raspberry Pi ALSA, było jasne, że coś jest nie tak z moim sprzętem.
Wyszukiwanie na Amazonie pokazało zestaw mikrofonowy do klapy oparty na USB, który wyglądał obiecująco, więc zamówiłem go. Okazało się to sukcesem, wykorzystując przedłużacz USB, aby utrzymać wbudowaną kartę dźwiękową mikrofonu z dala od zakłóceń ze strony Pi. Przewód mikrofonowy był na tyle cienki, że mógł przejść przez zamkniętą ramę okna i na tyle długi, że mikrofon zwisał w wolnej przestrzeni.
W ciągu kilku tygodni pracy odkryłem, że wydłużenie czasu próbkowania do 30 sekund znacznie poprawiło dokładność, dzięki wskazówce od innego użytkownika BirdNET, a także udało mi się zmienić poziom ufności powiadomień, aby zmniejszyć ryzyko fałszywych alarmów (przejeżdżająca lokomotywa spalinowa brzmi raczej jak bąk w stosunku do modelu BirdNET!). Moja obecna konfiguracja również wykorzystywała narzędzia ALSA Raspberry Pi OS, aby zwiększyć wzmocnienie mikrofonu o 25 dB.
Narzędzia ALSA Raspberry Pi OS pomagają w pełni wykorzystać możliwości urządzeń dźwiękowych.
W BirdNET-Pi znajduje się wiele informacji, od wykresów pokazujących, jakie ptaki są najczęściej spotykane o jakiej porze dnia, po listy wszystkich wykrytych ptaków. Inne narzędzia zapewniają spektrogram na żywo, dzięki czemu możesz nauczyć się rozpoznawać, jak lokalne dźwięki wyglądają na ekranie. Mamy nadzieję, że narzędzia takie jak to pozwolą nam oznaczać regularne fałszywe alarmy, aby można je było zignorować w przyszłości, co pozwoli na aktualizację modelu podstawowego i udostępnianie go innym użytkownikom.
ZOBACZ: Raspberry Pi właśnie wprowadziło dużą zmianę, aby zwiększyć bezpieczeństwo
BirdNET-Pi zawiera również narzędzia do powiadamiania Apprise o otwartym kodzie źródłowym jako część swojego pakietu narzędzi. Jest to łatwe w konfiguracji narzędzie wiersza poleceń, które wykorzystuje strukturę podobną do adresu URL do konstruowania wiadomości, które mogą być dostarczane do dowolnej z ponad 70 usług. Eksperymentowałem z używaniem go do "tweetowania tweetów", ale wysyła powiadomienia o każdym wykryciu, co oznacza, że hałaśliwe stado zdziczałych papug w ogrodzie może szybko zalać konto na Twitterze.
Podejrzewam, że łatwiej będzie napisać własnego klienta Twittera dla pakietu w Pythonie, aby uzyskać rodzaj bardziej złożonych i zniuansowanych powiadomień, których chcę, wysyłając tweeta lub coś podobnego przy każdej pierwszej identyfikacji ptaka dziennie. W ten sposób będzie publiczny zapis ptaków w moim ogrodzie, który nie będzie rozpraszał ani denerwujący. Zaletą budowania własnego narzędzia jest to, że powinienem być w stanie dodać zrzuty ekranu zarejestrowanych spektrogramów do powiadomienia. Planuję również dodać nowe identyfikatory do sieci społecznościowej Birda.
Spektrogram małego stadka wróbli, gniazdujących w ogrodzie.
Osiągnąłem już interesujące wyniki, uwieczniając poranne ćwierkanie miejscowego strzyżyka i nawoływanie bułaszki głęboko w żywopłocie, a nawet wrzaski letnich jerzyków wysoko nad głową i odgłos przelatującego dzięcioła. Jednak najciekawszą identyfikacją była ta, którą prawie zignorowałem jako fałszywy alarm. Ciągle dostawałem spóźnione powiadomienia o puszczyku, co było zaskakujące, biorąc pod uwagę, że mieszkam na przedmieściach Londynu. Zrzuciłem to na karb syreny przejeżdżającego radiowozu lub karetki pogotowia.
Ale pewnego wieczoru znalazłem się na naszym małym tarasie na dachu, zamykając drzwi i okna i wprowadzając koty do domu po ciepłym dniu pod koniec maja. A w oddali słychać było pohukiwanie sowy, polującej gdzieś wzdłuż torów kolejowych. Wciąż jest wiele rzeczy, które mogą mnie zaskoczyć. Fascynujące będzie zobaczyć, co jeszcze znajdzie dla mnie moja rosnąca kolekcja czujników opartych na liczbie Pi.




