Download Tecnología de reconocimiento óptico y magnético

Document related concepts

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Memoria virtual wikipedia , lookup

Sistema operativo wikipedia , lookup

SymbOS wikipedia , lookup

Transcript
Tecnología de reconocimiento óptico y magnético
El Reconocimiento Óptico de Caracteres (OCR), así como el reconocimiento de
texto, en general son aplicaciones dirigidas a la digitalización de textos. Identifican
automáticamente símbolos o caracteres que pertenecen a un determinado alfabeto, a
partir de una imagen para almacenarla en forma de datos con los que podremos
interactuar mediante un programa de edición de texto o similar.
Medios magnéticos
Disco rígido
Existen dos tipos principales de discos duros:
• Fijos.
• Removibles.
1. Discos fijos.
Los discos fijos se fabrican dentro de una carcasa sellada de la que no se pueden extraer.
El montaje de los componentes internos del disco se realiza en la fábrica con unas
condiciones muy estrictas de limpieza y aislamiento para evitar la entrada de polvo que
pudieran deteriorarlo. Por ello nunca debe abrirse la carcasa de protección de un disco duro
excepto por personal técnico en las condiciones adecuadas.
Los duros fijos más comunes utilizan tecnología Winchester.
Código de barras
El código de barras es un código basado en la representación mediante un conjunto de
líneas paralelas verticales de distinto grosor y espaciado que en su conjunto contienen
una determinada información. De este modo, el código de barras permite reconocer
rápidamente un artículo en un punto de la cadena logística y así poder realizar
inventario o consultar sus características asociadas. Actualmente, el código de barras
está implantado masivamente de forma global.
Es un sistema que permite la identificación de las unidades comerciales y logísticas de
forma única, global y no ambigua. Este conjunto de barras y espacios codifican
pequeñas cadenas de caracteres en los símbolos impresos.
La correspondencia o mapeo entre la información y el código que la representa se
denomina simbología.
Reconocimiento de caracteres
El reconocimiento de caracteres es una aplicación que permite reconocer los
caracteres de un documento que haya sido previamente escaneado. El método
usado puede extenderse al reconocimiento de formas en imágenes digitales.
El primer paso es "limpiar" el documento escaneado, por lo que pueden ser útil este
algoritmo.
Supóngase letras que se hayan definido en una matriz de 7x5. Por ejemplo la
representación de las letras A y B se presenta a continuación
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
Los ceros y unos que representan a una letra se pueden recomponer para definir
una matriz de entrada equivalente a 26 letras del abecedario. Para ello se ubica
cada fila de la matriz de puntos a continuación de la fila previa, por ejemplo, A y B
se representarían de la siguiente forma
A=00100010100101010001111111000110001
B=11110100011000111110100011000111110
Cuando se reconoce caracteres, estos se han leído con soportes digitales que
incorporan ruído, por lo que la matriz representativa serán variaciones en torno a
los ceros y unos, por ejemplo
lo cual equivale a las matrices
G=01110100011000010000100111000101110
G_ruidosa = 0.1337 0.9859 1.0447 1.0773 -0.5392 1.0712 0.0547 0.0860 0.0817 0.9028 0.6783 0.0299 0.3474 -0.0147 0.1335 1.2666 0.0991 0.3885 0.2928 0.1002 1.0181 -0.0948 0.0390 0.8881 0.9455 0.8147 0.0208 0.4779
0.1484 1.2493 -0.2367 0.9407 1.0204 1.0842 -0.2981
Para reconocer las posibles variaciones de la letra se utiliza el aprendizaje
supervisado, siendo la entrada la matriz de códigos que representan a las letras y
la salida una matriz donde cada fila represente a una letra. Las letras se diferencian
en la matriz de salida por la posición de un uno, por ejemplo
A=10000000000000000000000000
B=01000000000000000000000000
Nótese que para representar 26 letras será necesaria una matriz de tamaño [26,
26]. Podría reducirse la combinación de códigos de salida a 5 cifras (puede
representar hasta 32 combinaciones).
Una vez que se define la matriz de entrada-salida objeto de identificación, se aplica
el algoritmo de aprendizaje supervisado de la siguiente forma:
1.- Se aprende con una matriz de entrada-salida donde se supone que las letras
son ideales (sin ruido).
2.- Se intercalan matrices con representaciones de entrada-salida de letras con
ruido y sin ruido.
3.- Se vuelve aprender de la matriz que represente a las letras sin ruido, para
garantizar que cuando estas se apliquen al sistema resultante, puedan ser
identificadas.
Con respecto a la selección de los núcleos estimadores, sería conveniente que la
salida de la red sea en el intervalo [0, 1], de no ser así se tendría que normalizar la
salida. A continuación se muestra un programa que reconoce letras utilizando
conceptos basados en redes neuronales
%Reconocimiento de caracteres
%Adaptación basada en:
%#########################################################
%APPCR1 Character recognition.
% Mark Beale, 12-15-93
% Copyright 1992-2005 The MathWorks, Inc.
% $Revision: 1.15.2.1 $ $Date: 2005/11/15 01:14:56 $
%#########################################################
% Definición de matrices y constantes
[alphabet,targets] = prprob;
[R,Q] = size(alphabet);
% 10 neuronas intermedias, 26 de salida (S2)
S1 = 10;
[S2,Q] = size(targets);
% Define la red
net = newff(minmax(alphabet),[S1 S2],{'logsig' 'logsig'},'traingdx');
% Reduce los valores iniciales de los parámetros de la capa de salida
net.LW{2,1} = net.LW{2,1}*0.01;
net.b{2} = net.b{2}*0.01;
% Entrena la red sin ruído
% ==================================
% Condiciones de entrenamiento
net.performFcn = 'sse'; % Validación por error medio cuadrático
net.trainParam.goal = 0.1; % Error medio cuadrático deseado
net.trainParam.show = 20; % Frecuencia de visualización (en épocas)
net.trainParam.epochs = 5000; % Épocas
net.trainParam.mc = 0.95; % Constante de momento
% Entrena la red
P = alphabet;
T = targets;
[net,tr] = train(net,P,T);
% Entrena la red con ruído
% ===============================
% Parámetros de entrenamiento
net.trainParam.goal = 0.6; % Error medio cuadrático deseado
net.trainParam.epochs = 300; % Número de épocas
% Se entrena con 10 conjuntos de datos que representan letras
% ruidosas y no ruidosas intercaladas
T = [targets targets targets targets];
for pass = 1:10
fprintf('Pass = %.0f\n',pass);
P = [alphabet, alphabet, ...
(alphabet + randn(R,Q)*0.1), ...
(alphabet + randn(R,Q)*0.2)];
[net,tr] = train(net,P,T);
end
% Entrena la red sin ruído
% =========================================
net.trainParam.goal = 0.1; % Error medio cuadrático deseado
net.trainParam.epochs = 500; % Número de épocas
net.trainParam.show = 5; % Frecuencia de visualización (en épocas)
P = alphabet;
T = targets;
[net,tr] = train(net,P,T);
% Prueba sobre letra ruidosa
%################################################
noisyJ = alphabet(:,17)+randn(35,1) * 0.2;
plotchar(noisyJ);
A2 = sim(net,noisyJ);
% Devuelve índice del mayor valor devuelto por la red
A22 = compet(A2);
answer = find(compet(A22) == 1);
figure;
plotchar(alphabet(:,answer));
El resultado de identificar la letra Q(17) se muestra a continuación
Elementos de hardware y software
Para que un ordenador pueda hacer funcionar un programa informático (a veces
conocido como aplicación o software), debe contar con la capacidad necesaria para
realizar cierta cantidad de operaciones preparatorias que puedan garantizar el
intercambio entre el procesador, la memoria y los recursos físicos (periféricos).
El sistema operativo (a veces también citado mediante su forma abreviada OS en
inglés) se encarga de crear el vínculo entre los recursos materiales, el usuario y las
aplicaciones (procesador de texto, videojuegos, etcétera). Cuando un programa desea
acceder a un recurso material, no necesita enviar información específica a los
dispositivos periféricos; simplemente envía la información al sistema operativo, el cual
la transmite a los periféricos correspondientes a través de su driver (controlador). Si no
existe ningún driver, cada programa debe reconocer y tener presente la comunicación
con cada tipo de periférico.
De esta forma, el sistema operativo permite la "disociación" de programas y hardware,
principalmente para simplificar la gestión de recursos y proporcionar una interfaz de
usuario (MMI por sus siglas en inglés) sencilla con el fin de reducir la complejidad del
equipo.
Funciones del sistema operativo
El sistema operativo cumple varias funciones:


Administración del procesador: el sistema operativo administra la distribución del
procesador entre los distintos programas por medio de un algoritmo de
programación. El tipo de programador depende completamente del sistema
operativo, según el objetivo deseado.
Gestión de la memoria de acceso aleatorio: el sistema operativo se encarga de
gestionar el espacio de memoria asignado para cada aplicación y para cada usuario, si
resulta pertinente. Cuando la memoria física es insuficiente, el sistema operativo
puede crear una zona de memoria en el disco duro, denominada "memoria virtual". La
memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a
la memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho más
lenta.





Gestión de entradas/salidas: el sistema operativo permite unificar y controlar el
acceso de los programas a los recursos materiales a través de los drivers (también
conocidos como administradores periféricos o de entrada/salida).
Gestión de ejecución de aplicaciones: el sistema operativo se encarga de que las
aplicaciones se ejecuten sin problemas asignándoles los recursos que éstas necesitan
para funcionar. Esto significa que si una aplicación no responde correctamente puede
"sucumbir".
Administración de autorizaciones: el sistema operativo se encarga de la seguridad en
relación con la ejecución de programas garantizando que los recursos sean utilizados
sólo por programas y usuarios que posean las autorizaciones correspondientes.
Gestión de archivos: el sistema operativo gestiona la lectura y escritura en el sistema
de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios.
Gestión de la información: el sistema operativo proporciona cierta cantidad de
indicadores que pueden utilizarse para diagnosticar el funcionamiento correcto del
equipo.
Componentes del sistema operativo
El sistema operativo está compuesto por un conjunto de paquetes de software que
pueden utilizarse para gestionar las interacciones con el hardware. Estos elementos se
incluyen por lo general en este conjunto de software:



El núcleo, que representa las funciones básicas del sistema operativo, como por
ejemplo, la gestión de la memoria, de los procesos, de los archivos, de las
entradas/salidas principales y de las funciones de comunicación.
El intérprete de comandos, que posibilita la comunicación con el sistema operativo a
través de un lenguaje de control, permitiendo al usuario controlar los periféricos sin
conocer las características del hardware utilizado, la gestión de las direcciones físicas,
etcétera.
El sistema de archivos, que permite que los archivos se registren en una estructura
arbórea.
Sistemas de multiprocesos
Un sistema operativo se denominade multiprocesos cuando muchas "tareas" (también
conocidas como procesos) se pueden ejecutar al mismo tiempo.
Las aplicaciones consisten en una secuencia de instrucciones llamadas "procesos".
Estos procesos permanecen activos, en espera, suspendidos, o se eliminan en forma
alternativa, según la prioridad que se les haya concedido, o se pueden ejecutar en forma
simultánea.
Un sistema se considera preventivo cuando cuenta con un programador (también
llamado planificador) el cual, según los criterios de prioridad, asigna el tiempo de los
equipos entre varios procesos que lo solicitan.
Se denomina sistema de tiempo compartido a un sistema cuando el programador
asigna una cantidad determinada de tiempo a cada proceso. Éste es el caso de los
sistemas de usuarios múltiples que permiten a varios usuarios utilizar aplicaciones
diferentes o similares en el mismo equipo al mismo tiempo. De este modo, el sistema se
denomina "sistema transaccional". Para realizar esto, el sistema asigna un período de
tiempo a cada usuario.
Sistemas de multiprocesadores
La técnica de multiprocesamiento consiste en hacer funcionar varios procesadores en
forma paralela para obtener un poder de cálculo mayor que el obtenido al usar un
procesador de alta tecnología o al aumentar la disponibilidad del sistema (en el caso de
fallas del procesador).
Las siglas SMP (multiprocesamiento simétrico o multiprocesador simétrico) hacen
referencia a la arquitectura en la que todos los procesadores acceden a la misma
memoria compartida.
Un sistema de multiprocesadores debe tener capacidad para gestionar la repartición de
memoria entre varios procesadores, pero también debe distribuir la carga de trabajo.
Sistemas fijos
Los sistemas fijos son sistemas operativos diseñados para funcionar en equipos
pequeños, como los PDA (asistentes personales digitales) o los dispositivos
electrónicos autónomos (sondas espaciales, robots, vehículos con ordenador de a bordo,
etcétera) con autonomía reducida. En consecuencia, una característica esencial de los
sistemas fijos es su avanzada administración de energía y su capacidad de funcionar con
recursos limitados.
Los principales sistemas fijos de "uso general" para PDA son los siguientes:


PalmOS
Windows CE / Windows Mobile / Window Smartphone
Sistemas de tiempo real
Los sistemas de tiempo real se utilizan principalmente en la industria y son sistemas
diseñados para funcionar en entornos con limitaciones de tiempo. Un sistema de tiempo
real debe tener capacidad para operar en forma fiable según limitaciones de tiempo
específicas; en otras palabras, debe tener capacidad para procesar adecuadamente la
información recibida a intervalos definidos claramente (regulares o de otro tipo).
Estos son algunos ejemplos de sistemas operativos de tiempo real:




OS-9;
RTLinux (RealTime Linux);
QNX;
VxWorks.
Tipos de sistemas operativos
Existen varios tipos de sistemas operativos, definidos según su capacidad para
administrar simultáneamente información de 16 bits, 32 bits, 64 bits o más.
Sistema
Programación Usuario único Usuario múltiple Tarea única Multitarea
DOS
16 bits
X
Windows3.1
16/32 bits
X
no preventivo
X
cooperativo
Windows95/98/Me 32 bits
X
WindowsNT/2000 32 bits
X
preventivo
WindowsXP
32/64 bits
X
preventivo
Unix / Linux
32/64 bits
X
preventivo
MAC/OS X
32 bits
X
preventivo
VMS
32 bits
X
preventivo