Nach einigen Versuchen habe ich eine steuerbare IR-Leuchte gebaut. Leider hat es etliche Fehlversuche und zerschossene LEDs gekostet. Jetzt habe ich eine Leuchte mit 2 IR-LED, der Kontroller ist über den LDR-Eingang ein- und ausschaltbar, aber nicht dimmbar.
Das Licht der LEDs ist kaum sichtbar, so dass immer mit einer zweiten Raspi Kamera NoIR kontrolliert werden muss, was funktioniert.
Auf einem Brettchen ist unten ein Neopixel-Streifen, der über Pin 21 in Helligkeit und Farbe gesteuert werden kann, darüber sind 2 IR-LED montiert, die über Pin 25 ein/aus geschaltet werden können.
Da das IR-Licht fast unsichtbar ist, könnte man regelmäßig IR-Bilder machen, dann nach Veränderungen suchen und nur bei Veränderung ein Bild mit sichtbarem Licht machen, das dann übertragen wird.
Mit der Kamera eines Handys oder anderen digital-Kameras sollten die angeschalteten IR-Dioden auch sichtbar sein. Jedenfalls schaue ich bei unseren Fernbedienungen immer so, ob die Batterien tatsächlich schon leer sind!
Hier sieht man doch super, dass die IR-LEDs an sind, oder?! Auch unter Bienen zählen mit Lichtschranken - #5 by clemens das letzte Foto ein IR-Fotos mit Handy. Aber ist jetzt auch etwas OT hier.
An der IR-Beleuchtung kann ich z.Z. nicht mehr viel verbessern, deshalb baue ich BOBCam01 bis BOBCam10 für “Hannover summt” nach dem heutigen Hardware-Stand.
Photo mit Neopixel-Beleuchtung gelb, Density = 100
Inzwischen sind 2 BOB-Kameras zur Weiterentwicklung ausgeliefert.
BOBCam02 an @Diren und BOBCam04 an @HartmutMuench. Es ist noch keine Automatik eingebaut.
Man kann einzelne Bilder mit gelber Beleuchtung machen, die dann an die NextCloud der Uni Bremen gesendet werden.
Probleme bereitet die IR-Beleuchtung: sie ist nicht dimmbar und überstrahlt das Bild. Das menschliche Auge und ( hoffentlich ) das Bienenauge sehen das nicht, wohl aber die NoIR-Kamera. Deshalb werden manuell Bilder mit Neopixelbeleuchtung gelb und density = 100 gemacht. Das ergibt die besten Bilder.
Als nächstes müssen wir Bilder ohne neue Aussage erkennen und aussortieren, damit sie nicht übertragen werden. Dazu werden in regelmäßigen Abständen ( 10 sek ? ) Bilder mit IR-Beleuchtung gemacht und verglichen. Erkennt die Software eine relevante Veränderung, wird nochmal ein besseres Bild mit gelben Licht gemacht und in die NextCloud gesendet. Die Zeit erkennt man am Zeitstempel des Namens.
An der Rückseite ist ein Brettchen mit den 2 Leuchten angebracht:
Rückseite mit Kontroller für 2 IR-Leistungs LED und Vorderseite unten 9 Neopixel-LED, oben IR-LED
Die Neopixel können über eine Library einzeln in den Farben rot, grün, blau und der density 0 bis 255 angesteuert werden.
Der IR-Kontroller wandelt eine Versorgungsspannung von 4 bis 14 Volt in einen Konstantstrom für die PowerLED um und ist für eine 12 V Stromversorgung gedacht, funktioniert aber auch an der USB-Spannung 5 V. Man kann ihn über den LDR-Eingang ( weisses Kabel ) ein/ausschalten. Er ist leider nicht dimmbar.
Im Prinzip funktioniert die Bewegungserkennung über die Differenzbildung von 2 Bildern. Allerdings sind die Unterschiede bei der Bewegung einer kleinen braunen Biene sehr klein, so dass ich eine schwarze Pappe als Bienenersatz bewege. In der Praxis wird man damit wohl keine Zeitrafferaufnahmen machen können, aber man kann ja in regelmässigen Abständen fotografieren.
Das IR-Bild: eine Bewegung des Bleistiftes unten mitte ist schwierig zu erkennen
Leider hat die Auswahl der Bilder über die Differenz-Bildung nicht wie erhofft funktioniert. Die Bewegung einer kleinen braunen Biene führt zu einer Differenz von einigen Promille, in der gleichen Größenordnung wie durch kleine Beleuchtungsänderungen. So kann man keine eindeutige Schwelle erkennen, die Bewegung von Belichtungsänderungen unterscheidet.
Nimmt man ein Stück schwarze Pappe anstatt einer kleinen Biene, ist es viel einfacher. Aber wir wollen ja keine Pappe fotografieren.
So habe ich mit @HartmutMuench vereinbart, dass wir in regelmäßigen Abständen mit gelben Licht ein Photo machen. Ab einer bestimmten Stunde bis zu einer bestimmten Stunde in x Minuten Abstand, z.B. von 6 Uhr bis 20 Uhr in 30 Minuten Abstand. Diese 3 Werte kann man leicht anpassen und wir haben Bilder vom Inneren ohne die Brutröhren zu stören und den Kasten zu öffnen.
Wenn wir Bilder von Bienen, Pollen usw. haben, können wir eine weitere Bildverarbeitung austesten.
Das IR-Licht wird vorerst nicht benutzt.
Wie ich hörte, kann der aufgenommene Bildausschnitt rein per Softwarebefehl verändert werden.
Kann dann nicht, nachdem ein menschliches Auge eine besiedelte Röhre in der BOBCam identifiziert hat, genau diese eine Röhre nur aufgenommen werden?
Bei nur noch einer oder meinetwegen auch zwei oder drei Röhren ist doch dann der Prozentsatz einer Bildinhaltsänderung durch Bienenaktivität gleich viel größer.
Somit müsste doch nach meinem Verständnis dann die KI zuverlässig erkennen können, ob nur ein sich wandelndes Aussenlicht die Bildinhaltsveränderung auslöst, oder ob da jetzt wirklich eine Biene in der Röhre werkelt.
mein Hotel hat erste Gäste!!!
Didi hat mir ja auch einen Aufbau vorbei gebracht. Im Moment habe ich es so eingestellt, dass ich etwa alle 10 Sekunden ein IR-Bild mache.
Letzte Woche war mein Raspberry abgestürzt und ich war leider nicht zu Hause um ihn wieder zu starten. Heute morgen habe ich das endlich geschafft. Ein Glück. Denn heute war Betrieb!
Kann man das denn nicht mit handelsüblichen Softwarefiltern 'rausrechnen, oder möglicherweise über die Anwendung von Kantendetektion – Wikipedia lösen? Das funktioniert ja auch per Differenzbildung, hat aber mglw. noch ein paar wichtige Normalisierungsdetails mit dabei?
Ich stelle mir die Frage: Braucht man dafür wirklich schon KI, oder reichen nicht auch diskrete Algorithmen der traditionellen Bildverarbeitung?
Wir werden das später genauer untersuchen. Hartmut hat einen Schlafgast und macht manuell Bilder, das IR-Licht funktioniert nicht. Diren hatte heute Besuch mit vermutlich Brutvorbereitung, aber sehr viele Bilder, auf denen nichts passiert. Und in meinem Kasten war noch kein Besuch.
Die anderen Kästen sind noch nicht einsatzbereit, ich hoffe in einer Woche sind sie fertig.
Dann wird die Kamera von morgens bis abends alle 30 Minuten ein Bild machen, damit wir nicht zu viele Bilder haben. Daraus können wir ableiten, wie wir dann weiter vorgehen.
Wow
Sogar schon zwei Gäste und eine Brutzelle bereits fertig.
Leider hat sie die Klarsichtabdeckung mit Lehm zugekleistert, was ungewöhnlich ist.
Dadurch kann man die Brutentwicklung nicht mehr verfolgen.
Fragt sich, ob das ihre Personality ist, oder ob viele Lichtblitze sie etwas gestört haben?
Hast Du jetzt Aufnahmen mit IR und mit gelbem Licht?
Hat sie diese Brutzelle in einem Tag fertiggestellt oder erstrecken sich obige Aufnahmen jetzt schon über mehr als 24 Stunden?
Du hast aber auch einen IR-Scheinwerfer plus dessen Stromversorgung für CCIR-Kameras (Überwachungstechnik) besorgt; war doch klar, daß das viel zu viel Energie für diese Anwendung ist. Schmeiß’ doch die Stromversorgung 'raus und ersetze diese durch eine Konstantstromquelle, für die Du alles in der Bastelkiste hast, eine LM317-basierte:
Mit z.B. einem 10 Ohm-Widerstand lassen sich so 125 mA LED-Strom flackerfrei erzeugen. Die Verlustleistung im Widerstand beträgt dabei gerade mal etwa ein Sechstel Watt (0,125A² * 10 Ohm = 0,1563 W ) . Der LM317 im TO220-Gehäuse braucht bei solchen Strömen und erst recht im Kurzzeitbetrieb keinen Kühlkörper. Mit 4,7 Ohm käme man auf ca. 265 mA LED-Strom, Verlustleistung in R1 ca. 1/3 W.
Als Nachteil könnte man nennen, daß der LM317 eine dropout-Spannung von ca. 2,5V hat. Je nachdem, wie hoch die Eingangsspannung, kann dies aber auch ein Vorteil sein; sonst einen “echten” LDO nehmen: z.B. LM1086 (dessen einstellbare Variante) Vdrop =1,5V max.
wenn nicht primär-seitig geschaltet werden kann, dann einen LDO mit enable- (shutdown-)Eingang nehmen, z.B. LP2951 adj. (Vdrop = 0,45 V bei Iout=100mA (Imax beim 2950/2951, aber current limit erst bei typ. 220 mA, max. 300mA)
Wie sich bei deiner jetzt verwendeten Platine der LED-Strom verringern ließe, kann ich leider nicht sagen; unter dem Namen werden mehrere verschiedene Platinen angeboten, die sich ebenfalls auch noch von der Kamera zwischen Tag- und Nachbetrieb umschalten lassen - aber allesamt keine Helligkeitseinstellung haben. Jedenfalls sind da ca. 6W IR-Lichtleistung zur Verfügung, was viel zu viel hierfür ist.
Zu Aspekten der Bildverarbeitung:
ein IR-Bild enthält keine Farbinformation, daher kann das Bild als Graustufenbild verarbeitet werden, was die Datenmenge auf ein Drittel reduziert.
in jeden Fall läßt sich nachträglich vor der Bildverarbeitung das Bild aufbessern, da den zu hellen Bildern Kontrast fehlt. Z.B. mit dem convert-tool aus imagemagick geht das einfach und ressourcensparend:
Mit 5% weniger Helligkeit und 50% mehr Kontrast
mehr als 40% der Bildinformationen sind “Rand”, dort wird sich nie etwas verändern, aber diese Bereiche verschlechtern das Erreichen des Schwellwerts für eine mögliche Veränderung (und verschwenden Rechenzeit und Bandbreite). Daher können die einfach abgeschnitten werden mit der crop-Option:
Moin,
hier noch mal der aktuelle Stand. Wenn ich Zeit habe, schaue ich mal, ob ich die Entwicklung zu einem Video zusammen schneiden kann.
Könnt ihr denn erkennen, was für eine Art das ist? Ich bin da nicht so bewandert.
Bezüglich des Foto-Intervals und der automatischen Erkennung habe ich viele Fragen im Kopf. Wollen wir nachts Fotos machen? Hätte gedacht, dass nicht viel passiert, aber letzte Nacht war eine Spinne zu Besuch.
Jetzt haben wir natürlich gute Testbilder für die automatische Erkennung. Aber was ist interessant aufzunehmen, und was nicht? Wenn ein Schlafgast sich nachts bewegt, quasi im Schlaf dreht, ist das nicht so interessant? Bei der Eiablage ist auch nicht viel Bewegung, aber das ist natürlich interessant?
Ist das nicht nur am Rand? In der Mitte vielleicht eher Pollen?
Du hast Recht, ich sollte mal ein RGB Bild machen.
Das mit der Helligkeits-/ Farb-/ Kontrastkorrektur finde ich eine gute Idee.
Du hast Recht, dass die Lichtleistung viel zu hoch ist.
Ich habe es zuerst mit 3 IR-Led mit Begrenzungswiderstand in Reihe an 5 V versucht. Das ganze 3 mal ergibt eine 9 IR-Ledreihe über den Neopixel-Led. Leider war die Ausleuchtung nicht gleichmäßig, nicht über ein GPIO-Pin ein/aus schaltbar oder mit PWM dimmbar. Also mit FET als Schalter davor und eine steuerbare Stromquelle ausprobiert. Die Ausleuchtung wurde damit nicht besser.
Es gibt Raspi-Nachtsichtkameras mit 2 einzelnen IR-Scheinwerfern, die über den LDR-Eingang geschaltet werden können. Auf der Suche bin ich dann auf die jetzt benutzte Platine gestossen. Sie treibt 2 IR-Led in Reihe mit einer Eingangspannung von 4,5 bis 12 Volt und ist über den LDR-Eingang steuerbar. Im Prinzip kann man sie über PWM dimmen, was aber zu Interferenzen und Streifen im Bild führt. Bevor ich nun einen perfekten IR-Scheinwerfer selbst entwickele, habe ich aus Zeitmangel diese Platinen eingebaut, zumal die Bilder mit gelber Neopixelbeleuchtung immer besser als mit IR-Beleuchtung werden.
Aus meiner heutigen Sicht brauchen wir die IR-Bilder nur, um zu entscheiden, welche Bilder mit gelben Licht noch einmal gemacht und hochgeladen werden sollen. Es ist nicht sinnvoll, tausende von Bildern zu senden, auf denen nichts passiert.
Solange wir keine besseren Kriterien haben, macht die Kamera von morgens bis abends regelmäßig ( 30 Minuten ) ein Bild mit gelben Licht und sendet es. Aus diesen Bildern können wir dann andere Kriterien ableiten, z.B. wie wir eine Bewegungs-Erkennung programmieren.
In der jetzigen Software ist das Bild schmaler, die Seitenwände sind kaum noch im Bild
Habt Ihr die Software denn irgendwo zum Mitbasteln bereitgestellt, so dass wir oder andere u.U. kollektiv mit o.g. ImageMagick commands mittun könnten, oder darüber hinaus?