Feature Extraction
Feature Extraction
ﺑﺮاي ﻫﺮ ﻓﺮاﯾﻨﺪ ﺷﺎﻣﻞ ﭘﯿﺶ ﺑﯿﻨﯽ؛ ﺗﺨﻤﯿﻦ؛ ﻃﺒﻘﻪ ﺑﻨﺪي و ...ﻧﯿﺎز ﺑﻪ ﺗﻌﺪادي اﻟﮕﻮ ﯾﺎ ورودي ﺧﺮوﺟﯽ ﻫﺎي ﻣﺸﺨﺺ و در ﮐﻞ اﻃﻼﻋﺎﺗﯽ
ﻣﺒﺘﻨﯽ ﺑﺮ ﮔﺬﺷﺘﻪ ﺳﯿﺴﺘﻢ دارﯾﻢ ﮐﻪ ﺑﻪ اﯾﻦ ﺑﺴﺘﻪ اﻃﻼﻋﺎﺗﯽ دﯾﺘﺎ ﺳﺖ ﮔﻔﺘﻪ ﻣﯿﺸﻮد.
دﯾﺘﺎ ﺳﺖ ﻣﺮﺑﻮط ﺑﻪ ﺗﮑﺎﻟﯿﻒ اﯾﻦ دوره ﺷﺎﻣﻞ 11200ﺣﺮوف ﮔﺴﺴﺘﻪ ﻓﺎرﺳﯽ "ب" "پ" "ت" "ث" "ج" "چ" "ح" "خ" ﻣﯽ-
ﺑﺎﺷﺪ.
اﯾﻦ دﯾﺘﺎ ﺳﺖ داراي ﺗﻮزﯾﻊ ﯾﮑﻨﻮاﺧﺖ ﺑﻮده ﯾﻌﻨﯽ در واﻗﻊ 1400ﻧﻤﻮﻧﻪ ﺑﺮاي ﻫﺮ ﺣﺮف ﺑﺮاي ﺑﺨﺶ آﻣﻮزش و 400ﻧﻤﻮﻧﻪ ﺑﺮاي ﺑﺨﺶ
آزﻣﺎﯾﺶ.
ﺑﺮاي ﻧﻤﻮﻧﻪ؛ ﺗﺼﻮﯾﺮ ﭼﻨﺪ ﺣﺮف در ﺷﮑﻞ 1ﻧﻤﺎﯾﺶ داده ﺷﺪه اﺳﺖ.
ﺷﮑﻞ 1
-2اﺳﺘﺨﺮاج وﯾﮋﮔﯽ:
اﻏﻠﺒﺎ ﻧﯿﺎز اﺳﺖ ﮐﻪ ﺑﺮاي ﺗﺤﻠﯿﻞ و اﻧﺎﻟﯿﺰ ﯾﮏ ﭘﺪﯾﺪه ﻏﯿﺮ ﻋﺪدي ان را ﺑﺮ روي ﻓﻀﺎي ﺑﺮداري ﻧﮕﺎﺷﺖ دﻫﯿﻢ .ﻧﮕﺎﺷﺖ ﯾﮏ ﺗﺼﻮﯾﺮ ﺑﺮ روي
ﻓﻀﺎي ﺑﺮداري ﮐﻪ از آن ﺑﻪ اﺳﺘﺨﺮاج وﯾﮋﮔﯽ از ﺗﺼﻮﯾﺮ ﯾﺎد ﻣﯽ ﺷﻮد را ﻣﯽﺗﻮان ﺑﻪ ﻃﺮق ﻣﺨﺘﻠﻒ اﻧﺠﺎم داد.ﺗﻌﺪادي از اﯾﻦ روﺷﻬﺎ ﻋﺒﺎرﺗﻨﺪ
از:
-1ﮔﺮادﯾﺎن
-2ﮔﺸﺘﺎور
-3ﺗﺒﺪﯾﻞ ﻓﻮرﯾﻪ
روﺷﯽ ﮐﻪ در اﯾﻦ دﺳﺖ ﭘﺮوژﻫﺎ ﺑﮑﺎر ﺑﺴﺘﻪ ﻣﯽ ﺷﻮد ﺑﺮ ﻣﺒﻨﺎي ﺗﻮازﻧﯽ اﺳﺖ ﮐﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺲ ﻣﯿﺎن دﻗﺖ ﺷﻨﺎﺳﺎﯾﯽ ﺣﺮوف و ﭘﯿﭽﯿﺪﮔﯽ
ﺑﺮﻧﺎﻣﻪ ﺑﺮﻗﺮار ﻣﯽﮐﻨﺪ ﮐﻪ اﻟﺒﺘﻪ ﺳﻠﯿﻘﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺲ در اﯾﻦ ﻣﯿﺎن ﺑﯽ ﺗﺎﺛﯿﺮ ﻧﯿﺴﺖ.
در اﯾﻦ ﻗﺴﻤﺖ ﻣﺎ از روش ﻣﯿﺎﻧﮕﯿﻦ ﮔﯿﺮي و اﻧﺤﺮاف ﻣﻌﯿﺎر ﺟﻬﺖ اﺳﺘﺨﺮاج وﯾﮋﮔﯽ اﺳﺘﻔﺎده ﮐﺮده اﯾﻢ .ﺑﺮاي درك ﺑﻬﺘﺮ؛ در اداﻣﻪ؛
ﺑﺮﻧﺎﻣﻪي اﺳﺘﺨﺮاج وﯾﮋﮔﯽ از ﺗﺼﻮﯾﺮ آورده ﺷﺪه و ﺗﻮﺿﯿﺤﺎت ﻻزم داده ﺷﺪه.
1- A=importdata(q);
2- [bm]=A.cdata;
3- k=0;s=0;a=0;b=0;
4- [a,b]=size(bm);
5- l=floor(a/5); %L=linspace(0,a); floor(L(1'4));
6- w=floor(b/5); %L=linspace(0,b);
7- for r=0:3
8- for z=0:3
a. s=0;
b. for m=(r*l+1):(r+1)*l
i. for n=(z*w+1):(z+1)*w
1. k=bm(m,n);
2. s=s+k;
ii. end
c. end
d. d=l*w;
e. av=s/d;
f. var=(s*(1-av)^2+(d-s)*av^2)/d;
g. fprintf('%f,%f,',av,var)
9- end
10- end
11- r=0;m=0;z=0;s=0;n=0;k=0;s=0;av=0;d=0;
12- for z=0:3
13- s=0;d=0;
a. for n=(z*w+1):(z+1)*w
i. for m=(4*l+1):a
1. k=bm(m,n);
2. s=s+k;
ii. end
b. end
c. d=(a-4*l)*w;
d. av=s/d;
e. var=(s*(1-av)^2+(d-s)*av^2)/d;
f. fprintf('%f,%f,',av,var)
14- end
15- r=0;m=0;z=0;s=0;n=0;k=0;s=0;av=0;d=0;
16- for r=0:3
17- s=0;
a. for m=(r*l+1):(r+1)*l
i. for n=(4*w+1):b
1. k=bm(m,n);
2. s=s+k;
ii. end
b. end
c. d=(b-4*w)*l;
d. av=s/d;
e. var=(s*(1-av)^2+(d-s)*av^2)/d;
)f. fprintf('%f,%f,',av,var
18- end
19- ;r=0;m=0;z=0;s=0;n=0;k=0;s=0;av=0;d=0
20- for m=(4*l+1):a
21- for n=(4*w+1):b
;)a. k=bm(m,n
;b. s=s+k
22- end
23- end
24- ;)d=(b-4*w)*(a-4*l
25- ;av=s/d
26- ;var=(s*(1-av)^2+(d-s)*av^2)/d
27- )fprintf('%f,%f,',av,var
در ﺧﻂ اول ﺑﺎ دﺳﺘﻮر importdataاﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﻋﮑﺲ ﻣﻮرد ﻧﻈﺮ را ﻣﺸﺎﻫﺪه ﻣﯽﮐﻨﯿﻢ ﮐﻪ اﯾﻦ اﻃﻼﻋﺎت ﺷﺎﻣﻞ ﻣﺎﺗﺮﯾﺲ رﻧﮕﻬﺎ
و ﻣﺎﺗﺮﯾﺲ ﮐﺪﻫﺎ ﻣﯽﺑﺎﺷﺪ.ﻣﺎﺗﺮﯾﺲ ﻣﺮﺑﻮط ﺑﻪ ﮐﺪﻫﺎ را در ﻣﺘﻐﯿﺮدﯾﮕﺮي رﯾﺨﺘﻪ و ﺑﺎ دﺳﺘﻮر ،sizeاﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﺗﻌﺪاد ﺳﻄﺮﻫﺎ و
ﺳﺘﻮنﻫﺎ را ﻣﺸﺎﻫﺪه ﻣﯽﮐﻨﯿﻢ.
ﺑﺮاي ﻣﯿﺎﻧﮕﯿﻦ ﮔﯿﺮي و اﻧﺤﺮاف ﻣﻌﯿﺎر ﻣﺎ ﻋﮑﺲ را ﺑﻪ 25ﺧﺎﻧﻪ ﺗﻘﺴﯿﻢ ﻣﯽﮐﻨﯿﻢ درواﻗﻊ ﻃﻮل را ﺗﻘﺴﯿﻢ ﺑﺮ 5و ﻋﺮض را ﺗﻘﺴﯿﻢ ﺑﺮ 5
ﻣﯽﮐﻨﯿﻢ،ﻣﻨﺘﻬﯽ ﭼﻮن ﻣﻤﮑﻦ اﺳﺖ ﺗﻌﺪاد ﭘﯿﮑﺴﻞﻫﺎي ﻃﻮل و ﻋﺮض اﻟﺰاﻣﺎً ﺑﺮ 5ﺑﺨﺶ ﭘﺬﯾﺮ ﻧﺒﺎﺷﻨﺪ ﻣﺎ از دﺳﺘﻮر floorاﺳﺘﻔﺎده ﮐﺮدﯾﻢ
ﮐﻪ ﺟﺰ ﺻﺤﯿﺢ را ﺑﻪ ﻣﺎ ﻣﯿﺪﻫﺪ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل اﮔﺮ ﻋﮑﺲ ﻣﻮرد ﻧﻈﺮ ﻣﺎ 16*27ﺑﺎﺷﺪ 16ﺧﺎﻧﻪ 3،4*5ﺧﺎﻧﻪ 4،4*5ﺧﺎﻧﻪ 3*7و ﯾﮏ
ﺧﺎﻧﻪ 4*7ﺧﻮاﻫﯿﻢ داﺷﺖ.ﺑﺮاي درك ﺑﻬﺘﺮ ﯾﮏ ﻧﻤﻮﻧﻪ ﺗﺼﻮﯾﺮ ﺗﻘﺴﯿﻢ ﺑﻨﺪي ﺷﺪه در اداﻣﻪ آورده ﺷﺪه اﺳﺖ.
ﺑﺮاي ﺧﺎﻧﻪﻫﺎي 3*5ﻣﺠﻤﻮع درﯾﻬﯽ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 15و ﺟﺬر ﻣﺠﻤﻮع ﺗﻮان دوم ﺗﻔﺎﺿﻞ از ﻣﯿﺎﻧﮕﯿﻦ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 15ﻣﯽﮐﻨﯿﻢ.
ﺑﺮاي ﺧﺎﻧﻪﻫﺎي 4*5ﻣﺠﻤﻮع درﯾﻬﯽ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 20و ﺟﺬر ﻣﺠﻤﻮع ﺗﻮان دوم ﺗﻔﺎﺿﻞ از ﻣﯿﺎﻧﮕﯿﻦ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 20ﻣﯽﮐﻨﯿﻢ.
ﺑﺮاي ﺧﺎﻧﻪﻫﺎي 3*7ﻣﺠﻤﻮع درﯾﻬﯽ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 21و ﺟﺬر ﻣﺠﻤﻮع ﺗﻮان دوم ﺗﻔﺎﺿﻞ از ﻣﯿﺎﻧﮕﯿﻦ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 21ﻣﯽﮐﻨﯿﻢ.
ﺑﺮاي ﺧﺎﻧﻪﻫﺎي 4*7ﻣﺠﻤﻮع درﯾﻬﯽ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 28و ﺟﺬر ﻣﺠﻤﻮع ﺗﻮان دوم ﺗﻔﺎﺿﻞ از ﻣﯿﺎﻧﮕﯿﻦ آﻧﻬﺎرا ﺗﻘﺴﯿﻢ ﺑﺮ 28ﻣﯽﮐﻨﯿﻢ.
در ﺻﻔﺤﻪ ﺑﻌﺪ ﺣﺮف "ب" ﺑﻌﻨﻮان ﻧﻤﻮﻧﻪ ﺑﻪ ﻫﻤﺮاه ﻣﺎﺗﺮﯾﺲ وﯾﮋﮔﯽ اﻧﻬﺎ اورده ﺷﺪه اﺳﺖ.
ﺷﮑﻞ 2
0.500000,0.250000,1.000000,0.000000,1.000000,0.000000,1.000000,0.000000,0.375000,0.2343
75,1.000000,0.000000,1.000000,0.000000,0.975000,0.024375,0.800000,0.160000,0.475000,0.24
9375,0.400000,0.240000,0.450000,0.247500,1.000000,0.000000,1.000000,0.000000,1.000000,0.
000000,1.000000,0.000000,1.000000,0.000000,1.000000,0.000000,1.000000,0.000000,0.700000
,0.210000,0.725000,0.199375,0.400000,0.240000,0.875000,0.109375,1.000000,0.000000,1.0000
00,0.000000,