Google beskriver tekniken bakom Pixels Portrait Light-funktion

I ett nyligen blogginlägg har Google beskrivit tekniken bakom den nya Portrait Light-funktionen som debuterade med Pixel 5 och Pixel 4a 5G.

Efter flera läckor och rykten presenterade Google äntligen Pixel 5 och Pixel 4a 5G tidigare i år i september. Som förväntat kom enheterna med en mängd nya Google Kamera-funktioner som skiljer dem från andra Android-telefoner på marknaden. Dessa inkluderar Cinematic Pan för skakfri panorering på videor, låsta och aktiva stabiliseringslägen, natt Synstöd i porträttläge och en porträttljusfunktion för att justera ljusporträttbilderna automatiskt. Några veckor efter lanseringen släppte Google de flesta av dessa funktioner för äldre Pixel-enheter via en Google Foto-uppdatering. Och nu har företaget delat med sig några detaljer om tekniken bakom Portrait Light-funktionen.

Enligt en nyligen blogginlägg från företaget, funktionen Portrait Light inspirerades av belysningen utanför kameran som används av porträttfotografer. Den förbättrar porträttbilder genom att modellera en omplacerbar ljuskälla som kan läggas till scenen. När den läggs till automatiskt justerar den artificiella ljuskällan automatiskt riktningen och intensiteten för att komplettera bildens befintliga belysning med hjälp av maskininlärning.

Som Google förklarar använder funktionen sig av nya maskininlärningsmodeller som tränades med hjälp av en mångsidig datauppsättning av fotografier som tagits i Ljus scen beräkningssystem för belysning. Dessa modeller möjliggör två algoritmiska funktioner:

  • Automatisk placering av riktat ljus: Baserat på maskininlärningsalgoritmen placerar funktionen automatiskt en konstgjord ljuskälla som överensstämmer med hur en professionell fotograf skulle ha placerat en ljuskälla utanför kameran i verkligheten värld.
  • Syntetisk post-capture relighting: Baserat på riktningen och intensiteten av det befintliga ljuset i en porträttbilder lägger maskininlärningsalgoritmen till ett syntetiskt ljus som ser realistiskt ut och naturlig.

För den automatiska riktade ljusplaceringen tränade Google en maskininlärningsmodell för att uppskatta en högt dynamiskt omfång, rundstrålande belysningsprofil för en scen baserad på ett ingångsporträtt. Den här nya belysningsuppskattningsmodell kan hitta riktningen, den relativa intensiteten och färgen för alla ljuskällor i scenen som kommer från alla håll, med tanke på ansiktet som en ljussond. Den uppskattar också huvudinlägget för ämnet med hjälp av en MediaPipe Face Mesh. Baserat på ovan nämnda data bestämmer algoritmen sedan riktningen för det syntetiska ljuset.

När den syntetiska belysningens riktning och intensitet har fastställts lägger nästa maskininlärningsmodell till den syntetiska ljuskällan till originalfotot. Den andra modellen tränades med hjälp av miljontals par av porträtt, både med och utan extraljus. Denna datauppsättning genererades genom att fotografera sjuttio olika personer med hjälp av beräkningssystemet Light Stage, som är en sfärisk belysningsrigg som inkluderar 64 kameror med olika synpunkter och 331 individuellt programmerbara LED-ljus källor.

Vart och ett av de sjuttio motiven fångades medan de var upplysta ett-ljus-i-åt-gången (OLAT) av var och en av de 331 lysdioderna. Detta genererade deras reflektansfältdet vill säga deras utseende som upplyst av de diskreta sektionerna av den sfäriska miljön. Reflexionsfältet kodade de unika färg- och ljusreflekterande egenskaperna hos motivets hud, hår och kläder och bestämde hur glänsande eller matt varje material såg ut på bilderna.

Dessa OLAT-bilder adderades sedan linjärt för att återge realistiska bilder av motivet som de skulle se ut i alla bildbaserad ljusmiljö, med komplexa ljustransportfenomen som spridning under ytan korrekt representerad.

Sedan, istället för att träna maskininlärningsalgoritmen för att förutsäga de återupplysta bilderna direkt, tränade Google modellen att mata ut en lågupplösning kvotbild som skulle kunna appliceras på den ursprungliga ingångsbilden för att producera önskad utdata. Denna metod är beräkningseffektiv och uppmuntrar endast lågfrekventa ljusbyten utan påverkar högfrekventa bilddetaljer som överförs direkt från ingångsbilden för att underhålla kvalitet.

Dessutom tränade Google en maskininlärningsmodell för att efterlikna det optiska beteendet hos ljuskällor som reflekteras från relativt matta ytor. För att göra det tränade företaget modellen för att uppskatta ytnormalerna givet ingångsfotot och applicerade sedan Lamberts lag för att beräkna en "ljussynlighetskarta" för önskad ljusriktning. Denna ljussynlighetskarta tillhandahålls sedan som input till kvotbildsprediktorn för att säkerställa att modellen tränas med hjälp av fysikbaserade insikter.

Även om allt detta kan verka som en lång process som skulle ta Pixel 5:s mellanklasshårdvara en hel del tid att bearbeta, men Google hävdar att Portrait Light-funktionen var optimerad för att köras med interaktiva bildhastigheter på mobila enheter, med en total modellstorlek på under 10 MB.