نوشته‌ها

شبیه سازی با متلب

تشخیص فونم ها(لب خوانی) با SVM در متلب

میخواهیم در این پست آموزشی تشخیص واج ها یا فونم ها را با متلب انجام دهیم. برای این منظور داده ها را برای هم آوا(واج یا فونم) 4بار تهیه و ذخیره می کنیم. این تعداد هر چه بیشتر باشد الگوریتم دقیق تر عمل می کند. چون در اینجا داده های ما کم هست از الگوریتم SVM که خروجی بهتری را می دهد استفاده می کنیم.

در این آزمایش برای هر آوا 4بار با اشخاص مختلف و با گرفتن تصویر ویدویی از لب خوانی آنها دیتای اولیه را تهیه می کنیم. بعد نیاز هست تا آنها را با عدد مشخص کنیم و به این صورت که پشت سر هم باشند. یعنی اگر 10فونم داریم. باید 40ویدیو باشد که اولی 1 و آخری 40 نام گذاری شده است

بهتر هست سریعتر به همراه برنامه متلب آن آموزش متلب را آغاز کنیم. در توضیحات زیر منظور از عکس همین ویدیو های تهیه شدست:

قسمت ابتدایی برا پاک کردن صفحه، حافظه و اشکال

clc

clear all

close all

[n p]=uigetfile;

گرفتن مسیر عکسها

numImg=input(‘Enter The Image Numbers’);

گرفتن تعداد عکسها

TraImg=input(‘Enter The Image Number for each class’);

گرفتن اینکه هر کلاس چند عکس را شامل می­باشد

imgbank=cell(numImg,1);

تعریف بانک تصویر

T1=cell(numImg,1);

T2=cell(numImg,1);

متغیرهای گرفتن طول و عرض دهان

for ii=1:numImg

خواندن عکسها و ذخیره در متغیر خاص

برای هر عکس

a=num2str(ii);

اعداد عکسهارا به متن تبدیل کردن

n=strcat(a,’.avi’);

مخلوط کردن عکس با پسوند avi

img=read(mmreader([p n]));

خواندن عکس با گرفتن مسیر و نام عکس

imgbank{ii,1}=(img);

ذخیره عکس در بانک تصاویر

[rr cc zz ff]=size(img);

imgg=cell(ff,1);

ایجاد متغیری برای نگهداری فریمها

خواندن و استخراج تصویر لب بر اساس پیکسلها

for jj=1:ff

برای هر فریم

imgh=imgbank{ii,1}(:,:,:,jj);

خواندن از بانک تصاویر

imgbw1=(imgh(:,:,1)>130 & imgh(:,:,1)<210 & imgh(:,:,2)>40 & imgh(:,:,2)<90 & imgh(:,:,3)>30 & imgh(:,:,3)<90);

پیکسهای خاصی را که مربوط به لب است جدا کردن

imgbw2=(imgh(:,:,1)>100 & imgh(:,:,1)<150 & imgh(:,:,2)>45 & imgh(:,:,2)<75 & imgh(:,:,3)>45 & imgh(:,:,3)<75);

پیکسهای خاصی را که مربوط به اطراف لب است جدا کردن

imgt=imgbw1+imgbw2;

ترکیب آنها

استخراج مسک برای حذف جاهای اضافی

[rr cc]=size(imgt);

b=zeros(rr,cc);

for iii=31:rr-30

for jjj=76:cc-75

b(iii,jjj)=sum(sum(imgt(iii-30:iii+30,jjj-75:jjj+75)));

با بلوکی به بزرگ 60 در 150 دنبال جایی هستیم که تصویر بیشترین 1 را دارد که موقعیت همان لب است

end

end

[aa bb]=find(b==max(max(b)));

بیشترین یک را پیدا کردن

c=zeros(size(b));

g1=min(aa);

g2=max(aa);

g3=min(bb);

g4=max(bb);

if g1<41

اگر minاز 41 کمتر باشد منظورکنار تصویر لب داشته باشیم

g1=41;

مینیمم را 41 بگیر

end

if g2>rr-40

مانند بالا

g2=rr-40;

end

if g3<121

g3=121;

end

if g4>cc-120

g4=cc-120;

end

c(g1-40:g2+40,g3-120:g4+120)=1;

imgt1=imgt.*c(1:rr,1:cc);

مسک را در تصویر ضرب و لب را استخراج کن

حذف نویز با مساحتهای کم

cc1 = bwconncomp(imgt1);

stats = regionprops(cc1, ‘Area’);

idx = find([stats.Area] > 500);

imgt2 = ismember(labelmatrix(cc1), idx);

اگر چیزهای دیگری باشند که مساحتشان کوچک باشد حذف کن

imgg{jj,1}=imgt2;

تصویر لب را در ماتریس ذخیره کن

end

t=[];

for jj=2:ff

u=imgg{jj,1}-imgg{jj-1,1};

استخراج حرکت دو تصویر پشت سر هم زمانی

[a b]=find(u==1);

اگر حرکت داشته باشیم

t=[t;[max(a)-min(a) max(b)-min(b)]];

عرض و طول این حرکات را ذخیره کن

end

T1{ii}=t(:,1);

عرضها در یک سلول

T2{ii}=t(:,2);

طولها در یک سلول

end

feature1=[];

for ii=1:numImg

برای هر تصویر

a=T1{ii};

b=T2{ii};

عرض و طولها را در دو متغیر قرار بده

feature1=[feature1 ; [std(a) std(b) median(a) median(b) a(fix(length(a)./2)-2) a(fix(length(a)./2)-1) a(fix(length(a)./2)) a(fix(length(a)./2)+1) a(fix(length(a)./2)+2) b(fix(length(a)./2)-2) b(fix(length(a)./2)-1) b(fix(length(a)./2)) b(fix(length(a)./2)+1) b(fix(length(a)./2)+2) ]];

فضای ویژگیها را بر اساس مدین، انحراف معیار و مقادیر وسط دو ماتریس بساز

%feature1=[feature1 ; [std(a) std(b) median(a) median(b) ]];

end

tt=max(feature1);

ماکزیمم ویژگیها محاسبه

feature=[];

for ii=1:numImg

feature=[feature ;feature1(ii,:)./tt];

همه ویژگیها به ماکزیمم تقسیم تا نرمالیزه شوند

end

out=[];

for ii=1:numImg./TraImg

out=[out ii.*ones(1,TraImg)];

تهیه ماتریس خروجیها بصورت 1*n

end

out1=zeros(size(19,76));

for ii=1:numImg

out1(out(ii),ii)=1;

تهیه ماتریس خروجیها بصورت m*n(مناسب شبکه عصبی)

end

%net=newff(feature’,out1,[13],{‘purelin’ ‘tansig’});

%net=train(net,feature’,out1);

%sim(net,feature(1,:)’)

[result] = multisvm(feature,out’,feature(1,:))

دسته بندی با SVM

به همین راحتی میتوان تشخیص فونم را با متلب و با الگوریتم SVM انجام داد.

فانکشنی را نیز برای این برنامه باید در نظر بگیرید به صورت زیر:

function [result] = multisvm(TrainingSet,GroupTrain,TestSet)

u=unique(GroupTrain);
numClasses=length(u);
result = zeros(length(TestSet(:,1)),1);

%build models
for k=1:numClasses
%Vectorized statement that binarizes Group
%where 1 is the current class and 0 is all other classe
G1vAll=(GroupTrain==u(k));
if G1vAll==ones(size( G1vAll))
G1vAll=[ G1vAll(1:end-1); 2];
end

models(k) = svmtrain(TrainingSet,G1vAll);
end

%classify test cases
for j=1:size(TestSet,1)
for k=1:numClasses
if(svmclassify(models(k),TestSet(j,:)))
break;
end
end
result(j) = k;
end

حالا کافیست برای اجرای برنامه هر بار یک فونم را بصورت زیر بخواهید تا تشخیص دهد:

[result] = multisvm(feature,out’,feature(7,:))

این دستور به این معنی هست که فونم 7ام مربوط به کدام کلاس هست که الگوریتم SVM این کار را انجام می دهد

شبیه سازی با متلب

آموزش انجام پروژه درس کنترل مدرن با متلب

به نام خدا

در این آموزش متلب قصد داریم تمرین درس کنترل مدرن را بررسی و در متلب شبیه سازی کنیم:

تمرین شماره یک بصورت زیر است:

modern-control1

برای حل این تمرین از مثال حل شده فصل 6 کتاب کنترل مدرن دکتر علی خاکی صدیق کمک می گیریم

در این تمرین تابع تبدیل حلقه باز سیستم (بدون سیستم جبران ساز) به صورت زیر است

modern-control2

از جایی که 0.5=ξ و3=nω  در این مسئله مشخص می باشد و با توجه به تابع تبدیل استاندارد که به صورت زیر است

modern-control3

با جایگذاری مقادیر داده شده  مسئله  در تابع تبدیل بالا تابع تبدیل برابر می شود  با

modern-control4

که قطب های آن به صورت زیر بدست می آید

modern-control5

در واقع ما با طراحی این کنترل کننده باید به این قطب ها برسیم

برای براورده ساختن مشخصه های مسئله وبرای تغییر مسیر نمودار مکان ریشه ها به گونه ای که از قطب های حلقه-بسته (ذکر شده در بالا)عبور کند، جبران سازی طراحی خواهیم کرد. برای تعیین جبران ساز پیش فاز زاویه لازم φ جهت افزودن به مجموع زوایای قطبها و صفرهای حلقه-باز با یکی از قطبهای غالب حلقه –بسته مطلوب را پیدا می کنیم.مجموع این زوایا و زاویه φ باید  باشد.در سیستم فعلی، زاویه  در قطب حلقه بسته مطلوب عبارتست از

modern-control6

از اینرو جبران ساز پیش فاز باید زاویه را فراهم آورد. موقعیت  قطب و صفری که این زاویه را فراهم می آورند،منحصر بفرد نیست. یک جبران ساز مناسب (که با سعی و خطا بدست آمده است)عبارتست از

modern-control7

بهره   از شرط دامنه تعیین می شود به عبارت دیگر از شرط دامنه داریم

modern-control8

با استفاده از شرط دامنه در قطب مورد نظر داریم

modern-control9

بهره  برابر است با

modern-control10

پس به طور کلی اطلاعات بدست آمده برابر است با

http://www.matlabi.ir

ابتدا برای مشاهده مکان هندسی تابع تبدیل حلقه – بسته بدون کنترل کننده به صورت زیر عمل می کنیم

modern-control12

s=tf(‘s’);

gs=10/(s*(s+1));

sys1 = feedback(gs,+1);

rlocus(sys1)

 مکان هندسی حلقه- باز بدون کنترل کننده

مکان هندسی حلقه- باز بدون کنترل کننده

مکان هندسی حلقه- بسته بدون کنترل کننده

مکان هندسی حلقه- بسته بدون کنترل کننده

برای بدست آوردن قطب های تابع تبدیل استاندارد به روش زیر عمل می کنیم

modern-control4

a=[1 3 9];

b=roots(a);

modern-control5

در ادامه برای تعیین زاویه مورد نظر از برنامه زیر استفاده شده

s=-1.5+2.59i;

z=10/(s^2+s);

r = abs(z);

theta = atan2(imag(z),real(z));

anglout = radtodeg(theta);

zaviye=180-anglout;

یعنی کنترل کننده ما باید زاویه بالا را جبران کند تا به جواب مطلوب برسیم  که با بدست آوردن مقادیر t1 وt2 مورد نظر از طریق سعی وخطا به صورت زیر به زاویه مطلوب می رسیم

t1=3.7222; %40.8934

t2=0.45;

z1=((t1*s)+1)/((t2*s)+1);

r1 = abs(z1);

theta1 = atan2(imag(z1),real(z1));

anglout1 = radtodeg(theta1);

  K بدست می آید با

k=1/abs(z1*z);

با دستورات زیر مکان هندسی ریشه های سیستم حلقه بسته را بدون کنترل کننده وهمینطور همراه با کنترل کننده در یک شکل رسم می شود

q=tf(‘s’);

gs=10/(q*(q+1));

gc=((k*(t1*q+1))/(t2*q+1));

sys1 = feedback(gs,1);

gg=series(gc,gs);

sys2=feedback(gg,1);

subplot(2,1,1); rlocus(sys1)

title(‘Without the controller’)

ylabel(‘halghe baste’)

subplot(2,1,2); rlocus(sys2)

title(‘With the controller’)

ylabel(‘halghe baste’)

که به صورت زیر است

modern-control15

مکان هندسی ریشه های سیستم حلقه- بسته را بدون کنترل کننده وهمینطور همراه با کنترل کننده

 

همینطور اگر بخواهیم مکان هندسی حلقه-باز را رسم کنیم به شکل زیر است

figure

subplot(3,1,1); rlocus(gs)

title(‘tabe tabdil’)

ylabel(‘halghe baz’)

subplot(3,1,2); rlocus(gc)

title(‘jobran saz’)

ylabel(‘halghe baz’)

subplot(3,1,3); rlocus(gg)

title(‘tabe tabdil va jobran saz’)

ylabel(‘halghe baz’)

         modern-control16

مکان هندسی حلقه-باز بدون کنترل کننده وهمینطور همراه با کنترل کننده

 

رسم پاسخ پله سیستم بدون کنترل کننده وبدون کنترل کننده  و همینطور اطلاعات پاسخ پله آن به صورت زیر است به این صورت انجام می شود

et=stepinfo(sys1)

et1=stepinfo(sys2)

figure

subplot(2,1,1)

plot(step(sys1))

subplot(2,1,2)

plot(step(sys2))

modern-control17

modern-control18

پاسخ پله سیستم بدون کنترل کننده وبدون کنترل کننده

 

در پیوست برنامه متلب این تمرین وجود دارد که مرحله به مرحله توضیحاتی که داده شد در آن انجام شده و همچنین مکان هندسی حالات مختلف نیز رسم شده است.

 

.

شبیه سازی با متلب

پیش بینی دمای ماکزیمم هوا با استفاده از شبکه عصبی

مقدمه

بشر همواره در طول تاریخ بر آن بوده تا آینده را بر اساس گذشته پیش بینی کند تا تدابیر لازم برای حوادث در شرف وقوع را اتخاذ کند.که این تلاش ها گاها پایه گذار علوم مختلفی گردیده است یکی از علوم هواشناسی است که انسان ها به طور روزمره و خواه ناخواه با آن برخورد دارند.پیش بینی هوا در واقع از سیستم های غیرخطی و پیچیده و فاقد مدل ریاضی است که بدلیل تغییرپذیر بودن با زمان،روش های معمول پیش بینی امکان پیش بینی را غیرممکن و از طرفی با توجه به دارابودن اهمیت پیش بینی در زمینه های مختلف از جمله امور اقتصادی،نظامی و کشاورزی،ضرورت پیش بینی مطرح می شود.در این میان برآورد دما به عنوان یکی  از عناصر مهم اقلیمی که پدیده ای غیرخطی و متغییر با زمان و مکان است و عوامل اقلیمی و جغرافیایی زیادی در آن موثرند دارای اهمیت فراوان خواهد بود. که از نتایج آن می توان در کنترل بیماری ها،مدیریت منابع آبی،مطالعات زیست محیطی ،خشکسالی و غیره استفاده نمود.کارهایی که در زمینه برآورد صورت گرفته اعم از برآوردهای خطی و غیرخطی حاکی از آن است که امکان برآوردهای کوتاه مدت و بلند مدت داده های اقلیمی با دقت محدود وجود دارد. امروزه محققین،با ابداع و پیشرفت علومی چون روش های هوشمند که ابزاری توانمند و انعطاف پذیر هستند،در جستجوی راه هایی فراتر از روش های متداول در شناخت و پیش پینی پارامترهای مهم هواشناسی می باشند یکی از این روش ها،شبکه های عصبی مصنوعی که از مولفه های هوش مصنوعی است که توانایی تقریب و محاسبه هر تابع حسابی و منطقی را دارند.پال و همکاران (2002)به نقل از احمدی به منظور پیش بینی حداکثر و حداقل دمای سطح زمین یک شبکه عصبی از نوع پرسپترون چندلایه را طراحی کردند و خطای پیش بینی را بین مثبت و منفی 2درجه سانتیگراد برآورد کردند(1).جین(2003)دمای هوا را برای هشدار درباره یخبندان در منطقه جورجیا با استفاده از شبکه های عصبی برای یک تا دوازده ساعت آینده پیش بینی کرد(2).رحمان و همکاران(2008) از دما و رطوبت نسبی با دوره آماری از 1998تا 2002 جهت برآورد تابش خورشیدی در شهر آب های عربستان سعودی استفاده کردندنتایج آن هانشان داد که شبکه عصبی قادرند تابش خورشیدی را از دما و رطوبت نسبی برآورد کنند(3).سنکال و همکاران(2009)با استفاده شبکه عصبی و داده های ماهواره ای،تابش خورشید رادر سطح ترکیه برآورد کردند(4).علیجانی و قویدل رحیمی با استفاده از روش های رگرسیون خطی و شبکه های مصنوعی به مقایسه و پیش بینی تغییرات دمای سالانه تبریز با ناهنجاری های دمایی کره زمین پرداختند و نشان دادند که مدل های شبکه عصبی بسیار قوی تر از مدل های خطی و نیمه خطی عمل می کنند(5).کاراموز و همکاران(1385)با استفاده از شبکه عصبی به پیش بینی بلندمدت بارش حوضه های غربی ایران پرداختند(6).

بنابراین هدف از این پژوهش پیش بینی دمای ماکزیمم روزانه هوا با استفاده از شبکه عصبی استاتیک و دینامیک و بررسی نتایج می باشد.

 

روش ها پیش بینی هوا

 روش های قابل استفاده در پیش بینی هوا را می توان پیش بینی هوا با رگرسیون خطی و با شبکه عصبی را ذکر نمود.در این مقاله پیش بینی هوا با استفاده از شبکه عصبی را مورد بررسی قرار دادیم و با توجه به مقاله(7)که خطای رگرسیون خطی را نیز به همراه خطای شبکه عصبی مقایسه نموده و به این نتیجه رسیده است که خطای شبکه عصبی از رگرسیون بسیار کمتر است در نتیجه از مقایسه ای دو روش در این مقاله اجتناب کردیم.

 

عوامل موثر در پیش بینی هوا

عواملی که در پیش بینی هوا موثر هستند عبارتند از:

  • جهت باد
  • سرعت باد
  • میزان ابرناکی هوا(عددی بین 0 تا 8)
  • فشار QFE(فشاری که جو به زمین اعمال می کند)
  • فشار QFF
  • ساعات آفتابی
  • رطوبت نسبی
  • دمای خشک
  • دمای تر
  • و….

یکی از عوامل تاثیر گذار در شبکه عصبی انتخاب پارامترهای موثر در پیش بینی هوا است که با استفاده از پژوهشی که در سازمان هواشناسی صورت گرفته پارامترهای زیر به عنوان پارامترهای اصلی برای ورودی شبکه عصبی انتخاب شده است:

  • سرعت باد
  • رطوبت نسبی
  • فشارQFE
  • دمای خشک
  • ساعت آفتابی

منطقه وداده های مورد استفاده

در این پژوهش ما از داده های 3 شهر

  1. اصفهان
  2. قزوین
  3. ساری

استفاده کردیم که در ادامه هر 3شهر را مورد بررسی قرار می دهیم.داده های موجود هر شهر 4سال(1460روز)که ما برای تست شبکه در فصول مختلف،داده های 3سال(1095روز)را برای آزمایش شبکه و داده های 1سال(365روز) را برای تست شبکه انتخاب کردیم.

1)اصفهان

شهر اصفهان با وسعت106179کیلومترمربع و جمعیتی بالغ بر 1534000در مرکزایران واقع شده است.

هوای شهر اصفهان خشک و دارای فصول منظم می باشد.

 

2)قزوین

ارتفاع شهر قزوین از سطح دریا ۱۲۷۸ است. میانگین دمای سالانه شهر قزوین ۱۳ درجه است. آب و هوای شهر قزوین بخاطر هم جواری با رشته کوه‌های البرز از ناحیه شمال در تابستان خنک و در زمستان سرد است. میانگین میزان بارش شهر قزوین سالانه ۳۰۲ میلی‌متر است.

قزوین به دلیل قرار گرفتن در گلوگاه ارتباطی استان‌های شمالی و غربی کشور، نزدیکی به تهران، دارابودن چندین شهر صنعتی و نیز برخورداری از چندین دانشگاه -از جمله دانشگاه‌های بین‌المللی امام خمینی، علوم پزشکی و آزاد اسلامی- و شماری دانشگاه غیردولتی از موقعیت خوبی برخوردار است.

این شهر از لحاظ جمعیت بیست و یکمین شهر پرجمعیت ایران به شمار می آید و در سال ۱۳۹۰ خورشیدی بالغ بر ۳۸۱،۵۹۸ نفر بوده‌است. قزوین به علت دارا بودن ۲ هزار و ۵۰۰ هکتار باغستان در اطراف شهر و وجود بوستان ۱۴۰۰ هکتاری باراجین در سال ۱۳۹۲ از سوی معاون رئیس جمهور و رئیس سازمان حفاظت محیط زیست کشور به عنوان شهر پاک ایران انتخاب شد .

3)ساری

شهر ساری با وسعت3923کیلومترمربع و جمعیتی بالغ بر 250000در شمال ایران واقع شده است.

هواي قسمت جلگه‌اي ساري مرطوب و معتدل و هواي قسمت كوهستاني آن سردسيري است.

 

نحوه ارزیابی شبکه

ما در این مقاله 3معیار را برای ارزیابی شبکه انتخاب کردیم

1)انحراف معیار

توسط فرمول زیر معرفی می شود

ann

که در اینجاX مقدار مشاهده شده و Y مقدار پیش بینی شده

2) درصد خطای برآورد داده ها

 پروژه متلب 

3) درصد خطای زیر2C±

پیش بینی هایی که سازمان هواشناسی انجام می دهد با خطای 2C± است که ما این معیار را در این مقاله در نظر گرفتیم و با پیش بینی هایی که این سازمان با تمام امکانات انجام می دهد مقایسه می کنیم.

 

شبکه عصبی

ما در این مقاله از دو نوع شبکه استفاده کردیم

  1. شبکه عصبی استاتیک

شبکه عصبی پیش رو با انتشار خطا به عقب(back propagation)

شبکه عصبی مبتنی برتابع پایه شعاعی

 

  1. شبکه عصبی دینامیک

شبکه عصبی TDNN

شبکه عصبی ELMAN

 

شبكه عصبي پيش رو با انتشار خطا به عقب

یکی از معمول ترین شبکه های عصبی مورد استفاده با داشتن یک مجموعه داده به عنوان ورودی و یک مجموعه داده خروجی شبکه عصبی چند لایه با الگوریتم انتشار خطا به عقب است که خود شامل دو فاز مي¬باشد؛ فاز اول فاز رو به جلو  و فاز دوم فاز بازگشت . اين ساختار در شكل1 نشان داده شده است. به اين ترتيب در در این مقاله از تکنیک بهینه-سازی Levenberg-Marquardt  که تقریبی بر روش نیوتن است استفاده شده است. (8)

پروژه متلب

شکل 1

نتايج استفاده از اين ساختار با استفاده از تعداد نرون­هاي متفاوت در لاية پنهان در جدول1 آمده است.همچنین ما در این مقاله از تکنیک گرادیان توام نیز استفاده نمودیم که نتایج آن مشابه Levenberg-Marquardشد.به ازای تابع محرک tansig در لایه پنهان اول و تابع purelin در لایه خروجی به بهترین خروجی نسبت به تابع دیگر دست یافتیم.

نتایج حاصل از شبکهMLP اصفهان

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش تعداد نرون
78 1.94 7.5 12 4
76 1.98 7.5 11.5 6
73 2.2 7 11 8
72 2.28 7.6 11 10
78 1.78 6.6 11.7 2-4

بهترین نتیجه با دو لایه پنهان4-2

 

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش تعداد نرون
74 2.31 7.8 11 4
78 3.8 9 11 6
71 3.38 8.4 11 8
67 2.96 9.2 9.6 10
75 3.43 8 12 2-4

نتایج حاصل از شبکهMLPقزوین

آموزش متلب

بهترین نتیجه با یک لایه پنهان با 4نرون

 

نتایج شهر ساری

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش تعداد نرون
%56 2.98 14 11 4
%51 3.16 15 11 6
%56 3 14 10 8
%57 2.95 13 10 10
%55 3.08 15 11 2-4

 

نتایج متلب

نتایج حاصل از شبکهMLPساری

مقایسه 3شهر در بهترین حالت

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش شهر
78% 1.78 6.6 11.6 اصفهان
74% 2.31 7.8 11 قزوین
55% 2.95 13 10 ساری

 

اصفهان بدلیل داشتن فصول منظم و کم بودن تغییرات آب و هوایی نسبت به دو شهر دیگر دارای عملکرد بهتر بوده است.

دلیل خطای زیاد ساری نسبت به دو شهر دیگر داشتن تغییرات آب و هوایی نسبتا زیاد می باشد.بهترین راه برای پیش بینی این گونه شهرها پیش بینی فصلی است،فصلی که تغییرات آن کم باشد.به عنوان مثال اگر ما داده ها تابستان را در نظر بگیریم خطا کاهش می یابد.

 

2-1  شبکه عصبی مبتنی برتابع پایه شعاعی

این شبکه دارای دو لایه می باشد که ورودی تابع محرک لایه اول از ضرب بایاس با بردار فاصله بین بردارهای وزنwو بردار ورودیp می باشد.

این شبکه ها برای جداسازی نواحی در فضا از سطوح زنگوله ای شکل استفاده می کنند که در شکل زیر مشاهده می کنید.

متلب

در این شبکه ها با معرفی مقدار بازشدگی سطح زنگوله ای(spread)،تقسیم فضای الگوها صورت می گیرد.ساختار شبکه RBF در شکل2 نمایش داده شده است.(9)

متلبی

نتایج این شبکه در جداول زیر آمده است

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده  آموزش شعاع
23% 14.22 61 صفر 0.1
18% 743 580                    صفر 1
72% 2.53 8.5 8.5 19
77% 2.17 7.4 9.8 37
80% 1.9 6.8 11 135

پروژه متلب

نتایج حاصل از شبکهRBF شهر اصفهان

در حالت شعاع 135

matlabi_ann9

 

نتایج حاصل از شبکهRBF شهر قزوین

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده  آموزش شعاع
12% 13.37 64 صفر 0.1
7% 421 368                     صفر 1
63% 144 59 8 19
70% 111 33 10 37
72% 47.1 22 11 135

 

نتایج حاصل از شبکهRBF شهر ساری

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده  آموزش شعاع
%28 7.71 53.72 0.1 0.1
%20 36 102  0.1 1
%53 4.14 16 8.9 19
%50 3.57 16 10 37
%51 3.2 15 11 135

 

مقایسه3شهر بهترین حالت

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش شهر
78% 1.78 6.6 11.6 اصفهان
74% 2.31 7.8 11 قزوین
55% 2.95 13 10 ساری

 

در اینجا هم همانند شبکه MLP شهر اصفهان بهترین نتیجه را به ما می دهد.

مشاهده شد که اگر پارامتر ساعت آفتابی را از داده های شهر قزوین برداریم در شعاع135 نسبت به قبل جواب بهتری را به ما می دهد(انحراف معیارحدود 7 می شود)به این معنی که ما در این حالت پیش بینی نامعقول نسبت به قبل کمتر خواهیم داشت.

 

 

2)شبکه های عصبی دینامیک

 

1-2شبکه عصبی TDNN

یکی از ساده­ترین شبکه­های عصبی دینامیک شبکه عصبی TDNN است که شامل استفاده از یک شبکة پیش­رو بر روی یک سری زمانی از ورودی­هاست.

در شکل3 ، یک شبکة دولایه نشان داده شده است.

matlabi_ann11

شکل 3

نحوه عملکرد این شبکه در این مقاله به ازای تاخیر 3روز در شکل 4 نمایش داده شده است.

matlabi_ann12

شکل4

نتایج این شبکه در جداول زیر آورده شده است

 

 

نتایج حاصل از شبکهTDNNبرای شهر اصفهان

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده  تست درصد خطای برآورد داده  آموزش تعداد تاخیر 
65% 2.43 9 16 2
61% 2.47 9 16 3
57% 2.67 10 16 4
52% 2.82 11 18 5
55% 2.57 10 14 6
58% 2.53 10 15 7
59% 2.69 10 13 8

در حالت 2روز تاخیر

matlabi_ann13

نتایج حاصل از شبکهTDNNبرای شهر قزوین

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده  تست درصد خطای برآورد داده  آموزش تعداد تاخیر 
50% 3.18 11 20 2
54% 3.39 11 18 3
51% 3.19 12 22 4
53% 3.13 11 19 5
49% 3.46 12 16 6
52% 3.04 11 19 7
53% 3.15 10 17 8

در حالت 8تاخیر

matlabi_ann14

نتایج حاصل از شبکهTDNNبرای شهر ساری

درصد خطای زیر

2درجه

انحراف معیار درصد خطای برآورد داده  تست درصد خطای برآورد داده  آموزش تعداد تاخیر 
48% 3.85 18 15 2
44% 3.8 19 14 3
44% 3.92 21 16 4
46% 3.96 19 14 5
45% 3.93 18 14 6
45% 3.98 18 15 7
41% 3.94 19 15 8

 

در حالت 2تاخیر

matlabi_ann15

مقایسه3شهردر شبکهTDNN

درصد خطای انحراف معیار درصد خطای برآورد داده  تست درصد خطای برآورد داده  آموزش شهر
65% 2.43 9 16 اصفهان
53% 3.15 10 17 قزوین
48% 3.8 19 14 ساری

 

 

2-2شبکه عصبی ELMAN

شبكه عصبي بازگشتي چند لايه(ELMAN) يكي از شبكه­هاي عصبي ديناميك است كه در ساختار آن، يك حلقة فيدبك با تأخير واحد حول هر لايه از شبكه وجود دارد. این اتصال برگشتی به شبکه در تشخیص و تولید الگوهای time-varyingکمک می کند. شكل ساده­تر اين ساختار كه فقط شامل دولايه بوده و تابع تحريك ورودي و خروجي آن به ترتيب tansigmoid و purelin است  شبكة ELMAN  نام دارد.

matlabi_ann16

از الگوریتم LMبرای یادگیری این شبکه استفاده شده است.

نتایج حاصل از شبکهELMANبرای شهر اصفهان

خطای زیر 2 درجه انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش تعداد نرون
76% 1.92 7.22 12.26 2
80% 1.81 6.68 12.45 3
76% 1.94 7.28 11.63 4
76% 1.90 7.27 12.63 5
76% 2.37 7.39 11.72 6
74% 1.92 7.38 12.38 7
78% 1.91 7 11.75 8

در حالت 3نرون

matlabi_ann17

نتایج حاصل از شبکهELMANبرای شهر قزوین

 

خطای زیر 2 درجه انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش تعداد نرون
70% 2.75 8.2 13.75 2
72% 2.57 8.4 12 3
74% 1.94 7.3 12 4
65% 2.47 8.69 12.28 5
75% 1.97 7.4 11.9 6
72% 2.66 8 12 7
74% 3.28 8.2 11.72 8

 

در حالت4نرون

matlabi_ann19

نتایج حاصل از شبکهELMANبرای شهر ساری

خطای زیر 2 درجه انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش تعداد نرون
54% 3.09 16 12 2
55% 2.99 14.34 11.58 3
54% 2.98 14 11 4
54% 3 14 11 5
52% 3.13 14 12 6
56% 3.03 14.32 11.49 7
56% 3.03 14.5 11.48 8

 

در حالت 7نرون

matlabi_ann20

بررسی نتایج 3شهر

خطای زیر 2 درجه انحراف معیار درصد خطای برآورد داده تست درصد خطای برآورد داده آموزش شهر
80% 1.81 6.68 12.45 اصفهان
74% 1.94 7.3 12 قزوین
56% 3.03 14.32 11.49 ساری

 

نتایج

تغییرات ناگهانی آب و هوا تاثیر بسزایی در پیش بینی آب و هوا می گذارد همانطور که در نتیجه تست شبکه های انجام شده در این پژوهش ملاحضه فرمودید شهر اصفهان بدلیل داشتن تغییرات کم آب و هوا بهترین نتیجه را نسبت به دو شهر دیگر داشت.

این نکته قابل ذکر است که دلیل دیگری که در پیش بینی موثر است،گرمای نهان است که به دو عامل تبخیر و بارش بستگی دارد و شهر ساری بدلیل داشتن روزهای بارانی زیاد نسبت به 2شهر آزمایش شده،خطای بیشتری دارد.

در مقایسه دو شبکه عصبیRBFوMLP،شبکه MLPجواب بهتری نسبت به شبکه RBF در این پیش بینی به ما می دهد.

شبکه TDNN در این پژوهش نسبت به شبکه های دیگر بدترین پیش بینی را انجام می دهد.شاید دلیل آن پارامترهای ورودی باشد که کمکی به یافتن جواب مطلوب به شبکه نمی کند.

شبکه ELMANبا تعداد نرون های کم نسبت به MLP جواب نسبتا مشابهی را به ما می دهد.

با وجود اینکه شبکه MLP جز گروه شبکه های استاتیک می باشد و پژوهش ما جز تابع های سری زمانی(وابسته به زمان) می باشد ولی این شبکه جواب مطلوبی را به ما می دهد که یکی از دلایل مطلوب بودن جواب انتخاب پارامترهای مناسب ورودی برای این شبکه ذکر کرد .

 

مراجع

1.احمدی.الف،”طبقه بندی تغییرات بارش بوشهر با استفاده از شبکه عصبی مبتنی بر مدل خودسازمانده کوهنن

2-Jain, A., “Predicting Air Temperature For Frost Waning Using Artificial Neural Networks”, A Thesis

Submitted to the Graduate Faculty of The University of Georgia in Partial Fulfillment of the Requirements

for the Degree MASTER OF SCIENCE, ATHENS, GEORGIA,2003.
-3 -Rehman, S. and Mohandes, M. “Artificial neural network estimation of global solar radiation using air

temperature and relative humidity”, Energy Policy, vol (36), 2008.

4 -Senkal, O. and Kuleli, T., “Estimation of solar radiation over Turkey using artificial neural network

and satellite data”, Applied Energy, vol (86), 2009.

5-علیجان,”مقایسه و پیش بینی تغییرات دمای سالانه تبریز”مجله جغرافیا وتوسعه1384

6-کارآموز،م رمضانی،”پیش بینی بلند مدت بارش با استفاده از سیگنال های هواشناسی”هفتمین کنگره مهندسی عمران،1385

-7برومند صلاحی و همکاران،”پیش بینی دماهای حداکثر شهرستان اردبیل با استفاده از مدل رگرسیون چندگانه و شبکه های عصبی مصنوعی”،همایش ملی بحران آب در کشاورزی

8-م منهاج،”مبانی شبکه عصبی”

-9Simon Haykin, Neural Networks, Macmillan

College Publishing Company, 1999.

 

همانطور که میدانیم این یک پروژه کامل هست و میتوانید جهت تهیه فایل های شبیه سازی با متلب و گزارش آن و فایل های پاورپوینت از زیر اقدام نمایید

 

شبیه سازی با متلب

طراحی و شبیه سازی درایو موتور رلوکتانس سوییچی با متلب

بسم الله الرحمن الرحیم

طراحی و شبیه سازی درایو موتور رلوکتانس سوییچی

سیستم سیمولینک شده در متلبِ زیر یک درایو SRM 60 کیلووات 4/6 کنترل شده با جریان را با استفاده از مدل خاص SRM بر مبنای منحنی مغناطیس کنندگی اندازه گیری شده نشان می دهد.

سیمولینک متلب

توصیف:

SRM  به وسیله یک مبدل قدرت نامتقارن سه فاز که دارای سه ساق است، تغذیه می شود. که هر کدام شامل دو IGBT  و دو دیود هرزگرد است. در طول دوره هدایت، IGBTهای روشن با اعمال منبع ولتاژ مثبت به سیم پیچ های استاتور، جریان مثبت را به سیم پیچ های فاز تحریک می‌کنند. در طول دوره هرزگردی، ولتاژ منفی به سیم پیچ‌ها اعمال می شود و انرژی ذخیره شده، از طریق دیودها به منبع توان DC بازمی گردد. در نتیجه زمان افت جریان در سیم پیچ موتور می تواندکاهش یابد. با استفاده از یک سنسور موقعیت که به روتور متصل است، زاویه‌های روشن و خاموش بودن فازهای موتور را می توان با دقت تحمیل نمود. این زاویه سوئیچینگ می تواند برای کنترل شکل موج گشتاور، مورد استفاده قرار بگیرد. جریان های فاز به طور مستقل به وسیله سه کنترلر هیسترزیس که سیگنال های درایو IGBT ها را با مقایسه جریان اندازه گیری شده با مقدار مرجع تولید می کنند، کنترل می شوند. فرکانس سوئیچینگ IGBT ها به طور عمده به وسیله باند هیسترزیس تعیین می شود.

 

شبیه سازی با متلب:

در این سیستم، از یک منبع ولتاژ 240 ولت DC استفاده شده است. در محدوده سرعت، زاویه های روشن و خاموش شدن مبدل به ترتیب در مقادیر 45 درجه و 75 درجه ثابت شده اند. جریان مرجع معادل 200 آمپر و باند هیسترزیس به صورت 10-+ انتخاب شده است. SRMبا اعمال پله مرجع به ورودی رگولاتور، راه اندازی می شود. نرخ شتاب به مشخصه‌های بار وابسته است. برای کوتاه نمودن زمان راه اندازی، یک بار بسیار سبک انتخاب شده است. از آنجا که تنها جریان ها کنترل شده اند، سرعت موتور با توجه به دینامیک های مکانیکی سیستم افزایش خواهد یافت. شکل موج های درایو SRM (ولتاژ فاز، شار مغناطیسی، جریان های سیم پیچ، گشتاور موتور، سرعت موتور) بر روی اسکوپ مطابق نمودارهای زیر نمایش داده شده است. همانطور که مشاهده می شود، گشتاور SRM دارای ریپل گشتاور بسیار بالایی است که این به علت انتقال جریان های یک فاز به فاز دیگر است. این ریپل گشتاور، یک مشخصه خاصی از SRM است که عمدتا به زاویه های روشن و خاموش شدن مبدل وابسته است. باتوجه به مشاهده شکل موج های درایو، ما می توانیم بگوئیم که رنج سرعت عملکرد SRM، با توجه به مود عملکرد مبدل، می تواند به دو بخش تقسیم گردد: جریان کنترل شده و ولتاژ تغذیه شده.

موتور در متلب

Simulink matlab

مود جریان کنترل شده:

تا سرعت حدود 3000 دور در دقیقه، emf موتور کم است و جریان می تواند در مقدار مرجع تنظیم شود. در این مود عملکرد، مقدار متوسط گشتاور تقریبا متناسب با مرجع جریان است. علاوه بر ریپل گشتاور به علت انتقال فاز، توجه داشته باشید که ریپل گشتاور، به وسیله سوئیچینگ هسیترزیس رگولاتور نیز ایجاد می گردد. این مود عملکرد، مود گشتاور ثابت نیز نامیده می شود.

 

مود ولتاژ تغذیه شده:

برای سرعت های بالاتر از 3000 دور در دقیقه، emf موتور بالا است و جریان های فاز نمی تواند به مقدار مرجع اعمال شده به وسیله تنظیم کننده جریان برسند. عملکرد مبدل به طور طبیعی به حالت ولتاژ تغذیه شده که در آن هیچ مدولاسیون کلیدهای قدرت وجود ندارد، تغییر می کند. آن‌ها در طول دوره فعال خود و مادامی که منبع ولتاژDC  ثابت به سیم پیچ فاز اعمال می شود، بسته باقی می مانند. در مود ولتاژ تغذیه شده، SRM، مشخصه طبیعی خود را دارد که در آن مقدار متوسط گشتاور با سرعت موتور، رابطه معکوس دارد. از آنجا که تنظیم کننده هیسترزیس در این مود غیر فعال است، ریپل گشتاور تنها به علت انتقال فاز می باشد.

 

بهینه سازی مشخصه گشتاور زاویه سوئیچینگ وفقی:

در درایوهایSRM، هر دو گشتاور متوسط و ریپل گشتاور، به وسیله زاویه های روشن و خاموش بودن و شکل موج جریان در فازهای موتور تحت تاثیر قرار می گیرند. و این مشخصه ها به صورت تابعی از سرعت موتور تغییر می کنند. در بسیاری از کاربردها، به عنوان مثال در درایو خودروهای الکتریکی، بسیار مطلوب است که بالاترین مقدار نسبت گشتاور به آمپر و کم ترین ریپل گشتاور و تا حد امکان در یک رنج وسیع باشد. مشخصه گشتاور SRM به صورت تابعی از جریان و سرعت موتور می تواند به وسیله یک پیش محاسباتی برای تعیین زاویه روشن و خاموش بودن، بهینه گردد.

 

توضیحی بر مبدل درایو SRM :

از آنجا که گشتاور در درایوهای SRM مستقل از قطب فعلی تحریک است، درایوهای SRM تنها به یک سوئیچ در هر سیم پیچ فاز نیاز دارند. این بر خلاف درایوهای موتور AC است که در آن حداقل دو سوئیچ برای هر فاز جهت کنترل جریان، مورد نیاز است. علاوه بر این، در درایوهای موتورAC ، سیم پیچ ها با سوئیچ ها سری نیستند. که این مساله منجر به آسیب جبران ناپذیر در اثر خطای ساق[1] می شود. در درایوهایSRM ، همیشه یک سیم پیچ فاز سری با یک سوئیچ است. در هنگام وقوع یک خطای ساق، اندوکتانس سیم پیچ، نرخ افزایش جریان را محدود می نماید و زمان لازم را برای عملکرد رله حفاظتی جهت ایزوله نمودن خطا، فراهم می کند. فازهای SRM  مستقل ازهم هستند و در صورت خطای یک سیم پیچ، درایو موتور می تواند به عملکرد خود بدون وفقه ادامه دهد،گرچه توان خروجی کاهش خواهد یافت.

رایج ترین رویکرد برای تأمین انرژی یک موتور سوئیچ رلوکتانس، استفاده از یک مبدل پل نامتقارن مطابق شکل زیر است. سه فاز در یک مبدل پل نامتقارن وجود دارد که به فازهای موتور سوئیچ رلوکتانس مربوط می شوند. اگر هر دو سوئیچ قدرت در دو طرف فاز روشن شود، آنگاه فاز مربوطه باید فعال شود. زمانی که جریان به مقداری بالاتر از مقدار تعیین شده افزایش یافته، سوئیچ باید خاموش شود. انرژی که در حال حاضر در سیم پیچ موتور ذخیره شده، باید تا زمانی که انرژی تخلیه شود، به طریقی مشابه، جریان را حفظ کند.

matlab

[1] shoot-through faults

برای دریافت فایل سیمولینک از قسمت زیر اقدام نمایید:

شبیه سازی با متلب

شناسایی سیستم غیر خطی ربات بازوی مسطح دو درجه آزادی توسط شبکه عصبی

در این آموزش متلب میخواهیم شناسایی سیستم غیر خطی ربات بازوی مسطح دو درجه آزادی توسط شبکه عصبی مصنوعی را با متلب انجام دهیم.

معادلات دینامیکی این ربات به صورت زیر است:

matlabi_robot2dof

ابتدا باید داده های لازم را برای آموزش, اعتبارسنجی, و آزمایش شبکه عصبی را تهیه کرد. برای این منظور می بایست ورودی های خاصی را به سیستم مورد نظر اعمال و خروجی آن که زوایای تتا1 و تتا2 است, را اندازه گیری کرد.

قبل از هر چیز نیاز هست تا پروژه متلب را دانلود کنید

matlab-file

براي اين کار ابتدا بايد سيستم را در نرم افزار matlab  شبيه سازي نمود تا بوسيله آن داده هاي لازم توليد شوند:

براي شبيه سازي برنامه t2.m  نوشته شده است:

clc

clear

%define intional value

L1=0.7;

L2=0.5;

m1=4;

m2=3;

g=9.81;

Tau1=1.5;

Tau2=2;

sim(‘fcn.slx’);

 

در اين برنامه تابع fcn.slx فراخواني مي شود

پروژه متلب

با اجراي اين برنامه مقادير Theta1 ,Theta2  به عنوان حروجي به صورت زير بدست مي آيد:

matlabi_robot2dof2 matlabi_robot2dof3

با توجه به شبيه سازي ديده مي شود که نتايج شبيه سازي شده داراي مقادير ثابتي نبوده و براي رسيدن به مقادير ثابت از کنترل کننده pid  استفاده مي کنيم

براي شبيه سازي برنامه t3.m  نوشته شده است:

clc

clear

%define intional value

L1=0.7;

L2=0.5;

m1=4;

m2=3;

g=9.81;

Tau1=1.5;

Tau2=2;

sim(‘fcn1.slx’);

 

در اين برنامه تابع fcn1.slx فراخواني مي شود

پروژه متلب

با اجراي اين برنامه مقادير Theta1 ,Theta2  به عنوان حروجي به صورت زير بدست مي آيد:

پروژه متلب matlabi_robot2dof6

اضافه نمودن شبکه عصبي:

پروژه متلب

با توجه به شبيه سازي بالا مقادير ورودي و خروجي براي شبکه عصبي آماده شده است و برنامه t4.m  را مي نوسيم:

 

clc

clear

%define intional value

L1=0.7;

L2=0.5;

m1=4;

m2=3;

g=9.81;

Tauc1=1:0.1:2;

Tauc2=3:0.1:4;

for i=1:size(Tauc1,2)

    Tau1=Tauc1(i);

    Tau2=Tauc2(i);

sim(‘fcn1.slx’);

Teta1(i)=Theta1.data(end);

Teta2(i)=Theta2.data(end);

end

Teta1;

Teta1;

% define inputs and outputs for traning

x1 =Tauc1 ; % inputs tau1

x2 =Tauc2 ; % inputs tau2

y1 =Teta1 ;% outputs  Thetadd1

y2 =Teta2 ;% outputs  Thetadd2

x=[x1;x2]

y=[y1;y2]

net = feedforwardnet(10);

net = train(net,x,y);

view(net)

y = net(x);

perf = perform(net,y,x);

 

 

 

توصيحات برنامه :

1- دادن مقادير اوليه

%define intional value

L1=0.7;

L2=0.5;

m1=4;

m2=3;

g=9.81;

 

 

 

2-فرض کرديم مقادير گشتاور 1 و گشتاور 2 به صورت زير تغيير مي کند با  يک حلقه مقادير نتايج را بعد از شبيه سازي در محيط سيمولينک با فراخواني تابع fcn1.xls  به دست آورده و ذحيره مي کنيم:

Tauc1=1:0.1:2;

Tauc2=3:0.1:4;

for i=1:size(Tauc1,2)

    Tau1=Tauc1(i);

    Tau2=Tauc2(i);

sim(‘fcn1.slx’);

Teta1(i)=Theta1.data(end);

Teta2(i)=Theta2.data(end);

end

Teta1;

Teta1;

3- تعريف متغيير ها براي  آموزش شبکه عصبي:

% define inputs and outputs for traning

x1 =Tauc1 ; % inputs tau1

x2 =Tauc2 ; % inputs tau2

y1 =Teta1 ;% outputs  Thetadd1

y2 =Teta2 ;% outputs  Thetadd2

x=[x1;x2]

y=[y1;y2]

 

4- ايجاد شبکه عصبي :

net = feedforwardnet(10);

net = train(net,x,y);

view(net)

y = net(x);

perf = perform(net,y,x);

 

اجراي برنامه t4.m  مشاهده خروجي ها:

پروژه متلب شبکه عصبی

با توجه به شکل بالا شبکه عصبي 2 ورودي 2 خروجي 2 لايه اصلي که لايه پنهان آن داراي 10 لايه مي باشد استفاده شده است.

صفحه اصلي مربوط به شبکه عصبي فوق:

پروژه متلب

با کليک بر روي گزينه performance   شکل زير بدست مي آيد:

شبکه عصبی

با کليک بر روي گزينه traning state   شکل زير بدست مي آيد:

شبکه عصبی متلبی

با کليک بر روي گزينه erore histogram   شکل زير بدست مي آيد:

آموزش متلب

با کليک بر روي گزينه    Regression شکل زير بدست مي آيد:

آموزش متلب

 

 

 

 

 

 

 

شبیه سازی با متلب

مدل فرایند گاورنر 4درجه آزادی جهت کنترل سرعت توربین

مدل فرایند گاورنر جهت کنترل سرعت توربین به فرم زیر درنظر گرفته شده است. همچنین برای جبرانسازی افت فرکانس سیستم از یک دروپ کنترل کننده انتگرالی برای حذف خطای حالت ماندگار استفاده می گردد.

معادلات سیستم در متلب

کد نوشته شده در نرم افزار متلب به صورت زیر می باشد. (Parameters.m)

 

clc

% Dynamic Model Parameters:

 

Tt = 0.3;

Th = 0.1;

Fs = 60;

R  = 0.05*Fs;

H  = 3;

D  = 1.2125;

 

% Dynamic Model;

s = tf(‘s’);

Gdroop = (-1/(R*s))

Tfgov  = (1/(Th*s+1));

Tftur  = (1/(Tt*s+1));

Tfgen  = (Fs/(2*H*s+D));

Plant  = Tfgen*Tftur*Tfgov*Gdroop;

t=0:0.1:20;

 

با تعریف ورودی پله و سیگنال سینوسی به صورت زیر نتایج به فرم زیر قابل نمایش است.

 

t=0:0.1:20;

u=sin(t);

step(Plant);

y = lsim(Plant,u,t);

 پاسخ پله سیستم

شکل 1- پاسخ پله سیستم

 پاسخ سیستم به ورودی سینوسی

شکل 2 – پاسخ سیستم به ورودی سینوسی

بر اساس روش های کنترل کلاسیک در اینجا PID به طراحی کنترل کننده مناسب جهت پایدارازی سیستم و ردیابی ورودی مرجع پرداختیم که کنترل کننده حاصل به شکل زیر می باشد. اساس تنظیم این روش مبتنی بر طراحی زیگلر- نیکولز می باشد.

 شبیه سازی سیستم با کنترل کنندهPID

شکل 3- شبیه سازی سیستم با کنترل کنندهPID

 پاسخ سیستم به ووردی پله در حضور کنترل کننده PID

شکل 4 – پاسخ سیستم به ووردی پله در حضور کنترل کننده PID

 پاسخ سیستم به ووردی سینوسی در حضور کنترل کننده PID

شکل 5 – پاسخ سیستم به ووردی سینوسی در حضور کنترل کننده PID

جهت طراحی مناسبترین کنترل کننده ، جبران ساز پیش فاز – پس فاز را بکار برده ایم. همچنین جهت تنظیم پارامترهای این کنترل کننده از IMC استفاده کرده ایم. با توجه به نتایج نشان داده شده در شکل زیر کنترلر به عنوان تنظیم کننده عملرد بهتری نسبت به حالت ردیابی دارد.

شبیه سازی سیستم با جبران ساز پیش فاز - پس فاز

شکل 6- شبیه سازی سیستم با جبران ساز پیش فاز – پس فاز

 پاسخ سیستم به ووردی پله در حضور جبران ساز پیش فاز - پس فاز

شکل 7 – پاسخ سیستم به ووردی پله در حضور جبران ساز پیش فاز – پس فاز

 پاسخ سیستم به ووردی سینوسی در حضور جبران ساز پیش فاز - پس فاز

شکل 8 – پاسخ سیستم به ورودی سینوسی در حضور جبران ساز پیش فاز – پس فاز

در این قسمت فضای حالت در متلب به صورت زیر تعریف می گردد:

% Convert Plant to State Space ;

Pss = ss(Plant);

[A,B,C,D] = ssdata(Pss)

پروژه متلب

شکل 9- شبیه سازی سیستم برای طرحی فیدبک حالت

در این حالت با توجه به طراحی انجام شده در فضای حالت در مقایسه با توابع تبدیل توانایی اعمال شرایط اولیه و بررسی پاسخ سیستم نسبت به شرایط اولیه در حالت ورودی صفر را داریم. این کنترل کننده به لحاظ عملکردی دارای سرعت پاسخ بیشتری می باشد.

همچنین با تنظیم بهره فیدبک حالت کنترلی هرچه قدر گین های بزرگتری انتخاب کنیم قطب های حلقه بسته سیستم در مکان دورتری قرار خواهد گرفت و در نتیجه سیستم پایدار تر خواهد شد.

 پاسخ سیستم به شرایط اولیه در حضور کنترل فیدبک حالت کامل

شکل 10 – پاسخ سیستم به شرایط اولیه در حضور کنترل فیدبک حالت کامل

در مرحله بعد بهینه سازی پارامترهای کنترل کننده با تعریف توابع هدف مختلفی در متلب قابل انجام است. اکثر روشهای بهینه سازی کلاسیک مبتنی بر سیگنال خطای سیستم می باشد . در روش ITAE با در نظرگیری انتگرال  قدرمطلق خطا پارامترهای k را طوری محاسبه می نماییم که مقدار تابع هدف مورد نظر حداقل گردد. علت استفاده از قدر مطلق در این معیار جلوگیری از صفر شدن اثر سطوح مثبت و منفی می باشد.

با توجه به فایل شبیه سازی که در شکل نمایش داده شده است و  تابع تعریف شده در فایل ITAE.m با اجرای دستور زیر فرایند بهینه سازی ضرایب PID آغاز می گردد.

>> global P I

P = var(1);

I = var(2);

[t,x,y] = sim(‘PIDcontrolTIAE’,50);

[zn,fval,exitflag]=fminsearch(‘ITAE’,[8,8],optimset(‘MaxIter’,100))

در مرحله بعد بهینه سازی پارامترهای کنترل کننده با تعریف توابع هدف مختلفی قابل انجام است. اکثر روشهای بهینه سازی کلاسیک مبتنی بر سیگنال خطای سیستم می باشد . در وش ITAE با در نظریری انتگرال قدرمطلق خطا پارامترهای k را طوری محاسبه می نماییم که مقدار تابع هدف مورد نظر حداقل گردد. علت استفاده از قدر مطلق در این معیار جلوگیری از صفر شدن اثر سطوح مثبت و منفی می باشد. با توجه به فایل شبیه سازی که در شکل نمایش داده شده است و تابع تعریف شده در فایل ITAE.m با اجرای دستور زیر فرایند بهینه سازی ضرایب PID آغاز می گردد. >> global P I P = var(1); I = var(2); [t,x,y] = sim('PIDcontrolTIAE',50); [zn,fval,exitflag]=fminsearch('ITAE',[8,8],optimset('MaxIter',100))

شکل 11- شبیه سازی سیستم برای تنظیم ضریب PID به روش ITAE

 پاسخ سیستم به ورودی پله در حضور کنترلPID و کاربرد روش ITAE

شکل 12 – پاسخ سیستم به ورودی پله در حضور کنترلPID و کاربرد روش ITAE

میخواهیم بر اساس الگوریتم رگولاتور بهینه خطی درجه دو LQR در متلب بهینه ترین گین ها را جهت فیدبک نمودن حالت های سیستم طراحی نماییم. از آنجایی که هرچه K را بزرگتر انتخاب کنیم قطبهای حلقه بسته در مکان دورتری از محور موهومی قرار می گیرند اما این مشکل نیز به وجود خواهد آمد که سیگنال های کنترل متناسب با این بهره های بزرگ ، بزرگ خواهند شد و با توجه به محدودیت عملگرهای سیستم امکان ناپایداری وجود خواهد داشت.

بنابراین با روش طراحی کنترلر بهینه بهترین بهره ممکن جهت جایابی قطبهای حلقه بسته سیستم را پیدا می کنیم.

 پاسخ سیستم به شرایط اولیه با در نظ گرفتن کنترل کننده LQR

شکل 13-  پاسخ سیستم به شرایط اولیه با در نظ گرفتن کنترل کننده LQR

با توجه به طراحی کنترل کننده فیدبک حالت سیستم نیاز به اندازه گیری همه حالت های سیستم جهت فیدبک نمودن دارد. اما در عمل تنها تعداد محدودی از خروجی ها قابل اندازه گیری هستند بنابراین با طراح رویت گر حالت به تخمین حالت های سیستم می پردازیم.

شبیه سازی رویتگر کامل

شکل 14 – شبیه سازی رویتگر کامل

مقایسه حالت های تخمینی (پایین) با حالت واقعی سیستم (بالا)

شکل 15- مقایسه حالت های  تخمینی (پایین)  با حالت واقعی سیستم (بالا)

با توجه به طراحی بهره رویتگر قطبهای حلقه بسته سیستم دینامیکی رویتگر می توانند در هر نقطه موردنظر ما قرار گیرند. در ایجا نیز مانند طراحی فیدبک حالت انتخاب بهره های بزرگ باعث دور شدن قطبهای رویتگر از محور موهومی و سریع شدن پاسخ خمین رویتگر خواهند شد.اما با توجه به وجود نویز اندازه گیری سنسورها بزرگ بودن مقدار بهره رویتگر باعث تقویت این نویز و کاهش عملکرد حالت های تخمین زده شده می گردد. بنابراین در اینجا نیز انتخاب بهینه بهره رویتگر مساله مهمی می باشد.

مقایسه حالت های تخمینی (پایین) با حالت واقعی سیستم (بالا) - پاسخ واگرا

شکل 16- مقایسه حالت های  تخمینی (پایین)  با حالت واقعی سیستم (بالا) – پاسخ واگرا

هدف از طراحی رویگر کاهش یافته ، کاهش مرتبه دینامیکی رویتگر با اجتناب کردن از تخمین حالت یکی از متغیرها که اندازه گیری آن با سنسور و هزینه پایین و بدون نویز مقدور می باشد است. اما در سیستم در نظرگرفته شده برای دینامیک گاورنر و با توجه به اینکه تنها یک خروجی قابل اندازه گیری برای اعمال به رویتگر و بهبود تخمین حالت های سیستم با بروز کردن مقادیر داریم بنابراین استفاده از رویتگر کاهش یافته به معنای اجتناب کردن از اعمال ورودی سنسور به رویتگر می باشد و این نکته مانع از بهبود عملکرد رویتگر با بروز نمودن پارامترها است.

وجود نویز در سنسور با توجه به فیدبک نمودن خروجی اندازه گیری شده به رویت گر باعث تخمین حالت های سیستم همراه با مقداری نویز و متعاقبا کاهش عملکرد سیستم رویتگر و در نتیجه سیستم کنترل کننده فیدبک حالت خواهد شد.

جهت دانلود برنامه متلب آموزش داده شده اینجا را کلیک کنید

governer_matlabi

 

 

 

 

 

 

 

 

شبیه سازی با متلب

طراحی و پیاده سازی OCR دست نویس فارسی با استفاده از عناصر ابتدایی تشکیل دهنده حروف

چکيده

در این پروژه از یک روش جدید برای تشخیص حروف و کلمات دست­نویس فارسی استفاده شده است. این کار با استفاده از هشت عنصر ابتدایی انجام می­شود که در ساختار تمام حروف و کلمات زبان فارسی وجود دارند. در این پروژه بعد از پیش پردازش، زیرکلمه نازک شده و وارد مرحله استخراج عناصر ابتدایی می­شود. در این مرحله با استفاده از استروک های و تبدیل هاف اصلاح شده، عناصر ابتدایی زیرکلمه را استخراج می­کنیم. با تشکیل بردار شناسایی استروک و سپس مقایسه آن با بردار شناسایی حروف، شناسایی انجام می­شود.

در این روش بر خلاف روش­های متداول تشخیص زیرکلمه دست­نویس، به آموزش نیازی نیست و دو مرحله بازشناسی و جداسازی حروف، همزمان انجام می­شود. برای تست حروف جدا و اعداد از پایگاه داده IFHCDB استفاده شده و برای زیر کلمات دو و سه حرفی، یک پایگاه داده ساخته شده است. الگوریتم پیشنهادی بر روی این پایگاه داده­ها تست شده و دقت آن برای تشخیص اعداد 8/98% است. همچنین دقت آن بر روی حروف جدا فارسی که حدوداً 50% از زیرکلمات را در متون فارسی تشکیل می­دهند، 7/88%، برای زیرکلمات دو حرفی که حدوداً 32% از متون را تشکیل می­دهند، 4/81% و برای زیرکلمات سه حرفی که حدوداً 12% از متون را تشکیل می­دهند، 6/73% می­باشد.

کليد واژه: عناصر ابتدایی، بازشناسی دست­نویس، handwriting recognition، نویسه خوان نوری، OCR.

فصل 1-           مقدمه

سيستم تشخيص کارکتر از ديدگاه كلي، يك سيستم بازشناسی الگو مي باشد كه براي طيف وسيعي از كاربردها، طراحي و پياده سازي مي شود. از اين رو، قبل از ارائه هر مطلب تخصصي در اين زمينه، ابتدا، تعريفي از يك سيستم تشخیص کارکتر ارائه خواهيم كرد.

در اين فصل، پس از معرفي سيستم­هاي تشخیص کارکتر و كليات بحث بازشناسی الگو، به بازشناسی نوشتار و سپس به ویژگی­های خط فارسی می­پردازیم.

1-1- OCR

واژه OCR مخفف عبارت Optical Character Recognition، به معنی تبدیل متن دست­نویس یا تایپی درون یک تصویر به یک متن قابل فهم برای ماشین است. تصویر حاوی متن معمولاً با پویش[1] نوری و یا  تصویربرداری دیجیتال به دست می­آید. هدف بازشناسی حروف (OCR)، تبدیل تصویر دیجیتال به دست آمده به یک متن در فرمت Text است[2]. نتیجه این تبدیل، به وجود آمدن امکان جستجوی کامپیوتری و ویرایش (حذف و اضافه نمودن) متن، تغییر ظاهر متن (تغییر اندازه و نوع قلم[2] و غیره) و کاهش فضای ذخیره­سازی است. برای بازشناسی حروف، بسیاری از علوم به کار می­روند. به عنوان مثال، برای کاهش نویز از فیلترها و عملگرهای مختلف علم پردازش سیگنال دیجیتال[3]، برای آستانه­گذاری[4] و افزایش کیفیت تصویر ورودی از علم پردازش تصویر[5]، برای جداسازی[6] حروف از علم بینایی[7] ماشین و برای شناسایی حروف از علوم یادگیری ماشین[8]، منطق فازی[9]، آمار و غیره استفاده می­شود.

امروزه سیستم­های بازشناسی حروف بسیار مورد توجه هستند. الگوریتم­های دقیق و سریعی برای بازشناسی حروف لاتین چینی ارائه و پیاده­سازی شده است[3]. ریشه تلاش برای بازشناسی حروف و اعداد تایپی و دست­نویس، به دهه 1350 خورشیدی (1970) باز می­گردد، ولی این تلاش­ها هنوز به نتیجه کاملا مطلوب نرسیده است و برای بهبود آن تلاش می­شود. در مورد حروف فارسی و عربی، به علت پیچیدگی خط در این دو زبان، هنوز روش­های مناسبی ارائه نشده است. از دهه 1350 خورشیدی بر روی بازشناسی حروف فارسی و از دهه 1360 خورشیدی بر روی بازشناسی حروف عربی (که به جز «گ»، «پ»، «چ» و «ژ» با حروف فارسی همسان هستند) کار شده است، ولی با تولید سیستم­های تجاری بازشناسی حروف، نتایج به دست آمده تاکنون برای اغلب کاربردها مناسب نیست.

عمل بازشناخت نوشته­ها، در واقع شبیه سازی فرایند خواندن توسط انسان است. همان­طور که گفته شد، در سال­های اخیر، تحقیقات زیادی در این زمینه انجام شده است و نتیجه آن ارائه الگوریتم­های زیادی است که برای بازشناخت نوشته­های الفباهای زبان­های مختلف بوده است. با دقت به این الگوریتم­ها می­توان مشاهده کرد که شکل­گیری روند شناسایی، منطبق بر ویژگی­های خاص الفبای مورد­نظر بوده است[4]. در همین راستا و به واسطه وجود موارد خاصی که رعایت آن­ها در نگارش به خط فارسی ضروری است، هیچ یک از روش­های موجود در بازشناخت نوشته­ها، به طور مستقیم برای الفبای فارسی قابل استفاده نیستند[5] .

سیستم­های بازشناخت حروف شامل بخش­های کلی مختلفی هستند. این مراحل در اغلب         الگوریتم­های تشخیص حروف به صورت زیر است:

  1. پویش تصویر متن با درجه تفکیک[10] مناسب
  2. پیش پردازش مناسب تصویر
  3. جداسازی خطوط کارکترهای مجزا
  4. استخراج ویژگی­ها
  5. تشخیص کارکتر

در مرحله پویش، سعی در به حداقل رساندن مشکلات معمول، مانند حاشیه­های زائد، نقاط سیاه شدگی و شیارها است. با این حال، در اغلب موارد این مشکلات وجود دارند و برای حل این مشکلات، باید روی تصویر دیجیتال پویش شده و پیش پردازش مناسب انجام گیرد تا تصویر آمادۀ مرحلۀ بعدی شود. در مرحله پیش پردازش، از روش­های مختلف باینری­ کردن تصویر[11]، تصحیح کج بودن تصویر و کاهش نویز استفاده می­گردد.

در مرحله بعدی، جداسازی خطوط متن و سپس جداسازی کارکترها انجام می­شود. در این مرحله، از روش­های مختلفی برای شکستن تصویر اصلی به کارکترهای مجزا استفاده می­شود.

پس از جداسازی حروف، ویژگی­های هر یک از حروف استخراج می­شوند. این مرحله یکی از    حساس­ترین مراحل در تشخیص حروف فارسی است و تفاوت اصلی اغلب روش­های ارائه شده برای تشخیص حروف در این بخش است.

پس از استخراج ویژگی­های حروف، تشخیص آن­ها با استفاده از ویژگی­های به دست آمده از مرحله قبل انجام می­شود. روش­های این مرحله را می­توان به دو دسته عمده تقسیم کرد: روش­های بدون نیاز به تمرین و روش­های با تمرین[12]. در روش­های با تمرین از روش­های یادگیری ماشین و شبکه­های عصبی برای یافتن نوع حرف استفاده می­شود و به مرور زمان نتایج این روش­ها می­تواند بهبود یابد. در نتیجه، پیش از بهره­برداری از سیستم بازشناسی حروف، باید یک دوره تمرین را برای این روش­ها در نظر گرفت در حالی که در روش دیگر نیاز با این کار نیست.

1-2- بازشناسی الگو

ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ، ﺷﺎﺧﻪﺍﻱ ﺍﺯ ﻫﻮﺵ ﻣﺼﻨﻮﻋﻲ[13] ﺍﺳﺖ ﻛﻪ ﺑﺎ ﻃﺒﻘﻪﺑﻨﺪﻱ[14] ﻭ ﺗﻮﺻﻴﻒ ﻣﺸﺎﻫﺪﺍﺕ ﺳﺮﻭﻛﺎﺭ ﺩﺍﺭﺩ. ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺑﻪ ﻣﺎ ﻛﻤﻚ ﻣﻲﻛﻨﺪ ﺩﺍﺩﻩﻫﺎ (ﺍﻟﮕﻮﻫﺎ) ﺭﺍ ﺑﺎ ﺗﻜﻴﻪ ﺑﺮ ﺩﺍﻧﺶ ﻗﺒﻠﻲ ﻳﺎ ﺍﻃﻼﻋﺎﺕ ﺁﻣﺎﺭﻱ ﺍﺳﺘﺨﺮﺍﺝ ﺷﺪﻩ ﺍﺯ ﺍﻟﮕﻮﻫﺎ، ﻃﺒﻘﻪﺑﻨﺪﻱ ﻧﻤﺎﻳﻴﻢ. ﺍﻟﮕﻮﻫﺎﻳﻲ ﻛﻪ ﻣﻲﺑﺎﻳﺴﺖ ﻃﺒﻘﻪﺑﻨﺪﻱ ﺷﻮﻧﺪ، ﻣﻌﻤﻮﻻ ﮔﺮﻭﻫﻲ ﺍﺯ ﺳﻨﺠﺶﻫﺎ ﻳﺎ ﻣﺸﺎﻫﺪﺍﺕ ﻫﺴﺘﻨﺪ ﻛﻪ ﻣﺠﻤﻮﻋﻪ ﻧﻘﺎﻃﻲ ﺭﺍ ﺩﺭ ﻳﻚ ﻓﻀﺎﻱ ﭼﻨﺪ ﺑﻌﺪﻱ ﻣﻨﺎﺳﺐ ﺗﻌﺮﻳﻒ ﻣﻲﻧﻤﺎﻳﻨﺪ.

ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮﻱ ﻛﺎﻣﻞ ﻣﺘﺸﻜﻞ ﺍﺳﺖ ﺍﺯ ﻳﻚ ﺣﺴﮕﺮ[15] ﻛﻪ ﻣﺸﺎﻫﺪﺍﺗﻲ ﺭﺍ ﻛﻪ ﻣﻲﺑﺎﻳﺴﺖ ﺗﻮﺻﻴﻒ ﻳﺎ ﻃﺒﻘﻪﺑﻨﺪﻱ ﺷﻮﻧﺪ ﺟﻤﻊﺁﻭﺭﻱ ﻣﻲﻧﻤﺎﻳﺪ، ﻳﻚ ﺳﺎﺯﻭﻛﺎﺭ ﺑﺮﺍﻱ ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻲﻫﺎ[16] ﻛﻪ ﺍﻃﻼﻋﺎﺕ ﻋﺪﺩﻱ ﻳﺎ ﻧﻤﺎﺩﻳﻦ ﺭﺍ ﺍﺯ ﻣﺸﺎﻫﺪﺍﺕ، ﻣﺤﺎﺳﺒﻪ ﻣﻲﻛﻨﺪ (ﺍﻳﻦ ﺍﻃﻼﻋﺎﺕ ﻋﺪﺩﻱ ﺭﺍ ﺑﺎ ﻳﻚ ﺑﺮﺩﺍﺭ ﺑﻨﺎﻡ ﺑﺮﺩﺍﺭ ﻭﻳﮋﮔﻲﻫﺎ ﻧﻤﺎﻳﺶ ﻣﻲﺩﻫﻨﺪ) ﻭ ﻳﻚ ﻧﻈﺎﻡ ﻃﺒﻘﻪﺑﻨﺪﻱ ﻳﺎ ﺗﻮﺻﻴﻒ ﻛﻪ ﻭﻇﻴﻔﺔ ﺍﺻﻠﻲ ﻃﺒﻘﻪﺑﻨﺪﻱ ﻳﺎ ﺗﻮﺻﻴﻒ ﺍﻟﮕﻮﻫﺎ ﺭﺍ ﺑﺎ ﺗﻜﻴﻪ ﺑﺮ ﻭﻳﮋﮔﻲﻫﺎﻱ ﺍﺳﺘﺨﺮﺍﺝ ﺷﺪﻩ ﻋﻬﺪﻩﺩﺍﺭ ﺍﺳﺖ.

ﺷﻜﻞ 1-١ ﻧﻤﻮﺩﺍﺭ ﺑﻠﻮﻛﻲ ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ. ﻫﻤﺎﻧﻄﻮﺭﻱ ﻛﻪ ﺍﺯ ﭘﻴﻜﺎﻥﻫﺎﻱ ﺑﺮﮔﺸﺘﻲ ﻣﺸﺨﺺ ﺍﺳﺖ، ﺍﻳﻦ ﺑﻠﻮﻙﻫﺎ ﻟﺰﻭﻣﺎً ﻣﺴﺘﻘﻞ ﻧﻴﺴﺘﻨﺪ ﻭ ﺑﺴﺘﻪ ﺑﻪ ﻧﺘﺎﻳﺞ ﺣﺎﺻﻠﻪ ﮔﺎﻫﻲ ﻻﺯﻡ ﺍﺳﺖ ﻛﻪ ﺑﻠﻮﻙﻫﺎﻱ ﺍﻭﻟﻴﻪ ﻣﺠﺪﺩﹰﺍً ﻃﺮﺍﺣﻲ ﮔﺮﺩﻧﺪ ﺗﺎ بازده ﻛﻠﻲ ﺳﻴﺴﺘﻢ ﺑﻬﺒﻮﺩ ﻳﺎﺑﺪ.

شکل ‏1‑1 بلوک دیاگرام یک سیستم شناسایی الگو

ﺍﻣﺮﻭﺯﻩ ﺣﺠﻢ ﺯﻳﺎﺩﻱ ﺍﺯ ﺍﺳﻨﺎﺩ ﻛﺎﻏﺬﻱ ﻣﻮﺟﻮﺩ، ﺗﻮﺳﻂ ﺍﺳﻜﻨﺮﻫﺎ ﻳﺎ ﺩﻭﺭﺑﻴﻦﻫﺎ ﺑﻪ ﺍﺳﻨﺎﺩ ﺗﺼﻮﻳﺮﻱ ﺩﻳﺠﻴﺘﺎﻟﻲ ﺗﺒﺪﻳﻞ ﻣﻲﺷﻮﻧﺪ. ﺫﺧﻴﺮﻩﺳﺎﺯﻱ، ﺑﺎﺯﻳﺎﺑﻲ ﻭ ﻣﺪﻳﺮﻳﺖ ﻛﺎﺭﺁﻣﺪ ﺍﻳﻦ ﺁﺭﺷﻴﻮﻫﺎﻱ ﺗﺼﻮﻳﺮﻱ، ﺩﺭ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺑﺮﻧﺎﻣﻪﻫﺎ ﻧﻈﻴﺮ ﺍﺗﻮﻣﺎﺳﻴﻮﻥ ﺍﺩﺍﺭﻱ ﻭ ﻛﺘﺎﺑﺨﺎﻧﻪﻫﺎﻱ ﺩﻳﺠﻴﺘﺎﻟﻲ ﺍﻫﻤﻴﺖ ﻓﺮﺍﻭﺍﻧﻲ ﺩﺍﺭﻧﺪ. ﺩﺭ ﻧﺘﻴﺠﻪ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎﻱ ﻣﺆﺛﺮ ﺑﻪ ﻣﻨﻈﻮﺭ ﺁﻧﺎﻟﻴﺰ ﺗﺼﻮﻳﺮﻱ ﺍﺳﻨﺎﺩ، ﻳﻚ ﻧﻴﺎﺯ ﺍﺳﺎﺳﻲ ﺑﻪ ﺣﺴﺎﺏ ﻣﻲﺁﻳﺪ.

ﻣﺒﺤﺚ «ﺁﻧﺎﻟﻴﺰ ﺗﺼﻮﻳﺮ ﺍﺳﻨﺎﺩ» [17]DIA ﺍﺯ ﺟﻤﻠﻪ ﺷﺎﺧﻪﻫﺎﻱ ﻓﻌﺎﻝ ﺩﺭ ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﻭ ﭘﺮﺩﺍﺯﺵ ﺗﺼﺎﻭﻳﺮ ﻣﻲﺑﺎﺷﺪ ﻭ ﻣﺸﺘﻤﻞ ﺑﺮ ﻛﻠﻴﺔ ﻣﺮﺍﺣﻞ ﭘﺮﺩﺍﺯﺷﻲ ﺍﺳﺖ ﻛﻪ ﻣﺤﺘﻮﻳﺎﺕ ﻳﻚ ﺳﻨﺪ ﺍﺳﻜﻦ ﻳﺎ ﻓﻜﺲ ﺷﺪﻩ ﺭﺍ ﺑﻪ ﻳﻚ ﻓﺮﻡ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﻣﻨﺎﺳﺐ، ﺗﺒﺪﻳﻞ ﻣﻲﻧﻤﺎﻳﺪ. ﺗﻜﻨﻴﻚﻫﺎﻱ DIA ﺍﺟﺰﺍﻱ ﻣﺨﺘﻠﻒ «ﺳﺎﺧﺘﺎﺭﻱ» ﺳﻨﺪ، ﻳﻌﻨﻲ ﻗﺴﻤﺖﻫﺎﻱ ﻣﺘﻨﻲ (ﭘﺎﺭﺍﮔﺮﺍﻑﻫﺎ، ﻛﻠﻤﺎﺕ، ﺣﺮﻭﻑ و…)، ﻗﺴﻤﺖﻫﺎﻱ ﮔﺮﺍﻓﻴﻜﻲ (ﺧﻄﻮﻁ، ﻧﻤﺎﺩﻫﺎ، ﻧﻤﻮﺩﺍﺭﻫﺎ و…) ﻭ ﻗﺴﻤﺖﻫﺎﻱ ﺗﺼﻮﻳﺮﻱ (ﺗﺼﺎﻭﻳﺮ ﻣﻮﺟﻮﺩ ﺩﺭ ﻣﺘﻦ) ﺭﺍ ﺍﺯ ﻳﻜﺪﻳﮕﺮ ﺗﻔﻜﻴﻚ ﻣﻲﻛﻨﻨﺪ ﻭ ﭘﺮﺩﺍﺯﺵ ﻣﻨﺎﺳﺐ ﺭﺍ ﺑﺮ ﺭﻭﻱ ﻫﺮ ﺩﺳﺘﻪ ﺍﺯ ﺍﺟﺰﺍ، ﺍﻋﻤﺎﻝ ﻣﻲﻧﻤﺎﻳﻨﺪ ﻭ ﻧﻴﺰ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺍﺭﺗﺒﺎﻁ «ﻣﻨﻄﻘﻲ» ﺑﻴﻦ ﺍﺟﺰﺍﻱ ﻣﺨﺘﻠﻒ، ﻧﻘﺶ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻳﻦ ﺍﺟﺰﺍ ﺭﺍ ﺩﺭ ﺳﻨﺪ ﻣﺸﺨﺺ ﻣﻲﺳﺎﺯﻧﺪ. ﺷﻜﻞ ٢ ﺳﺎﺧﺘﺎﺭ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲDIA  ﺭﺍ ﺑﻪ ﻧﻤﺎﻳﺶ ﻣﻲﮔﺬﺍﺭﺩ [6].

ﻫﻤﺎﻧﮕﻮﻧﻪ ﻛﻪ ﺷﻜﻞ 1-٢ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ، DIA ﺩﺭﺑﺮﺩﺍﺭﻧﺪﺓ ﺩﺳﺘﺔ ﺑﺰﺭﮔﻲ ﺍﺯ ﺗﻜﻨﻴﻚﻫﺎ ﺑﻨﺎﻡ ﺗﻜﻨﻴﻚﻫﺎﻱ «ﺑﺎﺯﺷﻨﺎﺳﻲ ﻧﻮﺭﻱ ﺣﺮﻭﻑ» ﻳﺎ OCR ﺍﺳﺖ. ﺍﻳﻦ ﺗﻜﻨﻴﻚﻫﺎ ﺩﺭ ﻣﻮﺭﺩ ﺍﺟﺰﺍﻳﻲ ﺍﺯ ﺗﺼﻮﻳﺮ ﺳﻨﺪ ﻛﻪ ﺗﻮﺳﻂ ﺗﻜﻨﻴﻚﻫﺎﻱ ﺗﺤﻠﻴﻞ ﺳﺎﺧﺘﺎﺭﻱ ﺩﺭ DIA ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺘﻦ ﺗﺸﺨﻴﺺ ﺩﺍﺩﻩ ﺷﺪﻩﺍﻧﺪ، ﺍﻋﻤﺎﻝ ﻣﻲﮔﺮﺩﻧﺪ ﻭ ﺗﺼﻮﻳﺮ ﺳﻨﺪ ﺭﺍ ﺑﻪ ﻳﻚ ﻣﺘﻦ ﻗﺎﺑﻞ ﻭﻳﺮﺍﻳﺶ ﺗﻮﺳﻂ ﺭﺍﻳﺎﻧﻪ ﺗﺒﺪﻳﻞ ﻣﻲﻧﻤﺎﻳﻨﺪ. ﺳﻴﺴﺘﻢﻫﺎﻱ OCR ﺑﺎ ﺣﺬﻑ ﻧﻘﺶ ﺗﺎﻳﭙﻴﺴﺖﻫﺎ ﺩﺭ ﻓﺮآﻳﻨﺪ ﺗﺒﺪﻳﻞ ﺍﺳﻨﺎﺩ ﻛﺎﻏﺬﻱ ﺑﻪ ﻗﺎﻟﺐ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ، ﺳﺮﻋﺖ ﻭﺭﻭﺩ ﺍﻃﻼﻋﺎﺕ ﺑﻪ ﺭﺍﻳﺎﻧﻪ ﺭﺍ ﺩﻩﻫﺎ ﺑﺮﺍﺑﺮ ﺍﻓﺰﺍﻳﺶ ﻣﻲﺩﻫﻨﺪ ﻭ ﺭﻭﻧﺪ ﺍﻧﺠﺎﻡ ﺍﻳﻦ ﻓﺮﺍﻳﻨﺪ ﺭﺍ ﺑﻪ ﻣﻴﺰﺍﻥ ﻗﺎﺑﻞ ﺗﻮﺟﻬﻲ ﺗﺴﻬﻴﻞ ﻣﻲﻛﻨﻨﺪ. ﺍﻣﺮﻭﺯﻩ ﺑﺎﺯﺍﺭ ﻣﺼﺮﻑ ﺳﻴﺴﺘﻢﻫﺎﻱ OCR ﻃﻴﻒ ﺑﺴﻴﺎﺭ ﻭﺳﻴﻌﻲ ﺍﺯ ﻣﺆﺳﺴﺎﺕ (ﺷﺎﻣﻞ ﻣﺮﺍﻛﺰ ﻧﺸﺮ، ﺩﺍﻧﺸﮕﺎﻩﻫﺎ، ﻛﺘﺎﺑﺨﺎﻧﻪﻫﺎ، ﺑﺎﻧﻚﻫﺎ، ﺍﺩﺍﺭﺍﺕ ﭘﺴﺘﻲ، ﺷﺮﻛﺖﻫﺎﻱ ﺑﻴﻤﻪ ﻭ ..) ﺭﺍ ﺩﺭﺑﺮﻣﻲﮔﻴﺮﺩ. ﺩﺭ ﻧﺘﻴﺠﻪ ﺁﺷﻨﺎﻳﻲ ﺍﻭﻟﻴﻪ ﺑﺎ ﻣﺒﺎﻧﻲ ﺍﻳﻦ ﺳﻴﺴﺘﻢﻫﺎ ﺑﺮﺍﻱ ﻛﻠﻴﺔ ﺍﻓﺮﺍﺩﻱ ﻛﻪ ﺑﻪ ﻧﺤﻮﻱ ﺑﺎ ﺍﺳﻨﺎﺩ ﻭ ﻣﺪﺍﺭﻙ ﺳﺮ ﻭ ﻛﺎﺭ ﺩﺍﺭﻧﺪ، ﺿﺮﻭﺭﻱ ﺑﻪ ﻧﻈﺮ ﻣﻲﺭﺳﺪ.

شکل ‏1‑2 یک ساختار سلسله مراتبی از بخش های مختلف مبحث تحلیل

ﺍﻛﺜﺮ ﻛﺎﺭﻫﺎﻱ ﺍﻧﺠﺎﻡﺷﺪﻩ ﺩﺭ ﺯﻣﻴﻨﺔ OCR ﺩﺭ ﺭﺍﺑﻄﻪ ﺑﺎ ﻣﺘﻮﻥ ﻻﺗﻴﻦ، ﭼﻴﻨﻲ ﻭ ﮊﺍﭘﻨﻲ ﺑﻮﺩﻩ ﺍﺳﺖ ﻭ ﺳﻴﺴﺘﻢﻫﺎﻱ ﺗﺠﺎﺭﻱ OCR ﻻﺗﻴﻦ ﺩﺭ ﺳﺎﻝﻫﺎﻱ ﺍﺧﻴﺮ ﭘﻴﺸﺮﻓﺖ ﻛﻴﻔﻲ ﻗﺎﺑﻞ ﻣﻼﺣﻈﻪﺍﻱ ﺩﺍﺷﺘﻪﺍﻧﺪ. ﺍﻣﺎ OCR ﻓﺎﺭﺳﻲ ﺑﺎ ﻭﺟﻮﺩ ﺣﺠﻢ ﻧﺴﺒﺘﺎً ﻭﺳﻴﻊ ﺗﺤﻘﻴﻘﺎﺕ ﺩﺍﻧﺸﮕﺎﻫﻲ ﻭ ﻧﻴﺎﺯ ﺷﺪﻳﺪ ﺑﺎﺯﺍﺭ ﺗﺠﺎﺭﻱ ﺑﻪ ﺁﻥ، ﻫﻨﻮﺯ ﻫﻢ ﺍﺯ ﺟﺎﻳﮕﺎﻩ ﻣﻮﺭﺩ ﻧﻈﺮ ﻓﺎﺻﻠﺔ ﺑﺴﻴﺎﺭﻱ ﺩﺍﺭﺩ ﻭ ﺗﺎﻛﻨﻮﻥ ﻫﻴﭻ ﺳﻴﺴﺘﻢ OCR ﻛﺎﺭﺁﻣﺪﻱ ﻛﻪ ﺍﺯ ﻧﻈﺮ ﺩﻗﺖ ﻭ ﻛﻴﻔﻴﺖ ﻣﺤﻴﻂ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ، ﻗﺎﺑﻞ ﻣﻘﺎﻳﺴﻪ ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎﻱ OCR ﻻﺗﻴﻦ ﺑﺎﺷﺪ، ﻋﺮﺿﻪ ﻧﮕﺮﺩﻳﺪﻩ ﺍﺳﺖ. ﺩﺭ ﻧﺘﻴﺠﻪ ﺿﺮﻭﺭﺕ ﺍﻧﺠﺎﻡ ﺗﺤﻘﻴﻘﺎﺕ ﺑﻴﺸﺘﺮ ﺩﺭ ﺯﻣﻴﻨﺔ ﻣﺘﻮﻥ ﻓﺎﺭﺳﻲ ﻭ ﻋﺮﺑﻲ ﻛﺎﻣﻼً ﺍﺣﺴﺎﺱ ﻣﻲﺷﻮﺩ. ﺑﻮﺍﺳﻄﺔ ﻭﺟﻮﺩ ﺗﻔﺎﻭﺕﻫﺎﻱ ﺍﺳﺎﺳﻲ ﺑﻴﻦ ﻧﺤﻮﺓ ﻧﮕﺎﺭﺵ ﻓﺎﺭﺳﻲ ﻭ ﻻﺗﻴﻦ (ﻧﻈﻴﺮ ﭼﺴﺒﻴﺪﻩ ﺑﻮﺩﻥ ﺣﺮﻭﻑ ﻛﻠﻤﻪ ﺑﻪ ﻳﻜﺪﻳﮕﺮ، ﺗﻐﻴﻴﺮ ﺷﻜﻞ ﺣﺮﻭﻑ ﺑﺮﺍﺳﺎﺱ ﻣﻮﻗﻌﻴﺖ ﻧﺴﺒﻲ ﺁﻥ ﺩﺭ ﻛﻠﻤﺔ ﻓﺎﺭﺳﻲ، ﻭ …)، ﺍﻣﻜﺎﻥ ﺍﻋﻤﺎﻝ ﻣﺴﺘﻘﻴﻢ ﺭﻭﺵﻫﺎﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﺘﻮﻥ ﻻﺗﻴﻦ ﺑﻪ ﻣﻨﻈﻮﺭ ﺷﻨﺎﺳﺎﻳﻲ ﻣﺘﻮﻥ ﻓﺎﺭﺳﻲ ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ.

1-3- بازشناسی نویسه ها

نویسه[18]، کوچک­ترین جزء نوشتاری است و شامل ارقام، حروف و علائم است. بازشناسی نویسه­ها به معنی تشخیص حروف یا ارقام از روی تصویر آن­ها است. از دید کامپیوتر، تصویر یک نویسه، مانند «س» عبارت است از تعدادی پیکسل[19] با روشنایی­های[20] متفاوت و از این لحاظ هیچ تفاوتی بین تصویر یک حرف و تصویر یک گل وجود ندارد. از این رو برای بازشناسی نویسه­ها، باید تکنیک­های خاص بازشناسی الگو را به کار گرفت.

بازشنارسی نویسه­های گسسته که عمدتاً نویسه­های دست نوشته را شامل می­شود، یکی از               پرکاربرد­ترین موارد بازشناسی الگو است که تحقیقات بسیاری را نیز به خود اختصاص داده است. بازشناسی حروف و ارقام دست نوشته در تمام فرم­های کاغذی که توسط کاربران و ارباب رجوع  پر    می­شوند کاربرد دارد، مثلاً فرم­های ثبت نام آزمون­های مختلف، فرم­های نظر سنجی و یا فرم­های بانکی.

برای باز­شناسی نویسه­ها، رویکرد تقریباً استانداردی وجود دارد که شامل پیش پردازش، استخراج ویژگی و بازشناسی توسط یک کلاس­بند است. روش­های مختلف، اغلب تنها در جزئیاتی مانند الگوریتم پیش پردازش (شامل نحوۀ سیاه و سفید (باینری) کردن تصویر و یافتن موقعیت فیلدهای متنی)، نحوۀ استخراج ویژگی و یا نوع کلاس­بند مورد استفاده متفاوتند. البته روش­های ساختاری هم برای بازشناسی وجود دارد که بر مبنای قوانین ساختاری، حروف و ارقام را بازشناسی می­کنند، ولی این روش­ها به دلیل حساسیت­های فراوان و دشواری در تعریف و پیاده سازی قوانین ساختاری، امروزه بیشتر به عنوان    روش­های کمکی در بخشی از سیستم استفاده می­شوند[4].

1-4- مزایا و کاربردهای نویسه خوان نوری

امروزه بیشتر دستگاه­های پویشگر به نرم­افزارهای نویسه خوان نوری مجهز گردیده­اند و قادرند متن موجود در یک سند پویش شده را تشخیص دهند و آن را با همان نحوه قالب بندی، ستون بندی، جدول بندی و نوع فونت مطابق با سند اصلی، در قالب یک فایل متنی با قالب بندی مناسب ذخیره نمایند. سیستم­های نویسه خوان نوری با حذف نقش واژه­نگارها در فرایند تبدیل اسناد کاغذی به قالب الکترونیکی، سرعت ورود اطلاعات به رایانه را ده­ها برابر افزایش می­دهند و روند انجام این فرایند را به میزان قابل توجهی تسهیل می­کنند. امروزه بازار مصرف سیستم­های نویسه خوان نوری طیف بسیار وسیعی از موسسات (شامل مراکز نشر، دانشگاه­ها، کتاب خانه­ها، بانک­ها، ادارات پستی، شرکت­های بیمه و… ) را دربر می­گیرند.

استفاده از سیستم­های نویسه خوان نوری دو مزیت عمده دارد:

  1. افزایش چشمگیر سرعت دسترسی به اطلاعات؛ زیرا در متن بر خلاف تصویر، امکان جستجو و ویرایش وجود دارد.
  2. کاهش فضای ذخیره سازی؛ زیرا حجم فایل­های متنی استخراج شده از یک تصویر، معمولاً بسیار کمتر از حجم خود فایل تصویری است.

چنین قابلیتی امکان استفاده گسترده از رایانه را در پردازش سریع حجم وسیعی از داده­های مکتوب شرکت­ها و مؤسسات مختلف (نظیر بانک­ها، شرکت­های بیمه، مؤسسات خدمات عمومی، ادارای پست و دیگر نهادهایی که سالیانه با میلیون­ها مورد پرداخت، دریافت و حسابرسی امور مشتریان خود مواجه­اند) را فراهم می­آورد[2].

1-4-1-              ورود داده

روش­های ثبت حجم زیادی از اطلاعات با چهارچوب مشخص، در این حوزه قرار می­گیرند. به عنوان مثال، دستگاه­های چک خوان که در بانک­ها برای ورود داده استفاده می­شوند. این سیستم­ها برای خواندن بخش­های کوچکی از تصویر چک شامل نویسه­های چاپی و دست نویس مانند شماره حساب، امضای مشتری، شماره برگ چک و مبلغ چک طراحی می­شود.

دستگاه­های چک خوان در حدود 150000 چک را در یک ساعت می­خوانند و نرخ وازدگی و خطای آن­ها کم است. این سیستم­ها در کیفیت­های پایین چاپ نیز به خوبی عمل می­کنند. این دستگاه ها برای کاربردهای خاص طراحی می­شوند و قیمت بالایی دارند.

1-4-2-              ورود متن

کاربرد دیگر سیستم­های بازشناسی متن در بازشناسی سند برای استفاده در اتوماسیون اداری است. این سیستم­ها اسناد با قلم­های محدود و کیفیت چاپ مشخصی را بازشناسی می­کنند. این سیستم­ها برای ورود حجم زیادی از متن به شکل قابل پردازش با نرم­افزارهای پردازشگر متن استفاده می­شوند. قابلیت این سیستم­ها در ورود متن، رقیب قدرتمندی برای وارد کردن دستی اطلاعات است[4].

همچنین ویرایش و چاپ متن­ها و کتاب­های قدیمی که نیاز به ویرایش و تصحیح دارند، نیز در این دسته است. به جای تایپ این متن­ها به وسیله یک واژه نگار، می توان با استفاده از یک دستگاه پویش­گر این کار را با دقت خوب و هزینه کم­تر انجام داد [3]

کارایی این سیستم­ها به کیفیت چاپ اسناد وابستگی زیادی دارد. بطوری که در یک تصویر با کیفیت مناسب، نرخ بازشناسی بالای 99% تولید می­کنند. سرعت خواندن این سیستم­ها در حدود چند صد نویسه در دقیقه است.

1-4-3-              خودکارسازی فرایند

در این کاربرد، کنترل یک فرایند مشخص به بازشناسی دقیق متن نوشته شده اولویت دارد. به عنوان مثال در خودکارسازی فرایند جداسازی نامه در مراکز پستی، بازشناسی نام شهر مقصد از بازشناسی دقیق کل متن نوشته شده بر روی پاکت نامه اولویت بالاتری دارد. نرخ بازشناسی این سیستم­ها کاملا به کیفیت تصویر پاکت نامه وابسته است. این سیستم­ها معمولاً، وازدگی بالا و نرخ خطای در حد صفر دارند. سرعت جداسازی نامه­ها بر حسب آدرس، معمولاً در حدود چند ده هزار نامه در ساعت است. در شکل 1 نمونه­ای از آدرس دست­نویس روی یک نامه و متن بازشناسی شده آن آمده است. با توجه به شکل ملاحظه
می­شود که برای آدرس نوشته شده، چهار نامزد آدرس و کد پستی بر حسب شباهت به ورودی، تولید شده است [2].

شکل ‏1‑3 نمونه ای از بازشناسی آدرس و کدپستی [2]

همچنین پارکینگ­های عمومی را می­توان به وسیله سیستم تشخیص خودکار پلاک خودرو، مکانیزه کرد .

1-4-4-              بازسازی اسناد

هزینه بالای کار با پایگاه­های داده بزرگ از تصاویر اسناد، نیاز به روش­های خودکار و کارآمد برای دستیابی به اطلاعات داخل این تصاویر را به وجود آورده است. در تلاش برای حرکت به سوی ادارات بدون کاغذ، حجم بزرگی از اسناد کاغذی روبش شده و به صورت تصویری ذخیره می­شوند، بدون اینکه برچسب اطلاعاتی مناسبی به آن­ها زده شود. یک راه برای برچسب زنی و بازیابی پایگاه داده، تبدیل کامل اسناد به شکل الکترونیکی است که می­توانند به طور خودکار برچسب زده شوند. موانعی مثل کیفیت پایین تصویر و هزینه بالای تبدیل در مقابل این روش وجود دارد. از طرفی چون بسیاری از اجزاء غیر متن را نمی­توان به طور کامل در شکل تبدیل شده نمایش داد، داشتن یک کپی از سند در شکل تصویری لازم به نظر می­رسد[2].

1-4-5-              کتابخانه دیجیتال

در یک کتابخانه دیجیتال برای دسترسی به کتاب مورد ­نظر از کلید واژه­ها استفاده می­شود. کلید
واژه­ها به صورت متن وارد می­شوند و نرم­افزار کتابخانه، کتاب­های مرتبط با آن­ها را بازیابی می­کند.
پیدا­کردن کلمات کلیدی از تصاویر روبش شده کتاب­ها، هسته اصلی نرم افزار جستجوی کتابخانه است[2].

1-4-6-              کنترل ترافیک

در کنترل ترافیک برای تشخیص پلاک خودروها می­توان از بازشناسی متن استفاده کرد. صحنه ترافیک معمولاً با دوربین­های سریع تصویر­برداری می­شود و تصاویر معمولاً دو سطحی نیستند. این ویژگی­ها خواندن پلاک خودرو­ها را پیچیده می­کند. از محدود بودن حروف استفاده شده در پلاک­ها   می­توان برای بهبود نتایج استفاده کرد [2].

1-4-7-              سیستم های امنیتی

از سیستم­های بازشناسی متن در سیستم بانکداری برای بازشناسی دست نوشته و امضا به عنوان روشی برای تایید هویت مشتری استفاده می­شود.

1-4-8-              تبدیل متن به صحبت

از یک سیستم بازشناسی متن در کنار یک سیستم پردازش صوت می­توان در کاربرد­های مختلف مانند کمک به نابینایان به منظور درک متون چاپی و خودکارسازی پاسخ به ارباب رجوع در ادارات استفاده کرد [7][2]. در زمینه خواندن متن­ها و کتاب­ها به وسیله کامپیوتر برای نابینایان، می­توان آن­ها را از مشکلات خط برجسته (بریل) نجات داد. البته این کار را نیز می­توان به وسیله ساخت یک دستگاه که خود دارای یک پویش­گر باشد و بتواند خط به خط و کلمه به کلمه متن­ها را خوانده و به صوت تبدیل کند انجام داد.

1-4-9-              فرم خوان ها

این سیستم­ها برای خواندن فرم­های خاص طراحی می­شوند. این سیستم­ها معمولاً از روبشگرهایی که رنگ خاصی را حذف می­کنند، بهره می­گیرند. حروف و ارقام به صورت مجزا در خانه­هایی با رنگ مورد نظر نوشته می­شوند و روبشگر هنگام روبش فقط این نواحی را پویش می­کند و به طور خودکار، رنگ زمینه این خانه­ها را حذف می­کند. بنابراین این سیستم­ها نرخ بازشناسی بالایی دارند[7].

شناسایی ارقام دست­نویس و تایپی در بسیاری از موارد دیگر، از جمله آمارگیری، حسابداری و غیره کاربرد دارد. به کمک یک سیستم شناسایی دقیق می­توان اعمال حسابداری را توسط کامپیوتر و با سرعت و دقت بالاتر از انسان انجام داد یا حداقل می­توان برای بررسی نتایج حسابداری از این روش استفاده کرد  [8].

1-5- انواع سیستم­های نویسه خوان نوری

سیستم­های شناسایی متون را می­توان بر اساس نحوه نگارش (تایپی و دست­نوشته)، نوع داده ورودی (برخط و برون­خط)، متصل بودن متن (کاراکترهای مجزا و کلمات پیوسته)، میزان اعمال محدودیت در نحوه نگارش و خوانا بودن آن­ها (مقید یا بدون قید و تک فونتی یا هر فونتی) به گروه­های مختلفی تقسیم­بندی کرد.

سیستم­های نویسه­خوان نوری را می­توان از لحاظ نوع الگوی ورودی به دو گروه اصلی تقسیم کرد:

  1. سیستم­های برخط[21]
  2. سیستم­های برون­خط[22]

در بازشناسی برخط، حروف در همان زمان توسط سیستم، تشخیص داده می­شوند و دستگاه ورودی این سیستم­ها یک قلم نوری است. در این روش علاوه بر اطلاعات مربوط به موقعیت قلم، اطلاعات زمانی مربوط به مسیر قلم نیز در اختیار است. این اطلاعات معمولاً توسط یک صفحه رقمی کننده اخذ
می­شوند. در این روش می­توان از اطلاعات زمانی سرعت، شتاب، فشار و زمان برداشتن و گذاشتن قلم روی صفحه در بازشناسی استفاده کرد.

در بازشناسی برون­خط، از تصویر دوبعدی متن ورودی استفاده می­شود. در این روش به هیچ نوع وسیله نگارش خاصی نیاز نیست و تفسیر داده­ها مستقل از فرآیند تولید آن­ها و تنها بر اساس تصویر متن صورت می­گیرد. این روش به نحوه بازشناسی توسط انسان شباهت بیشتری دارد.

بازشناسی برون­خط نیز ممکن است بر روی متون زیر اعمال شود:

  1. متون چاپی
  2. متون دست­نویس

متون چاپی، متونی هستند که حروف آن شکل و قالب ثابت و از پیش تعیین شده­ای دارند. در متون دست­نویس گسسته (مانند فرم ثبت نام کنکور) حروف دست­نویس، اما محدود به اعداد یا حروف بزرگ هستند. متون دست­نویس شامل کلیه متن­های نگارش یافته با دست هستند که حروف در آن­ها از قالب و شکل ثابتی پیروی نمی­کنند. شکل 1-4 زیر انواع سیستم­های ذکر شده را نشان می­دهد[2, 9].

بازشناسی حروف
برخط
متون دست­نویس
متون چاپی
برون­خط
شکل ‏1‑4 انواع سیستم­های نویسه خوان نوری از لحاظ نوع ورودی [2]

1-6- طبقه بندی روش­های بازشناسی نوشتار

بازشناسی نوشتار به دو شاخه بسیار کلی تقسیم می­شود: بازشناسی نویسه­های گسسته و بازشناسی نوشتار پیوسته. بازشناسی نویسه­های گسسته به دلیل ساده­تر بودن و امکان مقید­کردن کاربر در نحوۀ نگارش، موفقیت بیشتری داشته است و امروزه سیستم­های مبتنی بر بازشناسی حروف گسسته و ارقام رایج شده­اند. به عنوان مثال، در بسیاری از سیستم­های ثبت نام کاغذی، از این روش برای بازشناسی اطلاعات وارد شده توسط کاربران استفاده می­شود.

نوشتار پیوسته، خود به دو نوع دست­نویس[23] و چاپی[24] تقسیم می­شود. بازشناسی در نوشتار دست­نویس به دلیل پیچیدگی زیاد و کاربرد محدود، هنوز تا رسیدن به یک وضعیت مناسب، فاصله دارد. ولی بازشناسی متون چاپی، به دلیل کاربرد زیاد و پیچیدگی کم­تر، مورد توجه بیشتری بوده و موفقیت­های زیادی داشته است؛ به طوری که در حال حاضر برای بسیاری از زبان­های دنیا، سیستم­های تجاری نسبتاً  کارآمد وجود دارد.

بازشناسی متن­های لاتین به دلیل ساختار خاص نوشتار لاتین که در آن تمام حروف متن از یکدیگر جدا نوشته می­شوند، نسبت به بازشناسی متن­های فارسی آسان­تر است. در این زبان­ها، تنها کافی است موقعیت حروف پیدا شود؛ بقیه کار که بازشناسی حروف است مشابه بازشناسی حروف گسسته است. در مورد زبان­هایی مثل فارسی و عربی، به دلیل این که حروف، بسته به موقعیتشان در کلمه، شکل­های مختلفی به خود می­گیرند و در یک کلمه ممکن است چندین حروف به یکدیگر بچسبند، بازشناسی متن دشوارتر است. در زبان فارسی، ترکیب چند حرف به هم پیوسته را زیرکلمه[25] می­نامند. مثلا کلمه «شناختن» از دو زیرکلمه «شنا» و «ختن» تشکیل شده است برای بازشناسی متن­های فارسی یا باید زیر کلمات را به حروف سازندۀ آن­ها تجزیه کرد و سپس حروف را بازشناسی کرد و یا باید زیر کلمات را به یکباره شناخت. رویکرد اول را بازشناسی بر مبنای جداسازی[26] و رویکرد دوم را باز­شناسی بر مبنای شکل کلی می­نامند. بازشاسی بر مبنای جداسازی مرسوم­تر بوده و پژوهش­های زیادی در این زمینه برای زبان­های فارسی و عربی انجام شده است. بازشناسی بر مبنای شکل کلی، مشکلات زیادی دارد، ولی در برخی موارد مزایایی نسبت به بازشناسی بر مبنای جداسازی دارد [4].

< /a>1-7- ویژگی­های خط فارسی

زبان فارسی دارای 32 حرف است که در جدول 1-1 زیر آورده شده است. کلمات فارسی بر اساس
رسم­الخط فارسی به یکدیگر متصل می­شوند که بر اساس جایگاه آن­ها در کلمات، به چهار گروه اول، وسط، آخر و جدا تقسیم می­گردند.

علاوه بر این حروف، علائم دیگری نیز وجود دارند، از جمله “تنوین ( ً)” که در بعضی کلمات عربی مثل “واقعاً” قرار می­گیرد. همچنین علامت ” تشدید ( ّ)” بر روی کلمه­ای مثل ” نجّار”، علامت “همزه ( ء)” در کلمه “مسئولیت” و علامت “مد ( ~)”  در کلمه “آن” از این دسته علائم می­باشد. این علامت­ها مخصوص زبان عربی هستند و استفاده آن­ها در نوشتار فارسی درحال کاهش است، ولی به علت نفوذ زیاد زبان عربی در فارسی، هنوز در زبان فارسی نیز به کار می­روند[4].

جدول ‏1‑1 الفبای زبان فارسی [4]

  شکل حرف نام حرف (فارسی) نام حرف (انگلیسی)
1 ا الف Alef
2 ب ب Be
3 پ پ Pe
4 ت ت Te
5 ث ث Se
6 ج جیم Jim
7 چ چ Che
8 ح ح He
9 خ خ Khe
10 د دال Daal
11 ذ ذال Zaal
12 ر ر Re
13 ز ز Ze
14 ژ ژ Zhe
15 س سین Sin
16 ش شین Shin
17 ص صاد Sad
18 ض ضاد Zad
19 ط طا Ta
20 ظ ظا Za
21 ع عین Eyn
22 غ غین Gheyn
23 ف ف Fe
24 ق قاف Ghaaf
25 ک کاف Kaaf
26 گ گاف Gaaf
27 ل لام Laam
28 م میم Mim
29 ن نون Noon
30 و واو Vav
31 هـ هـ He
32 ی ی Ye

1-7-1-              تفاوت حروف فارسی و عربی

یکی از تفاوت­های اصلی حروف فارسی با حروف عربی، در تعداد آن­هاست. الفبای عربی 28 حرف دارد و چهار حرف “گ”، “چ”، “پ” و “ژ” در آن وجود ندارد. در متن­های عربی معمولاً  از اعراب نیز استفاده می­شود که شامل فتحه ( َ )، ضمه ( ُ )، کسره ( ِ )،تنوین فتحه ( ً )، تنوین ضمه ( ٌ ) و تنوین کسره ( ٍ ) می­باشد. اعراب برای تلفظ درست کلمات استفاده می­شوند و با تغییر آن ممکن است نوع کلمه و معنی آن عوض شود. علاوه بر این، شکل برخی از حروف در این دو زبان کمی متفاوت است. به عنوان مثال، می­توان به تفاوت حرف (ی) در زبان فارسی و (ي) در زبان عربی و حرف (ک) در زبان فارسی و (ك) در زبان عربی اشاره کرد. علاوه بر تفاوت­های بالا، می­توان به کاربرد (ة) در نوشتار عربی اشاره نمود که در نوشتار فارسی وجود ندارد[4].

1-7-2-              خط زمینه

کلمات جملات فارسی/عربی بر روی یک خط راست افقی نوشته می­شوند که خط زمینه یا خط کرسی[27] نام دارد. این خط در شناسایی حروف نقش کمکی مهمی دارد و می­تواند مرجع مناسبی برای موقعیت نقاط و اجزای حروف باشد. معمولاً شناسایی خط زمینه با استفاده از روش­های مختلف آماری انجام می­شود [4].

1-7-3-              کلمه

جملات فارسی/عربی از بخش­های کوچک­تری که کلمه[28] نام دارد تشکیل شده است. هر کلمه شامل دو یا چند حرف به هم چسبیده است که معنای خاصی را در زبان ایجاد می­کند. معمولاً بین هر دو کلمه، یک فاصله خالی[29] به اندازۀ یک حرف وجود دارد که معمولاً از این فاصله برای تشخیص کلمات استفاده می­شود [4].

1-7-4-              زیرکلمه

هر کلمه از اجزای کوچک­تری به نام زیرکلمه تشکیل می­شود. ممکن است زیر کلمات معنای خاصی نداشته باشند، ولی با قرار گرفتن در کنار یک دیگر، یک کلمه با معنی را ایجاد می­کنند. فاصله خالی بین دو زیرکلمه در یک کلمه، بسیار کم است. به این ترتیب می­توان زیر کلمات را از هم تشخیص داد[4].

در فصل دوم، به بررسی کارهای انجام شده در زبان فارسی می­پردازیم سپس در فصل سوم الگوریتم پیشنهادی را توضیح خواهیم داد. در فصل چهارم به بررسی نتایج شبیه سازی خواهیم پرداخت و آنرا با روش های متداول دیگر مقایسه خواهیم کرد و در انتها در فصل پنجم به تنیجه گیری و کارهای آینده خواهیم پرداخت.

فصل 2-           بررسی کارهای انجام شده در بازشناسی حروف فارسی

2-1- مقدمه

شروع علم بازشناسی حروف را می­توان از پیش از تولد کامپیوترهای امروزی، یعنی سال 1929 میلادی (1308 خورشیدی) دانست [10]، ولی بازشناسی حروف با استفاده از کامپیوترها، اولین بار در سال 1952 میلادی (1331 خورشیدی) مطرح شد. اغلب پژوهش­های انجام شده در ابتدا بر روی خط نوشتاری لاتین انجام شده است. تاریخچه این پژوهش­ها و روش­های به کار رفته در آن­ها را می­توان در[11-14] مطالعه نمود.

2-2- چالش­های زبان فارسی با رویکرد نویسه خوان نوری

بسیاری از مسائل مطرح در نویسه خوانی نوری را می­توان مرتبط با حوزه نوشتاری زبان (و حتی دیگر حوزه­های زبان) دانست و از این رو نویسه خوانی نوری را می­توان به عنوان یک مسئله بومی مرتبط با زبان قلمداد نمود. هر چند در کشور ما و برخی کشورهای دیگر بر روی نویسه خوان­های نوری فارسی کارهای ارزشمندی انجام شده است، اما می­توان گفت که نویسه خوان­های نوری زبان­های لاتین، چینی و ژاپنی بسیار بیش از نویسه خوان­های نوری فارسی به ایده­ال نزدیک شده­اند.

قواعد نگارش فارسی در انتخاب روش­های مناسب برای بازشناسی متون فارسی، ویژگی­های منحصر به فردی دارد که آن را کاملاً از نگارش لاتین متمایز می­سازد. با منظور فعالیت در حوزه نویسه خوان نوری فارسی آگاهی از قوانین نگارشی و نحوه چاپ حروف در این زبان امری ضروری است. در اینجا به ویژگی­های کلی نگارش فارسی اشاره می­شود [2].

  1. متون فارسی بر خلاف متون لاتین از راست به چپ نوشته می­شوند.
  2. اندازه طول و عرض مستطیل­های محیطی حروف بسیار متغیرند.
  3. در حروف خطوط افقی و عمودی و انواع کمان یافت می­گردد.
  4. هجده حرف دارای نقطه و دو حرف نیز دو قطعه­ای می­باشند. حروف «آ» و «گ». جدول 2-1
    نشان­دهنده ترکیب قرار­گیری نقاط و تشابه حروف است.

جدول ‏2‑1 ترکیب قرارگیری نقاط و تشابه حروف در زبان فارسی [2]

گروه ترکیب حروف مشابه گروه ترکیب حروف مشابه
1 آ ، ا 10 ف
2 ب ، پ ، ت ، ث 11 ق
3 ج ، چ ، ح ، خ 12 ک ، گ
4 د ، ذ 13 ل
5 ر ، ز ، ژ 14 م
6 س ، ش 15 ن
7 ص ، ض 16 و
8 ط ، ظ 17 ه
9 ع ، غ 18 ی
  1. در کلمات فارسی برخی از حروف از یک یا دو طرف به حروف مجاور خود اتصال دارند و برخی نیز به صورت مجزا نوشته می­شوند. در نتیجه هر کلمه ممکن است شامل یک یا چند بخش متصل باشد که «زیرکلمه» نامیده می­شوند. چسبیده یا سرهم بودن حروف در نگارش فارسی، بازشناسی متون فارسی را برای سیستم­های نویسه خوان نوری نسبت به لاتین بسیار مشکل­تر می­سازد. محل اتصال حروف به هم چسبیده روی خط مبناست و حاوی ضخامت اندازه قلم است. از این ویژگی می­توان برای ارائه تکنیک­های قطعه بندی استفاده کرد. افزون بر این با توجه به اینکه از ضخامت خط مبنا می­توان برای تشخیص اندازه قلم استفاده کرد، این ویژگی در بخش پیش پردازش مورد استفاده قرار خواهد گرفت.
  2. حروف فارسی ممکن است چهار موقعیت مجزا و در نتیجه چهار شکل متفاوتی نگارش داشته باشند: حروف ابتدایی، میانی، انتهایی و مجزا. جدول 2-2 فهرست کامل نمادهای مختلف حروف الفبای فارسی را نشان می­دهد[2].

جدول ‏2‑2 شکل­های مختلف حروف الفبای فارسی باتوجه به محل قرارگیری آن­ها در زیرکلمه [2]

  مجزا ابتدا میان انتها مجزا ابتدا میان انتها
1 ا یا آ ا یا آ 17 ص
2 ب 18 ض ﺿ
3 پ 19 ط
4 ت 20 ظ
5 ث 21 ع
6 ج 22 غ
7 چ 23 ف
8 ح 24 ق
9 خ 25 ک
10 د 26 گ
11 ذ 27 ل
12 ر 28 م
13 ز 29 ن
14 ژ 30 و —-
15 س 31 ه
16 ش 32 ی
  1. حروف واقع در یک کلمه ممکن است همپوشانی داشته باشند، بدین معنا که نتوان با رسم خطوط عمودی، حروف را به طور کامل از یکدیگر مجزا نمود.
  2. در برخی از فونت­ها بعضی از حروف، از یک سمت در دو محل به یکدیگر اتصال دارند مثل «کا».
  3. برخی از حروف بین یک تا سه نقطه دارند که ممکن است در بالا یا پایین بدنه حرف واقع باشند همانند «ب»، «پ»، «ت»، «ث».

شکل ‏2‑1 برخی ویژگی­های نگارش فارسی [4]

  1. بعضی از حروف بدنه مشابه دارند و تفاوت آن­ها تنها در تعداد و محل قرارگیری نقاط یا در وجود یک سرکش است (مانند ک و گ) که در مقایسه با بدنه حروف، اندازه بسیار کوچکی دارند. این موضوع نیز یکی از مواردی است که بر پیچیدگی سیستم­های نویسه خوان نوری فارسی می­افزاید.
  2. حروف فارسی ممکن است در بالا یا پایین بدنه دارای اعراب باشند. سه اعراب –َ - - در زبان فارسی، اعراب اصلی­اند و اعراب - در برخی کلمات عربی رایج در زبان فارسی دیده می­شوند (نظیر کلمات عمداً و احتمالاً) کلمات عربی دارای اعراب   و    در زبان فارسی عمومیت نیافته­اند. هر چند کاربرد اعراب در زبان فارسی نسبت به زبان عربی بسیار محدودتر است اما اگر کلمه­ای نامتداول باشد یا به دلیل تشابه نگارشی آن با کلمه دیگر، تاکید بر تلفظ صحیح آن باشد از نشانه­های اعراب استفاده می­شود.
  3. در بالای بدنه یک حرف ممکن است علامت تشدید وجود داشته باشد.
  4. برخی از حروف دارای علامت همزه هستند (ﺌ ﺃ ﺆ ئ).
  5. حروفی که از طرف چپ قابلیت اتصال به حرف مجاور خود را دارند ممکن است به صورت کشیده نوشته شوند همانند «با».
  6. بیشتر حروف فارسی (مخصوصاً حروف چسبیده) دندانه­دار هستند. در مواردی که کیفیت سند اصلی یا دستگاه پویشگر پایین باشد. ارتفاع دندانه­ها نسبت به خط زمینه کوتاه می­شود و این امر، شناسایی صحیح این حرف در مرحله قطعه بندی یا بازشناسی را با مشکل مواجه می­سازد.
  7. در برخی از شیوه­های نوشتاری زبان فارسی، دو یا چند حرف کنار هم می­توانند به گونه­ای با هم ترکیب شوند که شکل حاصل شباهتی به حروف تشکیل دهنده آن ندارد. با این ترکیب، حروف ادغام شده می­گویند. چنین مواردی نه تنها در نوشتار دست نویس، بلکه در متون تایپی نیز وجود دارد. متداول­ترین ترکیب در متون تایپی، ادغام دو حرف «ل» و «ا» بصورت «لا» است. در نوشته­های دست نویس فارسی نیز به خاطر زیبایی بصری نوشتار و همچنین سلیقه نویسنده، شکل 2-2 بعضی از حروف کنار هم، بکلی تغییر می­کند [2].

شکل ‏2‑2 نمونه­هایی از ادغام حروف مجاور در متون دست­نویس [2]

  1. فاصله گذاری نادرست در متون
  2. چسبیدگی­های غیر منتظره در برخی قلم­ها
  • چسبیدگی دو حرف
  • چسبیدگی نقاط و اعراب به حروف
  • چسبیدگی نقاط یا علائم دو حرف مجاور به همدیگر
  1. اختلاف زیاد ابعاد حروف
  2. اندازه تمام حروف فارسی یکسان نیستند. مثلاً حروف «ب» و «س» در حالت جدا اندازه
    بزرگ­تری نسبت به حروف«د) و «ه» دارند. این تنوع در اندازه حروف، کار قطعه بندی حروف را مشکل می­کند [2]

2-3- اجزای اصلی نویسه خوان نوری

یک سیستم نویسه خوان نوری معمولی از اجزای مختلفی تشکیل می­شود. در شکل 2-3 مدل معمول یک سیستم نویسه خوان نوری مشاهده می­گردد[9]. در ابتدا، مستند شامل متن تایپ شده، گرافیک­ها و تصویرها توسط دستگاه پویشگر ورودی به صورت نوری پویش شده و به صورت یک فایل تصویری وارد حافظه کامپیوتر می­شود. از اینجاست که کار واقعی یک سیستم نویسه خوان نوری آغاز می­گردد. اولین مرحله، قطعه بندی بیرونی یا مکان­یابی است که طی آن نواحی حاوی متن استخراج می­­گرند. مرحله بعد، مرحله پیش پردازش است که در این مرحله تکنیک­های مختلفی برای بهینه کردن تصویر موجود از لحاظ کیفیت، فضا و غیره به کار گرفته می­شود.

مرحله بعدی که تقریباً مختص سیستم نویسه خوان نوری فارسی است، قطعه بندی درونی است که در آن با تکنیک­های خاص، حروف به هم چسبیده از هم جدا می­شوند. استخراج ویژگی­ها مرحله بعدی است. پس از استخراج ویژگی­ها در مرحله دسته بندی و شناسایی، موجودیت هر نماد به دست آمده از مرحله قطعه بندی با مقایسه ویژگی­های استخراج شده کلاس­های نمادها که در مرحله آموزش در سیستم تعبیه شده­اند، شناسایی می­گردد. در نهایت با استفاده از اطلاعات متنی، کلمات و اعداد، متن اصلی بازسازی می­گردد. در بخش های بعدی به بررسی تک تک مراحل یاد شده می­پردازیم.

مکتوب شامل متن،  گرافیک­ها و تصویرها
دستگاه پویشگر
قطعه­بندی بیرونی
قطعه­بندی درونی
استخراج ویژگی­ها
پیش­پردازش
بازشناسی
پس­پردازش
شکل ‏2‑3 بخش­های مختلف یک سیستم نویسه خوان نوری [2]

2-3-1-              قطعه بندی بیرونی

این مرحله، مکان­یابی نیز نامیده می­شود[9]. مکان­یابی فرایند است که طی آن اجزای اصلی سازنده یک تصویر معین می­گردد لازم است که نواحی مختلف یک سند که داده­ها در آن چاپ شده­اند شناسایی شده و از شکل­ها و عکس­ها تمایز یابند. برای مثال هنگامی که مرتب سازی خودکار نامه­ها صورت می­گیرد مکان آدرس باید مشخص گردد و از دیگر چاپ­های موجود روی پاکت نامه مانند لوگوها تفکیک شود چنانچه در مبحث آنالیز اسناد نیز اشاره گردد. اسناد معمولاً همراه متن تایپی نمودارها جدول­ها و تصاویری را دارند که در بازشناسی نوری حروف باید آن­ها را تشخیص داد. یک سیستم جامع نویسه خوان نوری باید این قابلیت را داشته باشد که بتواند به طور خودکار پیکربندی صفحات را تحلیل کرده و نواحی متن را مشخص گرداند.

تحلیل پیکربندی صفحات در سه مرحله انجام می­گیرد: مرحله اول تفکیک نواحی متنی در تصویر از نواحی غیر متنی (شامل گرافیک و خطوط) است. مرحله دوم تحلیل ساختاری است که با قطعه بندی نواحی متنی به بلوک هایی از تصویر سند (نظیر پاراگراف، ردیف، کلمه و …) مرتبط می­باشد. مرحله سوم که تحلیل عملکردی نام دارد، با استفاده از اطلاعات مکانی، اندازه و قوانین مختلف صفحه­بندی، عملکرد هر یک از اجزای سند (نظیر عنوان، چکیده و …) را تعیین می­نماید[6] .

این بخش از سیستم اگرچه نقش مهمی را ایفا می­کند، به تکنیک­هایی نیازمند است که خیلی در چارچوب بحث بازشناسی نوری حروف نیست و از این رو در اینجا تکیه زیادی روی آن صورت نمی­گیرد.

2-3-2-              پیش پردازش

تصویر پویش شده توسط پویشگر معمولی ممکن است شامل مقادیری نویز باشد. افزون بر این حروف ممکن است شکل خاصی گرفته باشند که به صورت عادی قابل تشخیص نیستند [6].

این قسمت شامل کلیه اعمالی است که روی تصویر صورت می­گیرد تا موجب تسهیل در روند اجرای فازهای بعدی گردد. از مجموعه این پردازش­ها، هدف­های زیر دنبال می­شود:

  1. کاهش نویز و افزایش کیفیت تصویر
  2. نرمالیزه کردن داده ها
  3. فشرده سازی میزان اطلاعاتی که می بایست محفوظ بماند
  4. بازشناسی خط، زبان و فونت

2-3-3-              جداسازی و قطعه بندی درونی

یکی از مراحل مهم و اساسی در یک سیستم نویسه خوان نوری فارسی، مرحله قطعه بندی درونی است که به آن جداسازی نیز می­گویند. اصلی ترین تفاوت سیستم­های نویسه خوان نوری لاتین با سیستم­های نویسه خوان نوری فارسی در همین مرحله نهفته است. خروجی این مرحله، تأثیر مهمی بر سایر مراحل بازشناسی نوری خواهد داشت. در ایران تعداد زیادی مقاله و پروژه کارشناسی ارشد وجود دارد که تنها به این بخش پرداخته اند. برخی از روش های پیشنهادی برای بازشناسی حروف فارسی، البته این مرحله را حذف می­کنند. در این روش­ها بازشناسی بدون جداسازی و با استفاده از یک بانک اطلاعاتی کامل از کلمات، صورت می­گیرد. در ادامه سه روش مواجهه با نحوه ارتباط جداسازی و بازشناسی را شرح می­دهیم. شکل 2-4 نمونه ای از قطعه بندی یک کلمه به حرف را نشان می­دهد. جداسازی و بازشناسی را به سه روش می­توان انجام داد که در ادامه آورده شده است.

شکل ‏2‑4 قطعه بندی یک کلمه به حروف [2]

  1. جداسازی همزمان با بازشناسی: این روش معمولاً در بازشناسی هم زمان با ورود اطلاعات (مدل برخط) به کار می­رود و سیستم مغز انسان نیز در خواندن متون از این روش استفاده می­کند. در این روش از شیوه مقایسه پویا استفاده می­شود و در زمان بازشناسی، حروف از یکدیگر جدا
    می­شوند. برای این منظور باید تمامی ترکیب­های مختلف گردآوری گردند و نمادهای مختلف حروف به عنوان مبنا قرار گیرند.
  2. بازشناسی بدون جداسازی: در یک حالت از این روش باید مجموعه کاملی از کلمه ها وجود داشته باشد که گردآوری این مجموعه کار بسیار مشکلی است. تعداد کلمه­های ممکن از ترکیب حروف فارسی تا پنج حرف در حدود پانزده میلیون حالت است که البته بسیاری از این ترکیب­ها بی معنی می باشد و ترکیب­های واقعی حدود 7500 کلمه و زیرکلمه است. البته همین مقدار هم با حذف نقاط حدود 4800 کلمه است[2]. استفاده از این روش در حالت معمولی بسیار پرهزینه و مشکل است ولی از این روش در بازشناسی حروف دست نویس استفاده شده است. روش­های دیگری نیز بدون نیاز به فراهم آوری مجموعه کاملی از کلمه­ها با استفاده از روش­های دیگر مورد آزمایش و مطالعه قرار گرفته است. به طور کلی این روش چون ممکن است در شناسایی کلمات جدید (مثل اسامی خاص خارجی) دچار مشکل شود، رویکرد کارآمدی نیست.
  3. جداسازی کلمه­ها به زیر حروف و حروف: در این روش ابتدا با استفاده از تکنیک­های خاص، حروف از کلمات جدا شده و بازشناسی طی یک مرحله جداگانه بعد از استخراج ویژگی­ها، صورت می­گیرد. این روشی است که در اغلب تحقیقات انجام گرفته پیرامون زبان فارسی از آن استفاده شده است و در این پروژه نیز برخی از معمول ترین تکنیک­های این روش مورد بررسی قرار
    می­گیرد.

2-3-4-              استخراج ویژگی

هدف استخراج ویژگی­ها به دست آوردن مشخصه­های اصلی نمادها است و عموماً پذیرفته شده که این بخش یکی از دشوارترین مراحل سیستم نویسه خوان نوری است. سر راست ترین راه برای توصیف یک حرف، استفاده از تصویر واقعی آن است. این روش، از تکنیک تطابق قالبی استفاده می­کند.

رویکرد دیگر، استخراج ویژگی­های معینی که حروف را مشخص می­سازند و رها کردن صفت­های جزئی است. تکنیک­های استخراج با توجه به محلی که ویژگی­ها یافت می­شوند به سه گروه اصلی تقسیم می­شوند  [2, 15].

  1. توزیع نقاط
  2. تبدیلات و بسط­های سری
  3. تحلیل سری

جدول 2-3 تعدادی از روش­های معمول را با توجه به نوع تصویر مورد بازشناسی نشان می­دهد.

جدول ‏2‑3روش­های معمول استخراج ویژگی برای انواع مختلف تصویر [16]

بردار ( اسکلت ) تصویر دوسطحی زیر تصویر خاکستری
حروف توپر کانکتور مرزی
تطابق قالبی تطابق تطابق قالبی تطابق الگوهای تغییر پذیر
الگو­های تغییر پذیر الگوهای تغییر پذیر
توصیف گرافی تبدیلات تکین تبدیلات تکین
ویژگی­های گسسته هیستوگرام برآمدگی
ناحیه بندی ناحیه بندی ناحیه بندی ناحیه بندی
ممان­های هندسی منحنی­های اسپلاین ممان­های هندسی
توصیف کننده­های فوریه ممان­های زرنیک توصیف کننده­های فوریه ممان­های زرنیک

شکل 2-5 نمونه ای از چهار نوع تصویر ذکر شده در جدول بالا را نمایش می­دهد

شکل ‏2‑5 الف. تصویر خاکستری قطعه بندی شده ب. تصویر دو سطحی شده با نویز ج. تصویر نازک شده اسکلتی د. تصویر دوسطحی کانتور مرزی [2]

در انتخاب بردارهای ویژگی لازم است موارد زیر مورد توجه قرار گیرند [2, 16]:

  1. بردار ویژگی هر الگو باید تا حد امکان از بردارهای ویژگی دیگر الگوها متمایز باشد (فاصله بین بردارهای ویژگی در فضای ویژگی­ها، حداکثر باشد).
  2. بردار ویژگی الگوها باید تا بیشترین حد ممکن، خصوصیات شکل و ساختار الگوها را از تصویر آن­ها استخراج نماید.
  3. تا حد امکان نسبت به نویز، تغییر اندازه و نوع فونت، چرخش، و دیگر تغییرات احتمالی الگوها دارای ثبات باشد.
  4. شرایط، نوع و خصوصیات الگوهای ورودی در انتخاب بردارهای ویژگی اثر می­گذارند. به عنوان مثال باید تعیین نمود که آیا حروف یا کلماتی که می­بایست تشخیص داده شوند جهت و اندازه مشخصی دارند یا خیر، دست نوشته هستند یا چاپی، یا اینکه تا چه حد به وسیله نویز، مغشوش شده­اند. همچنین گاهی کفایت می­کند که سیستم، تنها جوابگوی گروه محدودی از الگوها (مثلاً الگوهایی با اندازه یا نوع فونت از پیش مشخص شده) باشد.
  5. در مورد حروفی که به چندین شکل نوشته می­شوند (مانند “a” و و “4” و “4”) لازم است بیش از یک کلاس الگو به یک کاراکتر خاص تعلق یابد.

2-3-5-              بازشناسی و دسته بندی

این مرحله، آخرین مرحله پردازش در یک سیستم نویسه خوان نوری است. در این مرحله، هر حرف شناسایی می­گردد و به کلاس حرفی مناسب ارجاع داده می­شود. در ادامه، دو رویکرد مختلف برای دسته بندی در بازشناسی حروف مورد بحث قرار می­گیرد. ابتدا، بازشناسی از طریق تئوری تصمیم گیری مورد بررسی قرار می­گیرد. این روش­ها زمانی مورد استفاده قرار می­گیرند که مشخصه­های یک کاراکتر بتوانند به صورت عددی توسط بردار ویژگی­ها معرفی گردند.

ممکن است ما مشخصه­های الگو داشته باشیم که از ساختار فیزیکی حروف مشتق شده­اند که
نمی­توانند به آسانی به صورت عددی اندازه­گیری شوند. در این حالات، ارتباط بین حروف در هنگام تصمیم­گیری روی عضویت کلاس باید مورد توجه قرار گیرند. برای مثال، اگر ما بدانیم که یک حرف از یک پاره خط عمودی و یک پاره خط افقی تشکیل شده است، ممکن است این حرف T یا L باشد. در این صورت ارتباط بین دو پاره خط نیز برای تشخیص حرف لازم است. در این صورت یک رویکرد ساختاری مورد نیاز خواهد بود.

2-3-5-1-       روش های تئوری تصمیم گیری

رویکرد­های اصلی در بازشناسی تئوری تصمیم گیری عبارتند از: دسته بندی کننده­های با فاصله مینیمم، دسته بندی کننده­های آماری و شبکه­های عصبی. هر یک از این تکنیک­های دسته بندی در ادامه مورد بررسی مختصر قرار می­گیرند.

2-3-5-2-       روش های ساختاری

در حوزه شناسایی­های ساختاری، روش­های نحوی در میان متداول­ترین رویکردها هستند. تکنیک­های دیگری هم وجود دارند اما عمومیت کم­تری دارند در اینجا معرفی نمی­شوند.

2-3-5-3-       روش های نحوی

معیار­های تشابه مبتنی بر ارتباط بین اجزای ساختاری، می­تواند با استفاده از مفاهیم نحوی فرموله گردد. ایده این است که هرکلاس، تعریف نحوی خاص خود را دارد که ترکیب حروفش را تعریف می­نماید. یک گرامر ممکن است به صورت رشته یا درخت تعریف شود و اجزای ساختاری استخراج شده از یک حرف نامعلوم، با گرامر هر کلاس مطابقت داده می­شود. فرض کنید ما دو کلاس حروف متفاوت داریم که می­توانند با دو گرامر G2،G1 تولید می­شوند. با یک حرف داده شده، ما می­گوییم که این حرف به کلاس اول بیشتر شبیه است اگر با گرامر G1 قابل تولید باشد و با G2 قابل تولید نباشد.

2-3-6-              پس پردازش

با بازشناسی تمام تصاویر اجزای متن یک بلوک، متن متناظر با هر یک از آن­ها مشخص شده است. برای به دست آوردن متن نهایی باید پس پردازش­هایی روی این متن انجام شود. به عنوان مثال از به هم چسباندن حروف بازشناسی شده در مرحله قبل، زیرکلمات و کلمات تشکیل می­شوند تشکیل این زیرکلمات و کلمات با استفاده از موقعیت آن­ها در تصویر، یک مرحله پس پردازش است. مرحله بعدی می­تواند سنجش اعتبار این کلمات با استفاده از یک واژه نامه باشد. در ادامه هر یک از کارهایی که در این مرحله انجام می­شود را توضیح خواهیم داد[2, 9].

2-4- بازشناسی دست نویس فارسی-عربی

ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻦ دﺳﺘﻨﻮﻳﺲ ﻋﺮﺑﻲ و ﻓﺎرﺳﻲ ﻧﻴﺰ در ﭼﻨﺪﻳﻦ ﻣﻘﺎﻟﻪ ﻣﻮرد ﺗﻮﺟﻪ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ. ﻋﻼوه ﺑﺮ ﻣﺮاﺟﻌﻲ ﭼﻮن [17-21] ﻛﻪ ﺑﻴﺸﺘﺮ ﺑﻪ ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻦ دﺳﺖﻧﻮﻳﺲ ﺑﺮون ﺧﻂ ﭘﺮداﺧﺘﻪاﻧﺪ، در ﺑﺮﺧﻲ ﻣﻘﺎﻻت ﺑﻪ ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻦ ﺑﺮﺧﻂ ﻧﻴﺰ ﭘﺮداﺧﺘﻪ ﺷﺪه اﺳﺖ. ﻣﺮوري از ﻛﺎرﻫﺎي ﻗﺪﻳﻤﻲ ﺗﺮ در ﺣﻮزه ﺑﺎزﺷﻨﺎﺳﻲدﺳﺖﻧﻮﺷﺘﻪﻫﺎي ﻋﺮﺑﻲ ﺑﺮ ﺧﻂ را ﻣﻲﺗﻮان در[22] و [22] ﻣﺸﺎﻫﺪه ﻛﺮد. در[23] ﺑﻪ روﺷﻲ ﺑﺮاي ﺑﺎزﺷﻨﺎﺳﻲ ﻛﺎرﻛﺘﺮﻫﺎي دﺳﺖﻧﻮﻳﺲ ﺑﺮﺧﻂ ﭘﺮداﺧﺘﻪ ﺷﺪه اﺳﺖ ﻛﻪ در آن ﺑﺎ اﺳﺘﻔﺎده از ﺷﺒﻜﻪ  ،SOMوﻳﮋﮔﻲﻫﺎ را ﺑﻪ ﺻﻮرت ﺧﻮدﻛﺎر اﺳﺘﺨﺮاج ﻣﻲﻛﻨﺪ و ﺳﭙﺲ ﻳﻚ ﺷﺒﻜﻪي ﻋﺼﺒﻲ ﻛﺎرﻛﺘﺮﻫﺎ را ﺑﺎزﺷﻨﺎﺳﻲ ﻣﻲﻛﻨﺪ. روﻳﻜﺮد ﻧﺴﺒﺘﺎً ﻣﺸﺎﺑﻬﻲ را ﻣﻲﺗﻮان در[24] و[25] ﻣﺸﺎﻫﺪه ﻛﺮد ﻛﻪ از ﻣﺪل ﺣﺎﻓﻈﻪ اﻧﺠﻤﻨﻲ ﺷﺒﻜﻪﻫﺎي ﻛﻮﻫﻮﻧﻦ ﺑﺮاي ﺑﺎزﻧﻤﺎﻳﻲ ﻛﺎرﻛﺘﺮﻫﺎ و از ﺷﺒﻜﻪ  SOMﺑﺮاي ﺑﺎزﺷﻨﺎﺳﻲ آﻧﻬﺎ اﺳﺘﻔﺎده ﻛﺮده اﺳﺖ. در [26] از ﻣﺪل ﺳﺎزي اﺣﺘﻤﺎﻻﺗﻲ ﻃﺒﻘﻪﻫﺎي ﻛﺎراﻛﺘﺮ ﺑﺮاي ﻛﺎراﻛﺘﺮﻫﺎي ﻋﺮﺑﻲ ﺑﻪ ﻛﻤﻚ ﺗﻮزﻳﻊ ﮔﻴﺒﺲ ﺑﺮاي ﺑﺎزﺷﻨﺎﺳﻲ ﻛﺎراﻛﺘﺮﻫﺎ ﺑﺮﺧﻂ اﺳﺘﻔﺎده ﻛﺮده اﺳﺖ. در ﻳﻜﻲ از ﻛﺎرﻫﺎي ﺟﺪﻳﺪ [18] از ﻣﺪل ﻣﺨﻔﻲ ﻣﺎرﻛﻮف HMM[30] ﺑﺮاي ﺑﺎزﺷﻨﺎﺳﻲ ﻛﻠﻤﺎت ﺑﺮﺧﻂ ﻋﺮﺑﻲ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ و ﻧﺘﺎﻳﺞ رﺿﺎﻳﺖ ﺑﺨﺸﻲ در آن ﮔﺰارش ﺷﺪه اﺳﺖ. ﻫﻤﭽﻨﻴﻦ در [26] از ﻣﺪل ﻣﺨﻔﻲ ﻣﺎرﻛﻮف ﺑﺮاي ﻣﺪل ﻛﺮدن اﺳﺘﺮوكﻫﺎ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ.

در ﻣﻮرد ﻛﺎرﻫﺎﻳﻲ ﻛﻪ در اﻳﺮان اﻧﺠﺎم ﺷﺪه اﺳﺖ، ﻣﻲﺗﻮان ﺑﻪ [27] اﺷﺎره ﻛﺮد ﻛﻪ از روﻳﻜﺮد ﺷﺒﻜﻪ ﻋﺼﺒﻲ ﺑﺮاي ﺑﺎزﺷﻨﺎﺳﻲ ﺣﺮوف ﻣﺠﺎزي ﻓﺎرﺳﻲ ﺑﺮﺧﻂ اﺳﺘﻔﺎده ﻛﺮده اﺳﺖ. ﻫﻤﭽﻨﻴﻦ ﭘﺎﻳﺎن ﻧﺎﻣﻪ ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ ﻣﺤﻤﺪﻋﻠﻲ ﺑﺰرگ زاده ﺑﻪ راﻫﻨﻤﺎﻳﻲ ﻣﺤﻤﺪ رﺣﺘﻤﻲ در داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ اﻣﻴﺮ ﻛﺒﻴﺮ ﻧﻴﺰ ﺑﺎزﺷﻨﺎﺳﻲ ﻛﻠﻤﺎت دﺳﺖﻧﻮﻳﺲ ﺑﺮﺧﻂ را ﺑﺎ روﺷﻲ ﻣﺒﺘﻨﻲ ﺑﺮ ﺟﺴﺘﺠﻮي ﭘﺮﺗﻮي[31] اﻧﺠﺎم داده اﺳﺖ. از اﻳﻦ ﻛﺎر ﺗﺎﻛﻨﻮن ﻣﻘﺎﻟﻪاي ﻣﻨﺘﺸﺮ ﻧﺸﺪه اﺳﺖ.

 ﺑﺮﺧﻲ از ﻛﺎرﻫﺎي اﻧﺠﺎم ﺷﺪه در زﻣﻴﻨﻪ ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻦ دﺳﺖﻧﻮﻳﺲ، واﺑﺴﺘﮕﻲ ﺑﻪ ﻧﻮﻳﺴﻨﺪه و ﻗﺎﺑﻠﻴﺖ ﺗﻄﺒﻴﻖ ﺑﺎ ﻳﻚ ﻧﻮﻳﺴﻨﺪه ﺧﺎص در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ. در [28] ﺗﻄﺒﻴﻖ ﺑﺎ ﻧﻮﻳﺴﻨﺪه ﺑﺮاي ﺳﻴﺴﺘﻢ ﺑﺮﺧﻂ ﺟﻬﺖ ﺑﻬﺒﻮد ﻧﺮخ ﺑﺎزﺷﻨﺎﺳﻲ دﺳﺖ ﻧﻮﺷﺘﻪﻫﺎ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ. اﻳﻦ ﻛﺎر ﺑﻪ ﻛﻤﻚ ﻣﺪل ﺳﺎزي ﺗﻄﺒﻴﻖ ﺑﺎ ﺗﻮزﻳﻊﻫﺎي ﻧﺮﻣﺎل ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ. در [29] ﺑﺮاي ﺗﻄﺒﻴﻖ در ﺳﻴﺴﺘﻢ ﺑﺮﺧﻂ، ﻣﺪلﻫﺎﻳﻲ از ﺳﺒﻚﻫﺎي ﻧﻮﺷﺘﺎري ﻧﮕﻬﺪاري ﻣﻲﺷﻮد ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از دادهﻫﺎي ﻛﺎرﺑﺮ ﺑﺮوز ﻣﻲﺷﻮد و ﺟﺎﻳﮕﺰﻳﻦ ﻣﺪل ﻣﺴﺘﻘﻞ از ﻛﺎرﺑﺮ ﻣﻲﮔﺮدد. در اﻳﻦ ﻛﺎر ﻛﻪ روي ﺣﺮوف ﻻﺗﻴﻦ اﻧﺠﺎم ﺷﺪه اﺳﺖ، ﺣﺪود 9 درﺻﺪ ﻛﺎﻫﺶ ﺧﻄﺎي ﺑﺎزﺷﻨﺎﺳﻲ در ﻧﺘﻴﺠﻪ ﺗﻄﺒﻴﻖ ﺑﺎ ﻧﻮﻳﺴﻨﺪه ﺧﺎص ﮔﺰارش ﺷﺪه اﺳﺖ. [30] ﺗﻄﺒﻴﻖ ﺑﺎ ﻛﺎرﺑﺮ ﺟﺪﻳﺪ را در ﺑﺴﺘﺮ ﻣﺘﻮن دﺳﺖﻧﻮﻳﺲ ﺑﺮون ﺧﻂ ﺳﺮﻫﻢ ﻣﻮرد ﻣﻄﺎﻟﻌﻪ ﻗﺮار داده اﺳﺖ و ﺑﺮ روي ﺳﻴﺴﺘﻤﻲ ﻣﺒﺘﻨﻲ ﺑﺮ  HMM آﻧﺮا اﺟﺮا ﻧﻤﻮده اﺳﺖ. در ﻧﺘﺎﻳﺞ اﻳﻦ ﻛﺎر ﺑﻴﺎن ﺷﺪه اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺗﻨﻬﺎ ﺣﺪود 03 ﻛﻠﻤﻪ ﺑﺮاي ﺗﻄﺒﻴﻖ ﻣﻲﺗﻮان ﺑﻪ ﻧﺮخ ﺑﺎزﺷﻨﺎﺳﻲ ﺑﺎﻻي 80% رﺳﻴﺪ و اﻳﻦ ﻧﺘﻴﺠﻪ ﺑﺮ روي ﺑﻴﺶ از 200 ﻛﺎرﺑﺮ ﺑﻪ ﻃﻮر ﻣﺸﺎﺑﻬﻲ ﻣﺸﺎﻫﺪه ﺷﺪه اﺳﺖ. در زﻣﻴﻨﻪ ﺗﻄﺒﻴﻖ ﺑﺎ ﻧﻮﻳﺴﻨﺪه در ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻦ ﺑﺮون ﺧﻂ ﻋﺮﺑﻲ، ﻣﻲﺗﻮان به [31] اﺷﺎره ﻧﻤﻮد. در اﻳﻦ ﻛﺎر از ﻳﻚ ﻣﺪل ﺧﻮد راه اﻧﺪاز ﺗﻜﺮاري ﺑﺮاي ﺗﻄﺒﻴﻖ ﻣﺪل ﻣﺴﺘﻘﻞ از ﻛﺎرﺑﺮ ﺑﻪ ﻣﺪل واﺑﺴﺘﻪ ﺑﻪ ﻛﺎرﺑﺮ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺗﻌﺪاد ﻛﻤﻲ ﻛﻠﻤﻪ ﻣﻲﺗﻮاﻧﺪ ﺑﻪ ﻧﺮخ ﺑﺎزﺷﻨﺎﺳﻲ ﺑﺎﻻﻳﻲ در اﻳﻦ ﻓﺮاﻳﻨﺪ ﺑﺮﺳﺪ. در ﻣﺠﻤﻮع ﺑﺎ اﻧﺠﺎم ﺑﻬﺒﻮدﻫﺎﻳﻲ ﻛﻪ ﺟﺰﺋﻴﺎت آن در ﻣﻘﺎﻟﻪ آﻣﺪه اﺳﺖ، ﺣﺪاﻛﺜﺮ ﻧﺮخ ﺑﺎزﺷﻨﺎﺳﻲ ﭘﺲ از ﺗﻄﺒﻴﻖ ﺑﻪ ﺣﺪود 92% ﻣﻲرﺳﺪ. در ﻣﺠﻤﻮع ﻛﺎرﻫﺎي اﻧﺠﺎم ﺷﺪه در زﻣﻴﻨﻪ ﺗﻄﺒﻴﻖ ﺑﺎ ﻧﻮﻳﺴﻨﺪه ﭼﻨﺪان زﻳﺎد ﻧﻴﺴﺖ و ﺑﻪ ﻧﻈﺮ ﻣﻲرﺳﺪ ﮔﺰﻳﻨﻪﻫﺎي ﻣﺘﻌﺪدي را ﺑﺘﻮان در اﻳﻦ زﻣﻴﻨﻪ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار داد [18].

2-5- روند بازشناسی متون فارسی

اﻳﻦ ﺑﺨﺶ ﺑﺮ اﺳﺎس ﻣﻘﺎﻻت اراﺋﻪ ﺷﺪه در ﺳﻪ ﻛﻨﻔﺮاﻧﺲ ﻣﻬﻨﺪﺳﻲ ﺑﺮق، ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ و ﻣﺎﺷﻴﻦ ﺑﻴﻨﺎﻳﻲ و ﭘﺮدازش ﺗﺼﻮﻳﺮ اﻳﺮان ﺗﻬﻴﻪ ﺷﺪه اﺳﺖ [2]. اﻳﻦ ﻣﻘﺎﻟﻪﻫﺎ روﻧﺪ ﺗﺤﻘﻴﻘﺎت در زﻣﻴﻨﻪ  OCRﻓﺎرﺳﻲ را ﺑﻪ ﺧﻮﺑﻲ ﻧﺸﺎن ﻣﻲدﻫﻨﺪ.در ﺳﺎل 1372 ، ﻣﻘﺎﻻﺗﻲ درﺑﺎره ﺑﺎزﺷﻨﺎﺳﻲ ﺣﺮوف و ﻣﺘﻮن ﺗﺎﻳﭙﻲ ﺑﺎ ﻳﻚ ﻗﻠﻢ ﺧﺎص اراﺋﻪ ﺷﺪ. در ﺳﺎل 73 ، ﺑﺎزﺷﻨﺎﺳﻲ ﺣﺮوف ﺗﺎﻳﭙﻲ و ﺣﺮوف و ارﻗﺎم دﺳﺖﻧﻮﻳﺲ ﻣﻮرد ﺗﻮﺟﻪ ﺑﻮد. در 1374 ، روشﻫﺎي ﻣﺨﺘﻠﻔﻲ ﺑﺮاي اﺳﺘﺨﺮاج وﻳﮋﮔﻲ و ﺑﺎزﺷﻨﺎﺳﻲ ﻧﻮﻳﺴﻪﻫﺎي ﭼﺎﭘﻲ و دﺳﺖﻧﻮﻳﺲ ﻣﻄﺮح ﺷﺪﻧﺪ. ﻣﻘﺎﻟﻪﻫﺎﻳﻲ ﻧﻴﺰ درﺑﺎره ﺗﺸﺨﻴﺺ ﭘﻼك ﺧﻮدرو در ﻧﻮرﭘﺮدازي ﻧﺎﻳﻜﻨﻮاﺧﺖ اراﺋﻪ ﺷﺪﻧﺪ.

در ﺳﺎل 75 ، ﺗﺸﺨﻴﺺ ارﻗﺎم ﺑﺮﺧﻂ، ﺑﺎزﺷﻨﺎﺳﻲ ارﻗﺎم، ﺟﺪاﺳﺎزي ﺣﺮوف در ﻛﻠﻤﺎت ﭼﺎﭘﻲ و دﺳﺖﻧﻮﻳﺲ از ﻣﻮﺿﻮﻋﺎت ﻣﻄﺮح ﺑﻮدﻧﺪ.

در ﺳﺎل 76 ﺑﻪ ﺟﺪاﺳﺎزي ﻛﻠﻤﺎت ﻓﺎرﺳﻲ از ﻻﺗﻴﻦ، ﺧﻮاﻧﺪن ﻓﺮمﻫﺎي دﺳﺖﻧﻮﻳﺲ، ﺗﻔﻜﻴﻚ ﻛﻠﻤﺎت دﺳﺖﻧﻮﻳﺲ از ﭼﺎﭘﻲ، ﺟﺪاﺳﺎزي ﺣﺮوف در ﻛﻠﻤﺎت ﭼﺎﭘﻲ و ﺑﺎزﺷﻨﺎﺳﻲ ﺣﺮوف ﭼﺎﭘﻲ ﭘﺮداﺧﺘﻪ ﺷﺪ. ﺑﺎزﺷﻨﺎﺳﻲ زﻳﺮ-ﻛﻠﻤﺎت ﭼﺎﭘﻲ، ﺗﺸﺨﻴﺺ ﻧﻮﻳﺴﻪﻫﺎي ﺑﺮﺧﻂ، ﻧﺎزك ﺳﺎزي ﺣﺮوف، اﻳﺠﺎد ﭘﺎﻳﮕﺎه ﺗﺼﻮﻳﺮي زﻳﺮ-ﻛﻠﻤﺎت، ﺟﺪاﺳﺎزي ارﻗﺎم دﺳﺖﻧﻮﻳﺲ ﺑﺎ اﺗﺼﺎل ﻧﺎﺧﻮاﺳﺘﻪ و ﺑﺎزﺷﻨﺎﺳﻲ ارﻗﺎم دﺳﺖﻧﻮﻳﺲ، ﻣﻮﺿﻮﻋﺎت ﻣﻄﺮح در ﺳﺎل 77 ﺑﻮدﻧﺪ. در ﺳﺎل 78، ﻣﻘﺎﻻﺗﻲ درﺑﺎره ﺗﺸﺨﻴﺺ ﻛﺠﻲ اﺳﻨﺎد، درك ﭘﻴﻜﺮﺑﻨﺪي ﻫﻨﺪﺳﻲ ﻳﻚ ﺻﻔﺤﻪ از ﻣﺘﻦ ﭼﺎﭘﻲ و ﺑﺎزﺷﻨﺎﺳﻲ ﻛﻠﻤﺎت دﺳﺖﻧﻮﻳﺲ ﻣﻄﺮح ﺷﺪﻧﺪ. در ﺳﺎل 79 ، ﺑﺎزﺷﻨﺎﺳﻲ ﻛﻠﻤﺎت دﺳﺖﻧﻮﻳﺲ، ﺗﻌﻴﻴﻦ ﻛﺪﭘﺴﺘﻲ در آدرسﻫﺎي ﭼﺎﭘﻲ، ﭘﺮدازش ﻓﺮمﻫﺎي دﺳﺖﻧﻮﻳﺲ، ﺗﺸﺨﻴﺺ ﻣﻴﺰان ﻛﺠﻲ اﺳﻨﺎد، ﺗﺸﺨﻴﺺ زﺑﺎن در اﺳﻨﺎد ﭼﻨﺪ زﺑﺎﻧﻪ، ﻧﺎﺣﻴﻪﺑﻨﺪي ﺻﻔﺤﻪ ﻣﺘﻦ، ﺟﺪاﺳﺎزي ﺣﺮوف در ﻛﻠﻤﺎت، ﺑﺎزﺷﻨﺎﺳﻲ ﭘﻼك ﺧﻮدرو، ﺑﺎزﺷﻨﺎﺳﻲ ﺣﺮوف و ارﻗﺎم دﺳﺖﻧﻮﻳﺲ و ﺟﺪاﺳﺎزي ﻧﻘﺎط ﭼﺴﺒﻴﺪه ﺑﻪ ﺑﺪﻧﻪ ﺣﺮوف ﭼﺎﭘﻲ ﻣﻄﺮح ﺑﻮدﻧﺪ.

در ﺳﺎل 80، ﻣﻘﺎﻟﻪﻫﺎﻳﻲ درﺑﺎره اﻧﺘﺨﺎب وﻳﮋﮔﻲ ﺑﺮاي ﺑﺎزﺷﻨﺎﺳﻲ ارﻗﺎم، ﺑﺎزﺷﻨﺎﺳﻲ ﻛﻠﻤﺎت دﺳﺖﻧﻮﻳﺲ، ﻧﺎﺣﻴﻪﺑﻨﺪي ﺻﻔﺤﻪ ﻣﺘﻦ و ارزﻳﺎﺑﻲ ﺗﻌﻴﻴﻦ ﻧﻮار زﻣﻴﻨﻪ در ﻣﺘﻮن ﭼﺎﭘﻲ ﻣﻨﺘﺸﺮ ﺷﺪﻧﺪ. ﺟﺪاﺳﺎزي ﺣﺮوف در ﻛﻠﻤﺎت دﺳﺖﻧﻮﻳﺲ، اﺳﺘﺨﺮاج ﻣﺘﻦ ﭼﺎﭘﻲ از زﻣﻴﻨﻪ ﻣﺼﻮر، ﺟﺪاﺳﺎزي ﺗﺼﻮﻳﺮي ﻛﻠﻤﺎت ﭼﺎﭘﻲ ﻓﺎرﺳﻲ از ﻻﺗﻴﻦ و اﺳﺘﺨﺮاج ﻣﺘﻦ ﭼﺎﭘﻲ از ﺗﺼﺎوﻳﺮ ﮔﺮاﻓﻴﻜﻲ ﻣﻮﺿﻮﻋﺎت ﻣﻄﺮح در ﺳﺎل 81 ﺑﻮدﻧﺪ. در ﺳﺎل 82 ، ﺑﻪ ﺑﺎزﺷﻨﺎﺳﻲ ارﻗﺎم دﺳﺖﻧﻮﻳﺲ و ﺑﺎزﺷﻨﺎﺳﻲ ﻗﻠﻢﻫﺎي ﭼﺎﭘﻲ ﭘﺮداﺧﺘﻪ ﺷﺪ. در ﺳﺎل 83 ، ﻣﻘﺎﻟﻪﻫﺎﻳﻲ درﺑﺎره ﺑﺎزﺷﻨﺎﺳﻲ ارﻗﺎم و ﺣﺮوف، ﺗﻌﻴﻴﻦ ﺳﺎﺧﺘﺎر ﻧﺎﻣﻪﻫﺎي اداري، ﺟﺪاﺳﺎزي ﻛﻠﻤﺎت ﭼﺎﭘﻲ ﺑﻪ ﺣﺮوف، ﺑﺎزﻳﺎﺑﻲ ﺗﺼﺎوﻳﺮ ﻧﺎﻣﻪﻫﺎي اداري و ﺗﺮﻛﻴﺐ ﻃﺒﻘﻪ ﺑﻨﺪﻫﺎ ﺑﺮاي ﺑﺎزﺷﻨﺎﺳﻲ ارﻗﺎم ﻣﻨﺘﺸﺮ ﺷﺪﻧﺪ. ﺟﺪاﺳﺎزي ﻣﺘﻦ ﭼﺎﭘﻲ از زﻣﻴﻨﻪ ﺗﺼﻮﻳﺮي، ﺑﺎزﺷﻨﺎﺳﻲ زﻳﺮ-ﻛﻠﻤﺎت ﭼﺎﭘﻲ و ﺗﻌﻴﻴﻦ ﻫﻮﻳﺖ ﻧﻮﻳﺴﻨﺪه ﻣﻮﺿﻮﻋﺎت ﻣﻄﺮح در ﺳﺎل 84 ﺑﻮدﻧﺪ.

در ﺳﺎل 85، ﻣﻘﺎﻟﻪﻫﺎﻳﻲ درﺑﺎره ﺑﺎزﺷﻨﺎﺳﻲ ارﻗﺎم و ﺣﺮوف، ﺷﺎﺧﺺﮔﺬاري اﺳﻨﺎد ﭼﺎﭘﻲ ﺑﺮاي ﺑﺎزﻳﺎﺑﻲ آنﻫﺎ، آﺷﻜﺎرﺳﺎزي و ﺑﺎزﺷﻨﺎﺳﻲ ﭘﻼك ﺧﻮدرو، ﺑﻬﺴﺎزي ﺗﺼﻮﻳﺮ ﻣﺘﻮن ﭼﺎﭘﻲ، ﺗﻌﻴﻴﻦ و ﺗﺄﻳﻴﺪ ﻫﻮﻳﺖ ﻧﻮﻳﺴﻨﺪه، ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻦ ﭼﺎﭘﻲ، ﺧﻮﺷﻪ ﺑﻨﺪي زﻳﺮ-ﻛﻠﻤﺎت ﭼﺎﭘﻲ، ﺗﺨﻤﻴﻦ ﻛﺠﻲ اﺳﻨﺎد، ﺑﺎزﺷﻨﺎﺳﻲ ﻗﻠﻢﻫﺎي ﭼﺎﭘﻲ، اﺳﺘﺨﺮاج ﻧﻮﺷﺘﺎر از ﺗﺼﺎوﻳﺮ رﻧﮕﻲ، ﺑﺎزﺷﻨﺎﺳﻲ ﻋﺒﺎرتﻫﺎي رﻳﺎﺿﻲ ﭼﺎﭘﻲ، ﻧﺎﺣﻴﻪ ﺑﻨﺪي ﺻﻔﺤﻪ ﻣﺘﻦ و اﺳﺘﺨﺮاج وﻳﮋﮔﻲ ارﻗﺎم اﻧﺘﺸﺎر ﻳﺎﻓﺘﻨﺪ.

ﻣﻘﺎﻟﻪﻫﺎي ﺑﺎ ارزﺷﻲ ﻧﻴﺰ در ﻣﺠﻠﻪﻫﺎي داﺧﻠﻲ ﻣﻨﺘﺸﺮ ﺷﺪه اﺳﺖ ﻛﻪ ﺑﻪ دﻟﻴﻞ ﻋﺪم دﺳﺘﺮﺳﻲ ﺑﻪ ﻫﻤﻪ آنﻫﺎ، ﺑﺮاي رﻋﺎﻳﺖ ﻋﺪاﻟﺖ! و اﺟﺘﻨﺎب از ﻋﻮاﻗﺐ ﻧﺎﻣﻄﻠﻮب اﺣﺘﻤﺎﻟﻲ ﺑﻪ ﻫﻴﭻ ﻛﺪام اﺷﺎره ﻧﻤﻲﺷﻮد. اﻟﺒﺘﻪ ﺳﺮ ﻧﺦ ﺑﻴﺸﺘﺮ اﻳﻦ ﻣﻘﺎﻟﻪﻫﺎ در ﻓﻬﺮﺳﺖ ﻣﻘﺎﻟﻪﻫﺎي ﻛﻨﻔﺮاﻧﺲﻫﺎي داﺧﻠﻲ وﺟﻮد دارد [2].

2-6- تحقیقات انجام شده در داخل کشور در زمینه تولید OCR فارسی

ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻫﻤﻴﺖ ﻃﻴﻒ وﺳﻴﻊ ﻛﺎرﺑﺮدﻫﺎ و ﻧﻴﺎز ﺷﺪﻳﺪ ﺑﺎزار ﺗﺠﺎري، در ﺳﺎلﻫﺎي اﺧﻴﺮ ﺗﺤﻘﻴﻘﺎت ﻗﺎﺑﻞ ﻣﻼﺣﻈﻪاي در ﻛﺸﻮر در زﻣﻴﻨﺔ «OCR» ﺗﻮﺳﻂ داﻧﺸﮕﺎهﻫﺎ، ﺑﺮﺧﻲ ﻧﻬﺎدﻫﺎي دوﻟﺘﻲ، و ﺷﺮﻛﺖﻫﺎي ﺧﺼﻮﺻﻲ ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ ﻛﻪ ﻣﺘﺎﺳﻔﺎﻧﻪ از آﻣﺎر دﻗﻴﻖ آنﻫﺎ اﻃﻼﻋﻲ در دﺳﺖ ﻧﻴﺴﺖ. اﻣﺎ ﻗﺪر ﻣﺴﻠﻢ اﻳﻦ ﻛﻪ ﺑﺮاي «OCR» ﻣﺘﻮن ﭼﺎﭘﻲ ﺗﺎﻛﻨﻮن ﻫﻴﭻ ﻧﺮم اﻓﺰار ﻛﺎرآﻣﺪ «OCR» ﺗﺠﺎري ﻛﻪ ﻣﺤﺼﻮل ﺗﺤﻘﻴﻘﺎت داﺧﻞ ﻛﺸﻮر ﺑﺎﺷﺪ، ﻋﺮﺿﻪ ﻧﮕﺮدﻳﺪه اﺳﺖ. در اداﻣﻪ ﺑﻪ ﺑﺮﺧﻲ از ﺗﻼشﻫﺎي ﺻﻮرت ﮔﺮﻓﺘﻪ در اﻳﻦ زﻣﻴﻨﻪ اﺷﺎره ﻣﻲﺷﻮد:

– در ﺣﻮزة ﺗﺤﻘﻴﻘﺎت داﻧﺸﮕﺎﻫﻲ، ﺗﻌﺪاد ﻧﺴﺒﺘﺎً زﻳﺎدي ﭘﺎﻳﺎنﻧﺎﻣﻪ (ﺑﺨﺼﻮص در ﻣﻘﺎﻃﻊ ﻛﺎرﺷﻨﺎﺳﻲ ارﺷﺪ و دﻛﺘﺮي) و ﻣﻘﺎﻟﻪ در اﻳﻦ زﻣﻴﻨﻪ ﻣﻨﺘﺸﺮ ﺷﺪهاﻧﺪ ﻛﻪ ﻧﻘﻄﺔ ﺗﻤﺮﻛﺰ ﺑﻴﺸﺘﺮ آنﻫﺎ، اراﺋﺔ روشﻫﺎﻳﻲ ﺑﻪ ﻣﻨﻈﻮر ﻗﻄﻌﻪﺑﻨﺪي دروﻧﻲ[32]، ﺑﺎزﻧﻤﺎﻳﻲ[33] و ﺑﺎزﺷﻨﺎﺳﻲ[34] ﺣﺮوف ﺑﻮده اﺳﺖ و ﺳﺎﻳﺮ ﺑﺨﺶﻫﺎ ﺷﺎﻣﻞ ﭘﻴﺶﭘﺮدازش[35]، ﻗﻄﻌﻪﺑﻨﺪي ﺑﻴﺮوﻧﻲ[36] و ﭘﺲﭘﺮدازش[37] ﻛﻤﺘﺮ ﻣﻮرد ﺗﻮﺟﻪ ﻗﺮار ﮔﺮﻓﺘﻪاﻧﺪ[38].

– ﻃﺮح ﻣﻠﻲ ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻮن ﭼﺎﭘﻲ و ﺣﺠﻢ ﻣﺤﺪودي از ﻛﻠﻤﺎت دﺳﺖﻧﻮﻳﺲ ﺑﻪ ﺳﺮﭘﺮﺳﺘﻲ دﻛﺘﺮ «اﺣﺴﺎنﻟﻪ ﻛﺒﻴﺮ» آﻏﺎز ﮔﺮدﻳﺪ ﻛﻪ در آن ﺗﻌﺪادي از داﻧﺸﺠﻮﻳﺎن و اﺳﺎﺗﻴﺪ داﻧﺸﮕﺎهﻫﺎي ﺗﺮﺑﻴﺖ ﻣﺪرس و ﺻﻨﻌﺘﻲ اﻣﻴﺮﻛﺒﻴﺮ در ﻗﺎﻟﺐ ﭘﺎﻳﺎنﻧﺎﻣﻪﻫﺎي ﻛﺎرﺷﻨﺎﺳﻲارﺷﺪ و دﻛﺘﺮي، ﺑﻪ اﻧﺠﺎم ﺗﺤﻘﻴﻖ ﭘﺮداﺧﺘﻨﺪ. دﻛﺘﺮ «ﻛﺒﻴﺮ» ﭘﺮوژهﻫﺎﻳﻲ ﻧﻴﺰ ﺑﺎ ﻋﻨﺎوﻳﻦ «ﺑﺎزﺷﻨﺎﺳﻲ ﻣﺘﻮن ﭼﺎﭘﻲ ﻓﺎرﺳﻲ» (1371-1369) و «ﺑﺎزﺷﻨﺎﺳﻲ ﺣﺮوف و ارﻗﺎم ﻓﺎرﺳﻲ دﺳﺖﻧﻮﻳﺲ» (1374-1372) ﺑﺮاي «ﺳﺎزﻣﺎن ﭘﮋوﻫﺶﻫﺎي ﻋﻠﻤﻲ و ﺻﻨﻌﺘﻲ اﻳﺮان» اﻧﺠﺎم داده اﺳﺖ.

– ﺷﺮﻛﺖ «اﻧﺪﻳﺸﺔ ﻧﺮم اﻓﺰار ﭘﺎﻳﺎ» در ﺳﺎل 1380 ﻃﺮﺣﻲ ﺑﻪ ﻣﻨﻈﻮر اراﺋﺔ ﻳﻚ ﺳﻴﺴﺘﻢ «OCR» ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﻓﺎرﺳﻲ ﮔﺴﺴﺘﺔ دﺳﺖﻧﻮﺷﺖ آﻏﺎز ﻧﻤﻮد. از ﻣﺤﺼﻮل اﻳﻦ ﻃﺮح، در ﺳﺎلﻫﺎي 1381 و 1382 ﺑﻪ ﻣﻨﻈﻮر ﺧﻮاﻧﺪن 440 ﻫﺰار ﻓﺮم ﺛﺒﺖﻧﺎم آزﻣﻮن «ﺳﺎزﻣﺎن ﻣﻠﻲ اﺳﺘﻌﺪادﻫﺎي درﺧﺸﺎن» اﺳﺘﻔﺎده ﮔﺮدﻳﺪ. در اﻳﻦ ﻣﺤﺼﻮل، ﺣﺮوف ﻓﺎرﺳﻲ ﮔﺴﺴﺘﺔ دﺳﺖﻧﻮﺷﺖ ﭘﺲ از ﺷﻨﺎﺳﺎﻳﻲ، ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺗﺮﻛﻴﺐ ﻣﻲﺷﻮﻧﺪ و ﻛﻠﻤﺎت ﺑﻪ دﺳﺖ آﻣﺪه از اﻳﻦ ﻃﺮﻳﻖ، در ﻳﻚ واژهﻧﺎﻣﺔ ﻟﻐﺎت (ﺷﺎﻣﻞ ﻧﺎمﻫﺎ و ﻧﺎمﻫﺎي ﺧﺎﻧﻮادﮔﻲ ﻣﺼﻄﻠﺢ در اﻳﺮان) ﻣﻮرد ﺟﺴﺘﺠﻮ ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ ﻛﻪ ﺑﺪﻳﻦ ﺻﻮرت ﺧﻄﺎﻫﺎي ﺑﺎزﺷﻨﺎﺳﻲ ﺗﺎ ﺣﺪ زﻳﺎدي ﻛﺎﻫﺶ ﭘﻴﺪا ﻣﻲﻛﻨﺪ. ﺑﻪ دﻟﻴﻞ ﮔﺴﺴﺘﻪﺑﻮدن ﺣﺮوف دﺳﺖﻧﻮﺷﺖ، ﺧﻮشﺧﻂﺑﻮدن ﻣﻌﻤﻮل ﻓﺮمﻫﺎ ﺑﻪ واﺳﻄﺔ وﺳﻮاس ﭘﺮﻛﻨﻨﺪﮔﺎن آنﻫﺎ (زﻳﺮا ﺷﺮﻛﺖﻛﻨﻨﺪﮔﺎن در آزﻣﻮن ﻧﻤﻲﺧﻮاﻫﻨﺪ ﻛﻪ ﻓﺮم آنﻫﺎ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن ﻧﺒﺎﺷﺪ)، و ﻧﻴﺰ ﺑﻪ دﻟﻴﻞ اﺳﺘﻔﺎده از واژهﻧﺎﻣﺔ ﻟﻐﺎت، دﻗﺖ ﺑﺎزﺷﻨﺎﺳﻲ ﺻﺤﻴﺢ ﺣﺮوف، رﺿﺎﻳﺖﺑﺨﺶ (ﺑﺎﻻي 90% ﺑﺎزﺷﻨﺎﺳﻲ ﺻﺤﻴﺢ) ﺑﻮد.

– دو ﺷﺮﻛﺖ دﻳﮕﺮ ﻧﻴﺰ ﺑﺎ ﺣﻤﺎﻳﺖ دﺑﻴﺮﺧﺎﻧﻪ ﻃﺮح «ﺗﻜﻔﺎ» (ﺗﻮﺳﻌﻪ ﻛﺎرﺑﺮد ﻓﻨﺎوري اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت) ﻣﺸﻐﻮل ﭘﮋوﻫﺶ و آزﻣﺎﻳﺶ ﺑﺮ روي «OCR»  ﻓﺎرﺳﻲ ﻫﺴﺘﻨﺪ. ﻳﻜﻲ از اﻳﻦ ﺷﺮﻛﺖﻫﺎ «دادهﭘﺮدازان دوران ﻧﻮﻳﻦ» ﻧﺎم دارد. اخیراً اعلام گردیده که این شرکت موفق به ارائه یک نرم افزار بازشناسی برای متون فارسی با دقت 90% گردیده است.

< /a></a >< a name=”_Toc377045523″>فصل 3-             < a name=”_Toc377112253″>الگوریتم پیشنهادی برای بازشناسی حروف دست نویس

3-1- مقدمه

در اﺑﺘﺪا ﻻزم اﺳﺖ ﺑﻪ ﻳﻚ ﻣﻘﺪﻣﻪ ﻛﻮﺗﺎه در ﻣﻮرد ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﻓﺎرﺳﻲ در زﻳﺮﻛﻠﻤﺎت ﺑﭙﺮدازﻳﻢ. زﻳﺮ ﻛﻠﻤﺎت در زﺑـﺎن  ﻓﺎرﺳﻲ ﺑﻪ ﭼﻨﺪﻳﻦ دﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﻣﻤﻜﻦ اﺳﺖ ﻳﻚ، دو، ﺳﻪ، ﭼﻬﺎر، ﭘﻨﺞ و … ﺣﺮﻓﻲ ﺑﺎﺷﻨﺪ. ﺑﺮاي روﺷـﻦ ﺷـﺪن ﻣﻮﺿﻮع و اﻃﻼع از ﻧﺘﺎﻳﺞ ﻛﻤﻲ آن، ﻳﻚ آﻣﺎرﮔﻴﺮي از ﻛﻠﻤﺎت ﻓﺎرﺳﻲ اﻧﺠﺎم داده اﻳﻢ ﻛﻪ ﻧﺘﺎﻳﺞ آن در جدول ‏3‑1 ﻧﺸـﺎن داده ﺷﺪه اﺳﺖ. در اﻳﻦ آﻣﺎرﮔﻴﺮي ﺳﻪ ﻧﻮع ﻣﺘﻦ ﻣﺨﺘﻠﻒ ﻣﻘﺎﻟﻪ ﻣﻄﺒﻮﻋﺎﺗﻲ، ﻛﺘﺎب آﻣﻮزﺷﻲ و ﻳﻚ ﭘﺎﻳﺎنﻧﺎﻣـﻪ ﻣـﻮرد ﻣﻄﺎﻟﻌـﻪ ﻗـﺮار ﮔﺮﻓﺘﻪ اﺳﺖ و ﺑﺎ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ ﺷﺪه ﺑﻪ زﺑﺎن #C ﺗﻌﺪاد زﻳﺮﻛﻠﻤﺎت ﺑﺎ ﺗﻌﺪاد ﺣﺮوف ﻣﺘﻔﺎوت ﺷﻤﺎرش ﺷﺪه اﺳﺖ.

جدول ‏3‑1 ﺗﻌﺪاد زﻳﺮﻛﻠﻤﺎت ﺑﺎ ﺗﻌﺪاد ﺣﺮوف ﻣﺘﻔﺎوت در ﺳﻪ ﻧﻮع ﻣﺘﻦ ﻣﻘﺎﻟﻪ ﻣﻄﺒﻮﻋﺎﺗﻲ،ﻛﺘﺎب آﻣﻮزﺷﻲ و ﻳﻚ ﭘﺎﻳﺎن ﻧﺎﻣﻪ [32]

نوع متن: مقالات مطبوعاتی
تعداد حروف در زیرکلمه تکرار در متن درصد تکرار
1 5446 01/49
2 3405 64/30
3 1341 06/12
4 772 94/6
5 114 07/1
6 28 25/0
7 6 05/0
مجموع 11112 100
نوع متن: کتاب آموزشی
تعداد حروف در زیرکلمه تکرار در متن درصد تکرار
1 19378 52/50
2 12244 92/31
3 4757 4/12
4 1491 88/3
5 445 16/1
6 37 09/0
7 3 008/0
مجموع 38355 100
نوع متن: پایان نامه
تعداد حروف در زیرکلمه تکرار در متن درصد تکرار
1 11833 59/48
2 8024 95/32
3 2854 71/11
4 1214 98/4
5 359 47/1
6 62 25/0
7 5 02/0
مجموع 24352 100

ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺟﺪول بالا ﻣﺸﺎﻫﺪه ﻣﻲﺷﻮد، 37/49% ﻛﻞ زﻳﺮﻛﻠﻤﺎت ﻓﺎرﺳﻲ را زﻳﺮﻛﻠﻤﺎت ﺗﻚﺣﺮﻓـﻲ ﺗﺸـﻜﻴﻞ ﻣﻲدﻫﻨﺪ. در واﻗﻊ ﻣﻲﺗﻮان ﮔﻔﺖ اﮔﺮ اﻳﻦ زﻳﺮ ﻛﻠﻤﺎت ﺑﻪ درﺳﺘﻲ ﺗﺸﺨﻴﺺ داده ﺷﻮﻧﺪ ﻧﺰدﻳﻚ ﺑﻪ 50% ﻛـﻞ ﻣـﺘﻦ ﺗﺸـﺨﻴﺺ داده ﺷﺪه اﺳﺖ. از اﻳﻦ رو ﻛﺎرﻫﺎي زﻳﺎدي ﺑﺮ روي زﻳﺮﻛﻠﻤﺎت ﺗﻚﺣﺮﻓﻲ (ﺣﺮوف ﺟﺪاي ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ) اﻧﺠﺎم ﺷﺪه اﺳﺖ. اﮔﺮ ﺗﺎ زﻳﺮﻛﻠﻤﺎت 3 ﺣﺮﻓﻲ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ، ﺑﺎ ﺗﺸﺨﻴﺺ اﻳﻦ زﻳﺮﻛﻠﻤﺎت، ﺗﻘﺮﻳﺒﺎً 93% ﻛﻞ ﻣﺘﻦ اﺳﻜﻦ ﺷﺪه ﺗﺸﺨﻴﺺ داده ﻣﻲﺷﻮد ﻛﻪ در ﻳﻜﻲ از ﻣﻘﺎﻟﻪ اﺳﺘﺨﺮاج ﺷﺪه از اﻳﻦ ﭘﺎﻳﺎن ﻧﺎﻣﻪ آورده ﺷﺪه اﺳﺖ[32].

در نتیجه، بسیاری از روش­های بازشناسی، ویژگی­های مورد نیازشان را مستقیماً از زیرکلمه­ها استخراج و سعی می­کنند مستقیماً زیرکلمه را تشخیص دهند. اشکال عمده این روش­ها این است که امکان تعریف همه حالت­های زیرکلمه­ها به صورت دقیق توسط انسان وجود ندارد، بنابراین، این روش­ها اغلب برای مرحله شناسایی به روش­های با تمرین (مانند شبکه های عصبی) روی می­آورند و تنها می­توانند برای زیرکلمه­های پر استفاده با درصد خوبی جواب صحیح را بیابند.

از سوی دیگر، در بین روش­هایی که ویژگی­های مورد نیازشان را از روی حروف به دست می­آورند، روش­های آماری بسیار وابسته به نوع قلم هستند و با تغییر قلم دقت آن ها تغییر زیادی می­کند. بنابراین، روش­های آماری برای بازشناسی مستقل از قلم و دست­نوشته زیاد مناسب نیستند. با توجه به مطالب فوق، به نظر می­رسد که برای بازشناسی نوشتار مستقل از قلم و دست نوشته­ها، پژوهش­های آینده به سوی استخراج ویژگی­های ساختاری حروف پیش خواهند رفت.

یکی از موفقترین روش­های ارائه شده که تاکنون برای استخراج ویژگی های ساختاری حروف مطرح شده است، از عناصر ابتدایی مانند خط و دایره به عنوان ویژگی استفاده می­کند. در سال ١٩٩٨ میلادی (١٣٧٧ خورشیدی) در [33] استفاده از عناصر ابتدایی برای شناسایی حروف عربی و فارسی پیشنهاد شده که از ٩ عنصر ابتدایی استفاده می­کرد. در سال ٢٠٠6 میلادی (١٣٨۵ خورشیدی) در [34] از 10 عنصر ابتدایی برای شناسایی حروف عربی استفاده شده است. به طور هم زمان، در [35]  نیز روشی برای شناسایی حروف فارسی با ٩ عنصر ابتدایی ارائه شده است که این روش در [32] و [36] کاملتر شده است و در این پایان نامه، تعداد عناصر ابتدایی به ٨ رسید.

در این فصل ابتدا روش­های گوناگون دسته­بندی حروف فارسی را بررسی خواهیم کرد سپس به بررسی الگوریتم پیشنهادی می­پردازیم.

3-1-1-              روش­هايي جهت دسته­بندي حروف فارسي

ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف آﻧﻬﺎ را ﺑﻪ ﮔﺮوهﻫﺎي ﻣﺨﺘﻠﻔﻲ ﺗﻘﺴﻴﻢ ﻣﻲﻛﻨﻨﺪ. اﻳﻦ ﺗﻘﺴﻴﻢﺑﻨﺪي از ﻟﺤﺎظ ﺷﻜﻞ ﻇـﺎﻫﺮي اﺳـﺖ و ﻣﻲﺗﻮان ﺑﺮاي ﻫﺮ ﮔﺮوه ﻳﻚ ﻛﻼس ﺧﺎص درﻧﻈﺮ ﮔﺮﻓﺖ ﻣﺜﻼً از ﻧﻈﺮ ﻣﻮﻗﻌﻴﺖ در زﻳﺮﻛﻠﻤﻪ، ﺗﻌﺪاد ﻧﻘﺎط ﻳﺎ ﻣﻮﻗﻌﻴﺖ ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ ﻛﺮﺳﻲ ﻛﻪ در اداﻣﻪ ﺗﻮﺿﻴﺢ داده ﻣﻲﺷﻮد.

3-1-1-1-       ﻣﻮﻗﻌﻴﺖ در زﻳﺮﻛﻠﻤﻪ

ﺣﺮوف ﺑﺴﺘﻪ ﺑﻪ اﻳﻨﻜﻪ در ﻛﺠﺎي (زﻳﺮ) ﻛﻠﻤﻪ ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ ﺑﻪ ﭼﻬﺎر دﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ ﻛـﻪ در ﺟـﺪول 3-3 آورده ﺷﺪه اﺳﺖ. اﮔﺮ ﺣﺮف ﺗﻨﻬﺎ ﻇﺎﻫﺮ ﺷﻮد ”ﺣﺮف ﺟﺪا“ ﻧﺎﻣﻴﺪه ﻣﻲ ﺷﻮد، اﮔﺮ در اﺑﺘﺪاي (زﻳﺮ)ﻛﻠﻤـﻪ ﺑﺎﺷـﺪ ﺑـﻪ آن «ﺣـﺮف اول» ﮔﻔﺘﻪ ﻣﻲﺷﻮد، اﮔﺮ در وﺳﻂ ﺑﺎﺷﺪ «ﺣﺮف وﺳﻂ» و ﺑﺎﻻﺧﺮه اﮔﺮ در اﻧﺘﻬﺎي (زﻳﺮ)ﻛﻠﻤﻪ ﻗﺮار ﮔﻴﺮد «ﺣﺮف آﺧﺮ» ﻧﺎم دارد.

ﻫﻤﺎﻧﻄﻮر در ﺟﺪول 3-3 آﻣﺪه اﺳﺖ ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف و زﻳﺮﻛﻠﻤﺎت ﻓﺎرﺳﻲ در واﻗﻊ ﺑﺎ 114 ﺣﺮف ﻣﻮاﺟﻪ ﻫﺴـﺘﻴﻢ. ﺣﺮوف ﻣﻲﺗﻮاﻧﻨﺪ از ﻧﻈﺮ ﺗﻌﺪاد ﻧﻘﺎط ﻧﻴﺰ ﺑﻪ ﭼﻨﺪ ﮔﺮوه ﺗﻘﺴﻴﻢ ﺷﻮﻧﺪ.

3-1-1-2-       از ﻧﻈﺮ ﺗﻌﺪاد ﻧﻘﺎط

ﻧﻘﻄﻪ در زﺑﺎن ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ از اﻫﻤﻴﺖ وﻳﮋه­اي ﺑﺮﺧﻮردار اﺳﺖ. 56% ﺣﺮوف ﻓﺎرﺳﻲ داراي ﻧﻘﻄﻪ ﻣﻲﺑﺎﺷﻨﺪ. ﺣﺮوف ﻧﻘﻄﻪ دار ﻧﻴﺰ ﺑﺮ ﺳﻪ ﻧﻮعِ ﻳﻚ، دو و ﺳﻪ ﻧﻘﻄﻪاي ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ ﻛﻪ در ﺟﺪول 3-2 آورده ﺷﺪه اﺳﺖ.

جدول ‏3‑2 ﺗﻘﺴﻴﻢ ﺑﻨﺪي ﺣﺮوف ﺑﺮ اﺳﺎس ﺗﻌﺪاد ﻧﻘﺎط ﺣﺮوف

ﺑﺪون ﻧﻘﻄﻪ ا ﺎ ح ﺢ ﺣ ـﺤ د ﺪ ر ﺮس ﺲ ﺳ ﺴ ص ﺺ ﺻ ﺼ ط ﻂ ﻇ ﻇ ع ﻊ ﻋ ﻌ ک ک ﻛ ﻜ گ ﮓ ﮔ ﮕ ل ﻞ ﻟ ﻠ م ﻢ ﻣ ﻤ ه ﻪ ﻫ ﻬ و ﻮ ی ی 50 ﺣﺮف
ﺗﻚ ﻧﻘﻄﻪاي ب ﺐ ﺑ ﺒ ج ﺞ ﺟ ﺠ خ ﺦ ﺧ ﺨ ذ ﺬ ز ﺰ ﺾ ﺿ ﻀ ظ ﻆ ط ط غ ﻎ ﻏ ﻐ ف ﻒ ﻓ ﻔ ن ﻦ ﻧ ﻨ 36 ﺣﺮف
دو ﻧﻘﻄﻪاي ت ﺖ ﺗ ﺘ ق ﻖ ق ﻘ ﻳ ﻴ 10 ﺣﺮف
ﺳﻪ ﻧﻘﻄﻪاي پ ﭗ ﭘ ﭙ ث ﺚ ﺛ ﺜ چ ﭻ ﭼ ﭽ ژ ﮋ ش ﺶ ﺷ ﺸ 18 ﺣﺮف

ﻳﻚ ﺗﻘﺴﻴﻢﺑﻨﺪي دﻳﮕﺮ ﻧﻴﺰ از ﻧﻈﺮ ﻣﻮﻗﻌﻴﺖ ﻧﻘﺎط ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ ﻛﺮﺳﻲ وﺟﻮد دارد ﻛﻪ ﻳﻜـﻲ از اﻃﻼﻋـﺎت ﻣﻬـﻢ ﺑـﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف اﺳﺖ.

جدول ‏3‑3 دﺳﺘﻪ ﺑﻨﺪي ﺣﺮوف از ﻧﻈﺮ ﻣﻮﻗﻌﻴﺖ در زﻳﺮﻛﻠﻤﻪ

ﺣﺮوف ﺟﺪا ﺣﺮوف اول ﺣﺮوف وﺳﻂ ﺣﺮوف آﺧﺮ
ا
ب
پ
ت
ث
ج
چ
ح
خ
د
ذ
ر
ز
ژ
س
ش
ص
ض ﺿ
ط ط
ظ ظ
ع
غ
ف
ق
ک
گ
ل
م
ن
و
ه
ی ﯿ
32 ﺣﺮف 25 ﺣﺮف 25 ﺣﺮف 32 ﺣﺮف
ﻣﺠﻤﻮع ﺣﺮوف 114

3-1-1-3-       ﻣﻮﻗﻌﻴﺖ ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ ﻛﺮﺳﻲ

ﺣﺮوف ﺑﺮاي ﺳﺎﺧﺘﻦ زﻳﺮﻛﻠﻤﺎت و ﻛﻠﻤﺎت روي ﺧﻂ ﻛﺮﺳﻲ ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ وﻟﻲ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺷﻜﻞ ﺣﺮف ﺗﻌﺪاد ﭘﻴﻜﺴـل ﻫﺎﻳﻲ ﻛﻪ ﺑﺎﻻ ﻳﺎ ﭘﺎﻳﻴﻦ ﺧﻂ ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ، اﻫﻤﻴﺖ ﭘﻴﺪا ﻣﻲﻛﻨﻨﺪ و ﻣﻲﺗﻮاﻧﻨﺪ ﻳﻜﻲ از ﻣﻌﻴﺎرﻫﺎ ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﺑﺎﺷﻨﺪ. از اﻳﻦ رو ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺧﻂ ﻛﺮﺳﻲ ﺣﺮوف ﺑﻪ دو دﺳﺘﻪ ﻣﺎﻧﻨﺪ ﺟﺪول 3-4 ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ.

جدول ‏3‑4 دﺳﺘﻪ ﺑﻨﺪي ﺣﺮوف از ﻧﻈﺮ ﻣﻮﻗﻌﻴﺖ ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ ﻛﺮﺳﻲ

ﺑﺎﻻي ﺧﻂ ا ﺎ ب ﺐ ﺑ ـﺒ پ ﭗ ﭘ ﭙ ت ﺖ ﺗ ﺘ ث ﺚ ﺛ ﺜ ﺟ ﺠ ﭼ ﭽ ﺣ ﺤ ﺧ ﺨ د ﺪ ذ ﺬ ﺳ ﺴ ﺷ ﺸ ﺻ ﺼ ﺿ ﻀ ط ﻄ ظ ﻆ ﻋ ﻌ ﻏ ﻐ ف ﻒ ﻓ ﻔ ﻗ ﻘ ک ک ﻛ ﻜ گ ﮓ ﮔ ﮕ ﻟ ﻠ ﻣ ﻤ ﻧ ﻨ ه ﻪ ﻫ ﻬ ﻳ  ﯿ 67 ﺣﺮف
ﭘﺎﻳﻴﻦ ﺧﻂ ج ﺞ چ ﭻ ح ﺢ خ ﺦ ر ﺮ ز ﺰ  ژ ﮋ س ﺲ ش ﺶ ص ﺺ ض  ﺾ ع ﻊ غ ﻎ ق  ﻖ ل ﻞ م ﻢ نﻦ و ﻮ ى ﻰ 83 ﺣﺮف

ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﮔﻔﺘﻪ ﺷﺪ ﺗﻌﺪاد ﺣﺮوف ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ ﺗﺎ ﺣﺪودي زﻳﺎد اﺳﺖ و داراي اَﺷﻜﺎل ﻣﺨﺘﻠﻔﻲ ﻫﺴﺘﻨﺪ از اﻳﻦ رو اﻳﻦ زﺑﺎن ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﺑﺎ ﻣﺸﻜﻼﺗﻲ ﻣﻮاﺟﻪ اﺳﺖ. در ادامه به بررسی الگوریتم پیشنهادی می­پردازیم.

3-2- شمای کلی الگوریتم

در اﻳﻦ ﺑﺨﺶ ﺑﻪ بررﺳﻲ اﺟﻤﺎﻟﻲ الگورﻳﺘﻢِ ارائه شده ﻣﻲﭘﺮدازﻳﻢ.

شکل ‏3‑1 شمای کلی الگوریتم پیشنهادی

ﺑﺨﺶﻫﺎي ﻣﺨﺘﻠﻒ اﻳﻦ ﺳﻴﺴﺘﻢ ﻋﺒﺎرﺗﻨﺪ از:

  • ﭘﻴﺶ ﭘﺮدازش
  • ﺗﺒﺪﻳﻞ ﺑﻪ ﺗﺼﻮﻳﺮ ﺑﺎﻳﻨﺮي
  • ﻓﻴﻠﺘﺮ ﻛﺮدن ﺗﺼﻮﻳﺮ
  • ﺗﻌﻴﻴﻦ اﻧﺪازه ﻗﻠﻢ
  • ﻧﺮﻣﺎل ﻛﺮدن ﺗﺼﻮﻳﺮ
  • ﭘﺮدازش اﺻﻠﻲ
  • ﺗﻌﻴﻴﻦ ﺧﻂ زﻣﻴﻨﻪ
  • ﺷﻨﺎﺳﺎﻳﻲ ﻣﻜﺎن و ﺗﻌﺪاد ﻧﻘﺎط در زﻳﺮﻛﻠﻤﺎت
  • ﻧﺎزكﺳﺎزي
  • ﺷﻨﺎﺳﺎﻳﻲ ﻣﻨﺤﻨﻲﻫﺎي ﺑﺴﺘﻪ در زﻳﺮﻛﻠﻤﺎت
  • اﺳﺘﺨﺮاج اﺳﺘﺮوكﻫﺎ
  • اﺳﺘﺨﺮاج ﺧﻄﻮط از اﺳﺘﺮوكﻫﺎ
  • ﺗﺒﺪﻳﻞِ ﺧﻄﻮط اﺳﺘﺮوكﻫﺎ ﺑﻪ ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺣﺮوف
  • ﺷﻨﺎﺳﺎﻳﻲ
  • ﺗﺸﻜﻴﻞ آراﻳﻪ ﺷﻨﺎﺳﺎﻳﻲ اﺳﺘﺮوكﻫﺎ ()SIV
  • ﺗﺸﻜﻴﻞ ﺑﺮدار ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺣﺮوف
  • اﺳﺘﺨﺮاج ﺣﺮوف

اﻳﻦ اﻟﮕﻮرﻳﺘﻢ از ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺣﺮوف[39] ﺑﺮاي ﺗﺸﺨﻴﺺ ﺣﺮوف اﺳﺘﻔﺎده ﻣﻲﻛﻨﺪ. در واﻗﻊ ﺣﺮوف ﻓﺎرﺳـﻲ/ﻋﺮﺑـﻲ از ﻗـﺮار ﮔﺮﻓﺘﻦ ﭼﻨﺪﻳﻦ ﻋﻨﺼﺮ در ﻛﻨﺎر ﻫﻢ ﺗﺸﻜﻴﻞ ﻣﻲﺷﻮﻧﺪ. اﻳـﻦ ﺳﻴﺴـﺘﻢ از ﺳـﻪ ﺑﺨﺶ اﺻﻠﻲ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ. ﺑﺨﺶ اول، ﭘﻴﺶﭘﺮدازش[40] ﻣﻲﺑﺎﺷﺪ. اﻳﻦ ﺑﺨﺶ ﻧﻘـﺶ ﻣﻬﻤـﻲ را در ﺳﻴﺴـﺘﻢ دارد ﭼﺮاﻛـﻪ ﻣﺒﻨﺎي ﻛﺎر ﺑﺮ اﻳﻦ ﺑﺨﺶ اﺳﺘﻮار ﺷﺪه اﺳﺖ. اﻳﻦ ﺑﺨﺶ ﻣﻌﻤﻮﻻً ﺑﻪ اﺻﻼح ﺗﺼﻮﻳﺮ ورودي ﻣﻲﭘﺮدازد. در ﺑﺨﺶ ﭘﻴﺶﭘﺮدازش ﺳﻌﻲ ﺑﺮ رﻓﻊ ﻣﺸﻜﻼت تصویر ﻣﻲﺷﻮد ﺗﺎ ﻳﻚ ﻣﺘﻦ ﻧﻮﺷﺘﺎري ﻣﻨﺎﺳﺐ ﺑﻪ دﺳﺖ آﻳﺪ.

در اﻳﻦ ﺑﺨﺶ ﻧﻮﻳﺰﻫﺎي ﻣﻮﺟﻮد ﻛﻪ ﻣﻤﻜﻦ اﺳﺖ در ﺗﺼﻮﻳﺮ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ و ﻛﻴﻔﻴﺖ ﺗﺼـﻮﻳﺮ را ﺧـﺮاب ﻛﻨـﺪ، ﺣـﺬف ﻣﻲﺷﻮد و ﻳﻚ ﺗﺼﻮﻳﺮ ﺑﺪون ﻧﻮﻳﺰ ﺑﻪ وﺟﻮد ﻣﻲآﻳﺪ. از اﻳﻦ ﺗﺼﻮﻳﺮ ﺑﺮاي ﺗﻌﻴﻴﻦ ﺧﻂ ﻛﺮﺳﻲ اﺳﺘﻔﺎده ﻣﻲﺷﻮد. ﺗﻌﻴﻴﻦ اﻳﻦ ﺧﻂ  ﻧﻘﺶ ﻣﻬﻤﻲ در ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف دارد. ﻫﻤﭽﻨﻴﻦ ﺑﺎ اﻳﻦ ﺗﺼﻮﻳﺮ اﻧﺪازه ﻗﻠﻢ ﻧﻴﺰ ﺗﺸﺨﻴﺺ داده ﻣﻲﺷﻮد ﻛﻪ ﻣﻲﺗﻮان ﺗﺼـﻮﻳﺮ را ﺑﻪ ﺣﺎﻟﺖ ﻧﺮﻣﺎل ﺗﺒﺪﻳﻞ ﻛﺮد.

در ادامه ﻧﺎزكﺳﺎزي صورت می گیرد. سپس، ﻣﺮﺣﻠﻪ اﺻﻠﻲ اﻳـﻦ ﺑﺨـﺶ ﻛﻪ اﺳﺘﺨﺮاج اﺳﺘﺮوكﻫﺎ ﻣﻲﺑﺎﺷﺪ اﻧﺠﺎم ﻣﻲﮔﻴﺮد. اﺳـﺘﺮوكﻫـﺎ ﺑـﺎ اﺳـﺘﻔﺎده از ﺗﺒـﺪﻳﻞ ﻫـﺎف و ﺑـﺎ ﻛﻤـﻲ ﺗﻐﻴﻴﺮات ﺑﺮ روي آن اﻧﺠﺎم ﻣﻲﮔﻴﺮد. ﺗﺒﺪﻳﻞ ﻫﺎف ﺗﺒﺪﻳﻞ ﻣﻨﺎﺳﺒﻲ ﺑﺮاي اﻧﺘﻘﺎل ﺗﺼﻮﻳﺮ ﺑﻪ ﻓﻀﺎي ﭘﺎراﻣﺘﺮي ﻣﻲﺑﺎﺷﺪ. در اﻳﻦ ﺑﺨﺶ ﺑﺎ ﺗﻌﻴﻴﻦ ﻧﻮع ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ و ﺑﺎ اﺳﺘﻔﺎده از ﻗﺎﻧﻮنﻫﺎي ﺑـﻪ ﻛـﺎر ﺑـﺮده ﺷـﺪه ﺑـﻪ ﺗﺸـﺨﻴﺺ ﺣـﺮوف ﭘﺮداﺧﺘﻪ ﻣﻲﺷﻮد. ﻣﻨﺤﻨﻲﻫﺎي ﺑﺴﺘﻪاي ﻛﻪ در ﺗﺼﻮﻳﺮ وﺟﻮد دارﻧﺪ ﻧﻴﺰ ﺷﻨﺎﺳﺎﻳﻲ ﻣﻲﺷﻮﻧﺪ ﭼﺮاﻛﻪ ﺧﻮد ﻳـﻚ ﻋﻨﺼـﺮ اﺑﺘـﺪاﻳﻲ ﺣﺮوف ﺑﻪ ﺣﺴﺎب ﻣﻲآﻳﻨﺪ. ﺧﺮوﺟﻲﻫﺎي اﻳﻦ ﻣﺮﺣﻠﻪ، ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف را ﺗﺸﻜﻴﻞ ﻣﻲدﻫﻨﺪ.

ﺣﺎل ﻳﻚ رﺷﺘﻪ از ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺣﺮوف ﺑﻪ دﺳﺖ آﻣﺪه اﺳﺖ و ﺑﺮاي ﻫﺮ ﻋﻨﺼﺮ ﻧﻴﺰ ﺗﻌﺪاد و ﻣﻮﻗﻌﻴﺖ ﻧﻘﺎط ﻧﻴﺰ ﻣﺸﺨﺺ اﺳﺖ. ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ دو داده، ﺑﺪون ﺟﺪاﺳﺎزي ﺣﺮوف، ﺑﻪ ﺗﺸﺨﻴﺺ ﺣﺮوف ﭘﺮداﺧﺘﻪ ﻣﻲﺷﻮد.

ﺟﺪاﺳﺎزي ﺣﺮوف ﭘﻴﻮﺳﺘﻪ ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ ﻳﻜﻲ از ﻣﻬﻤﺘﺮﻳﻦ و ﺳﺨﺖﺗﺮﻳﻦ ﻣﺮاﺣﻞ ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﭘﻴﻮﺳﺘﻪ ﻣﻲﺑﺎﺷـﺪ ﻛـﻪ ﻣﻘﺎﻻت زﻳﺎدي ﻧﻴﺰ در اﻳﻦ زﻣﻴﻨﻪ ﺑﻪ ﭼﺎپ رﺳﻴﺪه اﻧﺪ [37]. درﺻﺪ دﻗﺖ اﻳﻦ روشﻫﺎ ﺧﻴﻠﻲ ﺑﺎﻻ ﻧﻴﺴﺖ و ﻟﺬا ﺑﺮ ﻋﻤﻠﻜﺮد ﻛﻠﻲ  ﺳﻴﺴﺘﻢ ﻧﻴﺰ ﺗأﺛﻴﺮ ﺑﺴﺰاﻳﻲ ﻣﻲﮔﺬارد. ﺑﺎ ﺣﺬف اﻳﻦ ﻣﺮﺣﻠﻪ در اﻟﮕﻮرﻳﺘﻢ ﺣﺎﺿﺮ، ﻣﺸﻜﻼت ﻧﺎﺷﻲ از آن ﻧﻴﺰ از ﺑﻴﻦ رﻓﺘﻪ اﺳﺖ و ﻳﻚ ﻧﻘﻄﻪ ﻗﻮت ﻣﻬﻢ ﺑﻪ ﺣﺴﺎب ﻣﻲآﻳﺪ.

ﻋﻤﻠﻴﺎت ﺷﻨﺎﺳﺎﻳﻲ ﺑﺎ ﻣﻘﺎﻳﺴﻪ ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﺑﺎ ﺣﺮوف ﺟﺪا آﻏﺎز ﻣﻲﺷﻮد. اﮔﺮ اﻳـﻦ ﺑـﺮدار ﻳﻜـﻲ از ﺣـﺮوف ﺟـﺪا ﻧﺒﺎﺷﺪ ﭘﺲ ﺗﻌﺪاد ﺣﺮوف اﻳﻦ زﻳﺮ ﻛﻠﻤﻪ ﺑﺮاﺑﺮ ﻳﺎ ﺑﻴﺸﺘﺮ از دو ﺣﺮف ﻣﻲﺑﺎﺷﺪ. سپس از اﺑﺘﺪا و اﻧﺘﻬﺎي ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﺷﺮوع ﻣﻲﻛﻨﻴﻢ و ﺑﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺗﻌﺪاد و ﻣﻮﻗﻌﻴﺖ ﻧﻘﺎط ﺑﻪ ﺗﺸﺨﻴﺺ ﺣـﺮوف اول و آﺧﺮ ﻣﻲﭘﺮدازﻳﻢ. اﮔﺮ ﺗﻤﺎﻣﻲ ﻋﻨﺎﺻﺮ ﺣﺬف ﺷﻮﻧﺪ، زﻳﺮﻛﻠﻤﻪ دو ﺣﺮﻓﻲ ﺑﻮده و ﻋﻤﻠﻴﺎت ﺷﻨﺎﺳﺎﻳﻲ ﺗﻤﺎم ﻣـﻲﺷـﻮد در ﻏﻴـﺮاﻳﻦ ﺻﻮرت، ﻋﻨﺎﺻﺮ ﺑﺎﻗﻲﻣﺎﻧﺪه ﺑﺮاي ﻳﻚ ﺣﺮف وﺳﻂ اﺳﺖ ﻛﻪ ﺑﺎ ﻣﻘﺎﻳﺴﻪ ﺑﺎ ﺑﺮدارﻫـﺎي ﻋﻨﺎﺻـﺮ ﺣـﺮوف وﺳـﻂ، اﻳـﻦ ﺣـﺮف ﻧﻴـﺰ ﺷﻨﺎﺳﺎﻳﻲ ﻣﻲﺷﻮد.

3-3- ﻣﻌﺮﻓﻲ ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺣﺮوف

ﺑﺎ ﻣﻄﺎﻟﻌﻪ ﺑﺮ روي ﺣﺮوف ﻓﺎرﺳﻲ و ﻋﺮﺑﻲ ﻣﻲﺗﻮان درﻳﺎﻓﺖ ﻛﻪ اﻳﻦ ﺣﺮوف از ﻳﻚ ﻳﺎ ﺗﺮﻛﻴﺐ ﭼﻨﺪ ﺷﻜﻞ ﺧﺎص ﺑﻪ وﺟـﻮد آﻣﺪه­اﻧﺪ. ﺑﻪ اﻳﻦ ﺷﻜﻞﻫﺎي ﺧﺎص، ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﮔﻔﺘﻪ ﻣﻲﺷﻮد. در جدول ‏3‑5 اﻳﻦ ﻋﻨﺎﺻﺮ آورده ﺷﺪهاﻧﺪ.

جدول ‏3‑5 ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺣﺮوف ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ

ردیف شکل عنصر ابتدایی نام عنصر ابتدایی کد عنصر ابتدایی
1 Backslash B
2 Slash S
3 Vertical V
4 Horizontal H
5 D shape D
6 C shape C
7 U shape U
8 Circle O

عناﺻﺮ اﺑﺘﺪاﻳﻲ ﻛﻪ ﺣﺮوف ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ را ﺗﺸﻜﻴﻞ ﻣﻲدﻫﻨﺪ، 8 عنصر ﻣﻲﺑﺎﺷﻨﺪ. اﻳﻦ ﻫﺸﺖ عبارتند از:

Backslash: یک ﺧﻂ ﻣﻮرب ﺑﺎ زاوﻳﻪ 135 درﺟﻪ ﻛﻪ ﺑﺎ ﻛﺪ  Bﻣﺸﺨﺺ ﻣﻲﺷﻮد.

Slash: ﻳﻚ ﺧﻂ ﻣﻮرب ﺑﺎ زاوﻳﻪ 45 درﺟﻪ ﻛﻪ ﺑﺎ ﻛﺪ S ﻣﺸﺨﺺ ﻣﻲﺷﻮد.

Vertical: ﻳﻚ ﺧﻂ ﻋﻤﻮد ﺑﺎ زاوﻳﻪ 90 درﺟﻪ ﻛﻪ ﺑﺎ ﻛﺪ V ﻣﺸﺨﺺ ﻣﻲﺷﻮد.

Horizontal: یک ﺧﻂ اﻓﻘﻲ ﺑﺎ زاوﻳﻪ ﺻﻔﺮ ﻛﻪ ﺑﺎ ﻛﺪ H مشخص ﻣﻲﺷﻮد.

 D shape: ﻳﻚ منحنی ﻛﻪ دﻫﺎﻧﻪ آن ﺑﻪ ﺳﻤﺖ چپ ﻣﻲﺑﺎﺷﺪ و ﺑﺎ ﻛﺪD  مشخص ﻣﻲﺷﻮد.

 C shape: ﻳﻚ منحنی ﻛﻪ دﻫﺎﻧﻪ آن ﺑﻪ ﺳﻤﺖ راﺳﺖ ﻣﻲﺑﺎﺷﺪ و ﺑﺎ ﻛﺪ C مشخص می­شود.

 U shape: ﻳﻚ منحنی ﻛﻪ دﻫﺎﻧﻪ آن ﺑﻪ ﺳﻤﺖ باﻻ ﻣﻲﺑﺎﺷﺪ و ﺑﺎ ﻛﺪ U ﻣﺸﺨﺺ می­شود.

 Circle: ﻳﻚ منحنی ﺑﺴﺘﻪ ﻛﻪ ﺑﺎ ﻛﺪ O ﻣﺸﺨﺺ ﻣﻲﺷﻮد.

3-4- مرحله پیش پردازش

اولین مرحله از سیستم OCR پیش پردازش است. همانطور که از اسم آن برمی­آید، شامل عملیاتی است که بر روی تصویر ورودی انجام داده می­شود تا یک تصویر مناسب برای شناسایی حاصل شود. از این رو از اهمیت ویژه ای برخوردار است. مهم بودن آن به نحوی است که تاکنون کارهای زیادی در این زمینه چه در زبان فارسی/عربی و چه در زبان های دیگر، انجام گرفته است. شکل ‏3‑2 بلوک دیاگرام این مرحله را نشان می دهد.

ﺗﺼﻮﻳﺮ ورودي را ﻣﻲﺗﻮان از ﻳﻚ دورﺑﻴﻦ ﻳﺎ اﺳﻜﻨﺮ درﻳﺎﻓﺖ ﻛﺮد. در اﻳﻦ ﭘﺮوژه ﻓﺮض ﺑﺮ آن اﺳﺖ ﻛـﻪ ﺗﺼـﻮﻳﺮ ورودي از ﻃﺮﻳﻖ ﻳﻚ اﺳﻜﻨﺮ ﺑﺎ ﻛﻴﻔﻴﺖ ﻣﻨﺎﺳﺐ درﻳﺎﻓﺖ ﻣﻲﺷﻮد وﻟﻲ ﻣﻤﻜﻦ اﺳﺖ در ﺣﻴﻦ اﺳﻜﻦ ﻛﺮدن، ﺑـﺎ وﺟـﻮد ﻧﻮﻳﺰ از ﻛﻴﻔﻴﺖ ﺗﺼـﻮﻳﺮ روي ﺗﺼﻮﻳﺮ ﻛﺎر ﻛﺮد اﺑﺘﺪا ﺑﺎﻳﺪ آن را ﺑﻪ ﻳﻚ ﺗﺼﻮﻳﺮِ ﺑﺎﻳﻨﺮي ﺗﺒﺪﻳﻞ ﻛﺮد.

شکل ‏3‑2 بخش های مرحله پیش پردازش

3-4-1-              ﺗﺒﺪﻳﻞ ﺗﺼﻮﻳﺮ ﺑﻪ ﻳﻚ ﺗﺼﻮﻳﺮ ﺑﺎﻳﻨﺮي

ﺗﺼﻮﻳﺮ ورودي ﺑﻪ ﺻﻮرت grayscale ﻣﻲﺑﺎﺷﺪ. ﻳﻚ ﺗﺼﻮﻳﺮ ﺧﺎﻛﺴﺘﺮي، ﻣﺎﺗﺮﻳﺴـﻲ از دادهﻫـﺎﻳﻲ اﺳـﺖ ﻛـﻪ ﻣﻘﺪارﺷـﺎن ﺑﻴﺎﻧﮕﺮ روﺷﻨﺎﻳﻲ آن ﭘﻴﻜﺴﻞ در ﻳﻚ ﻣﺤﺪوده ﺧﺎص ﻣﻲﺑﺎﺷﺪ. در ﻧﺮم اﻓﺰار ﻣﺘﻠﺐ ﺗﺼﻮﻳﺮ ورودي ﺑﻪ اﻳﻦﺻﻮرت ﻣﻲﺑﺎﺷﺪ. شکل ‏3‑3 ﻳﻚ ﺗﺼﻮﻳﺮ ﺧﺎﻛﺴﺘﺮي و ﻗﺴﻤﺘﻲ از ﻣﻘﺎدﻳﺮ ﻣﺎﺗﺮﻳﺲ آن را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ.

شکل ‏3‑3 ﻳﻚ ﺗﺼﻮﻳﺮ ﺧﺎﻛﺴﺘﺮي و ﻗﺴﻤﺘﻲ از ﻣﻘﺎدﻳﺮ ﻣﺎﺗﺮﻳﺲِ آن

ﺑﺮاي اﻳﻨﻜﻪ اﻳﻦ ﺗﺼﻮﻳﺮ را ﺑﻪ ﺻﻮرت ﺑﺎﻳﻨﺮي ﺗﺒﺪﻳﻞ ﻛﻨﻴﻢ از دﺳﺘﻮر im2bw در ﻧﺮم اﻓـﺰار ﻣﺘﻠـﺐ اﺳـﺘﻔﺎده ﻣـﻲﻛﻨـﻴﻢ.  دﺳﺘﻮر ) BW = im2bw(I, level ﺗﺼﻮﻳﺮ ورودي «I» را اﮔﺮ ﺑﻪ ﺻﻮرت ﺧﺎﻛﺴﺘﺮي ﻧﺒﺎﺷﺪ، اﺑﺘﺪا ﺑﻪ اﻳـﻦ ﻓﺮﻣـﺖ ﺗﺒـﺪﻳﻞ ﻣﻲﻛﻨﺪ ﺳﭙﺲ آن را ﺑﻪ ﺗﺼﻮﻳﺮ ﺑﺎﻳﻨﺮي ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ. اﻳﻦ دﺳﺘﻮر، ﭘﻴﻜﺴﻞﻫﺎﻳﻲ را ﻛﻪ ﺷﺪت ﻧﻮر آﻧﻬﺎ ﺑﻴﺸﺘﺮ از  level ﻣﻲ ﺑﺎﺷﺪ ﺑﻪ ﻣﻘﺪار 1 (ﺳﻔﻴﺪ) و ﺑﻘﻴﻪ را ﺑﻪ 0 (ﺳﻴﺎه) ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨـﺪ. ﻣﻘـﺪار level ﻧﻴـﺰ ﻋـﺪدي اﺳـﺖ در ﺑـﺎزه [1و0] که با تابع graythreshold تعیین می شود. ﺣـﺎل ﺗﺼﻮﻳﺮي دارﻳﻢ ﻛﻪ ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎي آن ﺑﻪ ﺻﻮرت ﺑﺎﻳﻨﺮي ﺗﻌﺮﻳﻒ ﺷﺪه­اﻧﺪ ﺑﻨﺎﺑﺮاﻳﻦ ﻛﺎرﻫﺎي رﻗﻤﻲ زﻳﺎدي را ﻣﻲﺗـﻮان ﺑـﻪ راﺣﺘﻲ ﺑﺮ روي آن اﻧﺠﺎم داد. ﺗﻌﻴﻴﻦ اﻧﺪازه ﻗﻠﻢ و ﺑﻪ دﺳﺖ آوردنِ ﺗﺼﻮﻳﺮ ﻧﺮﻣﺎل از ﺟﻤﻠﻪ اﻳﻦ ﻛﺎرﻫﺎ اﺳﺖ.

3-4-2-               ﻓﻴﻠﺘﺮ ﻛﺮدن ﺗﺼﻮﻳﺮ

ﻫﻤﺎﻧﻄﻮر ﻛﻪ در شکل ‏3‑4 ﻧﺸﺎن داده ﺷﺪه اﺳﺖ، ﺗﺼﻮﻳﺮ سمت چپ ﻛﻪ ﺗﺼﻮﻳﺮ ورودي ﺑﻪ ﺳﻴﺴـﺘﻢ ﻣـﻲﺑﺎﺷـﺪ ﻣﻤﻜـﻦ اﺳـﺖ داراي ﻧﻮﻳﺰ ﻧﺎﺷﻲ از ﻛﻴﻔﻴﺖ ﺑﺪ اﺳﻜﻨﺮ ﺑﺎﺷﺪ. ﺑﻨﺎﺑﺮاﻳﻦ ﺑﺎﻳﺪ اﻳﻦ ﺗﺼﻮﻳﺮ ﺑﺎ ﻳﻚ ﻓﻴﻠﺘﺮ ﻣﻨﺎﺳﺐ، ﻓﻴﻠﺘﺮ ﺷﻮد. ﻣﺸﺨﺼﺎت اﻳﻦ ﻓﻴﻠﺘﺮ ﺑﺎﻳﺪ داراي ﻣﻮارد زﻳﺮ ﺑﺎﺷﺪ:

  • ﻧﻘﺎط ﺣﺮوف را از ﺑﻴﻦ ﻧﺒﺮد.
  • ﻟﺒﻪﻫﺎي ﺗﺼﻮﻳﺮ را ﺧﺮاب ﻧﻜﻨﺪ.
  • ﺗﺼﻮﻳﺮ را ﻣﺎت ﻧﻜﻨﺪ.

ﻣﻌﻤﻮﻻً از ﻓﻴﻠﺘﺮﻫﺎﻳﻲ اﺳﺘﻔﺎده ﻣﻲﺷﻮد ﻛﻪ ﺑﺎﻋﺚ ﻣﺎت ﺷﺪن ﺗﺼﻮﻳﺮ ﻣﻲﺷﻮد وﻟﻲ ﺑﺎ اﻳﻦ ﻛﺎر اﻃﻼﻋﺎت اﺻـﻠﻲ ﺗﺼـﺎوﻳﺮ از بین ﻣﻲرود و ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف را ﺑﺎ ﻣﺸﻜﻞ ﻣﻮاﺟﻪ ﻣﻲﻛﻨﺪ. در اﻳﻦ ﭘﺮوژه از ﻓﻴﻠﺘﺮ
[41]medfilt2در ﻧﺮم اﻓـﺰار MATLAB اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ. اﻳﻦ ﻓﻴﻠﺘﺮ ﻳﻚ ﻋﻤﻠﻴﺎت ﻏﻴﺮﺧﻄﻲ اﺳﺖ ﻛﻪ ﻣﻌﻤﻮﻻً در ﭘﺮوژهﻫـﺎي ﭘـﺮدازش ﺗﺼـﻮﻳﺮ و ﺑـﺮاي رﻓـﻊ ﻧـﻮﻳﺰ «salt and pepper» استفاده ﻣﻲﺷﻮد. زﻣﺎﻧﻲ ﻛﻪ ﻫﺪف ﻛﺎﻫﺶ ﻫﻢزﻣﺎن ﻧﻮﻳﺰ و ازﺑﻴﻦ ﻧﺮﻓﺘﻦِ ﻟﺒﻪﻫﺎ اﺳـﺖ، ﻓﻴﻠﺘـﺮ ﻣﻴﺎﻧـﻪ ﻣﻨﺎﺳﺐﺗﺮ از ﻛﺎﻧﻮﻟﻮﺷﻦ ﻋﻤﻞ ﻣﻲﻛﻨﺪ.
B=medfilt2 (A, [m n]) ﻓﻴﻠﺘﺮ ﻣﻴﺎﻧـﻪ را ﺑـﺮ روي ﻣـﺎﺗﺮﻳﺲ A و در دو ﺑﻌـﺪ اﻧﺠﺎم ﻣﻲدﻫﺪ. ﻫﺮ ﭘﻴﻜﺴﻞ ﺧﺮوﺟﻲ ﻣﻘﺪار ﻣﻴﺎﻧﻪ ﭘﻴﻜﺴﻞﻫﺎي ﻫﻤﺴﺎﻳﮕﻲ ﺧﻮد ﻣﻲﺑﺎﺷﺪ [38].

ﭼﻮن ﺗﺼﻮﻳﺮ را در ﻣﺮﺣﻠﻪ اول ﺑﻪ ﺗﺼﻮﻳﺮ ﺑﺎﻳﻨﺮي ﺗﺒﺪﻳﻞ ﻛﺮده­اﻳﻢ ﺑﻨﺎﺑﺮاﻳﻦ ﻧﻮﻳﺰﻫـﺎﻳﻲ ﻛـﻪ وﺟـﻮد دارﻧـﺪ ﻣﻄﻤﺌﻨـﺎً از ﻧـﻮع «salt and pepper» ﻣﻲ­ﺑﺎﺷﻨﺪ ﻛﻪ ﺑﺎ اﻳﻦ ﻓﻴﻠﺘﺮ از ﺑﻴﻦ ﻣﻲروﻧﺪ.

شکل ‏3‑4- ﺗﺼﻮﻳﺮ ورودي و ﻧﺘﻴﺠﻪ ﺗﺼﻮﻳﺮ ﻓﻴﻠﺘﺮ ﺷﺪه

3-4-3-              ﺗﻌﻴﻴﻦ اﻧﺪازه ﻗﻠﻢ و ﻧﺮﻣﺎل ﻛﺮدن ﺗﺼﻮﻳﺮ ورودي

اﮔﺮ اﻧﺪازه ﻗﻠﻢ ﻣﻮرد اﺳﺘﻔﺎده در ﺗﺼﻮﻳﺮ ورودي از ﻳﻚ ﻣﻘﺪار ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ، ﻋﻤﻠﻴﺎت ﺷﻨﺎﺳﺎﻳﻲ را ﺑﺎ ﻣﺸﻜﻞ ﻣﻮاﺟـﻪ ﻣـﻲﺳﺎزد. ﺑﺮاي اﻳﻨﻜﻪ ﺑﺘﻮان ﺣﺮوف ﺑﺎ اﻧﺪازه ﻗﻠﻢﻫﺎي ﻣﺘﻔﺎوت را ﺗﺸﺨﻴﺺ داد ﺑﺎﻳﺪ ﺑﺘﻮان از ﺗﺼـﻮﻳﺮ ورودي، ﻳـﻚ ﺗﺼـﻮﻳﺮ ﻧﺮﻣـﺎل ﺳﺎﺧﺖ و ﻗﻮاﻧﻴﻦ را ﺑﺮ روي اﻳﻦ ﺗﺼﻮﻳﺮ اﻋﻤﺎل ﻛﺮد.

ﺑﺮاي ﻧﺮﻣﺎلﺳﺎزي ﺗﺼﻮﻳﺮ ﺑﺎﻳﺪ ﺑﺘﻮاﻧﻴﻢ اﻧﺪازه ﻗﻠﻢ ﺗﺼﻮﻳﺮ را بدﺳﺖ آورﻳﻢ. ﺑﺮاي اﻳﻦ ﻛـﺎر از ﻣﻴﺎﻧـﻪ اﺳـﺘﻔﺎده ﻣـﻲﻛﻨـﻴﻢ. روش ﻛﺎر ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ اﺑﺘﺪا ﻣﺠﻤﻮع ﻣﻘﺎدﻳﺮ ﺳﺘﻮنﻫﺎي ﻣﺎﺗﺮﻳﺲ ﺷﻜﻞ ورودي را ﺣﺴﺎب ﻣﻲﻛﻨﻴﻢ و ﻣﻘـﺎدﻳﺮي را ﻛﻪ ﺻﻔﺮ ﻫﺴﺘﻨﺪ ﺣﺬف ﻣﻲﻛﻨﻴﻢ ﺳﭙﺲ ﻣﻴﺎﻧﻪ آراﻳﻪ ﺑﺪﺳﺖ آﻣﺪه را ﺣﺴﺎب ﻣﻲﻛﻨﻴﻢ. اﻳﻦ ﻣﻘﺪار ﻫﻤﺎن اﻧﺪازه ﻗﻠﻢ ﻣﺘﻦ ﻣـﻲ­ﺑﺎﺷﺪ. اﻟﺒﺘﻪ اﻳﻦ ﻣﻘﺪار، اﻧﺪازه ﻗﻠﻢ واﻗﻌﻲ ﻧﻤﻲﺑﺎﺷﺪ وﻟﻲ ﺑﺮاي ﻧﺮﻣﺎلﺳﺎزي ﺗﺼﻮﻳﺮ، می­توان آنرا به کار برد.

ﺗﺼﻮﻳﺮ ﺑﺎﻳﻨﺮي را ﺑﺎ اﺳﺘﻔﺎده از اﻧﺪازه ﻗﻠﻢ ﺑﺪﺳﺖ آﻣﺪه، ﺑﻪ ﺗﺼﻮﻳﺮ ﻧﺮﻣﺎل ﺗﺒـﺪﻳﻞ ﻣـﻲﻛﻨـﻴﻢ. ﺑـﺮاي اﻳـﻦ ﻛـﺎر از دﺳـﺘﻮر  imresizeدر ﻧﺮم اﻓﺰار ﻣﺘﻠﺐ اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ. در دﺳﺘﻮر ) B = imresize(A, scale ﺗﺼﻮﻳﺮ ورودي «A» ﻣﻲﺗﻮاﻧﺪ از ﻫﺮ ﻧﻮﻋﻲ ﺑﺎﺷﺪ. اﻧﺪازه اﻳﻦ ﺗﺼﻮﻳﺮ ﺑﺎ ﻣﻘﺪار scale ﺗﻐﻴﻴﺮ ﻣﻲﻛﻨﺪ. اﮔﺮ ﻣﻘﺪار scale ﻛﻤﺘﺮ از ﻳﻚ ﺑﺎﺷﺪ، ﺗﺼﻮﻳﺮ ﻛﻮﭼﻜﺘﺮ و در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﺗﺼﻮﻳﺮ ﺑﺰرگﺗﺮ ﻣﻲﺷﻮد. ﺑﺮاي اﻳﻨﻜﻪ ﻣﻘﺪار scale را ﻣﺸﺨﺺ ﻛﻨﻴﻢ از راﺑﻄﻪ (3-1) اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ.

Normal_image=imresize (Main_image, 40/T)                                                (3-1)

در راﺑﻄﻪ (3-1) ﻣﻘﺪاري ﻛﻪ ﺑﺮاي scale اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ، 40/T ﻣﻲﺑﺎﺷﺪ ﻛﻪ T درآن ﻫﻤﺎن اﻧﺪازه ﻗﻠﻢ ﻣﻲﺑﺎﺷـﺪ.  اﻳﻦ راﺑﻄﻪ ﺑﻪ ﺻﻮرت ﺗﺠﺮﺑﻲ ﺑﻪ دﺳﺖ آﻣﺪه اﺳﺖ.

شکل ‏3‑5 ﻳﻚ ﻧﻤﻮﻧﻪ از اﻧﺪازه واﻗﻌﻲ ﺗﺼﻮﻳﺮ و ﻧﺮﻣﺎل ﺷﺪه آن را ﻧﺸﺎن ﻣﻲدﻫﺪ.

شکل ‏3‑5 ﺑﺎ دﺳﺘﻮر  imresize و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻋﺮض ﻗﻠﻢ (اﻧﺪازه ﻗﻠﻢ) ﺗﺼﻮﻳﺮ ﻧﺮﻣﺎل ﺷﺪه اﺳﺖ

3-5- ﻣﺮﺣﻠﻪ ﭘﺮدازش اﺻﻠﻲ

قسمت اﺻﻠﻲ پروژه در ﻣﺮﺣﻠﻪ ﭘﺮدازش اﺻﻠﻲ اﻧﺠﺎم ﻣﻲﭘﺬﻳﺮد. شکل ‏3‑6 ﻣﺮاﺣﻞ ﭘﺮدازش اﺻﻠﻲ را ﻧﺸﺎن می دهد.

شکل ‏3‑6- مراحل پردازش اصلی

پس از اینکه تصویر در ﻣﺮﺣﻠﻪ پیش ﭘﺮدازش، ﺑﻪ ﻳﻚ ﺗﺼﻮﻳﺮ مناﺳﺐ ﺑـﺮاي شناسـﺎﻳﻲ ﺣـﺮوف تبدیل ﺷـﺪ، وارد اﻳـﻦ مرحله می شود. در این مرحله پس از نازكﺳﺎزي ﺑﺎ اﺳﺘﻔﺎده از تبدیل ﻫﺎف اﺻﻼح ﺷﺪه، وﻳﮋﮔﻲﻫﺎي آﻧﻬﺎ و ﺑﺎﻻﺧﺮه ﺣﺮوف، ﺷﻨﺎﺳﺎﻳﻲ می­شوند. در ادامه به بررسی هر یک از اجزای این مرحله می­پردازیم.

3-5-1-              شناسایی خط زمینه

به منظور شناسایی خط زمینه از نمای ﻋﻤﻮدي ﺗﺼﻮﻳﺮ[42] اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ. ﺑـﺮاي اﻳﻦ ﻛﺎر ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎي ﺳﻴﺎه را ﺑﻪ ﺳﻤﺖ ﭼﭗ ﺷﻴﻔﺖ ﻣﻲدﻫﻴﻢ. ﺑـﻪ اﻳـﻦ ﺗﺮﺗﻴـﺐ نمای عمودی تعداد پیکسل­های هر ردیف را نشان می­دهد. در جایی که که بیشترین پیکسل های سیاه را داشته باشند یا به عبارت دیگر نمای عمودی ماکزیمم مقدار خود را داشته باشد، خط زمینه را خواهیم داشت.

3-5-2-              ﺷﻨﺎﺳﺎﻳﻲ ﻣﻜﺎن و ﺗﻌﺪاد ﻧﻘﺎط در زﻳﺮ ﻛﻠﻤﻪ

ﺣﺎل ﻛﻪ خط زمینة زﻳﺮﻛﻠﻤﻪ اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ، ﺑﺎﻳﺪ ﺑﺘﻮاﻧﻴﻢ ﺗﻌﺪاد و ﻣﻮﻗﻌﻴﺖ ﻧﻘﺎط آن را ﭘﻴﺪا ﻛﻨﻴﻢ ﭼﺮا ﻛـﻪ ﭘـﺲ از ﻣﺮﺣﻠﻪ ﻧﺎزكﺳﺎزي، ﺑﻪ ﻋﻠﺖ ﺗﺒﺪﻳﻞ ﺷﻜﻞ زﻳﺮﻛﻠﻤﻪ ﺑﻪ ﺑﺪﻧﻪ اﺻﻠﻲ آن، ﺗﺸﺨﻴﺺ ﺗﻌﺪاد ﻧﻘﺎط ﺑﻪ درﺳﺘﻲ اﻧﺠﺎم ﻧﺨﻮاﻫﺪ ﺷﺪ.

ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻦﻛﻪ ﻧﻘﺎط ﺣﺮوف از ﺑﺪﻧﻪ اﺻﻠﻲِ آن ﺟﺪا ﻫﺴﺘﻨﺪ اﺑﺘﺪا ﺑﺎﻳﺪ ﭘﻴﻜﺴﻞﻫﺎي ﺳﻴﺎه زﻳﺮﻛﻠﻤﻪ را ﺑﺮﭼﺴﺐ ﺑﺰﻧﻴﻢ. ﺑﻪ اﻳﻦ ﺻﻮرت ﻛﻪ ﺑﺪﻧﻪ اﺻﻠﻲ زﻳﺮﻛﻠﻤﻪ ﺑﺮﭼﺴﺐ 1 و ﺑﻪ ﺗﺮﺗﻴﺐ دﻳﮕﺮ ﭘﻴﻜﺴﻞﻫﺎي ﺟﺪا از آن ﺑﺮﭼﺴﺐﻫﺎي 2، 3 و … را ﺑﻪ ﺧﻮد اﺧﺘﺼﺎص ﻣﻲدﻫﻨﺪ. ﺑﺮاي اﻳﻦ ﻛﺎر از دﺳﺘﻮر bwlable از ﻧﺮم اﻓﺰار ﻣﺘﻠﺐ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ. ﻛﺎر اﻳـﻦ زﻳﺮﺑﺮﻧﺎﻣـﻪ ﺑـﻪ اﻳـﻦ ﺻﻮرت اﺳﺖ ﻛﻪ از ﺳﺘﻮن ﺳﻤﺖ ﭼﭗ و ردﻳﻒ اول ﺑﻪ ﺷﻨﺎﺳﺎﻳﻲ ﭘﻴﻜﺴﻞﻫﺎي 1 (ﺳﻴﺎه) ﻣﻲﭘﺮدازد. ﺑﻪ اوﻟﻴﻦ ﭘﻴﻜﺴﻞِ ﺳﻴﺎﻫﻲ ﻛﻪ ﺑﺮﺧﻮرد ﻣﻲﻛﻨﺪ ﺑﺮﭼﺴﺐ 1 ﻣﻲدﻫﺪ و ﺑﻪ ﺗﺮﺗﻴﺐ ﻫﻤﺴﺎﻳﮕﻲﻫﺎي ﻫﺸﺘﮕﺎﻧﻪ آﻧﻬﺎ ﺑﺎ ﻫﻤﻴﻦ ﺑﺮﭼﺴﺐ، ﻣﺸﺨﺺ ﻣﻲﻛﻨـﺪ. ﺑـﻪ اﻳﻦ ﺗﺮﺗﻴﺐ ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎي ﻣﺘﺼﻞ ﺑﺮﭼﺴﺐ 1 ﻣﻲﺧﻮرﻧﺪ. ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴـﻞﻫـﺎي ﻣﺘﺼـﻞ ﺑـﻪ ﻫـﻢ ﺑﺮﭼﺴـﺐ ﺧﻮردﻧﺪ، از ﺗﺼﻮﻳﺮ اﺻﻠﻲ ﺣﺬف ﻣﻲﺷﻮﻧﺪ و اﻳﻦ ﻛﺎر دوﺑﺎره ﺑﺮ روي ﺗﺼﻮﻳﺮ ﺑﺎﻗﻲ ﻣﺎﻧﺪه اﻧﺠﺎم ﻣﻲﺷﻮد و اﻳﻦﺑﺎر ﺑﻪ ﭘﻴﻜﺴﻞﻫﺎي ﻣﺘﺼﻞ، ﺑﺮﭼﺴﺐ 2 اﺧﺘﺼﺎص داده ﻣﻲﺷﻮد. اﻳﻦ روﻧﺪ ﺗﺎ ﺣﺬف ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎ اداﻣﻪ ﭘﻴﺪا ﻣﻲﻛﻨﺪ.

ﺣﺎل ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺪاد ﭘﻴﻜﺴﻞﻫﺎي ﻣﻮﺟﻮد در ﻫﺮ ﺑﺮﭼﺴﺐ، ﻛﻮﭼﻜﺘﺮﻳﻦ ﻋﺪد ﺑﻪ آن اﺧﺘﺼﺎص ﻣـﻲﻳﺎﺑـﺪ. ﺑـﺪﻳﻦ ﺗﺮﺗﻴـﺐ ﺑﻴﺸﺘﺮﻳﻦ ﻣﺤﺪوده ﭘﻴﻜﺴﻞﻫﺎي ﻣﺘﺼﻞ ﺑﻪ ﻫﻢ ﺑﺮﭼﺴﺐ 1 و ﻫﻤﻴﻦﻃﻮر ﺑﺮﭼﺴﺐﻫﺎي دﻳﮕﺮ اﺧﺘﺼﺎص داده ﻣﻲﺷﻮﻧﺪ.

ﭼﻮن ﺑﺪﻧﻪ اﺻﻠﻲ زﻳﺮﻛﻠﻤﻪ ﺑﻴﺸﺘﺮﻳﻦ ﺗﻌﺪاد ﭘﻴﻜﺴﻞ را ﺑﻪ ﺧﻮد اﺧﺘﺼﺎص ﻣﻲدﻫﺪ ﺑﺮﭼﺴﺐ 1 را ﺑﻪ ﺧـﻮد اﺧﺘﺼـﺎص داده اﺳﺖ ﺑﻨﺎﺑﺮاﻳﻦ ﺑﺎ ﺣﺬف ﭘﻴﻜﻞﻫﺎي ﺑﺮﭼﺴﺐ 1 و ذﺧﻴﺮهﺳﺎزي آن در ﻳﻚ ﻣﺎﺗﺮﻳﺲ دﻳﮕﺮ، ﺑﺪﻧﻪ اﺻﻠﻲ و ﻧﻘﺎط از ﻳﻜﺪﻳﮕﺮ ﺟـﺪا ﻣﻲﺷﻮﻧﺪ.

ﺑﺮﭼﺴﺐﻫﺎي 2 ﺑﻪ ﺑﻌﺪ ﺑﻪ ﻧﻘﺎط اﺧﺘﺼﺎص ﻣﻲﻳﺎﺑﻨﺪ و اﮔﺮ زﻳﺮﻛﻠﻤﻪاي ﻫﻴﭻ ﻧﻘﻄﻪاي ﻧﺪاﺷـﺘﻪ ﺑﺎﺷـﺪ، ﻣـﺎﺗﺮﻳﺲ ﻧﻘـﺎط آن ﺻﻔﺮ ﺧﻮاﻫﺪ ﺑﻮد. ﻣﻮﻗﻌﻴﺖ ﻧﻘﺎط ﺑﻪ راﺣﺘﻲ و از روي ﻣﺤﻞ ﺧﻂ زﻣﻴﻨﻪ ﻛﻪ در ﻣﺮﺣﻠﻪ ﻗﺒﻞ ﺗﺸﺨﻴﺺ داده ﺷﺪ، ﻣﺸﺨﺺ ﻣﻲﺷﻮد. ﺑﺮاي اﻳﻦﻛﺎر از راﺑﻄﻪ (3-2) اﺳﺘﻔﺎده ﻣﻲﺷﻮد. در رابطة (3-2) ﻣﻨﻈﻮر از Baseline ﻫﻤﺎن ﻣﻮﻗﻌﻴﺖ ﺧﻂ زﻣﻴﻨـﻪ ﻣﻲﺑﺎﺷﺪ. اﮔﺮ ﺑﺰرﮔﺘﺮﻳﻦ ردﻳﻒ ﻣﺎﺗﺮﻳﺲ ﻧﻘﺎط از ﻣﻮﻗﻌﻴﺖ ﺧﻂ زﻣﻴﻨﻪ ﻛﻤﺘﺮ ﺑﺎﺷﺪ، ﻧﻘﺎط در زﻳﺮ ﺧـﻂ زﻣﻴﻨـﻪ ﻫﺴـﺘﻨﺪ و اﮔـﺮ ﻛﻮﭼﻜﺘﺮﻳﻦ ردﻳﻒ ﻣﺎﺗﺮﻳﺲ ﻧﻘﺎط از ﻣﻮﻗﻌﻴﺖ ﺧﻂ زﻣﻴﻨﻪ ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ، ﻧﻘﺎط در ﺑﺎﻻي ﺧﻂ زﻣﻴﻨﻪ ﻗﺮار دارﻧﺪ.

If min(Row) > Baseline

            Dots_Position = Up

Else                                                                                                                           (3-2)

            Dots_Position = Down

end

برای اﻳﻨﻜﻪ ﺑﺘﻮاﻧﻴﻢ ﺗﻌﺪاد ﻧﻘﺎط را ﺗﺸﺨﻴﺺ دﻫﻴﻢ، از دو ﻓﺎﻛﺘﻮرِ ﺗﻌﺪاد ﭘﻴﻜﺴﻞﻫﺎي ﺳﻴﺎه و ﻣﺴﺎﺣﺘﻲ ﻛﻪ ﻣﺎﺗﺮﻳﺲ ﻧﻘـﺎط را ﺷﺎﻣﻞ ﻣﻲﺷﻮد، اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ. ﺑﺮاي اﻳﻦ ﻛﺎر از راﺑﻄﻪ (3-3) اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ.

If (dot_length > 15) & (dot_width > 12)

            Num_Points=3

ElseIf dot_length > (1.4×dot_width)                                                                       (3-3)

            Num_Points=2

Esle

            Num_Points=1

End

در راﺑﻄﻪ (3-3) dot_length طول مستطیل محاط بر نقاط و dot_width عرض مستطیل محاط بر نقاط می باشد dot_length بزرگتر از 15 و dot_width بزرگتر از 12 باشد، سه نقطه خواهیم داشت. درغیر این صورت اگر dot_length از 4/1 برابر dot_width بزرگتر باشد، دو نقطه داریم و در غیر این صورت تعداد نقاط برابر یک می باشد. اﻳﻦ ﻣﻘﺎدﻳﺮ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻗﺴﻤﺖ ﻧﺮﻣﺎلﺳﺎزي و ﻗﻮاﻋﺪ ﺗﺠﺮﺑﻲ ﺑﻪدﺳﺖ آﻣﺪه­اﻧﺪ.

 ﺑﺮاي ﻫﺮ ﻧﻘﻄﻪ ﻳﻚ آراﻳﻪ ﺑﻪﺻﻮرت شکل ‏3‑7 اﻳﺠﺎد ﻣﻲﺷﻮد ﻛﻪ ﺗﻌـﺪاد، ﻣﻮﻗﻌﻴـﺖ، ﻛـﻮﭼﻜﺘﺮﻳﻦ و ﺑﺰرﮔﺘـﺮﻳﻦ ﺳـﺘﻮن ﻣﺎﺗﺮﻳﺲ ﻧﻘﺎط را ﺷﺎﻣﻞ ﻣﻲﺷﻮد.

بزرگترین ستون کوچکترین ستون تعداد نقاط موقعیت نقاط

شکل ‏3‑7 آراﻳﻪ ﻧﻘﺎط زﻳﺮﻛﻠﻤﺎت

3-5-3-              ﻣﺮﺣﻠﻪ ﻧﺎزك ﺳﺎزي

ﺑﺮاي اﻳﻨﻜﻪ ﺑﺘﻮان ﺷﻜﻞ ﺣﺮوف را ﺗﺸﺨﻴﺺ داد ﺑﺎﻳﺪ ﺑﺘﻮاﻧﻴﻢ اﺳﻜﻠﺖ اﺻﻠﻲ آن را ﺑﺪﺳﺖ آورﻳﻢ. ﺑﺮاي اﻳـﻦ ﻛـﺎر ﺑﺎﻳـﺪ از اﻟﮕﻮرﻳﺘﻢ ﻧﺎزک­سازی اﺳﺘﻔﺎده میﻛﻨﻴﻢ. در OCR ﺑﻬﺘﺮﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﻧﺎزكﺳﺎزي ﺑﺎﻳﺪ ﺷﺮاﻳﻂ زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﺪ:

  • ﻧﻘﺎط ﭘﺎﻳﺎﻧﻲ را ﺣﺬف ﻧﻜﻨﺪ.

ﻧﻘﺎط ﭘﺎﻳﺎﻧﻲ ﺷﻜﻞ از ﻣﺸﺨﺼﺎت اﺻﻠﻲ ﺣﺮوف ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ ﻣﻲﺑﺎﺷﺪ. ﻣﺜﻼً در دو ﻛﻠﻤﻪ ”ﺑﻮ“ و ”ﺑـﻪ“ اﮔـﺮ ﻧﻘـﺎط ﭘﺎﻳـﺎﻧﻲﺣﺮف ”و“ ﺣﺬف ﺷﻮد ﺗﻘﺮﻳﺒﺎً ﺷﺒﻴﻪ ﺑﻪ ﺣﺮف ”ه“ ﻣﻲﺷﻮد و ﻋﻤﻠﻴﺎت ﺗﺸﺨﻴﺺ را ﺑﺎ ﺧﻄﺎ اﻧﺠﺎم ﻣﻲدﻫﺪ.

  • اﺗﺼﺎل را ﻗﻄﻊ ﻧﻜﻨﺪ.

در ﺑﻌﻀﻲ ﺣﺎﻻت ﻣﺜﻼً در ﻛﻠﻤﻪ ”ﻛﻤﻚ“ اﮔﺮ ﺳﺮﻛﺶﻫﺎي ﺣﺮف ”ك“ از ﺑﺪﻧﻪ اﺻﻠﻲ ﺟﺪا ﺷﻮد، ﺑﻪ ﻋﻨﻮان ﻧﻘﻄﻪ ﺑـﺮاي آن ﺣﺮف ﺗﻠﻘﻲ ﻣﻲﺷﻮد و ﺣﺮف ﺑﻪ درﺳﺘﻲ ﺗﺸﺨﻴﺺ داده ﻧﻤﻲﺷﻮد.

  • ﺗﺼﻮﻳﺮ را ﺑﻪ ﺳﻤﺖ ﻣﺤﻮر ﻣﻴﺎﻧﻲ آن ﻧﺎزك ﻛﻨﺪ.

در اﻳﻦ ﭘﺮوژه ﻣﻲﺧﻮاﻫﻴﻢ ﻛﻪ اﺳﻜﻠﺖ ﺷﻜﻞ را ﺑﺪﺳﺖ آورﻳﻢ ﺑﻨﺎﺑﺮاﻳﻦ ﺑﺎﻳﺪ ﺑﻪ ﺳـﻤﺖ ﻣﺤـﻮر ﻣﻴـﺎﻧﻲ ﻧـﺎزكﺳـﺎزي اﻧﺠـﺎم ﮔﻴﺮد. ﺑﻌﻀﻲ از اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻧﺎزكﺳﺎزي ﺷﻜﻞ را ﺑﻪ ﻧﻘﺎط ﻣﺮزي ﻣﺤﺪود ﻣﻲﻛﻨﻨﺪ و در واﻗﻊ ﻣﺮز ﺷـﻜﻞ را ﻣﺸـﺨﺺ ﻣـﻲﻛﻨﻨﺪ ﻛﻪ ﺑﺮاي ﻛﺎرﺑﺮد ﺧﺎص آن در اﻳﻦ ﭘﺮوژه ﻣﻮرد ﺗﻮﺟﻪ ﻧﻴﺴﺖ.

  • ﺑﻪ ﺳﻤﺖ ﻳﻚ ﭘﻴﻜﺴﻞ ﻫﻤﮕﺮا ﺑﺎﺷﺪ.

ﺷﻜﻞ ﻧﺎزك ﺷﺪه ﺑﺎﻳﺪ ﺑﻪ ﻋﺮض ﻗﻠﻢِ ﻳﻚ ﭘﻴﻜﺴﻞ ﻧﺎزك ﺷﺪه ﺑﺎﺷﺪ و در واﻗﻊ ﺑﻪ ﻏﻴﺮ از ﻧﻘﺎط اﺗﺼـﺎل، ﺑﻘﻴـﻪ ﻧﻘـﺎط داراي ﻫﻤﺴﺎﻳﮕﻲ ﻫﺸﺘﮕﺎﻧﻪ ﻛﻤﺘﺮ از 2 ﭘﻴﻜﺴﻞ ﺑﺎﺷﻨﺪ.

  • ﻋﺪم واﺑﺴﺘﮕﻲ ﺑﻪ ﺟﺎﺑﺠﺎﻳﻲ و ﭼﺮﺧﺶ ﺗﺼﻮﻳﺮ.

اﻟﮕﻮرﻳﺘﻢ ﻧﺎزكﺳﺎزي ﺑﺎﻳﺪ ﺑﻪ ﮔﻮﻧﻪاي ﺑﺎﺷﺪ ﻛﻪ اﮔﺮ ﺗﺼﻮﻳﺮ اﺻﻠﻲ ﺟﺎﺑﺠﺎ ﺷﺪ ﻳﺎ ﺑﺎ ﻳﻚ زاوﻳﻪ ﺧﺎص ﭼﺮﺧﻴﺪ، اﺳﻜﻠﺖ اﺻﻠﻲ آن ﺑﻪ درﺳﺘﻲ اﺳﺘﺨﺮاج ﺷﻮد و ﺑﺎﻋﺚ ﺧﺮاب ﺷﺪنِ اﺳﻜﻠﺖ آن ﻧﺸﻮد.

اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻧﺎزكﺳﺎزي ﺑﻪ دو ﺑﺨﺶ ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ:

  1. ﺗﺒﺪﻳﻞ ﻣﺤﻮر ﻣﻴﺎﻧﻲ[43] (MAT)
  2. روش ﺗﻜﺮاري ﺑﺮاي ﺣﺬف ﻧﻘﺎط ﻣﺮزي[44]

ﻫﺮ ﻛﺪام از اﻳﻦ روشﻫﺎ ﻧﻴﺰ ﺑﻪ دو ﺻﻮرت ﺳﺮﻳﺎل و ﻣﻮازي ﻗﺎﺑﻞ ﭘﻴﺎدهﺳﺎزي ﻫﺴﺘﻨﺪ.

 ﺗﺒﺪﻳﻞ MAT ﺑﺮاي ﻧﺎﺣﻴﻪ R ﺑﺎ ﻣﺮز B ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ ﺑﺮاي ﻫﺮ ﻧﻘﻄﻪ p از R، ﻧﺰدﻳﻜﺘﺮﻳﻦ ﻫﻤﺴﺎﻳﻪاش را در B ﭘﻴﺪا ﻣﻲ ﻛﻨﻴﻢ. اﮔﺮ ﺑﻴﺶ از ﻳﻚ ﻧﻘﻄﻪ ﺑﺮاي p ﭘﻴﺪا ﺷﻮد، ﮔﻔﺘﻪ ﻣﻲ ﺷﻮد ﻛﻪ p ﺑﻪ ﻣﺤﻮر ﻣﻴﺎﻧﻲ (اﺳﻜﻠﺖ) ﺗﻌﻠﻖ دارد. ﻣﻔﻬﻮم ﻧﺰدﻳﻜﺘﺮﻳﻦ ﺑﻪ ﺗﻌﺮﻳﻒ ﻓﺎﺻﻠﻪ ﺑﺴﺘﮕﻲ دارد، و ﺑﻨﺎﺑﺮاﻳﻦ ﻧﺘﺎﻳﺞ ﺗﺒﺪﻳﻞ متأﺛﺮ از ﻣﻌﻴﺎر ﻓﺎﺻﻠﻪ ﻣﻨﺘﺨﺐ ﻫﺴﺘﻨﺪ.

ﮔﺮﭼﻪ ﺗﺒﺪﻳﻞ MAT ﻳﻚ ﻧﺎﺣﻴﻪ، اﺳﻜﻠﺖ ﻇﺎﻫﺮاً ﺧﻮﺑﻲ را ﻧﺘﻴﺠـﻪ ﻣـﻲ­دﻫـﺪ، ﻣﻌﻤـﻮﻻً اﺟـﺮاي ﻣﺴـﺘﻘﻴﻢ آن ﻣﺸـﻜﻼت ﻣﺤﺎﺳﺒﺎﺗﻲ دارد. ﺗﺒﺪﻳﻞ MAT ﺷﺎﻣﻞ ﻣﺤﺎﺳﺒﻪ ﻓﺎﺻﻠﻪ­ﻫﺎي ﻫﺮ ﻧﻘﻄﻪ داﺧﻠـﻲ ﻧﺎﺣﻴـﻪ ﺗـﺎ ﺗﻤـﺎم ﻧﻘـﺎط روي ﻣـﺮز آن اﺳـﺖ. اﻟﮕﻮرﻳﺘﻢ­ﻫﺎي ﻣﺘﻌﺪدي ﺑﺮاي اﻓﺰاﻳﺶ ﺑﺎزده ﻣﺤﺎﺳﺒﺎﺗﻲ اﻳﻦ ﺗﺒﺪﻳﻞ ﭘﻴﺸﻨﻬﺎد ﺷﺪه­اﻧﺪ. ﻧﻮﻋﺎً اﻳـﻦ اﻟﮕـﻮرﻳﺘﻢ­ﻫـﺎ ﺑﺎرﻳـﻚ ﺳـﺎز ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎ روش ﺗﻜﺮاري، ﻧﻘﺎط ﻟﺒﻪ ﻧﺎﺣﻴﻪ را ﺣﺬف ﻣﻲ­ﻛﻨﻨﺪ.

در ﭘﻴﺎدهﺳﺎزي ﺑﻪ روش ﺳﺮﻳﺎل از ﻧﻘﺎط ﻣﺮزي ﺷﺮوع ﻣﻲﺷﻮد و ﭘﻴﻜﺴﻞﻫﺎﻳﻲ ﻛﻪ ﺑﺎﻳﺪ ﺣﺬف ﺷﻮﻧﺪ، ﺑﺮﭼﺴﺐ ﻣﻲﺧﻮرﻧـﺪ، اﻳﻦ ﻛﺎر ﺑﻪ ﺻﻮرت ﺗﻜﺮاري اداﻣﻪ ﻣﻲﻳﺎﺑﺪ ﺗﺎ ﺟﺎﻳﻲ ﻛﻪ ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎ ﭘﺮدازش ﺷﻮﻧﺪ. ﺣﺎل ﭘﻴﻜﺴﻞﻫﺎﻳﻲ ﻛـﻪ ﺑـﺮاي ﺣـﺬف ﺷﺪن، ﺑﺮﭼﺴﺐ ﺧﻮرده اﻧﺪ از ﺗﺼﻮﻳﺮ اﺻﻠﻲ ﭘﺎك ﻣﻲﺷﻮﻧﺪ و اﺳﻜﻠﺖ آن ﺑﺎﻗﻲ ﻣﻲﻣﺎﻧﺪ.

ﻋﻤﻠﻴﺎت ﻧﺎزكﺳﺎزي در روش ﻣﻮازي، روي ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎ و ﺑﻪ ﺻﻮرت ﻫﻤﺰﻣﺎن اﻧﺠـﺎم ﻣـﻲﺷـﻮد ﻟـﺬا داراي ﺳـﺮﻋﺖ ﺑﻴﺸﺘﺮي ﻧﺴﺒﺖ ﺑﻪ ﻋﻤﻠﻴﺎت ﺳﺮي ﻣﻲﺑﺎﺷﺪ. در ﭘﻴﺎدهﺳﺎزيﻫﺎي ﺳﺨﺖاﻓﺰاري از روشﻫﺎي ﻣﻮازي ﺑﺮاي ﻧﺎزكﺳﺎزي اﺳـﺘﻔﺎده ﻣﻲﺷﻮد.

در اﻳﻦ ﭘﺮوژه روش اﺳﻜﻠﺖ ﺳﺎزي ﻣﻮازي اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ[39]. ﻧﻮﻳﺴﻨﺪﮔﺎن در اﻳﻦ ﻣﻘﺎﻟﻪ ﻳﻚ اﻟﮕﻮرﻳﺘﻢ ﻧﺎزكﺳﺎزي ﻣﻮازي ﺑﺮ ﭘﺎﻳﻪ ﺷﻤﺎري از ﻣﻌﻴﺎرﻫﺎ از ﺟﻤﻠﻪ اﺗﺼﺎل، ﺗﺒﺪﻳﻞ ﺑﻪ ﺗﻚ ﭘﻴﻜﺴﻞﻫﺎ، ﺗﻘﺮﻳﺐ ﻣﺤﻮر ﻣﻴﺎﻧﻲ، اﻣﻨﻴـﺖ در ﻣﻘﺎﺑـﻞ ﻧـﻮﻳﺰ و ﺑﺎﻻﺧﺮه ﻛﺎرآﻣﺪي زﻳﺎد ارائه داده­اﻧﺪ. اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﺷﺎﺧﻪﻫﺎي ﻓﺮﻋﻲ را ﻛﻪ در دﻳﮕﺮ اﻟﮕﻮرﻳﺘﻢ ﻫﺎ ﺧﻮد را ﻧﺸـﺎن ﻣـﻲدﻫﻨـﺪ را  ﻧﺪارد و ﺑﻪ ﻋﻠﺖ اﻟﮕﻮرﻳﺘﻢ ﻣﻮازي ﺑﻮدن آن از ﺳﺮﻋﺖ ﻣﻨﺎﺳﺒﻲ ﺑﺮاي ﭘﻴﺎدهﺳﺎزي ﺳﺨﺖاﻓﺰاري ﺑﺮﺧﻮردار اﺳﺖ. اﺑﺘﺪا ﺑﻪ ﺗﻌﺎرﻳﻔﻲ ﻛﻪ در ﭘﻴﺎدهﺳﺎزي اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﻧﻴﺎز اﺳﺖ ﻣﻲﭘﺮدازﻳﻢ.

3-5-3-1-       ﺗﻌﺎرﻳﻒ

در ﺗﻌﺎرﻳﻒ زﻳﺮ ﻣﺠﻤﻮﻋﻪ ﻫﺎي S و Sc ﺑﻪ ﺗﺮﺗﻴﺐ ﻣﺠﻤﻮﻋـﻪ ﻫـﺎﻳﻲ ﺑـﺎ ﻣﻘـﺎدﻳﺮ یک و صفر ﻫﺴـﺘﻨﺪ. ﺑـﺪﻳﻦ ﺻـﻮرت ﻛـﻪ در S ﭘﻴﻜﺴﻞﻫﺎي ﺳﻴﺎه ﺑﺎ یک و ﭘﻴﻜﺴﻞﻫﺎي ﺳﻔﻴﺪ ﺑﺎ صفر ﻣﺸﺨﺺ ﻣﻲﺷﻮﻧﺪ و ﺻﻮرت ﺑﺎﻟﻌﻜﺲ ﺑﺮاي ﻣﺠﻤﻮﻋﻪ Sc.

 ﺗﻌﺮﻳﻒ 1- ﻳﻚ ﭘﻴﻜﺴﻞX، 4 ﻫﻤﺴﺎﻳﮕﻲ ﭼﻬﺎرﮔﺎﻧﻪ ﺑﻪ ﻧﺎمﻫﺎيX1  ،X3 ،X5 و X7 ﻧﻴﺰ 4 ﻫﻤﺴﺎﻳﮕﻲ ﻗﻄﺮي ﺑـﻪ ﻧـﺎم ﻫﺎي 2X، X4 ،X6  و X8 دارد ﻛﻪ در شکل ‏3‑8 ﻧﺸﺎن داده ﺷﺪه اﺳﺖ. اﻳﻦ ﻫﻤﺴﺎﻳﮕﻲ ﻗﻄﺮي ﺑﺎ ﻫﻤﺴﺎﻳﮕﻲﻫﺎي ﭼﻬﺎرﮔﺎﻧـﻪ  X،ﻫﻤﺴﺎﻳﻪﻫﺎي ﻫﺸﺘﮕﺎﻧﻪ X را ﺗﺸﻜﻴﻞ ﻣﻲدﻫﻨﺪ.

X2 X3 X4
X1 X X5
X8 X7 X6

شکل ‏3‑8 ﻫﻤﺴﺎﻳﻪ ﻫﺎي ﭼﻬﺎر ﮔﺎﻧﻪ و ﻫﺸﺘﮕﺎﻧﻪ ﭘﻴﻜﺴﻞ x

ﺗﻌﺮﻳﻒ 2- ﭘﻴﻜﺴﻠﻬﺎي  xو  yﺑﺎ ﻣﻘﺪار ﻣﺴﺎوي اﺗﺼﺎل ﻫﺸﺘﮕﺎﻧﻪ (ﭼﻬﺎرﮔﺎﻧـﻪ) ﻧﺎﻣﻴـﺪه ﻣـﻲ­ﺷـﻮﻧﺪ، اﮔـﺮ آراﻳـﻪ­اي ﻣﺎﻧﻨـﺪ)  a0 (= x), a1 , …, an (= yوﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﺑﻪ ﻃﻮري ﻛﻪ ai-1 و  aiﻫﻤﺴﺎﻳﻪ ﻫﺸﺘﮕﺎﻧﻪ (ﭼﻬﺎرﮔﺎﻧﻪ) ﻫﻤﺪﻳﮕﺮ و ﻫﻤﻪ ai ﻫﺎ 1≤ i ≤ n ﻣﻘﺪار  xو  yرا داﺷﺘﻪ ﺑﺎﺷﻨﺪ.

ﺗﻌﺮﻳﻒ 3- ﻫﺮ ﻛﻼس از ﭘﻴﻜﺴﻞﻫﺎ ﻛﻪ ﺑﻪ ﺻﻮرت اﺗﺼـﺎل ﻫﺸـﺘﮕﺎﻧﻪ (ﭼﻬﺎرﮔﺎﻧـﻪ) ﺗﻌﺮﻳـﻒ ﺷـﺪه­اﻧـﺪ، ﻳـﻚ ﺟـﺰء اﺗﺼـﺎل ﻫﺸﺘﮕﺎﻧﻪ (اﺗﺼﺎل ﭼﻬﺎرﮔﺎﻧﻪ) ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد. ﻳﻚ ﺟﺰء اﺗﺼﺎﻟﻲ از ﻣﺠﻤﻮﻋﻪ  Scﻛﻪ ﺷﺎﻣﻞ ﺳﻄﺮﻫﺎي ﺑﺎﻻ و ﭘـﺎﻳﻴﻦ و ﺳـﺘﻮن­های ﭼﭗ و راﺳﺖ از ﻳﻚ ﻧﺎﺣﻴﻪ ﻣﺴﺘﻄﻴﻠﻲ ﻣﺘﻌﻠﻖ ﺑﻪ  Sﻣﻲ­ﺑﺎﺷﺪ را ﭘﺲ زﻣﻴﻨﻪ  Sﻣﻲﻧﺎﻣﻨﺪ. ﺑﻘﻴـﻪ ﺟـﺰء­ﻫـﺎي اﺗﺼـﺎﻟﻲ از ،Scﺣﻔﺮه ﻫﺎﻳﻲ در  Sﻧﺎﻣﻴﺪه ﻣﻲﺷﻮﻧﺪ. ﻣﺸﺨﺺ اﺳﺖ ﻛﻪ ﺑﺮاي ﺣﻔﻆ اﺗﺼﺎل[45] در ﺗﺼﻮﻳﺮ اﺻﻠﻲ، اﮔﺮ S، 8 اﺗﺼﺎﻟﻲ ﺑﺎﺷﺪ،  Scﺑﺎﻳﺪ4 اﺗﺼﺎﻟﻲ ﺑﺎﺷﺪ. در اداﻣﻪ ﻫﺮﮔﺎه ﺑﻪ اﺗﺼﺎل اﺷﺎره ﻛﺮدﻳﻢ ﻣﻨﻈﻮر ﻫﻤﻴﻦ ﺷﺮط ﻣﻲﺑﺎﺷﺪ.

ﺗﻌﺮﻳﻒ 4- ﻳﻚ ﭘﻴﻜﺴﻞ ﻗﺎﺑﻞ ﺣﺬف ﻛﺮدن[46] اﺳﺖ (ﺳﺎده[47] اﺳﺖ) اﮔﺮ ﺣﺬف آن اﺗﺼﺎل ﻣﺠﻤﻮﻋﻪ S را ﺣﻔﻆ ﻛﻨﺪ. در ﻏﻴﺮاﻳﻦ ﺻﻮرت ﭘﻴﻜﺴﻞ ﻏﻴﺮ ﻗﺎﺑﻞ ﺣﺬف[48] (ﻧﺎﺳﺎده[49]) از ﻣﺠﻤﻮﻋﻪ  Sﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد. ﺑﻪ ﺻﻮرت ﺟﺒﺮي ﻗﺎﺑـﻞ ﺣـﺬف ﺑـﻮدن ﻳـﻚ  ﭘﻴﻜﺴﻞ ﺗﻮﺳﻂ راﺑﻄﻪ (3-4) ﺑﻴﺎن ﻣﻲﺷﻮد:

                                                                                (3-4)

در رابطه (3-4)U  برابر است با 1، 3، 5، 7 و Xi ﻣﻘـﺎدﻳﺮي ﻫﺴـﺘﻨﺪ ﻛـﻪ در شکل ‏3‑8 ﻧﺸـﺎن داده ﺷـﺪه­اﻧـﺪ. ﺗﻮﺟـﻪ ﻛﻨﻴـﺪ ﻛـﻪ . Xic = 1 − Xi ﻣﻲ ﺗﻮان ﻧﺸﺎن داد ﻛﻪ ﻗﺎﺑﻞ ﺣﺬف ﺑﻮدن ﭘﻴﻜﺴﻞ ﺑﺎﻳﺪ ﺷﺮط
1= CN(x) را ﺑﺮآورده ﻛﻨﺪ. ﻫﻤﻪ ﺣﺎلت­های ﻗﺎﺑﻞ ﺣﺬف ﺑﻮدن ﻳﻚ ﭘﻴﻜﺴﻞ در ﻳﻚ ﻫﻤﺴﺎﻳﮕﻲ 3×3 در شکل ‏3‑9 ﻧﺸﺎن داده ﺷﺪه اﺳﺖ. اﻳﻦ ﻣﺠﻤﻮﻋﻪ ﻛﻪ ﺑﻪ ﺻﻮرت[38] راﺑﻄﻪ (3-5) ﻣﺸﺨﺺ ﻣﻲﺷﻮد، در اﻟﮕﻮرﻳﺘﻢ ﺑﺴﻴﺎر اﺳﺘﻔﺎده ﻣﻲﺷﻮد.

D=[Dk| 1≤k≤16]                                                                                                         (3-5)

ﺗﻌﺮﻳﻒ 5- ﻣﺠﻤﻮﻋﻪ  Ωرا زﻳﺮ ﻣﺠﻤﻮﻋﻪ  Sﺑﻴﺎن ﻣﻲﻛﻨﻴﻢ (). Ω ⊆ Sﻣﺠﻤﻮﻋﻪ  Ωﻗﺎﺑﻞ ﺣـﺬف ﺷـﺪن ﻫﺸـﺘﮕﺎﻧﻪ از ﻣﺠﻤﻮﻋﻪ  Sﮔﻔﺘﻪ ﻣﻲﺷﻮد اﮔﺮ:

  1. ﺗﻌﺪاد ﺟﺰء اﺗﺼﺎل ﻫﺸﺘﮕﺎﻧﻪ ﻣﺠﻤﻮﻋﻪ ، S ﺑﺮاﺑﺮ ﺑﺎ Ω/S ﺑﺎﺷﺪ.
  2. ﻣﺠﻤﻮﻋﻪ Scﺗﻌﺪاد ﺟﺰء اﺗﺼﺎل ﭼﻬﺎرﮔﺎﻧﻪ­اش ﺑﺮاﺑﺮ ﺑﺎ  Sc ∪ Ω ﺑﺎﺷﺪ.

ﻫﻤﭽﻨﻴﻦ دو ﻋﻤﻠﮕﺮ زﻳﺮ ﺑﺮاي آﺳﺎن ﺷﺪن اﺳﺘﻔﺎده از ﺗﻌﺎرﻳﻒ آﻧﻬﺎ ﺗﻌﻴﻴﻦ ﺷﺪه اﺳﺖ:

  1. ﻋﻤﻠﮕﺮ ⊗: ﻋﻤﻠﮕﺮ اﻧﻄﺒﺎق[50] ﻣﻲ­ﺑﺎﺷﺪ. ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ S⊗Tﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ﻗﺮار ﮔـﺮﻓﺘﻦ ﻫﻤـﻪ رﺧـﺪادﻫﺎ از ﻗﺎﻟﺐ7  Tدر . S
  2. ﻋﻤﻠﮕﺮ : Οﻋﻤﻠﮕﺮ ﻧﺎزك ﺳﺎزي[51] ﻣﻲ­ﺑﺎﺷﺪ. ﺑﺪﻳﻦ ﻣﻌﻨـﻲ ﻛـﻪ . S Ο T = S/S⊗Tو آن ﺑﺮاﺑـﺮ اﺳـﺖ ﺑـﺎ ﺣﺬف ﻛﺮدن ﺗﻤﺎم ﭘﻴﻜﺴل­هاﻳﻲ ﻛﻪ ﺑﺎ ﻗﺎﻟﺐ Tﻣﻄﺎﺑﻘﺖ داﺷﺘﻪ ﺑﺎﺷﻨﺪ.

 ﻋﻤﻠﮕﺮ / ، ﻋﻤﻠﮕﺮ اﺧﺘﻼف[52] ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﻧﺸﺎن دﻫﻨﺪه اﺧﺘﻼف ﺑﻴﻦ دو ﻣﺠﻤﻮﻋﻪ ﻣﻲ­ﺑﺎﺷﺪ.

شکل ‏3‑9 ﻫﻤﻪ ﭘﻴﻜﺴﻞ ﻫﺎي ﻗﺎﺑﻞ ﺣﺬف واﻗﻊ ﺷﺪه در ﻣﺮﻛﺰ ﻳﻚ ﻫﻤﺴﺎﻳﮕﻲ 3×3 . در اﻳﻦ ﭘﻴﻜﺴﻞ ﻫﺎ ﻣﻘﺪار ””x ﻣﻮرد ﺗﻮﺟﻪ ﻧﻤﻲ ﺑﺎﺷﺪ.

اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﺑﺮ اﺳﺎس ﻣﻌﻴﺎرﻫﺎي زﻳﺮ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ:

  1. شاﻣﻞ ﻳﻚ ﻋﻤﻠﮕﺮ ﺗﻤﺎم ﻣﻮازي ﺑﺮاي ﻋﻤﻞ ﻧﺎزك ﺳﺎزي ﺗﺼﻮﻳﺮ در ﻳﻚ ﻣﺮﺣﻠﻪ.
  2. اﺗﺼﺎل ﺑﺎﻳﺪ ﺑﺮاي ﻫﺮ دو ﻣﺠﻤﻮﻋﻪ Sو  Scﺣﻔﻆ ﺷﻮد.
  3. ﻋﻤﻞ ﻧﺎزك ﺳﺎزي ﺑﺎﻳﺪ ﺑﺎ ﺟﺎﺑﺠﺎﻳﻲ و ﭼﺮﺧﺶ ﺑﺎ ﺿﺮاﻳﺐ 90 درﺟﻪ ﺗﺼﻮﻳﺮ ﺗﻐﻴﻴﺮ ﻧﻜﻨﺪ.
  4. ﻋﻤﻞ ﻧﺎزك ﺳﺎزي ﺑﺎﻳﺪ ﺑﻪ ﭘﻬﻨﺎي واﺣﺪ ﻫﻤﮕﺮا ﺷﻮد.
  5. ﻋﻤﻞ ﻧﺎزك ﺳﺎزي ﺑﺎﻳﺪ ﺗﻘﺮﻳﺒﺎً ﻣﺤﻮر ﻣﻴﺎﻧﻲ ﺗﺼﻮﻳﺮ اﺻﻠﻲ را ﺑﺪﻫﺪ.
  6. ﻋﻤﻞ ﻧﺎزك ﺳﺎزي ﺑﺎﻳﺪ ﻏﻴﺮ ﺣﺴﺎس ﺑﻪ ﻧﻮﻳﺰ ﻣﺮزي ﺑﺎﺷﺪ. ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ ﺗﻐﻴﻴﺮ ﻛﻮﭼﻚ در اﻟﮕﻮ ﻣﻮﺟﺐ ﺗﻐﻴﻴﺮ ﻛﻮﭼﻜﻲ در اﺳﻜﻠﺖ ﺷﻮد.

اﻟﮕﻮرﻳﺘﻢ ﻧﺎزكﺳﺎزي از اﻳﻨﺠﺎ ﺷﺮوع ﻣﻲﺷﻮد. اﮔﺮ S ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺟﺰء اﺗﺼﺎل ﻫﺸﺘﮕﺎﻧﻪ از ﺗﺼﻮﻳﺮ ﺑﺎﺷﺪ:

ﻣﺮﺣﻠﻪ اول- ﭘﺎك ﻛﺮدن ﻫﻤﻪ ﭘﻴﻜﺴل­ها در S ﺑﻪ ﻃﻮري ﻛﻪ ﺑﺎ ﻳﻜﻲ از ﻗﺎﻟﺒﻬﺎي 1 Aﺗـﺎ 20 Aﻣﻨﻄﺒـﻖ ﺑﺎﺷـﺪ. و ﺑﺎزﻳـﺎﺑﻲ ﭘﻴﻜﺴل­هایی ﻛﻪ ﺑﺎ ﻳﻜﻲ از ﻗﺎﻟﺐ­ﻫﺎي ﺑﺎزﻳﺎﺑﻲ ﻣﻨﻄﺒﻖ ﺑﺎﺷﻨﺪ (21.(A30 – A

ﻣﺮﺣﻠﻪ دوم- ﺗﻜﺮار ﻣﺮﺣﻠﻪ 1 ﺗﺎ اﻳﻨﻜﻪ ﺗﻐﻴﻴﺮاﺗﻲ در ﺗﺼﻮﻳﺮ اﻳﺠﺎد ﻧﺸﻮد.

اﻳﻦ 30 ﻗﺎﻟﺐ در شکل ‏3‑10 ﻧﺸﺎن داده ﺷﺪه­اﻧﺪ. ﻗﺎلب­های 1 Aﺗﺎ 20 Aﺑﺮاي ﺣﺬف ﭘﻴﻜﺴل­های ﻣﺮزي[53] ﺑﻪ ﻛﺎر ﻣﻲروﻧﺪ و ﻗﺎﻟﺐ ﻫﺎي 12 Aﺗﺎ 30 ، Aﻗﺎﻟﺐ­ﻫﺎي ﺑﺎزﻳﺎﺑﻲ ﻫﺴﺘﻨﺪ ﺑﻪ ﻃﻮري ﻛﻪ ﺣﺬف ﭘﻴﻜﺴل­های اﺿﺎﻓﻲ را در ﺷﺮاﻳﻂ ﺧـﺎص از ﺑـﻴﻦ ﻣﻲ­ﺑﺮﻧﺪ. اﻳﻦ دو دﺳﺘﻪ از ﻗﺎﻟﺐ­ﻫﺎ اﻣﻜﺎن ﻧﺎزكﺳﺎزي ﺑﻪ روش ﻣﻮازي را ﺑﺮﻗﺮار ﻣﻲﻛﻨﻨﺪ ﻛـﻪ در واﻗـﻊ ﻣﻌﻴـﺎر 1را ﺑـﺮآورده ﻣﻲﻛﻨﺪ. ﺑﻪ ﻋﻼوه ﭼﺮﺧﻴﺪه ﺷﺪه ﻫﺮ ﻗﺎﻟﺐ در ﺑﻴﻦ ﻗﺎﻟﺐﻫﺎ وﺟﻮد دارد ﻛﻪ ﻣﻌﻴﺎر 3 را ﺑﺮآورده ﻣﻲﺳﺎزد.

ﭘﻴﻜﺴﻠﻬﺎي ﻣﺮزي در اﻳﻨﺠﺎ ﺑﻪ ﺻﻮرت راﺑﻄﻪ (3-6) ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﻧﺪ ﻛﻪ اﮔﺮ s∂ ﻧﺎﺣﻴـﻪ ﻣـﺮزي از S ﺑﺎﺷـﺪ و s∂ x ∈  ﺑﺎﺷﺪ، x ﻳﻚ ﭘﻴﻜﺴﻞ ﻣﺮزي از s اﺳﺖ.

∂s =[x: x is 4 – adjacent to y, x∈S, y∈Sc]                                                   (3-6)

ﻗﺎﻟﺐ ﻫﺎي 1 Aﺗﺎ 4 Aﮔﻮﺷﻪﻫﺎ را از ﻫﺮ ﭼﻬﺎر ﺟﻬﺖ ﭘﺎك ﻣﻲﻛﻨﻨﺪ و 5 Aﺗﺎ 8 Aﭘﻴﻜﺴﻞﻫﺎي ﻣﺮزي ﻫﻤﺴـﺎﻳﮕﻲ ﭼﻬـﺎر را ﭘﺎك ﻣﻲﻛﻨﻨﺪ. اﺑﻦ ﻗﺎﻟﺐﻫﺎ ﭘﻴﻜﺴﻞﻫﺎ را از ﻫﻤﻪ ﺟﻬﺎت ﭘﺎك ﻣﻲﻛﻨﻨﺪ ﺑﻪ ﻃﻮري ﻛﻪ ﻣﻌﻴـﺎر 5 ﺑـﺮآورده ﺷـﻮد. ﻗﺎﻟـﺐﻫـﺎي 5×5 17 Aﺗﺎ 20 Aﺑﺮاي اﻃﻤﻴﻨﺎن از ﺗﻮﻟﻴﺪ اﺳﻜﻠﺖ اﻳﺰوﺗﺮوپ[54] در ﮔﻮﺷﻪﻫﺎي 90 درﺟﻪ اﺳﺘﻔﺎده ﻣﻲﺷﻮد. ﻗﺎﻟﺐﻫﺎي 5×5، اﺳﻜﻠﺖ اﻳﺰوﺗﻮپ را ﺑﻪ ﻗﻴﻤﺖ ﻋﻤﻠﻴﺎت ﻣﺤﺎﺳﺒﺎﺗﻲ ﺑﻴﺸﺘﺮ ﺑﺮاي ﺣﺬف ﭘﻴﻜﺴﻞﻫﺎي ﻣﺮزي در ﮔﻮﺷﻪﻫﺎي ﺗﻴﺰ ﻛﻪ در ﺑﺴﻴﺎري از اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻧﺎزكﺳﺎزي ﻣﺸﺎﻫﺪه ﻣﻲﺷﻮد را ﺿﻤﺎﻧﺖ ﻣﻲﻛﻨﻨﺪ.

ﺑﺮاي ﺑﺪﺳﺖ آوردن ﻣﻌﻴﺎر 6، ﻗﺎﻟﺐﻫﺎي 9 Aﺗﺎ 16 Aﺑﺮاي ﺣﺬف اﺛﺮ ﻧﻮﻳﺰ در ﺗﺼﺎوﻳﺮ ﻧﻮﻳﺰي در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷـﺪه اﺳـﺖ. اﮔﺮ اﻳﻦ ﻗﺎﻟﺐ ﻫﺎ ﺑﺎ ﺳﺎﻳﺮ ﻗﺎﻟﺐ ﻫﺎ ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﮔﻴﺮﻧﺪ اﺳﻜﻠﺖ ﺗﺼﻮﻳﺮ را ﺧﻴﻠﻲ ﻧـﺎزك ﻧﺨﻮاﻫﻨـﺪ ﻛـﺮد. ﺧﻴﻠﻲ ﻧﺎزك ﻛﺮدن[55] ﻳﻚ ﻧﻘﺺ در ﺑﺴﻴﺎري از اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻧﺎزكﺳﺎزي ﻣﻲﺑﺎﺷﺪ ﺑﻪ ﻃﻮري ﻛﻪ ﺑﺎ ﻧﻘﻄﻪ ﭘﺎﻳﺎﻧﻲ (ﻧﻘﻄﻪاي ﻛـﻪ در ﻫﻤﺴﺎﻳﮕﻲ ﻫﺸﺘﮕﺎﻧﻪاش ﻓﻘﻂ ﻳﻚ ﻣﻘﺪار 1 داﺷﺘﻪ ﺑﺎﺷﺪ) ﻣﺎﻧﻨﺪ ﻧﻮﻳﺰ ﻋﻤﻞ ﻣﻲﻛﻨﻨﺪ.

شکل ‏3‑10 ﻗﺎﻟﺐ ﻫﺎي اﺳﺘﻔﺎده ﺷﺪه در اﻟﮕﻮرﻳﺘﻢ ﻧﺎزك ﺳﺎزي. ﻗﺎﻟﺐ ﻫﺎي 1 Aﺗﺎ 20 Aﺑﺮاي ﺣﺬف ﭘﻴﻜﺴﻞ ﻫﺎ و ﻗﺎﻟﺐ ﻫﺎي 12 Aﺗﺎ 30 Aﺑﺮاي ﺑﺎزﻳﺎﺑﻲ ﭘﻴﻜﺴﻞ ﻫﺎ ﻣﻲ ﺑﺎﺷﻨﺪ. ﭘﺎراﻣﺘﺮﻫﺎي p و q ﺗﻮﺳﻂ ﺟﺒﺮ ﺑﻮﻟﻲ زﻳﺮ ﻣﻮرد ﺗﻮﺟﻪ ﻗﺮار ﻣﻲ­ﮔﻴﺮﻧﺪ:1= p or q.

در شکل ‏3‑11 ﻗﺎﻟﺐﻫﺎي ﺣﺬف ﻧﻮﻳﺰ ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﺑﻪ ﺻﻮرت ﺳﺮي ﺑﻜﺎر ﺑﺮده ﺷﻮﻧﺪ، ﺗﺼﻮﻳﺮ را ﺑﻪ ﻳـﻚ ﭘﻴﻜﺴـﻞ ﻛـﺎﻫﺶ ﻣﻲدﻫﻨﺪ. وﻟﻲ ﻫﻨﮕﺎﻣﻲﻛﻪ اﻳﻦ ﻗﺎﻟﺐﻫﺎ ﺑﺎ ﻗﺎﻟﺐﻫﺎي دﻳﮕﺮ ﺑﻪ ﺻﻮرت ﻣﻮازي ﺑﻜﺎر ﺑﺮده ﺷﻮﻧﺪ ﻳﻚ ﺧﻂ ﻣـﻮرب ﻧـﺎزك ﺷـﺪه را ﻧﺘﻴﺠﻪ ﻣﻲدﻫﻨﺪ و از ﺧﻴﻠﻲ ﻧﺎزكﺷﺪن ﺗﺼﻮﻳﺮ ﺟﻠﻮﮔﻴﺮي ﻣﻲﻛﻨﻨﺪ.

شکل ‏3‑11 (اﻟﻒ) ﻳﻚ ﺧﻂ ﻣﻮرب ﺑﺎ ﭘﻬﻨﺎي دو ﭘﻴﻜﺴﻞ ، (ب) اﺳﻜﻠﺖ ﺷﻜﻞِ (اﻟﻒ) وﻗﺘﻲ ﻗﺎﻟﺐ ﻫﺎي ﺣﺬف ﻧﻮﻳﺰ 1 A ﺗﺎ 20 Aﺑﻪ ﺻﻮرت ﺳﺮﻳﺎل ﺑﻜﺎر ﺑﺮده ﺷﻮد. (ج) اﺳﻜﻠﺖ ﺷﻜﻞِ (اﻟﻒ) وﻗﺘﻲ ﻛﻪ اﻳﻦ ﻗﺎﻟﺐ ﻫﺎ ﺑﺼﻮرت ﻣﻮازي ﺑﻜﺎر روﻧﺪ.

ﻫﻤﻪ ﻗﺎﻟﺐﻫﺎ ﻃﻮري ﻃﺮاﺣﻲ ﺷﺪه­اﻧﺪ ﻛﻪ روي ﻣﺠﻤﻮﻋﻪ S ﺑﻪ ﻃﻮر ﻫﻤﺰﻣـﺎن اﻋﻤـﺎل ﺷـﻮﻧﺪ ﺗـﺎ ﻣﻌﻴـﺎر 1 ﺑـﺮآورده ﺷـﻮد. اﻟﮕﻮﻳﻲ ﻛﻪ ﺑﺎ ﻳﻜﻲ از ﻗﺎﻟﺐ­ﻫﺎي 1 Aﺗﺎ 20 Aﻣﻨﻄﺒﻖ ﺑﺎﺷﻨﺪ، ﭘﻴﻜﺴﻞ ﻣﺮﻛﺰي­اش ﭘﺎك ﻣﻲﺷﻮد. ﻋﻤﻠﻴﺎت ﻣـﻮازي اﺗﺼـﺎل را در اﺟﺰاي ﻣﺘﺼﻞ از ﺑﻴﻦ ﻣﻲﺑﺮد. ﺑﺮاي ﻣﺜﺎل ﻳﻚ ﺗﺼﻮﻳﺮ ﻣﺴﺘﻄﻴﻠﻲ ﺑﺎ ﭘﻬﻨﺎي 2 ﭘﻴﻜﺴﻞ ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ ﭘـﺎك ﺧﻮاﻫـﺪ ﺷـﺪ. اﻳـﻦ  ﻣﺸﻜﻞ ﻧﻤﻲﺗﻮاﻧﺪ ﺑﺎ ﻫﻤﺴﺎﻳﮕﻲ 3×3 ﺑﺮ ﻃﺮف ﺷﻮد. ﺑﺮاي ﺑﺎﻗﻲ ﻣﺎﻧﺪن اﺗﺼـﺎل ﺑـﻪ ﻃـﻮري ﻛـﻪ ﻣﻌﻴـﺎر 2 ﺑﺪﺳـﺖ آﻳـﺪ، ﻳـﻚ  ﻣﺠﻤﻮﻋﻪ از ﻗﺎﻟﺐ ﻫﺎي 4×4 (21 Aﺗﺎ 30(A در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه­اﻧﺪ. ﺑﺮاي اﻟﮕﻮﻫﺎﻳﻲ ﻛﻪ ﺑﺎ ﻳﻜـﻲ از اﻳـﻦ ﻗﺎﻟـﺐﻫـﺎ ﻣﻄﺎﺑﻘـﺖ داﺷﺘﻪ ﺑﺎﺷﻨﺪ، ﭘﻴﻜﺴﻞ­ﻫﺎي ﻣﺮﻛﺰي­ﺷﺎن ﺑﺎزﻳﺎﺑﻲ ﻣﻲﺷﻮﻧﺪ ﺑﺪون اﻳﻨﻜﻪ ﺑﻪ ﻧﺘﺎﻳﺞ ﻗﺎﻟﺐ­ﻫﺎي ﭘﺎك ﻛﺮدن اﻫﻤﻴﺘﻲ داده ﺷﻮد.

3-5-3-2-       آﻧﺎﻟﻴﺰ اﻟﮕﻮرﻳﺘﻢ

1-اﺗﺼﺎل: ﺣﻔﻆ اﺗﺼﺎل ﻳﻚ ﺟﺰء ﻣﺘﺼﻞ ﺑﺮاي آﻧﺎﻟﻴﺰ ﺷﻜﻞ ﺿﺮوري اﺳﺖ. وﻳﮋﮔـﻲﻫـﺎي ﺗﻮﭘﻮﻟـﻮژي ﻳـﻚ اﻟﮕـﻮ اﺗﺼـﺎل ﻫﺸﺘﮕﺎﻧﻪ ﻣﻤﻜﻦ اﺳﺖ ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ ﺗﻐﻴﻴﺮ ﻛﻨﺪ اﮔﺮ اﺟﺰاي ﻣﺘﺼﻞ آن ﮔﺴﻴﺨﺘﻪ ﺷﻮﻧﺪ. اﺗﺼﺎل ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد:

 دو ﭘﻴﻜﺴﻞ ﻛﻪ ﻣﻘﺪارﺷﺎن ﻳﻚ اﺳﺖ ﻣﺘﺼﻞ ﻫﺴﺘﻨﺪ اﮔﺮ اﺗﺼﺎل ﻫﺸﺘﮕﺎﻧﻪ داﺷﺘﻪ ﺑﺎﺷﻨﺪ و دو ﭘﻴﻜﺴﻞ ﺑﺎ ﻣﻘـﺪار ﺻـﻔﺮ ﻣﺘﺼـﻞ ﻫﺴﺘﻨﺪ اﮔﺮ اﺗﺼﺎل ﭼﻬﺎرﮔﺎﻧﻪ داﺷﺘﻪ ﺑﺎﺷﻨﺪ. ﻣﻲ­ﺗﻮان ﻧﺸﺎن داد ﻛﻪ ﻋﻤﻠﮕﺮ ﭘﻴﺸﻨﻬﺎد ﺷﺪه در اﻟﮕﻮرﻳﺘﻢ ﻧﺎزك ﺳﺎزي اﺗﺼﺎل را  ﺣﻔﻆ ﻣﻲ­ﻛﻨﺪ. ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ:

  1. ﻧﻘﺎط ﺳﺎده ﻫﺸﺘﮕﺎﻧﻪ را ﺣﺬف ﻧﻤﻲ­ﻛﻨﺪ.
  2. زوج ﻫﺎي ﻣﺠﺎور ﭼﻬﺎرﮔﺎﻧﻪ را ﺣﺬف ﻧﻤﻲ­ﻛﻨﺪ ﻣﮕﺮ اﻳﻨﻜﻪ زوج ﻗﺎﺑﻞ ﺣﺬف ﺷﺪن ﻫﺸﺘﮕﺎﻧﻪ ﺑﺎﺷﺪ.
  3. ﻫﺮ دو (ﻧﻘﺎط ﻣﺠﺎور ﻫﺸﺘﮕﺎﻧﻪ ﻣﻮرب)، ﺳﻪ ﻳﺎ ﭼﻬﺎر ﭘﻴﻜﺴﻞ ﺗﺸﻜﻴﻞ ﺷﺪه از ﻧﻘﺎط ﻣﺠﺎور ﻫﺸﺘﮕﺎﻧﻪ ﻣﺘﻘﺎﺑﻞ را ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ ﺣﺬف ﻧﻤﻲﻛﻨﺪ.
  4. ﻫﻤﮕﺮاﻳﻲ ﺑﻪ اﺳﻜﻠﺖ ﺑﺎ ﭘﻬﻨﺎي ﻳﻚ ﭘﻴﻜﺴﻞ: ﺗﻌﺪادي از اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻧـﺎزكﺳـﺎزي ﺑـﻪ ﺳـﻤﺖ ﻳـﻚ ﭘﻴﻜﺴـﻞﻫﻤﮕﺮا ﻧﻴﺴﺘﻨﺪ. ﺑﺴﻴﺎري از آﻧﻬﺎ ﺗﺼﻮﻳﺮ را ﺧﻴﻠﻲ ﻧﺎزك ﻛﺮده و ﺗﻨﻬﺎ ﭼﻨﺪ ﭘﻴﻜﺴﻞ ﺑﺎﻗﻲ ﻣﻲﮔﺬارﻧﺪ و ﻳـﺎ ﺑﺮﺧـﻲ ﺗﺼﻮﻳﺮ را ﺑﺎ ﭘﻬﻨﺎي دو ﭘﻴﻜﺴﻞ ﺑﺎﻗﻲ ﻣﻲﮔﺬارﻧﺪ. اﻣﺎ در اﻟﮕﻮرﻳﺘﻢ ﺣﺎﺿﺮ اﺳﻜﻠﺖ ﻳـﻚ ﺗﺼـﻮﻳﺮ ﺑـﻪ ﺳـﻤﺖ ﻳـﻚ ﭘﻴﻜﺴﻞ ﻫﻤﮕﺮا اﺳﺖ ﻣﮕﺮ اﻳﻨﻜﻪ آن ﭘﻴﻜﺴﻞ ﻗﺎﺑﻞ ﺣﺬف ﺗﻮﺳﻂ ﻳﻜﻲ از ﮔﺮوه­هاي زﻳﺮ ﺑﺎﺷﺪ:
    1. ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ[56]،
    2. ﻳﻚ ﻧﻤﻮﻧﻪ ﻣﺮﺑﻌﻲ [57]SQ
  • ﻳﻚ اﺗﺼﺎل [58].T

ﻣﻮارد 2 و 3 در شکل ‏3‑12 ﻧﺸﺎن داده ﺷﺪه­اﻧﺪ.

شکل ‏3‑12 ﻧﻤﻮﻧﻪ ﻣﺮﺑﻌﻲ و اﺗﺼﺎل ﻫﺎي  Tدر ﻳﻚ ﭘﻨﺠﺮه 3×3

ﻗﺎﺑﻞ ﺗﻮﺟﻪ اﺳﺖ ﻛﻪ ﺑﻪ اﺗﺼﺎل T ﺑﻪ ﻋﻨﻮان ﻳﻚ اﺳﻜﻠﺖ ﺑﺎ ﭘﻬﻨﺎي واﺣﺪ ﺗﻮﺟﻪ ﺷﻮد. اﮔﺮ ﭼﻪ ﻣﺮز اﺗﺼـﺎل T ﻗﺎﺑـﻞ ﺣـﺬف ﺷﺪن اﺳﺖ در ﺣﺎﻟﻲ ﻛﻪ اﺗﺼﺎل ﺣﻔﻆ ﻣﻲﺷﻮد. اﻣﺎ ﺑﻪ ﺟﻬﺖ اﻋﻮﺟﺎﺟﻲ ﻛﻪ در اﺗﺼﺎل ﺷﻜﻞﻫﺎي Y[59] اﻳﺠﺎد ﻣـﻲﺷـﻮد ﻣـﻮرد ﻋﻼﻗﻪ ﻧﻤﻲﺑﺎﺷﺪ. ﺑﻪ ﻋﻼوه اﺗﺼﺎل T ﺑﻪ ﻋﻨﻮان ﻳﻚ ﺷﻜﻞ ﺑﺤﺮاﻧﻲ در ﺑﺴـﻴﺎري از ﻛﺎرﺑﺮدﻫـﺎ ﻣﺎﻧﻨـﺪ ﺗﺸـﺨﻴﺺ ﺣـﺮوف ﻣـﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮد. شکل ‏3‑13 ﺗﺼﻮﻳﺮ اﺻﻠﻲ و ﻧﺎزك ﺷﺪه ﻳﻚ حرف ﻓﺎرﺳﻲ را ﺑﻌﺪ از اﺳﺘﻔﺎده از اﻟﮕﻮرﻳﺘﻢ ﻓـﻮق ﻧﺸـﺎن ﻣﻲ­دﻫﺪ.

شکل ‏3‑13 ﺗﺼﻮﻳﺮ ﻳﻚ حرف ﻓﺎرﺳﻲ و ﺗﺼﻮﻳﺮ ﻧﺎزك ﺷﺪه آن

3-5-4-              ﺷﻨﺎﺳﺎﻳﻲ ﻣﻨﺤﻨﻲ ﻫﺎي ﺑﺴﺘﻪ در زﻳﺮﻛﻠﻤﻪ

ﺗﺎ ﺑﻪ ﺣﺎل ﻣﻮﻓﻖ ﺷﺪﻳﻢ ﻛﻪ ﺳﻄﺮﻫﺎي ﻣﺘﻦ را ﺟﺪا ﻛـﺮده و زﻳﺮﻛﻠﻤـﺎت ﻫـﺮ ﺳـﻄﺮ را ﻣﺸـﺨﺺ ﻛﻨـﻴﻢ. اﺑﺘـﺪا ﺑـﺮاي ﻫـﺮ زﻳﺮﻛﻠﻤﻪ، ﻣﻨﺤﻨﻲﻫﺎي ﺑﺴﺘﻪ را ﺷﻨﺎﺳﺎﻳﻲ ﻣﻲﻛﻨﻴﻢ. ﻣﻨﻈﻮر از ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ ﻫﻤـﺎن ﻋﻨﺼـﺮ اﺻـﻠﻲ O ﻣـﻲﺑﺎﺷـﺪ. ﺷﻨﺎﺳـﺎﻳﻲ ﻣﻨﺤﻨﻲﻫﺎي ﺑﺴﺘﻪ اﻳﻦ اﻣﻜﺎن را ﺑﻪ ﻣﺎ ﻣﻲدﻫﺪ ﻛﻪ ﻋﻼوه ﺑﺮ ﺗﻌﻴﻴﻦ ﻳﻜﻲ از ﻋﻨﺎﺻﺮ اﺻﻠﻲ در زﻳﺮﻛﻠﻤﻪ و ﺣﺬف آن، ﺷﻨﺎﺳـﺎﻳﻲ دﻳﮕﺮ ﻋﻨﺎﺻﺮ راﺣﺖﺗﺮ ﺷﻮد.

ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﻣﻨﺤﻨﻲﻫﺎي ﺑﺴﺘﻪ از ﻓﻠﻮﭼﺎرت ﻧﺸﺎن داده ﺷﺪه در شکل ‏3‑14 اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ. اﺑﺘﺪا ﺑﻪ ﺗﻌﺮﻳﻒ ﭼﻨـﺪ واژه ﻣﻲﭘﺮدازﻳﻢ:

ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ: ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ راﺑﻄﻪ (3-7) ﺑﻪ ﭘﻴﻜﺴﻠﻲ از ﺗﺼﻮﻳﺮ ﻧﺎزك ﺷﺪه ﮔﻔﺘﻪ ﻣﻲﺷﻮد ﻛﻪ داراي ﻫﻤﺴﺎﻳﮕﻲ ﻫﺸﺘﮕﺎﻧﻪ ﺑﺮاﺑﺮ ﺑﺎ ﻳﻚ ﺑﺎﺷﺪ. ﺑﻪ ﻋﺒﺎرت دﻳﮕﺮ ﺑﺮاي ﻫﺮ ﭘﻴﻜﺴﻞ «x» از ﻣﺎﺗﺮﻳﺲ ﺗﺼﻮﻳﺮ ﻧﺎزك ﺷﺪه «S»، ﻣﺠﻤﻮع ﭘﻴﻜﺴﻞﻫـﺎي ﻫﺸـﺘﮕﺎﻧﻪ آن ﺑﺎﻳﺪ ﺑﺮاﺑﺮ ﺑﺎ ﻳﻚ ﺑﺎﺷﺪ.

                                                                                   (3-7)

ﻧﻘﻄﻪ اﻧﺸﻌﺎب[60]: ﻳﺎ ﻫﻤﺎن ﻧﻘﻄﻪ اﺗﺼﺎل اﺳﺖ. ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ راﺑﻄﻪ (3-8) ﺑﻪ ﭘﻴﻜﺴﻠﻲ از ﺗﺼﻮﻳﺮ ﻧﺎزكﺷﺪه ﮔﻔﺘﻪ ﻣـﻲﺷـﻮد ﻛﻪ داراي ﻫﻤﺴﺎﻳﮕﻲ ﻫﺸﺘﮕﺎﻧﻪ ﺑﻴﺸﺘﺮ از 2 ﺑﺎﺷﺪ. ﺑﻪ ﻋﺒﺎرت دﻳﮕﺮ ﺑﺮاي ﻫﺮ ﭘﻴﻜﺴﻞ« x» از ﻣﺎﺗﺮﻳﺲ ﺗﺼـﻮﻳﺮ ﻧـﺎزكﺷـﺪه «S» ﻣﺠﻤﻮع ﭘﻴﻜﺴﻞﻫﺎي ﻫﺸﺘﮕﺎﻧﻪ آن ﺑﻴﺸﺘﺮ از 2 ﺑﺎﺷﺪ.

                                                                                    (3-8)

 ﻧﻘﺎط اﻧﺘﻬﺎﻳﻲ و اﻧﺸﻌﺎب را ﺑﺮ روي ﭼﻨﺪ ﻧﻤﻮﻧﻪ از ﺣﺮوف ﻓﺎرﺳﻲ ﻧﺸﺎن ﻣﻲدﻫﺪ.

شکل ‏3‑14 ﻓﻠﻮﭼﺎرت ﺗﻌﻴﻴﻦ ﻣﻨﺤﻨﻲ ﻫﺎي ﺑﺴﺘﻪ ﺑﺮ روي ﺗﺼﻮﻳﺮ ورودي

ﺑﺮاي ﺟﺪاﺳﺎزي ﻣﻨﺤﻨﻲﻫﺎي ﺑﺴﺘﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻓﻠﻮﭼﺎرت شکل ‏3‑14ﭘـﺲ از ﺗﻌﻴـﻴﻦ ﻧﻘـﺎط اﻧﺘﻬـﺎﻳﻲ و اﻧﺸـﻌﺎﺑﻲ ﺑـﺎ اﺳﺘﻔﺎده از راﺑﻄﻪﻫﺎي (3-7) و (3-8) از ﺳﻤﺖ راﺳﺖﺗﺮﻳﻦ ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ ﺷﺮوع ﻣﻲﻛﻨﻴﻢ و در ﻣﺴﻴﺮ ﭘﻴﻜﺴـﻞﻫـﺎي ﺳـﻴﺎه ﺣﺮﻛﺖ ﻣﻲﻛﻨﻴﻢ. در ﻫﺮﺟﺎﻳﻲ از اﻟﮕﻮرﻳﺘﻢ اﻳﻦ ﺷﺮط را ﻛﻪ اﮔﺮ ﺑﻪ ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ ﻛﻪ از آن ﺷﺮوع ﻛﺮدﻳﻢ ﺑﺮﺳﻴﻢ، ﻳﻚ ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ ﺧﻮاﻫﻴﻢ داﺷﺖ، ﺑﺮرﺳﻲ ﻣﻲﻛﻨﻴﻢ.

اﮔﺮ در ﻃﻮل ﻣﺴﻴﺮ ﺑﻪ ﻳﻚ ﻧﻘﻄﻪ ﭼﻨﺪ اﻧﺸﻌﺎﺑﻲ ﺑﺮﺧﻮردﻳﻢ ﺑﺎﻳﺪ دو ﻛﺎر اﻧﺠﺎم دﻫﻴﻢ. اﺑﺘﺪا ﻣﺴﻴﺮي را ﻛـﻪ ﺑـﻪ اﻳـﻦ ﻧﻘﻄـﻪ رﺳﻴﺪﻳﻢ را ذﺧﻴﺮه و ﺳﭙﺲ ﻣﺴﻴﺮﻫﺎي ﻣﻨﺸﻌﺐ از اﻳﻦ ﻧﻘﻄﻪ ﭼﻨﺪ اﻧﺸﻌﺎﺑﻲ را ﻣﺸـﺨﺺ میﻛﻨﻴﻢ. از ﻳﻜـﻲ از ﻣﺴـﻴﺮﻫﺎي ﻣﺸﺨﺺ ﺷﺪه –ﻏﻴﺮ از ﻣﺴﻴﺮي ﻛﻪ از آن، ﺑﻪ ﻧﻘﻄﻪ ﭼﻨﺪ اﻧﺸﻌﺎﺑﻲ رﺳﻴﺪﻳﻢ– ﺣﺮﻛﺖ ﻣﻲﻛﻨﻴﻢ. اﻳﻦ ﺑﺎر اﮔﺮ ﺑـﻪ ﻧﻘﻄـﻪ ﭼﻨـﺪ اﻧﺸﻌﺎﺑﻲ اول ﻳﺎ ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ ﻛﻪ از آن ﺷﺮوع ﻛﺮدﻳﻢ ﺑﺮﺳﻴﻢ، ﻳﻚ ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ ﺧـﻮاﻫﻴﻢ داﺷـﺖ. اﮔـﺮ ﺑـﻪ ﻧﻘﻄـﻪ اﻧﺘﻬـﺎﻳﻲ دﻳﮕﺮي ﺑﺮﺳﻴﻢ ﺑﻪ اﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ در اﻳﻦ ﻣﺴﻴﺮ، ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ­اي وﺟﻮد ﻧﺪارد و ﺑﻪ ﻧﻘﻄﻪ ﭼﻨﺪ اﻧﺸﻌﺎﺑﻲ ﺑﺮﻣﻲﮔـﺮدﻳﻢ و ﻣﺴﻴﺮﻫﺎي دﻳﮕﺮ را ﺑﺮرﺳﻲ ﻣﻲﻛﻨﻴﻢ. اﮔﺮ ﻫﻤﻪ ﻣﺴﻴﺮﻫﺎي ﻧﻘﻄﻪ ﭼﻨﺪ اﻧﺸﻌﺎﺑﻲ ﺑﺮرﺳﻲ ﺷـﺪ و ﺑـﻪ ﻣﻨﺤﻨـﻲ ﺑﺴـﺘﻪاي ﺑﺮﺧـﻮرد ﻧﻜﺮدﻳﻢ، ﺑﻪ ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ ﺑﻌﺪي ﻣﺮاﺟﻌﻪ ﻣﻲﻛﻨﻴﻢ و اﻳﻦ ﻛﺎر را ﺗﺎ ﭘﺎﻳﺎن ﺑﺮرﺳﻲ ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎ اداﻣﻪ ﻣﻲدﻫﻴﻢ.

ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺣﺮوف ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ، ﺑﻴﺸﺘﺮﻳﻦ ﻧﻘﺎط اﻧﺸﻌﺎبِ ﺣﺮوﻓﻲ ﻛﻪ داراي ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ ﻫﺴﺘﻨﺪ، ﻣﺮﺑﻮط ﺑﻪ ﺣﺮف ”ط“ ﻣﻲﺑﺎﺷﺪ ﻛﻪ ﺑﺴﺘﻪ ﺑﻪ ﻧﻮع ﻗﻠﻢِ ﻣﻮرد اﺳﺘﻔﺎده ﺣﺪاﻛﺜﺮ در دو ﻧﻘﻄﻪ ﺑﺮ روي ﻣﻨﺤﻨـﻲ ﺑﺴـﺘﻪ داراي ﻧﻘﻄـﻪ اﻧﺸـﻌﺎب ﻣـﻲﺑﺎﺷـﺪ. ﺑﻴﺸﺘﺮﻳﻦ ﻧﻘﺎط اﻧﺸﻌﺎﺑﻲ ﺑﺮ روي ﻳﻚ ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ زﻣﺎﻧﻲ اﺗﻔﺎق ﻣﻲاﻓﺘﺪ ﻛﻪ ﺣﺮف ”ط“ ﺑﻪ ﻳﻚ ﺣﺮف دﻳﮕﺮ ﭼﺴـﺒﻴﺪه ﺑﺎﺷـﺪ ﻛﻪ ﻣﻘﺪار آن 3 ﻣﻲﺑﺎﺷﺪ. ﺑﻨﺎﺑﺮاﻳﻦ در اﻧﺠﺎم اﻟﮕﻮرﻳﺘﻢ اﮔﺮ در ﻳﻚ ﻣﺴﻴﺮ، ﺑﻪ ﺑﻴﺸﺘﺮ از ﺳﻪ ﻧﻘﻄـﻪ اﻧﺸـﻌﺎﺑﻲ ﺑﺮﺧـﻮرد ﻛـﺮدﻳﻢ، ﻣﻄﻤﺌﻦ ﻫﺴﺘﻴﻢ ﻛﻪ در آن ﻣﺴﻴﺮ، ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪاي وﺟﻮد ﻧﺨﻮاﻫﺪ داﺷﺖ.

3-5-5-              اﺳﺘﺨﺮاج اﺳﺘﺮوك ﻫﺎ

اﺑﺘﺪا ﺑﻪ ﺗﻌﺮﻳﻒ اﺳﺘﺮوك[61] ﻣﻲﭘﺮدازﻳﻢ.

اﺳﺘﺮوك: ﺑﻪ ﻳﻚ ﻣﺠﻤﻮﻋﻪ از ﭘﻴﻜﺴﻞﻫﺎي ﻣﺘﺼﻞ ﺑﻪ ﻫﻢ در ﺗﺼﻮﻳﺮ ﻧﺎزك ﺷﺪه، ﻳﻚ اﺳﺘﺮوك ﮔﻔﺘﻪ ﻣﻲﺷﻮد.

اﮔﺮ ﻫﻤﻪ ﭘﻴﻜﺴﻞﻫﺎي ﻳﻚ اﺳﺘﺮوك داراي ﻫﻤﺴﺎﻳﮕﻲﻫﺎي ﻫﺸﺘﮕﺎﻧﻪ ﻛﻤﺘﺮ از 2 ﺑﺎﺷﻨﺪ، ﺑﻪ آن ﺗـﻚاﺳـﺘﺮوك[62] و در ﻏﻴـﺮ اﻳﻦ ﺻﻮرت ﺑﻪ آن ﭼﻨﺪاﺳﺘﺮوك[63] ﮔﻔﺘﻪ ﻣﻲﺷﻮد. در واﻗﻊ ﺗﻚاﺳﺘﺮوكﻫﺎ، اﮔﺮ ﺑﻪ ﺻﻮرت ﻳﻚ ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ ﻧﺒﺎﺷـﻨﺪ، ﻓﻘـﻂ و ﻓﻘﻂ داراي 2 ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ ﻣﻲﺑﺎﺷﻨﺪ و ﭼﻨﺪاﺳﺘﺮوكﻫﺎ ﺣﺪاﻗﻞ داراي ﻳﻚ ﻧﻘﻄﻪ اﻧﺸﻌﺎب ﻣﻲﺑﺎﺷﻨﺪ. در شکل ‏3‑15ﭼﻨـﺪ ﻧﻤﻮﻧﻪ از اﺳﺘﺮوكﻫﺎ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.

شکل ‏3‑15 ﭼﻨﺪ ﻧﻤﻮﻧﻪ از اﺳﺘﺮوك ﻫﺎي ﺗﻚ و ﭼﻨﺪ اﺳﺘﺮوﻛﻲ

ﺑﺮاي ﺗﺸﺨﻴﺺ ﻋﻨﺎﺻﺮ ﺗﺸﻜﻴﻞدﻫﻨﺪه ﺣﺮوف ﺑﺎﻳﺪ ﺑﺘﻮاﻧﻴﻢ اﺳﺘﺮوكﻫﺎي ﻫﺮ زﻳﺮﻛﻠﻤﻪ را ﺟﺪا ﻛﻨﻴﻢ ﺗﺎ بتوانیم در ﻣﺮاﺣـﻞ ﺑﻌﺪي ﺑﺎ اﺳﺘﻔﺎده از ﺗﺒﺪﻳﻞ ﻫﺎف، ﻧﻮع ﺧﻄﻮط ﻫﺮ اﺳﺘﺮوك را ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﻢ. در ﺿﻤﻦ باید چند استروک ها را نیز به اﺳﺘﺮوك ﺗﺒﺪﻳﻞ ﻛﻨﻴﻢ.  ﺑﺮاي اﻳﻦ ﻛﺎر ﺑﻪ ﺻﻮرت ﻓﻠﻮﭼﺎرت شکل ‏3‑16ﻋﻤﻞ ﻣﻲﻛﻨﻴﻢ.

شکل ‏3‑16 اﻟﮕﻮرﻳﺘﻢ اﺳﺘﺨﺮاج اﺳﺘﺮوك ﻫﺎ از ﺗﺼﻮﻳﺮ

در ﻣﺮﺣﻠﻪ ﻗﺒﻞ (ﺑﺨﺶ 3-5-4) ﻣﻨﺤﻨﻲﻫﺎي ﺑﺴﺘﻪ در زﻳﺮﻛﻠﻤﻪ را ﺷﻨﺎﺳـﺎﻳﻲ ﻛـﺮدﻳﻢ. ﭘـﺲ ﻣﻄﻤـﺌﻦ ﻫﺴـﺘﻴﻢ ﻛـﻪ در زﻳﺮﻛﻠﻤﻪ، ﻓﻘﻂ اﺳﺘﺮوكﻫﺎي ﺗﻚ و ﭼﻨﺪ اﺳﺘﺮوﻛﻲ وﺟـﻮد دارد. ﺑـﺎ اﺳـﺘﻔﺎده از رواﺑـﻂ
(3-7) و (3-8) ﺑـﻪ ﺗﺮﺗﻴـﺐ ﻧﻘـﺎط اﻧﺘﻬﺎﻳﻲ و اﻧﺸﻌﺎب را ﭘﻴﺪا ﻣﻲﻛﻨﻴﻢ و در آراﻳﻪاي ذﺧﻴﺮه ﻣﻲﻛﻨﻴﻢ. از ﺳﻤﺖ راﺳﺖﺗﺮﻳﻦ ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ ﺷﺮوع ﻣﻲﻛﻨﻴﻢ و روي ﭘﻴﻜﺴﻞﻫﺎي ﺳﻴﺎه ﺣﺮﻛﺖ ﻣﻲﻛﻨﻴﻢ. اﮔﺮ ﺑﻪ ﻧﻘﻄﻪ اﻧﺘﻬﺎﻳﻲ دﻳﮕﺮ رﺳﻴﺪﻳﻢ، اﻳﻦ ﻣﺴﻴﺮ ﻣﺮﺑﻮط ﺑﻪ ﻳﻚ ﺗﻚاﺳﺘﺮوك ﻣﻲﺑﺎﺷﺪ ﻛﻪ در اﻳﻦ ﺻﻮرت آن را از ﺗﺼﻮﻳﺮ اﺻﻠﻲ ﺣﺬف ﻛﺮده، ﻫﺮ دو ﻧﻘﺎط اﻧﺘﻬﺎﻳﻲ را از آراﻳﻪ ﻧﻘﺎط اﻧﺘﻬﺎﻳﻲ ﺣﺬف ﻣﻲﻛﻨﻴﻢ و آن ﻣﺴـﻴﺮ را در ﻣﺠﻤﻮﻋﻪ اﺳﺘﺮوكﻫﺎي ﺗﺼﻮﻳﺮ ذﺧﻴﺮه ﻣﻲﻛﻨﻴﻢ. در ﻏﺮ اﻳﻦ ﺻﻮرت اﮔﺮ ﺑﻪ ﻳﻚ ﻧﻘﻄـﻪ اﻧﺸـﻌﺎﺑﻲ رﺳـﻴﺪﻳﻢ، اﻳـﻦ ﻣﺴـﻴﺮ ﻣﺮﺑﻮط ﺑﻪ ﻳﻜﻲ از ﻣﺴﻴﺮﻫﺎي ﻧﻘﻄﻪ ﭼﻨﺪ اﻧﺸﻌﺎﺑﻲ اﺳﺖ ﻛﻪ ﺑﺎز ﻫﻢ ﻫﺮ دو ﻧﻘﺎط اﻧﺘﻬﺎﻳﻲ و اﻧﺸﻌﺎﺑﻲ را ﺑﻪ ﺗﺮﺗﻴﺐ از آراﻳﻪ ﻧﻘـﺎط اﻧﺘﻬﺎﻳﻲ و اﻧﺸﻌﺎﺑﻲ ﺣﺬف ﻣﻲﻛﻨﻴﻢ و آن ﻣﺴﻴﺮ را در ﻣﺠﻤﻮﻋﻪ اﺳﺘﺮوكﻫﺎي ﺗﺼﻮﻳﺮ ذﺧﻴﺮه ﻣـﻲﻛﻨـﻴﻢ. اﻳـﻦ کـﺎر را ﺗﺎ ﺟـﺎﻳﻲ اداﻣﻪ ﻣﻲدﻫﻴﻢ ﻛﻪ دﻳﮕﺮ ﻫﻴﭻ ﭘﻴﻜﺴﻠﻲ در ﺗﺼﻮﻳﺮ ﺑﺎﻗﻲ ﻧﻤﺎﻧﺪ.

اﻛﻨﻮن ﺑﺎ اﺳﺘﻔﺎده از ﺗﺒﺪﻳﻞ ﻫﺎف ﺑﺎﻳﺪ ﺧﻄﻮط  اﺳﺘﺮوكﻫﺎ را ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﻢ.

3-5-6-              اﺳﺘﺨﺮاج ﺧﻄﻮط از اﺳﺘﺮوك ﻫﺎ

 روشﻫﺎي ﻣﺘﻔﺎوﺗﻲ ﺑﺮاي اﺳﺘﺨﺮاج ﺧﻄﻮط اﺳﺘﺮوكﻫﺎ وﺟﻮد دارد. ﻣﺘﺪاولﺗﺮﻳﻦ روش اﺳﺘﻔﺎده از ﺗﺒﺪﻳﻞ ﻫﺎف اﺳﺖ.

3-5-6-1-       ﺗﺒﺪﻳﻞ ﻫﺎف

ﺗﺒﺪﻳﻞ ﻫﺎف ﻳﻚ روش اﺳﺘﺎﻧﺪارد ﺑﺮاي آﺷﻜﺎرﻛﺮدن وﻳﮋﮔﻲﻫﺎ از ﺟﻤﻠﻪ ﺧﻂﻫﺎ در ﺗﺼﻮﻳﺮ ﻣﻲﺑﺎﺷﺪ. ﻣﻔﻬـﻮم اﺻـﻠﻲ آن درﺗﻌﺮﻳﻒ ﻳﻚ ﻧﮕﺎﺷﺖ ﺑﻴﻦ ﻓﻀﺎي ﺗﺼﻮﻳﺮ[64] و ﻓﻀﺎي ﭘﺎراﻣﺘﺮ[65] ﻣﻲ ﺑﺎﺷﺪ. ﺑﺪﻳﻦ ﺻﻮرت ﻛﻪ ﻧﻘﺎط ﻳﺎ ﻟﺒﻪ­ﻫﺎ در ﻓﻀـﺎي ﭘـﺎراﻣﺘﺮ ﺑـﻪ ﺻﻮرت رأسﻫﺎي ﻣﻨﻔﺮد ﻧﮕﺎﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ. ﺳﻠﻮلﻫﺎي اﻧﺘﺨﺎب ﺷﺪه در ﻓﻀﺎي ﭘﺎراﻣﺘﺮ ﻣﻄـﺎﺑﻖ ﺑـﺎ ﻫﻤـﻪ دﺳـﺘﻪ ﻧﻘﻄـﻪﻫـﺎ در ﺗﺼﻮﻳﺮ اﻧﺒﺎﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ. ﻣﺎﻛﺰﻳﻤﻢ ﻣﺤﻠﻲ در اﻧﺒﺎﺷﺘﮕﺮ ﺑﺎ ﭘﺎراﻣﺘﺮﻫﺎي ﺷﻜﻞ ﻣﺸﺨﺺ ﺷﺪه ﻣﻄﺎﺑﻘﺖ ﻣﻲﻛﻨﺪ.

ﻓﺮض ﻛﻨﻴﺪ ﺑﺮاي n ﻧﻘﻄﻪ از ﺗﺼﻮﻳﺮ ﻣﻲ ﺧﻮاﻫﻴﻢ زﻳﺮ ﻣﺠﻤﻮﻋﻪ ﻫﺎﻳﻲ از اﻳﻦ ﻧﻘﺎط را ﻛﻪ روي ﺧﻄﻮط راﺳﺖ ﻗـﺮار دارﻧـﺪ، ﭘﻴﺪا ﻛﻨﻴﻢ. ﻳﻚ راه ﺣﻞ ﻣﻤﻜﻦ اﻳﻦ اﺳﺖ ﻛﻪ اﺑﺘﺪا ﺗﻤﺎم ﺧﻄﻮﻃﻲ را ﻛﻪ ﺑﻪ ﻫﺮ زوج ﻧﻘﻄﻪ ﻣﻌﻴﻦ ﻣﻲﺷﻮﻧﺪ، ﭘﻴﺪا ﻛﻨﻴﻢ. ﻣﺸﻜﻞ  اﻳﻦ روال اﻳﻦ اﺳﺖ ﻛﻪ ﺷﺎﻣﻞ ﭘﻴﺪا ﻛﺮدن 2n(n − 1) / 2 ~ n ﺧﻂ و ﺳﭙﺲ اﺟﺮاي 3 (n)(n(n − 1)) / 2 ~ nﻣﻘﺎﻳﺴـﻪ ﻫﺮ ﻧﻘﻄﻪ ﺑﺎ ﺗﻤﺎم ﺧﻄﻮط اﺳﺖ. اﻳﻦ روش در ﺗﻤﺎم ﻛﺎرﺑﺮدﻫﺎ ﺟﺰ ﺗﻌﺪادي از ﻛﺎرﺑﺮدﻫﺎي ﻛﻮﭼﻚ، ﻣﺎﻧﻊ ﻣﺤﺎﺳﺒﺎﺗﻲ دارد.

ﻫﺎف [1962] راه دﻳﮕﺮي را ﭘﻴﺸﻨﻬﺎد ﻛﺮد ﻛﻪ ﻣﻌﻤﻮﻻً ﺑﺎ ﻋﻨﻮان ﺗﺒﺪﻳﻞ ﻫﺎف ﺑﻪ آن اﺷﺎره ﺷﺪه اﺳﺖ. ﻧﻘﻄﻪ (xi , yi) و ﻣﻌﺎدﻟﻪ ﻛﻠﻲ ﻳﻚ ﺧﻂ راﺳﺖ در ﻗﺎﻟﺐ ﺷـﻴﺐ-ﻋـﺮض از ﻣﺒـﺪا،  yi = axi+bرا در ﻧﻈـﺮ ﺑﮕﻴﺮﻳـﺪ. ﺧﻄـﻮط ﺑﺴـﻴﺎري از (xi , yi) ﻋﺒﻮر ﻣﻲﻛﻨﻨﺪ، ﻛﻪ ﻫﺮ ﻳﻚ از آﻧﻬﺎ ﺑﺎزاي ﻣﻘﺎدﻳﺮي از aو b ﻣﻌﺎدﻟﻪ yi =axi+b را ﺑﺮآورده ﻣﻲﻛﻨﻨﺪ. ﺑﺎ اﻳـﻦ ﺣﺎل ﺑﺎ ﻧﻮﺷﺘﻦ اﻳﻦ ﻣﻌﺎدﻟﻪ ﺑﻪ ﺻﻮرت-axi + yi  b = و در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺻﻔﺤﻪ (ab ﻛﻪ ﻓﻀﺎي ﻋﺎﻣﻞ ﻧﻴـﺰ ﺧﻮاﻧـﺪه ﻣـﻲ ﺷﻮد)، ﺑﺎزاي ﻳﻚ زوج ﺛﺎﺑﺖ (xi , yi) ﺗﻨﻬﺎ ﻳﻚ ﻣﻌﺎدﻟﻪ ﺧﻂ در ﺻﻔﺤﻪ ab ﺑﺪﺳﺖ ﻣﻲآﻳـﺪ. ﮔﺬﺷـﺘﻪ از اﻳـﻦ، ﻧﻘﻄـﻪ دﻳﮕـﺮ (xi , yi) ﻧﻴﺰ در ﻓﻀﺎي ﻋﺎﻣﻞ، ﺧﻄﻲ ﻣﺮﺑﻮط ﺑﻪ ﺧﻮد دارد و اﻳﻦ ﺧﻂ ﺑﺎ ﺧﻂ ﻣﺮﺑـﻮط ﺑـﻪ  (xi , yi) در )′ (a′, b ﺗﻼﻗـﻲ ﻣﻲ ﻛﻨﺪ، ﻛﻪ ′a ﺷﻴﺐ و ′b ﻋﺮض از ﻣﺒﺪا ﺧﻂ ﮔﺬرﻧﺪه ﺑـﺮ دو ﻧﻘﻄـﻪ ﺑـﻪ (xi , yi) و ) (xj , yj در ﺻـﻔﺤﻪ xy اﺳـﺖ. در واﻗﻊ ﻫﺮ ﻳﻚ از ﻧﻘﺎط روي اﻳﻦ ﺧﻂ، ﺧﻄﻲ در ﻓﻀﺎي ﻋﺎﻣﻞ دارد ﻛﻪ ﻫﻤﻪ آﻧﻬﺎ در )′(a′, b ﺗﻼﻗﻲ ﻣﻲﻛﻨﻨـﺪ. شکل ‏3‑17 اﻳﻦ ﻣﻔﺎﻫﻴﻢ را ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ.

شکل ‏3‑17 (اﻟﻒ) ﺻﻔﺤﻪ xy (ب) ﻓﻀﺎي ﻋﺎﻣﻞ

ﺟﺬاﺑﻴﺖ ﻣﺤﺎﺳﺒﺎﺗﻲ ﺗﺒﺪﻳﻞ ﻫﺎف ﻧﺎﺷﻲ از ﺗﻘﺴﻴﻢ ﻓﻀﺎي ﭘﺎراﻣﺘﺮ ﺑﻪ ﺳﻠﻮﻟﻬﺎي ﻣﺸﻬﻮر اﻧﺒﺎﺷﺘﮕﺮ[66] اﺳﺖ، ﻛﻪ در آن ﺑﺎزهﻫﺎي ) aminو  (amaxو ) bminو (bmax ﻣﺤﺪوده­ﻫﺎي ﻣﻮرد اﻧﺘﻈﺎر ﻣﻘﺎدﻳﺮ ﺷﻴﺐ و ﻋﺮض از ﻣﺒﺪأ ﻫﺴـﺘﻨﺪ. ﺳـﻠﻮل­هاي ) jو  (iﺑـﺎ  ﻣﻘﺪار اﻧﺒﺎﺷﺘﮕﺮ )، H(i, jﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻣﺮﺑﻊ ﻣﺮﺑﻮط ﺑﻪ ﻣﺨﺘﺼﺎت ﻓﻀﺎي ﻋﺎﻣﻞ
((aiو  bj اﺳﺖ. در اﺑﺘﺪا اﻳﻦ ﺳﻠﻮلﻫﺎ ﺻﻔﺮ ﻗﺮار داده ﻣﻲﺷﻮﻧﺪ. آﻧﮕﺎه ﺑﺮاي ﻫﺮ ﻧﻘﻄﻪ ) xkو  (ykدر ﺻﻔﺤﻪ ﺗﺼﻮﻳﺮ، ﻋﺎﻣﻞ  aرا ﺑﺮاﺑﺮ ﻫﺮ ﻳﻚ از ﻣﻘﺎدﻳﺮ زﻳﺮ ﺗﻘﺴﻴﻢ ﻣﺠـﺎز روي اﺳﺘﻔﺎده از ﻣﻌﺎدﻟﻪ b=-xka+yk ﻣﻘﺪار b ﻣﺘﻨﺎﻇﺮ را ﭘﻴـﺪا ﻣـﻲﻛﻨـﻴﻢ. آﻧﮕـﺎه ­bﻫـﺎي ﺣﺎﺻـﻞ را ﺑـﻪ ﻧﺰدﻳﻜﺘﺮﻳﻦ ﻣﻘﺪار ﻣﺠﺎز روي ﻣﺤﻮر  bﮔﺮد ﻣﻲﻛﻨﻴﻢ. اﮔﺮ ﺑﺎ اﻧﺘﺨﺎب  ، apﺟﻮاب  bqﺑﻪ دﺳﺖ آﻳﺪ، ﻗﺮار ﻣﻲدﻫﻴﻢH(p,q)=H(p,q)+1 .

  در ﭘﺎﻳﺎن اﻟﮕﻮرﻳﺘﻢ، ﻣﻘﺪار  Mدر ) H(i, jﻣﺘﻨﺎﻇﺮ ﺑﺎ  Mﻧﻘﻄﻪ در ﺻﻔﺤﻪ  xyاﺳـﺖ ﻛـﻪ روي ﺧـﻂ y=aix+bj ﻗـﺮار دارﻧﺪ. دﻗﺖ ﻫﻤﺮاﺳﺘﺎﻳﻲ[67] اﻳﻦ ﻧﻘﺎط ﺑﺎ ﺗﻌﺪاد ﺗﻘﺴﻴﻢﻫﺎي ﺻﻔﺤﻪ  abﺗﻌﻴﻴﻦ ﻣﻲﺷﻮد.

ﻳﻚ ﻣﺸﻜﻞ در ﻣﻮرد اﺳﺘﻔﺎده از ﻣﻌﺎدﻟﻪ y=ax+b ﺑﺮاي ﺗﻮﺻﻴﻒ ﺧﻂ اﻳﻦ اﺳﺖ ﻛﻪ وﻗﺘﻲ ﺧﻂ ﻋﻤﻮدي ﻣﻲﺷﻮد، ﺷـﻴﺐ 1و ﻋﺮض از ﻣﺒﺪا آن ﺑﻪ ﺑﻲ­ﻧﻬﺎﻳﺖ ﻣﻴﻞ ﻣﻲﻛﻨﺪ. ﻳﻚ راه ﺣﻞ ﺑﺮاي اﻳﻦ ﻣﺸﻜﻞ اﺳـﺘﻔﺎده از راﺑﻄـﻪ (3-9) ﺗﻮﺻـﻴﻒ ﻧﺮﻣـﺎل[68]  ﺧﻂ اﺳﺖ:

ρ = x cosθ + y sinθ                                                                                                   (3-9)

 شکل ‏3‑18 ﻣﻌﻨﺎي ﭘﺎراﻣﺘﺮﻫﺎي ﻣﻌﺎدﻟﻪ (3-9) را ﻧﺸﺎن ﻣﻲدﻫﺪ. از ﻧﻈـﺮ ﺟـﺪول ﺗﺸـﻜﻴﻞ اﻧﺒﺎﺷـﺘﮕﺮﻫﺎ، اﻳـﻦ ﺗﻮﺻـﻴﻒ ﺗﻔﺎوﺗﻲ ﺑﺎ ﺗﻮﺻﻴﻒ ﺷﻴﺐ- ﻋﺮض از ﻣﺒﺪا ﻧﺪارد. ﺑﺎ اﻳﻦ ﺣﺎل ﻣﻨﺤﻨﻲﻫﺎ در ﺻﻔﺤﻪ  ρθﺑﻪ ﺟـﺎي ﺧﻄـﻮط راﺳـﺖ ﺳﻴﻨﻮﺳـﻲ ﻫﺴﺘﻨﺪ. ﻣﺎﻧﻨﺪ ﮔﺬﺷﺘﻪ  Mﻧﻘﻄﻪ ﻫﻤﺮاﺳﺘﺎ ﻛﻪ روي ﺧﻂ ρi=xcosθj+ysinθj ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﻨﺪ، در ﻓﻀـﺎي ﻋﺎﻣـﻞ  M ،ρθﻣﻨﺤﻨﻲ ﺳﻴﻨﻮﺳﻲ دارﻧﺪ ﻛﻪ در (ρij) ﺗﻼﻗﻲ ﻣﻲ ﻛﻨﻨﺪ. ﺑﺎ اﻓﺰاﻳﺶ ﮔﺎم ﺑﻪ ﮔﺎم  θو ﭘﻴـﺪا ﻛـﺮدن  ρﻫـﺎي  ﻣﺘﻨﺎﻇﺮ،  Mدراﻳﻪ در اﻧﺒﺎﺷﺘﮕﺮ )H(i, j ﻛﻪ ﻣﺮﺑﻮط ﺑﻪ ﺳﻠﻮل ﻣﻌﻴﻦ ﺷﺪه ﺑﺎ (ρij) اﺳﺖ، ﺑﺪﺳﺖ ﻣﻲ آﻳـﺪ. ﺑـﻪ ﻋﻨـﻮان ﻣﺜﺎل در شکل ‏3‑19 ﺧﻂﻫﺎي ﻣﺨﺘﻠﻒ ﺗﺼﻮﻳﺮ آﺷﻜﺎر ﻣﻲﺷﻮد.

شکل ‏3‑18 (اﻟﻒ)ﻧﻤﺎﻳﺶ ﻧﺮﻣﺎل ﻳﻚ ﺧﻂ (ب) ﭼﻨﺪي ﺳﺎزي ﺻﻔﺤﻪ ρθ ﺑﻪ ﺳﻠﻮل ﻫﺎ

شکل ‏3‑19 آراﻳﻪ اﻧﺒﺎﺷﺘﮕﺮ(ﺳﻪ ﭘﻴﻚ ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪه) [40]

ﻫﻤﭽﻨﻴﻦ در شکل ‏3‑20 اﻟﮕﻮرﻳﺘﻢ ﺗﺒﺪﻳﻞ ﻫﺎف ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.

 

For each pi=(Xi, Yi) in I do

For θ=0 toStep Δθ do

ρ = Xi cosθ + Yi sinθ

                        H(ρ, θ)= H(ρ, θ)+1

End for

End for

شکل ‏3‑20 اﻟﮕﻮرﻳﺘﻢ ﺗﺒﺪﻳﻞ ﻫﺎف[35]

3-5-7-              اﻟﮕﻮرﻳﺘﻢ ﺗﺒﺪﻳﻞ ﻫﺎف اﺻﻼح ﺷﺪه

همان طور که توضیح داده شد، تبدیل هاف بین هر دو نقطه از تصویر، یک خط را ایجاد می­کند. در این صورت برای استخراج خطوط اصلی تصویر، با خطوط زیادی در ارتباط هستیم که باید با یک الگوریتم خاص خطوط اضافی حذف شوند [40]. برای این کار از کدهای زنجیره­ای تصویر استفاده می­کنیم.

3-5-7-1-       ﻛﺪ زﻧﺠﻴﺮه اي

 ﺑﺮاي ﺗﺼﺎوﻳﺮِ ﻧﺎزك ﺷﺪه ﺣﺮوف و زﻳﺮﻛﻠﻤﺎت ﻓﺎرﺳﻲ ﻣﻲﺗﻮاﻧﻴﻢ ﻛﺪ زﻧﺠﻴﺮه­اي اﻳﺠﺎد ﻛﻨﻴﻢ و آن ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛـﻪ ﺑﺮاي ﻫﺮ ﭘﻴﻜﺴﻞِ ﺳﻴﺎه از ﺗﺼﻮﻳﺮ، ﻫﻤﺴﺎﻳﮕﻲﻫﺎي ﻫﺸﺘﮕﺎﻧﻪ آن را در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ و ﺑﺎ ﺗﻮﺟﻪ ﺑـﻪ شکل ‏3‑21 ﺑـﻪ ﺗﺮﺗﻴﺐ ﺣﺮﻛﺖ ﺑﺮ روي ﭘﻴﻜﺴﻞﻫﺎي ﺷﻜﻞ، ﻛﺪ آن ﺟﻬﺖ در ﻛﺪ زﻧﺠﻴﺮهاي ذﺧﻴﺮه ﻣﻲﺷﻮد.

شکل ‏3‑21 ﻛﺪﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻫﺮ ﺟﻬﺖ از ﭘﻴﻜﺴﻞ ﻫﺎي ﻫﺸﺘﮕﺎﻧﻪ

ﺑﺮاي ﻣﺜﺎل در شکل ‏3‑21 ﺑﺮاي ﺣﺮف ”ب“ ﻛﺪ زﻧﺠﻴﺮه­اي ﻧﺸﺎن داده ﺷﺪه اﺳﺖ. ﻧﻘﻄﻪ ﺷﺮوع ﺑﺮ روي ﺷﻜﻞ از ﺳـﻤﺖ راﺳﺖ و ﺑﺎﻻي ﺗﺼﻮﻳﺮ اﻧﺘﺨﺎب ﻣﻲﺷﻮد.

ﻛﺪ زﻧﺠﻴﺮه­اي اﻳﻦ اﻣﻜﺎن را ﺑﻪ ﻣﺎ ﻣﻲدﻫﺪ ﻛﻪ ﻫﻤﻮاره ﺑﺮ روي آن ﭘﻴﻜﺴﻞﻫﺎﻳﻲ ﻛﻪ اﺳﻜﻠﺖ اﺻﻠﻲ ﺣﺮف را ﺗﺸﻜﻴﻞ ﻣـﻲ دﻫﻨﺪ، ﺣﺮﻛﺖ ﻛﻨﻴﻢ و ﺗﺒﺪﻳﻞ ﻫﺎف را ﺑﻪ ﻧﺤﻮي ﺑﺮ روي آن اعمال کنیم که منجر به الگوریتم هاف اصلاح شده می­شود.

اﮔﺮ ﺗﺒﺪﻳﻞ ﻫﺎف ﻣﻌﻤﻮﻟﻲ را روي ﻣﺜﻼً ﺣﺮف ”ب“ ﻛﻪ در شکل ‏3‑21 آﻣﺪه اﻧﺠﺎم دﻫﻴﻢ، داراي ﺧﻄﻮط اضافی زیادی ﺧﻮاﻫﺪ ﺑﻮد. ﺑﺮاي ﻣﺜﺎل ﻳﻜﻲ از اﻳﻦ ﺧﻄﻮط، ﺧﻂ اتصال پیکسل اول و پیکسل آخر می­باشد. این خط از خطوط اصلی شکل نیست. ﺑﺮاي ﺣﻞ اﻳﻦ ﻣﺸﻜﻞ از ﻛﺪ زﻧﺠﻴﺮه­ای اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ و ﺗﻨﻬﺎ ﺧﻄﻮﻃﻲ را ﻛﻪ ﺑﺮ روی بدنه اصلی حرف می­باشد جدا می­کند. شبه کد این الگوریتم با زاویه 45 درجه در [38] انجام شده و در شکل ‏3‑22 نشان داده شده است.

For each pi=(Xi, Yi) in I do

For θ=0 toStep Δθ do

If θ is VALID then

             ρ = Xi cosθ + Yi sinθ

           H(ρ, θ)= H(ρ, θ)+1

              End if

         End for

End for

شکل ‏3‑22 الگوریتم تبدیل هاف اصلاح شده [38]

اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﺗﻤﺎﻣﻲ ﺧﻄﻮط ﺗﺸﻜﻴﻞ دﻫﻨﺪه ﺣﺮف را اﺳﺘﺨﺮاج ﻣﻲﻛﻨﺪ و اﮔﺮ ﻧﻮﻳﺰي روي ﺧﻄﻮط ﺑﺎﺷﺪ، آﻧﻬﺎ را ﻧﻴـﺰ ﺑـﻪ ﻋﻨﻮان ﺧﻄﻮط، ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ. ﺑﺮاي اﻳﻨﻜﻪ ﺑﺘﻮاﻧﻴﻢ ﺗﻨﻬﺎ ﺧﻄﻮط اصلی شکل را ﭘﻴـﺪا ﻛﻨـﻴﻢ از اﻟﮕـﻮرﻳﺘﻢ ﻫـﺎف آرامﺷـﺪه اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ. در اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﺑﻪ ﺟﺎي اﺳﺘﻔﺎده از 45=θ∆، از 5/22=θ∆ استفاده می­کنیم. در اﻳـﻦ ﺣﺎﻟـﺖ ﻫﻤﺎنﻃﻮر ﻛﻪ در شکل ‏3‑24 ﻧﺸﺎن داده ﺷﺪه اﺳﺖ، ﺗﻨﻬﺎ ﺧﻄﻮط اﺻﻠﻲ ﺷﻜﻞ اﺳﺘﺨﺮاج ﻣﻲﺷﻮد ﻛﻪ اﻟﺒﺘﻪ ﺗﻤﺎﻣﻲ ﭘﻴﻜﺴﻞﻫﺎی آن دقیقاً بر روی شکل حرف قرار ندارند.

ﻫﺮ ﭘﻴﻜﺴﻞ در ﻳﻚ ﺗﺼﻮﻳﺮ ﻣﺘﻌﻠﻖ ﺑﻪ ﻳﻚ ﺧﻂ ﺑﺎ ﻳﻜـﻲ از 8 زاوﻳـﻪ 0، 5/22، 45، 5/67، 90، 5/112، 135 و 5/157 درﺟﻪ ﻣﻲ ﺑﺎﺷﺪ. ﺑﺎ ﻣﺸﺎﻫﺪه ﻫﻤﺴﺎﻳﮕﻲ 3×3 ﻳﻚ ﭘﻴﻜﺴﻞ، ﺗﻌﺪاد ﭘﻴﻜﺴﻞ ﻫﺎي ﺳﻴﺎه در زواﻳـﺎي اﺻـﻠﻲ 0، 45، 90 و 135 ﻣﺤﺎﺳﺒﻪ ﻣﻲ­ﺷﻮﻧﺪ و به ترتیب D6، D4، D2 و D0 نامیده می­شوند. با توجه به این مقادیر برای هر زاویه اندازه­ای که W نامیده می­شود محاسبه می­گردد و خانه های فضای عامل با توجه به این مقادیر که 1 یا 2 می­باشند جمع می­گردند. این الگوریتم که هاف اصلاح شده نامیده شده، در شکل ‏3‑23 نشان داده شده است.

For each pixel at (xi, yi) coordinate do

D0=P0+P4      –for 0 degree

D2=P1+P5      –for 45 degree

D4=P2+P6      –for 90 degree

D6=P3+P7      –for 135 degree

D8=D0

For i=0:7

θ=i×π/8

ρ = Xi cosθ + Yi sinθ

                  

                               H(ρ, θ)= H(ρ, θ)+W(i)

       End for

End for

شکل ‏3‑23 الگوریتم تبدیل هاف اصلاح شده

3-5-8-              ﺗﺒﺪﻳﻞ اﺳﺘﺮوك ﻫﺎ ﺑﻪ ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺣﺮوف

در مرحله قبل خطوط هر استروک از زیرکلمه تشخیص داده شد و هر خط به یکی از عناصر ابتدایی اصلی – H، V، B و O- نسبت داده شد. همان طور که در شکل ‏3‑24 نشان داده شده است، برای هر استروک ممکن است عناصر ابتدایی زیادی نسبت داده شده باشند که با استفاده از قوانینی آنها را به عناصر ابتدایی دیگر – C، U و L- تبدیل می­کنیم. همان طور که در شکل ‏3‑24 می­بینیم، استروک دوم از حرف «ح» دارای سه خط اصلی به زوایای ۴۵ ، ٩٠ و صفر درجه است که به ترتیب به عناصر ابتدایی اصلی S، V و H نسبت داده می شوند. چون برای هر استروک باید تنها یک عنصر اصلی نسبت داده شود از این رو از قوانین زیر برای این امر استفاده می­شود:

ﻗﺎﻧﻮن اول: ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ اصلی B،S ،V  و H با اﺳﺘﻔﺎده از زواﻳﺎي ﺧﻄﻮط ﺗﻌﻴﻴﻦ ﻣﻲﺷﻮﻧﺪ.

ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ اﮔﺮ ﻳﻚ اﺳﺘﺮوك ﺗﻨﻬﺎ ﺷﺎﻣﻞ ﻳﻚ ﺧﻂ ﺑﺎﺷﺪ ﺑﺎ اﺳﺘﻔﺎده از راﺑﻄﻪ (3-10) ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺗﻌﻴﻴﻦ ﻣﻲﺷﻮﻧﺪ.

IF Stroke=                (3-10)

ﻗﺎﻧﻮن دوم: اﮔﺮ ﺗﺮﺗﻴﺐ ﺧﻄﻮط در ﻳﻚ اﺳﺘﺮوك ﺑﻪ ﺻﻮرت ﻳﻜﻲ از ﺟﻤﻼت راﺑﻄﻪ (3-11) ﺑﺎﺷـﺪ، اﻳـﻦ اﺳـﺘﺮوك را ﺑـﻪ  ﻋﻨﺼﺮ اﺑﺘﺪاﻳﻲ C ﻧﺴﺒﺖ ﻣﻲدﻫﻴﻢ.

If Stroke= →primitive=C           (3-11)

ﻗﺎﻧﻮن ﺳﻮم: اﮔﺮ ﻣﺎﺗﺮﻳﺲ راﺑﻄﻪ (3-11) راﺑﻪ اﻧﺪازه 90 درﺟﻪ ﺧﻼف ﺟﻬﺖ ﻋﻘﺮﺑﻪﻫﺎي ﺳﺎﻋﺖ ﺑﭽﺮﺧﺎﻧﻴﻢ، ﺑﻪ راﺑﻄـﻪ (3- 12) ﻣﻲرﺳﻴﻢ و آن را ﺑﻪ ﻋﻨﺼﺮ اﺑﺘﺪاﻳﻲ U ﻧﺴﺒﺖ ﻣﻲدﻫﻴﻢ.

If Stroke= →primitive=U        (3-12)

ﺗﺒﺼﺮه 1: ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ راﺑﻄﻪ (3-13) اﮔﺮ ﺗﺮﺗﻴﺐ ﺧﻄﻮط در ﻳﻚ ﻣﺠﻤﻮﻋﻪ اﺳـﺘﺮوك ﺑـﻪ ﺻـﻮرت90، 0 و 90 درجه ﺑﺎﺷـﺪ و اﻧﺪازه ﺧﻂ ﺑﺎ زاوﻳﻪ 0 درﺟﻪ ﺑﺰرﮔﺘﺮ از ﻣﺠﻤﻮع اﻧﺪازه دو ﺧﻂ دﻳﮕﺮ ﺑﺎﺷﺪ آﻧﮕﺎه اﻳﻦ اﺳﺘﺮوك، ﻋﻨﺼﺮ اﺑﺘﺪاﻳﻲ H ﻣﻲﺑﺎﺷﺪ.

If Stroke = [90, 0, 90] and NP2 ≥ (NP1+NP3) → primitive = H                            (3-13)

در راﺑﻄﻪ (3-13)  NPiﺗﻌﺪاد ﭘﻴﻜﺴﻞﻫﺎ در ﺧﻂ  iام ﻣﻲﺑﺎﺷﺪ.

شکل ‏3‑24 شکل حرف «ح» و نازک شده آن به همراه کدهای زنجیره ای برای هر استروک

ﺑﺮاي مثال ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ شکل ‏3‑24 ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﻢ ﻛﻪ ﺑﺮاي اﺳﺘﺮوك اول ﺧﻄﻲ ﺑﺎ زاوﻳﻪ ﺗﻘﺮﻳﺒﺎً ﺻـﻔﺮ درﺟـﻪ ﺗﻮﻟﻴـﺪ ﺷﺪه ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻗﺎﻧﻮن اول، ﻋﻨﺼﺮ اﺑﺘﺪاﻳﻲ H ﺑﺮاي آن در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮد و اﺳﺘﺮوك دوم از ﺣﺮف ”ح“ ﺧﻄﻮﻃﻲ ﺑﺎ زواﻳﺎي 45، 90 و ﺻﻔﺮ اﺳﺖ ﻛﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻗﺎﻧﻮن دوم، ﻋﻨﺼﺮ اﺑﺘﺪاﻳﻲ C ﺑﺮاي اﻳﻦ اﺳﺘﺮوك در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮد.

ﺑﺎ اﺳﺘﻔﺎده از ﭼﻬﺎر ﻗﺎﻧﻮن و ﺗﺒﺼﺮه ﻓﻮق، ﻣﻲﺗﻮاﻧﻴﻢ ﺧﻄﻮط ﻳﻚ اﺳﺘﺮوك را ﺑﺮرﺳﻲ ﻛﺮده و ﻋﻨﺼﺮ اﺑﺘﺪاﻳﻲ را ﻛـﻪ آن اﺳﺘﺮوك را در ﺑﺮﻣﻲﮔﻴﺮد ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﻢ. ﺣﺎل ﺑﺮاي ﻫﺮ اﺳﺘﺮوك ﻳﻚ ﻋﻨﺼﺮ اﺑﺘﺪاﻳﻲ ﻧﺴﺒﺖ دادهاﻳـﻢ در ﻣﺮﺣﻠـﻪ ﺑﻌـﺪ ﺑـﻪ ﺗﺸﻜﻴﻞ ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﻣﻲﭘﺮدازﻳﻢ.

3-6- ﻣﺮﺣﻠﻪ ﺷﻨﺎﺳﺎﻳﻲ

در اﻳﻦ ﻣﺮﺣﻠﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﺗﺸﻜﻴﻞدﻫﻨﺪه ﺣﺮوف ﻛﻪ ﺑﻪ دﺳﺖ آمده ﺑﻪ ﺗﺸﻜﻴﻞ بردار ﺷﻨﺎﺳﺎﻳﻲ ﺣـﺮوف می­پردازیم و با استفاده از این بردار، حروف زیرکلمات را شناسایی می­کنیم. الگوریتم اصلی این مرحله در شکل 3-25 نشان داده شده است.

شکل ‏3‑25 مرحله شناسایی حروف

3-6-1-                تشکیل آراﻳﻪ ﺷﻨﺎﺳﺎﻳﻲ اﺳﺘﺮوك

ﺑﺮاي ﻫﺮ اﺳﺘﺮوك از ﺗﺼﻮﻳﺮ اﺻﻠﻲ آراﻳﻪاي ﺑﺎ ﻧﺎم SIV[69] تشکیل می شود. اﻳﻦ آراﻳﻪ ﻫﻤـﺎنﻃـﻮر ﻛـﻪ در شکل ‏3‑26 ﻧﺸﺎن داده ﺷﺪه اﺳﺖ، ﺷﺎﻣﻞ ﻳﻚ محل ﺑﺮاي ﻧﻮع ﻋﻨﺼﺮ، دو ﻣﺤﻞ براي ﻣﻮﻗﻌﻴﺖ و تعداد ﻧﻘﺎط، ﻳﻚ ﻣﺤـﻞ ﺑـﺮاي موﻗﻌﻴـﺖ اﺳﺘﺮوك ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ زﻣﻴﻨﻪ و دو محل ﺑﺮاي ﻣﻮﻗﻌﻴﺖ ﺳﺘﻮنِ اﺑﺘﺪا و اﻧﺘﻬﺎي اﺳﺘﺮوك در ماتریس شکل تصویر می باشند.

در قسمت عنصر ابتدایی ممکن است یک یا چند عنصر ابتدایی ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﻨﺪ.

شکل ‏3‑26 بردار SIV برای استروک های یک شکل

در ﺑﺮدار SIV ﻣﻜﺎن اول ﺑﺮاي ﻧﻮع ﻋﻨﺼﺮ ﻣﻲﺑﺎﺷـﺪ. ﻫﻤـﺎنﻃـﻮر ﻛـﻪ در ﺑﺨـﺶ 3-5-2 ﺗﻮﺿـﻴﺢ داده ﺷـﺪ، موقعیت و تعداد آﻧﻬﺎ در زﻳﺮﻛﻠﻤﻪ را ﭘﻴﺪا ﻣﻲﻛﻨﻴﻢ و به ترتیب در مکان دوم و سوم می­نویسیم. در ﻣﻜﺎن ﭼﻬﺎرم ﻣﻮﻗﻌﻴﺖ ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ زﻣﻴﻨﻪ آورده ﺷﺪه اﺳﺖ ﺑﻪ اﻳﻦ ﻣﻌﻨـﻲ ﻛـﻪ اﮔـﺮ بیش از 70% ﭘﻴﻜﺴﻞﻫﺎي ﻳﻚ اﺳﺘﺮوك در ﺑﺎﻻي ﺧﻂ زﻣﻴﻨﻪ ﺑﺎﺷﺪ، «U»، اﮔـﺮ بیش از 70% ﭘﻴﻜﺴﻞﻫﺎي ﻳﻚ اﺳﺘﺮوك در پایین ﺧﻂ زﻣﻴﻨﻪ ﺑﺎﺷﺪ، «D» و در غیر این صورت «I» در این مکان نوشته می­شود. در ﻣﺎﺗﺮﻳﺲ ﺷﻜﻞِ اﺳﺘﺮوك ﻛﻤﺘﺮﻳﻦ و ﺑﻴﺸﺘﺮﻳﻦ ﻣﻘﺪارِ ﺳﺘﻮنِ ﺷﻜﻞِ اﺳﺘﺮوك ﺑﻪ ﺗﺮﺗﻴﺐ در ﻣﻜاﻧﻬﺎي ﭘﻨﭽﻢ و ﺷﺸﻢ ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮد.

ﻫﻤﺎنﻃﻮر ﻛﻪ در ﺑﺨﺶ 3-3 ﺗﻮﺿﻴﺢ داده ﺷﺪ، ﺣﺮوف ﻓﺎرﺳﻲ از ﻳﻚ ﻳﺎ ﺑﻪ ﻫﻢ ﭘﻴﻮﺳﺘﻦ ﭼﻨﺪﻳﻦ اﺳـﺘﺮوك ﺗﺸـﻜﻴﻞ ﺷﺪه­اﻧﺪ. ﺑﺮاي اﻳﻨﻜﻪ ﺑﺘﻮاﻧﻴﻢ ﺗﻌﺪاد ﻧﻘﺎط را در دو اﺳﺘﺮوك ﭘﻴﺪا ﻛﻨﻴﻢ، ﻧﻴﺎز ﺑﻪ ﺳﺘﻮن اﺑﺘﺪاﻳﻲ و اﻧﺘﻬﺎﻳﻲ دارﻳﻢ ﭼﺮاﻛﻪ اﮔﺮ دو اﺳﺘﺮوك در روي ﻫﻢ ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﻨﺪ و داراي ﻳﻚ ﻧﻘﻄﻪ ﺑﺎﺷﻨﺪ، آﻧﮕﺎه ﻣﺠﻤﻮع آﻧﻬﺎ ﺑﺮاي ﻳﻚ ﺣﺮف، دو ﻧﻘﻄـﻪ ﺗﺸـﺨﻴﺺ داده ﻣﻲﺷﻮد ﻛﻪ ﺗﺸﺨﻴﺺِ درﺳﺘﻲ ﻧﻴﺴﺖ. در ﺑﺨﺶ 3-6-3-1 ﺗﻮﺿﻴﺤﺎت ﺑﻴﺸﺘﺮي ارائه ﺷﺪه اﺳﺖ. ﺑﺮاي ﻣﺜﺎل ﺑﺮاي ﺣﺮف ”ح“ در شکل ‏3‑24 ﺑﺮدارﻫﺎي SIV ﺑﻪ ﺻﻮرت  جدول ‏3‑6 ﺧﻮاﻫﺪ ﺑﻮد.

جدول ‏3‑6 بردار SIV برای استروک های حرف«ح»

ستون انتهایی ستون ابتدایی موقعیت نسبت به خط زمینه تعداد نقاط موقعیت نقاط عنصر ابتدایی شماره استروک ها
20 5 U 0 0 H 1
26 2 D 0 0 C 2

ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺟﺪول 3-6 در ﺑﺮدار اﺳﺘﺮوك ﺑﺮاي دو اﺳﺘﺮوك ﺷﻜﻞِ ﺣﺮف ”ح“ ﻣﻼﺣﻈﻪ ﻣﻲﺷﻮد ﻛﻪ اﺳﺘﺮوك اول ﻋﻨﺼـﺮ اﺑﺘﺪاﻳﻲ H ﺑﻮده و داراي ﻫﻴﭻ ﻧﻘﻄﻪاي در ﺑﺎﻻ و ﭘﺎﻳﻴﻦ آن ﻧﻴﺴﺖ. اﻳﻦ اﺳﺘﺮوك در ﺑﺎﻻي ﺧـﻂ زﻣﻴﻨـﻪ ﻗـﺮار دارد و ﺳـﺘﻮن اﺑﺘﺪاﻳﻲ و اﻧﺘﻬﺎﻳﻲ آن ﺑﻪ ﺗﺮﺗﻴﺐ 5 و 20 ﻣﻲﺑﺎﺷﺪ و ﻫﻤﭽﻨﻴﻦ اﺳﺘﺮوك دوم داراي ﻋﻨﺼﺮ اﺻﻠﻲ C ﺑﻮده و ﻫﻴﭻ ﻧﻘﻄـﻪاي در ﺑﺎﻻ و ﭘﺎﻳﻴﻦ ﻧﺪارد، در ﭘﺎﻳﻴﻦ ﺧﻂ زﻣﻴﻨﻪ ﻗﺮار دارد و ﺳﺘﻮن اﺑﺘﺪاﻳﻲ و اﻧﺘﻬﺎﻳﻲ ان ﺑـﻪ ﺗﺮﺗﻴـﺐ 2 و 26 ﻣـﻲﺑﺎﺷـﺪ. از ﺳـﺘﻮن اﺑﺘﺪاﻳﻲ و اﻧﺘﻬﺎﻳﻲ ﻧﺘﻴﺠﻪ ﻣﻲﺷﻮد ﻛﻪ اﻳﻦ دو اﺳﺘﺮوك در ﻛﻨﺎرِ ﻳﻜﺪﻳﮕﺮ ﻗﺮار ﻧﺪارﻧـﺪ ﻟـﺬا ﻧﻘـﺎط ﻳـﻚ اﺳـﺘﺮوك، ﻣﺮﺑـﻮط ﺑـﻪ اﺳﺘﺮوك دﻳﮕﺮي ﻧﻴﺰ ﻣﻲﺑﺎﺷﺪ ﻛﻪ اﻟﺒﺘﻪ ﺗﻌﺪاد ﻧﻘﺎط در اﻳﻦ ﺣﺮف ﺑﺮاﺑﺮِ ﺻﻔﺮ ﻣﻲﺑﺎﺷﺪ.

در ﺑﺨﺶ ﺑﻌﺪ ﺑﻪ ﻧﺤﻮه ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف از ﺑﻪ ﻫﻢ ﭘﻴﻮﺳﺘﻦِ اﺳﺘﺮوكﻫﺎي زﻳﺮ ﻛﻠﻤﻪ ﻣﻲﭘﺮدازﻳﻢ.

3-6-2-              ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮف

ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﻓﺎرﺳﻲ ﺑﺎ اﺳﺘﻔﺎده از ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﻧﻴﺎز دارﻳﻢ ﻛﻪ ﺣﺮوف ﻓﺎرﺳـﻲ را در ﻗﺎﻟـﺐِ ﻋﻨﺎﺻـﺮ اﺑﺘـﺪاﻳﻲ درآورﻳﻢ ﺗﺎ ﺑﺘﻮاﻧﻴﻢ ﺑﺎ ﻣﻘﺎﻳﺴﻪ آن ﺑﺎ ﻋﻨﺎﺻﺮ ﻣﺸﺘﻖ ﺷﺪه از ﺗﺼﻮﻳﺮ، ﺣﺮوف را ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﻢ. ﺑﺮاي اﻳﻦ ﻛﺎر ﺑـﺮاي ﻫـﺮ ﺣـﺮف ﻓﺎرﺳﻲ و در ﻫﺮ ﻣﻮﻗﻌﻴﺘﻲ – ﺣﺮوف ﺟﺪا، اول، وﺳﻂ و آﺧﺮ– ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮف ﻳﺎ [70]CIV را ﺗﺸﻜﻴﻞ ﻣﻲدﻫﻴﻢ.

ﺑﺮاي ﻫﺮ ﺣﺮف ﻓﺎرﺳﻲ ﻳﻚ ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ CIV ﺗﺸﻜﻴﻞ ﻣﻲدﻫﻴﻢ و در واﻗﻊ ﭘﺎﻳﮕﺎه داﻧﺶ ﺧﻮد را ﺑﻪ اﻳﻦ ﺻﻮرت اﻳﺠﺎد ﻣﻲﻛﻨﻴﻢ. ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮف ﻫﻤﺎﻧﻨﺪ شکل ‏3‑27 اﺳﺖ. در اﻳﻦ ﺑﺮدار ﺳﻪ ﻣﺤﻞ ﺑﺮاي ﻧﻮع ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ در ﻧﻈﺮ ﮔﺮﻓﺘـﻪ ﺷﺪه اﺳﺖ. دو ﻣﺤﻞِ ﺑﻌﺪي ﻣﺨﺼﻮص ﺗﻌﺪاد ﻧﻘﺎط در ﺑﺎﻻ و ﭘﺎﻳﻴﻦ ﺣﺮف ﻣﻲﺑﺎﺷﺪ ﻛﻪ ﻫﻤﺎﻧﻨﺪ آراﻳﻪ ﺷﻨﺎﺳﺎﻳﻲ اﺳﺘﺮوك ﺗﻌﺪاد و ﻣﻮﻗﻌﻴﺖ ﻧﻘﺎط در ﺣﺮف را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ. ﻣﺤﻞ ﺑﻌﺪي ﺑﺮاي ﻣﻮﻗﻌﻴﺖ ﻛﻠﻲ ﺣـﺮف ﻧﺴـﺒﺖ ﺑـﻪ ﺧـﻂ زﻣﻴﻨـﻪ اﺳـﺖ ﻛـﻪ ﺷﺎﺧﺺ ﻣﻨﺎﺳﺒﻲ ﺑﺮاي ﺗﺸﺨﻴﺺ ﺣﺮوف در زﺑﺎن ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ ﻣﻲﺑﺎﺷﺪ.

شکل ‏3‑27 ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﻓﺎرﺳﻲ ) (CIV ﻛﻪ ﺑﻪ ﻋﻨﻮان ﭘﺎﻳﮕﺎه داﻧﺶ اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد.

ﺑﺮاي ﻣﺜﺎل ﺑﺮاي ﺣﺮف ”ش“ ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮف ﺑﻪ ﺻﻮرت U3U UU ﻣﻲﺑﺎﺷﺪ. اﻳﻦ ﺑﻪ اﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛـﻪ ﻋﻨﺎﺻـﺮ اﺑﺘﺪاﻳﻲ ﺣﺮف ”ش“ از ﺳﻤﺖ ﭼﭗ ﺷﻜﻞِ آن اﺑﺘﺪا ﻳﻚ ﻋﻨﺼﺮ U دارد و در اداﻣﻪ دﻧﺪاﻧﻪ ﻛﻪ ﺑـﺎ ﻛـﺪ U  ﻛـﺪ ﺷـﺪه اﺳـﺖ آورده ﺷﺪه اﺳﺖ. در ﺿﻤﻦ اﻳﻦ ﺣﺮف داراي 3 ﻧﻘﻄﻪ در ﺑﺎﻻي آن ﻣﻲﺑﺎﺷﺪ – ﭼﻮن در ﻣﻜﺎنِ اول ﻧﻘـﺎط آﻣـﺪه اﺳـﺖ– و ﻣﻮﻗﻌﻴﺖ ﻛﻠﻲ ﺣﺮف ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ زﻣﻴﻨﻪ، در ﺑﺎﻻي آن ﻣﻲ ﺑﺎﺷﺪ.

      ﺑﺮدارﻫﺎي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﺟﺪا، اول، وﺳﻂ، آﺧﺮ و اعداد ﻓﺎرﺳﻲ ﺑﻪ ﺗﺮﺗﻴﺐ از جدول 3-7 ﺗﺎ ﺟﺪول 3-11 آورده ﺷﺪه اﺳﺖ.

جدول ‏3-7 ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف جدای ﻓﺎرﺳﻲ

حرف عناصر ابتدایی نقاط موقعیت نسبت به خط زمینه
عنصر اول عنصر دوم عنصر سوم موقعیت تعداد
ا V 0 0 I
آ V U 2 U
ب U D 1 U
پ U D 3 U
ت U U 2 U
ث U U 3 U
ج C D 1 D
C O
چ C D 3 D
C O
ح C O 0 D
C O
خ C U 1 I
C O
د D 0 0 U
ذ D U 1 U
ر D 0 0 D
ز D U 1 D
ژ D U 3 I
س U 0 0 I
D U
U U
ش U U 3 U
D U
U U
ص U O U 0 I
D U
C D
ض U O U 1 I
D U
C D
ط D H O 0 0 U
V H O
V U O
ظ D H O U 1 U
V H O
V U O
ع C 0 0 D
C C
C H
C U
غ C U 1 D
C C
C H
C U
ف U U 1 U
U O
H O
ق U U 2 I
U O
H O
ک U 0 0 U
D U 3
گ U U 3 U
D
ل C 0 0 I
D
م C 0 0 I
D
D O
ن U U 1 D
و D O 0 0 I
ه O 0 0 U
ی U 0 0 D

جدول ‏3-8 ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف اول ﻓﺎرﺳﻲ

حرف عناصر ابتدایی نقاط موقعیت نسبت به خط زمینه
عنصر اول عنصر دوم عنصر سوم موقعیت تعداد
D D 1 U
U
D D 3 U
U
D U 2 U
U
D U 3 U
U
D D 1 D
S V
D D 3 D
S V
D O 0 D
S V
D U 1 I
S V
U 0 0 I
D V
U U
D D
U U 3 U
D V
U U
D D
U O U 0 I
D O
C O
ﺿ U O U 1 I
D O
C O
ط D H O 0 0 U
V H O
V U O
ظ D H O U 1 U
V H O
V U O
C 0 0 D
C H
C U
C U 1 D
C H
C U
O U 1 U
U O
H O
O U 2 I
D O
H O
D B 0 0 U
D H U 3
D H U 3 U
D B
D 0 0 I
O 0 0 I
H O
U O
U U 1 D
D
O H 0 0 U
O
U 0 0 D
D

جدول ‏3-9 ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف میانی ﻓﺎرﺳﻲ

حرف عناصر ابتدایی نقاط موقعیت نسبت به خط زمینه
عنصر اول عنصر دوم عنصر سوم موقعیت تعداد
U D 1 U
D
U D 3 U
D
U U 2 U
D
U U 3 U
D
D D 1 D
S V
D D 3 D
S V
D O 0 D
S V
D U 1 I
S V
U 0 0 I
D V
U U
D D
U U 3 U
D V
U U
D D
U O U 0 I
D O
C O
U O U 1 I
D O
C O
O 0 0 D
H O
D O
O U 1 D
H O
D O
O U 1 U
U O
H O
O U 2 I
U O
H O
D B 0 0 U
D H U 3
D H U 3 U
D B
C 0 0 I
D
O 0 0 I
H O
U O
U U 1 D
D
O 0 0 U
H O
ﯿ U 0 0 D
D

جدول ‏3-10 ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف آخر ﻓﺎرﺳﻲ

حرف عناصر ابتدایی نقاط موقعیت نسبت به خط زمینه
عنصر اول عنصر دوم عنصر سوم موقعیت تعداد
C 0 0 I
D
U D 1 U
U D 3 U
U U 2 U
U U 3 U
C D 1 D
C O
C D 3 D
C O
C O 0 D
C O
C U 1 I
C O
D 0 0 U
D U 1 U
D 0 0 D
D U 1 D
D U 3 I
U 0 0 I
D U
U U
U U 3 U
D U
U U
U O U 0 I
D U
C D
U O U 1 I
D U
C D
D H O 0 0 U
V H O
V U O
D H O U 1 U
V H O
V U O
C 0 0 D
C C
C H
C U
C U 1 D
C C
C H
C U
U U 1 U
U O
H O
U U 2 I
U O
H O
U 0 0 U
D U 3
U U 3 U
D
C 0 0 I
D
C 0 0 I
D
D O
U U 1 D
D O 0 0 I
O 0 0 U
C O
U 0 0 D

/

جدول ‏3-11 ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ اعداد ﻓﺎرﺳﻲ

حرف عناصر ابتدایی نقاط موقعیت نسبت به خط زمینه
عنصر اول عنصر دوم عنصر سوم موقعیت تعداد
0 O 0 0 I
1 V 0 0 U
2 H U 0 0 D
3 H U U 0 0 D
4 H C 0 0 I
5 O 0 0 U
6 B C 0 0 I
7 B S 0 0 U
8 S B 0 0 D
9 O H 0 0 I

3-6-3-              اﺳﺘﺨﺮاج ﺣﺮوف از ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف

 ﺑﺎ اﺳﺘﻔﺎده از ﭘﺎﻳﮕﺎه داﻧﺸﻲ ﻛﻪ ﺑﺮاي ﺣﺮوف ﻓﺎرﺳﻲ اﻳﺠﺎد ﻛﺮدﻳﻢ ﻣﻲﺗﻮاﻧﻴﻢ ﺑﻪ ﻣﻘﺎﻳﺴﻪ بین ﻋﻨﺎﺻﺮِ ﺑﻪ دﺳﺖ آﻣﺪه از ﺷـﻜﻞ و اﻳﻦ ﭘﺎﻳﮕﺎه داﻧﺶ ﺑﭙﺮدازﻳﻢ و ﺣﺮوف ﻓﺎرﺳﻲ را ﺗﺸﺨﻴﺺ دﻫﻴﻢ. ﻧﺤﻮه اﻧﺠﺎم اﻳﻦ اﻣﺮ در ادامه آورده ﺷﺪه اﺳﺖ.

در ﻣﺮاﺣﻞ ﻗﺒﻞ ﺗﻮاﻧﺴﺘﻴﻢ اﺳﺘﺮوكﻫﺎي ﺷﻜﻞ را ﺑﺮاي ﻫﺮ زﻳﺮﻛﻠﻤﻪ ﺟﺪا ﻛﻨـﻴﻢ و ﻋﻨﺎﺻـﺮِ اﺑﺘـﺪاﻳﻲ ﺗﺸـﻜﻴﻞ دﻫﻨـﺪه ﻫـﺮ اﺳﺘﺮوك را ﻛﺪ ﻛﺮده و در SIVﻫﺎ ﻗﺮار دﻫﻴﻢ. در ﺿﻤﻦ ﭘﺎﻳﮕﺎه داﻧﺸﻲ ﻛﻪ ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف اﺳﺘﻔﺎده ﻣﻲﺷـﻮد، ﺷـﺎﻣﻞ CIVﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﺑﺮاي ﻫﺮ ﺣﺮف ﺟﺪا، اول، وﺳﻂ و آﺧﺮ ﺑﻪ ﻃﻮر ﻣﺠﺰا در ﺑﺨﺶ 3-6-2 آورده ﺷﺪه اﺳﺖ.

 در اﻳﻦ ﻗﺴﻤﺖ روﺷﻲ ﻛﻪ ﺑﺮاي ﻣﻘﺎﻳﺴﻪ SIVﻫﺎ ﺑﺎ CIVﻫﺎ اﺗﺨﺎذ ﺷﺪه اﺳﺖ ﻣﻄﺮح ﻣﻲﺷﻮد.

در اﺑﺘﺪا ﺑﺎ ﻛﻨﺎر ﻫﻢ ﻗﺮار دادن SIVﻫﺎ ﺑﻪ ﻃﻮر ﻋﻤﻮدي، ﻳﻚ آراﻳﻪ ﺑﻪ ﻧﺎمِ آراﻳﻪ ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮد ﻛﻪ ﻳﻚ ﻧﻤﻮﻧـﻪ از آن درﺟﺪول 3-11 ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.

جدول ‏3‑7 طریقه ایجاد بردار عناصر با کنار هم قرار دادن CIVها

  ﺑﺮاي ﻣﻘﺎﻳﺴﻪ ﻛﺮدن ﻋﻨﺎﺻﺮ ﺷﻜﻞ ﺑﺎ CIVﻫﺎ از اﻟﮕﻮرﻳﺘﻢ ﻧﺸﺎن داده ﺷﺪه در ﺷﻜﻞ 328 اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ.

شکل ‏3‑28 فلوچارت شناسایی حروف از روی بردار عناصر

ﻫﻤﺎنﻃﻮر ﻛﻪ در ﻓﻠﻮﭼﺎرت ﺷﻜﻞ 3-28 ﻧﺸﺎن داده ﺷﺪه اﺳﺖ، ﺑﺮاي ﺣﺪس و ﺗﺸﺨﻴﺺ ﺣﺮوف ﻓﺎرﺳـﻲ از ﻳـﻚ ﺷـﻴﻮه ﺟﺪﻳﺪ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ. در اﻳﻦ روش اﺑﺘﺪا ﺑﺮدار ﻋﻨﺎﺻﺮِ زﻳﺮﻛﻠﻤﻪ ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮد. اﻳﻦ ﺑﺮدار ﺗﻨﻬﺎ ﺣﺎوي ﻋﻨﺎﺻـﺮ اﺑﺘـﺪاﻳﻲ ﺗﺸﻜﻴﻞ دﻫﻨﺪه اﺳﺘﺮوكﻫﺎي ﻳﻚ زﻳﺮ ﻛﻠﻤﻪ اﺳﺖ ﻛﻪ ﺑﻪ ﺗﺮﺗﻴﺐ از راﺳﺖ ﺑﻪ ﭼﭗِ زﻳﺮﻛﻠﻤﻪ آورده ﺷﺪه­اﻧﺪ.

     ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ اﺑﺘﺪا ﻛﻞِ ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ را ﺑﺎ ﻋﻨﺎﺻﺮِ ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣـﺮوف ﺟـﺪاي ﻓﺎرﺳـﻲ ﻣﻘﺎﻳﺴـﻪ ﻣـﻲﻛﻨـﻴﻢ. اﮔـﺮ ﺣﺮوﻓﻲ ﺑﺮاي اﻳﻦ زﻳﺮﻛﻠﻤﻪ ﭘﻴﺸﻨﻬﺎد ﺷﺪ، ﻧﻘﺎط اﺳﺘﺮوكﻫﺎ را ﺑﺎ ﻧﻘﺎط ﺑﺮدار ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮوف ﺟﺪاي ﻓﺎرﺳـﻲ ﻣﻘﺎﻳﺴـﻪ می­ﻛﻨﻴﻢ. اﮔﺮ ﺑﺎز ﻫﻢ ﺣﺮوﻓﻲ ﭘﻴﺸﻨﻬﺎد ﺷﺪ اﻳﻦ ﺑﺎر ﻣﻮﻗﻌﻴﺖ ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ زﻣﻴﻨﻪ را ﻣﻘﺎﻳﺴﻪ ﻣﻲﻛﻨﻴﻢ. اﮔﺮ یک حرف جدا باشند، مطمئنآ به یک حرف جدا خواهیم رسید و در غیر این صورت، همگی استروک ها مربوط به یک حرف جدای فارسی نبوده و حتماً شامل دو یا بیشتر حرف می­باشد.

اگر بردار عناصر مربوط به یک حرف جدای فارسی نبود، از سمت راست ترین بردار عناصر شروع
می­کنیم و آن را با بردار شناسایی حروف اول فارسی مقایسه می­کنیم. اگر با یک یا تعدادی از حروف اول فارسی یکسان بود، به مقایسه نقاط آن استروک با نقاط حروفی که انتخاب شده­اند می­پردازیم. در این مقایسه تعداد زیادی از حروف پیشنهادی حذف خواهند شد. اگر حروفی از حروف پیشنهادی باقی ماند، موقعیت نسبت به خط زمینه را مقایسه می­کنیم. در این صورت یا هیچ حرفی از حروف پیشنهادی باقی نمی­ماند یا تنها یک حرف باقی می­ماند که مربوط به حرف اول این زیرکلمه می­باشد. اگر حرف اول انتخاب نشود، عنصر بعدی از بردار عناصر را انتخاب می­کنیم و این کار را تا شناسایی حرف اول زیرکلمه ادامه می­دهیم.

زمانی که حرف اول انتخاب شد، عناصری را که در تشکیل این حرف استفاده شده­اند از بردار عناصر حذف می­کنیم. حال برای شناسایی حرف آخر زیرکلمه تلاش می­کنیم. برای این کار از انتهای بردار عناصر شروع کرده و یک عنصر انتخاب می­کنیم. روش قبلی برای شناسایی حرف اول را برای شناسایی حرف آخر تکرار می کنیم با این تغاوت که این بار از بردار شناسایی حروف آخر، برای مقایسه استفاده می­کنیم چراکه هدف، تعیین حرف آخر زیرکلمه می­باشد.

با انتخاب و حذف عناصر حرف آخر از بردار عناصر، دو حالت پیش می­آید. اگر عنصری در بردار عناصر باقی نماند، زیرکلمه دو حرفی بوده و کار شناسایی حروف به اتمام رسیده است در غیر این صورت اگر عنصر یا عناصری در بردار عناصر باقی ماندند، این عناصر یا مربوط به یک حرف وسط می­باشند یا باز هم شامل حروف دیگری که مطمئنآ از نمح حروف وسط هستند، می­باشند.

برای تشخیص حروف وسط ابتدا عناصر باقی مانده را با بردار شناسایی حروف وسط مقایسه می­کنیم و با توجه به تعداد و موقعیت نقاط و نیز موقعیت نسبت به خط زمینه، اگر به یک حرف رسیدیم یعنی کار تشخیص حروف به پایان رسیده و زیرکلمه سه حرفی بوده است ولی اگر هیچ حرف وسطی پیشنهاد نشد به این معنی است که عناصر باقی مانده مربوط به دو یا بیشتر حروف وسط می­باشند. حال برای شناسایی حروف وسط همان روشی را که برای شناسایی حروف اول و آخر انجام دادیم تکرار می­کنیم با این تفاوت که برای مقایسه عناصر، از بردار شناسایی حروف وسط استفاده می­کنیم چراکه تمامی عناصر باقی مانده مربوط به حروف وسط می­باشند. این کار تا جایی ادامه می­یابد که دیگر هیچ عنصری در بردار شناسایی باقی نمانده باشد و در واقع تمامی حروف زیرکلمه تشخیص داده شده باشند.

یک حالت ممکن است در تعیین حروف به وجود آید و آن بدین صورت است که عناصری که برای تشخیص حروف وسط استفاده می­شوند، با هیچ یک از حروف وسط، یکسان باشد و در واقع نتوانیم حرفی از حروف وسط را برای عناصر باقی مانده نسبت دهیم. در این حالت به یک مرحله قبل بازمی­گردیم و حرف انتخابی در مرحله قبل را نادیده گرفته و یک عنصر از بردار عناصر به آن اضافه می­کنیم و کار شناسایی را ادامه می­دهیم.

3-6-3-1-       استفاده از ستون های ابتدایی وانتهایی

ستون های ابتدایی وانتهایی در آرایه نقاط زیرکلمه و SIV وجود دارد. این اطلاعات برای مشخص کردن جایگاه دقیتی نقطه در زیرکلمه به کاربرده می شوند. در شناسایی حروف از طریق بردار عناصر که در بخش ٣-6 -٣  توضیح داده شد، ممکن است دو یا بیشتر عنصر درکنار هم قرار گیرند از این رو باید نقاطی که درمحدوده این عناصر قرار دارند تعیین شوند. از این رو از ستون های ابتدایی و انتهایی استفاده می­کنیم.

اگر یک عنصر (P) از بردار عناصر انتخاب شود برای تعیین تعداد نقاط (D) از رابطه (٣ – ١6) استفاده می­کنیم.

If [DFCi ≥ PFC and DECi ≤ PFC] → Di P                                                          (3-16)

در رابطه ( ٣–١6) DFCi[71] ستون ابتدایی نقاط برای نقطه iام و DECi[72] ستون انتهایی نقاط برای نقطه iام است. همین طور PFC[73] ستون ابتدایی عنصر اصلی و PEC[74] ستون انتهایی عنصر اصلی است.

اگر ستون ابتدایی نقاط از ستون ابتدایی عنصر اصلی بزرگتر یا مساوی باشد و ستون انتهایی نقاط از ستون انتهایی عنصر اصلی کوچکتر یا مساوی باشد، این نقاط مربوط به عنصر ابتدایی انتخاب شده هستند. اگر بیش از یک نقطه دارای شرایط رابطه (٣–١6) باشند آنگاه تمامی آن نقاط مربوط به آن عنصر ابتدایی می­باشند. این امر زمانی اتغاق می­افتد که یک حرف دارای بیشتر از یک نقطه باشد مانند حرف «پ» که دارای سه نقطه می­باشد. در چنین حالتی تعداد نقاط در یک بازه (بازه عنصر ابتدایی) را با یکدیگر جمع می­کنیم.

اگر بخواهیم دو یا چند استروک را برای یک حرف انتخاب کنیم باید بتوانیم نقاط این استروک­ها را با هم جمع کرده و تعداد نقاط کلی را برای مقایسه اعلام کنیم. در این حالت نیز از ستون های ابتدایی و انتهایی استفاده می شود. برای این کار از رابطه (٣–١7) استفاده می­کنیم.

PFC=Min (PFCi)

PEC=Max (PECi)                                                                                            (٣– ١7)

IF [DFCi ≥ PFC and DECi ≤ PFC] → Di P

در رابطه (٣–١7) PFC را کمترین مقدار PFC های عناصر انتخابی و PEC را بیشترین مقدار PEC
­های عناصر انتخابی در نظر می­گیریم. حال که ستون های ابتدایی و انتهایی عنصر را پیدا کردیم بار دیگر از رابطه  (٣–١6) استفاده می­کنیم و تعداد نقاط عنصر جدید را انتخاب می­کنیم.

فصل 4-           نتایج الگوریتم پیشنهادی

در این فصل ابتدا به بررسی نتایج الگوریتم پیشنهادی می­پردازیم. در ادامه چند سیستم بازشناسی حروف را مورد بررسی قرار می­دهیم. سپس آن را با مقالات و کارهای دیگر مقایسه می­کنیم.

4-1- ﺷﺒﻴﻪ ﺳﺎزي ﺑﺮ روي پایگاه داده

اﻟﮕﻮرﻳﺘﻢ ارائه ﺷﺪه در اﻳﻦ ﭘﺮوژه، ﺑﺪون ﺗﻮﺟﻪ ﺑﻪ اﻧﺪازه حروف دست­نویس، زﻳﺮﻛﻠﻤﺎت ﻓﺎرﺳﻲ را ﺗﺸـﺨﻴﺺ ﻣـﻲدﻫـﺪ. ﺑـﺮﺧﻼف ﻛﺎرﻫﺎي اﻧﺠﺎم ﺷﺪه در اﻳﻦ زﻣﻴﻨﻪ ﻛﻪ ﻣﺮاﺣﻞ ﺟﺪاﺳﺎزي ﺣﺮوف و ﺗﺸﺨﻴﺺ آﻧﻬﺎ در دو ﻣﺮﺣﻠﻪ ﺟﺪا از ﻫﻢ اﻧﺠﺎم ﻣﻲﮔﻴﺮﻧـﺪ و ﺑﺎﻋﺚ از دﺳﺖ دادن ﺳﺮﻋﺖ ﺗﺸﺨﻴﺺ ﻣﻲﺷﻮﻧﺪ، اﻳﻦ اﻟﮕﻮرﻳﺘﻢ دو ﻣﺮﺣﻠﻪ را در ﻫﻢ ادﻏﺎم ﻛﺮده و از اﺑﺘﺪا و اﻧﺘﻬﺎي زﻳﺮﻛﻠﻤـﻪ ﺑﻪ ﺗﺸﺨﻴﺺ ﺣﺮوف ﻣﻲﭘﺮدازد. ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ آﻣﺎر ارائه ﺷﺪه، اﻳﻦ اﻟﮕﻮرﻳﺘﻢ روﺷـﻲ ﺟﺪﻳـﺪ و ﺑﺴـﻴﺎر ﻣﻨﺎﺳـﺐ ﺑـﺮاي ﺗﺸـﺨﻴﺺ ﺣﺮوف زﻳﺮﻛﻠﻤﺎت ﻓﺎرﺳﻲ ﻣﻲﺑﺎﺷﺪ.

روش ﻛﺎر ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ ﺑﻌﺪ از ﻣﺮﺣﻠﻪ ﭘﻴﺶﭘﺮدازش ﻛﻪ اندازه ﻗﻠﻢ، ﺧﻂ زﻣﻴﻨﻪ و ﻧﻘﻄﻪﻫﺎي ﺣـﺮوف ﺗﺸـﺨﻴﺺ داده و ذﺧﻴﺮه ﻣﻲﺷﻮﻧﺪ و ﺗﺼﻮﻳﺮ ﻧﺎزكﺳﺎزي ﻣﻲﺷﻮد، ﺑﺎ اﺳﺘﻔﺎده از ﺗﺒﺪﻳﻞ ﻫﺎف اﺻﻼح ﺷﺪه، ﺑﻪ ﺟﺪاﺳﺎزي ﻋﻨﺎﺻﺮ اﺑﺘـﺪاﻳﻲ ﺣﺮوف ﻣﻲﭘﺮدازد. ﺗﺒﺪﻳﻞ ﻫﺎف ﻣﻌﻤﻮﻟﻲ ﺑﺎ ﻛﻤﻴﻨﻪ زاوﻳﻪ 45 درﺟﻪ ﻛﺎر ﻣﻲﻛﻨﺪ ﻛﻪ ﺧﻄﻮط زﻳﺎدي را ﺣﺘﻲ در اﺳﺘﺮوكﻫـﺎي ﺳﺎده ﺗﺨﻤﻴﻦ ﻣﻲزﻧﺪ. وﻟﻲ در اﻳﻦ اﻟﮕﻮرﻳﺘﻢ از ﻛﻤﻴﻨﻪ زاوﻳﻪ 5/22 درﺟﻪ اﺳﺘﻔﺎده ﺷﺪه ﻛﻪ ﻧﻮﻳﺰ ﺧﻄﻮط را ﺧﻨﺜﻲ ﻣﻲﻛﻨـﺪ و ﺧﻄﻮط اﺻﻠﻲ ﺑﺪﻧﻪ اﺳﺘﺮوك را اﺳﺘﺨﺮاج ﻣﻲﻛﻨﺪ.

ﺑﺎ اﺳﺘﻔﺎده از ﺧﻄﻮط اﺳﺘﺮوكﻫﺎ، ﻋﻨﺎﺻﺮ اﺑﺘـﺪاﻳﻲ ﺣـﺮوف ﻛـﻪ ﺷـﺎﻣﻞ 8 ﻋﻨﺼـﺮ ِBackslash، Slash،  D-Shape ،U-Shape ،C-Shape ،Vertical ،Horizontal و Circle میﺑﺎﺷﻨﺪ، اﺳﺘﺨﺮاج ﻣﻲﺷﻮﻧﺪ و ﺑﻪ ﻫﻤﺮاه ﺗﻌﺪاد و ﺟﺎﻳﮕـﺎه ﻧﻘﺎط ﻫﺮ ﺣﺮف در ﺑﺮدار ﻣﺸﺨﺼﻪ آن ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ. ﻋﻨﺎﺻﺮ اﺑﺘﺪاﻳﻲ ﻫﻤﻪ اﺳﺘﺮوكﻫﺎ در آراﻳﻪ ﻋﻨﺎﺻﺮ ﻗﺮار ﻣـﻲﮔﻴﺮﻧـﺪ. اﮔـﺮ اﻳﻦ ﻋﻨﺎﺻﺮ ﻣﺮﺑﻮط ﺑﻪ ﻳﻜﻲ از ﺣﺮوف ﺟﺪا ﻧﺒﺎﺷﺪ، از اﺑﺘﺪا و اﻧﺘﻬﺎي اﻳﻦ آراﻳﻪ ﺷﺮوع ﻛﺮده و ﺑﻪ ﻣﻘﺎﻳﺴﻪ آنﻫـﺎ ﺑـﻪ ﺗﺮﺗﻴـﺐ ﺑـﺎ ﺟﺪول ﺑﺮدار ﻣﺸﺨﺼﻪ ﺣﺮف اول و آﺧﺮ ﻣﻲﭘﺮدازﻳﻢ. ﺑﻬﺘﺮﻳﻦ اﺣﺘﻤﺎل ﺑﺮاي ﺣﺮف اول و آﺧﺮ اﻧﺘﺨﺎب ﻣﻲﺷﻮد. اﮔـﺮ زﻳﺮﻛﻠﻤـﻪ دو ﺣﺮﻓﻲ ﺑﻮد، ﻛﺎرِ ﺗﺸﺨﻴﺺ ﭘﺎﻳﺎن ﻳﺎﻓﺘﻪ و اﮔﺮ ﺳﻪ ﺣﺮﻓﻲ ﺑﺎﺷﺪ، ﻋﻨﺎﺻﺮ ﺑﺎﻗﻲﻣﺎﻧﺪه ﺑﺮاي ﺣﺮف وﺳﻂ اﺳﺖ ﻛﻪ ﺑﺎ ﻣﻘﺎﻳﺴﻪ آن ﺑﺎ ﺟﺪول ﻋﻨﺎﺻﺮ ﺣﺮف وﺳﻂ، اﻳﻦ ﺣﺮف ﻧﻴﺰ ﺗﺸﺨﻴﺺ داده ﻣﻲﺷﻮد.

ﺑﺮاي ﻧﻤﺎﻳﺶِ دﻗﺖ ﺗﺸﺨﻴﺺ از ﭘﺎﻳﮕﺎه دانش IFHCDB[75] استفاده شده است.  IFHCDBﻳﻚ ﭘﺎﻳﮕﺎه داده ﻣﺘﺸﻜﻞ از ﺣﺮوف و اﻋﺪاد دﺳﺘﻨﻮﻳﺲ ﻓﺎرﺳﻲ اﺳﺖ ﻛﻪ ﺗﻮﺳﻂ داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﺑﺮق داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ اﻣﻴﺮﻛﺒﻴﺮ ﺗﻬﺮان در ﺳﺎل 1385 ﺗﻬﻴﻪ ﺷﺪه اﺳﺖ. IFHCDB در ﺣﻘﻴﻘﺖ ﻳﻚ زﻳﺮ ﻣﺠﻤﻮﻋﻪ از ﻳﻚ ﭘﺎﻳﮕﺎه داده ﻋﻈﻴﻢ اﺳﺖ ﻛﻪ ﺑﻌﻨﻮان ﻳﻚ ﭘﺮوژه ﺗﺤﻘﻴﻘﺎﺗﻲ ﺑﺎ ﺣﻤﺎﻳﺖ دﺑﻴﺮﺧﺎﻧﻪ ﻋﺎﻟﻲ ﺷﻮراي اﻃﻼع رﺳﺎﻧﻲ، ﻛﺎرﮔﺮوه ﺧﻂ و زﺑﺎن ﻓﺎرﺳﻲ و ﺗﻮﺳﻂ ﺷﺮﻛﺖ اﻧﺪﻳﺸﻪ ﻧﺮم اﻓﺰار ﭘﺎﻳﺎ ﺟﻤﻊ آوري ﺷﺪه اﺳﺖ. ﻫﺪف اﺻﻠﻲ ﭘﺎﻳﮕﺎه داده ﻛﻤﻚ ﺑﻪ محققان ﺑﺮاي اﻳﺠﺎد روش­ها و الگوریتم­های ﺟﺪﻳﺪ در زﻣﻴﻨﻪ ﺷﻨﺎﺳﺎﻳﻲ ﺧﻮدﻛﺎر ﻛﺎراﻛﺘﺮﻫﺎي دست­نویس ﻓﺎرﺳﻲ اﺳﺖ. این پایگاه داده شامل بیش از 60000 نمونه حروف جدای دست­نویس فارسی و اعداد می­باشد. در شکل ‏4‑1 چند نمونه از این پایگاه داده، آورده شده است.

شکل ‏4‑1 چند نمونه پایگاه داده IFHCDB

از آنجا که برای کلمات یا زیرکلمات فارسی پایگاه داده­ای وجود ندارد، اینجانب اقدام به تهیه یک پایگاه داده نمودم که شامل 3500 نمونه از اسامی شهرهای کشورمان است. در شکل ‏4‑2 چند نمونه از این پایگاه داده، آورده شده است.

شکل ‏4‑2 چند نمونه از پایگاه داده تهیه شده

 ﺑـﺮاي اﻳﻨﻜﻪ ﻗﺪرت ﺗﺸﺨﻴﺺ در زﻳﺮﻛﻠﻤﺎت ﺑﺎ ﺣﺮوفﻫﺎي ﻣﺨﺘﻠﻒ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ ﺑﺎﺷﺪ، زﻳﺮﻛﻠﻤﺎت اﻳﻦ ﻣﺘﻮن را ﺑﻪ زﻳﺮﻛﻠﻤـﺎت ﻳـﻚ، دو و ﺳﻪ ﺗﻘﺴﻴﻢ ﻛﺮده­اﻳﻢ. همچنین اعداد را نیز جداگانه در این جدول آورده­ایم و دﻗﺖ ﺗﺸﺨﻴﺺ را ﺑﺮاي ﻫﺮ ﮔﺮوه ﺑﻪ ﻃﻮر ﻣﺠﺰا اﺳﺘﺨﺮاج ﻛﺮده­اﻳﻢ. اﻳﻦ اﻟﮕﻮرﻳﺘﻢ بر روی پایگاه داده­های فوق اجرا شده و میانگین درصد های تشخیص در جدول ‏4‑1 آورده شده است.

جدول ‏4‑1 درصد تشخیص الگوریتم پیشنهادی برای اعداد و زیرکلمات

دقت تشخیص درصد تعداد زیر کلمات در متون فارسی  
7/88% 37/49% یک حرفی تعداد حروف زیرکلمه
4/81% 84/31% دو حرفی
6/73% 06/12% سه حرفی
8/98% اعداد

ﻫﻤﺎنﻃﻮر ﻛﻪ در جدول ‏4‑1 آورده ﺷﺪه اﺳﺖ، 37/49% ﻛﻞ زﻳﺮﻛﻠﻤﺎت ﻓﺎرﺳﻲ را زﻳﺮﻛﻠﻤﺎت ﻳﻚ ﺣﺮﻓﻲ ﺗﺸﻜﻴﻞ ﻣﻲدﻫﻨﺪ. در واﻗﻊ ﻣﻲﺗﻮان ﮔﻔﺖ اﮔﺮ اﻳﻦ زﻳﺮ ﻛﻠﻤﺎت ﺑﻪ درﺳﺘﻲ ﺗﺸﺨﻴﺺ داده شوند ﻧﺰدﻳﻚ ﺑﻪ 50% ﻛـﻞ ﻣـﺘﻦ ﺗﺸـﺨﻴﺺ داده ﺷﺪه اﺳﺖ. از اﻳﻦ رو ﻛﺎرﻫﺎي زﻳﺎدي ﺑﺮ روي زﻳﺮﻛﻠﻤﺎت ﻳﻚﺣﺮﻓﻲ (ﺣﺮوف ﺟﺪاي ﻓﺎرﺳﻲ/ﻋﺮﺑﻲ) اﻧﺠﺎم ﺷﺪه اﺳﺖ. اﮔﺮ از زﻳﺮﻛﻠﻤﺎت ﻳﻚ ﺗﺎ ﺳﻪ ﺣﺮﻓﻲ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ، ﺑﺎ ﺗﺸﺨﻴﺺ اﻳـﻦ زﻳﺮﻛﻠﻤـﺎت، ﺗﻘﺮﻳﺒـﺎً 27/93% ﻛـﻞ ﻣـﺘﻦ اﺳـﻜﻦ ﺷـﺪه ﺗﺸﺨﻴﺺ داده ﻣﻲﺷﻮد.

4-2- بررسی چند مقاله در زمینه بازشناسی حروف چاپی و دست­نویس

4-2-1-               بازشناسی برون خط کلمات فارسی با تکیه بر نام چند شهر

در این مقاله [41]هدف بازشناسی شهرهای استان خراسان از یکدیگر می باشد. تعداد شهرهای انتخاب شده 30 شهر می­باشد که از هر شهر تعداد 50 نمونه دست نویس در اختیار داریم. در شکل زیر نمونه ای از دست نویس­ها را مشاهده می­کنیم.

شکل ‏4‑3 ورودی اولیه سیستم OCR [41]

در مرحله بعدی جهت کاهش حجم اطلاعات و افزایش سرعت پردازش، تصاویر خاکستری پویش شده را به تصاویر باینری مطابق شکل زیر تبدیل می­کنند.

شکل ‏4‑4 تصاویر باینری شده [41]

به دلیل محدود بودن کلاس­هایی که باید بازشناسی شوند، از رویکرد Holistic استفاده کرده­اند. بدین معنا که جهت تحلیل و اعمال الگوریتم­های مختلف، کل تصویر یک کلمه را به عنوان یک عنصر واحد در نظر می­گیریم کلمه شهر مورد نظر را به زیر بخش­ها و یا حروف تشکیل دهنده آن، تفکیک نمی­کنیم. سیستم OCR این مقاله از سه  بخش اصلی پیش پردازش، استخراج ویژگی و باز شناسی تشکیل شده است. در پردازش به منظور بهبود کیفیت تصویر و حذف نویز و نقاط و پیکسل­های اضافی به وجود آمده هنگام تصویر برداری یا پویش (با کیفیت پایین) از عملگرهای مورفولوژیک استفاده می­شود. ابتدا با عملگرهای مورفولوژیک نقطه­های تک پیکسلی تصویر را که غالباً نویز می­باشد را حذف کرده­اند و سپس با اعمال مناسب دو عملگر مورفولوژیک فرسایش[76] و تاخیر[77] بریدگی­های ناخواسته و همچنین المان­های باریک اضافی ایجاد شده در تصویر کلمه را تا جای ممکن حذف کردند. در شکل زیر تغییرات را مشاهده می­کنید.

شکل ‏4‑5 اعمال عملگرهای مورفولوژیک[41]

همانطور که مشاهده می­کنید پس از پیش­پردازش دو نقطه تک پیکسلی که نویز می­باشند حذف شده­اند و گسستگی­های نا خواسته در تصویر ورودی حذف شده­اند.

4-2-1-1-       استخراج ویژگی­های جهتی کلمه از روی ویژگی­های آماری ماتریس GLCM[78]

استخراج ویژگی از ماتریس GLCM از زمان تعریف آن توسط دو محقق در سال 1973 به یکی از مهم­ترین روش­های آماری کلاسه بندی بافت[79] تبدیل شده است. ماتریس GLCM، تعداد تکرار رویداد یک جفت پیکسل در درون تصویر را بر اساس فاصله و زاویه خاص فضایی تعیین شده بین آن­ها محاسبه
می­کند. به طور کلی در کلاس بندی بافت به کمک ماتریس GCLM از چهار زاویه 0، 45، 90 و 135 درجه جهت استخراج ویژگی­های جهتی بافت استفاده می­شود که همین ویژگی­های جهتی معیار اصلی کلاس بندی بافت­ها می­باشد. در این مقاله از ویژگی­های ماتریس GLCM جهت بازشناسی کلمات دست نویس فارسی استفاده کردند و به نتایج مناسبی دست یافتند. دلیل این امر این است که ویژگی­های مهم متمایز کننده کلمات دست نویس همین ویژگی­های جهتی آن­ها است

توضیح اینکه بعضی از حروف فارسی دارای ویژگی­های جهتی خاصی می­باشند به عنوان مثال سرکش حرف “ک” دارای زاویه حدود 45 درجه می­باشد در شکل زیر چند نمون دیگر از این ویژگی­ها را مشاهده می­کنید.

شکل ‏4‑6 ویژگی­های جهتی برخی حروف فارسی [41]

4-2-1-2-       استخراج ویژگی به کمک Hu مومنت[80]

مومنت­ها یکی از ویژگی­های اماری پرکاربرد در زمینه استخراج ویژگی برای اشکال و حوزه تشخیص الگو می­باشند. در سال 1961، Hu جهت اختصاص ویژگی به اشکال، هفت مومنت را معرفی کرد نسبت به تغییرات اندازه، چرخش وموقعیت شکل مورد نظر ثابت می­باشند.

در بازشناسی کلمات دست نویس فارسی اگر بتوانیم یک سری ویژگی پیدا کنیم که نسبت به تغیرات اندازه، چرخش و موقعیت کلمه ثابت باشند در باز شناسی بسار مفید خواهند بود. بنابراین با توجه به ویژگی­هایی که برایHu  مومنت ذکر کردیم در این مقاله از آن جهت اختصاص ویژگی استفاده کردیم.

با بررسی مقالات در زمینه سیستم­های OCR، به ویژه مقالات مرتبط با بازشناسی نوشتارهای دست نویس، 8 ویژگی ساختاری متداول را با توجه به ویژگی خاص کلمات دست نویس فارسی انتخاب کرده­اند که شامل:

  1. قطر دایره محاطی کلمه
  2. نسبت طول به عرض کلمه
  3. گریز از مرکز بیضی محاطی کلمه
  4. طول محور اصلی بیضی محاطی که دارای ممان مرکزی دوم نرمالیزه یکسانی با کلمه مورد نظر باشد.
  5. نسبت تعداد پیکسل­های داخل جعبه محاطی کلمه به مساحت جعبه محاطی
  6. نسبت مساحت چند وجهی محاطی کلمه به مساحت مستطیل محاطی
  7. محیط کلمه
  8. مساحت کلمه

4-2-1-3-       بازشناسی

در این بخش از شبکه MLP[81] جهت بازشناسی شهرها از یکدیگر استفداده کرده­اند. ار 50 نمونه موجود برای هر شهر، 40 نمونه را برای آموزش شبکه عصبی و  10 نمونه را جهت تست شبکه عصبی استفاده کرده­اند. در جدول زیرنتایج بازشناسی ناشی از اعمال شبکه عصبی MLP دو لایه با تعداد نرون­های متفاوت در لایه مخفی و با تفکیک استفاده از ویژگی­ها آورده شده است .

جدول ‏4‑2نتایج بازشناسی شبکه عصبی MLP دو لایه [41]

45 40 35 30 25 20 تعداد نرون­های لایه

 مخفی

ویژگی­ها

39% 42% 40% 37% 32% 17% 12 ویژگی – GLCM Matrix
29% 31% 34% 36% 27% 14% 7 ویژگی – Hu Moments
30% 31% 33% 34% 28% 16% 8 ویژگی – ویژگی­های ساختاری
72% 74% 75% 73% 69% 63% 27 ویژگی – Hu,GLCM, ساختاری

4-2-1-4-       نتیجه گیری

همانطور که در جدول 4-4 مشاهده می­کنید در حالتی که از تمام ویژگی­ها استفاده کرده­اند و تعداد نرون­های لایه مخفی در تعداد بهینه 35 نرون می­باشد به بالاترین نرخ باز شناسی 75% رسیده­اند.

4-2-2-              طراحي و پياده سازي سيستمي براي بازشناسي كلمات دستنويس فارسي با حروف گسسته و لغت‌نامة معين با استفاده از يك شبكة عصبي سلسله مراتبي

در اين مقاله [1]سيستمي براي بازشناسي نوشتار دست­نويس فارسي ارائه شده است كه در اكثر مجموعه­هايي كه با جمع‌آوري عمومي اطلاعات سروكار دارند، كاربرد دارد. هدف از اين پژوهش، بازشناسي كلمات دست‌نويسي است كه با حروف گسسته نوشته شده‌اند. ويژگي‌هاي مورد استفاده در اين پژوهش، ويژگي‌هاي آماري حروف جداسازي شده است. شناسايي هر حرف توسط مجموعه‌اي از شبكه‌هاي عصبي است كه به‌صورت سلسله ‌مراتبي به هم متصل شده‌اند. تقسيم‌بندي حروف به گروه‌بندي مناسب براي تقسيم‌ بهينة عمليات شناسايي بين شبكه‌هاي عصبي پياده سازي شده از ويژگي‌هاي اين پژوهش است و آناليز زباني انجام شده نيز براي كاهش احتمال خطا بر مبناي اطلاعات گروه‌بندي و با استفاده از لغت‌نامة اسامي اول 117000 نفر انجام شده است. آزمون­هاي انجام شده بر روي دستخط 200 نفر نشان‌دهندة درصد بازشناسي متوسط 2/77% براي شناسايي حروف گسسته و 4/84% براي شناسايي كلمات لغت‌نامه است.

به طور خلاصه، مراحل انجام شده در اين پژوهش به اين شرح است، ابتدا بانك اطلاعاتي وسيعي از دستخط‌هاي مختلف تهيه شده است كه فرم­هايي را با حروف منقطع پركرده‌اند. همچنين بانك اطلاعاتي مناسبي نيز براي لغت‌نامة مورد‌نياز تهيه شده كه در اين مورد اسامي اول (مرد و زن) شركت‌كننده در يك آزمون ورودي بزرگ مورد استفاده قرار‌گرفته است. سپس بانك اطلاعاتي كلمات، براي آموزش و تست يك شبكة عصبي سلسله مراتبي به كار برده شده و يك الگوريتم آناليز زباني آماري نيز براي تصحيح خطاهاي سيستم بازشناسي حروف از روي لغت‌نامه تهيه شده است. براي تصحيح اشتباه‌هاي احتمالي در هر دو بانك اطلاعاتي، هردو به شكل دستي كنترل و پالايش شده‌اند.

تصوير ورودي ابتدا پيش پردازش مي‌شود. مرحلة پيش پردازش شامل خواندن فايل تصوير هر كاراكتر، حذف نويز و دو سطحي كردن هر حرف است. در مرحلة بعد ويژگي­هاي مورد نظر از تصوير سياه و سفيد استخراج مي‌شوند و به مرحلة تصميم‌گيري كه شامل چند شبكة عصبي متصل به هم است، ارسال مي‌گردند. خروجي اين مرحله كه شمارة كاراكتر بازشناسي شده در جدول الفبا خواهد بود، براي حذف خطاهاي احتمالي به مرحلة آناليز زباني ارسال مي‌شود. دراين مرحله مجموعة كاراكترهاي بازشناسي شده، با اطلاعات لغت‌نامة موجود مقايسه شده، جواب نهايي به‌ دست مي‌آيد.

تصوير كلمه
پیش پردازش
استخراج ويژگي
تصميم گيري
آناليز زباني
كلمه بازشناسي شده
شکل ‏4‑7 بلوك دياگرام كلي سيستم [1]

4-2-2-1-       ساختار شبكة عصبي طراحي شده

با توجه به شباهت بسيار زياد بعضي حروف فارسي به هم (ج،چ،ح،خ) و يا (س، ش، ص و …) جدا سازي اين حروف با مشكل روبرو است و يك شبكة عصبي كه بتواند تمام اين حروف را از هم جدا كند، حداقل‌هاي محلي بسياري خواهد داشت. در اين تحقيق ابتدا گروه­هاي مناسبي از حروف با كمك الگوريتم‌هاي خوشه‌بندي، شواهد شهودي و آزمون و خطا تهيه شده است، ‌سپس يك شبكة عصبي MLP براي جداسازي اين گروه‌ها از هم، آموزش ديده ‌است.

4-2-2-2-       استخراج ويژگي

به طور كلي رابطة تنگاتنگي بين ويژگي‌هاي مورد استفاده و تنوع كاراكترهاي مورد بازشناسي وجود دارد. با توجه به اينكه كاراكترهاي مورد نظر از نوع  نوشتار دست‌نويس هستند، ويژگي‌هاي ساختاري به ‌دست آمده بسيار متنوع خواهد بود و ويژگي‌هاي آماري هر حرف، در مقابل تغييرات دست خط و زوائد مربوط به آن مقاوم‌ترند. بنابراين در اين پژوهش از ويژگي‌هاي آماري به عنوان ويژگي‌هاي اصلي در تصميم‌گيري استفاده شده است.

هفت ويژگي اول مورد استفاده، گشتاورهاي آماري تغيير ناپذير نسبت به تبديل­هاي هندسي[82] هستند كه از تركيب گشتاورهاي آماري مرتبة صفر تا سه حاصل مي‌شوند. متاسفانه مقاوم بودن اين ويژگي‌ها نسبت به اندازه و دوران تصوير باعث مي‌شود تا ويژگي‌هاي حاصل براي برخي از حروف متمايز فارسي مشابه باشند. مثلاً در ويژگي‌هاي استخراج شده برای «ا» و«ب» تفاوت محسوسي وجود ندارد. به همين دليل چند ويژگي جديد به اين مجموعه افزوده شده‌اند تا بازنمايي مناسبي از مشخصات هر حرف در ويژگي‌هاي استخراج شده انجام شده باشد. اين ويژگي‌ها عبارتند از :

8- نسبت واريانس هيستوگرام افقي به عمودي

9- نسبت مساحت نيمة بالايي به نيمة پاييني تصوير

10- نسبت مساحت نيمة چپ به نيمة راست تصوير

11- نسبت مساحت كل تصوير به مساحت مستطيل محاط كننده

12- نسبت طول به عرض مستطيل محاطي

13- نسبت واريانس نيمة بالايي به نيمة پاييني

14- انحراف معيار دوبعدي تصوير

4-2-2-3-       آناليز زباني

با توجه به اينكه سيستم براي بازشناسي كلمات با لغت‌نامه معين طراحي شده است، استفاده از آناليز زباني با كمك لغت‌نامه مي‌‌تواند خطاهاي مرحله بازشناسي حروف را جبران كند. براي اين كار يك پايگاه داده با 117000 كلمه از اسامي افراد شركت كننده در يك آزمون ورودي تهيه شد كه شامل حدود 5000 نام متمايز با فراواني هاي مختلف بود. با توجه به اينكه در اين سيستم بازشناسي خطايي در تشخيص تعداد حروف هر كلمه وجود ندارد، بانك اطلاعاتي كلمات با تعداد حروف متفاوت از هم جدا شدند.

4-2-2-4-       نتايج به دست آمده

سيستم طراحي شده در دو حالت مورد بررسي قرار گرفته است، ابتدا درصد بازشناسي زير‌گروه­هاي مختلف مورد ارزيابي قرار گرفته است. جدول زیر نتيجة بازشناسي را به ازاي زير گروه­هاي مختلف نشان مي‌دهد. نتايج نشان مي‌دهد كه در مجموع درصد بازشناسي نهايي به 2/77% رسيده است. اكثر اشتباهات در اين مرحله به علت شباهت عناصر گروه هاي مختلف با هم است.

جدول ‏4‑3درصد بازشناسي زير‌گروه­هاي مختلف[1]

ا ب پ ت ث ج چ ح خ د ذ ر ز
5/92 80 9/82 63 8/72 9/87 9/82 2/95 93 79 69 8/57 2/64
ژ س ش ص ض ط ظ ع غ ف ق ك گ
41 92 65 6/89 8/88 3/52 6/59 1/97 2/94 1/79 2/78 2/65 6/58
ل م ن و ه ي
93 1/97 6/71 6/89 3/73 6/63

در حالت دوم، براي هر يك از كلمات لغت‌نامه، به صورت اتفاقي حروف دست­نويس از بانك اطلاعاتي حروف انتخاب شده، سپس هر حرف مورد بازشناسي قرار گرفته است و در مرحله آناليز زباني،
نزديك­ترين كلمة لغت‌نامه به دنبالة حروف بازشناسي شده به عنوان كلمة بازشناسي شده ارائه شده است. اين آزمون به ازاي كلمات لغت‌نامه با تعداد حروف متفاوت ده بار آزموده شده و درصد بازشناسي با‌توجه به فراواني هر كلمه در لغت‌نامه محاسبه و روي ده بار آزمون متوسط‌گيري شده است.

با توجه به اينكه به ازاي هر حرف احتمال خطايي وجود دارد، در صورت عدم وجود لغت‌نامه، بازشناسي دنبالة حروف كلمات، درصد خطا را افزايش مي‌دهد. اما نتايج نشان مي‌دهد كه استفاده از لغت‌نامه به خوبي اين افزايش خطا را جبران كرده و در مجموع، درصد بازشناسي به 4/84% رسيده است كه در آن خطا كاهش هم يافته است.

به علت اين‌كه بعضي گروه‌ها يك عضوي نيستند، نام‌هاي متمايزي وجود دارند كه از لحاظ گروه‌بندي يكسان هستند. در اين سيستم عملاً نام با احتمال بيشتر برنده مي‌شود و نام با احتمال كمتر شانسي نخواهد داشت. اين خطاي ذاتي كه در اين سيستم غير قابل جبران است، روي كلمات لغت‌نامه با توجه به دسته‌بندي انجام شده محاسبه شده است و مقدار آن 6/1% به دست آمده است كه به خوبي قابل چشم‌پوشي است.

جدول ‏4‑4 درصد بازشناسي كلمات لغت‌نامه به ازاي تعداد حروف مختلف [1]

تعداد حروف 2 3 4 5 6 7 8 9 10 و بيشتر
درصد بازشناسي 97 84 75 81 85 88 93 89 91
تعداد اسامي متمايز 5 151 969 1212 597 436 559 459 673

4-3- بررسی چند سیستم دیگر

در [42] دو کلاسبند SVM و RBF را با هم مقایسه کرده است و از ویژگی زرنیک برای استخراج ویژگی استفاده کرده است. زمان لازم برای آموزش SVM زیادتر از RBF است ولی دقت SVM نیز در تشخیص داده­های تست و آموزشی بالاتر است. در کل با شبکه عصبی RBF به دقت 91% برای داده های تست کاراکتری و 8/92% برای اعداد و SVM به دقت ٩۴% و 8/94% به ترتیب برای داده های تست کاراکتری و اعداد دست یافته است.

در[43] SVM و MLP را با هم مقایسه کرده است و به ترتیب به دقت 94% و 91%´ دست یافته است.

در [44] شش روش کلاسبندی MLP، MQDF، DLQDF، PNC، CEPC و SVM را با هم مقایسه کرده است که SVM و CEPC بهترین کارایی را داشته­اند و حداکثر دقت آن 4/99% است.

در [45] یک معماری که از دو شبکه عصبی متفاوت با ١٣ و ٢٠ لایه مخفی استفاده کرده است. حروف براساس شباهت­شان به شش گروه تقسیم می­شود برای مثال حروف « خ ، ج، ح، چ، ع، غ » در یک گروه قرار می­گیرند. این معماری مسئله را در دو مرحله حل می­کند . در مرحله اول حروف ورودی با شبکه با ١٣ نود در لایه مخفی و شش نود خروجی به یکی از شش گروه نسیت می­دهد. در مرحله دوم حروف را با یکی از شش شبکه متفاوت (برای هر گروه یک شبکه با ٢٠ نود مخفی) کلاسبندی می­کند. در این سیستم از ویژگی موجک با ابعاد مختلف استفاده کرده است که به دقت 96% برای مجموعه آموزشی و 88% برای مجموعه تست دست یافته است.

در [46] از ترکیب ویژگیهای structural و تبدیل موجک و فرکتال و برای کلاسبندی از روش نزدیکترین همسایه (NNC) استفاده کرده است. که ویژگی­های استفاده شده به ترتیب به دقت 94%، 90% و 88% دست یافته است و با ترکیب این ویژگی­ها به دقت 97% رسیده است.

در [47] از کلاسبند Vector Quantiation استفاده کرده است که به دقت 86% دست یافته است.

4-4- نتیجه گیری

تحقیقات زیادی در زمینه شناسایی دستخط انجام شده است که به دقتهای خوبی دست یافته اند. البته به دلیل عدم وجود پایگاه داده استاندارد نمی­توان دقت­های بدست آمده توسط آنها را با هم مقایسه کرد ولی بالاترین دقتی که بدست آمده حدود 4/99% بوده است. البته هنوز هیچ روش شناسایی دستخط عمومی که در همه کاربردها بتوان از آن استفاده کرد وجود ندارد و روش­های استفاده شده بسیار بسته به کاربرد آن است. با دقت در پیش پردازش و استخراج ویژگی و روش کلاسبندی در هر کاربرد خاص میتوان به دقت خوبی دست یافت.

از ﻣﺰﻳﺖﻫﺎي اﻳﻦ اﻟﮕﻮرﻳﺘﻢ اﻳﻦ اﺳﺖ ﻛﻪ علارقم دیگر روش­ها، ﻧﻴﺎزي ﺑﻪ آﻣﻮزش ﻧﺪارد و ﻣﺒﺘﻨﻲ ﺑﺮ ﻗﺎﻋﺪه ﻣﻲﺑﺎﺷﺪ. ﻳﻜﻲ دﻳﮕﺮ از ﻣﺰﻳﺖﻫـﺎي ﻣﻬﻢ اﻳﻦ اﻟﮕﻮرﻳﺘﻢ، ﻫﻤﺰﻣﺎن ﺑﻮدن دو ﻓﺎزِ ﺟﺪاﺳﺎزي و ﺗﺸﺨﻴﺺ ﺣﺮوف ﻣﻲﺑﺎﺷﺪ. در اﻟﮕﻮرﻳﺘﻢﻫﺎي دﻳﮕﺮ اﻳﻦ دو ﻓﺎز ﻛﺎﻣﻼً از ﻳﻜﺪﻳﮕﺮ ﺟﺪا ﻫﺴﺘﻨﺪ و ﺗﻘﺮﻳﺒﺎً ﻫﻴﭻ ارﺗﺒﺎﻃﻲ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻧﺪارﻧﺪ. از آنﺟﺎ ﻛﻪ ﻫﻴﭻ روشِ ﻣـﻮﺛﺮي ﺑـﺮاي ﺟﺪاﺳـﺎزي ﺣـﺮوف از زﻳﺮﻛﻠﻤﺎت ﻣﻮﺟﻮد ﻧﻴﺴﺖ ﻣﻌﻤﻮﻻً ﺑﻌﺪ از اﻳﻦ ﻣﺮﺣﻠﻪ، ﻳﻚ ﻣﺮﺣﻠﻪ دﻳﮕﺮ ﻛﻪ ﭼﺴﺒﺎﻧﺪنِ ﺗﻜﻪﻫﺎي ﻣﺨﺘﻠﻒ ﻳﻚ ﺣﺮف ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻣﻲﺑﺎﺷﺪ، ﺑﻪ ﻛﻞ اﻟﮕﻮرﻳﺘﻢ اﺿﺎﻓﻪ ﻣﻲﺷﻮد. اﻳﻦ ﻛﺎر ﺳﺮﻋﺖ  ﺗﺸﺨﻴﺺ را ﭘﺎﻳﻴﻦ ﻣﻲآورد و زﻣﺎن ﺗﺸﺨﻴﺺ را اﻓﺰاﻳﺶ ﻣﻲدﻫﺪ.

وﻟﻲ در اﻟﮕﻮرﻳﺘﻢ ارائه ﺷﺪه در اﻳﻦ ﭘﺮوژه ﻣﻲﺗﻮان ﮔﻔﺖ ﻛﻪ اﺑﺘﺪا ﺣﺮف ﺗﺸﺨﻴﺺ داده ﻣﻲﺷـﻮد ﺳـﭙﺲ از ﺑﺪﻧـﻪ اﺻـﻠﻲ زﻳﺮﻛﻠﻤﻪ ﺟﺪا ﻣﻲﺷﻮد.

فصل 5-           نتیجه گیری و کارهای آینده

5-1- نتیجه گیری

با توجه به اینکه در یک سیستم خوب باید ویژگی­هایی نظیر اعراب کلمات، سرعت پردازش بالا، امکان تشخیص جداول موجود در متن نیز باشد (که در اغلب مقالات به آن نپرداخته بودند)، می­بینیم که بازشناسی متون فارسی هنوز فاصله زیادی تا تبدیل شدن به یک سیستم بازشناسی ایده­آل دارند.

الگوریتم پیشنهادی نسبت به سایر روش ها دارای نقاط قوتی چون عدم نیاز به جداسازی حروف و عدم نیاز به آموزش پایگاه داده را دارد که باعث سریع­تر شدن الگوریتم می­شود. علاوه بر آن، با اعمال اصلاح و تغییراتی می­توان آن را به یک الگوریتم توانا برای بازشناسی متون فارسی به کاربرد و به وسیله آن یک نرم­افزار یا سخت­افزار خوب را طراحی کرد. بنابراین اینجانب قصد دارم که برای تز دکتری خود، کار بر روی این الگوریتم را ادامه دهم و آنرا به محصولی سخت افزاری، برای بازشناسی و دسته­بندی نامه­های پستی تبدیل کنم.

5-2- کارهای آینده

</ a>ﻫﻤﺎﻧﻄﻮﺭ ﻛﻪ ﻣﻼﺣﻈﻪ ﺷﺪ، ﻓﺮﺁﻳﻨﺪ ﺗﺒﺪﻳﻞ ﻳﻚ ﺗﺼﻮﻳﺮ ﺳﻨﺪ ﺑﻪ ﻣﺘﻦ ﻗﺎﺑﻞ ﻭﻳﺮﺍﻳﺶ ﻳﺎ ﻫﻤﺎﻥ OCR، ﭘﻴﭽﻴﺪﻩ ﺍﺳﺖ ﻭ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻳﻚ ﺳﻴﺴﺘﻢ OCR ﻛﺎﺭﺁﻣﺪ ﻓﺎﺭﺳﻲ، ﺩﺭ ﺩﺭﺍﺯ ﻣﺪﺕ ﻭ ﺑﺎ ﺍﻧﺠﺎﻡ ﺗﺤﻘﻴﻘﺎﺕ ﻭﺳﻴﻊ ﻭ ﻣﺘﻤﺮﻛﺰ ﻣﺤﻘﻖ ﺧﻮﺍﻫﺪ ﺷﺪ. ﺩﺭ ﺍﺩﺍﻣﻪ، ﺭﺍﻫﻜﺎﺭﻫﺎﻳﻲ ﺑﻪ ﻣﻨﻈﻮﺭ ﺗﺴﺮﻳﻊ ﺩﺭ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻳﻚ ﺳﻴﺴﺘﻢ OCR ﻓﺎﺭﺳﻲ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲﮔﺮﺩﺩ:

– ﺑﺮﺧﻲ ﺍﺯ ﻋﻤﻠﻴﺎﺕ ﭘﺮﺩﺍﺯﺷﻲ ﺳﻴﺴﺘﻢ OCR ﻭﺍﺑﺴﺘﮕﻲ ﻛﻤﺘﺮﻱ ﺑﻪ ﻧﻮﻉ ﺯﺑﺎﻥ ﻣﺘﻦ ﺩﺍﺭﻧﺪ ﻭ ﺭﻭﺵﻫﺎﻱ ﭘﺮﺩﺍﺯﺷﻲ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﺩﺭ ﺳﻴﺴﺘﻢﻫﺎﻱ OCR ﻻﺗﻴﻦ، ﻣﺴﺘﻘﻴﻤﺎً ﻳﺎ ﺑﺎ ﺍﻧﺠﺎﻡ ﺗﻐﻴﻴﺮﺍﺕ ﺟﺰﺋﻲ ﺑﺮﺍﻱ ﺁﻥﻫﺎ ﻗﺎﺑﻞ ﺍﻋﻤﺎﻝ ﻫﺴﺘﻨﺪ. ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ، ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎﻱ ﭘﻴﺸﻨﻬﺎﺩ ﺷﺪﻩ ﺩﺭ ﻣﻘﺎﻻﺕ ﺑﺮﺍﻱ ﻋﻤﻠﻴﺎﺕ ﭘﻴﺶﭘﺮﺩﺍﺯﺵ (ﻧﻈﻴﺮ ﺩﻭﮔﺎﻧﻲﻛﺮﺩﻥ ﺗﺼﻮﻳﺮ، ﻛﺎﻫﺶ ﻧﻮﻳﺰ، ﺗﺼﺤﻴﺢ ﻛﺠﻲ ﺻﻔﺤﻪ ﻭ …) ﺑﺮﺍﻱ ﻫﺮ ﻣﺘﻨﻲ ﺻﺮﻑ ﻧﻈﺮ ﺍﺯ ﻧﻮﻉ ﺯﺑﺎﻥ ﺁﻥ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺑﺎﺷﻨﺪ. ﻫﻤﭽﻨﻴﻦ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺍﻳﺪﻩﻫﺎﻱ ﺍﺭﺍﺋﻪ ﺷﺪﻩ ﺑﺮﺍﻱ ﻗﻄﻌﻪﺑﻨﺪﻱ ﺑﻴﺮﻭﻧﻲ، ﺑﺎﺯﺷﻨﺎﺳﻲ، ﺁﻣﻮﺯﺵ ﻭ ﭘﺲﭘﺮﺩﺍﺯﺵ ﻣﺘﻮﻥ ﻻﺗﻴﻦ ﺭﺍ ﻣﻲﺗﻮﺍﻥ ﺑﺎ ﺍﻧﺠﺎﻡ ﻳﻜﺴﺮﻱ ﺗﻐﻴﻴﺮﺍﺕ، ﺑﺮﺍﻱ ﻣﺘﻮﻥ ﻓﺎﺭﺳﻲ ﻧﻴﺰ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﻮﺩ.

‐ ﮔﻠﻮﮔﺎﻩ ﻳﻚ ﺳﻴﺴﺘﻢ OCR ﻓﺎﺭﺳﻲ ﻭ ﻧﻘﻄﺔ ﺗﻤﺎﻳﺰ ﺁﻥ ﺑﺎ OCR ﻻﺗﻴﻦ، ﻋﻤﻠﻴﺎﺕ ﻗﻄﻌﻪﺑﻨﺪﻱ ﺩﺭﻭﻧﻲ ﺍﺳﺖ ﻛﻪ ﭼﻨﺎﻧﭽﻪ ﺑﺘﻮﺍﻥ ﺑﺨﻮﺑﻲ ﺁﻥ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﺍﺩ، به جرﺃﺕ ﻣﻲﺗﻮﺍﻥ ﻋﻨﻮﺍﻥ ﻧﻤﻮﺩ ﻛﻪ ﻧﻴﻤﻲ ﺍﺯ ﺭﺍﻩ ﺭﺍ ﻃﻲ ﻧﻤﻮﺩﻩﺍﻳﻢ. ﺑﻨﺎﺑﺮﺍﻳﻦ ﺑﺠﺎ ﺍﺳﺖ ﻛﻪ ﺗﻤﺮﻛﺰ ﺍﺻﻠﻲ ﺧﻮﺩ ﺭﺍ ﺑﺮ ﺍﻳﻦ ﻗﺴﻤﺖ ﻣﻌﻄﻮﻑ ﺩﺍﺭﺩ.

  • در الگوریتم ارائه شده فرض بر این است که تصویر ورودی طیف خاکستری است، متن به رنگ تیره و پس زمینه به رنگ روشن است. در کاربردهای عملی، موارد زیادی وجود داردکه در تصویر ورودی متن به رنگ روشن تر و پس زمینه به رنگ تیره تر است. حتی در برخی موارد، پس زمینه و متن دارای رنگ ثابت نیستند و استخراج متن از پس زمینه نیازمند الگوریتم های پیچیده است. در زمینه استخراج متن از این نوع تصاویر تحقیقات نسبتاً زیادی شده است که می توان از نتایح آنها برای بهبود الگوریتم پیشنهادی استفاده نمود. در حالت ایده­آل، الگوریتم پیش پردازش باید بتواند متن­ها را از یک فریم ویدیویی شلوغ با کیفیت نسبتاً پایین استخراج نموده و به صورت سیاه و سفید بدون نویز برای مراحل بعدی آماده کند. به عنوان نمونه در [48] این کار برای متون انگلیسی به خوبی انجام شده است که با بسط آن به متون فارسی می توان نتایج خوبی گرفت.
  • در الگوریتم ارائه شده، تعدادی قانون برای تعیین نوع عناصر ابتدایی از روی خط های استخراج شدة هر استروک به کار رفته است. اگر از الگوریتم­هایی که مستقیماً خط را تشخیص می­دهند استفاده شود، بهتر است. بنابراین پیشنهاد می شود برای تعیین نوع عناصر ابتدایی به خصوص C، U و D از الگوریتم های تشخیص خم استفاده شود.
  • یکی از کمبود های الگوریتم حاضر بازشناسی حروف فارسی نسبت به سیستم­های تجاری موجود، عدم استفاده از یک سیستم تصحیح برای تصحیح نهایی واژه­های شناسایی شده است. در انتهای الگوریتم می­توان از یک دیکشنری استفاده کرد و در صورت یافت نشدن واژه، آن را با نزدیکترین لغت جایگزین کرد.
  • این الگوریتم قادر به شناسایی شکل­های خاص حروف «ه» و «ح» در زیرکلمات و همچنین شکل­ها خاص نظیر اشکال «ﻻ ﻼ ے ؏» نیست. لذا با کار بر روی این حالات خاص می­توان دقت الگوریتم را بالا برد.

پیوست (1) مقالات مستخرج از تز

  1. ” تشخیص حروف و زیرکلمات دست نویس فارسی با استفاده از عناصر ابتدایی تشکیل دهنده حروف ” بیست و دومین کنفرانس بین المللی برق ایران (ICEE2014)، دانشگاه شید بهشتی، اردیبهشت 1393.

پیوست (2) واژه نامه فارسي به انگليسی

استخراج ویژگی از ماتریس Gray Level Co Occurrence Matrix
ایتالیک Italic
آستانه گذاری Thresholding
برخط Online
برون خط Ofline
بینایی ماشین Machine Vision
پردازش تصویر Image Processing
پردازش سیگنال دیجیتال Digital Signal Processing
پویش Scan
پیکسل Pixel
تبدیل­های هندسی Moment Invariant
تصویر Binarization
تفکیک Resolution
تمرین Training
جداسازی، قطعه بندی Segmentation
جداسازی Separation
چاپی Printed
چند لایه Multilayer
خط کرسی Base Line
دست­نویس Handwriting
دسته بندی نزدیک­ترین همسایه Nearest Neighbor Classifier
روش­های آماری کلاسه بندی بافت Statical Texture Classification
روشنایی Intensity
زیرکلمه Subword
ساده سازی جهت­ها Directions Simplifying
فضای خالی Space
قلم Font
کدهای زنجیره­ای Chain Code
کلمه Word
منطق فازی Fuzzy Logic
مومنت Hu Hu moment
نویسه Letter
یادگیری ماشین Machine Learning

پیوست (3) واژه نامه انگليسي به فارسي

خط کرسی Base Line
تصویر Binarization
کدهای زنجیره­ای Chain Code
پردازش سیگنال دیجیتال Digital Signal Processing
ساده سازی جهت­ها Directions Simplifying
قلم Font
منطق فازی Fuzzy Logic
استخراج ویژگی از ماتریس Gray Level Co Occurrence Matrix
دست­نویس Handwriting
مومنت Hu Hu moment
پردازش تصویر Image Processing
روشنایی Intensity
ایتالیک Italic
نویسه Letter
یادگیری ماشین Machine Learning
بینایی ماشین Machine Vision
تبدیل­های هندسی Moment Invariant
چند لایه Multilayer
دسته بندی نزدیک­ترین همسایه Nearest Neighbor Classifier
برون خط Ofline
برخط Online
پیکسل Pixel
چاپی Printed
تفکیک Resolution
پویش Scan
جداسازی ، قطعه بندی Segmentation
جداسازی Separation
فضای خالی Space
روش­1های آماری کلاسه بندی بافت Statical Texture Classification
زیرکلمه Subword
آستانه گذاری Thresholding
تمرین Training
کلمه Word

 فهرست مراجع

[1]      پ. ح. س. م. ر. ف،, “طراحي و پياده سازي سيستمي براي بازشناسي كلمات دست­نويس فارسي با حروف گسسته و لغت‌نامة معين با استفاده از يك شبكة عصبي سلسله مراتبي,” شرکت مهندسی الکترونیک و رایانه پژوهندگان سپهر اندیشه.

[2]      د. ع. و. ایران, ” بررسی نیازمندی های پروژه های زیر ساختی نویسه خوان نوری فارسی به پیکره متنی زبان فارسی,” زیر پروژه, 1388.

[3]       س. ح. ق. جق, “کاربرد تجزیه تنک در تشخیص اتوماتیک حروف,” پایان نامه کارشناسی ارشد مهندسی مخابرات دانشگاه صنعتی شریف, 1389.

[4]      ش. انصافی, “طراحی و پیاده سازی یک الگوریتم جهت جداسازی و شناسایی حروف پیوسته فارسی”، ” دانشگاه شهید بهشتی پایان نامه کارشناسی ارشد مهندسی الکترونیک، 1388.

[5]      R. O. Duda, P. E. Hart, and D. G. Stork, Pattern classification: John Wiley & Sons, 2012.

[6]       L. O’Gorman and R. Kasturi, Document image analysis vol. 39: IEEE Computer Society Press Los Alamitos, CA, 1995.

[7]       H. Khosravi and E. Kabir, “Introducing a very large dataset of handwritten Farsi digits and a study on their varieties,” Pattern Recognition Letters, vol. 28, pp. 1133-1141, 2007.

[8]       S. Khalighi, P. Tirdad, and H. R. Rabiee, “A novel OCR system for calculating handwritten persian arithmetic expressions,” in Signal Processing and Information Technology (ISSPIT), 2009 IEEE International Symposium on, 2009, pp. 277-282.

[9]       L. Eikvil, “OCR-optical character recognition,” 1993.

[10]     G. Tauschek, “READING MACHINE,” ed: Google Patents, 1935.

[11]     S. Mori, C. Y. Suen, and K. Yamamoto, “Historical review of OCR research and development,” Proceedings of the IEEE, vol. 80, pp. 1029-1058, 1992.

[12]     R. G. Casey and E. Lecolinet, “A survey of methods and strategies in character segmentation,” Pattern Analysis and Machine Intelligence, IEEE Transactions on, vol. 18, pp. 690-706, 1996.

[13]     U. Miletzki, “Character recognition in practice today and tomorrow,” in Document Analysis and Recognition, 1997., Proceedings of the Fourth International Conference on, 1997, pp. 902-907.

[14]     G. Nagy, “Twenty years of document image analysis in PAMI,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, pp. 38-62, 2000.

[15]     G. Nagy, T. A. Nartker, and S. V. Rice, “Optical character recognition: An illustrated guide to the frontier,” in Electronic Imaging, 1999, pp. 58-69.

[16]     ا. فرامرزی, “بازشناسی نوری حروف: مروری بر مباحث نظری و ملاحظلت کاربردی با تاکید بر مسائل خاص زبان فارسی,” ماهنامه علوم اطلاع رسانی، 1384.

[17]    M. S. Khorsheed, “Off-line Arabic character recognition–a review,” Pattern analysis & applications, vol. 5, pp. 31-45, 2002.

[18]     F. Biadsy, J. El-Sana, and N. Habash, “Online arabic handwriting recognition using hidden markov models,” in Tenth International Workshop on Frontiers in Handwriting Recognition, 2006.

[19]     A. Amin, “Off-line Arabic character recognition: the state of the art,” Pattern recognition, vol. 31, pp. 517-530, 1998.

[20]     B. Al-Badr and S. A. Mahmoud, “Survey and bibliography of Arabic optical text recognition,” Signal processing, vol. 41, pp. 49-77, 1995.

[21]     L. M. Lorigo and V. Govindaraju, “Offline Arabic handwriting recognition: a survey,” Pattern Analysis and Machine Intelligence, IEEE Transactions on, vol. 28, pp. 712-724, 2006.

[22]     S. Al-Emami and M. Usher, “On-line recognition of handwritten Arabic characters,” Pattern Analysis and Machine Intelligence, IEEE Transactions on, vol. 12, pp. 704-710, 1990.

[23]     T. J. Klassen and M. I. Heywood, “Towards the on-line recognition of arabic characters,” in Neural Networks, 2002. IJCNN’02. Proceedings of the 2002 International Joint Conference on, 2002, pp. 1900-1905.

[24]     N. Mezghani, A. Mitiche, and M. Cheriet, “On-line recognition of handwritten Arabic characters using a Kohonen neural network,” in Frontiers in Handwriting Recognition, 2002. Proceedings. Eighth International Workshop on, 2002, pp. 490-495.

[25]     N. Mezghani, A. Mitiche, and M. Cheriet, “A new representation of shape and its use for high performance in online Arabic character recognition by an associative memory,” International Journal of Document Analysis and Recognition (IJDAR), vol. 7, pp. 201-210, 2005.

[26]     G. Al-Habian and K. Assaleh, “Online Arabic handwriting recognition using continuous Gaussian mixture HMMs,” in Intelligent and Advanced Systems, 2007. ICIAS 2007. International Conference on, 2007, pp. 1183-1186.

[27]    ر. س. م. ک. ا. الله, “روشی ساده برای بازشناسی برخط زیرکلمات فارسی,” نشریه مهندسی برق و مهندسی کامپیوتر ایران، 1384.

[28]    A. Senior and K. Nathan, “Writer adaptation of a HMM handwriting recognition system,” in Acoustics, Speech, and Signal Processing, 1997. ICASSP-97., 1997 IEEE International Conference on, 1997, pp. 1447-1450.

[29]     A. K. Jain, F. D. Griess, and S. D. Connell, “On-line signature verification,” Pattern recognition, vol. 35, pp. 2963-2972, 2002.

[30]     A. Vinciarelli and S. Bengio, “Writer adaptation techniques in HMM based off-line cursive script recognition,” Pattern Recognition Letters, vol. 23, pp. 905-916, 2002.

[31]     S. N. Srihari, G. R. Ball, and H. Srinivasan, “Versatile search of scanned Arabic handwriting,” in Arabic and Chinese Handwriting Recognition, ed: Springer, 2008, pp. 57-69.

[32]     S. Ensafi, M. Miremadi, M. Eshghi, M. Naseri, and A. Keipour, “Recognition of Separate and Adjoint Persian Letters in Less than Three Letter Subwords Using Primitives,” in Proceedings of Iran 17th Electrical Engineering Conference, Tehran, 2009, pp. 11-13.

[33]     S. Singh and A. Amin, “Neural network recognition and analysis of hand-printed characters,” in Neural Networks Proceedings, 1998. IEEE World Congress on Computational Intelligence. The 1998 IEEE International Joint Conference on, 1998, pp. 1743-1747.

[34]     A. J. A. a. L. M. Alzoubady, “Arabic Handwritten Characters Recognized By Neocognitron Artificial Neural Network,” University of Sharjah Journal of Pure & Applied Sciences, vol. 3, pp. 1-17, 2006.

[35]    م. میرعمادی, “تشخیص حروف فارسی با استفاده از عناصر تشکیل دهنده حروف,” پایان نامه کارشناسی ارشد مهندسی  دانشگاه شهید بهشتی, 1385.

[36]     S. Ensafi, M. Eshghi, and M. Naseri, “Recognition of separate and adjoint Persian letters using primitives,” in Industrial Electronics & Applications, 2009. ISIEA 2009. IEEE Symposium on, 2009, pp. 611-616.

[37]     A. Dawoud, “Iterative cross section sequence graph for handwritten character segmentation,” Image Processing, IEEE Transactions on, vol. 16, pp. 2150-2154, 2007.

[38]     J. S. Lim, “Two-dimensional signal and image processing,” Englewood Cliffs, NJ, Prentice Hall, 1990, 710 p., vol. 1, 1990.

[39]     B. K. Jang and R. T. Chin, “One-pass parallel thinning: analysis, properties, and quantitative evaluation,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 14, pp. 1129-1140, 1992.

[40]     S. Touj, N. E. B. Amara, and H. Amiri, “Generalized hough transform for arabic optical character recognition,” in Proceedings of the Seventh International Conference on Document Analysis and Recognition-Volume 2, 2003, p. 1242.

[41]    ه. ق. ا. س. ع،, “بازشناسی برون خط کلمات دست نویس فارسی با تاکید بر تشخیص نام چند شهر,” هفتمین کنفرانس بینایی ماشین و پردازش تصویر ایران, 1390.

[42]     H. R. Kanan, K. Faez, and S. Mozaffari, “Performance comparison of RBF Neural Network and SVM classifiers using zernike moments in Farsi/Arabic handwritten alphanumeric recognition,” in 2nd IEEE GCC 2004 Conference, Manama, Bahrain, 23-25 November 2004.

[43]     J. Sadri, C. Y. Suen, and T. D. Bui, “Application of support vector machines for recognition of handwritten Arabic/Persian digits,” in Proceedings of Second Iranian Conference on Machine Vision and Image Processing, 2003, pp. 300-307.

[44]     C.-L. Liu and C. Y. Suen, “A new benchmark on the recognition of handwritten Bangla and Farsi numeral characters,” Pattern Recognition, vol. 42, pp. 3287-3295, 2009.

[45]     A. Asiri and M. S. Khorsheed, “Automatic Processing of Handwritten Arabic Forms using Neural Networks,” in IEC (Prague), 2005, pp. 313-317.

[46]     K. Jung, K. In Kim, and A. K Jain, “Text information extraction in images and video: a survey,” Pattern recognition, vol. 37, pp. 977-997, 2004.

[47]     J. Shanbehzadeh, H. Pezashki, and A. Sarrafzadeh, “Features extraction from farsi hand written letters,” in Proceedings of Image and Vision Computing New Zealand, 2007, pp. 35-40.

[48]     S. Sankirti and P. Kamade, “Video OCR for Video Indexing,” CoRR, 2011.

Abstract

     In this project, a new method for the detection of Persian handwritten letters and words are used. This is done by using eight basic elements that there are in all the letters and words of the Persian language. In this project after preprocessing, subword are thinned and entered in the primitive extraction process. At this stage by using of the stroke and modified Hough transform, basic elements of subword had been extracted. With making the stroke identify vector and compare it with the characters identify vector, recognition will be done.

     Unlike conventional methods of subword handwriting recognition, this method, have no training and recognition and separation process, occurs simultaneously. For testing of Separate letters and numbers, IFHCDB test database are used and for the two and three letter words, a database is built. The proposed algorithm is tested on this databases and the accuracy for the detection of numbers is 98.8%. Also on isolated Persian words, that approximately constitute 50% of the subword Persian texts is 88.7%, for two letters subword that about 32% of the that make up, 81.4% and for three letters subword that approximately constitute 12% of the texts is 73.6%.

Keywords: basic elements; handwriting recognition; character processing; optical character recognition; OCR.

[1] Scan

[2] Font

[3] Digital Signal Processing

[4] Thresholding

[5] Image Processing

[6] Segmentation

[7] Machine Vision

[8] Machine Learning

[9] Fuzzy Logic

[10] Resolution

[11] Binarization

[12] Training

[13] Artificial intelligence

[14] Classification

[15] Sensor

[16] Feature extraction

[17] Document Image Analysis

[18] Letter

[19] Pixel

[20] Intensity

[21] Online

[22] Offline

[23] Handwriting

[24] Printed

[25] Subword

[26] Separation

[27] Base Line

[28] Word

[29] Space

[30] Hidden Markov Model

[31] Beam Search

[32] Internal Segmentation

[33] Representation

[34] Recognition

[35] Preprocessing

[36] External Segmentation

[37] Post processing

[38] ﺑﻪ ﻋﻨﻮان ﻧﻤﻮﻧﻪ ﻣﻲﺗﻮان ﺑﻪ ﭘﺎﻳﺎنﻧﺎﻣﻪﻫﺎي «اردﺷﻴﺮﺑﻬﺮﺳﺘﺎﻗﻲ» (1372)، «اﺳﺪي» (1377)، «اﻣﻴﺮي» (1381)، «ﺑﺤﺮي» (1376)، «ﺑﻨﻲاﺳﺪي» (1373)،«ﺗﻴﻤﺴﺎري» (1371)، «ﺛﺎﻧﻲ» (1373)، «رادﻣﻬﺮ» (1372)، «دﻫﻘﺎﻧﻲ» (1379)، «رﺿﻮي» (1375)، «رﻓﻴﻌﻲﻛﺮاﭼﻲ» (1373)، «ﺷﺎهﺣﺴﻴﻨﻲ» (1374)،«ﺻﺪوﻗﻲﻳﺰدي» (1375)، «ﻋﺒﺎﺳﻴﺎن» (7376)، «ﻋﺰﻣﻲ» (1378)، «ﻣﺮﺗﻀﻲﭘﻮر» (1378)، «ﻣﺴﺮوري» (1373)، «ﻣﺴﺮوري» (1379)، «ﻣﻘﺪم ﺗﺒﺮﻳﺰي» (1375)، «ﻣﻘﺴﻤﻲ» (1376)، «ﻧﺤﻮي» (1376)، «ﻧﻈﺎمآﺑﺎديﭘﻮر» (1379) و «ﻧﻤﺎزي» (1373)  ﻣﺮاﺟﻌﻪ ﻛﺮد.

[39] Primitives

[40] Preprocessing

[41] Median Filter

[42] Vertical Projection

[43] Medial Axis Transformation

[44] Iterative Boundary Removal

[45] Connectivity

[46] Deletable

[47] Simple

[48] Undeletable

[49] No simple

[50] Matching Operation

[51] Thinning Operation

[52] Difference Operation

[53] Boundary Pixels

[54] Isotropic Skeleton

[55] Over shrinking

[56] End Point

[57] Square Pattern

[58] T junction

[59] Y-shaped

[60] Fork Point

[61] Stroke

[62] Single Stroke

[63] Multi Stroke

[64] Image Space

[65] Parameter Space

[66] Accumulator

[67] Collinearity

[68] Normal representation

[69] Stroke Identification Vector

[70] )Character Identification Vector (CIV

[71] Dots First Column (DFC)

[72] Dots End Column (DEC)

[73] Primitives First Column (PFC)

[74] Primitives End Column (PEC)

[75] Isolated Farsi/Arabic Handwritten Character DataBase

[76] Erosion

[77] Dilation

[78] Gray Level Co Occurrence Matrix

[79] Statical Texture Classification

[80] Hu moment

[81] Multilayer perceotion

[82] – Moment Invariant

شبیه سازی با متلب

نمایش توابع سینوسی با متلب و با دستور stem

در این آموزش متلب میخوام 3 تابع سینوسی را با بازه های زمانی مشخص تعریف کنیم و آن ها را با دستور stem رسم کنیم

آموزش متلب

آموزش متلب

ابتدا یک ام فایل در متلب ایجاد می کنیم و در برنامه بازه ها را اینطور تعریف میکنیم

n=.1;

t1=0:n:80;

t2=-10:n:10;

t3=0:n:30;

با این دستور رشته اعدادی بین مینیمم و ماکزیمم بازه با گام هایی به اندازه n ایجاد کرده ایم.

همچنین n میتواند تنها یک عدد بین بازه ی تعریف شده باشد. ولی در اینجا چون تابع سینوسی را میخواهیم نمایش دهیم نیاز به رشته ی زمانی در آن بازه داریم

نکته: اندازه ی گام های زمانی n میتواند به دلخواه کاربر تغییر کند.

توابع را نیز اینطور می نویسیم:

;(x1=sin((pi/17)*t1);     x2=sin(3*pi*t2+pi/2);     x3=sin(t3

به همین راحتی توانستیم توابع سینوسی را در متلب بنویسیم

میخواهیم با دستور stem (نمایش به صورت گسسته) توابع بالا را در متلب نمایش دهیم

دستور متلب به این صورت برای هر تابع سینوسی نوشته می شود:

figure

stem(t1,x1)

نمایش نتایج:

تابع اول

آموزش متلب

آموزش متلب

تابع دوم

آموزش متلب

آموزش متلب

تابع سوم

آموزش متلب

آموزش متلب

همانطور که از نتایج بدست آمده در شکل های بالا مشخص هست هر سه به صورت پریودیک هستند

به طور مثال شکل تابع اول نمایش داده شده است

آموزش متلب

آموزش متلب

برای دانلود برنامه متلب آموزش رسم توابع سینوسی اینجا را کلیک کنید

پروژه متلب

 

 

 

 

 

 

 

 

شبیه سازی با متلب

کنترل ولتاژ شبکه توزیع با تغییر تپ چنجر و خازن گذاری در متلب

سیستم توزیع انرژی الکتریکی به همراه مصرف کننده های عمده و جزئی از طریق سیستم انتقال به ولتاژ فشار قوی متصل است . سطح ولتاژ در سیستم توزیع پایین است و در نتیجه اندازه جریان ها زیاد می باشد به همین دلیل تلفات اهمی در سیستم های توزیع در مقایسه با سیستم های انتقال از اهمیت بیشتری برخوردار است . مسئله کاهش تلفات و بهبود کارایی تحویل انرژی الکتریکی سیستم قدرت عمدتاً به بخش های توزیع الکتریکی برمی گردد .

هرساله هزینه هفتگی برای جبران سازی تلفات انرژی الکتریی در سیستم قدرت از طریق تولید مازاد برمصرف صرف می شود . آمار نشان می دهد تلفات انرژی برق در شبکه های انتقالی نیرو طی سالهای گذشته 3 الی 4 درصد و در بخش توزیع 11 الی 12 درصد است و این نیز دلیلی دیگر برای اهمیت وتوجه به مسئله تلفات در سیستم توزیع می باشد . لذا بایستی با شناخت عوامل ایجاد کننده تلفات در جهت حذف این عوامل و کاهش تلفات قدمهای موثری برداشته شود . یکی از منابع مهم ایجاد تلفات ، توان راکتیوهای جاری در خطوط می باشد

تنظيم كننده ولتاژ نـوع پلـه اي شـامل يـك اتـوترانس و يـكدستگاه تغيير تپ زير بار مي باشـد كـه در يـك واحـد كامـل ساخته شده است . تغييـر ولتــاژ از طــريق تغييـر تـپ هـاي اتوترانس به دست مي آيد. تنظيم كننده هاي گامي اسـتاندارد داراي محدوده تنظيم 10% ( محدوده 10% ± آنها به ترتيب 32 يا 16 گام) مـي باشـند.بعضــي از واحــدها شامـل يـك كليد معكوس كننده مـي باشـند كـه قـادر اسـت محدوده تنظيم ولتاژ 10% ± را به وجود آورد. تنظـيم كننـده هاي ولتاژ گامي جديد داراي محـدوده تنظيـم ولت ـاژ 10% مي باشنـد كه به گام هاي 5 و 1 درصد تقسيم شده انـد. تنظيم كننده هاي ولتاژ گامي (اتوبوستر) با اتوترانس ها تفاوت دارند يعني آن ها به جاي اين كه بر حسـب كيلـو ولـت آمپـركلي مدار درجه بندي شوند برحسـب ميـزان كيلوولـت آمپـرتنظيمي درجه بندي شده اند. براي مثال ، يـك تنظـيم كننـده ولتاژ گامي سه فاز با قدرت 750 كيلو ولت آمپر و با محـدودهتنظيمي 10% ± در يك مدار سه فـاز بـا قـدرت نـامي 7500 كيلوولت آمپر مورد استفاده قرار مي گيرد. ولتاژ يك فاز را به ميزان 10% مقدار نامي مثبت يا منفي تغيير خواهد داد. تنظـيم كننده هاي ولتاژ برحسب آمپر نيز درجه بنـدي مـي شـوند دركاربرد تنظيم كننده جريان نامي آن بايستي برابـر يـا بيشـتر ازجريان خط باشد.

دو نوع تنظيم كننده پله اي وجود دارد نـوع پسـت ونوع شبكه توزيع كه اغلـب مواقـع ، تنظـيم كننده هاي ولتاژ توزيع كننده هاي ولتاژ تغذيـه كننـده توزيـع ناميده مي شوند به صورت يك فازه با قـدرت نـامي 5/12 تـا167 كيلوولت آمپر و ولتاژ نامي 4/14 كيلو ولت وكمتر وجوددارد. واحدهاي كوچكتر كه اغلب به نوع خط موسوم هستند، بــراي نصــب روي تيرهاســاخته مــي شــوند. واحــدهاي بزرگتربراي نصب روي تير مناسب نيستند و در داخـل پسـتها و يا روي سكو قرار داده مي شوند. تمام واحـدها كامـلا” خـودكار و شامـل تمـام لـوازم مربوطه مي باشند .

درصورتي كه از تنظيم كننده هاي نوع توزيع در يك محـدوده تنظيـم كاهـش ي استفـاده شـود ، ظرفيـت آنهــا را مـي تـوان افزايش داد . باكاهش 5% ± محدوده تنظيم ، ظرفيت تـا160% افزايش مي باشد. جـدول زیر افـزايش ظرفيـت مجـاز را بـراي كاهش هاي مختلف در محدوده تنظيم بـه طـور فهرسـت واربيان مي نمايد. برتري افزايش ظرفيت كـه در يـك محــدوده تنظيـم كاهش ي به دست مـي آيـد قبـل از ايـن كـه رشـد بـارمستلزم يك تغيير وضعيت باشد عبارت از افزايش زمـان كـارتنظيم كننده است. يعني اين كه تـامين يـك محـدوده تنظـيمكوچكتر مجاز امكان پذير است .

 

توانائي عبور جريان

اتصال كوتاه برحسب واحد

جريان نامي

مداوم برحسب واحد

بزرگترين محدوده تنظيمي كه بايد به كار برد
0/1*25 براي 2 ثانيه 1/00 10% تنظيم درجهت مثبت

در نگاهی گذرا به نظر می رسد که خازن یک وسیله بسیار ساده یعنی دو صفحه فلزی است که با یک ماده عایقی دی الکتریم از هم جدا شده اند . خازن بخش متحرک ندارد و با اعمال فشار الکتریکی کار می کند . اما در واقع خازن قدرت یک وسیله پیچیده و کاملاً فنی است که در آن مواردی التریک بسیار نازک و فشارهای التریکی قوی با شیوه های فرآیندی کاملاً پیچیده به یکدیگر مرتبط اند . در گذشته بیشتر خازن های قدرت را از دو برگ آلومینیوم خالص می ساختند که دست کم با سه لایه کاغذ گرافت با اشباع شیمیایی از هم جدا می شوند .

خازن های قدرت در 30 سال اخیر بهبود زیادی یافته اند که هم به علت بهبود موادی الکتریک و با استفاده بهتر از آنها و هم به علت بهبود در تکنیکهای فرآیند است. اندازه خازنها از بهینه kVar 25-15 به پهنه ی kVar300-200 افزایش یافته است . ( گروه خازنها در اندازه های 300 تا kVar 1800 عرضه می شوند).]1[.

امروزه خازنهای قدرت در دسترس شرکتهای برق رسانی نسبت به 30 سال پیش بازده بیشتر و هزینه برکیلو وار کمتر دارند به طور کلی ، امروزه بیش از گذشته به خازنها توجه می شود که تا حدی به علت اضافه شدن بعد جدیدی در تحلیها یعنی اقتصاد متغیر است . در پاره ای شرایط ، حتی تعویض خازنهای قدیمی تر برمبنای ارزیابی اتلاف کمتر خازنهای جدید توجیه می شود . تکنولوژی خازنها ، به سمت طرحهای بسیار کم اتلافی متحول شده که ناشی ازساخت فیلمی (پوسه ای ) است . در نتیجه ، شرکتهای برق رسانی می توانند انتخاب خود را براساس ارزیابی اقتصادی اتلاف تکنولوژیهای خازنی موجود انجام دهند]2[.

خازنهای موازی

خازنهای موازی یعنی خازنهایی که به موازات خطها بسته می شوند ، فراوان در سیستم های توزیع به کار می روند . خازن های موازی ، توان یا جریان واکنشی را تامین می کنند تا مولفه ی ناهمفاز جریان مورد نیاز یک بار القایی را جبران کند از جهتی ، خازنهای موازی با کشیدن جریان پیش فازی که بخشی یا همه مولفه پس فازی جریان بار القایی را در نقطه نصب ، خنثی می کند مشخصه آن را اصلاح می کنند . بنابراین ، خازن موازی همان اثر خازن سنکرون یعنی ژنراتور یا موتور سنکرون (همزمان ) پر تحریک را دارد .با بکارگیری خازن موازی برای فیدر ، می توان جریان بار را کم کرد و ضریب توان مدار را بهبود بخشید . در نتیجه افت ولتاژ بین سرفیدر و بار کاهش می یابد ولی خازنهای موازی اثری برجریان یا ضریب توان مدار بعد از نقطه نصب خود ندارند .

 

افت ولتاژ را در فیدر، یا در خطهای انتقال کوتاهی که ضریب توان پس فاز دارند می توان چنین تقریب زد :

(2-1 )

matlab

R = کل مقاومت مدار فیدر ،

matlab= کل رئکتانس القایی مدار فیدر ،

matlab= مولفه اکتیو جریان ، A

matlab= مولفه راکتیو جریان که 90 درجه نسبت به ولتاژ عقبتر است ، A

اگر مانند شکل 2-1 ب خازن در محل مصرف (بار ) نصب شود ، افت ولتاژ حاصل را می توان تقریباً چنین حساب کرد :

(2-2)matlab

که در آن ،

matlabمولفه راکتیو جریان که 90 درجه نسبت به ولتاژ جلوتر است ، A

تفاوت بین افت ولتاژهای حاصل از معادله های (2-1) و (2-2) برابر افزایش ولتاژ ناشی از نصب خازن است که می تواند چنین بیان شود :

(2-3 )matlab

توجیه اقتصادی تنظیم ولتاژ و خازنگذاری در شبکه توزیع

جبران توان راکتیو در سیستم توزیع باعث کاهش انتقال جریان راکتیو از نیروگاهها به سیستم توزیع می گردد که در پی آن تلفات سیستم قدرت کاهش می یابد . هنگامی که توان راکتیو را فقط در نیروگاهها تامین کنیم ، اندازه همه اجزای سیتم ایمنی ژنراتور ، ترانسفورماتور ، خط انتقال و توزیع ، تجهیزات کلید خانه و حفاظت باید متناسبا افزایش یابد . خازنها می تواند با کاهش تقاضای توان راکتیو در پشت خود تا ژنراتور ، این شرایط را تعدیل کنند . جریان خط از پشت سر خازن تا تجهیزات تولید کاهش می یابد . در نتیجه اتلافها و بار راکتیو خطهای توزیع ، ترانسفورماتورهای پست ها و خطهای انتقال کاهش می یابد . نصب خازنها می تواند قابلیت ژنراتور و پست را برای بار اضافی ، بسته به میزان عدم تصحیح ضریب توان سیستم ، تا حداقل 30 درصد ، افزایش دهد و می تواند قابلیت تک تک مدارها را از دیدگاه افت ولتاژ ، تقریبا 30 تا 100 درصد افزایش دهد ]1[. از طرفی ، کاهش جریان ترانسفرماتور ، تجهیزات توزیع و خطها ، بار این دستگاههای با کیلو ولت آمپر محدود را کم می کند و متعاقباً نصب وسایل جدید را به تأخیر می اندازد .لذا ، منافع اقتصادی ایجاب می کند که خازنها در سیستم توزیع نصب شوند جهت بررسی توجیه اقتصادی خازنگذاری مسائلی همچون کاهش تلفات انرژی ، آزادسازی ظرفیت ، کاهش تلفات پیک و سود حاصل از خازنگذاری را بیان می کنند . در مقابل هزینه خرید ، نصب و نگهداری تجهیزات کنترل خازنها به عنوان هزینه های سرمایه گذاری مطرح می شوند .

آزاد سازی ظرفیت و تصحیح ضریب توان پست های توزیع

سیستم برق رسانی نوعی از ماههای تابستان ، بارراکتیو با ضریب توان 80 درصد دارد . بنابراین ،دربارهای توزیع نوعی ، جریان ،مطابق شکل 2-2 نسبت به ولتاژ پس فاز دارد . کسینوس زاویه بین جریان و ولتاژ تغذیه را ضریب توان مدار می گویند . اگر مولفه های اکتیو راکتیو جریان را در ولتاژ سربار ضرب کنیم . رابطه حاصل را می توان روی مثلثی به نام مثلث توانها مطابق شکل 2-2 ب نشان داد . شکل 2-2 ب رابطه موجود بین کیلو وات ، کیلو ولت آمپر و کیلو وار را نشان می دهد . توجه کنید که با افزودن خازن می توان مولفه توان راکتیو توان ظاهری بار را کم یا کلاً حذف کرد .

 

شکل 2-2 ( الف ) نمودار فاز برداری (ب) مثلث توانهای یک بار توزیع نوعی

شکل های 2-3 و 2-4 ، افزایش مولفه توان راکتیو را به ازای هر 10 درصد تغییر ضریب توان نشان می دهد . بنابراین شکل 3-2 ، حتی ضریب توان 80 درصد ، آنقدر بزرگ است که باعث افزایش 25 درصد توان ظاهری ( کیلو ولت آمپر) خط می شود . در این ضریب توان kVar 75 خازن ، برای حذف 75 کیلو وار مؤلفه راکتیو لازم است .

شکل 2-3 نمایش چگونگی افزایش توانهای ظاهری و راکتیو بر حسب ضریب توان بار ، ضمن ثابت نگه داشتن توان اکتیو .

شکل 2-4 نمایش تغییر توانهای اکتیو و راکتیو بر حسب ضریب توان یا بار ، ضمن ثابت نگه داشتن توان ظاهری

چنانکه پیشتر گفتیم ، تولید توان راکتیو در یک نیروگاه و رساندن آن به بارهایی که در فاصله دوری از آن قرار دارند، از نظر اقتصادی عملی نیست، اما می تواند به آسانی با نصب خازن در مراکز بار انجام شود.

شکل 2-5 ، تصحیح ضریب توان یک سیستم معین را نمایش می دهد . مطابق این شکل ، خازنها توان راکتیو پس فازی را منبع می کشند ، یعنی توان راکتیو پس فازی را برای بار فراهم می کنند . فرض می کنیم یک بار با توان اکتیو p ، توان راکتیو پس فاز Q و توان ظاهری S در ضریب توان پس فاز زیر تغذیه می شود .

شکل 2-5 نمایش تصحیح ضریب توان

هنگامی که خازن را به توزی مکان بار نصب کنیم ، ضریب توان از بهبود می یابد

بنابراین مطابق شکل 2-5 توان ظاهری و توان راکتیو (با تامین توان راکتیو، ) به ترتیب از به و از به کاهش یافته اند . بدیهی است که کاهش جریان واکنشی باعث کاهش کل جریان می شود ودر نتیجه اتلاف توان را پایین می آورد لذا تصحیح توان ، با پایین آوردن ظرفیت کیلو ولت آمپری وکاهش اتلافهای توان در تجهیزات بین نقطه ی نصب خازن ها و نیروگاه که شامل خطهای توزیع ، ترانسفورماتورهای پست و خطهای انتقال است ، باعث صرفه جویی در هزینه های سرمایه گذاری و سوخت می شود . ضریب توان اقتصادی ، ضریب توانی است که در آن ، منافع اقتصادی ناشی از افزودن خازنهای موازی ، درست با هزینه خازنها برابر شود . در گذشته ، ضریب توان اقتصادی ، حدود 95 درصد بود . امروزه هزینه های زیاد نیروگاه و سوخت ، ضریب توان اقتصادی را به سمت یک سوق داده است. ولی هر چه ضریب قدرت به یک نزدیکتر شود ، تاثیر خازنها در بهبود ضریب توان ، کاهش کیلو ولت آمپر انتقالی خطر ، افزایش ظرفیت بار ، یا کاهش اتلافهای مس خط با کاهش جریان خط ، به شدت کاهش می یابد . بنابراین هزینه نصب خازنهای لازم برای رساندن ضریب توان به یک ، هرچه به یک نزدیکتر شویم زیادتر است .

کاهش تلفات و تلفات پیک

با تأمین توان راکتیو در محل مصرف مشترکین ، جریان عبوری از خط کاهش یافته لذا تلفات خط کاهش می یابد . هم چنین با داشتن طول پریود مورد مطالعه میزان کاهش تلفات انرژی نیز محاسبه می گردد .حال با در نظر گرفتن هزینه هر کیلو وات ساعت تولید انرژی ، سود ناشی از کاهش تلفات انرژی در اثر خازنگذاری مشخص می شود . کاهش تلفات در زمان پیک شبکه منفعت خوبی به همراه دارد . با کاهش تلفات در پیک نیروگاهها از حدود نا می خود فاصله می گیرند در نتیجه نیاز به تولید کمتر می شود . ضمن اینکه با افزایش مشترکین جدید احداث نیروگاههای جدید به تعریق افتاده و در هزینه احداث نیروگاه جدید نیز صرفه جویی می شود .

بهبود پروفیل ولتاژ

درآمد شرکتهای برق رسانی به علت افزایش ولتاژ ناشی از خازنگذاری در سیستم که موجب افزایش مصرف انرژی می شود بالا می رود . این امر به ویژه برای مصرف کننده های خانگی درست است . افزایش مصرف انرژی به ماهیت وسایل بکار رفته بستگی دارد . مثلا مصرف انرژی لامپها با مربع ولتاژ افزایش می یابد . به عنوان مثال جدول2-1 درصد افزایش انرژی کیلو وات ساعتی اضافی را بر حسب نسبت میانگین ولتاژ پس از افزودن خازنها به میانگین ولتاژ پیش از افزودن خازنها نشان داده است .

میانگین ، پس از خازنگذاری V

میانگین پیش از خازنگذاری V

افزایش kWh

%

00/1 0
05/1 8
10/1 16
15/1 25
20/1 34
25/1 43
30/1 52

جدول 2-1

بنابراین منافع در آمد ناشی از کیلو وات ساعت افزوده مصرف انرژی را می توان چنین محاسبه کرد :

(2-8)

= درآمد سالانه افزوده ناشی از افزایش kWh مصرف انرژی ، سال / واحد پول

= kWh افزایش مصرف انرژی، %

BEC= مصرف انرژی ابتدایی kWh ( یامبنا ) ، سال / kWh

= هزنیه انرژی ، kWh / واحد پول

از جمله مزایای مهم دیگر اتوبوستر و خازنگذاری درشبکه توزیع و فوق توزیع می توان به آزاد سازی ظرفیت فیدرها و تجهیزات وابسته به آن ، تعویق یا حذف هزینه های سرمایه گذاری ناشی از بهبود ویا توسعه سیستم و آزاد سازی ظرفیت پست توزیع نام برد. علاوه بر این خازنگذاری سبب آزاد سازی ظرفیت تولید و انتقال در شبکه قدرت نیز می گردد . به طور خلاصه ، رگولاتور ولتاژ و خازنها وسیله بسیار موثری برای کاهش هزینه های صنعت برق رسانی باتوجه به افزایش پیوسته هزینه های سوخت و نیروگاه است. هرگاه شرکتهای برق رسانی بتوانند سرمایه گذاری جدید نیروگاهی را به تعویق اندازند یا حذف کنند و نیازمندیهای انرژی را کاهش دهند سود می برند . بنابراین خازنها به کمینه کردن هزینه های بهره برداری کمک می کنند و برق رسانی و مصرف کنندگان جدید را با کمترین سرمایه گذاری در سیستم ممکن می سازند . امروزه شرکت های برق رسانی آمریکا تقریباً به ازای هرkW2 ظرفیت تولید نصب شده kVar 1 خازنهای قدرت نصب کرده اند تا از منافع اقتصادی آن بهره مند شوند.

تعاریف و تقسیم بندی‌های مختلفی ازناپایداری ولتاژ ارائه شده است. در تقسیم‌بندی اول دقیقاًّ مثل ناپایداری زاویه بار این ناپایداری به دو دسته اغتشاش کوچک و بزرگ تقسیم می‌شود. در تحلیل اغتشاش کوچک از مدل خطی و در بزرگ از مدل غیر خطی استفاده می‌کنند.

https://upload.wikimedia.org/wikipedia/fa/thumb/b/bc/Un12.png/220px-Un12.png

انواع ناپایداری

یک سیستم قدرت در یک نقطه‌کار مشخص اگر پس از یک اغتشاش کوچک ولتاژ به همان مقدار قبل از اغتشاش باز گردد و یا در همسایگی آن آرام گیرد پایدار ولتاژ اغتشاش کوچک نامیده می‌شود. با توجه به تئوری پایداری سیستم‌های خطی این در صورتی امکانپذیر است که مدل خطی شده سیستم حول نقطه‌کار مورد نظر مقادیر ویژه‌ای با قسمت منفی داشته باشد. یک سیستم قدرت در یکنقطه‌کار مشخص چنانچه ولتاژ سیستم پس از اغتشاش بزرگ در نقطه تعادل بعد از خطا قرار گیرد پایدار اغتشاش بزرگ نامیده می‌شود با توجه به تئوری پایداری سیستم‌های خطی این در صورتی امکانپذیر است که مقدار خطای ولتاژ در ناحیه همگرایی نقطه تعادل باقی بماند. یک سیستم قدرت در یک نقطه‌کار مشخص و تحت یک اغتشاش معین چنانچه نقطه تعادل بعد از خطای آن به زیر حد قابل قبول برسد به فروپاشی ولتاژ می‌انجامد و این زمانی است که ولتاژ به مرز 0.7 پریونیت کاهش یابد.

توضیحات برنامه main1

clc;clear ;close all

اطلاعات باس و خطوط شبکه 33 باسه ieee

Image result for ieee 33 bus system

% basemva = 1; accuracy = 0.001; accel = 1.8; maxiter = 100;

% IEEE 30-BUS TEST SYSTEM (American Electric Power)

% Bus Bus Voltage Angle —Load—- ——-Generator—– Static Mvar

% No code Mag. Degree MW Mvar MW Mvar Qmin Qmax +Qc/-Ql

busdata=[

1 1 1.0 0.0 0.000 0.000 0.0 0.0 0 0 0

2 0 1.0 0.0 0.100 0.060 0.0 0.0 0 0 0

3 0 1.0 0.0 0.090 0.040 0.0 0.0 0 0 0

4 0 1.0 0.0 1.120 0.080 0.0 0.0 0 0 0

5 0 1.0 0.0 0.060 0.030 0.0 0.0 0 0 0

6 0 1.0 0.0 1.060 0.020 0.0 0.0 0 0 0

7 0 1.0 0.0 0.200 0.100 0.0 0.0 0 0 0

8 0 1.0 0.0 0.200 0.100 0.0 0.0 0 0 0

9 0 1.0 0.0 0.060 0.020 0.0 0.0 0 0 0

10 0 1.0 0.0 0.060 0.020 0.0 0.0 0 0 0

11 0 1.0 0.0 0.045 0.030 0.0 0.0 0 0 0

12 0 1.0 0.0 0.060 0.035 0.0 0.0 0 0 0

13 0 1.0 0.0 0.060 0.035 0.0 0.0 0 0 0

14 0 1.0 0.0 0.120 0.080 0.0 0.0 0 0 0

15 0 1.0 0.0 0.060 0.010 0.0 0.0 0 0 0

16 0 1.0 0.0 0.060 0.020 0.0 0.0 0 0 0

17 0 1.0 0.0 0.060 0.020 0.0 0.0 0 0 0

18 0 1.0 0.0 0.090 0.040 0.0 0.0 0 0 0

19 0 1.0 0.0 0.090 0.040 0.0 0.0 0 0 0

20 0 1.0 0.0 0.090 0.040 0.0 0.0 0 0 0

21 0 1.0 0.0 0.090 0.040 0.0 0.0 0 0 0

22 0 1.0 0.0 0.090 0.040 0.0 0.0 0 0 0

23 0 1.0 0.0 0.090 0.050 0.0 0.0 0 0 0

24 0 1.0 0.0 0.420 0.200 0.0 0.0 0 0 0

25 0 1.0 0.0 0.420 0.200 0.0 0.0 0 0 0

26 0 1.0 0.0 0.060 0.025 0.0 0.0 0 0 0

27 0 1.0 0.0 0.060 0.025 0.0 0.0 0 0 0

28 0 1.0 0.0 0.060 0.020 0.0 0.0 0 0 0

29 0 1.0 0.0 0.120 0.070 0.0 0.0 0 0 0

30 0 1.0 0.0 0.200 0.100 0.0 0.0 0 0 0

31 0 1.0 0.0 0.150 0.070 0.0 0.0 0 0 0

32 0 1.0 0.0 0.210 0.100 0.0 0.0 0 0 0

33 0 1.0 0.0 0.060 0.040 0.0 0.0 0 0 0];

% Line code

% Bus bus R X 1/2 B = 1 for lines

% nl nr p.u. p.u. p.u. > 1 or < 1 tr. tap at bus nl

linedata=[01 2 0.0922 0.0470 0 1

02 03 0.4930 0.2512 0 1

03 04 0.3661 0.1864 0 1

04 05 0.3811 0.1941 0 1

05 06 0.8190 0.7070 0 1

06 07 0.1872 0.6188 0 1

07 08 0.7115 0.2351 0 1

08 09 1.0299 0.7400 0 1

09 10 1.0440 0.7400 0 1

10 11 0.1967 0.0651 0 1

11 12 0.3744 0.1298 0 1

12 13 1.4680 1.1549 0 1

13 14 0.5416 0.7129 0 1

14 15 0.5909 0.5260 0 1

15 16 0.7462 0.5449 0 1

16 17 1.2889 1.7210 0 1

17 18 0.7320 0.5739 0 1

02 19 0.1640 0.1565 0 1

19 20 1.5042 1.3555 0 1

20 21 0.4095 0.4784 0 1

21 22 0.7089 0.9373 0 1

03 23 0.4512 0.3084 0 1

23 24 0.8980 0.7091 0 1

24 25 0.8959 0.7071 0 1

06 26 0.2031 0.1034 0 1

26 27 0.2842 0.1447 0 1

27 28 1.0589 0.9338 0 1

28 29 0.8043 0.7006 0 1

29 30 0.5074 0.2585 0 1

30 31 0.9745 0.9629 0 1

31 32 0.3105 0.3619 0 1

32 33 0.3411 0.5302 0 1];

پخش بار شبکه فوق بدون تاثیر خازن و تپگزاری

[Vm1,Loss1]=runpf(busdata,linedata);

تعیین مکان باس خازن و ظرفیت خازن

capaBus=[4 7 13];

capaVar=[0.8 0.4 0.2];

و پخش بار مجدد شبکه تغییریافته اعمال خازن فوق به شبکه قدرت اصلی

busdata(capaBus,end)=capaVar;[Vm2,Loss2]=runpf(busdata,linedata);

تعیین شماره خط و درصد تپ ترانس در ورودی خط انتقال

TapLine=[10 26];

TapSet=[ 0.98 0.98];

و انجام پخش بار اعمال تپ فوق الذکر برشبکه تغییریافته

linedata(TapLine,end)=TapSet;[Vm3,Loss3]=runpf(busdata,linedata);

رسم نمودار های ولتاژ برای سه حالت فوق

subplot(8,1,1:5)

plot(Vm1,’-o’,’linewid’,2)

hold on

plot(Vm2,’-o’,’linewid’,2)

plot(Vm3,’-o’,’linewid’,2)

% set(gca,’ylim’,[0.8 1.2])

xlabel(‘Bus Index’)

ylabel(‘Voltage (PU)’)

hold off

legend(‘Normal’,’With Capa’,’With Capa+Tap’)

grid on

رسم نمودار های تلفات برای سه حالت فوق

subplot(8,1,7:8)

bar([Loss1 Loss2 Loss3])

set(gca,’xticklabel’,{‘Normal’,’With Capa’,’With Capa+Tap’})

set(gca,’ylim’,[0.4 0.7])

ylabel(‘Losses (PU)’)

نتایج برنامه

در حالت عادی ولتاژ تا 0.91 پریونیت کاهش یافته و با افزودن خازن در باس 4و 7و 13 پروفیل ولتاژ بهبود یافته و با تنظیم تپ ترانس در خطوط 10 و 26 پروفیل ولتاژ در باسهای انتهایی شبکه بهبود یافته است و تلفات هم به نسبت کاهش یافته است.

البته میتوان بسهولت در برنامه مکان و ظرفیت خازن و تپ ترانس را تغییر داد و نتایج را با اجرای برنامه مشاهده کرد

این پروژه یکسری فانکشن های کمکی دارد که توسط برنامه mains1 فراخوانی میشود و بخودی خود قابلیت اجرا ندارند

 

 

 

 

 

 

 

 

 

شبیه سازی با متلب

ماشین های القایی متقارن در متلب

نظریه ماشین های القایی متقارن در متلب

  analysis of electric machinery exercises in Matlab

برای شبیه سازی یک موتور القایی در متلب روشهای گوناگونی می تواند مطرح باشد, از آنجایی که معادلات حاکم بر این موتورها در اختیار است, می توانیم با انتگرال گیری عددی به جوابهای قابل قبولی برسیم.

در ابتدا با استفاده از الگوریتم انتگرال گیری رانگ کوتاه معادلات موتور القایی دلخواهی را در فضای مرجع دلخواه با متلب شبیه سازی کرده و نتایج را مشاهده می کنیم.

clear all
clc
J=.089;
rr=.816;
t=0;
i=0;
dt=.0001;
P=4;
Tl=11.9/2;
Te=0;
tet0=0;tetr0=0;tet=0;tetr=0;
rs=.435;
Wr0=0;
Xlr=.754;
Xls=.754;
Wb=120*pi;
Xm=26.13;
Xss=Xls+Xm;
Xrr=Xlr+Xm;
D=(Xss*Xrr)-(Xm^2);
vqr=0;vdr=0;vor=0;
Q0=[0;0;0;0;0;0];
Qqs=0;Qds=0;Qos=0;Qqr=0;Qdr=0;Qor=0;
while t<=3
Vas=220*(.8165)*cos(Wb*t);
Vbs=220*(.8165)*cos((Wb*t)-(2*pi/3));
Vcs=220*(.8165)*cos((Wb*t)+(2*pi/3));
Ks=(2/3)*[cos(tet0) cos((tet0)-(2*pi/3)) cos((tet0)+(2*pi/3));sin(tet0) sin((tet0)-(2*pi/3)) sin((tet0)+(2*pi/3));.5 .5 .5];
V1=Ks*[Vas;Vbs;Vcs];
vqs=V1(1,1);vds=V1(2,1);vos=V1(3,1);
Q=[Qqs;Qds;Qos;Qqr;Qdr;Qor];
V=[vqs;vds;vos;vqr;vdr;vor];
Wr=Wr0;
W=Wr;
A=[rs*Xrr/D (W/Wb) 0 (-rs*Xm/D) 0 0;(-W/Wb) rs*Xrr/D 0 0 -rs*Xm/D 0;0 0 rs/Xls 0 0 0;-rr*Xm/D 0 0 rr*Xss/D (W-Wr)/Wb 0;0 (-rr*Xm/D) 0 (-(W-Wr)/Wb) rr*Xss/D 0;0 0 0 0 0 rr/Xlr];
B=[1/Wb 0 0 0 0 0;0 1/Wb 0 0 0 0;0 0 1/Wb 0 0 0;0 0 0 1/Wb 0 0;0 0 0 0 1/Wb 0;0 0 0 0 0 1/Wb];
Brev=inv(B);
Arev=-inv(B)*A;
Q01=Arev*Q+Brev*V;
Te=(P/2)*(3/2)*(Xm/(D*Wb))*((Q(1,1)*Q(5,1))-(Q(2,1)*Q(4,1)));
Wr01=(P/2)*((Te-Tl)/J);
tet01=W;
tetr01=Wr;
Wr=Wr0+(Wr01*dt/2);
tet=tet0+(tet01*dt/2);
tetr=tetr0+(tetr01*dt/2);
Q=Q0+(Q01*dt/2);

Q02=Arev*Q+Brev*V;
Te=(P/2)*(3/2)*(Xm/(D*Wb))*((Q(1,1)*Q(5,1))-(Q(2,1)*Q(4,1)));
Wr02=(P/2)*((Te-Tl)/J);
Wr=Wr0+(Wr02*dt/2);
W=Wr;
tet02=W;
tetr02=Wr;
tet=tet0+(tet02*dt/2);
tetr=tetr0+(tetr02*dt/2);
Q=Q0+(Q02*dt/2);

Q03=Arev*Q+Brev*V;
Te=(P/2)*(3/2)*(Xm/(D*Wb))*((Q(1,1)*Q(5,1))-(Q(2,1)*Q(4,1)));
Wr03=(P/2)*((Te-Tl)/J);
Wr=Wr0+(Wr03*dt);
W=Wr;
tet03=W;
tetr03=Wr;
tet=tet0+(tet03*dt);
tetr=tetr0+(tetr03*dt);
Q=Q0+(Q03*dt);

Q04=Arev*Q+Brev*V;
Te=(P/2)*(3/2)*(Xm/(D*Wb))*((Q(1,1)*Q(5,1))-(Q(2,1)*Q(4,1)));
Wr04=(P/2)*((Te-Tl)/J);
Wr0=Wr0+(Wr01+2*Wr02+2*Wr03+Wr04)*(dt/6);
W=Wr0;
tet04=W;
tetr04=Wr;
tet0=tet0+(tet01+2*tet02+2*tet03+tet04)*(dt/6);
tetr0=tetr0+(tetr01+2*tetr02+2*tetr03+tetr04)*(dt/6);
Q0=Q0+(Q01+Q02*2+2*Q03+Q04)*(dt/6);
Qqs=Q0(1,1);Qds=Q0(2,1);Q0s=Q0(3,1);Qqr=Q0(4,1);Qdr=Q0(5,1);Q0r=Q0(6,1);
Te=(P/2)*(3/2)*(Xm/(D*Wb))*((Q(1,1)*Q(5,1))-(Q(2,1)*Q(4,1)));
I=(1/D)*[Xrr 0 0 -Xm 0 0;0 Xrr 0 0 -Xm 0;0 0 D/Xls 0 0 0;-Xm 0 0 Xss 0 0;0 -Xm 0 0 Xss 0;0 0 0 0 0 D/Xlr]*Q;
iqs=I(1,1);ids=I(2,1);ios=I(3,1);iqr=I(4,1);idr=I(5,1);ior=I(6,1);
Kr=(2/3)*[cos((tet0-tetr0)) cos(((tet0-tetr0))-(2*pi/3)) cos(((tet0-tetr0))+(2*pi/3));sin((tet0-tetr0)) sin(((tet0-tetr0))-(2*pi/3)) sin(((tet0-tetr0))+(2*pi/3));.5 .5 .5];
Irotor=inv(Kr)*[iqr;idr;ior];
iar=Irotor(1,1);ibr=Irotor(2,1);icr=Irotor(3,1);
Ks=(2/3)*[cos(tet0) cos((tet0)-(2*pi/3)) cos((tet0)+(2*pi/3));sin(tet0) sin((tet0)-(2*pi/3)) sin((tet0)+(2*pi/3));.5 .5 .5];
Istator=inv(Ks)*[iqs;ids;ios];
ias=Istator(1,1);ibs=Istator(2,1);ics=Istator(3,1);
i=i+1;
time(i)=t;
Iar(i)=iar;
Tee(i)=Te;
Ias(i)=ias;
WW(i)=(30*Wr0)/(2*pi);
t=t+.0001;
if t>=1.5
Tl=11.9;
end
end
plot(time,WW);xlabel(‘t’) ;ylabel(‘Wr’)
grid on
figure
plot(time,Ias);xlabel(‘t’) ;ylabel(‘ias’)
grid on
figure
plot(time,Iar);xlabel(‘t’) ;ylabel(‘iar’)
grid on
figure
plot(time,Tee);xlabel(‘t’) ;ylabel(‘Te’)
grid on
figure
plot(WW,Tee);xlabel(‘wr’) ;ylabel(‘Te’)
grid on

با توجه به متن برنامه متلب در ابتدا موتور را بی بار راه اندازی می کنیم و نتیجه ای که از خروجی متلب مشاهده می کنیم:

در این شکل می بینیم که سرعت گردش روتور از صفر تا 1800rpm افزایش می یابد و بعد ثابت می ماند, چون به سرعت نامی خود رسیده است. Wb

جریان استاتور با متلب

در شکل فوق جریان استاتور را در طول زمان اجرای برنامه متلب می بینیم.

جریان روتور با متلب

شکل بالا تغییرات جریان روتور را به نمایش گذاشته است

گشتاور موتور القایی با متلب

گشتاور موتور القایی با متلب

در شکل بالا گشتاور الکترومغناطیسی بعد از نوسانات ابتدایی به صفر می رسد, حالا اگر بخواهیم گشتاور را بر حسب سرعت در متلب داشته باشیم به صورت زیر به دست می آید:

matlabi_elghayi55

بعد از بررسی ویژگی ماشین القایی مادامی که بی بار کار می کند میتواند بار نامی مکانیکی را روی محور ماشین القایی قرار داد. برای اینکار در برنامه متلب چند خط زیر را اضافه می کنیم:

if t>=1.5
Tl=11.9;
end

با اضافه کردن این قسمت از برنامه که در بالا با رنگ سبز نیز مشخص شده, این اتفاق در متلب می افتد و نتایج به صورت زیر است:

راه اندازی موتور القایی با متلب

راه اندازی موتور القایی با متلب

همانطور که از شکل فوق مشخص هست در حالتی که بار روی محور ماشین القایی قرار می گیرد سرعت 1800rpm نمی شود و کمی افت دارد.

جریان استاتور با متلب

جریان استاتور با متلب

جریان روتور با متلب

جریان روتور با متلب

دلیل نوسانات در جریان روتور و استاتور قرار گرفتن بار نامی روی  محور ماشین است

matlabi_elghayi4

همانطور که مشاهده می شود گشتاور مغناطیسی در یک مقدار غیر از صفر ثابت می ماند.

matlabi_elghayi5

 

بزودی بخش دیگری از تحلیل رفتار موتور القایی را در متلب در سایت متلبی خواهید دید.