Monday, August 31, 2009

giornata sospesa (aggiornamento)

alla fine ho fatto qualcosa.
Era qualcosa di importante? Non lo so, ma era qualcosa che io volevo fare, qualcosa che mi piace fare e, forse, qualcosa che mi servirà in futuro. Quindi almeno per me è qualcosa di importante.

giornata sospesa

è una di quelle giornate che iniziano male, ancor prima del risveglio.
Prima un incubo di quelli che ti fanno sudar freddo, dove tutte le tue paure diventano reali. Per fortuna dagli incubi ti puoi svegliare e ritrovarti in un altro mondo, quello reale. Ma l'altro ti resta dentro come una macchia che non è andata via.
Poi il resto della giornata prosegue senza meta. Tante le cose da fare, tante le cose iniziate, tante le cose lasciate la, sospese, in attesa di momenti migliori.
Alla fine mi ritrovo a fare cose che non facevo da mesi, lasciate sospese in altri momenti e che adesso devo per forza riprenderle. Ma il solo toccarle mi fa ricordare che ci sono altre cose più urgenti più importanti da fare, da riprendere e concludere.
Alla fine anche quelle restano sospese, in attesa...
Alla fine mi ritrovo a girare in tondo chiuso dentro le quattro mure che ho innalzato per proteggermi o solo per nascondermi da quello che c'è fuori e che non posso combattere.
E mi ritrovo prigioniero di me stesso.
E mi ritrovo a tirar avanti fino a domani. Perché domani è un altro giorno.


...
adesso è meglio se vado a fare cose più importanti...

Sunday, August 30, 2009

Videolab 0.5 Beta Version

Con il form Save ho riscritto tutte le componenti per gestire in modo dinamico i movie.

Con questa ultima fatica Videolab si merita una bel avanzamento e arriva alla beta version 0.5.

Si lo so ho saltato la 0.4, ma le modifiche fatte erano tali che da meritarsi un doppio scatto.

Non solo adesso i movie sono gestiti in modo dinamico, con un bel alleggerimento quando si usa il .mat, ma anche le parti che gestiscono i parametri dei filtri, videosetup e filtrisetup, hanno subito numerose modifiche.

Infine ho fatto anche da beta-tester (se non lo faccio io chi vuoi che lo faccia) e ho trovato e coretto un paio di bugs. Adesso funziona proprio per benino.

 

Si, adesso è tempo di pensare ai filtri

Si, adesso è proprio tempo di mandare quella email

 

 

...

quando sarà finita mi tolgo tutte queste catene

Friday, August 28, 2009

nuovi percorsi

Ecco fatto, Videolab è libero dai tassativi e domani libero anche tutti gli altri. Se no sai che ridere.

 

...

ridendo e scherzando Videolab è arrivato a 1298 righe

Innesti dinamici

l'innesto di cma è riuscito piuttosto bene e ha funzionato fin da subito senza dare grossi problemi. Mi sono sorpreso dal successo dell'innesto.

Ben altra musica l'idea di passare al modo dinamico. Questo nuovo modo di trattare i movie mi costringere a una profonda revisione di molte e fondamentali parti del progetto. Filtramimovie, la function che esegue la chiamate dei singoli filtri mi è costato più di un giorno di lavoro. E ancora non ho messo mano alla parte di save e open.

Non basta, sono ormai convito di rinunciare anche alla parte di tassativo che imponeva di passare i path dei file in parti separate dentro una struct. Ho scoperto l'esistenza di fileparts, una cosina interessante che se usata mi semplifica non poco. Quasi come l'uso di try+catch.

A proposito, li sto mettendo un po' ovunque e in parte mi hanno risolto una cosa fastidiosa, ma non del tutto. Però adesso ho meno l'esigenza di uccidere i processi.

Wednesday, August 26, 2009

Innesti

L'innesto di CMA in VideoLab è riuscito.

Ci è voluto un po' ma alla fine si è integrato bene. Restano ancora un po' di cosette da definire, ma il grosso è stato fatto. Poi con calma, durante il percorso post operatorio e la riabilitazione, farò i restanti correttivi.

Pensavo peggio, comunque.

 

 

.....

Ho scoperto che come C#, anche in Matlab c'è il comando Try... Catch...

Ne farò un uso molto intensivo

......

Si, lo scoperto solo adesso e allora?

Tuesday, August 25, 2009

Grande e Lento 2

il riassunto della puntata precedente si trova qui

I test per lavorare sui video in modo dinamico sono andati bene. Si può caricare di volta in volta solo i frame che servono senza dover creare un object con tutti i dati del movie. Non solo mi sono creato una function anche per salvare i frame in modo dinamico. A essere onesti non è eccezionale, carica tutto il movie e sostituisce il frame in questione, però funziona ed è pratica almeno quanto la function di lettura.

Convertire VideoLab al lavoro dinamico però non è semplice. Non mi aspettavo certo una passeggiata, fosse altro per il numero di righe in gioco. Ma la conversione richiede di ripensare tutta la struttura che sta sotto e gestisce tutti i dati usati dalle varie funzioni.

Usare due file .mat si sta rilevando inutile, come inutile la gestione dei nomi dei file per manipolare i movie. Inoltre dovrò mettere mano ai form di open e save. La volta del tassativo me le ero cavata con poco, rinunciando a un funzionamento completo ma questa volta non posso tralasciarli.

Ma devo mettere mano anche al modo di chiamare i filtri. Anche questa dovrà essere fatta in modo dinamico.

 

Alla fine dovrei ottenere un programma più snello, con file temp più piccoli e con codice di più facile lettura e quindi più maneggiabile.

Pagherò in un funzionamento generale più lento, infatti lavorare in modo dinamico vuol dire fare più accessi al disco che sono più lenti, soprattutto sul mio portatile. Per adesso mi accontento.

Friday, August 21, 2009

Cose da filtrare

Magari in qualche vecchio post avevo già spiegato che cosa sto cercando di fare, ma visto che sono entrato nel vivo del progetto un breve ripasso fa bene. Anche a me.

Lo scopo di VideoLab è di prendere un vecchio film, analizzarlo un po', filtrarlo e restituire il film bello e pulito come se fosse nuovo e magari anche meglio. Una specie di Perlana per i filmini anziché per i golfini.

Si ma cosa deve filtrare? Filtra quelli che per il momento sto chiamando genericamente errori. Sono tutte quelle schifezze che si vedono sui vecchi film. Graffi, polveri, linee o puntini che appaiono, si muovono veloci sulla scena e scompaiono nel nulla. Neanche fossero degli UFO.

Insomma tutto quel sporco che i più fighi aggiungono alle immagini per dagli un atmosfera vintage o grunge, come va tanto di moda tra i photoshopolic.

La natura di questi errori è la più varia, di solito sono il prodotto di una cattiva conservazione del nastro (si sono filmini realmente vecchi e registrati su nastro magnetico) e di una poco attenta digitalizzazione.

Poco importa da cosa sono dovuti, a me interessa come si comportano.

Principalmente ho a che fare con righe bianche e orizzontali che appaiono all'improvviso e si muovono velocemente attraverso lo schermo per sfuggire verso l'alto. Hanno forma e lunghezza irregolare che cambia durante al loro breve vita. Spesso non sono neanche delle righe ma semplici punti bianchi.

Visti però un frame alla volta sono solo dei agglomerati di pixel bianchi o comunque diversi da tutti gli altri intorno.

Ecco, lo scopo dei filtri è riconoscere queste cose e cercare pixel buoni con cui ricoprire le zone danneggiate.

Il lavoro di Roug Chi Chang e Timothy K. Shish è stato molto utile per darmi un metodo, ma come ho detto i loro filtri mal si adattano ai miei filmini.

Oggi ho sviluppato la quarta versione del prototipo di CMA aggiungendo il controllo spaziale del frame. I risultati sono molto buoni. Nei prossimi giorni conto di trasformarlo in una function e di implementarlo dentro VideoLab.

 

 

....

Mi aspettano giorni di tanti errori stupidi

Thursday, August 20, 2009

CMA vs BMA+TMA


Per adesso CMA è solo un prototipo, ma già si dimostra all'altezza dei risultati di BMA+TMA, e con un tempo macchina infinitamente inferiore.


Wednesday, August 19, 2009

I Filtri

i filtri implementati in VideoLab si basano su un lavoro di Roug Chi Chang e Timothy K. Shish trovato da qualche parte in IEEE.

I filtri implementati sono quattro e lavorano in successione. I primi due BMA e TMA fanno una prima ricerca grossolana delle aree sospettate di contenere errori, gli altri due rifiniscono queste zone, scartando i falsi positivi ed eventualmente definendo meglio i contorni degli errori.

 

BMA fa un controllo spaziale selezionando una piccola porzione del frame. Se in questa porzione ci sono un certo numero di pixel diversi dalla media degli altri, allora tutto la zona viene segnata come errata.

BMA è piuttosto grezzo e non distingue un bordo di un oggetto da un vero errore. Il risultato che molte zone segnate sono in realtà buone.

Spetta poi a TMA fare un controllo migliore su queste zone segnate. Facendo un controllo spaziale e temporale (cioè con i pixel dei frame precedenti) scarta i pixel che non sono sbagliati.

TMA lavora meglio, è più accurato, ma paga in termini di tempo. Anche perché quando trova dei pixel sospetti, fa un ulteriore controllo più approfondito. Inoltre paga i tanti falsi positivi segnati da BMA.

 

Nel momento in cui mi sono concentrato sulle caratteristiche degli errori che cercavo, è stato evidente che l'accoppiata BMA e TMA non erano adatti ai mie problemi. Questo malgrado che Roug e Timothy avessero un problema simile al mio.

 

Per questo sta prendendo forma CMA.

 

 

....

nel mezzo mi diletto a mettere giù un algoritmo per risolvere i sudoku. le prime prove sono incoraggianti a conforme che il mio metodo sistematico è valido. Da migliorare

 

 

....

si lo so, sono deficiente ma è nella mia natura

Thursday, August 13, 2009

Un caldo autunno

Si avvicina la resa dei conti, sarà un autunno molto caldo.

Dovrò contattare lui per vedere cosa fare di videolab e di tutto il resto.

Dovrò decidere se continuare a ballare oppure no, comunque in un posto nuovo.

Dovrò decidere se fare un corso di inglese o se meglio fare qualcos altro, per esempio .NET o come si chiama, magari anche tutte e due

Dovrò vedere se trovo una work-experience.

Dovrò curarmi il ginocchio come si deve e vedere se riesco a correre la mezzamaratona.

Dovrò sopravvivere e se mi riesce restare sufficientemente sano.

 

....

Non vedo l'ora che sia natale.

 

Monday, August 10, 2009

CMA

La Candidate Mask Area inizia a prendere forma.

Non sarà troppo immediata, ma comincia ad avere una sua forma.

La Best Mask Area era effettivamente poco adatta al mio caso.

 

Intanto continuo a trovare e a coreggere cose fastidiose, anche in questo caso centra il tassativo.

Saturday, August 08, 2009

Cose Fastidiose

Ci sono ancora un paio di cosette fastidiose.

Una è la lentezza con cui si apre, ma questo problema è noto ed esiste un prototipo di soluzione. La sua implementazione richiederà un po' di tempo e un po' di pazienza

L'altra è il fatto che non filtra i primi tre frame.

Questa limitazione nasce dal fatto che i filtri, non tutti, per funzionare fanno dei confronti tra il frame in esame e i due precedenti. Ovviamente il primo e il secondo non hanno i due precedenti, quindi in attesa di nuove implementazioni sono esentati dall'essere oggetto di filtraggi. Si insomma se filtro il primo frame, VideoLab va in errore.

Fastidioso, qualche volta.

 

 

....

Visto che sto lavorando sui filtri

Friday, August 07, 2009

Aperture fastidiose

Da un po' di tempo che avevo un errore fastidioso. Se lanciavo Videolab da una directory che non fosse la sua natia, quando andavo ad aprire un movie, con l'apposito form frmOpen, ricevo un errore e il tutto si fermava.

Errore fastidioso, molto fastidioso. Ma anche errore mai approfondito. Lo lasciavo là ad aspettare. Si era fastidioso, ma tutto sommato si presentava in situazioni particolari e quindi più di tanto non mi interessava.

Però che fastidio. Soprattutto dopo la fatica per realizzare un frmOpen decente.

Oggi l'ho sistemato. Mi sono messo li di buona voglia e non ci è voluto neanche più di tanto. L'errore nasceva con l'adozione del tassativo sui nomi dei path. Una carenza che dava errore quando uscivo dalla directory nativa, per l'appunto.

Anche in frmSave c'era la stessa carenza, ovviamente lì non si vedeva dato che non arrivavo mai fino a là.

 

 

...

No, non è come pensi. Ho messo mano anche ai filtri. La BMA sta per essere sostituita dalla CMA. MA questa è un'altra storia

Wednesday, August 05, 2009

Grande e Lento

VideoLab crescendo è diventato anche lento. Questa lentezza è dovuta al fatto che gli faccio caricare tre movie in un file .mat. Questo perché mi serviva un sistema per scambiare i dati tra i diversi moduli di cui è fatto.

Ovviamente il .mat diventa di dimensioni enormi e accedervi, magari solo per leggere se ci sono i dati dei filtri diventa un operazione lentissima, insopportabile direi.

Fisto che Videolab è nato per velocizzare certe operazioni, non può rallentarmi su altre.

Oggi ho fatto un paio di prove con gli attrezzi che dispone MatLab. C'è il modo di operare sui movie senza doverli caricare tutti quanti in memoria. Infatti è possibile leggere solo il frame che interessa. Chiaro che questo rende superfluo memorizzare tutti i movie nel .mat. Una bella comodità e un bel risparmio di spazio e di tempo.

Purtroppo per scrivere un solo frame nel mezzo di un movie, non c'è verso che caricare tutto il movie. Però nuovamente, non mi serve più scriverlo nel .mat.

 

Tutto questo l'ho fatto in uno script di prova. Adesso sarebbe da trasferire queste nuove tecniche dentro VideoLab. Cosa che non è immediata, non è facile, non è indolore. VideoLab è diventato veramente grande.

 

....

Si, non ho ancora messo mani ai filtri, e allora?

Monday, August 03, 2009

Funziona ancora

Buone notizie: Videolab funziona ancora, e questo non è poco.

No non è poco visto che di solito il giorno dopo aveva sempre qualche nuovo_e_piccolo problema. Invece è passato indenne a uno stop di oltre un mese durante il quale c'è stata una forzata formattazione completa con successiva reinstallazione di tutto il necessario. Gli dei dell'informatica mi hanno detto bene per una volta.

 

....

Lo so che non ve può fregare di meno, ma sono cose che a me rendono felice

.......

si questo vuol dire che ho ripreso a lavorare sulla tesi, e anche questo non è poco

Sunday, August 02, 2009

Ormai si era capito

Non ci sono stati post nuovi, perché non ho fatto niente di nuovo.
Si era capito, vero? Ormai questa correlazione dovrebbe essere chiara.

Scuse che potrei accampare: beh le più varie, e tutte vere a loro modo.
Ma la sola verità è la solita poca voglia di affrontare i fatti e di combattere l'ultimo round.

...
domani è un altro giorno, come sempre