Feeds:
Articoli
Commenti

Posts Tagged ‘algoritmi’

Object recognition by computer programs is the biggest promise of a endless range of new application and appliances (Internet of things) . Robotics, devices can be much more smart if they could be able to recognize objects viewed by a webcam.

So I experimented some software technics to reach this capability. In detail I concentrated into:

  1. finding points of interest in images and linking them by optimal triangles (Delaunay triangulation).
  2. Let users select which triangles best approximate the choosen object shape
  3. Using periferic points of selected triangles to find other instances of that object in different images or videos by mean of a “projection transform” (2D Homography) . I’ve still to do this but with main algorithm already made for this develop.

This picture is an example of first 2 steps:

ImageIf you wish directly experiment this function, below is the Flash app developed. You’ll have to:

  • accept webcam input
  • take image to elaborate pressing “Rileva” (Detect)
  • after few seconds you’ll have the points of interest on right side and, with right click on image, select “Vedi Aree” (Show Areas)

Read Full Post »

I did this proof-of-concept for attempting to change every monitor or projector in a touchscreen. Color detection, when light is low, is not so reliable but mapping algorithm is quite good and reusable in robotics and other image processing applications.

Read Full Post »

Ho pubblicato  un piccolo prototipo che dà l’idea di come si potrebbe esercitare la democrazia in modo diretto. Il link al sito, presente anche nei collegamenti di questo blog è: http://alrama.altervista.org/dd .

Il prototipo prende vantaggio dall’applicazione di tecniche di riconoscimento facciale.

In attesa di più tempo disponibile per completare il modello (al momento è ancora assente la pagina “le leggi” è presente solo la sezione “vota”), mi sembra più produttivo mettere in linea una soluzione parziale piuttosto che continuare a tenerla nel cassetto (l’hard disk) ad ammuffire.

Read Full Post »

(Scena realmente accaduta)
Un giorno, alla stazione di Padova, sale sull’Eurostar Udine-Roma, a prenotazione obbligatoria, una signora diretta a Roma. La signora non ha la prenotazione e, al primo controllo del personale di bordo, lo ammette candidamente, ma avverte che non ha alcuna intenzione di pagare la multa. A sua giustificazione afferma che, ogni volta per quel treno, non le viene data alcuna disponibilità di posti, mentre in realtà di posti liberi ce ne sarebbero sempre diversi. La signora ne indica alcuni effettivamente liberi nella carrozza. Per farla breve la signora si rifiuta di pagare la multa, di firmare il verbale di contravvenzione e di scendere alle stazioni successive. Paga infine la multa solo dopo gli inviti della polizia ferroviaria, salita a bordo alla stazione di Firenze, su richiesta del personale viaggiante.
Ha ragione la signora quando ritiene che vi siano posti disponibili anche quando in biglietteria non risultano ? Proviamo a scoprirlo …

Semplifichiamo:

  1. treno Padova-Roma con solo 4 posti
  2. 6 viaggiatori richiedono la prenotazione con la seguente sequenza temporale

1° viaggiatore: Padova-Ferrara (prenotazione sullo schema successivo: AAA)
2° viaggiatore: Bologna-Roma (prenotazione sullo schema successivo : BBB)
3° viaggiatore: Rovigo-Firenze (prenotazione sullo schema successivo : CCC)
4° viaggiatore: Padova-Bologna (prenotazione sullo schema successivo : DDD)
5° viaggiatore: Ferrara-Roma (prenotazione sullo schema successivo : EEE)
6° viaggiatore: la signora (prenotazione sullo schema successivo : XXX)

Proviamo le diverse strategie di prenotazione dei posti e verifichiamo se sono in grado di assicurare la saturazione dei posti.

Strategia A: che assegna prioritariamente i posti già parzialmente occupati (quando la “sottotratta” richiesta non si sovrappone a quella già assegnata)

PD-RO RO-FE FE-BO BO-FI FI-RM
Posto 1 AAAAA AAAAA XXX BBBBB BBBBB
Posto 2 CCCCC CCCCC CCCCC
Posto 3 DDDDD DDDDD DDDDD XXX XXX
Posto 4 XXX XXX EEEEE EEEEE EEEEE

1° viaggiatore: Padova-Ferrara
2° viaggiatore: Bologna-Roma
3° viaggiatore: Rovigo-Firenze
4° viaggiatore: Padova-Bologna
5° viaggiatore: Ferrara-Roma
6° la signora: Padova-Roma

In questo caso la signora non può prenotare il biglietto pur essendoci sempre almeno un posto libero per tutto il viaggio.

Strategia B: che assegna i posti già parzialmente occupati solo per tratte esattamente complementari a quella già assegnata

PD-RO RO-FE FE-BO BO-FI FI-RM
Posto 1 AAAAA AAAAA EEEEE EEEEE EEEEE
Posto 2 DDDDD DDDDD DDDDD BBBBB BBBBB
Posto 3 CCCCC CCCCC CCCCC
Posto 4 XXX XXX XXX XXX XXX

1° viaggiatore: Padova-Ferrara
2° viaggiatore: Bologna-Roma
3° viaggiatore: Rovigo-Firenze
4° viaggiatore: Padova-Bologna
5° viaggiatore: Ferrara-Roma
6° la signora: Padova-Roma

Sembra che in questo caso la saturazione sia assicurata ed il posto per la signora sia disponibile. Però la Strategia B non può prevedere una diversa sequenza e richiesta di posti. Consideriamo ad esempio: 4° viaggiatore (DDD): Padova-Rovigo, 5° viaggiatore: Rovigo-Roma (EEE):

PD-RO RO-FE FE-BO BO-FI FI-RM
Posto 1 AAAAA AAAAA XXX XXX XXX
Posto 2 XXX XXX XXX BBBBB BBBBB
Posto 3 CCCCC CCCCC CCCCC
Posto 4 DDDDD EEEEE EEEEE EEEEE EEEEE

1° viaggiatore: Padova-Ferrara
2° viaggiatore: Bologna-Roma
3° viaggiatore: Rovigo-Firenze
4° viaggiatore: Padova-Bologna Rovigo
5° viaggiatore: Rovigo Ferrara-Roma
6° la signora: Padova-Roma

Anche con questa strategia di prenotazione la signora non può prenotare il biglietto pur essendoci sempre almeno un posto libero per tutto il viaggio. E allora, se non esiste una strategia o algoritmo in grado di assicurare la saturazione dei posti, potrebbe essere un idea proporre al viaggiatore, quando non risultino posti disponibili, una prenotazione “con cambio di posto obbligatorio” durante il viaggio, consentendogli così di salire sul treno richiesto. I benefici ?
1) Aumento del numero di passeggeri sui treni
2) Una maggiore trasparenza sulle prenotazioni, anche quando la proposta non sia accettata. (la signora non avrebbe più motivo di protestare)

L’algoritmo di determinazione della prenotazione con cambio posto può essere anche estremamente semplice. Basta dividere la tratta ricorsivamente in sottotratte e calcolare i posti liberi. Solo quando una sottotratta non è più divisibile e non vi sono comunque posti liberi il biglietto non può essere emesso.

Read Full Post »

Ho recuperato una applicazione robotica che avevo fatto per provare la piattaforma Microsoft Robotics. Si tratta di un algoritmo che istruisce un robot a perlustrare un’area senza conoscerne la topologia. Quando viene rilevato un ostacolo, il robot viene istruito su un percorso alternativo così via via l’applicazione costruisce la mappa dell’area. Potrebbe servire per verificare zone pericolose o inaccessibili alle persone, come ad esempio intercapedini di dimensioni ridotte anche senza alcun tipo di illuminazione. Ecco il video dimostrativo che ho registrato.

Read Full Post »