FormScanner

FormScanner is an OMR (Optical Mark Recognition) software that automatically marks multiple-choice papers.

Optical Mark Recognition (also called Optical Mark Reading and OMR) is the process of capturing human-marked data from document forms such as surveys and tests.

Formscanner is easy to use, effective, and completely free of cost and advertisements.FormScanner at work

FormScanner not bind you to use a default template of the form, but gives you the ability to use a custom template created from a simple scan of a blank form.

The modules can be scanned as images with a simple scanner and processed with FormScanner software.

All the collected information can be easily exported to a spreadsheet.

Users scan the forms and, in just a couple of steps, they have a spreadsheet with students scores, answers to individual questions, and detailed analysis of the class perfomance.

It is possible to download the source code and the binaries from SourceForge, follow the project and rate it.

formscanner.org offers several other interesting tutorials and information on how to use FormScanner.

Make a donation

Advertisements

12 thoughts on “FormScanner

  1. Antonio Porcellini

    Salve,
    sono un docente universitario italiano.
    Volevo provare ad usare il suo software per la correzione dei test.
    Utilizzo un Macintosh con OSX 10.6.8 (2011)
    ho scaricato il file *.zip ma non sono assolutamente riuscito a capire come lanciare l’applicativo.
    Esiste un file nella cartella lib che consente il lancio dell’applicazione?
    Occorre usare il terminale? Nel caso qual’è la sintassi esatta? non sono pratico di terminale e non conosco neanche i comandi per muovermi da una directory all’altra.
    Potrebbe farmi avere un minimo di istruzioni per poter provare il software?
    Frazie

    1. Buongiorno Antonio,

      solo pochi giorni fa ho provato ad installare formscanner su un sistema con MacOSX. La procedura è relativamente semplice seppur ad oggi ancora non esista una procedura di installazione per mac.
      Riassumo i passi da seguire per installare ed avviare l’ultima versione di formscanner rilasciata ieri:

      1. Scarica i file binari di FormScanner da Sourceforge.net:
      http://sourceforge.net/projects/formscanner/files/0.10.0/formscanner-0.10.0-bin.zip/download
      2. Estrai l’archivio in una cartella nota
      4. Esegui il seguente comando dal terminale
      [JAVA_HOME]/bin/java -jar -DFormScanner_HOME=[FORMSCANNER _HOME] -DFormScanner_VERSION=0.10.0 [FORMSCANNER_HOME]/lib/formscanner-main-0.10.0.jar

      Dove
      [JAVA_HOME] è la cartella di installazione di java (non dovrebbe servire se la cartella è presente nelle variabili d’ambiente )
      [FORMSCANNER_HOME] è la cartella in cui hai estratto formscanner

      Se stai usando una diversa versione di FormScanner devi sostituire 0.10.0 con il corretto numero di versione.

      Tienimi aggiornato se hai riscontrato problemi o difficoltà.

      Alberto

  2. Antonio Porcellini

    Save,
    Grazie mille per la rapidissima risposta.
    Allora,
    ho provato ad eseguire la procedura ma mi ritorna un messaggio di errore.
    Il sistema installato è il 10.6.8 e credo che la versione Java sia ferma a 6 perchè Apple non consente di installare le versioni successive sul 10.6
    Di seguito incollo il messaggio di errore che mi ha dato il terminale.
    In ogni caso ho provato a scaricare le versioni di FormScanner piu’ vecchie e l’untima versione che sembra funzionare è la 7.2
    Con questa sono riuscito a lanciare il programma semplicemente con un doppio click sul file “main”…
    sembra che funzioni… se non per il fatto che se uso un template a doppia colonna… mi corregge SOLO la prima!

    Se Lei crede che io posso adoperare la versione 7.2 senza problemi, uso questa! Credo che il problema sia Java… ma non ne sono sicuro.
    Nel messaggio di errore qui di seguito forse c’è la risposta:

    Mac-i7:~ AnP$ java -jar -DFormScanner_HOME=/Users/AnP/Desktop/FormScanner-0.10.0 -DFormScanner_VERSION=0.10.0 /Users/AnP/Desktop/FormScanner-0.10.0/lib/formscanner-main-0.10.0.jar
    Exception in thread “main” java.lang.UnsupportedClassVersionError: com/albertoborsetta/formscanner/gui/FormScanner : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    Mac-i7:~ AnP$

    Grazie ancora per la risposta
    Antonio

  3. Marco Giuntoni

    Salve,
    ho scoperto pochi giorni fa FormScanner e ho provato anch’io ad usarlo sul Mac.
    Il mio caso e’ analogo al precedente ma diverso.
    In ufficio e a casa ho 2 iMac identici (Mid 2009, 12GB RAM). Su entrambi c’é installato Yosemite (OSX 10.10.2). L’unica differenza sostanziale é che in ufficio OSX é in inglese mentre a casa é in italiano. Ho eseguito la medesima procedura di installazione (Java, Ghostscript e FormScannner) creando uno shell script per lanciare l’applicazione. In ufficio tutto ha funzionato perfettamente e sono riuscito a processare i file di test presenti sul sito. A casa invece lanciando il programma ho l’errore seguente, che direi é lo stesso di Antonio.

    Exception in thread “main” java.lang.UnsupportedClassVersionError: com/albertoborsetta/formscanner/gui/FormScanner : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

    Scrivo questo sperando possa essere di aiuto nella risoluzione del problema.
    Saluti,
    Marco

    1. Buongiorno,

      sembra che il problema sia dovuto alla JVM. FormScanner è stato compilato con la JDK1.7 (Java7), ed a quanto pare se viene avviato utilizzando una JVM precedente viene lanciata quella eccezione.
      Consiglio di verificare la versione di Java che effettivamente viene utilizzata (possono essere installate anche più versioni ma solo una è riferita nel PATH di sistema e nella variabile d’ambiente JAVA_HOME), quindi provare a rilaciare FormScanner come indicato.
      Relativamenta alla versione 10.6.8 di OSX, mi sembra che non siano state rilasciate versioni di Java più recenti della 1.6 quindi in quel caso ritengo sia necessario aggiornare il sistema operativo oppure utilizzare una versione precedente di FormScanner con tutti i limiti che però questo comporta (purtroppo non posso compilare le ultime versioni di FormScanner con versioni Java più vecchie in quanto sono utilizzate delle API Java presenti solo dalla 1.7 in avanti).

      Alberto

  4. Salve,
    Ho scaricato anch’io FormScanner quanche giorno fa e volevo condividere la mia esperienza di test.
    Ho due iMac, uno in ufficio e uno a casa. Sono identici (Yosemite, Mid 2009, 12GB, 21″). L’unica differenza sostanziale tra loro e’ che quello in ufficio ha OSX in inglese mentre quello a casa e’ in italiano. Ho installato FormScanner su entrambi nello stesso modo (FormScanner, Java8, Ghostscript 9.15) e creato un shell command per fare partire l’applicazione. In sintesi mentre su OSX in inglese tutto funziona perfettamente, su quello in italiano ho lo stesso errore di Antonio (qui sopra).
    Posto questo nella speranza che possa aiutare nel debug del problema.
    Saluti,
    Marco

  5. Antonio Porcellini

    SI, grazie.. per il problema del 10.6.8 ho pensato anche io ad un limite della versione Java che il sistema puo’ supportare. Purtroppo non posso aggiornare il sistema perchè utilizzo molti altri programmi per lavoro che non sono compatibili con i nuovi OS e il loro aggiornamento avrebbe un costo proibitivo (per cosa poi visto che lavorano bene cosi’?).
    Quindi penso che utilizzero’ il FormScanner 0.72 per il momento…
    comunque ho installato la versione 0.10 per WIN su una macchina virtuale con XP e sembra funzionare bene su MacIntosh… vi tero’ informati.

    Altra nota: ho botato che per la correzione occorre creare un templato ASSOLUTAMENTE con un form acquisito con lo stesso scanner e, possibilmente, nello stesso momento in cui sono stati acquisiti i compiti da correggere.
    Ogni volta che ho provato ad importare un templato “salvato” e generato da un file del form acquisito con uno scanner diverso o addirittura usando il file originale NON stampato ed acquisito… in tutti questi casi la correzione fallisce miseramente.
    Le coordinate delle aree da analizzare sono strettamente dipendenti dal file usato come templato… MEGLIO stamparlo ed aqcuisirlo insieme ai compiti da correggere… in questo modo la percentuale di errori è bassissima… vede anche marcature incomplete o un poco fuori centro

  6. SANDEEP

    Hi there,

    I tried to install Form scanner on my mac
    Below are the treminal commands which were executed. Please check what is happening.
    Thank You.
    ——————————————————————————————————————
    Starting FormScanner installation
    Found java in /usr/bin/java
    Found FormScanner in /Volumes/VR /1. SCHOOL/1. 2015 – 2016/CCE SOFTWARE/omr/formscanner
    Found FormScanner executable: lib/formscanner-main-1.0.3.jar
    ./configure.sh: line 38: $INSTALL_DIR/run.sh: ambiguous redirect
    ./configure.sh: line 39: $INSTALL_DIR/run.sh: ambiguous redirect
    chmod: /Volumes/VR: No such file or directory
    chmod: /1.: No such file or directory
    chmod: SCHOOL/1.: No such file or directory
    chmod: 2015: No such file or directory
    chmod: -: No such file or directory
    chmod: 2016/CCE: No such file or directory
    chmod: SOFTWARE/omr/formscanner/run.sh: No such file or directory
    Installation finished

    ——————————————————————————————————————-

  7. StefSeb

    Gentilissimo vorrei chiederti 2 informazioni sull’uso del tuo programma.
    1) come aumentare la sensibilità (ovvero “prendere” anche caselle segnate “poco” (linea trasversale bassa fuori centro o ghirigori in angolo casella)

    2) come far correggere scelte sbagliate degli studenti (l’indicazione di annerire totalmente la casella non funziona)

    Grazie mille

    StefSeb

    1. Buongiorno Stefano,

      per migliorare la precisione della scansione in FormScanner puoi agire sui valori di Soglia (Threshold) e Densità (Density), tali valori rappresentano rispettivamente:

      • Soglia (Threshold): valore compreso tra 0 e 255, è il valore della componente RGB dell’immagine oltre il quale i pixel sono considerati “neri”. Un valore di soglia = 127 significa che i pixel il cui valore RGB è inferiore a 127 sono “neri”, se superano tale valore invece sono “bianchi”.
      • Densità (Density): è la percentuale di pixel “neri” (individuati come sopra) che devono essere presenti nell’area della casella perchè tale casella sia considerata come annerita. Una densità pari a 50 (%) indica che almeno il 50% dei pixel della casella devono essere anneriti perchè il software la consideri come contrassegnata dallo studente.

      Relativamente al problema delle risposte errate, attualmente in FormScanner non esiste una modalità per riconoscerle e scartarle, personalmente posso consigliarti 2 strategie:

      1. dire agli studenti che non devono sbagliare
      2. segnare le risposte in due fasi:
        • la prima passata con una semplice “x” o una spunta
        • la seconda passata annerendo completamente le risposte “corrette”

        In questo modo impostando FormScanner con una densità relativamente alta dovrebbe “scartare” le risposte con le “x” e considerare valide quelle completamente annerite

      Saluti
      Alberto Borsetta

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s