Смекни!
smekni.com

Інформаційний синтез системи автоматичного розпізнавання бланків документів (стр. 10 из 11)

Вимірювання рівня звуку в приміщенні проводились за допомогою шумоміру ИШМ-3. В результаті вимірів рівень звуку склав L = 50 дБА. Отримане значення не перевищує допустимі норми ГсанПиН 3.3.2 007 – 98 [12], 60дБА.


Таблиця 4.2 Параметри санітарно-гігієнічних умов праці в приміщенні

Параметр Значення параметру Нормативнийдокумент
Фактичне Нормоване
Освітленністьштучна, лк 128,82 200 СНИП II-4-79 [18]
КПО, % 0,75 1,08 СНИП II-4-79 [18]
Температура повітряв приміщенні, °С:взимкувлітку 19-2225-27 21-2522-28 ГОСТ 12.1.005-88 [13]
Відносна вологість, % 45 40-60 ГОСТ12.1.005-88 [13]
Швидкість руху повітря, м/с 0,15 0,1-0,3 ГОСТ12.1.005-88 [13]
Шум, дБА 50 не більше 60 ГсанПиН 3.3.2 007 – 98 [12]

4.3 Висновки

Як об’єкт дослідження було взято приміщення, у якому проходила переддипломна практика у теплу пору року.

Виявлено, що на кожного працівника доводиться 6 м2, що відповідає нормам СНиП 2.09.04-87 [14].

Природного освітлення не вистачає, тому необхідно передбачити систему комбінованого освітлення та використовувати систему вимикачів, котра дозволить регулювати інтенсивність штучного освітлення в залежності від інтенсивності природного, а також дозволить освічувати тільки необхідні для роботи зони приміщення. Штучного освітлення також не вистачає, оскільки його значення Еф=128,82 лк не перевищує норму, яка згідно з СНиП ІІ-4-79 [30] становить 200 лк при використанні зазначених ламп, отже необхідно використовувати лампи більшої потужності або додати до вже існуючої системи ламп такої ж потужності. Тобто для нашого приміщення необхідно додати ще 3 лампи такої ж потужності, як видно з наступних розрахунків:

Виявлено, що на кожного працівника доводиться 19,2 м3 повітря, чого достатньо відповідно до норм СНиП 2.09.04-87 [14]. Для нормальної роботи в приміщенні забезпечується постійний повітрообмін за допомогою вентиляції, рівний в теплий період раку 325,71 м3/ч, що є достатнім, а от в холодний період набагато перевищує норму. Тому для холодного періоду року необхідно заклеювати вікна, та інколи провітрювати приміщення, щоб уникати захворювання робітників.

В приміщенні не дотримується температурний режим взимку – температура знаходиться на межі допустимих значення. Тому взимку необхідно утеплювати вікна.

Здійснення такого роду заходів з покращення умов праці в приміщенні дозволить створити сприятливі умови праці для робітників, зокрема мікроклімату, що в свою чергу буде сприяти підвищенню активності робітників та їх продуктивність праці


ВИСНОВКИ

1. Розроблено алгоритм навчання системи в рамках ІЕІТ – технології, що дозволило програмно реалізувати процес навчання системи розпізнавання символів.

2. Сформовано навчальні матриці для зображень в полярних і декартових координатах. При формуванні навчальної матриці в полярних координатах розв’язана задача центрування зображення, що підвищило значення КФЕ.

3. Оптимізація контрольних допусків на ознаки розпізнавання при обробленні літер в полярних координатах забезпечує в порівнянні з обробленням в декартових координатах підвищення асимптотичної достовірності розпізнавання та їх інваріантність до зсуву, повороту та зміні масштабу;

4. Розроблено та програмно реалізовано алгоритм навчання системи розпізнавання рукописних символів за ІЕІТ з оптимізацією СКД на ознаки розпізнавання, що якісно збільшило значення КФЕ, а це підвищило достовірність прийняття рішення на етапі екзамену;

5. Програмно реалізовано алгоритм екзамену, що дає можливість з певною достовірністю розпізнавати рукописні символи;


Додаток

unit UnitMy;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, TeEngine, Series, TeeProcs, Chart, Grids,

ComCtrls;

type

TForm0 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Panel1: TPanel;

GroupBox1: TGroupBox;

PaintBox1: TPaintBox;

Button2: TButton;

Button3: TButton;

Panel2: TPanel;

Panel3: TPanel;

Image1: TImage;

Button5: TButton;

Button1: TButton;

Panel4: TPanel;

Chart1: TChart;

Series1: TBarSeries;

Button10: TButton;

Chart2: TChart;

Series2: TFastLineSeries;

Button6: TButton;

Panel5: TPanel;

Label1: TLabel;

Label2: TLabel;

Panel7: TPanel;

Edit3: TEdit;

Button7: TButton;

Button8: TButton;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Panel6: TPanel;

Button4: TButton;

Button9: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure PaintBox1Paint(Sender: TObject);

procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const N=50;

const Pol=25;

const R=120;

const K=3;

const St=40;

var

Form0: TForm0;

down:boolean;

nachpic,pic:Tbitmap;

sch,kkproba,count:integer;

polmas:array[1..R,1..Pol] of integer;

polmassred:array[1..K,1..Pol] of real;

picmas:array [1..R,1..N,1..N] of integer;

evbin:array[1..R,1..2*N] of integer;

gilsred:array[1..K,1..2*N] of integer;

sred_s:array[1..K,1..N,1..N] of integer;

f1,f2,f3,temp,vrf:text;


center_x, center_y:array[0..1] of integer;

implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TForm0.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

down:=true;

nachpic.Canvas.MoveTo(X,Y);

paintbox1paint(nil);

end;

procedure TForm0.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

down:=false;

end;

procedure TForm0.PaintBox1Paint(Sender: TObject);

begin

PaintBox1.Canvas.Draw(0,0,nachpic);

end;


procedure TForm0.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

if down then

begin

nachpic.Canvas.LineTo(X,Y);

paintbox1paint(nil);

end;

end;

procedure TForm0.Button1Click(Sender: TObject);

begin

close;

end;

procedure TForm0.Button2Click(Sender: TObject);

var i,j,vspi,vspj:integer;

begin

vspi:=nachpic.Width;

vspj:=nachpic.Height;

for i:=1 to vspi do

for j:=1 to vspj do

nachpic.Canvas.Pixels[i,j]:=clWhite;

paintbox1paint(nil);

end;

procedure TForm0.Button3Click(Sender: TObject);

var i,j:integer;

color:boolean;

begin

color:=false;

pic:=Tbitmap.Create;

pic.Width:=N;

pic.Height:=N;

for i:=1 to N do

for j:=1 to N do

begin

if nachpic.Canvas.Pixels[i,j] <> clWhite then color:=true;

end;

if color then

begin

for i:=1 to N do

for j:=1 to N do

begin

pic.Canvas.Pixels[i,j]:=nachpic.Canvas.Pixels[i,j];

end;

sch:=sch+1;

pic.SaveToFile('image&bsol;'+inttostr(sch)+'.bmp');

end;

end;

procedure TForm0.FormCreate(Sender: TObject);

begin

nachpic:=Tbitmap.Create;

nachpic.Width:=PaintBox1.Width;

nachpic.Height:=PaintBox1.Height;

nachpic.Canvas.Pen.Color:=clBlack;

nachpic.Canvas.Pen.Width:=5;

down:=false;

sch:=0;


end;

procedure TForm0.Button5Click(Sender: TObject);

var ii,i,j,kk:integer;

begin

for kk:=1 to R do

begin

for ii:=1 to 2*N do evbin[kk,ii]:=0;

for i:=1 to N do

begin

for j:=1 to N do

begin

if i>1 then

begin

if (round((256-picmas[kk,i-1,j])-(256-picmas[kk,i,j])) > 0) then

begin

evbin[kk,j]:=evbin[kk,j]+(round((256-picmas[kk,i-1,j])-(256-picmas[kk,i,j])));

evbin[kk,50+j]:=evbin[kk,50+j]+0;

end

else if (round((256-picmas[kk,i-1,j])-(256-picmas[kk,i,j])) < 0) then

begin

evbin[kk,50+j]:=evbin[kk,50+j]+(round((256-picmas[kk,i-1,j])-(256-picmas[kk,i,j])));

evbin[kk,j]:=evbin[kk,j]+0;

end

else if (round((256-picmas[kk,i-1,j])-(256-picmas[kk,i,j])) = 0) then

begin

evbin[kk,j]:=evbin[kk,j]+0;

evbin[kk,50+j]:=evbin[kk,j+50]+0;

end;

end;

end;

end;

end;

for j:=1 to 2*N do

begin

gilsred[1,j]:=0;

gilsred[2,j]:=0;

gilsred[3,j]:=0;

end;

for kk:=1 to St do

for j:=1 to 2*N do

begin

gilsred[1,j]:=gilsred[1,j]+evbin[kk,j];

gilsred[2,j]:=gilsred[2,j]+evbin[40+kk,j];

gilsred[3,j]:=gilsred[3,j]+evbin[80+kk,j];

end;

for j:=1 to 2*N do

begin

gilsred[1,j]:=round(gilsred[1,j]/St);

gilsred[2,j]:=round(gilsred[2,j]/St);

gilsred[3,j]:=round(gilsred[3,j]/St);

end;

end;

{-----------Center search ...--------------------}

procedure search_center();

var i,j:byte;

vspS:integer;


begin

for i:=1 to N-1 do

begin

vspS:=0;

for j:=1 to N-1 do vspS:=vspS+(256-picmas[kkproba,i,j]);

if vspS > 0 then

begin

center_x[0]:=i;

break;

end;

end;

for i:=N-1 downto 1 do

begin

vspS:=0;

for j:=1 to N-1 do vspS:=vspS+(256-picmas[kkproba,i,j]);

if vspS > 0 then

begin

center_x[1]:=i;

break;

end;

end;

for j:=1 to N-1 do

begin

vspS:=0;

for i:=1 to N-1 do vspS:=vspS+(256-picmas[kkproba,i,j]);

if vspS > 0 then

begin

center_y[0]:=j;

break;

end;

end;

for j:=N-1 downto 1 do

begin

vspS:=0;

for i:=1 to N-1 do vspS:=vspS+(256-picmas[kkproba,i,j]);

if vspS > 0 then

begin

center_y[1]:=j;

break;

end;

end;

end;

{------------------------------------------------}

procedure TForm0.Button10Click(Sender: TObject);

var vspSum:integer;

i, j,kk,radius,radto:integer;

snosX,snosY,count0:integer;

vspmas:array[1..Pol] of integer;

begin

count:=0;

label3.Caption:='?';

Edit3.Text:=inttostr(count);

{----------------------------------------}

for kkproba:=1 to R do

begin

radto:=0;

snosX:=0;

snosY:=0;

for i:=1 to Pol do

begin

polmas[kkproba,i]:=0;

vspmas[i]:=0;

end;

search_center();

radto:=round((sqrt((center_y[1]-center_y[0])*(center_y[1]-center_y[0])+

(center_x[1]-center_x[0])*(center_x[1]-center_x[0])))/2);

snosX:=center_y[0]+round((abs(center_y[1]-center_y[0]))/2);

snosY:=center_x[0]+round((abs(center_x[1]-center_x[0]))/2);

for radius:=1 to Pol do

begin

vspSum:=0;

for i:=1 to N-1 do

for j:=1 to N-1 do

begin

if((i-snosX)*(i-snosX)+(j-snosY)*(j-snosY) <= (radius*radius))

then vspSum:=vspSum+(256-picmas[kkproba,i,j]);

end;

polmas[kkproba,radius]:=round(vspSum/(Pi*radius*radius));

end;

{

count0:=0;

for i:=Pol downto 1 do

if polmas[kkproba,i] = 0 then count0:=count0+1 else break;

if count0 > 1 then

begin

for i:=1 to round(count0/2) do vspmas[i]:=0;

for i:=1 to Pol-count0 do vspmas[i+round(count0/2)]:=polmas[kkproba,i];

for i:=1 to Pol do polmas[kkproba,i]:=vspmas[i];

end;}

end;

Assignfile(temp,'temp.txt');

rewrite(temp);

for j:=1 to R do

begin

for i:=1 to Pol do

begin

write(temp,' ',polmas[j,i]);

end;

writeln(temp);

writeln(temp);

writeln(temp);

end;

closefile(temp);

{----------------------------------------}

for i:=1 to Pol do

begin

polmassred[1,i]:=0;

polmassred[2,i]:=0;

polmassred[3,i]:=0;

end;

for kk:=1 to 40 do

for i:=1 to Pol do

begin

polmassred[1,i]:=polmassred[1,i]+polmas[kk,i];

end;

for kk:=41 to 80 do

for i:=1 to Pol do

begin

polmassred[2,i]:=polmassred[2,i]+polmas[kk,i];

end;

for kk:=81 to 120 do

for i:=1 to Pol do

begin

polmassred[3,i]:=polmassred[3,i]+polmas[kk,i];

end;

for i:=1 to Pol do

begin

polmassred[1,i]:=polmassred[1,i]/St;

polmassred[2,i]:=polmassred[2,i]/St;