I sistemi di riconoscimento ottico dei caratteri (ROC), detti anche OCR (dall'inglese optical character recognition), sono programmi dedicati al rilevamento dei caratteri contenuti in un documento e al loro trasferimento in testo digitale leggibile da una macchina. La conversione viene effettuata solitamente tramite uno scanner.[1] Il testo può essere convertito in formato ASCII semplice, Unicode o, nel caso dei sistemi più avanzati, in un formato contenente anche l'impaginazione del documento stesso. L'utente può modificare il risultato ottenuto con un normale editor di testo.
L'OCR è un campo di ricerca dell'intelligenza artificiale, della visione artificiale e del riconoscimento di pattern, legati al riconoscimento delle immagini.