Viola -Jones objektdetekteringsmetod är en algoritm som låter dig upptäcka objekt i bilder i realtid. Det föreslogs av Paul Viola och Michael Jones 2001. [1] [2] Även om algoritmen kan känna igen objekt i bilder, var ansiktsdetektering huvudmålet när den skapades.
Funktionerna som används av algoritmen är baserade på summeringen av pixlar från rektangulära områden. Funktionerna i sig påminner en del om Haar-funktioner , som också tidigare användes för att söka efter objekt i bilder. [3] Emellertid innehåller funktionerna som föreslagits av Viola och Jones mer än en rektangulär region och är något mer komplexa. Illustrationen till höger visar 4 olika typer av funktioner. Värdet för varje funktion beräknas som summan av pixlarna i de vita rektanglarna, från vilka summan av pixlarna i de svarta områdena subtraheras. Rektangulära funktioner är mer primitiva än ett styrbart filter[ förtydliga ] , och även om de är känsliga för vertikala och horisontella funktioner i bilder, är deras sökresultat grövre. Men när en bild lagras i ett integrerat format ( integrerad bild , varje pixel i bilden innehåller summan av alla pixlar till vänster och ovanför den givna), utförs kontrollen av en rektangulär funktion vid en specifik position konstant tid, vilket är deras fördel jämfört med mer exakta alternativ. Varje rektangulärt område i de använda funktionerna ligger alltid intill en annan rektangel, så beräkningen av en funktion med 2 rektanglar består av 6 åtkomster till den integrerade arrayen, för en funktion med 3 rektanglar - från 8, med 4 rektanglar - från 9.
Funktionsberäkningens höga hastighet kompenserar inte för ett betydande antal olika möjliga funktioner. Till exempel, med en standardfunktionsstorlek på 24×24 pixlar, är 162 tusen [4] olika funktioner möjliga, och deras beräkning kan ta lång tid. Därför använder Viola-Jones-algoritmen en variant av AdaBoost- inlärningsalgoritmen , både för val av funktioner och för att ställa in klassificerare.