ВУЗ:
Составители:
64
Для успешной работы нужно выяснить точный размер и местоположение
образа цифры. После локализации — приводим образ к размеру 40 × 40
(масштабирование). Эти операции выполняет функция vScale(I1:TImage,
var I2:TImage) – как на этапе обучения сети, так и на этапе распозна-
вания. Для эталона, ввиду отсутствия помех, локализацию провести
очень просто: достаточно последовательно просмотреть все точки образа
и
найти границы цифры.
Локализация и масштабирование:
var MinX,MinY,MaxX,MaxY:integer; // Границы локализованной цифры
ScaleX, ScaleY: real//// Коэффициенты сжатия
begin
MinX:= SourceSize+1;
MinY= MinX;
MaxX= -1;
MaxY= -1;
for x:=0 to SourceSize-1 do//массив Pixels нумеруется с 0
for y:=0 to SourceSize-1 do
if I1.Canvas.Pixels[x,y]=clBlack then begin
if x<MinX then MinX=x;
if y<MinY then MinY=y;
if x>iMaxX then MaxX=x;
if y>iMaxY then MaxY=y end;
ScaleX=(MaxX-MinX)/DestSize;
ScaleY=(MaxY-MinY)/DestSize;
for x:=0 to DestSize-1 do
for y:=0 to DestSize-1 do
I2.Canvas.Pixels[x,y] =
I1.Canvas.Pixels[x*ScaleX+MinX,y*ScaleY+MinY];
end;
Общий алгоритм распознавания для сети Хэмминга состоит из четырёх
частей:
подача распознаваемого образа на входы сети, передача данных с первого
слоя на второй, обработка данных вторым слоем, выбор распознанного об-
раза. Алгоритм работы первого этапа выглядит так.
1. Выбирается очередной нейрон.
2. Обнуляется его выход.
3. Изображение локализуется и приводится к нужному
масштабу.
4. Локализованный образ поточечно подаётся на входы i-го нейрона. Если
k-я точка образа чёрная, то к значению выхода прибавляется значение веса
k-го входа, в противном случае это значение вычитается.
5. Значение выхода пропускается через функцию линейного порога.
6. Переход на шаг 1, пока не исчерпаны все нейроны первого слоя.
Код первого
этапа процедуры распознавания:
for i: =1 to m do
begin
InputRow[i].Output:=0;
for x: =1 to DestSize do
for y: =1 to DestSize do // Подаём образ на нейроны первого слоя
Для успешной работы нужно выяснить точный размер и местоположение образа цифры. После локализации приводим образ к размеру 40 × 40 (масштабирование). Эти операции выполняет функция vScale(I1:TImage, var I2:TImage) как на этапе обучения сети, так и на этапе распозна- вания. Для эталона, ввиду отсутствия помех, локализацию провести очень просто: достаточно последовательно просмотреть все точки образа и найти границы цифры. Локализация и масштабирование: var MinX,MinY,MaxX,MaxY:integer; // Границы локализованной цифры ScaleX, ScaleY: real//// Коэффициенты сжатия begin MinX:= SourceSize+1; MinY= MinX; MaxX= -1; MaxY= -1; for x:=0 to SourceSize-1 do//массив Pixels нумеруется с 0 for y:=0 to SourceSize-1 do if I1.Canvas.Pixels[x,y]=clBlack then begin if xiMaxX then MaxX=x; if y>iMaxY then MaxY=y end; ScaleX=(MaxX-MinX)/DestSize; ScaleY=(MaxY-MinY)/DestSize; for x:=0 to DestSize-1 do for y:=0 to DestSize-1 do I2.Canvas.Pixels[x,y] = I1.Canvas.Pixels[x*ScaleX+MinX,y*ScaleY+MinY]; end; Общий алгоритм распознавания для сети Хэмминга состоит из четырёх частей: подача распознаваемого образа на входы сети, передача данных с первого слоя на второй, обработка данных вторым слоем, выбор распознанного об- раза. Алгоритм работы первого этапа выглядит так. 1. Выбирается очередной нейрон. 2. Обнуляется его выход. 3. Изображение локализуется и приводится к нужному масштабу. 4. Локализованный образ поточечно подаётся на входы i-го нейрона. Если k-я точка образа чёрная, то к значению выхода прибавляется значение веса k-го входа, в противном случае это значение вычитается. 5. Значение выхода пропускается через функцию линейного порога. 6. Переход на шаг 1, пока не исчерпаны все нейроны первого слоя. Код первого этапа процедуры распознавания: for i: =1 to m do begin InputRow[i].Output:=0; for x: =1 to DestSize do for y: =1 to DestSize do // Подаём образ на нейроны первого слоя 64
Страницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »