ArnauCampanera / PyrVision

Mammal detection model for the Pyrenees
2 stars 0 forks source link

Accés a descarregar el codi de Pyrvision #2

Open nescola10 opened 6 days ago

nescola10 commented 6 days ago

Bones Arnau,

M'agradaria molt poder utilitzar les eines que ofereix Pyrvision. Us vaig escoltar fa uns mesos al CTFC a Solona, sona molt interessant i útil, gràcies i felicitats!

Ara bé, he estat seguint els passos per a instal·lar el codi i, segueixo els passos fins al comandament "git clone https://github.com/ArnauCampanera/PyrVision.git". La consola em diu que no reconeix el que li estic demanant. I per tant no em crea la carpeta Pyrvision des de la qual començar a treballar pujant fotos al Inbox. Què creus que hem pot estar passant? I pe

Gràcies de nou i fins aviat! Nil

ArnauCampanera commented 6 days ago

Hola, Nil,

Moltes gràcies per interessar-te pel nostre model de detecció d'espècies PyrVision! A veure si podem solucionar aquest problema.

Entenc que fas servir Windows com a sistema operatiu. Si la consola no et reconeix la comanda "git clone" probablement no tinguis el paquet "git" instal·lat per defecte al teu ordinador. Per solucionar-ho podem instal·lar-lo mitjançant la següent comanda:

conda install -c anaconda git

just abans de procedir amb el “git clone”.

Si has tancat l’ordinador o l’aplicació ‘Anaconda Prompt (miniconda3)’ a mitja instal·lació de PyrVision caldrà tornar a activar l’entorn que vam crear anteriorment quan tornem a executar l’aplicació d’”Anaconda Prompt”. Per fer-ho executem:

conda activate pyrvision

Un cop instal·lat Git, la comanda “clone” ja funcionarà i podràs baixar-te el model de detecció i seguir amb la instal·lació.

Per qualsevol altre problema no dubtis en preguntar.

Moltes gràcies per fer servir PyrVision! Bona classificació :)

nescola10 commented 5 days ago

Moltes gràcies Arnau, quina velocitat de resposta!

D'entrada he pogut solucionar el problema que et comentava instal·lant el Git. Ah, i efectivament faig servir Windows i GPU NVIDIA. Ara bé, encara no he aconseguit classificar cap imatge.. què em passa? Quan descarrego Pyrvision em crea una carpeta tal i com diuen les teves instruccions (dins no trobo la carpeta "in box", només una "models" i altres arxius, entre ells l'init.ipynb). Així que faig córrer comanda per obrir Jupyter Notebook, no obstant, no se m'obra cap navegador d'internet.

Ara bé, a la consola Anaconda Prompt sí que em dona un link per obrir amb navegador. L'obro i m'apareix la meva carpeta Pyrvision a Jupyter Notebook, faig "Run all cells" però no em classifica res.. em dona un error de permís.

Et poso còpia de la pantalla de la consola quan faig correr Jupyter Notebook: Captura_Anaconda_Jupyter noteboo

Hem sorpren aquests dos missatges:

També et poso còpia del retall de l'error de permís que em dona Jupyter Notebook:

Permission error Jupyter

Ostres, em sap greu, tantes consultes.. no estic gens avesat a treballar amb la consola! GRàcies altra vegada!

Nil

ArnauCampanera commented 5 days ago

Hola, Nil!

No et preocupis gens. Per això serveix aquesta secció i, probablement, els mateixos dubtes que tens tu avui els tingui algú altre en un futur.

Com bé dius, no se’t ha creat la carpeta ‘inbox’ i això és error nostre :( Durant els últims retocs fets al codi ens la vam carregar sense voler i ara quan algú se’l descarrega no apareix. Ho arreglarem aviat :)

La solució, però, hauria de ser ben senzilla. Crea tu mateix la carpeta ‘inbox’ (no ‘in box’) a dins de la carpeta PyrVision i col·loca algunes imatges per classificar.

A veure si amb això podem avançar una mica més.

Gràcies per la paciència!

Arnau

nescola10 commented 4 days ago

Moltes gràcies Arnau!

Genial, he aconseguit fer algun pas més! He penjat unes 25 fotografies dins la carpeta "inbox", però tan sols m'ha classificat la primera fotografia, com a "vehicle", l'ha encertat. Ara bé, a partir d'aquesta em genera un missatge d'error per falta de "permís", què et sembla que puc estar fent malament? Li he dit "Run all cells" però no obstant només em classifica la primera imatge de la carpeta..

Et penjo captura del que em retorna l'init de Jupyter:

PermissionError

Per altra banda, hauria de fer de nou tots els passos per a una nova classificació o bé esborrant les fotografies de l'"inbox" i penjant les noves ja podria tornar a classificar?

Crec que ja casi ho tinc... aiiishh

Nil

nescola10 commented 4 days ago

Per cert Arnau!

He provat de canviar el set de fotografies de l'inbox i tornar a fer córrer la classificació: pel que veig només em detecta i classifica bé la primera imatge de tot el set d'imatges de la carpeta. Aquest cop m'ha classificat bé una llebre.

Gràcies, Nil

ArnauCampanera commented 4 days ago

Hola, Nil,

He estat intentant reproduir el mateix error que tens en un ordinador amb Windows i he trobat una possible solució en forma de pedaç.

Com bé t’indiquen els errors és un problema de permisos que sembla només passar a Windows, mentre que a macOS i Linux funciona bé.

Per provar aquesta solució obra l'init.ipynb des de Jupyter com ja feies i col·loca’t a l'última cel·la, que hauria de començar amb:

for file in onlyfiles:
...

Hauries de substituir tot el text de la cel·la per el següent:

for file in onlyfiles:
    with Image.open(Path(watchDirectory, file)) as im:
        w,h = im.size
        impalette = im.getpixel((w/2,h/2))
    if impalette[0] == impalette [1] == impalette [2]:
        model = YOLO(Path("models","best_BW.pt"))
        imatge = Path(watchDirectory, file)
        results = model.predict(imatge, save_txt=True, save=True, show_boxes=rectangle, conf=conf_BW)
    else:
        model = YOLO(Path("models","best_COLOR.pt"))
        imatge = Path(watchDirectory, file)
        results = model.predict(imatge, save_txt=True, save=True, show_boxes=rectangle, conf=conf_COLOR)
    readPredictedSpecies
    storefiles(file)

El text sembla pràcticament el mateix però hi ha algunes petites modificacions que haurien de fer que el codi tiri endavant.

Prova-ho i em comentes què tal t’ha anat :)

Intentarem posar les modificacions a Github ben aviat.

Gràcies per la paciència! Com veus, no som informàtics i fem el que podem 😂

nescola10 commented 3 days ago

Arnau! Gràcies, ha funcionat! He fet córrer vora 995 fotografies, molt ràpid i força ben classificat (ja jugaré amb els valors de confiança). Moltes gràcies a tu per la paciència :)

Per cert, entenc que el codi accepta vídeo també?

Gràcies,

Nil

ArnauCampanera commented 2 days ago

Hola, Nil!

Que bé! Me’n alegro molt! En breus pujarem una nova versió del model a partir d’uns últims entrenaments que hem fet. Cada cop, amb cada actualització, ho ha d’anar fent una mica millor.

Respecte el que comentes al final, l’arquitectura del model és capaç de reconèixer vídeos, però el codi està enfocat en detectar i classificar en carpetes només imatges. És per això que si detecta un vídeo a la carpeta d’’inbox’ el codi escopirà un error.

Podríem fer un codi per gestionar massivament també els vídeos, en cas de que sigui una prioritat. Per exemple, que algú només enregistri vídeos amb les seves càmeres.