Visione artificiale automatizzata
CasaCasa > Blog > Visione artificiale automatizzata

Visione artificiale automatizzata

Jul 16, 2023

Storia riservata ai membri

Il signor Zubair

Seguire

Investitore guidato dai dati

--

Ascoltare

Condividere

La visione artificiale aggiunge una nuova dimensione alle tecnologie moderne. Consciamente o inconsciamente utilizziamo la visione artificiale. Sono un docente universitario che tiene un corso di computer vision. Solitamente prelevo manualmente le presenze; consuma tempo ed energia. Due giorni fa mi è venuta in mente l'idea di automatizzare un sistema per risparmiare energia e tempo. E ho completato con successo il progetto.

Se leggi l'articolo fino alla fine, sarai in grado di crearne uno tuo. Non è necessaria alcuna conoscenza di codifica o matematica complessa o di livello superiore. Andiamo avanti.

Ho cercato di mantenere il progetto semplice e facile in modo che gli studenti di livello principiante si sentano a proprio agio nel creare il loro primo progetto. Importiamo le librerie richieste.

Abbiamo estratto le directory delle immagini di training con il codice sopra e le abbiamo salvate nella variabile myList.

Con il codice sopra, abbiamo estratto le directory delle immagini di training e le abbiamo salvate nella variabile myList.

Consideriamo ora la seguente cella di codice.

Il codice sopra ci aiuta a creare due diversi elenchi denominati: immagini e nomi di classe. Abbiamo salvato i valori di intensità delle immagini nell'elenco delle immagini e il nome di ogni persona nell'elenco dei nomi delle classi.

A scopo dimostrativo, ho mostrato il nome delle immagini qui sotto.

Le immagini sono state salvate con Anik.jpg, Ferdous.jpg, ecc.

[NB Secondo il codice di questo progetto, dobbiamo etichettare l'immagine con il nome identificativo o ID]

La codifica dei volti è un modo per rappresentare i volti di un'immagine con alcuni numeri misurati dal computer. La codifica del volto simile genera tipi simili di valori codificati. Quindi diventa facile riconoscere i volti.

Abbiamo utilizzato la seguente cella di codice per codificare le immagini con la libreria di riconoscimento facciale.

La funzione findEncodings restituisce tutti i valori codificati per le immagini di training.

Generalmente, OpenCV memorizza l'immagine in formato BGR anziché in formato RGB. Quindi, dobbiamo convertirlo in RGB per lavorare con le immagini. E la funzione face_recognition.face_encodings() estrae il volto da un'immagine e lo codifica.

Vogliamo rendere realistico il nostro progetto. Per questo motivo generiamo anche un foglio Excel contenente le informazioni e le presenze in formato tabellare per ogni giornata. Ho creato la seguente funzione per svolgere il lavoro.

Abbiamo utilizzato la libreria openpyxl per creare e inserire dati nei fogli Excel. Innanzitutto, abbiamo preso un file Excel in cui memorizziamo le informazioni. Per ogni giorno abbiamo creato un nuovo foglio con la data di quel giorno nel file Excel. Infine abbiamo inserito nel foglio Excel nome, data e ora delle persone riconosciute.

Output di esempio —

Abbiamo rilevato i volti dall'input della telecamera in tempo reale in modo da poter utilizzare la CCTV in tempo reale riprese delle telecamere per rilevare la presenza. Abbiamo anche salvato l'immagine in una cartella diversa del volto rilevato per un ulteriore controllo.

Tutte queste attività si trovano in un'unica cella di codice:

Abbiamo creato cartelle individuali per ogni giorno per salvare le immagini rilevate con os.mkdir() . Successivamente, abbiamo catturato il video con la funzione cv2.VideoCapture(0) . Qui, 0 per la fotocamera predefinita e puoi anche utilizzare 1, 2 e così via per gli altri ingressi della fotocamera. Abbiamo acquisito fotogrammi video continui con un ciclo while. Successivamente, abbiamo ridotto la dimensione dell'immagine a 1/4 per ridurre al minimo il costo computazionale e codificare l'immagine con l'immagine ridotta. Abbiamo anche calcolato la distanza dall'immagine di input all'immagine addestrata e infine etichettato l'immagine di input con l'etichetta dell'immagine addestrata con la distanza più breve.

Disegniamo anche un rettangolo rosso del volto rilevato che mostra il nome della persona rilevata. Allo stesso tempo, abbiamo raccolto il nome del volto rilevato sotto forma di elenco e lo abbiamo inserito nel foglio Excel con la funzione takeAttendance().

Output del volto rilevato —

Immagine salvata nella cartella della data specifica —

Foglio Excel generato —