My computer in octombrie 2000

Știți momentul ala când cauți ceva și găsești altceva…? Ei bine, eu am găsit un CD de backup din anul de gratie 2002. Datele s-au copiat fără probleme chiar si dupa 20 de ani fabricantul CD-ului chiar se lauda pe coperta cu “lifetime durability”. Asa sa fie! Dar nu despre CD-uri voiam sa discut ci despre un screen shot din 29 octombrie 2002. Cum de unde stiu ca fix de atunci? Fișierul, bineînțeles, și-a păstrat data de creare dar, mai mult de atat, este un screenshot cu msn.com care-ți arata mare în coltul din dreapta ca este “Octomber 29”.

Mai intai, m-am întrebat daca e chiar un screen shot autentic de pe PC-ul meu de atunci sau o fi fost downloadat de pe net. M-am convins repede ca eu sunt autorul dupa ce am văzut software-ul instalat.

Asadar ce avem noi aici?

Windows 98SE – recunoaștem dupa zona de Quick Launch din Taskbar, unde găsim si ce software ava un utilizator din mileniul trecut. Da, anul 2000 face parte din secolul XX…

Winamp – Ce altceva? (Ce ascultam – THE CARS…..? )

Microsot Word 2000. Office 2000 a fost lansat în iunie 1999.

Microsoft Outlook – Un Outlook mai avansat decat versiunea „Express” care venea la pachet cu Internet Explorer

The Bat! Un client de email care există încă și în ziua de azi. Este făcut ce frații nostri de la RIT Labs, Chișinău.

Total Commander – Firește! N-are cum sa fie PC-ul meu fara TC. Pentru cei care au lucrat in DOS cu Norton Commander, TC a fost o alegere naturala. Mi-e si acum greu sa copii fișiere utilizând Windows Explorer sau alta interfață. * Inițial Total Commander purta denumirea de Windows Commander, dar dupa niște dispute legale domnul Christian Ghisler, autorul, a fost nevoit să renunțe la partea „Windows” din denumire.

Windows XP: end of story, dupa 12 ani

Pe 8 aprilie 2014 Windows XP a fost scos la pensie. În mod oficial: end of story. Neoficial,  XP va mai rămâne în peisaj cel puțin 2-3 ani, până când va scădea înspre 1% cotă de piață și se va stabiliza pentru alți 2-3 ani sau chiar mai mult. Acum în octombrie – la jumătate de an după ce i s-a retras suportul și s-a făcut mare tam-tam că o să ne cotropească virușii dacă nu facem update – XP încă deține 15% din cota de piață a calculatoarelor conectate la Internet.

Windows XP este un punct de referință în istoria sistemelor de operare. Din anii ’80 și până-n anul 2000, când a fost lansat Windows ME, toate sistemele de operare pentru „consumatori” au avut legătură cu MS-DOS. (firește avem în vedere tabăra Microsoft) Lansat în 2001, XP a fost primul sistem de operare pe care-l puteai instala acasă fără să fie nevoie de prezența MS-DOS. Acesta a putut fi cumpărat în mod oficial începând cu octombrie 2001 și a rămas foarte popular și după ce s-a lansat Windows Vista, ba chiar Windows 7.

Ce se întâmplă acum dacă am rămas fără suport?

Când termină suportul pentru un sistem de operare, Microsoft nu mai lansează patch-uri de securitate pentru acesta. Dacă între timp se descoperă o metodă de accesare neautorizată în timp ce rulați Windows XP, atunci sunteți expuși acestor atacuri generice, care vor da roade pe toate sistemele cu Windows XP. Asta în teorie. În practică nu va fi ceva teribil, căci s-a tot reparat în ultimii 12 ani la Windows XP și hackerii se vor concentra pe sistemele de operare mai noi, cu o cotă de piață mai mare.

Pe lângă lipsa patch-urilor de securitate, unele upgrade-uri software e posibil să lipsească pe viitor. De exemplu, în decembrie 2006 a fost lansată ultima versiune DirectX pentru Windows 98. Windows XP va avea aceeași soartă, dar nu cred că se va întâmpla prea curând. Pe partea de browsere de Internet, se va întâmpla gradual o abandonare a acestui sistem. Momentan, nici nu se pune problema.

De ce mai va mai rămâne XP printre noi?

În primul rând, va rula cel mai bine pe sisteme cu specificații modeste. Cerințele minime pentru Windows XP Home Edition sunt:

  • Procesor Pentium 233-megahertz (MHz) sau mai rapid (300 MHz este recomandat)
  • Minimum 64 mega baiți (MB) de RAM (128 MB recomandat)
  • Minim 1.5 giga baiți (GB) de spațiu liber pe hard disk
  • Placa video și monitor cu rezoluție Super VGA (800 x 600) sau mai mare

Așadar, pentru sistemele mai vechi sau laptop-urile modeste Windows XP va fi partenerul lor până când hardware-ul va ceda fizic. (it may take a while…)

Un alt motiv pentru ca XP va mai rămâne printre noi  – în special pentru anumite cazuri de nișă – este suportul pentru aplicațiile pe 16bit care nu pot fi rulate în emulator. Windows XP pe 32 de bit poate rula aplicații Windows pe 16bit care au fost scrise pentru Windows 3.1 sau în perioada în care s-a făcut tranziția la Windows 95/98 și nu era obligatoriu să scrii o aplicație pe 32bit, mai ales dacă nu erau avantaje evidente în cazuri unor softuri nu foarte complicate. Asemenea software-uri le întâlnim în general în sectorul industrial. De exemplu, la ultimul ITP, softul de testare a frânelor era pe 16bit, am întrebat operatorul și mi-a zis că stația ITP a fost construită în 1998 și tot atunci și standul de testare a frânelor. Teoretic aceste aplicații pot fi rulate și-n Windows 7, dar XP pare să aibă o compatibilitate mai bună, să nu uităm ca a fost lansat în 2001 și pe moment ar fi fost mare deranj dacă nu putea rula o aplicație scrisă doar cu 3-4 ani în urmă.

La nivel anului 2014, nu există hardware recent care să refuze să lucreze cu Windows XP. Ca să nu mai vorbim de hardware-ul mai vechi, unde avem parte de o selecție mai mult decât generoasă. XP se va putea instala cu ușurință și pe viitor pe sisteme mult mai sofisticate. Trebuie să ținem cont că XP nu suportă UEFI, dar toate implementările UEFI de astăzi au și modul CSM, adică permit ca PC-ul nostru să ruleze ca și cum am avea BIOS clasic, motiv pentru care am putut instala XP fără nicio problemă pe un i7-4790K @4Ghz. Firește, nu m-am bazat doar pe XP, dar un sistem dual boot Windows 7/XP nu mă deranjează deloc.

 

To be or not to be…

Primul Stagiu este o carte scrisa de subsemnatul si lansata pe 12.12.2012 in cadrul unui eveniment caritabil la libraria Carturesti din Iulius Mall Iasi.

Zeitgeist: Addendum – teoria consipiratiei cu adaugiri

Zeitgeist - The MovieLansat în 2007  Zeitgeist: the movie este un film documentar care a reuşit să nu treacă neobservat în ciuda resurselor minime cu care a fost realizat.   Documentarul este produs da capo al fine de catre Peter Joseph un tanar (probabil undeva intre 30 si 40 de ani) american din Carolina de Nord nascut într-o familie din clasa mijlocie dupa cum putem afla de pe site-ul dedicat seriei. Pina acum numai prin intermediul Google Video filmul a avut 50.000.000 de vizualiari şi a fost tradus in 23 de limbi.

Filmul este structurat in trei părţi unde sunt disecate urmatoarele subiecte:

  • Partea I – “The Greatest Story Ever Told” – despre creştinim şi cum că acesta ar fi o mixtură dintre alte religii antice, astrologie şi tradiţii. Greu de digerat pentru orice creştin.
  • Partea a II-a “All the World’s a Stage” – despre evenimentele din 11 septembrie 2001
  • Partea a III-a “Don’t Mind the Men Behind the Curtain” – despre bani şi dobânzi

Ce inseamna Zeitgeist?

Zeitgeist face referire la starea de spirit dintr-o anumită perioadă de timp.

Zeit⋅geist – noun German.

the spirit of the time; general trend of thought or feeling characteristic of a particular period of time.

…and now the movie:

The Addendum – continuarea  vine şi cu o soluţie…

The Addendum a fost lansat in octombrie 2008. La fel cum Terminator 2 a fost considerat o continuare mai bună decât filmul original la fel putem spune şi despre Zeitgeist Addendum.

Probabil cea mai interesantă parte din tot filmul şi destul de bine documentată este cea cu privire la mecanica banilor, cum sunt creaţi acestia şi cum politica monetară bazată pe imprumuturi-datorii-dobânzi ne face sclavii sistemului.

Mai mult filmul propune şi o miscare, iar salvarea noastră pare să fie schimbare fundamentală a economiei actuale dintr-una capitalistă într-una bazată pe resurse…

Bilant agenti economici 12/2008 (societati comerciale)

Bilant agenti economici 12 2008

Aplicatie pentru prelucrarea asistata, validarea, listarea si obtinerea formatului electronic la 31 decembrie 2008 pentru situatiile financiare. Aplicatia include instructiuni de utilizare, norme, corelatii, structura fisierelor de raportat pe discheta si ofera posibilitatea listarii de formulare goale sau in diferite faze ale completarii.


Instructiuni de lucru

Aplicatia ofera posibilitatea incarcarii datelor pt.mai multi agenti economici.

Daca doriti sa selectati un agent economic deja incarcat optati pt.’Agent existent’ apasati cu mouse-ul pe butonul-sageata din dreapta baghetei galbene si apoi alegeti din lista codul de identificare al agentului dorit.
Daca doriti sa incarcati un agent nou optati pt.’Agent nou’.

Aplicatia are urmatoarele functii principale care pot fi accesate utilizand butoanele aferente:
– Incarcare/ actualizare/ verificare bilant
– Listare bilant  (daca salvati formularele necompletate puteti apoi folosi butonul ‘Listare bilant’ pt.obtinerea formularelor goale cu conturi completate pe randuri).
– Discheta pt.unitatea fiscala
– Preluare date din balanta contabila pt.formularele 10 si 20

Butoanele aplicatiei continute in formularele 10, 20, 30 si 40 sunt urmatoarele :
———————————————————————————
– butoanele galbene (‘?’)               – pt.explicatii suplimentare
– butonul (‘Exit’)                      – pt.iesirea din functia de ‘Incarcare/ actualizare/ verificare bilant’ cu/ fara salvare date
– butoanele (‘+’) si (‘-‘)              – pt.minimizarea/maximizarea ferestrei curente de lucru; din minimizarea fereastrei se revine cu ‘dublu clic’ pe  butonul ‘Bilant’ situat in partea stanga-jos pe Desktop, deasupra barei Start Windows
– butoanele (’10_1′),(’10_2′),(’10_3′),(’20_1′),(‘210_2′),(’30’) si (’40_1′),(’40_2′), – pt.navigare intre formulare si paginile lor
Obs.: Corelatiile pt.fiecare formular si intre formulare apar in zona colorata in roz.

– butonul (‘Lista’)                     – pt.vizualizarea/ listarea unei liste de control
Obs.: cu butonul (‘Lista’) puteti lista formulare goale (fara conturi completate pe randuri) inainte de inceperea incarcarii datelor
– butonul (‘Instr’)                     – pt.vizualizarea/ listarea instructiunilor de lucru, a legislatiei aferente si informatii legate de structura fisierelor text create cu alte aplicatii (structura este identica cu cea a fisierelor ce se transmit pe discheta pt.unitatea fiscala)
– cursori derulare sus/ jos si stanga/ dreapta
– calculator

Obs.:

1 – randurile din formulare colorate in gri sunt randuri rezultante (contin formule de calcul intre randuri sau insumari pe orizontala/ verticala) si nu mai trebuiesc introduse, ele fiind calculate si afisate automat.
2 – navigarea pe coloana se face cu tastele (‘Enter’), (‘sageata in jos’),  (‘sageata in sus’).

  Descarca kit-ul de instalare:

Program oferit de Ministerul Economiei si Finantelor.

Actualizat in 03/12/2008 (versiunea 1.0.0)

  instal_bilant1208.zip (1.4 MiB, 1,956 hits)
You need to be a registered user to download this file.

Profita cat esti tanar

Unele lucruri nu merg decat pina la o anumita varsta…

Notiunea de non-drept (Carbonnier)

Profesor de drept civil si decan al Facultatii de Drept din Poitier, iar apoi profesor de drept civil si sociologie juridica la Facultatea de Drept din Paris, Jean Carbonnier ocupa un loc deosebit in sociologia juridica postbelica. Este considerat unul dintre marii maestri ai gandirii juridice contemporane si ai gandirii in general: civilist, sociolog, legiuitor, istoric, de asemenea psiholog si om de stiinta, cu un spirit universal, lui Jean Carbonnier nici un domeniu al gandirii nu ii este strain. Domina gandirea juridica franceza in special in dreptul civil dupa disparitia lui Rippert.
In anul 1972 Carbonnier publica o lucrare remarcabila de sociologie juridica generala intitulata “Sociologie Juridique”.
Intr-un articol publicat in 1963, Jean Carbonnier dezvolta teoria non-dreptului, care si-a gasit o deplina autoritate in lumea ideilor socio-juridice contemporane.
In opinia sa, non-dreptul reprezinta absenta dreptului in cadrul acelor raporturi umane in care ar fi avut vocatie de reglementare. De asemenea precizeaza posibilitatea confundarii non-dreptului cu dreptul injust sau anti-dreptul, fenomene juridice positive ce dau doar o aparenta de drept. Non-dreptul mai poate fi confundat cu sub-dreptul sau fenomenele infrajuridice (produse de subcultura unor categorii sociale).
Non-dreptul ca un dat social, in conceptia lui Carbonnier, ar avea trei mari surse de alimentare:

a) Autolimitarea dreptului – unde se precizeaza existenta locurilor de non-drept: dreptul de azil pare a fi o insula de non-drept penal; locuintele proprietate personala sunt mai greu supuse presiunii juridice (perchezitii sau vizite la domiciliu) decat locurile publice, de altfel, infractiunile care apartin partii speciale a Codului Penal si contin in latura lor obiectiva, conditia publicitatii “per a contrario”, proclama si locuri de non-drept fata de fapta vizata si anume ascunzatorile.
Autolimitarea dreptului se realizeaza si pe criteriul temporal, aici Carbonnier aducand ca exemplu calendarul juridic roman, unde zilele erau impartite in zile ingaduite pentru judecata – dies fasti – si zile oprite pentru judecata – dies nefasti. De altfel, Carbonnier afirma ca exista si in zilele noastre un calendar juridic, dies nefasti fiind duminici, zile de sarbatoare, nopti, toiul iernii. In aceste perioade nici actele de executie nu sunt autorizate, dovedind lipsa de plenitudine juridical a acestor acte legislative care permit o relaxare a presiunii sociale in timpul intervalelor de non-drept.
O autolimitare a dreptului este principala in campul non-dreptului “intelectual”: acest concept semnificand in conceptia lui Carbonnier “acel regim juridic in care, regula de drept prezentand lacune si extinderea prin analogie fiind interzisa, anumite situatii nu sunt, in mod conceptual, cuprinse de catre drept”, acest aspect este exemplificat de autor prin urmatoarele: “principiul liberal al legalitatii delictelor si al pedepselor are drept consecinta discontinuitatea dreptului criminal. Prin acest principiu, dreptul penal s-a constituit de la sine intr-o retea, intr-o plasa, unde golurile sunt mult mai pretioase decat plinurile”. Maxima: “tot ce nu este interzis, este permis” se poate explica in acest caz prin: “tot ce nu este in mod expres judiciat, este non-drept”. In acest fel, dreptul este considerat o exceptie iar non-dreptul un principiu.

b) Autoneutralizarea dreptului – Carbonnier asociaza autoneutralizarea dreptului cu un sarpe care isi musca coada, fapt des intalnit in cazurile in care contradictiile interne tind sa neutralizeze juridicitatea acestor fenomene sociale. Demonstratia acestui studiu are la baza doua exemple:
“Exigenta dovezii elimina in afara dreptului tot ce nu poate fi dovedit”: pentru o infinitate de operatii juridice nu exista nici o dovada, sau doar dovezi rapid perisabile (amintirile, importante in cazul unei marturii, se sterg in cateva zile); si “existenta unei interventii umane pentru a savarsi dreptul tinde a scoate in afara de drept tot ce ar valora mai putin decat aceasta interventie”.

c) Rezistenta la drept – este al treilea fapt al non-dreptului ca un dat social. Exemple de non-drept sunt: infractionalitatea nerelevanta pe plan penal si nulitatea virtuala, nesanctionata judiciar pe plan civil. Carbonnier considera insa ca pentru a ne afla pe taramul non-dreptului nu este suficienta incalcarea normei juridice.
Non-dreptul ca o alegere individuala – este al doilea sector al inventarului lui Carbonnier. In cadrul factorilor de non-drept, vointa individuala a omului are o deosebita importanta. Alegerile oamenilor sunt exprimate difuz sau organic:
a) Alegerile difuze – in opinia lui Carbonnier dreptul este facultativ, deoarece un individ care face parte dintr-o actiune juridica va alege sau nu un comportament juridic prevazut de norma.
b) Alegerile organice – in viziunea lui Carbonnier acestea sunt identificate pe de o parte cu situatiile de fapt si pe de alta cu situatiile de amicitie. Situatiile de fapt sunt reflexe ale dreptului; situatiile de amicitie reprezinta pe langa un non-drept, o alternativa a dreptului.
Carbonnier imparte interpretarea fenomenelor de non-drept in doua arii de investigatii: relevarea raportului ierarhic dintre drept si non-drept si relevarea raportului cronologic dintre drept si non-drept.
Non-dreptul nu se manifesta doar in viata laica a individului, ci si in cea religioasa prin diferite forme de protestantism.
Raportul ierarhic intre drept si non-drept
Carbonnier deduce o dualitate a ipotezelor:
– viziunea juristilor care pronunta caracterul primar al dreptului si caracterul secundar al formelor de non-drept.
– invocandu-l pe vestitul Tao, viziunea spiritelor mai putin dogmatice, care releva caracterul principal al fenomenelor de non-drept fata de cele de drept.
In legatura cu prima viziune, existenta non-dreptului este pusa in evidenta doar in raport cu dreptul.
In relatie cu cea de-a doua viziune, el demonstreaza conceptia potrivit careia numai dreptul ar constitui regulatorul vietii sociale, conceptie pozitivista.
Raportul cronologic intre drept si non-drept
Aceasta problematica incheie studiul lui Carbonnier. El isi insuseste teza existentei dreptului si in societatile primitive, fireste, un drept mai rudimentar, de asemenea isi insuseste teza sustinuta de Durkheim a dreptului dezvoltat in raport invers proportional cu non-dreptul.

In aceasta nota incheie Carbonnier studiul sau.

Mihos

Autor: Victor Adrian Prisacariu – Universitatea Tehnică “Gh. Asachi”, Iași

Conducător teză: Prof. dr. ing. Dan Gâlea

Mihos

Abstract

Realitatea augmentată înseamnă combinarea datelor generate de calculator cu cele obținute din lumea reala. Cu ajutorul realității augmentate interacțiunea cu calculatorul nu mai este doar un banal schimb fata – ecran. Aceasta se dizolvă în obiectele și spațiul înconjurător. Ea încetează chiar sa fie un act conștient și intenționat.

O interacțiune completă intre lumea reală și cea virtuală trebuie sa fie bidirecționala: calculatorul trebuie sa fie capabil sa înțeleagă lumea reala, iar obiectele generate de calculator trebuie sa fie complet compatibile cu lumea reala in care sunt plasate.

Aceasta lucrare își propune sa realizeze un sistem ce folosește realitatea augmentata pentru a permite unui utilizator uman sa joace șah cu un calculator, folosind o tabla reală. Calculatorul observa tabla cu ajutorul unei camere și răspunde la mutările făcute de utilizatorul uman, prin voce.

Sistemul permite și jocuri intre 2 utilizatori umani conectați prin internet. În acest caz fiecare utilizator are propria sa cameră și tablă de șah. Sistemul observă și înțelege mișcările făcute de cei 2 utilizatori si le transmite de la unul la celălalt prin internet.

Sistemul nu face nici o presupunere asupra:

  • Culorii pieselor de pe tabla de șah
  • Mărimea tablei de șah
  • Aspectul vizual al tablei de șah
  • Intensitatea și direcția luminii

Sistemul face următoarele presupuneri:

  • Tabla de șah este complet conținută in imagine.
  • Camera observă tabla de șah de la aceeași înălțime ca un utilizator uman.
  • Imaginea conține o singură o tablă de șah și nu conține altă structură ce poate fi confundată cu o tablă de șah.
  • Tabla nu se mișcă după ce piesele au fost aranjate.
  • Utilizatorul uman respectă regulile jocului de șah.

Sistemul poartă numele de Mihos, după numele zeului egiptean al vederii.

Introducere

Șahul este un joc jucat de 2 jucători. Un jucător joacă cu piese albe, al doilea cu piese negre. Fiecare jucător are 16 piese la începutul jocului: un rege, o regină, două ture, doi nebuni, doi cai și opt pioni. Jocul se joacă pe o tablă cu 64 de pătrate: 8 rânduri și 8 coloane. Pătratele sunt alternativ albe și negre. Pentru a facilita notarea mișcărilor fiecare pătrat are o adresă proprie. Din punctul de vedere al jucătorului alb rândurile sunt numerotate 1, 2, 3, 4, 5, 6, 7, 8 de jos în sus, iar coloanele a, b, c, d, e, f, g, h de la dreapta la stânga. Adresa fiecărui pătrat este formata prin combinarea literei pentru coloană, cu cifra pentru rând. De exemplu pătratul din dreapta jos este are adresa a1 (1).

In studiul șahului majoritatea cercetărilor s-au axat pe inteligență artificială, pe construirea de programe capabile să joace șah (2). Aceste studii au fost parțial încheiate când un calculator a reușit să învingă un campion mondial de șah (3). Un studiu similar cu acesta a urmărit citirea mișcărilor de șah de către roboți (4).

Pentru captura de imagine Mihos folosește o camera web si imagini cu rezoluție de 640×480, 15fps.

Mihos întâi detectează o tablă de șah fără piese aflată in fața camerei. A fost implementat un algoritm, explicat in detaliu in Capitolul 2, care detectează cele 64 de pătrate ale tablei de șah.

Mihos nu restricționează poziția camerei raportată la tabla de șah. Din acest motiv este necesară determinarea matricei de proiecție 2D, din in care tabla de șah se află in o postură arbitrară fată de cameră (figura 1.1) , in o imagine in care camera este perpendiculară pe tabla de șah (figura 1.2).


Figura 1.1 – Camera în o postură arbitrară față de tabla de șah

Folosind parametri intrinseci ai camerei Mihos este capabil să găsească și coordonatele 3D ale tablei de șah, raportate la coordonatele camerei. Este folosit algoritmul Iterației ortogonale (5), care va fi detaliat in Capitolul 3.


Figura 1.2 – Camera
în o postură ideală fată de tabla de șah

După detecția inițială a tablei de șah Mihos va urmări mutările utilizatorului uman si după ce a fost detectată o mutare scena va fi analizată folosind tehnici bazate atât pe procesare de imagine cât și pe cunoștințe. Mihos urmărește mărimea diferenței intre 2 imagini pentru a detecta producerea unei mișcări si apoi variații in culoare in aceeași diferență pentru a vedea ce poziții pe tablă s-au modificat. Programul folosește reguli de șah și alte reguli empirice pentru a valida mutările detectate din imagine. Acest procedeu este descris in capitolele 4 și 5.

Mihos este scris în principal folosind platforma .NET, versiunea 3.5 și limbajul de programare C#, versiunea 3.0. Totuși anumite părți din program au necesitat folosirea de alte platforme sau limbaje de programare. Astfel algoritmul de găsire al tabelei de șah este scris in Matlab, versiunea 2008a, iar algoritmii de detecție și interpretare a mișcării sunt scriși in Managed C++, versiunea 9.

Aplicația Windows oferă utilizatorului o interfață în care obiecte 3D sunt generate și desenate în timp real peste o imagine de la o cameră web. Acest fel de interfață nu se putea obține, cu performanțe bune și în timp relativ scurt, decât folosind Windows Presentation Foundation din platforma .NET 3.0 și 3.5. În plus platforma .NET 3.5 include și extensii precum Linq, care au accelerat considerabil procesul de implementare. O altă caracteristică ce a determinat alegerea platformei .NET este interoperabilitatea foarte bună cu alte limbaje de programare și platforme (Matlab și Managed C++).

Am implementat algoritmii de detecție a tablei și de recuperare a posturii în Matlab pentru a accelera procesul de dezvoltare. Matlab nu oferă viteză de procesare foarte mare, dar în partea de detecție a tablei de șah o diferență de 200ms nu este foarte importantă.

Algoritmii de detecție și înțelegere a imaginii necesită viteză mare de procesare, pentru a obține o interacțiune in timp real între om și calculator. Este deci nevoie de C++. Pentru a face interfațarea cu platforma .NET mai rapidă și sigură am folosit extensiile managed ale C++, care permit folosirea obiectelor din platforma .NET și in un mediu unmanaged, precum C++.

Detecția tablei de șah

Înainte de a putea detecta și înțelege mișcări trebuie detectată tabla de șah. Aceasta poate fi de orice formă, cu orice culori și in orice postură față de cameră. Am impus totuși restricția ca ea să fie inclusă complet în imagine și in imagine să nu existe alte structuri care ar putea fi confundate cu o tablă de șah.


Figura 2.1 – Detecția tablei de șah

Prima etapă in detecția tablei de șah este achiziția imaginii. Mihos poate lucra cu orice camera video, conectată la calculator si compatibilă DirectShow. In continuare voi folosii o camera Philips SPC900NC, la rezoluția standard de 640×480, 15fps. Detalii mai multe despre conectarea camerei web la calculator vor fi date in capitolul 5.

FPS (frames per second) este unitatea de măsură a frecvenței cu care un producător de imagine produce imagini consecutive.

După achiziție imaginea este convertită in nuanțe de gri, după care a doua etapă este aplicarea operației morfologice de dilatare imaginii, prin care valoarea unui pixel din imagine devine maximul dintre valoare lui și valorilor vecinilor lui.

Pixelul este cea mai mică componentă a unei imagini.

Imaginea este apoi binarizată. Cele 256 de nivele de gri devin 2 nivele, alb și negru.

În imaginea binarizată sunt detectate contururile parților negre (intre care si pătratele negre, dar si alte contururi negre din imagine).

Aceste poligoane detectate sunt reduse folosind algoritmul Douglas Peucker la doar câteva segmente, apoi aceste segmente sunt reduse 4 folosind câteva reguli statistice si empirice.

Următoare etapă este aplicarea altor reguli statistice și empirice figurilor cu 4 laturi detectate în imagine. Rămân maxim 35 de pătrate, intre care și pătratele negre din tabla de șah.

Folosind morfologia tablei de șah găsesc orientarea tablei și 4 puncte care vor fi folosite apoi la recuperarea posturii tablei.

Morfologie matematică și dilatarea imaginii

Morfologia matematică este analizarea imaginilor folosind funcții matematice și teoria mulțimilor.

Mulțimile in morfologia matematică reprezintă formele obiectelor în o imagine. În imaginile binare toate mulțimile sunt membre ale spațiului întreg , unde fiecare element al unei mulțimi este un vector 2D, ale cărui coordonate sunt coordonatele ale pixelului în imagine. În imaginile în nuanțe de gri elementul unei mulțimi este , unde g este valoarea intensității. Mulțimi in spații n – dimensionale pot conține informații suplimentare (de exemplu culoare) (6).


Figura 2.1.1 – Două mulțimi A și B. (sursă (6))

Fie și două mulțimi în , având componentele și (figura 2.1.1). Câteva exemple de operații cu cele 2 mulțimi sunt:

  • Translarea lui cu , notată , definită ca:


  • Reflexia lui B, notată , definită ca:


  • Complementul lui A, notat , definit ca:


  • Diferența , definită ca:


Fie mulțimea vidă. Dilatarea lui A prin B este definită ca:


Dilatarea este deci mulțimea tuturor deplasărilor x astfel încât intersecția lui A cu B conține cel puțin un element. B este numit elementul structural în dilatare.

Dacă presupunem imaginea în nuanțe de gri sursă , elementul structural , domeniul lui și domeniul lui , atunci dilatarea pentru o imagine în nuanțe de gri este:


Mihos folosește dilatarea pentru a micșora părțile întunecate și deci pentru a separa pătratele negre de restul tabelei (figura 2.2.3).

Conversia imaginii: imagine color în imagine cu nuanțe de gri și apoi in imagine binară

Înainte de dilatare este nevoie de o conversie a imaginii din color în nuanțe de gri. După dilatare imaginea este convertită în imagine binară.

Imaginile color sunt in spațiul de culori RGB.

In spațiul de culori RGB fiecare culoare este reprezentată ca o combinație de 3 culori, roșu, verde și albastru.

Fie imaginea color inițială, imaginea în nuanțe de gri si imaginea binară. În acest caz , unde r, b, g sunt componentele roșu, verde și albastru ale culorii pixelului de la coordonatele , , unde i este valoarea intensității pixelului de la coordonatele în imaginea in nuanțe de gri si , unde v este valoarea intensității pixelului la coordonatele in imaginea binarizată.

Pentru a obține intensitatea pixelilor aplicăm formula:

Imaginea binară are numai 2 culori, 0 pentru negru și 255 pentru alb. Binarizarea se face in funcție de o valoare prag. Toate intensitățile mai mici decât valoarea prag vor devenii 0, și toate mai mari vor devenii 1. Mihos folosește pentru a determina valoarea prag următoarea formulă:



Figura 2.2.1 – Imaginea color de la cameră


Figura 2.2.2 – Imaginea după dilatare


Figura 2.2.3 – Imaginea în nuanțe de gri


Figura 2.2.4 – Imaginea după binarizare

Trasarea conturului în jurul pătratelor negre

Pentru a găsii contururile Mihos întâi caută toate punctele ce mărginesc zonele negre. Un punct mărginește o zonă neagră daca are in apropierea lui pixeli albi. În continuare sunt grupate punctele după distanța intre ele și sunt găsite marginile zonelor negre (figura 2.3.1).


Figura 2.3.1 – Imaginea cu marginile marcate

În acest moment am găsit o lista de mulțimi de puncte, care mărginesc zone negre. Fiecare mulțime de puncte va fi simplificată folosind algoritmul Douglas Peucker și apoi din segmentele rămase vor fi alese numai 4, in funcție de unghiul dintre ele (rămân cele 4 segmente cu unghiul dintre ele cât mai apropiat de 90).

Algoritmul Douglas Peucker

Algoritmul Douglas Peucker folosește apropierea unui punct de o linie pentru a determina daca el face sau nu parte din linia respectivă.

Algoritmul funcționează de sus în jos, pornind cu o aproximare inițială a poligonului: o linie cu primul punct din lista de puncte la un capăt si cu ultimul la celălalt capăt. Apoi punctele rămase sunt testate pentru apropierea de această linie. Dacă un punct este mai departe de linie cu o toleranță , atunci este adăugat la simplificare și este creată o nouă aproximare a poligonului. Folosind recursie procesul continuă până când toate punctele au fost ori adăugate în poligon, ori distanța dintre ele și linie este mai mică decât toleranța (7).

Algoritmul este exemplificat în figura 2.3.2.


Figura 2.3.2 – Algoritmul Douglas-Peucker


Figura 2.3.3 – Rezultatul simplificărilor poligoanelor detectate

După cum se observă in figura 2.3.3 au fost detectate toate pătratele din tablă, dar au fost detectate și alte pătrate. Este chiar posibil sa nu fie detectate toate pătratele din tablă, dar să fie detectate alte pătrate din imagine.

Filtrare empirică, statistică și morfologică a pătratelor detectate

Din pătratele detectate se aleg numai acelea care respectă următoarele reguli empirice:

  • să nu fie prea mici
  • raportul dintre cea mai mică latură și cea mai mare să fie mai mic decât 0.6

După eliminarea empirică Mihos face una statistică. Sunt luați in calcul următorii factori:

  • Aria
  • Raportul între latura cea mai mică și cea mai mare
  • Raportul între unghiurile dintre laturi
  • Numărul de muchii detectate de algoritmul Douglas-Peucker.

Pentru fiecare din acești factori sunt calculați parametrii pentru o distribuție gaussiană: este media factorului (media ariilor detectate de exemplu) , iar este variabilă funcție de factor:

  • Aria:
  • Raportul între latura cea mai mică și cea mai mare:
  • Raportul între unghiurile dintre laturi:
  • Numărul de muchii detectate de algoritmul Douglas-Peucker:

    Distribuția gaussiană are 2 parametrii: media și deviația standard :


Fiecare pătrat din cele detectate va avea 4 probabilități, de corespondență la factorii de mai sus. Probabilitatea ca un pătrat să aparțină tablei este dată de produsul acestor 4 probabilități.


Figura 2.4.1 – Rezultatul eliminării statistice și empirice a pătratelor

Se observă în figura 2.4.1 că eliminarea nu a este perfectă. Este posibil ca să rămână pătate care nu aparțin tablei de șah, dacă ele sunt similare cu cele care aparțin tablei.

Ultima filtrare este una bazată pe morfologia tablei. Se poate observa că tabla de șah are o singura diagonala formată din pătrate negre. Aceasta trece prin centrul celor 8 pătrate. Daca deci tragem o linie din centrul fiecărui pătrat la centrul fiecărui alt pătrat exista o singură pereche de pătrate a cărei linie trece prin alte 6. Aceste 2 pătrate determină și orientarea tablei. Similar se observă că există si 3 perechi de pătrate a căror linie trece prin alte 5 pătrate. Pornind de la aceste premize vom găsii 8 pătrate, câte 2 pentru fiecare colț al tablei (figura 2.4.2).


Figura 2.4.2 – Cele 8 pătrate care marchează colțurile tablei

Interesat? Intra in contact cu autorul pentru restul lucrarii.

Cuprins

Cuprins

Abstract    2

Cuprins    3

Listă de figuri    4

Capitolul 1 – Introducere    6

Capitolul 2 – Detecția tablei de șah    9

2.1 Morfologie matematică și dilatarea imaginii    10

2.2 Conversia imaginii: imagine color în imagine cu nuanțe de gri și apoi in imagine binară    11

2.3 Trasarea conturului în jurul pătratelor negre    12

2.3.1 Algoritmul Douglas Peucker    12

2.4 Filtrare empirică, statistică și morfologică a pătratelor detectate    13

Capitolul 3 – Recuperarea posturii    16

3.1 Transformări geometrice    16

3.2 Construirea matricei de proiecție    17

3.3 Problema estimării posturii    18

3.3.1 Modelul camerei    18

3.3.2 Formularea problemei    21

3.3.3 Algoritmul Iterației ortogonale    22

Capitolul 4 – Detecția mișcării    27

4.1 Bază matematică    27

4.2 Procedeul de detecție a mișcării    29

Capitolul 5 – Înțelegerea mișcării    32

5.1 Histograma    32

5.2 Produsul de convoluție    33

5.3 Procedeul de înțelegere a mișcării    34

5.4 Probleme la detecție și rezolvări propuse    36

5.4.1 Simulare 3D    36

5.4.2 Filtru Laplace    37

5.4.3 Diferența între deviații standard    38

5.4.4 Spațiul de culori RGB normalizat    39

5.5 Exemplu    39

Capitolul 6 – Aplicația Windows    40

6.1 Interfața cu utilizatorul    42

6.1.1 Utilizatori    42

6.1.2 Fereastra principală și cea de vizualizare a istoricului    43

6.1.3 Fereastra de creare și conectare la jocuri în rețea    44

6.1.4 Fereastra Joc    45

6.1.5 Detalii de implementare    47

6.2 Procesarea de imagine    48

6.2.1 Matlab    48

6.2.2 Managed C++    49

6.3 Grafica 3D    50

6.4 Motorul de șah    52

6.5 Conectare în rețea    52

6.6 Flickr    55

6.7 Audio    55

Capitolul 7 – Concluzii    56

Bibliografie    58

Lista de figuri

Listă de figuri

Figura 1.1 – Camera în o postură arbitrară față de tabla de șah    7

Figura 1.2 – Camera în o postură ideală fată de tabla de șah    8

Figura 2.1 – Detecția tablei de șah    9

Figura 3.1 – Imagine obținută de la cameră în cazul ideal    16

Figura 6.1 – Arhitectura Mihos și limbaje de programare folosite    40

Figura 2.1.1 – Două mulțimi A și B. (sursă (6))    10

Figura 2.2.1 – Imaginea color de la cameră    11

Figura 2.2.2 – Imaginea după dilatare    11

Figura 2.2.3 – Imaginea în nuanțe de gri    11

Figura 2.2.4 – Imaginea după binarizare    11

Figura 2.3.1 – Imaginea cu marginile marcate    12

Figura 2.3.2 – Algoritmul Douglas-Peucker    13

Figura 2.3.3 – Rezultatul simplificărilor poligoanelor detectate    13

Figura 2.4.1 – Rezultatul eliminării statistice și empirice a pătratelor    14

Figura 2.4.2 – Cele 8 pătrate care marchează colțurile tablei    15

Figura 3.3.1 – Modelul pinhole al camerei    19

Figura 3.3.2 – Problema estimării posturii (sursa (5))    21

Figura 4.1.1 – Două imagini consecutive și diferența obținută între ele    27

Figura 4.1.2 – Deviația standard la o variabilă aleatoare (sursă (17))    28

Figura 4.2.1 – Procedeul de detecție al mișcării unei piese    29

Figura 4.2.2 – Mișcare de mână, finalizată cu mutare de piesă    31

Figura 4.2.3 – Mișcare de mână, nefinalizată cu mutare de piesă    31

Figura 5.1.1 – Imagine inițială și histograme pentru componente roșu, verde și albastru    32

Figura 5.3.1 – Procedeul folosit pentru înțelegerea mișcării    34

Figura 5.3.2 – Imaginile înainte și după mișcare și diferența între ele    35

Figura 5.3.3 – Stânga: histogramă pentru pătrat ocupat, dreapta: histogramă pentru pătrat liber    35

Figura 5.4.1 – Aranjarea inițială a simulări    37

Figura 5.5.1 – Pătrate detectate    39

Figura 5.5.2 – Simulare de mutare    39

Figura 6.2.1 – Fereastra de selecție și cea de creare utilizatori    42

Figura 6.1.2 – Ranguri de jucători în Mihos    42

Figura 6.1.3 – Reprezentare utilizatori în Mihos    43

Figura 6.1.4 – Fereastra principală    43

Figura 6.1.5 – Fereastra My History (Istoricul meu) 44

Figura 6.1.6 – Fereastra de creare și conectare la jocuri în rețea    44

Figura 6.1.7 – Fereastra Joc înainte de detecție    45

Figura 6.1.8 – Fereastra Joc după detecție, selecția dificultății    45

Figura 6.1.9 – Fereastra joc cu piesele 3D, în așezarea inițială    46

Figura 6.1.10 – Fereastra joc cu piesele 3D, după câteva mișcări    46

Figura 6.1.11 – Fereastra joc cu piesele 2D, după câteva mișcări    46

Figura 6.1.12 – Selecția camerei    45

Figura 6.1.13 – Timer și istoric mutări    46

Figura 6.1.14 – Arhitectura WPF    47

Figura 6.3.1 – Modele 3D pentru piesele de șah    51

Figura 6.5.1 – Arhitectura client – server    52

Figura 6.5.2 – Conectarea la server    53

Figura 6.5.3 – Creare joc nou în rețea    54

Figura 6.5.4 – Anulare joc existent în rețea    54

Bibliografie

Bibliografie

1. Rayment, W.J. Chess Rules. Chess Rules. [Interactiv] [Citat: 2008 Mai 2008.] http://www.conservativebookstore.com/chess/.

2. Wikipedia Chess Engines. Wikipedia. [Interactiv] [Citat: 7 Mai 2008.] http://en.wikipedia.org/wiki/Chess_engine.

3. Wikipedia Deep Blue. Wikipedia. [Interactiv] [Citat: 7 Mai 2008.] http://en.wikipedia.org/wiki/IBM_Deep_Blue.

4. A chess-playing robot: lab course in robot sensor integration. Groen, F.C.A., și alții. 6, s.l. : IEEE, 1992, Instrumentation and Measurement, IEEE Transactions on, Vol. 41.

5. Lu, Chien-Ping, Hager, Gregory D. și Mjolsness, Eric. Fast and Globally Convergent Pose Estimation from Video Images. IEEE Trans. Pattern Analysis and Machine. 2000, Vol. 22, 6.

6. Gonzales, R. C. și Woods, R. E.
Digital Image Processing . s.l. : Addison Wesley, 1993.

7. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. Douglas, David și Peucker, Thomas. 112-122, 1973, The Canadian Cartographer, Vol. 10(2).

8. Visual Servo Control of Robots Using Kalman Filter Estimates of Relative Pose. Wilson, W. J. 12th IFAC World. Congress. Vol. 19, pg. 399-404.

9. Superior Augmented Reality Registration by Integrating. State, Andrei, și alții. 1996. Proceedings of the 23rd annual conference on Computer graphics and interactive techniques. ISBN 0-89791-746-4.

10. Grimson, W. E. L.
Object Recognition by Computer. Cambridge Mass. : MIT Press, 1990.

11. An Analytic Solution for the Perspective 4-Point Problem. Horaud, Radu P., și alții. 1989 : s.n. Computer Vision, Graphics and Image Processing. Vol. 47, pg. 33-34.

12. Ganapathy, S.
Decomposition of transformation matrices for robot vision. s.l. : IEEE, 1984.

13. Wikipedia Gauss-Newton Algorithm. Wikipedia. [Interactiv] [Citat: 9 Mai 2008.] http://en.wikipedia.org/wiki/Gauss-Newton_algorithm.

14. Three-Dimensional Object Recognition from Single Two-Dimensional Images. Lowe, David G. [ed.] ACM. 3, s.l. : ACM, 1987, Artificial Intelligence, Vol. 31, pg. 355-395. ISSN 0004-3702.

15. Vezhnevets, Vladimir. GML MatLab Camera Calibration Toolbox. Graphics and Media Lab. [Interactiv] http://research.graphicon.ru/calibration/gml-matlab-camera-calibration-toolbox.html.

16. Closed-Form Solution of Absolute Orientation Using Orthonormal Matrices. Horn, Berthold K.P, Hilden, Hugh M. și Negahdaripour, Shahriar. Aprilie 1987, Journal of the Optical Society of America , Vol. 4, p. 629.

17. Wikipedia Standard Deviation. Wikipedia. [Interactiv] [Citat: 11 Mai 2008.] http://en.wikipedia.org/wiki/Standard_deviation.

18. Skarbek, W. și Koschan, A.
Colour image segmentation – a survey. s.l. : Institute for Technical Informatics, Technical University of Berlin, 1994.

19. Robust Pose Estimation from a Planar Target. Schweighofer, Gerald și Pinz, Gerald. 12, s.l. : IEEE, 2006, IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, Vol. 28.

CAEN 2008 -Clasificarea activităţilor din economia naţională

Introducere

Ce este CAEN?

CAEN (CAEN – clasificarea activităţilor din economia naţională))reprezintă acronimul utilizat pentru a desemna clasificarea statistică naţională a activităţilor economice din România. Această clasificare a fost proiectată pentru a permite gruparea pe criterii de omogenitate a datelor referitoare la “unităţi statistice”, cum ar fi, de exemplu, o uzină sau un grup de uzine ce constituie o entitate economică, o întreprindere. Clasificarea asigură baza pentru pregătirea unei game largi de date statistice (producţie, factori de producţie, formarea de capital şi tranzacţiile financiare) ale acestor unităţi.

Ce sunt clasificările statistice?

O clasificare statistică prezintă următoarele caracteristici principale:

a) organizare ierarhică strictă şi detaliată care face posibilă culegerea şi prezentarea informaţiilor la diverse nivele de agregare (în funcţie de disponibilitatea datelor);

b) acoperirea exhaustivă a domeniului observat;

c) încadrarea fiecărui fenomen sau obiect analizat într-o singură entitate de clasificare (entităţi ce se exclud reciproc);

d) clasarea obiectelor analizate pe diverse ramuri ale clasificării este guvernată de principii metodologice omogene.

Integrarea clasificărilor la nivel internaţional

În decursul ultimului deceniu a avut loc o revizuire completă a clasificărilor statistice internaţionale, iar noile clasificări au fost elaborate ca un sistem integrat de clasificări statistice. Astfel, diversele clasificări ale produselor au fost armonizate şi au fost corelate cu clasificările activităţilor economice, pe criteriul originii economice. Pe lângă această integrare la nivel mondial (în principal, sub auspiciile Organizaţiei Naţiunilor Unite), alte organizaţii regionale, de pildă Uniunea Europeană sau ţările Americii de Nord, şi-au aliniat, în grade diferite, clasificările proprii la clasificările mondiale.

Aceasta a dat naştere unui sistem integrat în care diversele clasificări au fost armonizate şi corelate la nivel mondial, la nivelul Uniunii Europene şi fiecare ţară a realizat sistemul naţional corespunzător.

Download

  ORDIN Nr. 337 din 20 aprilie 2007 privind actualizarea Clasificării activităţilor din economia naţională - CAEN.zip (72.0 KiB, 470 hits)
You need to be a registered user to download this file.

Bilant agenti economici iunie 2008

Bilant agenti economici 2008

Din categoria “Raportari contabile semestriale la 30 iunie 2008 pentru societatile comerciale” puteti descarca de mai jos programul oferit de Ministerul Economiei si Finantelor in acest scop.

Aplicatie pentru prelucrarea asistata, validarea, listarea si obtinerea formatului electronic pentru raportarile contabile semestriale la 30 iunie 2008 conform OMEF nr. 1958/ 2008 (publicat in MOF nr. 499/ 03.07.2008).
Aplicatia include instructiuni de utilizare, norme, corelatii, structura fisierelor de raportat pe discheta si ofera posibilitatea listarii de formulare goale sau in diferite faze ale completarii.

Actualizat in 07/07/2008 (versiunea 1.0.1)

Download

  • De pe site-ul Ministerului Economiei si Finantelor:

  instal_bilant0608_v1.zip (1.4 MiB, 877 hits)
You need to be a registered user to download this file.

Next Page »