Smartphone camera versus spiegelreflex: algoritmes of optica

Alieke van Sommeren
0

Inhoudsopgave

High-end smartphones beloven een flinke lichtsterkte, optische zoom en mooi ogende onscherpte in de vorm van bokeh. Aangezien dat puur optisch gezien niet kan, wordt daar ‘computational photography’ bij ingezet. De spiegelreflex-look wordt bij een smartphone camera gesimuleerd door algoritmes en multicamera-systemen.

De miniaturisatie van fotografie heeft zeer slimme optische constructies opgeleverd. Toch moet een lichtsterk systeem met een hoge zoomfactor net als voorheen een bepaalde lengte hebben en de lichtstralen bundelen op een sensor die groot genoeg is. Dat geldt vooral als je voor het mooie creatieve effect van onscherpte gaat, waarbij de achtergrond grotendeels vervaagt en de lichtpunten een karakteristieke schijfvormige vorm krijgen. De behuizing van een smartphone is daar echter veel te klein voor.

smartphone camera Folded Lens zoom Corephotonics Oppo

Corephotonics werkt samen met Oppo aan een vijfvoudige zoom voor smartphones. De voor een normale positionering te lange telelens ligt haaks op de groothoeklens binnen de behuizing. Een prisma buigt het licht het lenzensysteem binnen.

De fabrikanten gebruiken daarom een trucje. Ze bouwen twee of meer normale cameramodules in die het onderwerp tegelijk elk op een andere manier vastleggen. Ze gebruiken een net iets ander perspectief, een andere zoomfactor of een verschillend kleurenspectrum. Dat soort set-ups levert waardevolle informatie op die de smartphone met dank aan een aantal algoritmes slim verwerkt om diepte-­informatie te achterhalen of de kwaliteit bij slechte lichtomstandigheden te verbeteren door losse foto’s over elkaar te leggen (zogeheten ‘image fusion’). Daarvoor zijn klassieke algoritmes uit de stereofotografie intensief verder ontwikkeld, geoptimaliseerd voor gebruik met smartphones en efficiënter gemaakt. Bewezen technieken op het gebied van videobewerking worden getest als alternatief of aanvulling, net als machine-learning.

De dualcamera-techniek zit vooral in de topklasse smartphones als de Google Pixel 2 (XL), Apple iPhone X en de Samsung Galaxy S9+. De Huawei P20 Pro doet daar nog een schepje bovenop met maar liefst drie camera’s. Samsung heeft ook al een model met vier camera’s. De start-up Light sleutelt aan een smartphone met negen camera’s.

smartphone camera Light multiple camera

Fabrikant Light heeft recent een proto­type van een smartphone met negen camera’s gepresenteerd. Dit systeem heeft een resolutie van 64 megapixels en biedt als het goed is een goede beeldkwaliteit bij slecht licht.

Smartphone camera en diepte

Zodra je een foto met een dualcamera maakt, speelt het volgende zich af: elke camera projecteert de 3D-punten van de scene (objectpunten) op 2D-fotocoördi­naten. Omdat de camera’s van de smartphone wat verzonken liggen en naast elkaar zitten, zijn de foto’s ook een beetje verschillend uitgelijnd, waardoor een linker- en rechterbeeld ontstaat. De offset tussen twee pixels die hetzelfde punt van het object afbeelden (pixelpaar) wordt ook wel parallax of dispariteit genoemd. Als je beide foto’s over elkaar ligt, zie je dat effect.

De dispariteit is niet voor elk pixelpaar identiek, maar hangt af van hoe ver het bijbehorende objectpunt van de camera af lag. Punten dichtbij verschijnen groter in beeld en hebben meer dispariteit dan punten die verder weg liggen. De dispariteit is omgekeerd evenredig met de diepte en gaat in het oneindige richting de nul. Bij een foto van een persoon met op de achtergrond een haven wordt de persoon op de voorgrond verschoven weergegeven, de schepen in het midden minder maar nog steeds met enige verschuiving, en de wolken van beide beelden overlappen elkaar vrijwel geheel.

smartphone camera Blockmatching verschuiving

Objecten staan op de linker- en rechterfoto verder uiteen als ze dichtbij zijn dan als ze verder weg liggen.

Die samenhang wordt dan door dualcamera’s gebruikt om de diepte-informatie te reconstrueren die bij maken van de foto’s verloren is gegaan. Daarna proberen ze om van elke pixel in het linkerbeeld de bijbehorende pixel in het rechterbeeld op te sporen. Uit de verschillende coördinaten kun je daarna makkelijk de dispariteit en de positie van alle pixels in de ruimte berekenen. Daarmee is een gedetailleerde dieptekaart (‘depth map’) te maken die weer als sjabloon kan fungeren voor het berekenen van ruimtelijke effecten zoals onscherpte

Afwijkingen in camera's

Onder ideale omstandigheden kun je de meeste overeenkomende punten makkelijk vinden omdat ze een identieke helderheid en kleurwaarden hebben. In de realiteit hebben de camera’s verschillende resoluties, spectra en brandpuntsafstanden. Zelfs identieke camera’s bieden op basis van toleranties in het fabricageproces niet dezelfde kleurwaarden. Daar komt nog storing bij in de vorm van ruis, vignettering, kleurranden en lastige eigenschappen van het onderwerp van de foto, zoals bedekte delen, vlakken met een enkele kleur, reflecties, haakse en parallelle lijnen en gedetailleerde structuren (bosjes, bomen).

Voordat een algoritme naar vergelijkbare pixels kan zoeken, moeten de losse foto’s bewerkt worden om de systeem-, fabricage- en slijtagefouten te elimineren. De meest grove objectief-afwijkingen worden verholpen door correctieprofielen. Die worden met behulp van kalibratiekaarten berekend om op die manier kleurzomen, vignettering en vertekening uit te filteren. Omdat camera’s in smartphones tijdens hun levensduur ook te kampen hebben met invloeden van buitenaf zoals de temperatuur of vallen, kunnen er nog extra stappen uitgevoerd worden via online kali­bratie, oftewel kalibratie tijdens gebruik.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Pixels vergelijken

Voor het speuren naar overeenkomende pixels in beeldparen (‘stereo matching’) bestaan er verschillende methodes en algoritmes met elk hun eigen sterke en zwakke punten. De basis daarvoor is al lang gelegd voordat smartphones bestonden. Foto’s kwamen toen uit twee studio­camera’s, het zoeken naar matchende paren gebeurde op een pc. Welke methodes in welke smartphone worden gebruikt, houden de fabrikanten geheim, alleen Google heeft wat details vermeld. Ze staan allemaal voor dezelfde uitdaging, namelijk het afwegen van snelheid tegen kwaliteit.

De meeste fabrikanten plaatsen de camera’s axis-parallel naast of onder elkaar. Dat heeft een goede reden: axis-parallel georiënteerde systemen projecteren een scene zodanig dat identieke pixels in het linker- en rechterbeeld op dezelfde beeldrij verschijnen. Het algoritme kan het zoeken naar overeenkomstige pixels daardoor dus beperken tot een enkele beeldrij, waardoor het werk en dus de rekentijd en geheugengebruik een stuk minder worden.

smartphone camera Blockmatching overeenkomst blokken

Bij block-matching wordt per regel gezocht naar zo veel mogelijk op elkaar lijken­de blokken, om elke pixel in de bovenste foto aan een overeenkomende pixel in de onderste foto toe te wijzigen.

Zeer eenvoudige methodes zoeken per regel naar overeenkomende blokken (‘block matching’). Daarbij vergelijken ze een blok van een vaste grootte in het linkerbeeld (bijvoorbeeld 5 bij 5 pixels) met elk identiek groot blok op dezelfde regel in het rechter beeld. Hoe sterk die op elkaar lijken wordt gemeten via de helderheid en kleurwaarde van de pixels.

Standaard vergelijkingsmethodes zijn daarbij bijvoorbeeld de som van de absolute verschillen (Sum of Absolute Differences, SAD) en de som van de gekwadrateerde verschillen (Sum of Squared Differences, SSD) van kleurwaarden. Het blok met de laagste SAD- of SSD-waarde geldt dan als ‘passend’. Dat soort vergelijkingsmethodes worden ook wel kostenfuncties genoemd.

Deze methode van het matchen van blokjes is snel, maar ook foutgevoelig. Dat komt omdat er geen structurele informatie over de opbouw van een scène wordt meegenomen, die een foto normaliter onderscheidend maakt, maar alleen naar losse lokale delen wordt gekeken. Omdat het algoritme niet kan nagaan waar een object begint en waar het eindigt, leidt bijvoorbeeld wat beeldruis ertoe dat voor delen van het object in dezelfde kleur abusievelijk verschillende afstanden worden berekend.

Ook treden er in verschillende delen van het beeld problemen op door de blokgrootte, die bij de implementatie ingesteld moet worden. Een klein zoekvenster zorgt voor een betere inschatting van de afstand in delen met veel details en harde overgangen bij objecten, maar komt bij grote eenkleurige objecten in de problemen. Naarmate de blokgrootte toeneemt, is er minder balans in de delen met fijnere structuren en kan het algoritme slechter met ruis, abrupte afstandswijzigingen en gemaskeerde delen overweg.

Slimme algoritmes

Slimmere algoritmes proberen pixels daarom niet geïsoleerd blok voor blok toe te kennen, maar daar structuur­informatie uit andere delen van een beeld bij te gebruiken. Ook die zoeken weer regel voor regel naar matches, maar werken met complexere kostenfuncties en schatten alle dispariteiten in het beeld in één keer in. Het doel is door het minimaliseren van de totale kosten een optimale inschatting van de afzonderlijke dispariteiten te krijgen. Speciale wegingsfactoren in de kostenfuncties straffen toewijzingen af die fotorealistisch onwaarschijnlijk of onmogelijk zijn. Dat soort factoren moet ervoor zorgen dat dispariteiten bijna overal continu, maar bij grenzen van objecten abrupt veranderen. Een andere belangrijke factor in de kostenfunctie geeft de voorkeur aan oplossingen die een plausibele inschatting voor gemaskeerde pixels vinden.

In 2005 presenteerde de wiskundige Vladimir Kolmogorov met zijn graph-cuts-algoritme een manier om de dispariteiten zeer nauwkeurig in te schatten om de globale kosten te minimaliseren. Helaas zijn die en veel andere zeer exacte algoritmes veel te rekenintensief voor het gebruik op mobiele platforms.

Algoritmes die geschikt zijn voor smartphones proberen daarom de hoeveelheid werk met alle geoorloofde middelen zo klein mogelijk te houden. Vooral als ze vaker (ondersteund door waarschijnlijkheid) raden in plaats van berekenen of dieptekaarten in lagere resolutie maken en daarna gebundeld opschalen. Ook machine-learning moet handig zijn om de performance op te schroeven zonder dat de kwaliteit daar onder lijdt. Op die manier kun je met behulp van een op segmentatie getraind neuraal netwerk personen en andere belangrijke onderdelen van een beeld losweken en daarna combineren met een snel berekende dieptekaart. Andere zelflerende tools worden direct getraind aan de hand van foto’s om een ‘depth map’ te maken – of ze leren de optimale waarden voor de kostenfunctie te bepalen.

Aan het eind worden matchingfouten met verfijndere methodes eruit gefilterd. Ze identificeren gemaskeerde delen, reconstrueren de randen van die plekken en vullen gaten in homogeen gekleurde delen.

Comfortabeler lezen via app of van papier? Neem een abonnement of bestel c't 05/2024

Google Pixel 2

Google heeft over het algoritme in zijn Pixel 2 (XL) interessante details vrijgegeven. Meer daarover lees je in deze paper. Het algoritme haalt een beeldpaar niet uit twee losse camera’s, maar doet dat met zijn 12,2-megapixel dualsensor. Elk pixel van de sensor bestaat uit twee fotodiodes, die helpen bij het focussen. De fasedetectie-autofocus analyseert de signalen uit de linker en rechter fotodiode afzonderlijk van elkaar en past aan de hand van het verschil de lenzen van het objectief aan. Net als bij het maken van foto’s met een dualcamera krijg je een linker- en een rechterbeeld, maar de offset is hier kleiner.

Die speciale architectuur heeft zo zijn voor- en nadelen ten opzichte van het klassieke dualcamerasysteem. De opbouw bespaart accu en ruimte en door de kleine afstand tussen de beide fotodiodes heb je slechts minimaal last van maskering. Maar ruis kan het toewijzen van pixels sterk beïnvloeden. Een overtuigend diepte-effect lukt alleen als de belangrijkste delen van het onderwerp vlak bij de camera staan. Daarom gebruikt Google een ondersteunende methode om dispariteiten exact in te kunnen schatten: een neuraal netwerk om personen te herkennen.

Het linker- en rechterbeeld worden eerst afzonderlijk van ruis ontdaan om matchingfouten tot een minimum te beperken. De Pixel 2 maakt al een serie van losse foto’s voordat je de ontspanknop ook maar aangeraakt hebt. De laatste opnames worden samengevoegd tot een ruisarme foto met hogere dynamiek­omvang. Die als HDR+ bekend staande techniek komt ook uit de laboratoria van Google.

Daarna probeert het neurale netwerk om personen in de foto te herkennen en te segmenteren. Het neurale netwerk is niet alleen getraind op personen, maar ook op typisch menselijke accessoires als een hoed, zonnebril, tas en rugzak. Daarbij wordt uit de stereobeelden van de dualpixelsensor een dieptekaart berekend. Als er geen personen op de foto voorkomen, grijpt het algoritme alleen terug op de dieptekaart.

smartphone camera Depth Map dieptekaart

De dieptekaart laat nog gaten en foutjes zien in gemaskeerde delen.

Om dispariteiten in te schatten, gebruikt Google niet de klassieke stereo-matching, maar een methode die de van frame naar frame optredende objectbewegingen bij video modelleert: het optisch strooiveld (optic flow). De Google Pixel interpreteert een beeldpaar dus simpelweg als een minivideo met twee frames. Volgens de onderzoekers van Google is het gebruik van optic-flow-algoritmes efficiënt omdat de maximaal mogelijke offset door de dualpixel-architectuur wordt beperkt tot een paar pixels.

Om nog meer rekentijd te besparen, bepaalt de beeldprocessor de optic flow op basis van 5,6-megapixelfoto’s, wordt de dispariteitskaart daarna gladgestreken en wordt deze met een schaalmethode die rekening houdt met randen omhoog geschaald naar de originele resolutie.

Mooi onscherp

Met behulp van een dispariteitskaart zijn fotografische effecten subtiel toe te passen. Daardoor ogen ze realistischer. Het belangrijkste waar een dispariteitskaart voor wordt gebruikt, is de afstands­afhankelijke fotografische onscherpte. Die wordt groter naarmate de afstand tot het focuspunt toeneemt. Dat gebeurt op een zeer bijzondere manier: elk beeldpunt muteert tot een cirkelvormig, half transparant bouwwerk dat samen met zijn buurman de ene keer een gelijkmatig zacht verloop en de andere keer een opeenstapeling van schijfjes oplevert, of een grote oplichtende zeepbel. Daardoor ontstaat een overtuigende kunstmatige bokeh op dezelfde manier punt voor punt en laag voor laag.

In plaats van tijdrovend continu onscherpteverlopen te simuleren, voegt de Google-smartphone de dieptewaarden van de dieptekaart zinvol samen tot delen, die er dan weer voor dienen om de foto in bewerkingslagen te kunnen delen. Op alle pixels van een laag wordt dan een onscherptefunctie gebruikt die aangeeft in welke vorm en sterkte het punt zich uitbreidt.

smartphone camera onscherpte fout Google algoritme

Geloofwaardige kunstmatige onscherpte moet niet over scherpe objectranden heen gaan (onder). Het algoritme van Google voorkomt dat door pixels met een vergelijkbare afstand op een laag samen te voegen en de onscherpte per laag te berekenen (boven).

Meer lenzen, meer zoom?

De multicameratechniek werkt erg goed. Als telelens voor zoomen is het bij een smartphone misschien niet zo zinvol. Maar het systeem berekent prima onscherpte in een beeld, verbetert de beeldkwaliteit bij minder goed licht en markeert het verdwijnen van pure groothoekfotografie bij smart­phones. Het raakt steeds meer ingeburgerd.

De iPhone X combineert bijvoorbeeld een groothoeklens met een telelens, de triple-camera van de Huawei P20 slaat het gefotografeerde onderwerp op met high-res kleuren, monochrome sensors en een 8-megapixel telelens. Ook combinaties met infraroodsensors, het splitsen van de delen rood, groen en blauw en nog meer camera’s met andere brandpunten zijn mogelijk. Op dit moment ligt de fabrikant Light aan kop met zijn compacte L16 met 16 optische systemen, maar die is ook twee keer zo dik als een smartphone. En hij heeft nog last van performance- en kwaliteitsproblemen.

Elke architectuur heeft zijn eigen voordeel. Een extra monochrome sensor kan meer helderheidsstappen registreren dan een RGB-sensor. Door lagen over elkaar heen te leggen, is vooral de fotokwaliteit bij slecht licht behoorlijk op te schroeven. Telelenzen verzachten portretten omdat ze gezichten niet zo ongunstig vertekenen en een foto van grotere afstand mogelijk maken. Omdat het beetje optische bokeh van de kleine relatief lichtzwakke smartphone­telelens niet voldoende is om een onderwerp van de achtergrond te scheiden, moet de smartphone daarbij kunstmatig vervagen.

smartphone camera Bokeh iPhone X versus Google Pixel 2 XL

Zo stralend en verschillend als bij een optisch systeem (rechtsboven) vormen lichtreflexen bij kunstmatige bokeh zich niet. Onder zie je de interpretaties van de ­iPhone X (links) en Google Pixel 2 XL (rechts).

Maar niet bij alle situaties of alle onderwerpen lukt de simulatie goed, en duiken er verschillende artefacten op. Soms blijven delen van de achtergrond scherp en soms komt de achtergrond door richting het eigenlijk scherp afgescheiden onderwerp. Het komt ook voor dat de kleuren ineens veranderen. Zelfs een goedkope telelens heeft dan een voordeel omdat hij zelf zonder allerlei kunstgrepen een continu ruimtelijk onscherpteverloop heeft. Over segmentatieartefacten kun je op zich nog wel heen kijken, of anders met kloontools en andere reparatiemiddelen aan de slag gaan om de foto’s alsnog geschikt te maken voor een geprint fotoalbum.

We zijn benieuwd hoe de computerfotografie zich ontwikkelt. Google heeft dit voorjaar de lightfield-pionier Lytro ingelijfd, Leica investeert in Light en Core­photonics is strategische partnerschappen met Samsung, Foxconn en Oppo aangegaan.

Creatief gezien is het spelen met diepte-informatie nog verder te benutten. Zo heeft Nvidia een methode ontwikkeld die het perspectief kunstmatig verkort, oftewel verder verwijderde onderwerpen automatisch scheidt en dan dichterbij haalt, zodat een groothoekopname tot een telelens-shot muteert.

Op die manier komt fotografie steeds dichter bij zijn oorspronkelijke betekenis. De term komt uit het Grieks: photos (licht) en graphein (tekenen, schrijven) vormen samen ‘tekenen met licht’.

(Andrea Trinkwalder, c’t magazine)

Meer achtergronden, reviews en workshops in c't magazine. Nieuwste uitgave: c't 05/2024

Deel dit artikel

Alieke van Sommeren
Alieke van SommerenTypen geleerd op een 8086 met DOS 5.0 en al vroeg zelf aan het pc-(ver)bouwen geslagen. Speelt graag pc-games, houdt van gadgets en klikt ook wat rond op een MacBook.

Lees ook

Dit kun je verwachten als je ChatGPT als hacking-tool wilt gebruiken

Kun je ChatGPT gebruiken als hacking-tool? We neigden naar de duistere kant en onderzochten of de assistentie van een AI van elke scriptkiddie een eli...

Raspberry Pi GPIO pinnen: een overzicht van de aansluitingen

Een kleine Raspberry Pi board is zo volgepakt met alle componenten dat er geen ruimte meer over was om de 40 GPIO pinnen van informatie te voorzien. O...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er