Loading

Alison's New App is now available on iOS and Android! Download Now

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Passando dal precedente set di lezioni, che vi ha introdotto le basi di base dell'elaborazione delle immagini, passeremo ora al segmento successivo, ovvero sulla comprensione e l'estrazione di funzioni di livello superiore dalle immagini. Inizieremo così con la nostra prima lezione su Edge Detection. L'idea di rilevare i bordi su un'immagine riguarda la mappatura dell'immagine da una matrice 2D a una serie di linee o curve sull'immagine. In un certo senso, queste curve o linee o ciò che chiamiamo bordi sono una rappresentazione più compatta dell'immagine. Perché questa rappresentazione è importante? Se vedete queste tre immagini e vi ho fatto la domanda, quali sono gli oggetti nell'immagine? Riesci a indovinare? Non è difficile per lei dire, la prima immagine è una di una persona, l'immagine di mezzo sembra una di un cavallo e l'ultima immagine sembra uno di un aereo. Questo è un po' sorprendente perché se si dà un'immagine del genere come input all'algoritmo di machine learning o a una rete neurale, non sarà banale per il modello poter rendere queste classificazioni il modo in cui io e te possiamo fare. Quindi il sistema visivo umano, i bordi sono estremamente importanti per completare il quadro e per l'intero processo di percezione. Infatti, se si vedono queste immagini, anche se i bordi vengono portati via in qualche misura, possiamo riempire con il resto dei bordi e comunque essere in grado di dire quali oggetti sono presenti in queste immagini. Ecco come i bordi importanti sono in un'immagine. Allora facciamo la domanda. Ci siamo introdotti ad alcuni concetti con i bordi, siamo stati introdotti alla convoluzione, abbiamo capito la rappresentazione di frequenza delle immagini in qualche misura, il campionamento e l'interpolazione. Quindi usando le idee che avete studiato finora, come andreste a trovare i bordi nelle immagini? (2.50) L'idea chiave è quella di cercare sfumature forti e poi fare una specie di post - elaborazione per ottenere spigoli stabili. Allora perché vediamo sfumature? Cerchiamo di capire che sopra le prossime slide. (3.09) In primo luogo, prima di cercare matematicamente di capire come stiamo andando a rilevare i bordi nelle immagini, cerchiamo di capire come si formano i bordi in primo luogo. Ci possono essere molti fattori. Data un'immagine come quella che vedete sullo schermo in questo momento, i bordi sono fondamentalmente una qualche forma di discontinuità nell'immagine. La discontinuità potrebbe essere a causa delle normalità di superficie. Per esempio, si vede su questo polo particolare che è cilindrico e mentre si va intorno al cilindrico, la direzione normale della superficie sta cambiando e oltre un punto, si trova una discontinuità nella direzione normale della superficie, che appare come un bordo per l'occhio umano. Un'altra opzione è semplicemente un colore o una discontinuità di aspetto. Come potete vedere qui, che vi è qualche discontinuità nel colore o nell'aspetto superficiale, magari mentre si tratta di un'immagine in bianco e nero, potete immaginare un blocco rosso sotto il quale c'è un blocco blu. Solo che la differenza di colore porterà a una discontinuità. Ci potrebbero essere anche discontinuità a base di profondità. Se avete osservato questa torre sulla schiena, potete vedere che quella è una porzione qui, che si sta sporgendo dall'edificio e poi ovviamente, l'edificio è dietro la protesi. Quindi quel gap di profondità tra questi due manufatti nella tua immagine porta anche una discontinuità e da qui un bordo. E infine, si ha una discontinuità di illuminazione, che è causata da cambiamenti di luce, come ombre. Per esempio, vedrete qui, che c'è un piccolo manufatto che dove una porzione di ombra cade su quella regione e si vede un bordo su quel luogo particolare. Questi non sono l'unico tipo di discontinuità che può causare spigoli, ma questi sono esempi di discontinuità che possono causare spigoli. (5.07) Se si guarda più localmente a queste regioni, si vede che dove non c'è margine, l'immagine sembra abbastanza liscia, ma dove c'è un bordo, c'è una sorta di transizione, intendo nei pixel dell'immagine in una determinata direzione, i bordi possono essere in diverse direzioni in un'immagine, e si vede che c'è una direzione particolare in cui, c'è un cambiamento di intensità. Oppure se hai preso un'altra regione dell'immagine, puoi vedere che in quella regione ci sono molti tipi di spigoli in diversi orientamenti. Quindi idealmente vogliamo essere in grado di rilevare tutti questi in un'immagine. (5.47) Perché i bordi sono importanti? Abbiamo parlato di questo qualche slide indietro, dove abbiamo detto che è molto importante come il sistema visivo umano percepisca l'ambiente che ci circonda. Ma anche se non il sistema visivo umano, se si voleva gestire un sistema di intelligenza macchina. Abbiamo parlato di questo qualche slide fa che i bordi sono importanti per il sistema visivo umano, ma non è solo il sistema visivo umano, i bordi sono importanti anche per un sistema di intelligenza basato sulla macchina. Dove si usano i bordi? È possibile utilizzare i bordi per raggruppare pixel negli oggetti o nelle parti. Ad esempio, i bordi ti dicono che tutta la regione all'interno di una determinata area appartiene ad un oggetto comune. Può anche aiutarci a tracciare caratteristiche importanti attraverso le immagini. Può essere cupe per la forma 3D o potrebbe anche aiutarti a fare solo editing di immagini interattive. Che cosa intendiamo? Diciamo che volevo prendere questo edificio. Questo è un edificio del campus IIT Hyderabad. Diciamo che voglio prendere questo edificio e voglio mettere la neve sullo sfondo o sulle montagne sullo sfondo. Quindi idealmente ho bisogno di informazioni edge per isolare l'edificio dallo sfondo e poi essere in grado di modificare di conseguenza lo sfondo, quindi i bordi sono importanti per quei tipi di applicazioni. (7.14) Così abbiamo parlato di immagini rappresentate in più modi. Le immagini possono essere guarite come matrici, le immagini possono anche essere esaminate come funzioni. Così quando si parla di immagini come funzioni, i bordi sembrano delle scogliere molto ripide. Che cosa significa? Quindi se hai avuto un'immagine come quello che vedi a sinistra. Il nostro lavoro ora è scoprire dove esistono queste ripide scogliere nelle immagini. (7.46) Così che ci porta ai derivati (sfumature), perché se avete bisogno di trovare scogliere ripide, questo significa in una piccolissima unità di cambiamento nei pixel, che va da un pixel al prossimo pixel o a due pixel di distanza, c'è un enorme cambiamento di intensità. Quindi in un certo senso, stiamo dicendo che uno spigolo è un luogo di rapido cambiamento della funzione di intensità dell'immagine, oppure può essere efficacemente misurato utilizzando un derivato o un gradimento. Come? Vediamo un esempio. Quindi se questa è stata la tua immagine, quindi dove hai una patch bianca seguita da una patch nera, poi di nuovo una patch bianca. Quindi se hai preso una sola riga particolare di questa immagine, anche in quella fila, hai lo stesso modello un set di pixel bianchi poi una serie di pixel neri e poi una serie di pixel bianchi, la tua funzione di intensità assomiglia a una cosa del genere. Ricordate ancora, che il bianco ha intensità più alta, il nero ha intensità più bassa, quindi la vostra immagine assomiglia davvero a qualcosa del genere nello spazio di intensità dell'immagine, quella particolare fila di pixel che è indicato in rosso sul lato sinistro. Quindi se hai preso un derivato di tutti questi valori nella funzione di intensità, ecco come sembrerebbe il derivato, la terza colonna. C'è quindi un punto iniziale in cui si ha un derivato negativo perché il valore è in calo e poi c'è un punto successivo dove si ha un pari di grandezza del gradimento, ma nella direzione opposta, perché l'intensità aumenta in quel determinato punto. Ecco allora solo un altro esempio della stessa ambientazione, ma qui vi stiamo anche mostrando come il secondo derivato guarda in questa particolare impostazione. Così il secondo derivato ricorda, sembra che finché il primo gradiente continua a salire, sale fino a un certo punto poi cade e poi torna per la seconda metà del gradimento, il secondo grafico dei derivati sembrerebbe una cosa del genere. Vedremo più esempi del secondo derivato sulle prossime slide. (10.01) Ora la nostra sfida riguarda come si ottengono questi derivati? Quindi comprendiamo che i bordi sono importanti e che i bordi possono essere ottenuti utilizzando derivati o sfumature. Ma la domanda che abbiamo ora è come si realizza questo usando la convoluzione? Per farlo guardiamo ai primi principi definizione di un derivato. Quindi se hai x, y direzioni tra i pixel in un'immagine, e consideriamo la funzione di intensità di un'immagine come f (x, y) Così in d (f (x, y)) /d (x), stiamo cercando di misurare il derivato rispetto a x .. Per i dati discreti si definirà d (f (x, y)) /d (x) da essere (f (x + 1, y) - f (x, y)) / 1, questa sarebbe la tua definizione discreta per il derivato. (11.08) Ora guardando a queste definizioni, cosa pensi che sarebbe la maschera associata o il kernel o il filtro per garantire che si ottenga questo particolare gradimento? Riesci a indovinare quale sarebbe il filtro? (11.23) Una risposta semplice è ciò che si vede a destra. È esattamente ciò che è questa definizione. Dice semplicemente che se ci si trova ad un pixel particolare (x, y) si può dire f (x + 1, y) - f (x, y), inserendo questo pixel a questo valore del filtro a quel determinato pixel, questo è l'output che otterreste applicando questo filtro in quel determinato percorso. Allo stesso modo si può ottenere un effetto molto simile utilizzando la scansione di un filtro verticale, che vi darà il gradimento lungo la direzione y. È questo l'unico modo per ottenere il gradimento? Non necessariamente. Ci sono altri modi di definire anche il gradimento. Ricordate qui, sulla slide precedente, quando abbiamo detto che per i dati discreti otteniamo il gradimento usando questa particolare formula, ricordate che si tratta di una sorta di approssimazione. Potrebbero esserci diversi altri modi in cui si potrebbe approssimare il gradimento. Ad esempio, si può dire che un gradiente può anche essere scritto come (f (x + 1, y) + f (x - 1, y) - 2 f (x, y)) / 2, cioè anche approssimazione valida del gradimento. Ci sono quindi molteplici modi di definire il gradimento, a seconda di quanto lontano si voglia percorrere nel proprio quartiere intorno al punto in cui si sta completando il gradimento. (12.53) Ecco un altro esempio di filtro da 3 x 3. Vi lascio pensare attentamente a quello che sarebbe l'espansione derivata qui, non è troppo diSufficiente. Ricordate ancora, se questo fosse un f (x, y) ricordate che questo sarà f (x + 1, y), questo sarà f (x-1, y) e questo sarà f (x, y + 1) e così via. È possibile definire le posizioni di coordinate per ciascuno di quei valori, e si legge semplicemente ora di scrivere cosa questo significherebbe come un derivato. In questo caso, è possibile vedere il derivato viene definito come 2f (x-1, y) + f (x-1, y-1). Questo valore arriva qui, questo valore arriva qui più f (x-1, y + 1) che corrisponde a questo. Poi avrete un meno per tutte queste località qui e finalmente si dividono per il numero complessivo di località, che in questo caso saranno 9 per ottenere il vostro gradimento finale. Questo tipo di filtro è chiamato filtro Sobel Edge e ancora una volta, questa è un'altra approssimazione del gradimento per ottenere i bordi in questa impostazione. Ma chiaramente, vedete qui, che siete in questo caso, cercando di scoprire il gradimento lungo solo la direzione verticale. Ricordate che state cercando di dare alcuni valori a sinistra e a destra, il che significa che troverete in realtà quali sono i bordi in direzione verticale. Quindi quello che vedete sul lato destro è un valore assoluto del gradimento e quindi non guardiamo al negativo o positivo perché non ci importa. Ovunque ci sia un cambiamento affilato è un bordo, che l'intensità scenda o cade, è ancora un bordo. Quindi davvero non importa a noi come a quello che è il segno del gradimento e la grandezza del gradimento del valore assoluto è ciò che conta per noi qui. (15.20) Ecco il filtro omaggio per trovare i bordi orizzontali per il filtro Sobel. Sono questi gli unici due filtri, non necessariamente. (15.31) Così ci sono più filtri, c'è qualcosa chiamato il filtro Prewitt, c'è qualcosa che si chiama Sobel, che abbiamo appena visto. C'è anche il filtro Roberts, che trova i bordi in diagonali. Così chiaramente è possibile consegnare diversi tipi di filtri per poter trovare i bordi in diverse direzioni. E evidente domanda di follow-up per noi ora qui è, allora come troviamo i bordi in qualsiasi direzione? Dobbiamo convolgere con molti filtri diversi per poter trovare bordi in diverse direzioni? Vediamo che in un attimo. (16.08) Prima di arrivare ci vedremo un filtro dei bordi completi mentre andiamo avanti. Definiamo formalmente alcune quantità che useremo per il resto di questa lezione. Ricorda che il gradimento di un grado di immagine (f), dove f è l'immagine, è dato da una tupla: (d (f) / d (x), d (f) / d (y)). (16.32) E il gradiente punta sempre nella direzione dell'intensità mutevole più rapida. Così ad esempio, se hai il gradiente di essere (d (f) / d (x), 0), questo ti dice che non c'è cambiamento nella direzione y e tutto il cambiamento è solo lungo la direzione x, che il bordo nell'immagine sembrerebbe una cosa del genere. Se hai avuto il gradiente di essere (0, d (f) / d (y)), allora non c'è cambiamento lungo la direzione x e il bordo è solo lungo la direzione verticale ed è così che un tale bordo sembrerà un'immagine. D'altra parte, se si aggiunge un bordo in una direzione casuale completamente diversa, come una direzione diagonale, non allineata lungo l'asse verticale o l'asse orizzontale, allora si avrebbe una pendenza, che è semplicemente data da (d (f) / d (x), d (f) / d (y)). In entrambe le direzioni c'è un gradiente non zero, che ti dà un bordo in una direzione diversa. (17.36) Come si trova l'orientamento del bordo? Abbiamo detto che i bordi hanno orientamenti diversi. I tuoi principi da semplice calculus, l'orientamento del gradimento è semplicemente dato dall'abbronzatura inversa di gradimento lungo y diviso per sfumatura lungo x, questi sono risultati di calculus a scuola superiore. (17.55) E infine la forza del bordo è data dalla grandezza del gradimento. Ecco che è ((d (f) / d (x)) ^ 2, (d (f) / d (y) ^ 2) sotto radice vi dà la grandezza del bordo in quella particolare posizione. Quindi quanto è forte il bordo, è ciò che questo ti dà in quel determinato luogo. (18.17) Facciamo di nuovo questo esempio di fila unica in un'immagine. Quindi suppamiamo ora che l'immagine sia verosimile cambiata. Abbiamo una patch nera seguita da una patch bianca, questo è quello che abbiamo qui. E ora facciamo una fila particolare, ci prendiamo una sola fila, solo per semplicità di comprensione. Si poteva prendere l'immagine completa solo che le figure a destra avrebbero guardato più complesso. Quindi facciamo solo una riga particolare sull'immagine. Chiaramente, anche in quella fila particolare, ci sono la prima serie di pixel che sono neri poi la prossima serie di pixel che sono bianchi. Piuttosto in quella fila particolare, la funzione di intensità dell'immagine sembrerebbe una cosa del genere, prima serie di pixel che sono neri il prossimo set di pixel, che sono bianchi. Se hai preso il gradimento di una tale funzione, sappiamo che il derivato sembrerebbe una cosa del genere. Il derivato è piatto in tutte queste località e tutte queste località e c'è un picco proprio in mezzo quando c'è un cambiamento di intensità. Quindi se ti ho fatto la domanda, dov' è il bordo? È semplice, si dice semplicemente ovunque il gradiente abbia un alto valore, cioè dove il bordo è presente nell'immagine e chiaramente lei avrebbe avuto ragione in questa particolare impostazione. Purtroppo le immagini del mondo reale non vengono così ben lucidate come quello che si vede in questa particolare impostazione. (19.43) Le immagini del mondo reale hanno un sacco di manufatti, soprattutto manufatti rumorosi. Quindi prendiamo la stessa immagine, ma questa volta l'immagine ha molto rumore. Possiamo vederlo da vicino. C'è un sacco di rumore di sale e pepe in questa particolare immagine. Ora, se cerchiamo di tracciare l'immagine, l'intensità, la tua intensità di immagine sembrerebbe una cosa del genere, dove hai un sacco di rumore e in mezzo c'è un grande cambiamento di intensità, che è dove si trova il tuo bordo e poi hai di nuovo un sacco di rumore nella regione bianca. Se ora avete preso il gradimento, osserverete che il gradimento sembra una cosa del genere. Ricordate che il gradiente sta misurando un cambiamento infinitesimale. Così in tutte queste regioni, il cambiamento infinitesimale sarebbe rappresentato dal gradiente come questo. E anche qui, se prendesti piccoli passi piccoli, il gradimento c'è più o meno lo stesso tipo di sfumatura come nelle regioni rumorose della stessa immagine. Ora, come troveresti il bordo? Ricordate che è così che si guardano le immagini del mondo reale, cosa ne pensate? Quindi se hai semplicemente preso il gradiente, ti confondono perché anche le parti rumorose dell'immagine sembreranno che siano anche un bordo, ma chiaramente dall'occhio umano, si vede che il bordo è proprio in mezzo. Allora come si risolva questo problema? La risposta è qualcosa che avete già visto. Prima sfatare l'immagine e poi fare il rilevamento del bordo. (21.11) Vediamo che come esempio concreto. Quindi quello che facciamo ora siamo lisci. Si vedono già cose come il filtro della scatola, il filtro gaussiano così via e così via. Useremo un filtro gaussiano, questa è la fila originale di quell' immagine che abbiamo appena visto sulla slide precedente. Prendete il filtro gaussiano, convolete la riga e l'immagine originali o l'immagine con il filtro gaussiano, una volta ricordate che la fila in un'immagine è un segnale unidimensionale. Quindi stiamo usando qui un filtro gaussiano dimensionale. Se lo si fa sull'immagine, questo sarebbe un filtro gaussiano bidimensionale, ricordate che abbiamo già visto come appare un filtro gaussiano bidimensionale. L'abbiamo visto come 4, 2, 2, 2, 1 così via e così via, giusto, lo abbiamo visto come un filtro gaussiano prima. Così in questo caso su questa immagine ci sarà un filtro gaussiano 1D gaussiano unidimensionale. Così convoltiamo l'immagine con quel filtro gaussiano unidimensionale e l'output sarebbe allora qualcosa del genere. Quindi l'intera fila nell'immagine è sfumata, tutto il rumore diventa piatto e anche il bordo si sfumava leggermente, ricordate che era un bordo affilato e si è un po' sfumato e questo è quello che i filtri gaussiani raggiungono. Mentre rimuovono il rumore fanno sfumare anche le porzioni dell'immagine, ecco cosa succederebbe qui per quella regione media dove si trova il bordo. E poi si ha anche il resto della regione per essere piatto. Ora su questa immagine sfumata gaussiana è possibile eseguire un rilevatore di bordo percorrendo una pendenza e troverete che un bordo può essere trovato in mezzo. C'è di più di quello che abbiamo appena visto. (22.49) Ricordiamo ancora, che abbiamo detto che la convoluzione ha delle simpatiche proprietà matematiche che la correlazione non soddisfa e noi useremo uno di loro per rendere la nostra vita più facile. Allora ricordate che la convoluzione è associativa. Quindi se si assume una funzione di gradimento di f convoluzione g, e se vi ho detto che questo gradimento può anche essere implementato come una convoluzione, che abbiamo appena visto un paio di diaposali indietro con quei filtri Sobel e altri filtri. Quindi a causa della proprietà associativa possiamo scriverlo come f convoluzione con gradimento di g o sfumatura di f convoluzione g, tutti sono equivalenti a causa di proprietà di convoluzione. Il che significa che quello che posso fare ora è prendere il filtro gaussiano, calcolare il gradiente del filtro gaussiano pre - calcolarlo e conservarlo con me. Così sapete come appare un filtro gaussiano, sapete come appare un filtro derivato, avete visto esempi di entrambi finora. Ora convolate i due e otterrete un filtro di output. Conservatelo con voi e quel filtro sembrerà una cosa del genere. Questo è il derivato del filtro gaussiano. Dato che questo è il derivato del filtro gaussiano, il che significa che vi siete già occupati, supponiamo che g fosse il filtro gaussiano e f fosse la funzione originale. Quindi si sta elaborando automaticamente, pre - computing da d / dx (g) e memorizzandolo come segnale e ora, tutto quello che devi fare è convolere direttamente questa funzione sul segnale originale e colpirete direttamente l'output per riuscire a trovare il bordo. Così ora diventa un processo passo un passo piuttosto che un processo a due passi, che può salvare molto tempo e sforzo per te per calcolare il bordo su un'immagine rumorosa. E ricordate, questo è stato possibile a causa della proprietà associativa della convoluzione, che potremmo fare leva per rendere le cose più facili. (24:52) E evidente domanda di follow-up è quanto riguarda il secondo derivato? Abbiamo insistito che le sfumature siano buoni stimatori di spigoli. E il secondo derivato? Si può usare il secondo derivato anche per calcolare i bordi ed è così che sembrerebbe. Quindi se aggiungete il vostro segnale originale f di nuovo qui così il secondo derivato di Gaussiano, quindi ricordate nella slide precedente, abbiamo preso il primo derivato di Gaussiano qui. Quindi se hai preso il secondo derivato di Gaussiano, ecco come guarderà. Il secondo derivato di Gaussiano si chiama Laplaciano di Gaussiano, lo vedremo più in dettaglio molto presto. Così anche il Laplaciano di Gaussiano può essere usato per convolvere direttamente sull'immagine e ora si ottiene un output qualcosa del genere. E questa volta il bordo si trova qui. Ricordate, nel caso precedente, quando abbiamo usato il gradiente del filtro gaussiano, abbiamo scoperto che il bordo era da qualche parte, edge stava sbirciando qui alle mille letture, c'è dove il bordo si stava sbirciando. Ma se si applica il Laplaciano di Gaussiano, si scopre che a mille, in realtà si ottiene il valore da zero. Quindi, il che significa che se usi il Laplaciano di Gaussiano, quindi una domanda ovvia che potrebbe esserci nella tua mente è come sarebbe il filtro? Sappiamo tutti come la Gaussiana sembra 4, 2, 2, 2, 2, 1, 1, almeno una ricorrenza di un filtro gaussiano, puoi avere quell' istanza se ti piace, a seconda delle dimensioni o a seconda della tua ampiezza del gaussiano. E abbiamo visto che la derivata del gaussiano sappiamo fare. Possiamo prendere un filtro Sobel, possiamo prendere filtro gaussiano, possiamo convolerli. Come si fa per Laplacian di Gaussiano? Ne parleremo in un po' di tempo, in realtà avremo un tangibile tre incrociati tre Laplacchi di filtro gaussiano e mostreremo come si ottiene in poche slide da oggi. Così ora se si applica il Laplaciano del filtro gaussiano, scopriamo che i bordi ora diventano zero attraversamenti. Quando abbiamo preso la pianura prima derivata, i bordi sono stati trovati dove il gradiente era alto, ma se si va al secondo derivato del gaussiano, si trovano spigoli dove si ha una traversata zero. Quindi il che significa che c'è qualche valore che è positivo e si sta transitando ad un valore negativo e la traversata zero è dove un bordo può essere localizzato. Ecco cosa parla il Laplaciano dei filtri di Gaussiano qui. (27:16) Ecco quindi un'illustrazione visiva di questi diversi filtri. Questo è il tuo filtro gaussiano, questo è il tuo derivato del filtro gaussiano. Spero che tu capisca questo anche geometricamente che se si differenziasse il gaussiano, questo è quello che otterreste in termini di derivata di Gaussiano. E si può anche lavorare fuori e controllare che se si differenzia questo, si otterrebbe il Laplaciano di Gaussiano, che assomiglia alquanto a questo. Il Laplaciano di Gaussiano è scritto come o l'operatore Laplaciano in generale è scritto come Nabla square f. Quindi se ora mettete la derivata del Gaussiano, ricordate ancora, il derivato può essere in due direzioni. Si può avere la derivata del Gaussiano lungo la direzione x, derivata del gaussiano lungo la direzione y, quindi il derivato di Gaussiano lungo la direzione x sembrerebbe questo, spero che si possa collegare la superficie alla superficie. Rosso significa alto valore, blu significa basso valore, è semplicemente una mappa di superficie o una mappa di calore. E il derivato di Gaussiano lungo la direzione y sembrerebbe una cosa del genere. Oppure da una prospettiva di immagine, ecco come sarebbe un derivato di Gaussiano lungo una direzione e questo è quanto sarebbe derivato da Gaussiano lungo l'altra direzione. Quindi ora, se vi faccio la domanda, quale di questi trova bordi orizzontali e quale di questi trova spigoli verticali? Che ne pensi? Se non avete già la risposta, la seconda immagine trova i bordi orizzontali e la prima immagine trova i bordi verticali, è in realtà abbastanza evidente quando si vedono le immagini stesse. La seconda immagine trova spigoli qui, che separano questa regione bianca dalla regione nera e la prima immagine trova spigoli come questo, separando la regione bianca dalla regione nera. Così uno di loro trova l'asse orizzontale, uno di loro trova l'asse verticale. Un takeaway che avete anche qui è che l'immagine o il filtro, ricordate che questo è solo il filtro che utilizziate. Queste immagini che avete visto in ultima fila sono semplicemente maschere o mandorle. Così in una certa misura come il filtro visivamente ti guarda è quello che è il manufatto che in realtà prova a cercare nell'immagine così che è quello che vediamo qui anche su queste immagini. (29:57) Quindi se ora si compone di sfumature, si può vedere che è possibile calcolare il derivato x del gaussiano, si può vedere che è possibile calcolare il derivato y della Gaussiana, ora si può semplicemente prendere la grandezza del gradiente, che è radice di x quadrato quadrato plus y quadrato e troverete che la grandezza gradiente vi dà una serie di spigoli qualcosa del genere. C'è un'immagine molto popolare chiamata l'immagine Lina, che la gente usa per dare esempi di elaborazione delle immagini. Questo ti dà un primo livello di spigoli, ma è tutto? Non necessariamente così. (30:28) Ora diamo un'occhiata più da vicino a uno di questi bordi sull'immagine che abbiamo appena visto sulla slide precedente. Quindi in realtà assomiglia alquanto a questo. Quindi ora potrei porre la domanda, dove è davvero il bordo. Sembrano esserci così tanti pixel che qui sono bianchi, che un bordo potrebbe essere ovunque su quei pixel. Ma chiaramente quando diciamo che vogliamo un bordo, ci aspettiamo che certe proprietà siano rispettate. Abbiamo una certa aspettativa di quello che i bordi dovrebbero sembrare. Che aspetto hanno? Cerchiamo prima di definirli. (31:04) Quindi le proprietà di un buon rivelatore di bordo sono, dovrebbe innanzitutto fare una buona rilevazione. Che cosa significa? Dovrebbe trovare tutti i bordi reali nell'immagine e ignorare il rumore o altri manufatti. Come se ci fosse un bordo nell'immagine, dovrebbe rilevarlo. Ecco allora che la buona rilevazione è ciò che cerchiamo dal metodo per il rilevamento dei margini. Ricordate che se non avete una buona rilevazione, guarderete tutti i punti di rumore nell'immagine e poi continuate a rilevarli come spigoli, non volete farlo, questa è una proprietà che volete. Seconda cosa che si desidera è la buona localizzazione, il che significa che se il bordo è in questa posizione, si desidera anche rilevare il bordo nella stessa posizione. Se si è per rilevare i bordi nelle vicinanze nel quartiere e non esattamente dove si trova il bordo, che si chiamerà scarsa localizzazione, ma ciò che vogliamo è una buona localizzazione. Ovunque il bordo fosse esattamente in quel pixel è dove si vuole rilevare un bordo. Non si desidera andare a due pixel a sinistra o due pixel a destra, che sarebbe una scarsa localizzazione. E infine, vogliamo solo una risposta unica. Vogliamo solo restituire un punto per un vero punto di bordo e non un'intera regione. Ancora una volta, se questo era il vero bordo, questo tipo di rilevamento, che si diffonde non è molto utile e vogliamo essere esattamente in questa località per un buon metodo di rilevamento del bordo. Ma finora sappiamo usare solo il gradimento per rilevare i bordi. Come si risolva il problema come la buona localizzazione, la risposta unica, così via e così via ed è quello che vedremo ora. (32:48) Quindi quali sono le cose che possiamo fare per garantire una risposta unica in una determinata regione è fare quello che è noto come Non Maxima Suppression e l'idea è molto letterale, è la soppressione non massima. Quindi se qualcosa non è un massimo sopprimerlo. Come si fa? Se avessi un bordo come questo. Suppamiamo che ci fosse un tipo circolare di un bordo in un'immagine, ecco come sembrava il bordo. Così chiaramente potete vedere qui che ogni pixel bianco verrebbe rilevato come un bordo, come abbiamo appena visto, tutti potrebbero avere risposte elevate a seconda di quale quartiere si usa per calcolare il vostro gradimento. Quindi potremmo finire per avere molti pixel corrispondenti al bordo, che non si desidera. Vuoi che sia isolato. Che cosa fai? Si prende un pixel particolare, si calcola l'orientamento del gradimento a quel pixel particolare, come si calcola l'orientamento del gradimento? Abbiamo appena visto qualche slide indietro, abbronziata inversamente di sfumatura lungo la direzione y per sfumatura lungo x direzione, che vi dà l'orientamento del gradimento a quel particolare pixel. Così in questo caso particolare, l'orientamento del gradimento sarebbe così. Ricordare l'orientamento del gradimento sarebbe sempre normale alla superficie, ecco come sarebbe l'orientamento del gradimento. Quindi, il che significa che se siete a un pixel q e l'orientamento del gradimento è lungo una direzione particolare, allora quello che fate è andare lungo la direzione del gradimento e poi provare a vedere se questo pixel è un massimo in quella direzione o meno. Ad esempio, se si va lungo la direzione del gradimento in questa immagine, si desidera conservare solo il pixel che ha il gradimento più alto in valore e fare qualsiasi altro pixel che non sia il massimo in zero. Quindi basta controllare se il pixel è un massimo locale lungo la direzione del gradimento, se è un massimo, conservi il suo valore, il valore di magnitudo che hai ottenuto, se non è un massimo, rende lo zero di magnitudo e non lo tratti come un bordo. Quindi in questo processo, una cosa che potreste dover ricordare è, potreste aver bisogno, quando andate lungo la direzione dell'orientamento gradiente, potreste finire per andare in una località che non è definita sull'immagine. Potrebbe essere tra due pixel. In quei casi, potrebbe essere necessario interpolare, è possibile utilizzare semplice interpolazione lineare o qualsiasi semplice metodo di interpolazione per poter ottenere ciò che il valore del pixel del gradimento è in quella sede e si può quindi continuare a fare più massima soppressione. Ecco quindi un esempio della stessa immagine dopo aver applicato la soppressione non massima.