2012-06-04 7 views
7

Quale media delle equazioni delle medie devo usare quando ho un'immagine con il numero N di dimensioni campione delle selezioni?Trova l'area più preferita su un'immagine

Ho un problema unico per il quale speravo di ottenere qualche consiglio, in modo da non perdere nulla. Problema: trovare l'area più favorita/apprezzata/importante su un'immagine in base alla selezione dell'utente di aree in diversi rapporti di selezione.

Scenario: Considerare uno Image of a dog e centinaia di utenti che selezionano l'area su questa immagine in varie risoluzioni, l'area di messa a fuoco evidente nella maggior parte delle selezioni sarà l'area contenente il cane. Posso registrare le coordinate x1, x2, y1, y2 e inserirle in un db, ora se voglio generare automaticamente le versioni di questa immagine in un insieme di risoluzioni dovrei essere in grado di riconoscere l'area con la massima attrazione di gli utenti. I metodi che penso potrebbero funzionare sono:

  1. Trovare il punto centrale medio di tutte le selezioni e basare la selezione in questo. - Molto semplice ma non sarebbe così preciso.
  2. Utilizzare un algoritmo come K Means o EM Clustering ma non so quale sarebbe il più adatto.

In attesa di qualche brillante soluzione al mio problema

Maggiori informazioni sul problema: L'immagine reale sarà molto probabilmente un'immagine di 1024x768, e le scelte fatte su di esso sarà dei più comuni risoluzioni del telefono cellulare. L'obiettivo è generare automaticamente sfondi per cellulari grazie all'apprendimento intelligente basato sulle selezioni dell'utente.

+0

Quale risultato speri di ottenere e presentare? 5 aree del riquadro superiore, aree "hotspot" colorate o qualcos'altro? –

+0

L'immagine effettiva avrà una risoluzione molto più alta e spero di generare automaticamente sfondi per telefoni cellulari utilizzando gli input dell'utente. – Suyash

+0

Quale risultato vorresti se 2 angoli fossero aree di selezione ugualmente popolari? Prendi uno degli angoli o un'area tra loro? –

risposta

2

Credo di avere due problemi distinti sopra individuate:

ONE: Identificazione dei punti

Per questo, è necessario sviluppare una sorta di euristica per individuare se un punto deve essere considerato o no.

Credo abbiate detto che centinaia di utenti saranno luoghi di selezione su questa immagine? Centinaia possono essere un sacco di punti da raggruppare. Considera l'esclusione dei valori anomali (rimuovendo i punti che non hanno un determinato numero di vicini entro una determinata distanza)

Qualsiasi cosa tu possa fare per ridurre il set di dati sarà utile.


DUE: Clustering di Punti

Credo che K-Means sarebbe più adatto per questo particolare problema. LINK

Il tuo problema particolare sembra rispecchiare da vicino gli esempi di cluster di coordinate cartesiane standard utilizzati nella spiegazione di questo algoritmo.

Quello che stai cercando di fare sembra essere NP-Hard, ma dovrebbe essere soddisfatto dalle approssimazioni classiche.

Una volta raggruppato, è possibile ottenere una media dei punti all'interno di quel cluster per un'approssimazione piuttosto accurata.

Inoltre:

È dataset suona come esso sarà già strettamente cluster. (Ad esempio, la maggior parte delle persone sceglierà la faccia del cane, non il lato del busto.) È necessario essere a conoscenza dei minimi locali. LINK Questi possono davvero lanciare una chiave nel tuo algoritmo. Soprattutto con un piccolo numero di cluster. Siate consapevoli del fatto che potrebbe essere necessario un po 'di programmazione dinamica per combattere questo. Di solito è possibile introdurre qualche varianza nell'algoritmo, consentendo ai punti medi di "sporgere" da questi minimi locali. Local Minima/Maxima

Spero che questo aiuti!

+0

Dovrò studiare molto prima di poter implementare questo, ma sì, più o meno quello che ho pensato e molto altro! – Suyash

+0

Haha, so cosa intendi. Sono uno studente laureando in ingegneria robotica e informatica, concentrandosi sull'intelligenza artificiale. Quindi, se hai $ 50ka all'anno da spendere, ti metterò una buona parola per te a scuola – Peaches491

+1

Lol .. se avessi $ 50ka all'anno non avrei fatto questa domanda, avrei assunto un squadra ormai ..: P – Suyash

2

Penso che potresti essere in grado di affrontare il tuo problema in un modo diverso. Se non hai sentito parlare di Seam Carving allora ti suggerisco di dare un'occhiata, perché i dati che hai a disposizione sono perfettamente adatti. L'idea è che invece di ritagliare un'immagine per ridimensionarla, puoi invece rimuovere percorsi di pixel che non sono necessariamente in linea retta. Ciò consente di ridimensionare un'immagine mantenendo al contempo più informazioni "interessanti".

Ordinariamente si scelgono percorsi di minore energia, dove l'energia qui è una misura di quanto la tonalità/intensità cambia lungo il percorso. Questo fallirà quando avrai regioni di un'immagine che sono molto importanti (come la faccia di un cane), ma dove l'energia di quelle regioni non è necessariamente molto alta. Dato che hai dati utente che indicano quali parti dell'immagine sono molto importanti puoi assicurarti di scolpire intorno a quelle regioni dell'immagine aggiungendo esplicitamente un po 'di energia a un pixel ogni volta che qualcuno seleziona una regione con quel pixel.

This video mostra la cucitura che si intaglia in azione, è bello guardare anche se non pensi di usarlo. Penso che valga la pena provare, però, l'ho già usato per alcune interessanti applicazioni di ridimensionamento, ed è in realtà piuttosto semplice da implementare.

+0

Molto molto interessante! tuttavia la maggior parte delle immagini conterrà principalmente volti e umani e questo tipo di ridimensionamento potrebbe distorcere i loro volti. Ma sicuramente applicabile a tante altre cose che ho in mente! Molte grazie! – Suyash

+0

@Suyasha: Ma è per questo che la tua situazione è così grande, se hai gli umani che ti dicono quali regioni dell'immagine sono importanti, allora puoi evitare questo problema. –

+0

eseguirò alcuni test sulle immagini e se funziona allora fantastico !! Al momento sto cercando la sua implementazione di PHP, non ho trovato ancora nulla da usare .. – Suyash

Problemi correlati