rolisz's site

Character segmentation overfitting

I'm doing a project about doing OCR on receipts and today, while trying to do character seg­men­ta­tion, I made a pretty stupid mistake that led to my model over­fit­ting almost perfectly pretty neatly (in some cases I got 100% correct clas­si­fi­ca­tion accuracy).

I already had my own data about letters (with the help of my parents, I labeled 7000 letters, with their bounding boxes in about 25 receipts) and my classifier (a simple linear SVM) on individual letters did pretty good: between 90-94% accuracy. For something obtained with almost 0 fiddling, it's pretty good, and good enough for my purposes. Also it's pretty much impossible to tell apart 0 continue.

Fun at Arka Park

DSC00535

Ieri a fost probabil cea mai tare zi din vacanța asta pentru mine (bine, poate dacă mă prind cum să im­ple­mentez și să folosesc au­toen­codere și RBM-uri în theano, o să fie o zi și mai faină :D): am fost la Arka Park, la vreo 20 de kilometri de Sibiu.

Arka Park e un parc de aventură unde ai tot felul de curse de obstacole în copaci. Și îi awesome :X:X

Sunt vreo 6 trasee de diferite di­fi­cultăți, unele doar pentru copii, altele necesită >16 ani și peste 1.50m înălțime. Fiecare traseu este compus din mai multe jocuri (între 8 și 13), fiecare joc fiind un mod diferit de a ajunge continue.

Intelligent Spam

Wordpress are integrat un serviciu de filtrare a com­men­turilor foarte bun, Akismet. Până acuma nici nu era prea greu să îți dai seama ce îi spam. Erau com­men­turile gen:

2013-07-02_13h43_31

Se vedea clar că nu au absolut nicio legătură cu siteul meu. Alte spammuri erau ceva mai in­teligente și își exprimau mulțumirea pentru conținutul interesant pe care l-am scris, iar apoi încercau să îmi vândă niște Nike:

Și încă acesta este ușor de depistat ca fiind dubios. Dar în ultima vreme am început să am tot mai multe spamuri care au legătură cu conținutul postului meu.

De exemplu, pe cel despre rețele neuronale, s-a scris următorul comment:

Căutând pe Google, găsim că asta este copiată continue.

Anul 2

S-o terminat două treimi de facultate. Vrooooom. Anul acesta a trecut mult mai repede decât primul an. Îi foarte in­tere­san­tă percepția asta relativă a timpului. Țin minte foarte clar că primul semestru din primul an mi s-a părut așa de lung și că am avut atâtea chestii de făcut la FP. Acuma? În primul semestru? Deși probabil am avut mai multe teme de făcut (ca și cantitate) la MAP (și erau și-n Java), o zburat timpul și înainte să te dezmet­icești era iarnă și frig și mergeai la examene înfofolit la maxim.

Cum din ceva motiv nu am făcut un review la materiile din primul semestru în februarie, le continue.

Chestionar Proiect Colectiv

Semestrul acesta am avut o materie numită Proiect Colectiv, care a constat în dez­voltarea unui sistem soft care să gestioneze resursele unui de­par­ta­ment al unei facultăți.

După ce au fost prezen­tările tuturor grupelor, am făcut un sondaj cu Project Managerii tuturor grupelor de la secția Info română (mai puțin 223/1 care nu mi-a răspuns) și pe cine am mai prins de la inginerie și info-engleză cu diferite întrebări ca să văd ce abordare au avut diferitele grupe, ce limbaje sunt mai populare, care cerințe au fost mai greu de im­ple­men­tat, etc.

În acest post voi încerca să fiu obiectiv și să prezint doar datele din chestionar (care conține și răspun­surile continue.

The mysterious vcvarsall.bat

I've en­coun­tered the following problem quite a few times, so I decided to write about it here on my blog so I can find the solution faster.

When trying to build various open source libraries, especially ones that were initially made for Linux and then ported to Windows, sometimes the following error is received:

Unable to find vcvarsall.bat

This comes up because it tries to build it using Visual Studio and it looks.... for an older version of VS (I think).

The solution is simple. If you have VS2010, execute: SET VS90­COM­N­TOOLS=%VS100­COM­N­TOOL­S% at the command line and try again. If you have VS2012 run SET VS90­COM­N­TOOLS=%VS110­COM­N­TOOL­S%.

Via: Stack­Over­flow

Neural Networks in Python

Artificial Neural Networks are a math­e­mat­i­cal model, inspired by the brain, that is often used in machine learning. It was initially proposed in the '40s and there was some interest initially, but it waned soon due to the in­ef­fi­cient training algorithms used and the lack of computing power. More recently however they have started to be used again, especially since the in­tro­duc­tion of au­toen­coders, con­vo­lu­tion­al nets, dropout reg­u­lar­iza­tion and other techniques that improve their per­for­mance sig­nif­i­cant­ly.

Here I will present a simple multi-layer perceptron, im­ple­ment­ed in Python using numpy.

Neural networks are formed by neurons that are connected to each others and that send each other signals. If the number of continue.

Single table inheritance in Camelot

Recently, while working on a class project, I had a small problem with in­her­i­tance in Camelot, an excellent framework for rapid ap­pli­ca­tion de­vel­op­ment in Python.

In the ap­pli­ca­tion we needed to be able to define different kinds of projects, with similar needs, but which were each available only to some user groups. Single table in­her­i­tance sounds like a natural fit for this.

I couldn't find anything in the Camelot doc­u­men­ta­tion about this, but I figured that since it uses SQLAlchemy for its models, I could try the example given there:

 class Employee(Base):
    __tablename__ = 'employee'
    id = Column(Integer, primary_key=True)
    name 
continue.

Tutorial Camelot

Nu sunt Arthur sau Merlin, așa că nu voi vorbi despre orașul Camelot, ci despre frame­workul Python, care îi pretty much everything but the kitchen sink.

Cum tutorialul acesta este mai mult pentru colegii de grupă cu care lucrăm la proiect colectiv, voi presupune că este deja instalat Camelot.

Proiectul pe care îl vom crea este o mică chestie pe care eu vreau s-o fac de mai mult timp, și aceasta este opor­tu­ni­tatea perfectă: vom face un program cu care să pot urmări când se întâmplă anumite lucruri, în speranța ca mai încolo să pot extrage informații utile din când se întâmplă acele lucruri. Ce am de gând să măsor continue.

Git tutorial - part 2

Acest tutorial e mai mult pentru colegii de grupă cu care voi lucra la Proiect Colectiv

Prima parte am scris-o mai demult, dar nu îi bai, că nu s-o schimbat multe la Git de atunci :)))

În prima parte am configurat Git-ul, am creat un proiect nou, cu un fișier .gitignore și am făcut primul commit. În cei doi ani care au trecut de atunci ne-am dat seama că la primul commit am greșit două chestii: mai trebuia inclus fișierul config.txt și trebuia să dăm un mesaj de commit mai detaliat.

> git status
# On branch master
# Untracked files:
#   (use "git add ..." to include in what will 
continue.