Haarfunktioner är digitala bildfunktioner som används vid mönsterigenkänning . De har sitt namn att tacka för en intuitiv likhet med Haar wavelets . Haar-funktioner användes i den första ansiktsdetektorn i realtid.
Historiskt sett har algoritmer som bara fungerar med intensiteten hos en bild (t.ex. RGB-värdet i varje pixel) en hög beräkningskomplexitet. I arbetet av Papageorgiou [1] övervägdes arbete med en uppsättning funktioner baserade på Haar wavelets . Viola och Jones [2] anpassade idén om att använda Haar wavelets och utvecklade vad som kallades Haar-funktioner. Haarskylten består av angränsande rektangulära områden. De placeras på bilden, sedan summeras pixelintensiteterna i regionerna, varefter skillnaden mellan summorna beräknas. Denna skillnad kommer att vara värdet av en viss funktion, en viss storlek, placerad på ett visst sätt på bilden.
Tänk till exempel på en databas med mänskliga ansikten. Gemensamt för alla bilder är att området runt ögonen är mörkare än området runt kinderna. Därför är en gemensam egenskap hos Haar för ansikten 2 intilliggande rektangulära regioner som ligger på ögonen och kinderna.
Under detekteringssteget i Viola-Jones-metoden rör sig ett fönster med en fast storlek över bilden, och för varje område av bilden som fönstret passerar över beräknas Haar-tecknet. Närvaron eller frånvaron av ett objekt i fönstret bestäms av skillnaden mellan funktionsvärdet och inlärningströskeln. Eftersom Haar-funktionerna inte är särskilt lämpade för inlärning eller klassificering (kvaliteten är något högre än den för ett slumpmässigt normalfördelat värde ) behövs ett större antal funktioner för att beskriva ett objekt med tillräcklig noggrannhet. Därför, i Viola-Jones-metoden, organiseras Haar-funktionerna i en kaskadklassificerare.
Nyckelfunktionen hos Haar-skyltarna är den högsta hastigheten jämfört med andra skyltar. När du använder den integrerade representationen av bilden kan Haar-funktioner beräknas i konstant tid (cirka 60 processorinstruktioner per funktion från två regioner).
Den enklaste rektangulära Haar-funktionen kan definieras som skillnaden mellan summan av pixlarna för två angränsande områden inuti en rektangel som kan uppta olika positioner och skalor i bilden. Denna typ av funktioner kallas 2-rektangulära. Viola och Jones identifierade också 3-rektangulära och 4-rektangulära egenskaper. Varje funktion kan indikera närvaron (eller frånvaron) av en viss bildegenskap, såsom kanter eller texturförändringar. Till exempel kan en 2-rektangulär funktion visa var gränsen mellan mörka och ljusa områden går.
Linhart och Maid [3] introducerade idén med sneda (45 grader) Haar-funktioner. Detta gjordes för att öka dimensionen av funktionsutrymmet. Metoden visade sig vara framgångsrik och några sneda skyltar kunde bättre beskriva föremålet. Till exempel kan en 2-rektangulär sned Haar-skylt visa närvaron av en 45 graders lutande kant.
Messom och Barzak [4] utökade Haars begrepp om sneda drag. Även om idén är matematiskt korrekt finns det i praktiken problem när man använder funktioner från olika vinklar. För att påskynda beräkningarna använder detektorn lågupplösta bilder, vilket leder till ett avrundningsfel. Baserat på detta är sneda Haar-tecken inte vanliga.