Изведбата на длабоките нервни мрежи направи голем чекор напред во последните две децении. Секоја година се осмислуваат нови архитектури кои ги надминуваат најсовремените резултати. Сепак, само подобрувањето на архитектурите нема да функционира без квалитетна база на податоци. Базата на податоци има големо влијание врз конечните перформанси. Собирањето и означувањето на разновидни, точни сетови на податоци може да биде макотрпно и скапо, а постоечките збирки на податоци обично не ја покриваат целата разновидност на дистрибуција на реални податоци, па затоа се користат техники за зголемување на податоците.
Во оваа статија, ќе покажам како вашата база на човечки лица може да се збогати со трансформација на 3D геометрија за да се подобрат перформансите на вашиот модел. Имплементацијата на кодот со отворен код е дадена подолу[1].
Зголемувањето на податоците е техника која ја зголемува количината на податоци со примена на различни модификации на примероците. Генеричкото зголемување на сликата може да се подели во две категории: геометриски трансформации и трансформации на бои. Геометриските трансформации се состојат од скалирање, отсекување, превртување, ротација, превод итн.
Ајде да размислиме како можеме да ја зголемиме сликата ако знаеме дека има човечко лице. Како да разликуваме една личност од друга? Постојат карактеристики на лицето кои го сочинуваат идентитетот, како бојата на кожата, обликот на лицето, фризурата, брчките, бојата на очите итн. Еден од најпрепознатливите е обликот на лицето.
Значи, ако го промениме обликот на влезната слика на лицето, тоа ќе биде малку поинаква личност за модел што може да се обучи. Значи, ајде да го користиме ова својство за да ја зголемиме нашата база на податоци.
Ќе ја промениме геометријата на лицето со користење на 3D Morphable Model (3DMM), особено моделот FLAME[2]. 3DMM е тродимензионална мрежа која има параметри за манипулирање со својата форма, поза и израз. 3DMM е изграден од тродимензионални мрежи кои се регистрирани од вистински луѓе.
Така, може да претставува дистрибуција на вистински форми на лице. Под хаубата се состои од средна форма и збир на главни компоненти кои ги специфицираат насоките на промена за обликот и изразот. Алфа и бета се параметри на моделот.
Пред да го промениме обликот на лицето, треба да најдеме параметри на 3DMM што одговараат на нашата влезна фотографија. Постојат неколку методи за да го направите тоа, како што се оптимизација на обележја, фотометриска оптимизација или модели на регресија за предвидување на параметрите во еден чекор. Користев 2D оптимизација на обележја бидејќи има едноставна имплементација и дава точни резултати во разумно време.
Знаците на лицето беа откриени на влезната слика со моделот за откривање лице Dlib. Алгоритмот за оптимизација на Адам се користеше со загуба на MSE за обележја за да се вклопи 3DMM во сликата на лицето. Беа потребни околу 150 повторувања за да се спојат.
Сега, ние сме подготвени да ја измениме геометријата на лицето. Пред сè, веќе имаме тродимензионална мрежа усогласена со сликата на нашето лице. Промената на параметрите на обликот на 3DMM доведува до поместување на мрежните темиња во просторот на сликата. Знаејќи дека се менува, можеме да го користиме за да ги преместиме пикселите на сликата.
За да добијам густа карта на поместувања, ја користев библиотеката OpenGL, каде што рендерирав 3DMM мрежа со поместувања во x и y насоки наместо теме боја. Останува уште едно нешто што треба да се земе предвид, како да се ракува со пикселите што беа надвор од површината на мрежата на лицето.
За таа цел користев екстраполација, која непречено го поврзува променетото лице со статична позадина. Сè додека имаме густи мапи за поместување за x и y насоки, можеме да ги примениме на секаков вид етикета како обележја на лицето, маски за сегментација или спарени слики. Можете да видите примери за зголемување на лицето со геометриска трансформација на сликата подолу. Ако сакате да дознаете повеќе детали, ве поканувам на изворниот код[1].
Сега, можете да го пробате на вашите збирки податоци. Оваа техника за зголемување ќе ви помогне да го подобрите моделот што ќе го направи стабилен за влезните варијации. Во оваа статија научивме за 3D геометриска трансформација, но покрај неа има и модификации на текстурата кои се дополнителни подобрувања на сетови на податоци за лица, кои во следната статија.
Референци
[1] GitHub код.
[2] FLAME модел.