obbiettivo
- Comprendere cos'è il rilevamento dei bordi e come può essere utile nella classificazione delle immagini.
- Scopri come vengono utilizzati i nuclei per identificare i bordi in una determinata immagine.
Nota: Se sei più interessato ad apprendere concetti in un formato audiovisivo, abbiamo questo articolo completo spiegato nel video qui sotto. Se non è così, puoi continuare a leggere.
introduzione
Cominciamo con un esempio. Supponiamo di averti assegnato un compito per classificare un insieme di immagini in Cars, Animali e umani. Ecco tante immagini. Riesci a distinguere tra gli oggetti?? Abbastanza semplice, verità?
sì, possiamo identificare facilmente le auto, animali e umani nelle immagini sopra. Ora consideriamo un'altra serie di immagini come mostrato di seguito.
Puoi ancora classificare facilmente le immagini?? credo di si, possiamo vedere chiaramente che ci sono due auto, due animali e una persona.
Ma, Qual è la differenza tra questi due insiemi di immagini? bene, nel secondo caso eliminiamo il colore, lo sfondo e altri dettagli fini delle immagini. Abbiamo solo i bordi e puoi ancora identificare gli oggetti nell'immagine.
Quindi, per qualsiasi immagine data, se possiamo estrarre solo i bordi e rimuovere il rumore dall'immagine, potremmo ancora classificare l'immagine.
Che cos'è il rilevamento dei bordi??
Come sappiamo, il computer vede le immagini sotto forma di matrici. Come mostrato qui.
In questo caso, possiamo identificare chiaramente i bordi guardando i numeri o i valori dei pixel. Quindi, se osservi attentamente la matrice dei numeri, c'è una differenza significativa tra i valori dei pixel attorno al bordo. L'area nera nell'immagine a sinistra è rappresentata da valori bassi come mostrato nella seconda immagine. Allo stesso modo, l'area bianca è rappresentata dai numeri più grandi.
Il rilevamento dei bordi è una tecnica di elaborazione delle immagini per trovare i confini di un oggetto nell'immagine data.
Quindi, per riassumere, i bordi sono la parte dell'immagine che rappresenta il confine o la forma dell'oggetto nell'immagine. Cosa c'è di più, i valori dei pixel attorno al bordo mostrano una differenza significativa o un cambiamento improvviso nei valori dei pixel.
Sulla base di questo fatto, possiamo identificare quali pixel rappresentano il bordo o quale pixel è sul bordo.
Come estrarre i bordi di un'immagine?
Una volta che abbiamo l'idea dei bordi, ora capiamo come possiamo estrarre i bordi di un'immagine. Diciamo, prendiamo una piccola parte dell'immagine. Possiamo confrontare i valori dei pixel con i pixel circostanti per scoprire se un particolare pixel è sul bordo.
Ad esempio, se prendo il pixel di destinazione 16 e confronto i valori alla sua sinistra e destra. Ecco i valori 10 e 119 rispettivamente. Chiaramente, c'è un cambiamento significativo nei valori dei pixel. Quindi, possiamo dire che il pixel è al limite.
Considerando che, se guardi i pixel nell'immagine seguente. I valori dei pixel a sinistra e a destra del pixel selezionato non hanno una differenza significativa. Perciò, possiamo dire che questo pixel non è al limite.
Ora la domanda è se dobbiamo sederci e confrontare manualmente questi valori per trovare i bordi. Bene, ovviamente no. Per i compiti, possiamo usare un array noto come el kernel ed eseguire la moltiplicazione per elementi.
Diciamo, sulla parte selezionata dell'immagine, Moltiplico tutti i numeri a sinistra con -1, tutti i numeri a destra con 1. Anche tutti i numeri nella riga centrale con 0. In parole povere, Sto cercando di trovare la differenza tra i pixel sinistro e destro. Quando questa differenza è maggiore di una soglia, possiamo concludere che è un vantaggio.
Nel caso sopra, il numero è 31, che non è un gran numero. Perciò, questo pixel non è sul bordo.
Prendiamo un altro caso, qui il pixel evidenziato è il mio obiettivo.
In questo esempio, il risultato è 354, che è significativamente alto. Perciò, possiamo dire che il dato pixel è sul bordo.
Filtro / kernel
Questa matrice, Cosa usiamo per calcolare la differenza?, noto come filtro o kernel. Questo filtro scorre attraverso l'immagine per generare una nuova matrice chiamata mappa delle caratteristiche. I valori della mappa delle caratteristiche indicano se il particolare pixel è sul bordo o meno.
Il kernel che abbiamo usato nell'esempio precedente è chiamato kernel Prewitt nella direzione X. Poiché confronta i valori sull'asse orizzontale. Allo stesso modo, avere un kernel Prewitt nella direzione Y. Cosa c'è di più, abbiamo il kernel Sobel nelle direzioni X e Y.
Nel caso dei chicchi Sobel, viene data maggiore importanza ai valori dei pixel proprio accanto al pixel di destinazione.
Note finali
In sintesi, i pixel sul bordo hanno una differenza significativa nei valori. Possiamo confrontare i valori dei pixel vicini per trovare il bordo. Cosa c'è di più, viene utilizzato un array o un kernel per confrontare i valori. Maggiore è la differenza tra i pixel sinistro e destro, il bersaglio è più vicino al bordo. Allo stesso modo, Riduci la differenza: il pixel non è sul bordo.
Se stai cercando di iniziare il tuo viaggio nella scienza dei dati e desideri tutti gli argomenti sotto lo stesso tetto, la tua ricerca si ferma qui. Dai un'occhiata alle certificazioni AI e ML BlackBelt di DataPeaker Più Programma
Fateci sapere se avete domande nei commenti qui sotto riguardo al rilevamento dei bordi..