Insect Detect
Allgemeines
Hier beschreibe ich die Umsetzung (erstmal nur Nachbau) des Projektes Insect Detect, zu finden auf Github
Inititiert durch einen Kollegen, der im Rahmen seiner Taetigkeit beim Biosphärenreservat Bliesgau ein Projekt zur Erfassung von Insekten (Voegel, Fledermaeuse, ...) angestoszen hat, habe ich im ersten Schritt eine eigene (Hardware-)Variante des Projektes auf Github umgesetzt und werde dieses als Basis für zukünftige Adaptionen nutzen.
Stueckliste
| Version 2023 | Version 2024 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Komponente | Kosten (ca.) | Full Setup | Minimal Setup | Test Setup | Kosten (ca.) | Full Setup | Minimal Setup | Test Setup | |
| OAK-1 Auto-Focus (OpenCV AI Kit) | 145,99 € | * | * | * | 141,55 € | * | * | * | |
| Raspberry Pi Zero 2 W(H) H=Header bereits aufgeloetet |
~22,00 € | * | * | * | 21,90 € | * | * | * | |
| Micro SDXC card 256 GB | 28,99 € | * | 24,95 € | * | |||||
| Micro SDHC Card 32 GB | 8,95 € | * | * | * | |||||
| Micro USB to USB A adapter, angled | 5,50 € | * | * | ||||||
| Micro USB to USB A adapter | 1,85 € | * | * | 1,85 € | * | * | |||
| USB A to micro USB cable, 20 cm, angled | 5,60 € | * | |||||||
| RPi Power Supply | 7,99 € | * | |||||||
| RPi CPU Heatsink | 1,20 € | * | * | 1,20 € | * | * | |||
| RPi Header | 0,95 € | * | * | ||||||
| RPi Stacking Header | 1,60 € | * | * | 2,12 € | * | * | |||
| RPi Spacer Bolts 10 mm | 3,50 € | * | * | ||||||
| RPi Spacer Bolts 20 mm | 2,60 € | * | * | ||||||
| Standoff M2.5, female-male (5 mm) | 1,12 € | 4 | |||||||
| Standoff M2.5, female*2 (11-12 mm) | 1,92 € | 4 | |||||||
| Screw M2.5 (5 mm) | 1,92 € | 8 | |||||||
| Thermal Pad (1 mm) 50x50 mm (optional) | 4,79 € | 2 | 1 | ||||||
| PiJuice Zero UPS pHAT | 54,23 € | * | * | ||||||
| PiJuice 12,000mAh LiPo Battery | 39,40 € | * | * | ||||||
| Witty Pi 4 L3V7 | 28,56 € | * | * | ||||||
| Li-Ion Battery Pack 3.7V (4400mAh) | 14,24 € | * | * | ||||||
| Voltaic V75 USB Battery Pack | 101,14 € | * | * | ||||||
| Fibox PC 162513 Enclosure | 89,99 € | * | * | ||||||
| Fibox TM 1625 Mounting Plate | 7,49 € | * | * | ||||||
| Cable Gland PG 13.5 | 0,99 € | * | * | ||||||
| Cable Gland PG 13.5 Locknut | 0,27 € | * | * | ||||||
| Stainless Steel Cable Tie | 3,90 € | * | 8 | 6 | |||||
| Cable Tie Mount | 0,99 € | * | 8 | 6 | |||||
| Acrylic Glas (2 mm) 40x40 mm | ~5,00 € | * | * | ||||||
| EPDM Sealing Strip 20x5 mm | 6,25 € | * | * | ||||||
| Silica Gel Pack 50 g | 15,99 € | * | * | ||||||
| Solar Panel 6V 9W | 98,30 € | * | * | ||||||
| Solar Panel Bracket, Medium (optional) | 11,75 € | * | * | ||||||
| Solar Panel Extension Cable, 1 ft | ~7,00 € | * | * | ||||||
| Solar Panel Micro USB Adapter | 3,88 € | * | * | ||||||
| Voltaic 12,800mAh Li-Ion Battery | 83,55 € | * | |||||||
| 2x Heatsink 40x30 mm (optional) | 2,35 € | * | |||||||
| HPL Sheet (4 mm) 350x250 mm | ~5,00 € | * | |||||||
| Aluminium Square Tube (23.5x23.5 mm), 1.5 m | ~16,00 € | * | |||||||
| 4x M4 20 mm Screws (internal hexagon) | ~2,00 € | * | |||||||
| 7x M4 40 mm Screws | ~3,00 € | * | |||||||
| 2x M4 60 mm Screws | ~2,00 € | * | |||||||
| 21x M4 Hex Nuts | ~3,00 € | * | |||||||
| 18x Flat Washer (e.g. M4 15 mm) | ~3,00 € | * | |||||||
| Pipe Clamp (60.3 mm) 70 mm + screws & nuts | 5,09 € | * | |||||||
| Pipe Clamp (60.3 mm) 350 mm + screws & nuts | 7,81 € | * | |||||||
| Flower Platform (e.g. 350x200 mm) | ~17,00 € | * | |||||||
| Total cost | ~704 € | 531 € | 187 € | ||||||
| Total cost with optional components | ~730 € | 547 € | |||||||
| Legende | ■ Hardware ■ Kabel/Adapter ■ Akku ■ Gehaeuse ■ Befestigungsmaterial ■ Solar ■ Platform ■ Sonstiges/Zubehoer | ||||||||
Hardware
Der Arbeitsablauf ist grob gesagt: Kamera (Luxonis) -> MicroPC (SBC Raspi (Zero)) -> PC (Linux, Win, Mac).
Kamera
Der Kamera (OAK-1 von Luxonis) hat eine besondere Bedeutung, da sie als eine der wenigen (?) Kameras durch die eingebaute VPU (Vision/Visual/Video Processing Unit) Myriad X [1] eine Vorverarbeitung (Object Detection) des Videomaterials durchfuehrt und der nachgeschalteten Einheit bereits fertige Trackingdaten zur Verfuegung stellt.
RasPi
Zum Raspi Zero gibt es eigentlich nicht viel Neues zu sagen. Bei der Wahl des USV-Moduls sollte man berueckichtigen, dass das PiJuice Zero UPS pHAT schwer oder gar nicht mehr zu beziehen ist.
Da ich eines davon noch besitze hier eine kleine Anleitung zur Inbetriebnahme.
Die IP-Adresse des Pi wird im LoginScreen (HDMI) angezeigt.
Im Wesentlichen laufen hier 2 Programme.
- Das Python Programm webapp.py, welches eine Webschnittstelle zum Pi herstellt.
- Das Python Programm trigger_capture.py, welches die "Detections" als Dateien in einem Ordner ablegt.
Spannungsversorgung
Im Dauerbetrieb wird auf der Insect Detect GithubSeite fuer den PiZero und die Kamera ein Energieverbrauch von ~88Wh pro 20 Stunden angegeben.
Eine eigene Messung steht noch aus.
Das Ein- und Aus-Schalten funktioniert ueber einen LED-Button.
PiJuice
Witty Pi 4 L3V7
Akku
Voltaic V75 [3]
TODO
Notebook
Zur Auswertung der gespeicherten Daten (jpg-captures und metadata.csv) von der SDCard des Raspi.
Die Anforderungen an die Hardware:
- USB 3
- Outdoor-Modell
- lange Akkulaufzeit
- LTE
to be continued ...
Software
Hier eine noch unsortierte Ansammlung der benutzten Befehle der ersten Gehversuche.
chris@worker:~/YOLOv5-cls> python3.12 -m virtualenv env_yolov5 created virtual environment CPython3.12.11.final.0-64 in 207ms
creator CPython3Posix(dest=/home/chris/YOLOv5-cls/env_yolov5, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/home/chris/.local/share/virtualenv) added seed packages: pip==25.2 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
python insect-detect-ml-main/process_images.py -source "InsectDetectFirstShot/"
yolov5-master/utils/dataloaders.py
python3.11 yolov5-master/classify/predict.py --name FirstShot --source "./InsectDetectFirstShot/2025-08-26_19-37-56-028066_TID2_crop_Schmetterling.jpg" --weights "insect-detect-ml-main/models/efficientnet-b0_imgsz128.onnx" --img 128 --sort-top1 --sort-prob --concat-csv --device cpu
python pytorchCUDAtest.py
jupyter notebook
python3.12 -m virtualenv env_yolov5