2010-07-12 11 views
24

Questo è un po 'di una domanda divertente, ma ...determinare l'altezza di caffè nel piatto utilizzando Python Imaging

Abbiamo una web-cam nel nostro angolo cottura ufficio focalizzato la nostra macchina per il caffè. La caffettiera è chiaramente visibile. Sia la posizione della caffettiera che la fotocamera sono statiche. È possibile calcolare l'altezza del caffè nel piatto usando il riconoscimento dell'immagine? Ho visto il riconoscimento delle immagini usato per cose piuttosto complesse come il riconoscimento facciale. Rispetto a quei progetti, questo sembra essere un compito banale di misurare l'altezza.

(che è la mia migliore ipotesi e non ho idea della complessità sottostanti.)

Come potrei fare per questo? Questo sarebbe considerato un lavoro molto complesso da condividere? Cordiali saluti, non ho mai fatto alcun tipo di lavoro relativo alle immagini.

Grazie

+5

Mi chiedo se i guadagni di produttività pagheranno per il tempo di sviluppo utilizzato su questo progetto ... –

+1

c'è una soluzione più semplice: persona che prende l'ultima tazza, ricarica. –

+3

+1 per la domanda più goffa che abbia mai letto – YuppieNetworking

risposta

1

Siete alla ricerca di edge detection. Ma hai solo bisogno di farlo tra il marrone/nero del caffè e il colore dello sfondo dietro il piatto.

2

Prima eseguire la soglia, quindi la segmentazione. Quindi puoi rilevare più facilmente i bordi.

0

Dovresti trasformare questa domanda in un compito scolastico per uno studente IT. La maggior parte delle scuole IT insegna Computer Vision. Fare la domanda qui è divertente, convincere uno studente e un insegnante a fare ricerche sull'argomento sarebbe divertente!

4

passaggi che mi piacerebbe provare:

  1. convertire l'immagine in grayscale.
  2. Binarize the image, e lasciare solo il caffè. È possibile scoprire manualmente una buona soglia attraverso la sperimentazione.
  3. Blob extraction. L'area di BLOB (numero di pixel) è un modo per calcolare l'altezza, ovvero l'area/larghezza.
11

Poiché la posizione caffettiera è stazionario, ottenere un fotogramma campione e individuare un'unica colonna di pixel in cui la quantità massima caffè minimo e possono essere facilmente visibili , in un punto in cui non ci sono riflessi. Controllare il segmento di linea verticale verde nella figura seguente:

http://imagepaste.nullnetwork.net/img/1278948944coffee_maker.jpg

Il modo più semplice è quello di avere due telai, uno con il piatto vuoto, uno con la pentola piena (ovviamente nelle stesse condizioni di luce, che in genere sarebbe il caso), convertire in scala di grigi (colorsys.rgb_to_hsv ogni pixel RGB e mantenere solo il componente v (terzo)) e sommare la luminosità di tutti i pixel nel segmento di linea scelto. Diciamo che il caso del vaso vuoto raggiunge una somma di 550 e il caso pieno di pentole una somma di 220 (il caffè è scuro). Confrontando una somma di frame in input con queste due somme, puoi avere una stima approssimativa della percentuale di caffè nel piatto.

io non ci scommetterei la mia vita sulla precisione di questo metodo, però, e le fluttuazioni, anche di secondo in secondo potrebbe essere selvaggio :)

N.B: nel mio esempio, la colonna di pixel verde dovrebbe estendersi fino al fondo del piatto; Ho appena fornito un esempio di cosa intendevo.

+2

Sembra così bello che prenderò un caffè in questo momento. –

+0

@Paul: certo, come se avessi bisogno di uno stimolo esterno per prendere un caffè. Assumiti la responsabilità delle tue dipendenze, signore! :) – tzot

0
  • fare foto del piatto con diversi livelli di caffè in esso.
  • downsample l'immagine a forse 4 * 10 pixel.
  • fanno lo stesso in un ciclo per ogni nuova immagine dal vivo.
  • calcolare la differenza di ciascun valore di pixel rispetto alle immagini di riferimento.
  • prendere l'immagine di riferimento con la differenza minima di differenza e si ottiene lo stato della macchina del caffè.

potresti sperimentare se una versione in scala di grigi o solo rosso o verde potrebbe dare risultati migliori.

se dà problemi con diverse impostazioni di luce questo approccio è inutile. basta comprare un riflettore per la macchina da caffè, o alleggerire, o scurire ogni immagine fino a quando la somma di tutti i pixel raggiunge un valore di riferimento.

Problemi correlati