Video är nog den rikaste källan till sensordata. Forskare och ingenjörer har i decennier försökt använda bildteknik för att utveckla algoritmer som gör att datorer kan ”se”. Den första riktiga kommersiella tillämpningen – allmänt känd som maskinseende – analyserade objekt som snabbt passerade förbi för att inspektera och upptäcka fel i produkter. Sedan dess har maskinseendet flyttat upp till en ännu högre nivå, på grund av ökade processorprestanda, sänkt strömförbrukning, förbättrade bildsensorer, och smartare datoralgoritmer för maskininlärning.
Ladda ner artikeln här (länk, pdf). Fler tekniska rapporter finns på etn.se/expert |
Idag kan inbyggda system och datorseende kombineras. Det kallas Embedded Vision (inbyggt datorseende). Under de närmaste åren väntas en snabb spridning av datorseende, bland annat system som klarar svagt ljus, högupplösta bilder, och avancerade tillämpningar som utnyttjar specialutvecklade processorer. Ett ökande antal produkter kommer att ta mot visuella indata för ett brett utbud av tillämpningar inom områdena konsument, fordon, industri, hälsovård och hemautomatisering.
Den nya vågen Internet of things (IoT) väntas omdana elektronikindustrin från grunden genom att koppla samman miljardtals enheter. Syftet med IoT är att göra produkter smarta och dessutom tillgängliga för användare överallt i världen. Apparater uppfattas som intelligenta när de gör våra liv enklare, som när de känner igen en boende på portvideotelefonen och släpper in personen i byggnaden, för att bara ta ett exempel av många nya möjligheter. Produkterna blir generellt mer användbara när de kan interagera med sin omvärld, och video är ett särskilt kraftfullt medium som förbindelselänk genom att den kan samla så mycket information. Robotar är det klassiska exemplet där man redan från början använde bildsensorer. De är en robots ögon – systemets indata – och hjälper den att styra sina motorer – systemets utdata – med hög effektivitet.
Den senaste utvecklingen inom maskininlärning, konvolutionella neuronnät (CNN) och annan neuronnätsteknik skapar dessutom möjligheten att utveckla intelligent datorseende som är självlärande.
EMBEDDED VISION ger goda möjligheter att skapa nya stora värden på nästan vilken elektronikmarknad som helst, och potentialen växer i takt med den snabba teknikutvecklingen inom hård- och mjukvara. Det finns dock många utmaningar i att ta fram systemövergripande tillämpningar för datorseende.
Beroende på kvaliteten måste rå bilddata – video såväl som stillbilder – bearbetas och förfinas. En otillräcklig kvalitet på linsen, till exempel, stör hela bildbehandlingsprocessen. Datavolymen som fångas kan vara enorm, särskilt vid högupplöst video och realtidsbehandling. Många avancerade tillämpningar för datorseende kommer att kräva parallella processorer eller skräddarsydda komponenter som GPU:er, DSP:er, FPGA:er eller hjälpprocessorer. Å andra sidan har inbyggda system ofta strikta krav på pris, storlek och strömförbrukning, så även om en avancerad processor skulle ha tillräcklig datorkraft, kan den mycket väl vara för dyr eller för strömslukande för tillämpningen.
Inbyggt datorseende konstrueras för att fungera ute i verkliga fysiska miljöer. Sådana är under ständig förändring. Ljuset ändras, saker rör sig och roterar. Att använda skräddarsydda bildtolkningsalgoritmer för att styra data är en nyckel i dessa situationer. Det fungerar inte att förlita sig endast på simuleringar, och det krävs tester i realtid, vilket kan vara tidskrävande. Detta är speciellt fallet inom fordons-, säkerhets- och robotteknik.
System för datorseende. Embedded vision kräver komponenter av många olika slag, och det finns olika sätt att sätta samman dem, men i första hand delas de upp i bildbehandling, bearbetning och datorseende.
Denna artikel har tidigare publicerats i magasinet Elektroniktidningen. För dig som jobbar i den svenska elektronikbranschen är Elektroniktidningen gratis att prenumerera på – våra annonsörer betalar kostnaden. Här ansöker du om prenumeration (länk). |
För systemets indata är CMOS och CCD de ledande bildsensorteknikerna. CCD ger generellt högre kvalitet, men CMOS-sensorerna har kommit ikapp under det senaste decenniet. CMOS är det som huvudsakligen används idag, vilket beror på förbättrad bildkvalitet, lägre strömförbrukning, förmåga att hantera svagt ljus, och lägre kostnader. CMOS-tekniken fortsätter dessutom att utvecklas – pixlar krymper och upplösningen ökar – vilket dessutom matchas av ökande bandbredd och snabbare gränssnitt. Bildsensorerna finns nu också tillgängliga i allt mindre kapslar och moduler, vilket möjliggör kompakta lösningar för dubbelkameror och stereosende, som används för att kompensera för distorsion, fånga bilddjup och för att förbättra dynamik och skärpa.
Processor måsta väljas utifrån aspekter som realtidsprestanda, strömförbrukning, bildnoggrannhet och algoritmkomplexitet. Det har skett en kontinuerlig förbättring av både datorkraft och algoritmer för seende. SLAM (simultaneous localisation and mapping) integreras allt oftare i fordon, robotar och drönare.
Systemet kräver också ett lokalt minne för att jämföra bilder och att lagra bilddata för framtida analyser. Vanligen används både flyktiga och icke-flyktiga minnestyper, oavsett om systemet lagrar ett urval av bilderna, eller samtliga. Det finns också speciella algoritmer som är nyckelkomponenter i systemet, för att till exempel styra videoupptagningen eller förbättra bilden för specifika behov, som ökat färgdjup eller bättre detektering av objekt.
Efter introduktionen av öppenkodsbiblioteket OpenCV, har algoritmer för datorseende börjat utvecklas och implementeras på helt nya sätt. I OpenCV finns bland annat C/C++-funktioner som är centrerade på datorseende, vilket gör det enklare att portera algoritmer till inbyggnadsprocessorer. Många tredjepartsleverantörer baserar sina lösningar för bildbehandling och datorseende på OpenCV eller liknande bibliotek eller ramverk för många olika tillämpningar. Halvledarleverantörer erbjuder i många fall egna programbibliotek som förbättrar deras produkter inom embedded vision.
Uppkoppling är ytterligare ett element, och blir allt viktigare i IoT-eran. Trådbunden eller trådlös – det beror på tillämpningen och dess kravbild. Ytterligare en sak att överväga är om analysalgoritmen ska köras på molnbaserade servrar.
Sammantaget är det viktigt att välja de rätta komponenterna för systemet och tillämpningen, och därefter fortsätta till finjusteringen av alla dessa delar, inklusive hårdvara, mjukvara och algoritmer. Det här är inte alltid så enkelt och på grund av den komplexitet som inbyggt datorseende innebär, behöver utvecklare definitivt använda professionella verktyg för att minimera utvecklingskostnader, tid och risk för att snabbt kunna sätta sina system på marknaden.
Kompletta lösningar. Avnet Silica har stor erfarenhet av att hjälpa kunder utveckla tillämpningar för inbyggt datorseende. Företaget erbjuder i stort sett alla komponenter som krävs för en komplett systemlösning, inklusive optimerad maskinvara och programvara, drivrutiner och tillämpningsprogram. Hådvaran sträcker sig från bildsensorer och kameramoduler för indata, till dedikerad maskinvara, inklusive processor-, minnes- och strömförsörjningskomponenter som uppfyller strikta krav på datorkraft och strömförbrukning. Allt detta stöds dessutom av mjukvaruutvecklingsverktyg, drivrutiner för kameror, referenskonstruktioner för exempeltillämpningar och omfattande kunskaper i bildhanteringsprogramvara och -algoritmer.
Avnet Silica hjälper sina kunder att utveckla skräddarsydda lösningar för produkter och plattformar med embedded vision och har därför tagit fram ett brett utbud av avancerade utvecklingsplattformar för kameror. Ett exempel är PicoZed, som är en utvecklingssats för inbyggt datorseende, byggd på den mycket flexibla systemmodulen PicoZed, som i sin tur baseras på den programmerbara systemkretsen Xilinx Zynq-7000. PicoZed-lösningen är perfekt för tillämpningar inom maskinseende och den innehåller all maskinvara, all programvara och alla IP-komponenter som krävs för att skapa en skräddarsydd videotillämpning. Den stöder den rekonfigurerbara stacken reVISION, som är optimerad för att accelerera datorseende och maskininlärning baserad på video. I stacken finns resurser för utveckling av plattformar, algoritmer och tillämpningar. Här finns också hårdvaruaccelererade OpenCV-funktioner och stöd för de populäraste typerna av artificiella neuronnät.
Ett andra exempel är Avnet Silicas kamerautvecklingskort baserat på ST STM32F7. Den har lågt pris, stöder Mbed, har låg strömförbrukning, USB, kapacitiv färgskärm på 4,3 tum och all erforderlig hård- och mjukvara för snabb utveckling av datorseende inom Internet of Things (IoT), smarta hem och videotillämpningar av olika slag. Ett tredje utvecklingskort är baserat på NXP Kinetis K82F (en Cortex M4-styrkrets med låg strömförbrukning) och använder en miniatyriserad VGA-kameramodul med flexkontakt, har ett horisontellt synfält på 90°, och IR-filter. Den kan ta stillbilder och strömma lågupplöst realtidsvideo.
Avnet Silica utvecklar och adderar kontinuerligt nya utvecklingssatser till sitt sortiment. Detta ger våra nyckelkunder ett brett utbud av avancerade inbyggda lösningar för datorseende.