Faster R-CNN ir Region Proposal Networks: išsamus gidas objektų atpažinimui
Išsamus gidas apie Faster R-CNN ir Region Proposal Networks (RPN): architektūra, veikimo principai, privalumai, derinimas ir praktiniai taikymai objektų detekcijai.

Objektų atpažinimas kompiuterinėje regoje per pastarąjį dešimtmetį pasiekė įspūdingą lygį. Viena iš technologijų, kuri atvėrė kelią šiuolaikinėms pažangioms sistemoms, yra Faster R-CNN ir jo esminė dalis – Region Proposal Network (RPN). Būtent RPN leido atsikratyti lėtų, rankiniu būdu sukurtų regionų siūlymo metodų ir padarė objektų detekciją realiu laiku daug labiau pasiekiamą.
Šiame straipsnyje išsamiai paaiškinsime, kas yra Region Proposal Networks, kaip jie integruojami į Faster R-CNN architektūrą, kokius privalumus suteikia, bei kokios praktinės įžvalgos svarbios norint sėkmingai taikyti šią technologiją realiuose projektuose.
Kas yra Faster R-CNN?
Faster R-CNN – tai giliojo mokymosi pagrindu veikianti objektų detekcijos architektūra, kuri išplėtojo savo pirmtakus R-CNN ir Fast R-CNN. Pagrindinis jos tikslas – vienu metu nustatyti objektų klases ir tikslias aptikimo ribas (angl. bounding boxes) vaizde.
Klasikinės R-CNN šeimos idėja yra dviejų etapų:
- Regionų pasiūlymas (region proposals) – sugeneruojami galimi regionai, kuriuose greičiausiai yra objektai.
- Klasifikavimas ir regresija – kiekvienam regionui nustatoma klasė ir patikslinamos ribos.
Ankstyvosiose versijose regionai būdavo generuojami naudojant tradicinius algoritmus, tokius kaip Selective Search, kurie yra santykinai lėti ir nepritaikyti GPU akceleracijai. Būtent šią silpną vietą išsprendė Region Proposal Network, integruota į Faster R-CNN.
Kas yra Region Proposal Network (RPN)?
Region Proposal Network – tai neuroninis tinklas, kuris tiesiogiai iš konvoliucinių požymių žemėlapių (angl. feature maps) sugeneruoja kandidatinius regionus, kuriuose gali būti objektai. Kitaip tariant, RPN pakeičia lėtus, atskirai veikiančius algoritmus ir paverčia regionų siūlymą pilnai mokomu ir giliojo mokymosi pagrindu.
Pagrindinė RPN idėja
RPN veikia ant konvoliucinio tinklo išvesties (pvz., ResNet, VGG ar ResNeXt požymių žemėlapių). Kiekviename erdviniame taške šiuose požymių žemėlapiuose RPN:
- tvirtina keletą iniciacinių regionų – vadinamų ankorais (angl. anchors),
- įvertina, ar šie ankrai greičiausiai yra objektai ar fonas,
- patikslina jų ribas, kad geriau atitiktų tikrus objektus.
Tokiu būdu RPN sukuria šimtus ar tūkstančius kandidatinių regionų, kurie vėliau perduodami į detekcijos galvą (angl. detection head) klasifikavimui ir lokalizacijai.
RPN architektūra: žingsnis po žingsnio
Nors RPN koncepcija iš pirmo žvilgsnio atrodo sudėtinga, jos architektūra yra gana kompaktiška ir elegantiška. Žemiau pateikiame struktūrinį RPN veikimo paaiškinimą.
1. Požymių žemėlapių gavimas
Pirmiausia nuotrauka praleidžiama per konvoliucinį tinklą (pvz., backbone architektūrą), kad būtų gauti aukštesnio lygio požymiai. Šie požymiai turi sumažintą erdvinę raišką, tačiau yra turtingi semantine informacija.
RPN neveikia tiesiogiai ant originalaus paveikslėlio, jis dirba ant šių požymių žemėlapių, kas leidžia sumažinti skaičiavimų kiekį ir efektyviai išnaudoti GPU.
2. Slankioji langelė (sliding window)
Ant požymių žemėlapių taikoma nedidelė konvoliucija (dažnai 3x3), kuri veikia kaip slankioji langelė. Ši konvoliucija kiekviename erdviniame taške išgauna tarpinę reprezentaciją, iš kurios vėliau bus prognozuojami ankaro klasifikacijos ir koordinatės.
3. Ankorų generavimas
Kiekviename slankiojo langelio centre sugeneruojami keli ankorai – tai iš anksto apibrėžti regionai skirtingų masto ir kraštinių santykių. Pavyzdžiui, viename taške galima turėti:
- trijų skirtingų dydžių (pvz., mažas, vidutinis, didelis) ankaro dėžutes,
- kelių kraštinių santykių (pvz., 1:1, 1:2, 2:1).
Kiekvienas toks ankaro dėžutės variantas yra potencialus regiono pasiūlymas, kuris bus klasifikuojamas ir koreguojamas.
4. Ankorų klasifikacija
Kiekvienam ankorui RPN atlieka dvejetainę klasifikaciją:
- objektas (angl. object),
- ne objektas / fonas (angl. background).
Ši užduotis dažnai vadinama objectness score – tai tikimybė, kad tam tikras regionas iš viso yra vertas tolesnės analizės. Iš šių tikimybių vėliau atrenkami geriausi regionų pasiūlymai.
5. Ribų regresija (bounding box regression)
Be klasifikacijos, RPN taiko regresijos galvą, kuri koreguoja ankaro ribas, kad jos geriau sutaptų su realiais objektais. Vietoj onetinės ribų prognozės tiesiogiai, tinklas išmoksta numatyti poslinkius ir skalės pokyčius nuo bazinio ankaro iki tikslaus regiono.
Ši kombinacija – dvejetainė klasifikacija + ribų regresija – leidžia kurti tiksliai priderintus regionų pasiūlymus, kurie yra daug artimesni galutiniam rezultatui nei pradiniai ankaro langeliai.
6. Ne maksimalios slopinimas (Non-Maximum Suppression)
RPN iš pradžių sugeneruoja labai daug kandidatinų regionų, tačiau didelė jų dalis būna persidengiantys arba pasikartojantys. Todėl taikomas Non-Maximum Suppression (NMS) algoritmas:
- regionai surikiuojami pagal objectness balą,
- nuosekliai šalinami regionai, smarkiai persidengiantys su jau parinktais stipriausiais pasiūlymais.
Taip lieka tik ribotas skaičius geriausių regionų, kurie yra perduodami į kitą Faster R-CNN etapą.
RPN integracija į Faster R-CNN
Vienas iš didžiausių Faster R-CNN privalumų – bendras bazinio tinklo panaudojimas tiek RPN, tiek detekcijos galvai. Tai reiškia, kad:
- vaizdas tik kartą praleidžiamas per backbone konvoliucinį tinklą,
- tie patys požymių žemėlapiai naudojami ir RPN, ir klasifikavimo / regresijos etapams.
Tokiu būdu sumažinamas skaičiavimų kiekis ir išnaudojamas bendras galinių sluoksnių mokymasis, kuris pagerina bendrą detekcijos kokybę.
RoI Pooling / RoI Align
Regionų pasiūlymus iš RPN reikia transformuoti į fiksuoto dydžio reprezentacijas, kurias gali apdoroti pilnai sujungti sluoksniai arba papildomos konvoliucijos. Tam naudojamas RoI Pooling arba modernesnis RoI Align metodas.
Šie metodai iš požymių žemėlapių išpjauna regioną pagal pasiūlytą ribą ir paverčia jį fiksuoto dydžio (pvz., 7x7) požymių bloku. Tuomet galima atlikti:
- multiklasių klasifikaciją (keleto objektų klasių nustatymas),
- tikslesnę bounding box regresiją kiekvienai klasei.
RPN apmokymas ir praradimo funkcija
RPN yra mokomas supervizuojamu būdu, naudojant anotacijas su objekto ribomis (angl. ground truth boxes). Kiekvienam ankorui nustatoma etiketė ir tikslinis poslinkis.
Teigiamų ir neigiamų ankaraų parinkimas
Apmokymo metu ankrai klasifikuojami kaip teigiami arba neigiami, atsižvelgiant į jų sutapimą su tikromis objekto ribomis (pagal IoU – Intersection over Union):
- Teigiamas ankras – jei IoU su kokio nors objekto riba viršija tam tikrą slenkstį (pvz., 0.7).
- Neigiamas ankras – jei IoU mažesnis nei žemesnis slenkstis (pvz., 0.3).
- Tarpiniai atvejai gali būti ignoruojami mokymo metu, kad būtų sumažintas triukšmas.
Taip užtikrinama, kad RPN mokytųsi aiškiai atskirti objektų regionus nuo fono.
Bendras praradimas (loss)
RPN optimizuoja kombinuotą praradimo funkciją, susidedančią iš dviejų komponentų:
- Klasifikacijos praradimas – dažnai kryžminės entropijos (angl. cross-entropy) nuostolis už objectness prognozes.
- Regresijos praradimas – L1 ar Huber tipo nuostolis, skaičiuojamas tik teigiamiems ankorams, apibrėžiantis ribų poslinkių tikslumą.
Šių dviejų komponentų balansas kontroliuojamas svoriais, kad RPN vienodai gerai išmoktų tiek atskirti objektus nuo fono, tiek tiksliai priderinti ribas.
RPN privalumai lyginant su klasikiniu regionų siūlymu
Palyginus su ankstesniais metodais, tokiais kaip Selective Search, RPN pasiūlė kelis esminius patobulinimus:
1. Greitis ir efektyvumas
Regionų generavimas dabar yra dalinai konvoliucinis ir GPU draugiškas. Kadangi RPN veikia ant jau sugeneruotų požymių žemėlapių, papildomas skaičiavimų kiekis yra santykinai nedidelis, o detekcijos sistemos gali veikti beveik realiu laiku, priklausomai nuo backbone ir implementacijos.
2. Pilnai mokoma sistema
Ankstesni regionų siūlymo algoritmai buvo nemokomi ir atskiri nuo pagrindinės detekcijos sistemos, todėl negalėjo prisitaikyti prie konkrečių duomenų ar užduočių. RPN, būdamas neuroninio tinklo dalimi, yra:
- end-to-end mokomas kartu su detektoriumi,
- pritaikomas specifiniams domenams (pvz., medicininiai vaizdai, palydoviniai vaizdai),
- galintis geriau išnaudoti duomenų struktūrą ir kontekstą.
3. Dalijami požymiai (shared features)
Faster R-CNN architektūroje RPN ir klasifikavimo galva dalijasi tuos pačius konvoliucinius sluoksnius. Tai reiškia, kad:
- sumažėja parametrų kiekis ir atminties sąnaudos,
- mokymasis tampa stabilesnis ir efektyvesnis,
- požymiai tampa geriau pritaikyti abiem užduotims.
Praktiniai aspektai ir derinimas
Nors teorinė RPN idėja yra gana tiesi, praktikoje svarbu tinkamai sukonfigūruoti ir derinti įvairius parametrus, kad detekcijos kokybė ir greitis būtų optimalūs.
Ankorų skaičius, dydžiai ir formos
Ankorų konfigūracija turi didelę įtaką rezultatams. Jei objektai dažnai yra pailgi ar labai maži, reikėtų parinkti atitinkamus masto ir kraštinių santykių derinius. Praktinės gairės:
- pridėti mažesnių ankaro dydžių, jei reikia aptikti smulkius objektus,
- naudoti daugiau pailgų ankarų, jei domenas turi daug horizontalių ar vertikalių objektų (pvz., transporto priemonės, kelio juostos),
- nepersistengti su per dideliu ankarų skaičiumi, nes tai gali sulėtinti mokymą ir inferenciją.
Balansas tarp teigiamų ir neigiamų pavyzdžių
RPN mokyme labai svarbu klasės balansas. Didžioji dalis ankarų atitinka foną, todėl modelis gali tapti šališkas ir prastai aptikti retus objektus. Dažnai naudojamos strategijos:
- naudoti mini-batches su ribotu teigiamų ir neigiamų pavyzdžių santykiu (pvz., 1:1 ar 1:3),
- taikyti hard negative mining, renkant sudėtingesnius neigiamus pavyzdžius.
NMS slenksčio parinkimas
NMS slenkstis tiesiogiai veikia, kiek regionų liks po filtravimo. Aukštas slenkstis leis daugiau persidengiančių regionų, o žemas – agresyviai juos šalins. Reikia rasti balansą tarp:
- detekcijos tikslumo (aukštesnis slenkstis),
- greičio ir nereikalingų dubliavimo mažinimo (žemesnis slenkstis).
Kur Faster R-CNN su RPN naudojamas praktikoje?
Faster R-CNN ir RPN kombinacija plačiai naudojama įvairiose kompiuterinės regos srityse, kur svarbi aukšta detekcijos kokybė:
- Savivaldžiai automobiliai – pėsčiųjų, automobilių, kelio ženklų, šviesoforų ir kitų objektų atpažinimui.
- Medicininiai vaizdai – navikų, pažeidimų ar patologijų regionų detekcijai.
- Saugumo sistemos – žmonių, objektų ar įtartinų elgsenų aptikimui vaizdo srautuose.
- Pramoninė vizija – defektų, anomalijų ar komponentų aptikimui gamybos linijose.
- Palydoviniai ir aeronuotraukų duomenys – pastatų, transporto priemonių ar infrastruktūros elementų detekcijai.
Nors šiandien atsiranda ir naujesnių, dar greitesnių modelių (pvz., YOLO, SSD, DETR), Faster R-CNN su RPN išlieka aukso standartas tais atvejais, kai prioritetas – ne maksimalus greitis, o aukštas tikslumas ir lankstumas.
RPN ribojimai ir evoliucija
Nors RPN buvo revoliucinis žingsnis, jis taip pat turi tam tikrų ribojimų, kurie paskatino tolesnę architektūrų evoliuciją.
Priklausomybė nuo ankarų dizaino
RPN stipriai remiasi ankaro dizainu. Neteisingai parinkti ankaro mastai ir kraštinių santykiai gali reikšmingai sumažinti detekcijos kokybę. Šis trūkumas paskatino ankaro neturinčių (angl. anchor-free) metodų atsiradimą.
Skalės ir konteksto apribojimai
Nors RPN gana gerai tvarkosi su įvairiais objekto dydžiais, labai smulkūs ar itin dideli objektai gali būti sunkiai aptinkami, jei vienos raiškos požymių žemėlapiai nėra pakankami. Dėl to atsirado Feature Pyramid Networks (FPN) ir panašios architektūros, kurios leidžia dirbti su keliomis raiškomis.
Išvados
Region Proposal Networks yra esminė Faster R-CNN dalis, leidžianti efektyviai ir tiksliai generuoti regionų pasiūlymus tiesiogiai iš konvoliucinių požymių žemėlapių. Integruodami RPN į bendrą giliojo mokymosi architektūrą, kūrėjai pasiekė:
- daug didesnį greitį lyginant su tradiciniais regionų siūlymo metodais,
- end-to-end mokymą ir prisitaikymą prie konkrečių duomenų,
- aukštą detekcijos tikslumą įvairiose taikymo srityse.
Supratimas, kaip veikia RPN – nuo ankarų generavimo ir klasifikacijos iki ribų regresijos ir NMS – yra kritiškai svarbus visiems, kas kuria ar optimizuoja objektų detekcijos sistemas. Nors naujesnės architektūros, tokios kaip anchor-free detektoriai ar transformatorių pagrindu sukurti modeliai, palaipsniui perima lyderystę, Faster R-CNN ir RPN išlieka fundamentaliu konceptu, be kurio sunku įsivaizduoti šiuolaikinę kompiuterinę regą.
Jei planuojate diegti objektų detekciją savo projekte, RPN supratimas padės ne tik teisingai pasirinkti architektūrą, bet ir sąmoningai derinti parametrus, užtikrinant geriausią įmanomą balansą tarp tikslumo ir greičio.


