Il software può rilevare automaticamente la messa a fuoco dell'immagine?


19

Mi chiedevo se esistesse un software di gestione delle foto in grado di rilevare automaticamente e "valutare" le immagini su come sono a fuoco. Questo mi viene abbastanza spesso quando sto guardando attraverso una grande serie di immagini macro dello stesso soggetto.
In un mondo perfetto, Light Room (o qualsiasi altro programma) potrebbe evidenziare le aree di messa a fuoco e sfuocate nello stesso modo in cui rileva le aree bruciate di un'immagine. Anche l'algoritmo che spero esisterebbe sarebbe intelligente e non sarebbe distratto da sfondi sfocati e cerca solo che un'area sufficiente sia a fuoco sufficiente.
Qualcosa del genere là fuori?

Come un altro pensiero per le persone che parlano di immagini messe a fuoco nel punto sbagliato e che i modelli di messa a fuoco della fotocamera già esaminano questo aspetto. Un altro grande fattore per la mancanza di chiarezza in un'immagine macro è la sfocatura dal movimento della fotocamera. Ciò danneggia tutti i punti di un'immagine e non è qualcosa di cui la fotocamera ha tenuto conto durante la messa a fuoco.


Quale fotocamera stai usando? Alcune fotocamere includono le informazioni sui punti AF nei loro file RAW e dati EXIF, con un piccolo sforzo, non sarebbe troppo difficile usare tali informazioni per misurare la nitidezza e il contrasto per determinare una valutazione della messa a fuoco. Non so nulla che lo faccia però ...
Benjamin Anderson,

2
@Benjamin Anderson - questa è solo una soluzione parziale. Di solito la messa a fuoco viene quindi ricomposta, quindi in questo caso l'indicazione del punto AF sarà in realtà fuorviante e valuterà molte immagini perfette come sfocate
ysap

@ysap - Vero, soprattutto quando si tratta di scatti macro.
Benjamin Anderson,

Sarebbe ancora meglio se potessi vedere più chiaramente ciò che è a fuoco prima di scattare una foto. Ad esempio, la vista dal vivo potrebbe utilizzare la codifica a colori per evidenziare chiaramente le aree a fuoco e sfocate. Mi chiedo se ci sono delle macchine fotografiche che possono farlo ...
Jukka Suomela,

1
@Jukka quello che stai chiedendo si chiama peaking a colori ed è trovato su videocamere digitali di fascia alta (che sono spesso focalizzate manualmente). Credo che tu possa ottenerlo sulla Canon 5D mkII tramite l'hack del firmware Magic Lantern.
Matt Grum,

Risposte:


12

È una domanda interessante È certamente possibile per il software rilevare le parti di un'immagine a fuoco, poiché è la base per software di stack-focus come Helicon Focus .

Il focus stacking è una tecnica utilizzata dai macrofotografi. La profondità di campo in molti scatti macro è molto bassa, quindi per estenderlo è possibile scattare una serie di foto del soggetto, modificando il punto focale di ognuno. Helicon Focus prende la pila di foto e rileva le parti più a fuoco di ogni immagine e le fonde insieme per produrre un risultato in cui l'intero soggetto è a fuoco. È anche possibile farlo con alcune delle tecnologie alla base di Hugin , ma è un po 'più complicato da configurare.

Penso che la difficoltà di estenderlo per un controllo generale "a fuoco" sarebbe determinare se il soggetto è a fuoco - come possiamo determinare automaticamente quale sia il soggetto? Quanta profondità di campo è stata richiesta dal fotografo?


1
Penso che la necessità di controllo sul sistema di messa a fuoco automatica della fotocamera dimostri che è impossibile sapere, senza il contributo del fotografo, quale sia l'intento. C'è anche una sorta di problema Godel, in cui posso scattare una foto sfocata sul muro e fotografarla, che è di per sé correttamente messa a fuoco. Sarebbe impossibile identificare quest'ultimo come corretto.
Chris Wuestefeld,

4

Quello che stai chiedendo è problematico nel senso che un rilevamento della messa a fuoco basato su software utilizzerà essenzialmente lo stesso algoritmo utilizzato da un sistema di autofocus basato su contrasto. Ciò significa che è necessario scansionare l'immagine e cercare il luogo più contrastato per determinare la quantità di "messa a fuoco". Tuttavia, è possibile che tu stia riprendendo un soggetto con un basso dettaglio (basso contrasto), quindi anche se la messa a fuoco è puntuale sul bersaglio, l'algoritmo software determinerà un'immagine a fuoco basso o sfocato.

Inoltre, come farà il software a sapere qual era il tuo focus point reale? Se stai scattando un ritratto e gli occhi sono messi a fuoco in modo errato, il software rileverà una messa a fuoco perfetta sull'orecchio, ma questa è davvero un'immagine di bassa qualità o inutilizzabile.


1
Sto iniziando a vedere come è possibile progettare un tale programma. Per i volti, beh, fai un programma di riconoscimento facciale, guarda gli occhi e vedi se sono a fuoco. Qualcosa dovrebbe essere possibile per questo, anche se potrebbe essere un po 'difficile ...
PearsonArtPhoto

Bene, la tecnica proposta (evidenziando le aree che sembravano essere a fuoco) non avrebbe il problema dell'orecchio contro l'occhio. Immagino che vedere quali aree sono relativamente contrastate rispetto a non contrastanti sarebbe interpretabile in modo simile - e se ti preoccupi di una serie di immagini simili, quindi confrontarle tra loro piuttosto che una qualità assoluta di "messa a fuoco" sembra come la modo giusto di farlo.
Reid,

@Reid - Suppongo che l'intento dell'OP sia quello di avere un processo automatizzato per la rimozione di cattive immagini. La mia risposta risponde a questo requisito sottolineando il motivo per cui questa funzione sarà difficile da realizzare e ho anche fornito esempi nei commenti ad altre risposte. Se c'è un essere umano nel circuito, allora tutto è possibile ...
Sì,

La mia lettura della domanda è che l'OP sembra descrivere abbastanza chiaramente un processo di iniziativa mista, non completamente automatizzato (ad esempio, "punti salienti e punti focali").
Reid,

2

Come umano, preferirei valutarli da solo con la mia osservazione soggettiva, visto che so dove dovrebbe essere stata o no la messa a fuoco, ma suppongo che potrebbe esserci un modo approssimativo per determinare la qualità della messa a fuoco di uno scatto in base al apertura, lunghezza focale, distanza del soggetto e messa a fuoco / aree sfocate dell'immagine.

Ad esempio, una lunghezza focale lunga, un'apertura ridotta, un soggetto vicino significa che è probabile che ci sia un piccolo punto di messa a fuoco con molto bokeh (per le applicazioni comuni di questa ricetta).

D'altra parte, una breve lunghezza focale con una distanza del soggetto più lunga significa che probabilmente ci saranno più aree di messa a fuoco che aree fuori fuoco (si pensi a paesaggi o foto di gruppo).

Immagino che la cosa più importante in ogni foto sia, ovunque sia l'area più focalizzata di una foto, è a fuoco . Questo semplice controllo "è il punto più focalizzato a fuoco" sarebbe quello che potrei usare in quanto non vi è generalmente alcun motivo nell'usare uno scatto fuori fuoco o con messa a fuoco posteriore a meno che non si pensi che funzioni.


il tuo ultimo punto è vero solo in parte, poiché la maggior parte delle volte ti concentrerai e ricomposirai. Come nell'esempio che ho fatto in altri commenti, può essere che l'orecchio sia perfettamente a fuoco (e come tale la tua immagine avrà un ottimo punto di messa a fuoco) ma l'occhio sarà OOF.

Non ci ho nemmeno pensato, e sì, molto spesso mi concentro e mi ricompongo, quindi potrebbe esserci un leggero spostamento nel piano di messa a fuoco.
Nick Bedford,

2

In un mondo perfetto, la stanza luminosa (o qualsiasi altro programma) potrebbe evidenziare la messa a fuoco e la messa a fuoco allo stesso modo in cui rileva le aree bruciate di un'immagine.

Quindi, per cominciare, il manuale di Darktable include:

ctrl-z ingrandisce completamente l'immagine e mostra le aree a fuoco

E questo appare così su un'immagine a fuoco parziale:

inserisci qui la descrizione dell'immagine

Più specificamente, penso che sia possibile ottenere ciò che si sta cercando quantizzando la quantità di informazioni ad alta frequenza nella trasformata di Fourier dell'immagine. (le alte frequenze sono i bit fortemente focalizzati a cui teniamo).

Utilmente un'altra risposta SE (che ho votato per il privilegio della copia incolla) fornisce il codice per estrarre le frequenze. Se è interessante per le persone, potrei tornare a questa risposta e vedere se riesco a scrivere il codice che ordina una serie di immagini in base a quanto nitido (piuttosto che totale) focus hanno.


1

Ho appena incontrato questa domanda (ormai quasi) di 9 anni. Ci sono alcune buone informazioni in queste risposte, ma molte sono piuttosto vecchie ora e nessuna risponde davvero alla domanda originale dell'OP: il software può rilevare automaticamente la messa a fuoco dell'immagine?

Dopo aver esaminato i post qui, ho trovato un'applicazione chiamata Fast Raw Viewer che ha almeno una soluzione parziale.


1

Un espediente davvero economico per le immagini scattate con le stesse impostazioni di qualità della fotocamera e la stessa scena e impostazione della luce è guardare la dimensione del file del JPEG. Più materiale è a fuoco, più le informazioni visibilmente distinguibili sono considerate dall'algoritmo di compressione JPEG con perdita di valore che vale la pena preservare, aumentando le dimensioni del file.

Ovviamente questo ha senso solo se la maggior parte del contenuto dell'immagine è ciò che vuoi mettere a fuoco. Ad esempio, non aiuta contro soggetti sfocati più piccoli su uno sfondo a fuoco.

Ma può essere utile come demolitore rapido.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.