Development

Mar 30. 2020

Ako zachytiť prichádzajúcich ľudí a vozidlá pomocou Raspberry Pi a LIDAR

raspberry pi

Použitím pohybového senzora a kamery spolu s Raspberry Pi a prístupom na internet môžete vytvoriť databázu ľudí vchádzajúcich do vašej budovy, tabuliek s evidenčným číslom áut, atď.

Detekcia pohybu

LIDAR senzor nebol najprv našou prvou voľbou, keď sme hľadali vhodný senzor na meranie vzdialenosť. Našu pozornosť sme najprv upriamili na ultrazvukové senzory, no zistili sme, že v niektorých prípadoch robili celé riešenie nepoužiteľným. Senzory ako HC-SR04 (často používané s Arduino) sú malé, jednoduché a lacné, no použiteľné len pre malé vzdialenosti, a preto nedokázali splniť požiadavku detekcie objektov vo vzdialenosti 6 až 10 metrov ďaleko. Senzory určené pre vonkajšie použitie a odolné voči počasiu - ako MB7092 XL-MaxSonar-WRMA1 - boli dostatočne dobré na detekciu pravidelných objektov s povrchmi ako sklo, drevo a oceľ, no nedokázali detegovať osoby v rôznych typoch oblečenia. Taktiež, vo väčších vzdialenostiach nedokázali vôbec rozpoznať ľudí, pravdepodobne kvôli príliš širokému rozsahu pulzu.

LIDAR-Lite v3 od firmy GARMIN je optický senzor s laserom, ktorý vyriešil všetky problémy s presnou detekciou objektov vo veľkých vzdialenostiach, no na druhej strane bol aj najdrahší spomedzi všetkých, ktoré sme skúsili.

Image removed.
Zdroj: buy.garmin.com

Ako sa zamerať iba na prichádzajúce objekty?

Keďže projekt vyžadoval zachytenie len špecifických situácií, implementovali sme algoritmus na rozlíšenie približujúcich sa objektov a objektov, ktoré sa vzďaľujú. Python skript číta hodnoty zo senzora frekvenciou 20 Hz a pre vyššiu presnosť niekoľko hodnôt za sebou priemeruje. Hodnoty sú potom medzi sebou porovnávané a vyhodnocované či v čase stúpajú alebo klesajú. Väčšia hodnota znamená vyššiu vzdialenosť, čo znamená, že sa objekt vzďaľuje. Nižšia hodnota znamená menšiu vzdialenosť, čo znamená, že sa objekt približuje. Po analýze niekoľkých reálnych situácií sme nastavili aj minimálny rozdiel medzi týmito hodnotami, ktorý musí byť splnený, aby sa vôbec hodnota brala do úvahy.

Zameranie objektu

Pohybový senzor slúži ako spúšťač pre kameru, ktorá ihneď spraví fotku na príkaz senzora. Skript potom asynchrónne nahrá fotku, takže nečaká za výsledkom a neminie žiadnu ďalšiu detekciu, čo je aj v prípade pomalého internetového pripojenia.

Image removed.
Zdroj: raspberrypi.com

Konfigurovateľnosť

Každá číselná premenná, ktorá vstupuje do algoritmu, je konfigurovateľná cez používateľské rozhranie poskytované backend aplikáciou na vzdialenom serveri. Minimálna a maximálna vzdialenosť, frekvencia merania, počet priemerovaných hodnôt, rozlíšenie kamery a iné hodnoty je možné vzdialene prispôsobiť pre konkrétny priestor, kde je toto riešenie využité. Takto napríklad miesta s nízkou kvalitou internetového pripojenia môžu využiť menšie rozlíšenie kamery, čím sa zníži veľkosť fotky a zrýchli sa nahrávanie.

Cena hardvéru a iné možnosti

Cena hardvéru sa pohybuje okolo 200 EUR a je to rozhodne vyššie číslo, ako sme pre toto, pomerne malé riešenie, očakávali. Spôsobuje to hlavne cena LIDAR senzora, a preto sa nižšie rozpočty budú musieť poobzerať po lacnejšej variante, možno však za daň menšej presnosti. Treba dôkladne otestovať, či senzor vyhovuje danému projektu predtým, než sa kúpi veľký počet kusov. Taktiež bola použitá najdrahšia konfigurácia Raspberry Pi 4 so 4GB RAM, takže cena sa dá znížiť napríklad aj použitím slabšej verzie. Camera Module v2 bola použitá ako jediná odporúčaná a oficiálna možnosť pre Raspberry Pi.

TL;DR

Použitím Raspberry Pi, LIDAR senzora a kamerového modulu sme boli schopní vyvinúť kompaktné a prenosné hardvérové riešenie na detekciu prichádzajúcich objektov ako ľudí a vozidiel, ich odfotenie a nahrávanie na vzdialený server. Bohatá konfigurovateľnosť zaručuje použiteľnosť na rôznych miestach - od malých kancelárií až po dlhé tunely. Aj keď to môže znieť ako triviálne riešenie, tento projekt naozaj vyriešil zákazníkovi reálny problém, a to už vo fáze MVP verzie projektu. S tímom v Touch4IT preferujeme vždy najskôr otestovať minimálnu verziu, čo je pre nášho zákazníka lacnejšie a rýchlejšie, a potom v ďalších iteráciách dotiahnuť riešenie pre využitie v produkčnom prostredí.

 

Chceli by ste vyvinúť niečo, s čím nemáte skúsenosti? Nemáte oddelenie inovácií alebo potrebných ľudí? Budeme radi, ak sa o tom s nami porozprávate a nájdeme to správne riešenie.

david

Dávid

Android Developer

Značky: