Integrerad kanalfunktion

Integral Channel Features ( ICF ), även känd som ChnFtrs , är en metod för objektdetektering i datorseende . Den använder integrerade bilder för att extrahera funktioner som lokala summor, histogram och Haar-liknande funktioner från flera registrerade bildkanaler. Denna metod utnyttjades i hög grad av Dollár et al . i deras arbete för fotgängardetektering , som först beskrevs på BMVC 2009.

Översikt över metoden

  1. Beräkna flera registrerade bildkanaler från en ingångsbild, med hjälp av linjära och icke-linjära transformationer
  2. Extrahera funktioner som summor över rektangulära kanalområden från varje kanal. De funktioner som extraheras från olika kanaler kallas integrerade kanalfunktioner.
  3. Träna AdaBoost- klassificeraren. Dollár et al. använde förstärkningsteknik som ger snabbare inlärning men träning kan göras med någon av de andra tillgängliga metoderna som stöd för vektormaskin .
  4. Slutligen används tränad klassificerare för att upptäcka objekt

Bilder och kanaler

Vanligtvis hänvisar en "kanal" till en viss komponent som definierar pixelvärden i en digital bild . En färgbild är till exempel en sammansättning av tre kanaler (röd, grön och blå). Färgdata för en bild lagras i tre arrayer av värden, så kallade kanaler. Även om denna definition av en "kanal" är allmänt accepterad över olika domäner, finns det en bredare definition inom datorseende , som gör att man kan utnyttja andra funktioner i en bild förutom färginformationen. En sådan definition hänvisar till en kanal som en registrerad karta över originalbilden där utdatapixlarna mappas till indatapixlar genom någon linjär eller icke-transformation . Enligt denna uppfattning om en kanal kan färgkanaler i en bild omdefinieras som utdatabilder som erhålls genom att extrahera en specifik färginformationspunkt från ingångsbilden åt gången. På liknande sätt är en kanal för en gråskaleinmatningsbild helt enkelt lika med en gråskaleinmatningsbild. Den enkla MATLAB-implementeringen nedan visar hur färgkanaler och gråskalekanaler kan extraheras från en ingångsbild.

   




    
    
    

 I  =  imread  (  'I_RGB.png' )  ;  % input färgbild  % Output_image = color_channel(I),  % där färgkanalen kan vara röd, grön eller blå. De tre utgående bilderna   % extraheras från ingångsbilden enligt följande  red_channel  =  I  (:,  :,  1  );  grön_kanal  =  I  (:,  :,  2  );  blå_kanal  =  I  (:,  :,  3  );  % Utdatabild = gråskala_bild(I). 


   % Notera om ingångsbilden I redan var en gråskalebild, så skulle gråskalekanal  % helt enkelt ha varit lika med ingångsbilden, dvs. gråkanal = I  grey_channel  =  rgb2gray  (  I  ); 

Det är tydligt från exemplen ovan att en kanal kan genereras genom att antingen helt enkelt extrahera specifik information från originalbilden eller genom att manipulera ingångsbilden i någon form för att erhålla den önskade kanalen. Dollár et al . definierat en kanalgenereringsfunktion som Ω, som kan användas för att relatera en kanal (det vill säga en utdatabild) till originalbilden enligt följande.

𝐶 = Ω(𝐼) , där C är kanalen och I är en ingångsbild

Nästa avsnitt diskuterar andra relativt komplexa kanaltyper som nämns i den ursprungliga artikeln av Dollár et al . MATLAB-implementering ges för några av kanalerna.

Olika kanaltyper

  • Färg och gråskala: Som diskuterats ovan kan vi enkelt extrahera färg- och gråskalakanaler från en bild. Observera att färgkanaler kan vara RGB , LUV eller HSV. LUV-färgkanaler har visat sig vara mest informativa bland alla färgrymder.
  • Linjära filter: Detta är en enkel metod för att generera kanaler. Det finns olika linjära filter som gör att vi kan fånga olika aspekter av en bild. Några exempel är Gabor-filter och skillnader mellan Gausser (DoG). Gabor-filter och DoG fångar kantinformation och strukturen på en bild. Nedan finns en exempelkod för implementering av DoG i MATLAB.


     
     
     
   % Utdatabild = DoG(I)  % Gaussskillnad applicerad på ingångsbilden  H1  =  fspecial  (  'gaussian'  ,  25  ,  0,5  );  % skapar en Gauss med signalen 0,5  H2  =  fspecial  (  'gaussisk'  ,  25  ,  3  );  % skapar en Gauss med signal 3  DoG_filter  =  H1  -  H2  ;  % skapa en DoG-  bild  =  dubbel  ( 
    rgb2gray  (  imread  (  'RGB_1.jpg'  )));  DoG_channel  =  conv2  (  bild  ,  DoG_filter  ,  'samma'  );  % konvolverar DoG med ingångsbild 
  • Icke-linjära kanaler: Det finns många icke-linjära kanaler. De mest populära är canny edge detektor och gradient magnitud. Canny ger kantinformation medan gradientstorlek ger kantstyrka.
  • Punktvisa transformationer: Som namnet antyder fungerar punktvisa transformationer på enskilda pixlar. Exemplen inkluderar logaritmisk operator och exponentialoperator. Den logaritmiska operatorn förbättrar pixlar med låg intensitet medan exponentiell gör tvärtom.
  • Gradienthistogram: Det är ett histogram av en bild där bins bestäms av gradientvinkeln. Varje pixel röstar och vikten bestäms av dess gradientstorlek. Histogram of oriented gradients (HOG) deskriptor är en populär deskriptor som utvecklades av Dalal och Triggs.

Observera att dessa kanaler kan användas ensamma eller i kombination med varandra.

Särdragsextraktion

När kanaler väl har erhållits från en ingångsbild kan olika funktioner extraheras från dessa kanaler. Dessa funktioner kallas kanalfunktioner och kan kategoriseras i två huvudtyper:

  • Första ordningens kanalfunktioner: Funktioner extraherade från en enda kanal genom att summera pixlar i fasta rektangulära områden. Dessa betecknas som ƒ ( C ). Observera att det är beräkningsmässigt billigare att extrahera lokala summor från en integrerad bild snarare än från bildpixlar. Faktum är att Dollár, et al, använde integrerade bilder i sitt arbete för att extrahera funktioner.
  • Högre ordningens kanalfunktioner: Funktioner som erhålls genom att kombinera två eller flera första ordningens kanalfunktioner. Till exempel, Haar funktioner.

Implementering av integrerad kanalfunktion

ChnFtrs-metoden låter en poola funktioner som fångar rikedomen från olika kanaler. Dollár et al. baserade sina experimentella resultat på första ordningens funktioner eftersom det inte var mycket mervärde av andra ordningens funktioner. Kanalerna beräknas om på flera skalor för att extrahera en pool av kanalfunktioner som kan representera hela skalutrymmet. Det finns en MATLAB verktygslåda som kan användas som vägledning för att implementera ChnFtrs metod. Vidare har OpenCV en komplett implementering av ChnFtrs.

Prestanda

För att studera prestanda för ChnFtrs, Dollár et al . utvärderade först effektiviteten av olika kanaler när de användes individuellt. Kanalerna som studerades var histogram av orienterade gradienter (HOG), gradienthistogramkanal (Hist), gradientmagnitud (Grad), färgkanaler (RGB, HSV, LUV) och gråskalekanal. Prestandan utvärderades i termer av detekteringshastigheter för fotgängare vid referenspunkten 10 - 4 fppw (falskt positivt per fönster). HOG visade sig vara den mest informativa kanalen jämfört med resten av kanalerna. Detektionsgraden för HOG var 89 %. Vidare, bland färgkanalerna (RGB, HSV och LUV), hade LUV den bästa detektionsgraden på 55,8 %. Gråskalekanalen var minst informativ med detekteringsgraden på endast 30,7 %. Därefter utvärderade de prestandan för olika kanalkombinationer, vilket är deras föreslagna metod. Kombinationen av LUV-, Hist- och Grad-kanaler hade den högsta detekteringsgraden på 91,9 %. Denna kanalkombination användes ytterligare i deras experiment på INRIA- och Caltech-datauppsättningar.

Cirka 30 000 första ordningens funktioner användes för att träna AdaBoost-klassificeraren. ChnFtrs + AdaBoost -detektorn testades på fullständiga bilder från INRIA- och Caltech-datauppsättningar . Prestandan jämfördes med 12 andra detektorer inklusive HOG, som är den mest populära metoden. ChnFtrs överträffade alla utom LatSvm. Detektionsgraden för ChnFtrs var 86 % på INRIA-datauppsättningen och 60 % på en mer utmanande Caltech-datauppsättning.

Ytterligare utveckling

ICF-metoden (ChnFtrs) har utnyttjats flitigt av forskare inom Computer Vision efter att arbetet initialt publicerades av Dollar et al .. Faktum är att den nu används som baslinjedetektor på grund av dess bevisade effektivitet och rimliga prestanda. Flera författare har fått ännu bättre prestanda genom att antingen utöka funktionspoolen på olika sätt eller genom att noggrant välja klassificeraren och träna den med en större datauppsättning. Verk av Zhang et al utnyttjade även integrerade kanalfunktioner i utvecklingen av Informed Haar-detektor för fotgängardetektering. De använde samma kombination av kanaler som Dollár et al. men kunde uppnå cirka 20 % högre prestanda än baslinjen ChnFtrs-metoden. Den extra prestandan berodde på att de gav bättre förkunskaper till sin detektor. Det är också viktigt att notera att de använde informerade Haar-liknande egenskaper, som är andra ordningens funktioner enligt den terminologi som beskrivs i, medan Dollár et al. . demonstrerade sina resultat med enbart första ordningens kanalfunktioner, eftersom deras analys visade att andra ordningens funktioner knappt lade till 0,6 % ökning till deras upptäcktsgrad. Vidare beskriver Benenson et al . kunde öka detekteringshastigheten för baslinje ChnFtrs-metoden genom att undvika behovet av att ändra storlek på ingångsbilden.

ChnFtrs är en mångsidig metod som gör att man kan extrahera funktioner från flera kanaler, vilket gör det möjligt att fånga olika information från en enda ingångsbild. Prestandan hos en basdetektor utvecklad av Dollár et al . har visat sig förbättras genom att lägga till bättre förkunskaper och utbildning med ett större dataset.