Un buon metodo per rilevare la presenza di una particolare funzionalità in un'immagine
-
17-09-2020 - |
Domanda
Ho fatto un videochat, ma come al solito, un sacco di uomini piace ad ehm, abusare del servizio (la lascio a te per capire la natura di tali abusi), che non è qualcosa che approvo in alcun modo, Né la maggior parte dei miei utenti. No, non ho rubato chatroulette.com :-) Francamente, sono mezzo imbarazzato per portarlo qui, ma la mia domanda è tecnica e piuttosto specifica:
Voglio filtrare / negare gli utenti in base ai loro contenuti video quando questo contenuto è di carattere offendente, come l'utente lampeggia la spazzatura sulla fotocamera. Che tipo di algoritmo di confronto dell'immagine sarebbe adatto alle mie esigenze?
Ho trascorso una settimana o così leggendo alcuni documenti scientifici e sono diventati consapevoli di molteplici teorie e le loro implementazioni, come setacciare, surf e alcuni degli approcci basati su wavelet. Ognuno di questi ha inconvenienti e vantaggi ovviamente. Ma poiché la natura del mio confronto dell'immagine è altamente specifico - per negare il servizio se viene incontrata una certa parte del corpo in un intervallo di posizioni - mi chiedo quale dei metodi si adatti a me migliore?
Attualmente, mi appoggio a qualcosa lungo il seguente (basato su wavelet qualcosa che presumo di essere alcune innovazioni proprietarie): http://grail.cs.washington.edu/projects/query/ .
Con quanto sopra, posso semplicemente disegnare la parte del corpo offensiva e si aspettava che il contenuto offensiva sia considerato una partita in base a una soglia. Poi di nuovo, non so se il metodo è invariabile alle trasformazioni e se lo è, a che tipo - la carta non è realmente specifica su questo.
In alternativa, sto pensando che un'attuazione da surf potrebbe fare, ma ho paura che potessi darmi falsi positivi. Tale implementazione può essere addestrata a riconoscere / dare peso alla caratteristica specifica?
Sono consapevole del fatto che esistono numerose domande sul surf e setacciare qui, ma la maggior parte di loro è generica in quanto di solito spiegano come "confrontare" due immagini. Il mio confronto è caratteristica specifica, non generica. Ho bisogno di un metodo che non confronta solo due immagini simili, ma che può darmi un rango / indice / peso per una funzionalità (tuttavia il metodo mi consente di descriverlo, sia un'immagine stessa o qualcos'altro) essere presenti in un Immagine.
Soluzione
Sembra che non sia necessario il rilevamento delle funzioni, ma il riconoscimento dell'oggetto, I.e. Metodo Viola-Jones. Dai un'occhiata a FaceDetect.cpp Esempio Spedito con OpenCV (anche ci sono diversi harcascades ready-to-Use: Rilevatore di faccia, rilevatore del corpo ...).Utilizza anche le caratteristiche dell'immagine, chiamate Wavelet Haar.Potresti essere interessato a utilizzare le informazioni del colore, dai un'occhiata all'algoritmo Camshift (disponibile anche a OpenCV).
Altri suggerimenti
Questo è più sulla visione del computer.Devi riconoscere gli oggetti nella tua sequenza immagine / video, qualunque cosa ... per questo, puoi usare molti altri algoritmi (la maggior parte di loro funziona nel dominio spettrale, ecco perché dovrai usare una trasformazione).
.Per essere accurato, avrai anche bisogno di una base di conoscenze o, almeno, alcuni descrittori che definiscono l'oggetto.
Prova a OpenCV, ha alcuni algoritmi già implementati (e descrittori di base inclusi).
Ci sono applicazioni / algoritmi là fuori che puoi "addestrare" (come reti neurali) e sono in grado di identificare oggetti in base alla formazione.La maggior parte di loro (almeno, i buoni) non sono molto popolari e possono essere trovati solo nei gruppi di ricerca specializzati in visione informatica, riconoscimento dell'oggetto, Ai, ecc.
Buona fortuna!