You are on page 1of 80

Trang 1

Đại Học Quốc Gia Tp. Hồ Chí Minh


TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

NGUYỄN HOÀNG HUY

NHẬN DẠNG VÂN TAY

Chuyên ngành : Kỹ thuật Điện tử

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 07 năm 2007

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 2

GIÔÙI THIEÄU

1. Giôùi thieäu
2. Toång quan tình hình nghieân cöùu
3. YÙ nghóa ñeà taøi

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 3

CHÖÔNG 1:

GIÔÙI THIEÄU
1.1 GIÔÙI THIEÄU
Ngaøy nay, caùc kyõ thuaät sinh traéc hoïc ngaøy caøng ñöôïc öùng duïng roäng raõi. Trong
ñoù, nhaän daïng vaân tay ñöôïc xem laø moät trong nhöõng kyõ thuaät hoaøn thieän vaø ñaùng
tin caäy nhaát ñeå xaùc nhaän moät ngöôøi. Gaàn ñaây, kyõ thuaät naøy ñöôïc chuù yù nhieàu vaø
ngöôøi ta thaáy raèng noù thích hôïp vôùi nhöõng öùng duïng coù cô sôû döõ lieäu nhoû, nhöng
khoâng thuaän tieän cho nhöõng öùng duïng coù phaïm vi lôùn.
Ña soá caùc heä thoáng baûo maät hieän nay ñöôïc baûo veä baèng password vaø PIN
(Personal Identification Number), nhöng caùc phöông phaùp naøy ñaõ ñöôïc chöùng
minh laø khoâng hieäu quaû. Bôûi vì, password laø nhöõng con soá khoù nhôù, deã queân vaø
deã bò ñaùnh caép. Baèng caùch söû duïng vaân tay vaø maät maõ, vieäc xaùc nhaän moät ngöôøi
coù theå ñöôïc thöïc hieän baèng moät heä thoáng nhaän daïng vaân tay an toaøn vaø thuaän
tieân.
Hình 1.1 laø caáu truùc cô baûn cuûa heä thoáng nhaän daïng daáu vaân tay. Ñaàu tieân, daáu
vaân tay cuûa moät ngöôøi caàn ñöôïc laáy maãu (baèng moät thieát bò coù theå chuïp ñöôïc
vaân tay – Biometric sensor) vaø löu vaøo cô sôû döõ lieäu (Registration module). Sau
ñoù, khi caàn xaùc nhaän ngöôøi ñoù cung caáp laïi moät daáu vaân tay khaùc, daáu vaân tay
naøy seõ ñöôïc so saùnh vôùi daáu vaân tay trong cô sôû döõ lieäu ñeå quyeát ñònh chaáp nhaän
hay töø choái döïa treân moät giaù trò ngöôõng ñoái saùnh.

Hình 1.1: Caáu truùc cô baûn cuûa heä thoáng nhaän daïng daáu vaân tay

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 4

Hieän nay, treân thò tröôøng theá giôùi ñaõ coù baùn nhieàu loaïi thieát bò chuïp vaân tay
(fingerprint reader, fingerprint scanner) vôùi caùc chaát löôïng khaùc nhau. Baûng 1.1
giôùi thieäu moät soá loaïi thieát bò chuïp vaân tay vaø caùc thoâng soá kyõ thuaät cuûa chuùng.
Hình 1.2 laø aûnh vaân tay ñöôïc chuïp töø caùc thieát bò naøy. Chi tieát hôn coù theå tham
khaûo ôû [15], [16].

Baûng 1.1: Moät soá loaïi thieát bò chuïp vaân tay vaø caùc thoâng soá kyõ thuaät cuûa chuùng

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 5

Hình 1.2: AÛnh vaân tay ñöôïc chuïp töø caùc thieát bò treân: a) Biometrika FX2000,
b) Digital Persona UareU2000, c) Identix DFR200,
d) Ethentica TactilSense T-FPM,
e) STMicroelectronics TouchChip TCS1AD, f) Veridicom FPS110,
g) Atmel FingerChip AT77C101B, h) Authentec AES4000.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 6

Ñeå ñaùnh giaù moät heä thoáng nhaän daïng vaân tay ta caàn phaân tích hai loaïi loãi ñoù laø:
loãi töø choái nhaàm (False Reject Rate: FRR) vaø loãi chaáp nhaän nhaàm (False Accept
Rate: FAR)

Soá loãi chaáp nhaän nhaàm cuûa caùc vaân tay khaùc nhau
FAR =
Toång soá laàn ñoái saùnh cuûa caùc vaân tay khaùc nhau

Soá loãi töø choái nhaàm cuûa caùc vaân tay khaùc nhau
FRR =
Toång soá laàn ñoái saùnh cuûa caùc vaân tay khaùc nhau

Giaù trò cuûa hai loaïi loãi naøy coù moái quan heä vôùi nhau thoâng qua giaù trò ngöôõng ñoái
saùnh T (threshold) laø sai leäch cho pheùp giöõa maãu caàn ñoái saùnh vôùi maãu ñöôïc löu
trong cô sôû döõ lieäu. Khi choïn giaù trò ngöôõng thaáp thì loãi töø choái nhaàm seõ taêng, loãi
chaáp nhaän nhaàm seõ giaûm vaø ngöôïc laïi.
Heä thoáng thöôøng ñöôïc ñaùnh giaù theo hai caùch:
1. Tyû leä loãi cöïc tieåu SUMmin = (FAR + FRR)min : theo quan ñieåm duø laø loaïi loãi
gì thì cuõng laø loãi, do ñoù tyû leä loãi cöïc tieåu SUMmin laø heä soá loãi nhoû nhaát maø
heä thoáng coù theå ñaït ñöôïc.
2. Möùc ñoä loãi caân baèng (Equal Error Rate: EER): ñoù laø ñieåm maø FAR vaø FRR
baèng nhau.

Hình 1.3 bieåu dieãn moái quan heä giöõa FAR, FRR, SUM vaø EER theo ngöôõng T

SUM = FAR + FRR


1
SUMmin

FRR FAR

EER

0
T

Hình 1.3: Moái quan heä giöõa FAR, FRR, SUM vaø EER theo ngöôõng T

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 7

1.2 TOÅNG QUAN TÌNH HÌNH NGHIEÂN CÖÙU


Caùc phöông phaùp nhaän daïng vaân tay kinh ñieån ñeàu döïa vaøo vieäc ñoái saùnh
(matching) caùc ñieåm ñaëc tröng (feature) treân vaân tay. Coù nhieàu phöông phaùp ñoái
saùnh khaùc nhau. Trong baøi naøy, chuùng toâi nghieân cöùu phöông phaùp ñoái saùnh
baèng maïng neural nhaân taïo (Artificial Neural Network).

1.3 YÙ NGHÓA ÑEÀ TAØI


Ñeà taøi giôùi thieäu moät höôùng nghieân cöùu vaø öùng duïng lónh vöïc nhaän daïng vaân tay
vaøo thöïc tieãn. Moät lónh vöïc ñaõ khaù phoå bieán treân theá giôùi nhöng coøn haïn cheá ôû
Vieät Nam.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 8

PHÖÔNG PHAÙP
NHAÄN DAÏNG VAÂN TAY

1. Caùc ñieåm ñaëc tröng treân aûnh vaân tay


2. Trích caùc ñieåm ñaëc tröng
3. Laøm noåi aûnh vaân tay
4. Ñoái saùnh (matching)

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 9

CHÖÔNG 2:

PHÖÔNG PHAÙP NHAÄN DAÏNG VAÂN TAY


2.1 CAÙC ÑIEÅM ÑAËC TRÖNG TREÂN AÛNH VAÂN TAY
Treân caùc aûnh vaân tay coù caùc ñieåm ñaëc tröng (laø nhöõng ñieåm ñaëc bieät maø vò trí
cuûa noù khoâng truøng laëp treân caùc vaân tay khaùc nhau) ñöôïc phaân thaønh hai
loaïi: singularity vaø minutiae

¾ Singularity: Treân vaân tay coù nhöõng vuøng coù caáu truùc khaùc thöôøng so vôùi
nhöõng vuøng bình thöôøng khaùc (thöôøng coù caáu truùc song song), nhöõng vuøng
nhö vaäy goi laø singularity. Coù hai loaïi singularity laø core vaø delta.

core

delta

Hình 2.1: Caùc ñieåm singularity core vaø delta

Core thöôøng coù moät soá daïng nhö sau:

Hình 2.2: Moät soá loaïi core thöôøng gaëp.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 10

¾ Minutiae: Khi doø theo töøng ñöôøng vaân ta seõ thaáy coù nhöõng ñieåm ñöôøng
vaân keát thuùc (Ridge Ending) hoaëc reõ nhaùnh (Bifurcation), nhöõng ñieåm naøy
ñöôïc goïi chung laø minutiaae.

Hình 2.3: Caùc ñieåm minutiae Ridge Ending (ñieåm keát thuùc) vaø
Bifurcation (ñieåm reõ nhaùnh)

2.2 TRÍCH CAÙC ÑIEÅM ÑAËC TRÖNG


Baèng caùc phöông phaùp xöû lyù aûnh ta coù theå tìm ñöôïc vò trí caùc ñieåm ñaëc tröng
treân caùc aûnh vaân tay.
2.2.1 Trích caùc ñieåm singularity
a. Tröôøng ñònh höôùng (orientation field)
AÛnh vaân tay laø aûnh ñònh höôùng, caùc ñöôøng vaân laø caùc ñöôøng cong theo caùc
höôùng xaùc ñònh. Goùc hôïp bôûi phöông cuûa moät ñieåm treân ñöôøng vaân vôùi
phöông ngang ñöôïc goïi laø höôùng cuûa ñieåm ñoù. Taäp hôïp caùc höôùng cuûa caùc
ñieåm treân aûnh vaân tay goïi laø tröôøng ñònh höôùng cuûa aûnh vaân tay ñoù.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 11

Hình 2.4: aûnh vaân tay (a) vaø tröôøng ñònh höôùng cuûa noù (b)

Phöông phaùp xaùc ñònh tröôøng ñònh höôùng nhö sau [5], [14]:
− Chia aûnh vaân tay thaønh caùc khoái nhoû hôn kích thöôùc WxW
− Tính gradient theo hai höôùng x, y laø Gx, Gy taïi moãi ñieåm (pixel) trong khoái
− Khi ñoù höôùng cuûa ñieåm chính giöõa cuûa khoái ñöôïc xaùc ñònh theo coâng thöùc:

−1 ⎜ ∑i =1 ∑ j =1
⎛ W W
2G x (i, j )G y (i, j ) ⎞
1 ⎟
ϕ = tan ⎜ W W
2 (
⎜ ∑ ∑ G x2 (i, j ) − G y2 (i, j )
⎝ i =1 j =1
) ⎟⎟

Haøm orientation.m thöïc hieän tính tröôøng ñònh höôùng ñöôïc giôùi thieäu trong
phaàn phuï luïc.

b. Xaùc ñònh caùc ñieåm singularity baèng chæ soá Poincare (Poincare index) [3]
Giaû söû (i,j) laø moät ñieåm baát kyø treân aûnh vaân tay, C laø moät ñöôøng cong kheùp
kính xung quanh (i,j) thì chæ soá Poincare taïi (i,j) laø toång ñaïi soá caùc ñoä sai leäch
höôùng cuûa caùc ñieåm lieàn keà nhau treân ñöôøng cong C.
Np −1
Poincare(i, j ) = ∑ Δ(k )
k =0

d (k ) d (k ) < π / 2
Δ (k ) = d (k ) + π d (k ) ≤ −π / 2
d (k ) − π

d ( k ) = ϕ ( x k +1 , y k +1 ) − ϕ ( x k , y k )

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 12

Trong ñoù: Np laø toång soá ñieåm treân ñöôøng cong “soá” C
ϕ(x,y) laø höôùng taïi ñieåm (x,y)

Döïa vaøo chæ soá Poincare ta coù theå xaùc ñònh caùc ñieåm singularity nhö sau:

00 (i,j) khoâng phaûi laø ñieåm singularity

360 0 (i,j) laø ñieåm whorl


Poincare (i, j ) = 0
180 (i,j) laø ñieåm loop
− 180 0 (i,j) laø ñieåm delta

Hình 2.5 minh hoïa caùch tính chæ soá poincare taïi ñieåm (i,j) vôùi soá ñieåm treân
ñöôøng cong “soá” Np = 8

Hình 2.5: Caùch tính chæ soá poincare taïi ñieåm (i,j) vôùi Np = 8

Haøm poincare.m thöïc hieân vieäc tính chæ soá Poincare theo thuaät toaùn treân vaø
haøm singularity.m xaùc ñònh caùc ñieåm singularity döïa vaøo chæ soá Poincare (phuï
luïc).

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 13

2.2.2. Trích caùc ñieåm minutiae


Coù hai phöông phaùp chính ñeå tìm caùc ñieåm minutiae: trích caùc ñieåm minutiae
töø aûnh binary vaø trích caùc ñieåm minutiae tröïc tieáp töø aûnh xaùm.
a. Trích caùc ñieåm minutiae töø aûnh binary [5]

Hình 2.6: Sô ñoà moâ taû thuaät toaùn trích caùc ñieåm minutiae töø aûnh binary

YÙ töôûng chính cuûa phöông phaùp naøy laø töø aûnh xaùm ban ñaàu ta söû duïng caùc boä
loïc thích hôïp ñeå phaùt hieän vaø laøm maûnh ñöôøng vaân döôùi daïng moät pixel
(ridge detection), bieán ñoåi aûnh xaùm ban ñaàu thaønh aûnh binary (coù giaù trò laø 0
hoaëc 1) töông öùng.
Sau ñoù, caùc ñieåm minutiae seõ ñöôïc trích nhö sau: giaû söû (x,y) laø moät ñieåm
treân ñöôøng vaân ñaõ ñöôïc laøm maõnh vaø N0, N1, …, N7 laø 8 ñieåm xung quanh noù
thì
7
• (x,y) laø moät ñieåm keát thuùc neáu ∑N
i =0
i =1
7
• (x,y) laø moät ñieåm reõ nhaùnh neáu ∑N
i =0
i >2

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 14

Hình 2.7: Caùc keát quaû cuûa thuaät toaùn

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 15

b. Trích caùc ñieåm minutiae tröïc tieáp töø aûnh xaùm [1]
¾ Doø theo ñöôøng vaân (Ridge line following)
Giaû söû I laø moät aûnh xaùm coù kích thöôùc laø mxn vaø neáu coi chieàu thöù ba z laø
möùc xaùm taïi ñieåm (i,j) thì beà maët cuûa aûnh vaân tay I coù daïng nhö sau:

Hình 2.8: Beà maët cuûa aûnh vaân tay vôùi caùc ñöôøng vaân (ridge) vaø caùc raõnh (ravine)

Theo quan ñieåm toaùn hoïc thì ñöôøng vaân laø taäp hôïp caùc ñieåm cöïc ñaïi doïc theo
moät höôùng xaùc ñònh. Vieäc xaùc ñònh caùc ñieåm minutiae tröïc tieáp töø aûnh xaùm
döïa vaøo thuaät toaùn doø theo ñöôøng vaân. Thuaät toaùn naøy döïa vaøo vieäc xaùc ñònh
caùc ñieåm cöïc ñaïi doïc theo höôùng cuûa ñöôøng vaân.
¾ Xaùc ñònh ñieåm cöïc ñaïi
Giaû söû Ω((it , jt ), φ , σ ) laø thieát dieän cuûa ñöôøng vaân coù ñieåm chính giöõa laø
(it , jt ) , höôùng cuûa thieát dieän φ = ϕ t + π / 2 ( ϕ t laø höôùng cuûa ñöôøng vaân taïi
(it , jt ) ) vaø beà roäng cuûa thieát dieän m = 2σ+1 pixel (hình 2.9). Khi ñoù, Ω ñöôïc
xaùc ñònh nhö sau:

vaø ñieåm cöïc ñaïi coù theå ñöôïc xaùc ñònh baèng caùch so saùnh möùc xaùm giöõa caùc
ñieåm trong Ω

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 16

Hình 2.9: Thieát dieän cuûa ñöôøng vaân taïi

¾ Toùm laïi vieäc tìm caùc ñieåm minutiae baèng thuaät toaùn doø theo ñöôøng vaân
ñöôïc thöïc hieän nhö sau (chi tieát xem ôû taøi lieäu tham khaûo[1]):
− Laáy moät ñieåm baát kì (is,js) treân aûnh I
− Tìm höôùng ϕs taïi ñieåm (is,js)
− Tìm ñieåm cöïc ñaïi (ic,jc) gaàn (is,js) nhaát

Hình 2.10: Ñieåm cöïc ñaïi (ic,jc) töông öùng vôùi (is,js)

− Tìm höôùng ϕc taïi ñieåm (ic,jc)


− Dòch chuyeån theo höôùng ϕc moät ñoaïn μ
− Tinh chænh laïi ñieåm cöïc ñaïi (ic,jc) vaø höôùng ϕc
− Tieáp tuïc quaù trình naøy ñeå doø theo ñöôøng vaân (ridge following) cho ñeán
khi khoâng phaùt hieän ñöôïc ñieåm cöïc ñaïi (ic,jc) thì ñoù laø ñieåm Ridge
Ending hoaëc chaïm vaøo moät ñöôøng vaân khaùc thì ñoù laø ñieåm Bifurcation
(moãi ñöôøng vaân sau khi ñöôïc doø seõ ñöôïc gaùn nhaõn)
− Tieáp theo choïn moät ñieåm (is,js) khaùc vaø thöïc hieän laïi quaù trình treân cho
ñeán khi doø heát taát caû caùc ñöôøng vaân.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 17

Hình 2.11: Dòch chuyeån theo ñöôøng vaân töøng ñoaïn μ

Taát caû caùc thuaät toaùn treân ñöôïc thöïc hieän baèng haøm minutiae.m (phuï luïc)

2.3 LAØM NOÅI AÛNH VAÂN TAY


Caùc aûnh vaân tay thöôøng ñöôïc laáy baèng hai phöông phaùp: töø möïc hoaëc töø caùc
sensor. Caùc aûnh vaân tay ñöôïc laáy töø möïc thöôøng coù chaát löôïng thaáp vaø khoâng
ñoàng ñeàu. Phaàn naøy seõ giôùi thieäu phöông phaùp duøng boä loïc Gabor ñeå caûi thieän
chaát löôïng cuûa aûnh vaân tay [8], [13], [14].
Haøm Gabor laø moät coâng cuï höõu duïng cho vieäc xöû lyù aûnh. Noù coù ñaëc tính choïn
loïc trong mieàn khoâng gian laãn taàn soá. Haøm Gabor 2_D thöïc coù daïng nhö sau:
⎛ 1 ⎡ xφ2 yφ2 ⎤ ⎞ ⎛ 2πxφ ⎞
g ( x, y; T , φ ) = exp⎜ − ⎢ 2 + 2 ⎥ ⎟ cos⎜⎜ ⎟
⎜ 2 ⎢σ x σ y ⎥ ⎟ ⎝ T ⎟⎠
⎝ ⎣ ⎦⎠
xφ = x cos φ + y sin φ
yφ = − x sin φ + y cos φ
trong ñoù:
φ laø höôùng cuûa boä loïc
T laø chu kyø cuûa haøm cos (thöôøng ñöôïc choïn töø thöïc nghieäm coù giaù trò [0,1])
σx , σy laø caùc ñoä leäch chuaån (thöôøng ñöôïc choïn töø thöïc nghieäm coù giaù trò
[0,4])

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 18

Caùc böôùc thöïc hieän:


1. Chuaån hoùa möùc xaùm: neáu I(x,y) laø möùc xaùm taïi ñieåm (x,y) cuûa aûnh I thì möùc
xaùm chuaån hoùa Ni(x,y) ñöôïc xaùc ñònh rheo coâng thöùc sau:

trong ñoù:
M0, V0 laø mean vaø variance mong muoán (thöôøng ñöôïc choïn laø 100)
Mi, Vi laø mean vaø variance cuûa aûnh I
Chuù yù: neáu möùc xaùm cuûa caùc vuøng khaùc nhau treân aûnh I khoâng ñoàng ñeàu thì coù
theå chia I thaønh caùc khoái nhoû vaø chuaån hoaù theo töøng khoái.

Hình 2.12: aûnh I vaø aûnh chuaån hoùa cuûa noù

(Haøm normalize.m thöïc hieän chuaån hoùa möùc xaùm ñöôïc giôùi thieäu ôû phuï luïc)

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 19

2. Xaùc ñònh tröôøng ñònh höôùng theo phöông phaùp ñaõ giôùi thieäu ôû treân
3. Söû duïng haøm loïc Gabor cho aûnh ñaõ chuaån hoùa trong mieàn taàn soá
− Chia aûnh caàn loïc thaønh töøng khoái nhoû kích thöôùc WxW
− Xaùc ñònh höôùng cuûa khoái (döïa vaøo tröôøng ñònh höôùng)
− Höôùng φ cuûa boä loïc laø höôùng cuûa khoái
− Söû duïng pheùp bieán ñoåi FFT vaø pheùp bieán ñoåi IFFT cho töøng khoái aûnh vaø
haøm Gabor

Hình 2.13: Keát quaû loïc baèng haøm gabor_filter.m (phuï luïc)
vôùi T = 0.6, σx = 1, σy = 2

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 20

2.4 ÑOÁI SAÙNH (MATCHING)


Haàu heát caùc phöông phaùp nhaän daïng vaân tay ñeàu döïa vaøo vieäc ñoái saùnh vò trí caùc
ñieåm ñaëc tröng. Gaàn ñaây, moät soá taùc giaû ñaõ keát hôïp theâm moät soá ñaëc tính khaùc
cuûa aûnh vaân tay ñeå naâng cao hieäu quaû ñoái saùnh nhö: Orientation field [9] hoaëc
Density map [10]. Chi tieát xem ôû taøi lieäu tham khaûo, ôû ñaây toâi xin giôùi thieäu
phöông phaùp ñoái saùnh vò trí caùc ñieåm ñaëc tröng maø toâi ñaõ söû duïng, phöông phaùp
naøy gaàn gioáng vôùi caùc phöông phaùp ñöôïc neâu ôû [4] vaø [11]. Haøm matching.m
(phuï luïc) thöïc hieän ñoái saùnh hai aûnh vaân tay theo phöông phaùp naøy.
Giaû söû I vaø I’ laàn löôït laø caùc aûnh vaân tay maãu vaø aûnh vaân tay caàn ñoái saùnh,
m = {x, y, θ } laø caùc ñieåm ñaëc tröng ñöôïc xaùc ñònh bôûi toïa ñoä (x,y) vaø höôùng θ.

I = {m1 , m2 ,..., mm }, mi = {xi , y i , θ i }, i = 1...m


{
I = m , m ,..., m ,
' '
1
'
2
'
n } '
j {
m = x , y ,θ ,
'
j
'
j
'
j } j = 1...n

trong ñoù: m, n laàn löôït laø soá ñieåm ñaëc tröng cuûa I vaø I’.

Khi ñoù, ñieåm m ' ∈ I ' ñöôïc coi laø “gioáng” vôùi ñieåm m ∈ I neáu ñoä sai leäch veà
khoâng gian vaø ñoä sai leäch veà höôùng nhoû hôn caùc giaù trò ngöôõng r0 vaø θ0 :

sd (m 'j , mi ) = ( x 'j − xi ) 2 + ( y 'j − y i ) 2 ≤ r0


dd (m 'j , mi ) = θ j' − θ i ≤ θ 0

Neáu
Toång soá ñieåm cuûa I – soá ñieåm gioáng nhau
< ngöôõng T
Toång soá ñieåm cuûa I

thì I’ ñöôïc coi laø gioáng I. Trong ñoù T laø phaàn traêm soá ñieåm sai leäch cho pheùp.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 21

MAÏNG NEURAL
NHAÂN TAÏO

1. Toång quan veà neural – maïng neural


2. Moät soá moâ hình maïng neural

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 22

CHÖÔNG 3:

MAÏNG NEURAL NHAÂN TAÏO

3.1 TỔNG QUAN VỀ NEURAL – MẠNG NEURAL


1. Boä naõo vaø neuron sinh hoïc
Teá baøo thaàn kinh coøn goïi laø “neuron”. Nghieân cöùu sinh hoïc veà boä naõo con
ngöôøi cho thaáy raèng caùc neuron laø ñôn vò cô sôû ñaûm nhieäm nhöõng chöùc naêgn xöû
lyù nhaát ñònh trong heä thaàn kinh, bao goàm: naõo, tuûy soáng vaø caùc daây thaàn kinh .
Moãi neuron coù phaàn thaân vaø nhaân beân trong (goïi laø soma), moät ñaàu thaàn kinh ra
(goïi laø dendrite). Caùc daây thaàn kinhvaøo taïo thaønh moät löôùi daøy ñaëc xung quanh
thaân teá baøo, chieám dieän tích khoaûng 0,25mm2, coøn daây thaàn kinh taïo rathaønh truïc
daøi coù theå töø 1 cm ñeán haøng meùt. Ñöôøng kính nhaân teá baøo thöôøng chæ laø 10-4 m.
truïc daây thaàn kinh ra cuõng coù theå phaân nhaùnh theo daïng caây ñeå noái vôùi daây thaàn
kinh vaøo hoaëc tröïc tieáp vôùi nhaân teá baøo caùc neuron khaùc thoâng qua caùc khôùp noái
(goïi laø synapse). Thoâng thöôøng, moãi neuron coù theå goàm vaøi chuïc cho tôùi haøng
traêm khôùp noái ñeå noái vôùi caùc neuron khaùc. Ngöôøi ta öôùc löôïng raèng löôùi caùc daây
thaàn kinh ra cuøng vôùi caùc khôùp noái bao phuû dieän tích khoaûng 90% beà maët
neuron.

Hình 3.1 Caáu taïo maïng neural sinh hoïc

Caùc tín hieäu truyeàn trong daây thaàn kinh vaøo vaø daây thaàn kinh ra cuûa caùc
neural laø tính hieäu ñieän, ñöôïc thöïc hieän thoâng qua caùc quaù trình phaûn öùng vaø giaûi
phoùng caùc chaát höõu cô. Caùc chaát naøy ñöôïc phaùt ra töø caùc khôùp noái daãn tôùi caùc

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 23

daây thaàn kinh vaøo seõ laøm taêng hay giaûm ñieän theá cuûa nhaân teá baøo. Khi ñieän theá
naøy ñaït ñeán moät möùc ngöôõng naøo ñoù seõ taïo ra moät xung ñieän daãn tôùi truïc daây
thaàn kinh ra. Xung naøy ñöôïc truyeàn theo truïc, tôùi caùc nhaùnh reõ khi chaïm tôùi caùc
khôùp noái vôùi caùc neuron khaùc vaø seõ giaûi phoùng caùc chaát truyeàn ñieän. Thöôøng
chia khôùp noái thaønh 2 loaïi: khôùp noái kích thích (excitatory) vaø khôùp noái öùc cheá
(inhibitory).
Phaùt hieän quan troïng nhaát veà boä naõo sinh hoïc laø caùc lieân keát khôùp thaàn kinh
khaù meàm deûo, coù theå bieán ñoäng vaø söûa ñoåi theo thôøi gian tuøy thuoäc vaøo caùc daïng
kích thích. Hôn nöõa, caùc neuron coù theå saûn sinh caùc lieân keát môùi vôùi caùc neuron
khaùc; ñoâi khi, löôùi caùc neuron coù theå di truù töø vuøng naøy sang vuøng khaùc trong boä
naõo. Ñaây laø cô sôû quan troïng ñeå giaûi thích cho cô cheá hoïc cuûa boä naõo con ngöôøi.
Caùc chöùc naêng cô baûn cuûa boä naõo bao goàm:
- Boä nhôù ñöôïc toå chöùc theo caùc boù thoâng tin vaø truy caäp theo noäi dung.
- Boä naõo coù theå toång quaùt hoùa, coù theå truy xuaát caùc tri thöùc hay caùc moái lieân
keát chung cuûa caùc ñoái töôïng töông öùng vôùi moät khaùi nieäm chung naøo ñoù.
- Boä naõo coù khaû naêng ñieàu chænh hoaëc tieáp tuïc thöïc hieän ngay khi coù nhöõng
sai do thoâng tin bò thieáu hay thieáu chính xaùc. Ngoaøi ra, boä naõo coøn coù theå
phaùt hieän vaø phuïc hoài caùc thoâng tin bò maát döïa treân söï töông töï giöõa caùc ñoái
töôïng.
- Boä naõo coù khaû naêng xuoáng caáp vaø thay theá daàn. Khi coù nhöõng truïc traëc taïi
caùc vuøng naõo (do chaán thöông) hoaëc baét gaëp nhöõng thoâng tin hoaøn toaøn môùi
laï, boä naõo vaãn coù theå ñöôïc tieáp tuïc laøm vieäc.
- Boä naõo coù khaû naêng hoïc.
Nhìn chung, tính toaùn sô boä cho thaáy raèng duø boä vi xöû lyù maùy tính ñieän töû
coù theå tính toaùn nhanh hôn haøng trieäu laàn so vôùi neuron cuûa boä naõo, nhöng xeùt
toång theå thì boä naõo laïi tính toaùn nhanh hôn haøng tyû laàn. Ngoaøi ra, cuõng deã thaáy
raèng boä naõo con ngöôøi coù theå löu tröõ nhieàu thoâng tin hôn caùc maùy tính hieän ñaïi,
duø raèng ñieàu naøy khoâng phaûi ñuùng maõi maõi bôûi leõ boä naõo tieán hoùa chaäm coøn boä
nhôù maùy tính thì ñöôïc naâng caáp raát nhanh nhôø nhöõng tieán boä cuûa khoa hoïc kyõ
thuaät.
2. Moâ hình neuron nhaân taïo vaø maïng neuron nhaân taïo
maïng neuron nhaân taïo (Artificial neural network – ANN) laø maïng bao goàm
caùc nuùt (neuron, ñôn vò xöû lyù) ñöôïc noái vôùi nhau bôûi caùc lieân keát neuron. Moãi
lieân keát keøm theo moät troïng soá naøo ñoù, ñaëc tröng cho ñaëc tính kích hoaït hoaëc öùc
cheá giöõa caùc neuron. Coù theå xem caùc troïng soá laø phöông tieän ñeå löu thoâng tin daøi
haïn trong maïng neuron, coøn nhieäm vuï cuûa quaù trình huaán luyeän (hoïc) laø caäp
nhaät caùc troïng soá khi coù theâm thoâng tin veà caùc maãu hoïc, hay noùi caùch khaùc, caùc

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 24

troïng soá ñöôïc ñieàu chænh sao cho daùng ñieäu vaøo ra cuûa noù moâ phoûng hoaøn toaøn
phuø hôïp moâi tröôøng ñang xem xeùt.
a. Moâ hình nhaân taïo

Hình 3.2 Moâ hình neural nhaân taïo

Moãi nueron ñöôïc noái vôùi caùc neuron khaùc vaø nhaän ñöôïc caùc tín hieäu töø
chuùng vôùi caùc troïng soá wj.
- Toång thoâng tin vaøo coù troïng soá laø:
- Net = ∑ w j s j , ñaây laø thaønh phaàn tuyeán tính cuûa neuron
- Haøm kích hoaït g ñoùng vai troø bieán ñoåi töø Neùt sang tín hieäu ñaàu ra out
- Out = g(Net), ñaây laø thaønh phaàn phi tuyeán cuûa maïng neuron
- Moät soá daïng haøm kích hoạt thöôøng duøng trong thöïc teá:
⎧1, x ≥ 0
+ Hàm bước: step(x)= ⎨ (3.1)
⎩0, x < 0

⎧1, x ≥ 0
+ Hàm dấu : sign(x)= ⎨ (3.2)
⎩− 1, x < 0

1
+ Hàm sigmoid 1: sigmoid(x)= −α ( x +θ )
(3.3)
1+ e

e −α ( x +θ ) − 1
+ Hàm sigmoid 2: sigmoid(x)=a . (3.4)
e −α ( x +θ ) + 1
Trong đó :
S= ( s1 , s 2 ,..., s) : vector tín hiệu vào
W= ( w1 , w2 ,...wn ) : vector trọng số
θ : là ngưỡng đóng vai trò làm tăng tính thích nghi và khả năng tính toán
của mạng neuron

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 25

b. Mạng neuron nhân tạo


Mạng neuron nhân tạo, sau đây gọi tắt là mạng neuron,được xây dựng trên cơ
sở mạng neuron sinh học, là hệ thống bao gồm nhiều phần tử xử lý đơn giản
(neuron), hoạt động song song. Tính năng của hệ thống này tùy thuộc vào cấu trúc
của hệ, các trọng số liên kết và cấu trúc của chúngcho phù hợp với mẫu học. trong
mạng neuron, các neuron đón nhận tín hiệu vào gọi là neuron vào, còn các neuron
đưa thông tin ra gọi là nueron ra. Các thông số cấu trúc mạng neuron bao gồm:
- Số tín hiệu vào, số tín hiệu ra.
- Số lớp neuron
- Số neuron trên mỗi lớp ẩn
- Số lượng liên kết của mỗi neuron (đầy đủ, bộ phận, ngẫu nhiên)
- Các trọng số liên kết
b.1 Phân loại mạng neuron
- Theo kiểu liên kết neuron, ta có mạng neuron truyền thẳng (feed-forward
neural network) và mạng neuron hồi qui (recurrent neural network). Trong mạng
neuron truyền thẳng, các liên kết neuron đi theo một hướng nhất định , không có
chu trình. Ngược lại, mạng neuron hồi qui cho phép các liên kết neuron tạo thành
chu trình. Vì các thông tin ra của các neuron được truyền lại cho chính các neuron
nên đã góp phần kích hoạt cho chúng và tạo ra khả năng lưu giữ trạng thái trong của
nó dưới dạng các ngưỡng kích hoạt ngoài các trọng số liên kết neuron.
- Theo số lớp, ta có mạng neuron một lớp (single-layer) và mạng neuron đa
lớp (multi-layer). Trong đó, thông thường lớp neuron vào chỉ chịu trách nhiệm
truyền đưa tín hiệu vào, không thực hiện một tính toán nào, nên khi tính số lớp của
mạng ta không tính lớp này vào.
b.2 Cách nhìn về mạng neuron
+ Có thể xem mạng neuron như một công cụ toán học, một bảng tra. Giả sử
mạng neuron NN có m neuron vào và n neuron ra, khi đó với mỗi vector tín hiệu
vào X= ( x1 , x 2 ,..., x m ) sau quá trình tính toán tại các neuron ẩn sẽ nhận được kết quả
ra Y= ( y1 , y 2 ,..., y n ) và ta qui ước viết Y = out (X,NN).
+ Mạng neuron như một hệ thống thích nghi, có khả năng học (huấn luyện)
để tinh chỉnh các trọng số liên kết cũng như cấu trúc của chúng sao cho phù hợp với
các mẫu học (samples). Thường phân biệt 3 kỹ thuật học:
+ Học có giám sát (supervised learning), còn gọi là học có thầy: Mạng được
cung cấp một tập mẫu học {(x,d)} theo nghĩa x là các tín hiệu vào thì kết quả đúng
của hệ phải là d. Ở mỗi lần học, vector tín hiệu vào x được đưa vào mạng, sau đó so
sánh sự sai khác giữa các kết quả ra đúng d với kết quả tính toán Y. Sai số này được
dùng để hiệu chỉnh lại các trọng số liên kết trong mạng. quá trình cứ tiếp tục cho
đến khi thỏa mãn một tiêu chuẩn nào đó. Có 2 cách sử dụng tập mẫu học: hoặc dùng
các mẫu lần lượt – hết mẫu này đến mẫu khác, hoặc sử dụng đồng thời tất cả các
mẫu cùng một lúc.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 26

Hình 3.3 Moâ hình hoïc coù giaùm saùt

+ Học không có giám sát (unsupervised learning), còn gọi là học không
thầy: Trong kỹ thuật học này, sẽ không có sự hồi tiếp từ môi trường để cho biết tín
hiệu ra yêu cầu của mạng nên như thế nào, hoặc chúng có đúng chưa – giống như
học có giám sát, mà nói chung mạng neuron phải tự nó phát hiện ra bất cứ mối liên
hệ có liên quan có thể tồn tại trong giữ liệu vào (chẳng hạn như: các mẫu, các đặc
trưng, các quy tắc, sự tương quan) và chuyển mối liên hệ đã phát hiện này sang đầu
ra. Mạng học với cơ chế này gọi là mạng tự tổ chức. Thí dụ, mạng neuron học
không thầy có thể cho chúng ta biết một mẫu đầu vào mới đồng dạng như thế nào
với mẫu đặc trưng đã thấy trong quá khứ (sự đồng dạng); hoặc một dạng neuron
khác có thể xây dựng một tập những cái rìu trên cơ sở sự tương tự của những thí dụ
trước đó (phân tích thành phần chủ yếu)v.v…

Hình 3.4 Moâ hình hoïc khoâng coù giaùm saùt

+ Học tăng cường (Reinforced learning): Như đã giới thiệu ở trên, kỹ thuật
học có giám sát là hiệu chỉnh dần giá trị tín hiệu đầu ra tương ứng với từng cặp mẫu
tín hiệu vào-ra. Tuy nhiên thực tế nhiều khi không thể có được các thông tin chi tiết
này. Do đó thường phải sử dụng thuật toán “học tăng cường”. trong học tăng cường
, dữ liệu huấn luyện rất thô và chúng chỉ “ ước lượng” để so sánh với “sự truyền
kiến thức” hồi tiếp trong học có giám sát.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 27

Hình 3.5 Moâ hình huaán luyeän taêng cöôøng

+ Các kỹ thuật học trong mạng neuron có thể nhằm vào việc hiệu chỉnh các
trọng số liên kết – gọi là học tham số; hoặc nhằm vào việc điều chỉnh, sửa đổi cấu
trúc của mạng, bao gồm số lớp, số neuron, kiểu và trọng số các liên kết – gọi là học
cấu trúc.

3.2 MỘT SỐ MÔ HÌNH MẠNG NEURAL


1. Mạng truyền thẳng (Feedforward neural Networks)
a. Mạng Perceptron đơn lớp

Hình 3.6 Maïng perceptron ñôn lôùp

- Tập mẫu tín hiệu vào: x(k)=[x1(k),x2(k),…,xm(k)]T;k=1..p, với p là số tập mẫu


huấn luyện; m là số tín hiệu vào trong một tập mẫu
- Tập mẫu tín hiệu ra tương ứng với tập mẫu tín hiệu vào:
(k) (k) (k) (k) T
d =[d1 ,d2 ,…,dn ]
- Tập tín hiệu ra thực tế ứng với tín hiệu mẫu x(k): y(k)=[y1(k),y2(k),…,yn(k)]T
- Vector trọng số: wi =[wi1,wi2, …, wim]. i =1..n với n là số tín hiệu ra.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 28

- Hàm kích hoạt neuron: a(.)


- Mục tiêu của quá trình huấn luyện mạng là:
⎡ m ⎤
Yi(k)=a(wiTx(k)) = a ⎢∑ wij x j ( k ) ⎥ = di(k) (3.4)
⎣ j =1 ⎦
a.1 Qui luật học Perceptron
Tín hiệu ramẫu có dạng tuyến tính ngưỡng, chỉ nhận giá trị ± 1. từ (2.4) ta có:
Yi(k) = sgn(wiTx(k)) = di(k) (3.5)
a.2 Adaline (Adaptive linear Element)
Tính hiệu ramẫu có dạng tuyến tính dốc, từ (3.4) ta có:
Yi(k) = (wiTx(k)) = di(k) (3.6)
b. Mạng truyền thẳng đa lớp (Multilayer feedforward networks)
b.1 Lan truuyền ngược (Back propagation)
Thuật toán huấn luyện lan truyền ngược có một ý nghĩa quan trọng trong lịch
sử phát triển mạng neuron. Các mạng neuron được huấn luyện được huấn luyện
bằng thuật toán này gọi là mạng lan truyền ngược. với các tập học {(x(k), d(k)},
k=1..p, thuật toán lan truyền ngược đưa ra các thủ tục để thay đổi trọng số trong
mạng lan truyền ngược. Cơ sở của việc cập nhật các trọng số này là cơ chế suy
giảm gradient.
Với một cặp tính hiệu mẫu vào-ra (x(k), d(k), thuật toán lan truyền ngược thực
hiện 2 giai đoạn. Đầu tiên, mẫu x(k) được lan truyền từ lớp vào đến lớp ra và cho ra
tín hiệu thật ở lớp ra là y(k). Sai số giữa tín hiệu thật ở lớp ra y(k) và tín hiệu ra mẫu
d(k) được lan truyền ngược trở lại từ lớp ra đến những lớp trước đó để cập nhật lại
trọng số cho chúng. Xét cụ thể một mạng neuron 3 lớp lan truyền ngược (hình 3.7)
để minh họa thuật toán lan truyền ngược và kết quả này hoàn toàn có thể mở rộng
cho những mạng có số lớp nhiều hơn.

Hình 3.7 Maïng neural 3 lôùp lan truyeàn ngöôïc

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 29

Mạng neuron 3 lớp lan truyền ngược hình 3.7 có m neuron ở lớp vào, l
neuron ở lớp ẩn và n neuron ở lớp ra.
Đầu tiên, xét cặp mẫu huấn luyện (x,d). với tín hiệu mẫu đầu vào x ở lớp vào,
neuron q ở lớp ẩn sẽ nhận được tín hiệu:
m
Netq = ∑v
j =1
qj xj (3.7)

Tín hiệu của neuron q ở lớp ẩn là:


⎡ m ⎤
Zq = a(netq) = a ⎢∑ v qj x j ⎥ (3.8)
⎣ j =1 ⎦
Tín hiệu vào của neuron I ở lớp ra:
l ⎡m ⎤
Neti = ∑ w z
iq q = ∑ v iq .a ⎢∑ v qj x j ⎥ (3.9)
q =1 ⎣ j =1 ⎦
Tín hiệu ra của neuron I ở lớp ra:
⎡ l ⎤ ⎡ l ⎡ m ⎤⎤
Yi = a(neti) = a ⎢∑ wiq z q ⎥ = a ⎢∑ wiq ⋅ ⎢a ∑ v qj z j ⎥ ⎥ (3.10)
⎣ q =1 ⎦ ⎣⎢ q =1 ⎣ j =1 ⎦ ⎦⎥
Định nghĩa hàm sai số:
2
n ⎡ ⎡ l ⎤⎤ n
E(w) = 1 2 ∑ (d i − y i ) = 1 2 ∑ ⎢d i − a ⎢∑ wiq z q ⎥ ⎥
2
(3.11)
i =1 i =1 ⎢
⎣ ⎣ q =1 ⎦ ⎥⎦
Theo phương pháp suy giảm gradient, trọng số các neuron giữa lớp ẩn với lớp
ra được cập nhật như sau:
⎡ ∂Ε ⎤
Δ wiq = − η ⎢ ⎥
⎢⎣ ∂wiq ⎥⎦
⎡ ∂Ε ⎤ ⎡ ∂y i ⎤ ⎡ ∂net i ⎤
= −η ⎢ ⎥⎢ ⎥⎢ ⎥
⎣ ∂y i ⎦ ⎣ ∂net i ⎦ ⎣ ∂wiq ⎦
= η [d i − y i ][a' (net i )][z q ] = ηδ oi z q (3.12)
trong đó δ oi là sai số tín hiệu ở lớp ra, được định nghĩa như sau:
∂Ε ⎡ δΕ ⎤ ⎡ ∂net i ⎤
δ oi = − = −⎢ i ⎥ ⎢ ⎥
∂net i ⎣ δy i ⎦ ⎣ ∂net i ⎦
[
= [d i − y i ] a , (net i ) ] (3.13)
Để cập nhật trọng số liên kết giữa lớp váo với lớp ẩn ta cũng dùng phương
pháp suy giảm gradient, cụ thể giữa neuron thứ j ở lớp vào với neuron q ở lớp ẩn
như sau:
⎡ ∂Ε ⎤ ⎡ ∂Ε ⎤ ⎡ ∂net q ⎤
Δv qj = −η ⎢ ⎥ =η⎢ ⎥⎢ ⎥
⎢⎣ ∂v qj ⎥⎦ ⎢⎣ ∂net q ⎥⎦ ⎢⎣ ∂v qj ⎥⎦
⎡ ∂Ε ⎤ ⎡ ∂z q ⎤ ⎡ ∂net q ⎤
= −η ⎢ ⎥⎢ ⎥⎢ ⎥
⎣⎢ ∂z q ⎦⎥ ⎣⎢ ∂net q ⎦⎥ ⎣⎢ ∂v qj ⎦⎥

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 30

n
= η ∑ [(d i − y i ).a , (net i ) wiq ].a , (net q ).x j (3.14)
i =1
n
Δv qj = η ∑ [d oi wiq ], a , (net q ) x j = ηδ hq x j (3.15)
i =1

trong đó δ hq là sai số tín hiệu ở lớp ẩn, được định nghĩa như sau:
∂Ε ⎡ ∂Ε ⎤ ⎡ ∂z q ⎤ n
δ hq = − = −⎢ ⎥ = a (net q )∑ δ oi wiq
,
⎥⎢ (3.16)
∂net q ⎢⎣ ∂z q ⎦⎥ ⎣⎢ ∂net q ⎦⎥ i =1

Nhận thấy rằng sai số tín hiệu lớp ẩn khác với sai số tín hiệu lớp ra. Và chính
sự khác nhau này nên thủ tục để cập nhật các trọng số liên kết được gọi là “qui luật
học tổng quát hóa delta”.
Tổng quát, với mạng neuron có số lớp tùy ý, quy luật cập nhật lan truyền
ngược sẽ có dạng:
Δwij = ηδ i x j = ηδ output −i .xinput − j (3.17)
trong đó , “output-i” và “input-j” là 2 điểm kết thúc nối từ neuron j đến neuron
i;xj là tín hiệu vào; δ i là sai số tín hiệu, được xác định theo (2.13) cho lớp ra hoặc
(2.16) cho lớp vào.
b.2 Các hệ số học trong thuật toán lan truyền ngược
- Khới tạo giá trị trọng số liên kết neuron (Intial weights): Trong mạng truyền
thẳng, giá trị trọng số được khởi tạo ban đầu có ảnh hưởng quan trọng đến kết quả
cuối cùng. Chúng được gán ngẫu nhiên với giá trị tương đối nhỏ, vì nếu quá lớn thì
hàm sigmoid sẽ dễ bảo hòa ngay lúc bắt đầu, dẫn đén hệ thống sẽ bị “nghẽn” tại giá
trị địa phương nhỏ nhất hoặc rất ổn định ở lân cận điểm bắt đầu. Do đó,tầm hợp lý
của giá trị trọng số khởi tạo ban đầu thường nằm trong khoảng [-3/ki, 3/ki], trong đó
ki là số đầu vào nối vào neuron I [Wessels and Barnard, 1992]
- Hằng số học (learning constant): Một hệ số quan trọng khác cũng làm ảnh
hưởng đến hiệu quả và sự hội tụ của thuật toán lan truyền ngược, đó là hằng số học
η . Sẽ không có một giá trị hằng số hhọc cố định cho các trường hợp huấn luyện
khác nhau, mà thường chúng được chọn thử nghiệm cho từng bài toán cụ thể. Một
hằng số học có giá trị lớn có thể làm gia tăng tốc độ hội tụ, nhưng kết quả cũng có
thể sẽ bị cường điệu; Trong khi một hằng số học có giá trị nhỏ hơn thì có tác dụng
ngược lại. tầm gái trị hằng số học η thường dao động trong khoảng từ 10-3 đến 10.
Một vấn đề khác cũng được đặt ra là hằng số hằng sẽ được tốt nhất ở lúc bắt
đầu huấn luyện, tuy nhiên sẽ không còn tốt nữa sau vài lần huấn luyện. Do đó, tốt
nhất là dùng hằng số học thích nghi. Phương pháp trực giác để xác định hằng số học
này là kiểm soát riêng lẻ quá trình cập nhật trọng số để làm giảm hàm sai số; nếu
không thì giảm dần chúng nếu kết quả cường điệu; hoặc trong trường hợp khi nhiều
bước lặp đều có sự suy giảm hàm sai số dẫn đến bài toán quá hội tụ, thì nên tăng
dần hằng số học lên. Cụ thể nhất, hằng số học nên được cập nhật theo các quy luật
sau:

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 31

⎧ + a, ΔΕ < 0

Δη = ⎨− bη , ΔΕ > 0 (3.18)
⎪ 0,

trong đó:
ΔΕ là độ lệch hàm sai số; a,b là các hằng số dương
Hoặc trong trường hợp dựa trên các bước huấn luyện trước thì:
⎧ + a, D (t = 1)λ (t ) > 0

⎨ − bη (t ), D (t − 1)λ (t ) < 0 (3.19)
⎪ 0,

trong đó:
∂Ε
λ (t ) = (3.20)
∂wij
D (t ) = (1 − c)λ (t ) + cD (t − 1), c ∈ [0,1] là hằng số(3.21)
- Hàm sai số (Cost functions): Trong công thức tính hàm sai số (3.11), thành
phần sai số bình phương (di-yi)2có thể thay thế bởi bất kỳ một hàm F(di,yi) nào khác
sao cho hàm này có thể đạt cực tiểu khi argument của di và yi bằng nhau. Và tương
ứng với hàm sai số mới này, qui luật cập nhật trọng số từ (3.11) đến (3.16) nêu trên
sẽ thay đổi. Tuy nhiên, dễ dàng nhận thấy rằng chỉ có công thức tính δ oi (3.13) và
δ hq (3.16) là thay đổi theo hàm sai số, còn các công thức khác thì hầu như không
thay đổi.
- Động lượng (Momentum): Sự suy giảm gradient có thể sẽ rất chậm nếu hằng
số học η quá lớn. Do đó , phương pháp làm chênh lệch đi khả năng dao động biên
độ nhưng vẫn cho phép sử dụng hằng số học lớn là đưa thêm vào trọng số thành
phần “động lượng” theo công thức sau:
Δw(t ) = −η∇Ε(t ) + αΔw(t − 1) (3.22)
trong đó: α ∈ [0,1] là tham số động lượng và thường chọn giá trị là 0,9.
2. Mạng hồi qui (Recurrent/feedback neural networks)
a. Mạng hồi tiếp đơn lớp (Single-layer feedback networks)
a.1 Mạng Hopfield rời rạc
Mỗi một nút có một tín hiệu vào xj và một ngưỡng θ j , trong đó j=1..n. ngõ ra
của nút thứ j sẽ được nối tới ngõ vào của các nút khác với chính nó. Các liên kết này
mang trọng số wij, với i=1..n và i ≠ j (nghĩa là wii = zero). Hơn nữa, trọng số liên
kết mạng là đối xứng, tức là wij = wji.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 32

Hình 3.8: Cấu trúc của mạng Hopfield

Qui luật cập nhật tại mỗi cực trong mạng Hopfield rời rạc ( là mạng Hopfield
hoạt động với thời gian rời rạc) như sau:
⎡ n ⎤
yi(k+1)= sgn ⎢ ∑w + xi − θ i ⎥ , i = 1,2,…, n
(k )
ij yj (3.23)
⎣ j =1, j ≠1 ⎦
Mạng Hopfield rời rạc có thể tổng quát hóa thành mô hình liên tục khi thời
gian được cho là biến liên tục.
a.2 Mạng Hopfield với bộ nhớ tự kết hợp (Autoassociative memory –
AM): Thuật toán lưu trữ để xác định ma trận trọng số:
p
Wij = ∑x (3.24)
k k
i xj
k =1

Trong đó:
⎧ i≠ j
⎪ w =0
⎪ ii

= ( x1 , x 2 ,...x n ) T
k k k k
⎪ x
⎪⎩ p
Trường hợp xi là vector nhị phân đơn cực, thì xik ∈ {0,1}và quy luật lưu trữ
như sau:

p
wij = ∑ (2 xi − 1)( x j − 1) (3.25)
k k

k =1

với:
⎧ i≠ j

⎩ wii = 0

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 33

a.3 Mạng Hopfield với bộ nhớ 2 chiều kết hợp (Bidirectional associative
memory)
Cũng giống như mạng Hopfield, ta có thể có mạng BAM rời rạc hoặc mạng
BAM liên tục. Sở dĩ có chữ “hai chiều” trong tên gọi mạng là vì có thể dùng mạng
để biến đổi tín hiệu vào thành tín hiệu ra và ngược lại.
Xét mạng BAM rời rạc. Giả sử bộ nhớ neuron được kích hoạt bởi việc đặt một
vector khởi tạo x ở đầu vào của neuron lớp Y, tín hiệu ở đầu ra của lớp Y như sau:
y’ = a(wx) (3.26)
hoặc:
⎡m ⎤
y i = a ⎢∑ wij x j ⎥ với I = 1..n; a là hàm kích hoạt
,
(3.27)
⎣ j =1 ⎦
Đưa vector y’ truyền ngược trở lại neuron lớp X, khi đó tín hiệu đầu ra neuron
lớp X như sau:
x’ = a(WTy’)(2.28) (3.28)
hoặc:
⎡ ,⎤
x j = a ⎢∑ w ji y j ⎥ ,với j = 1..m; a là hàm kích hoạt
,
(3.29)
⎣ ⎦
Tổng quát, ở bước truyền tới và truyền ngược thứ k/2, tín hiệu đầu ra neuron
lớp Y và lớp X lần lượt là:
y(k-1) = a(Wx(k-2)) (3.30)
x(k)=a(WTy(k-1)) (3.31)
xét p cặp vector kết hợp đã được lưu trữ trong BAM:
{(x1,y1), (x2,y2),…, (xp,yp)} (3.32)
k k k k T k k k k T
trong đó x =(x1 ,x2 ,…, xm ) và y =(y1 ,y2 ,…, yn ) là các vector đơn cực và
lưỡng cực. Qui luật học trọng số cho BAM như sau:

⎧ p y k ( x k )T
W = ⎨ ∑kp =1

(3.33)
⎪⎩∑k =1 (2 y − 1)(2 x − 1)
k k T

hoặc:

⎧⎪ ∑ p y pi k x j k
wij = ⎨ k =1 (3.34)
⎪⎩∑k =1 (2 y i − 1)(2 x j − 1)
k k

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 34

Hình 3.9 Cấu trúc của mạng Hopfield với bộ nhớ hai chiều kết hợp (BAM)

b. Mạng hồi qui lan truyền ngược (Recurrent back-propagation networks-


RBP)
Tổng quát, xét mạng n nút với hàm kích hoạt a(.) và trọng số liên kết wij nối từ
nút i đến nút j. trong số các nút này có nút đầu váo nhận tín hiệu vào xi, định nghĩa
xi=o cho các nút không phải đầu vào. Cũng vậy, trong số các nút của mạng ta có nút
đầu ra với giá trị yêu cầu (mẫu) di.
Quá trình kích hoạt tại mỗi nút được mô tả bởi phưong trình vi phân:

τ y *i = − yi + a [∑ w y
j ij j + xi ] (3.35)

trong đó, τ là tỷ lệ thời gian hồi phục. chú ý rằng khi trọng số đối xứng, tức là
wij=wji và wii=0, thì trong mạng qui về mô hình Hopfield. Cho y*i=0, ta có:

yi=a(hi) = a [∑ w y
j j ij + xi ] (3.36)

cũng như các mạng lan truyền ngược khác, hàm sai số trong mạng hồi qui lan
truyền ngược cũng được tối thiểu hóa. Ta có:
n
Ε k = 1 / 2∑ Ε 2 k
k =1

trong dó:

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 35

⎧ d − yk , k
Εk = ⎨ k (3.37)
⎩o,

dùng phương pháp suy giảm gradient, trọng số được cập nhật như sau:

∂Ε ∂y k
Δ w pq = −η = η ∑k Εk (3.38)
∂ w pq ∂ w pq

để ước lựơng ∂y k / ∂w pq , ta vi phân (3.36):

∂y i ⎡ ∂y j ⎤
= a , (hi ) ⎢δ ip y q + ∑ j wij ⎥ (3.39)
∂w pq ⎢⎣ ∂w pq ⎥⎦

và được viết lại:

∂y i
∂w pq
− ∑ j a , (hi ) wij
∂y i
∂w pq
[
=∑ j δ ij − a , (hi ) wij
∂y i
∂w pq
]

= δ ip a , ( hi ) y q (3.40)

trong đó:
⎧1, i = j
δ ij = ⎨ (3.41)
⎩0, i ≠ j

Đơn giản ký hiệu, ta có;

∂y j
∑ L
j ij
∂w pq
= δ ip a , (hi ) y q (3.42)

trong đó:
Lij = δ ij − a , (hi ) wij (3.43)

Như vậy, ta có:

∂y k
= [ L−1 ] kp a , (h p ) y q = ηδ p y q (3.44)
∂w pq

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 36

và qui luật học cho mạng RBP trở thành:

Δw pq = η ∑k Ε k [ L−1 ] kp a , (h p ) y q = ηδ p y q (3.45)

trong đó:
δ p = a , (h p )∑k Ε k [ L−1 ] kp (3.46)
Cùng họ với mạng hồi qui lan truyền ngược vừa nêu, còn có nhiều kiểu mạng
hồi qui/hồi tiếp khác như: Mạng hồi qui một phần (Partially Recurrent networks),
mạng hồi qui hoàn toàn (Fully Recurrent Networks); hoặc mạng với thuật toán học
tăng cường (Reinforced learning).

Hình 3.10 Maïng hoài qui lan truyeàn ngöôïc

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 37

NHAÄN DAÏNG VAÂN TAY


BAÈNG MAÏNG NEURAL

1. Giôùi thieäu
2. Phöông phaùp ñeà nghò
3. Thuaät toaùn huaán luyeän maïng neural

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 38

CHÖÔNG 4:

NHAÄN DAÏNG VAÂN TAY BAÈNG MAÏNG


NEURAL
4.1 GIÔÙI THIEÄU:
Phöông phaùp nhaän daïng vaân tay baèng maïng neural nhaân taïo (Artificial Neural
Network) seõ huaán luyeän maïng neural döïa vaøo caùc maãu döõ lieäu vaøo laø vò trí cuûa
caùc ñieåm ñaëc tröng cuûa aûnh vaân tay. Maïng neural sau khi ñöôïc huaán luyeän seõ
ñöôïc duøng ñeå ñoái saùnh caùc maãu vaân tay caàn nhaän daïng. Löu ñoà thöïc hieän nhö
sau:

Maãu vaân Tieàn Trích Huaán Löu maïng


tay ñeå xöû lyù caùc luyeän neural ñaõ
huaán ñieåm maïng ñöôïc huaán
luyeän ñaëc neural luyeän
tröng

Maãu vaân Tieàn Trích caùc Ñoái saùnh Keát


tay caàn xöû lyù ñieåm ñaëc baèng maïng quaû
ñoái saùnh tröng neural ñaõ nhaän
huaán luyeän daïng

4.2 PHÖÔNG PHAÙP ÑEÀ NGHÒ


1. Löïa choïn maïng söû duïng: moät ngoõ ra hay nhieàu ngoõ ra?
Neáu choïn maïng nhieàu ngoõ ra, moãi ngoõ ra töông öùng vôùi moät maãu thì coù söï
baát caäp:
− Bao nhieâu ngoõ ra thì ñuû?
− Moãi laàn caäp nhaät theâm moät maãu môùi thì phaûi huaán luyeän laïi toaøn maïng.
Vì vaäy, ôû ñaây toâi choïn maïng truyeàn thaúng Perceptron moät ngoõ ra, moãi maïng
töông öùng vôùi moät maãu. Nhö vaäy, khi caàn ñoái saùnh moät maãu ta phaûi so saùnh
maãu ñoù qua taát caû caùc maïng trong cô sôû döõ lieäu. Bôûi vì, vieäc so moät maãu qua
caùc maïng ñôn giaûn vaø nhanh hôn thôøi gian huaán luyeän moät maïng lôùn neân
phöông phaùp naøy khaû thi hôn.
Treân cô sôû löïa choïn maïng nhö vaäy toâi choïn haøm kích hoaït lôùp ra laø haøm
tuyeán tính vaø ñöôïc huaán luyeän veà 0 ñoái vôùi töøng maãu.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 39

2. Xaây döïng taäp maãu ngoõ vaøo.


Ngoõ vaøo cuûa maïng laø vò trí cuûa caùc ñieåm ñaëc tröng. Ñeå xaùc ñònh vò trí cuûa
moät ñieåm ta phaûi coù moät ñieåm goác “töông ñoái” coá ñònh. ÔÛ ñaây, toâi choïn ñieåm
core laøm goác toïa ñoä, bôûi vì ñieåm core luoân toàn taïi vaø töông ñoái coá ñònh trong
aûnh vaân tay.
Vieäc ñoái saùnh baèng maïng neural coù moät nhöôïc ñieåm ñoù laø thöù töï caùc ñieåm
ñaëc tröng khi ñöa vaøo maïng phaûi chính xaùc, chæ caàn sai leäch moät vò trí seõ laøm
sai toaøn boä maïng. Nhöng sai leäch laø khoâng theå traùnh khoûi trong quaù trình xaùc
ñònh caùc ñieåm ñaëc tröng ñoái vôùi caùc aûnh coù chaát löôïng khoâng ñaûm baûo.
Ñeå khaéc phuïc nhöôïc ñieåm naøy, toâi ñeà nghò moät phöông phaùp ñoù laø: khoâng
ñöa tröïc tieáp vò trí cuûa caùc ñieåm minutiae vaøo maïng (ngoaïi tröø ñieåm delta)
maø söû duïng vò trí trung bình coäng cuûa caùc ñieåm minutiae. Cuï theå nhö sau:
− Choïn ñieåm core laøm goác toïa ñoä, khi ñoù ñieåm core seõ chia maët phaúng aûnh
thaønh boán phaàn.
− Trong moãi phaàn tö cuûa maët phaúng aûnh ta tìm vò trí trung bình cuûa caùc
ñieåm minutiae trong phaàn tö ñoù. Boán vò trí trung bình cuûa caùc ñieåm
minutiae ôû boán phaàn tö cuûa maët phaúng aûnh seõ ñöôïc ñöa vaøo taùm ngoõ vaøo
cuûa maïng (söû duïng toïa ñoä decac).
− Ñeå gia taêng ñoä phaân bieät ta coù theå ñöa theâm soá ñieåm minutiae trong moãi
phaàn tö cuûa maët phaúng aûnh vaøo boán ngoõ vaøo khaùc cuûa maïng.

3. Soá lôùp söû duïng


Töø kinh ngieäm vaø thöïc nghieäm söû duïng maïng neural ngöôøi ta nhaän thaáy laø
vieäc söû duïng maïng Perceptron nhieàu hôn hai lôùp laø khoâng caàn thieát. Vì vaäy, ôû
ñaây toâi seõ thöû nghieäm caùc keát quaû ñoái saùnh treân caùc maïng Perceptron moät lôùp
vaø hai lôùp.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 40

4.3 THUAÄT TOAÙN HUAÁN LUYEÄN MAÏNG NEURAL


Thuaät toaùn huaán luyeän ñöôïc söû duïng laø thuaät toaùn lan truyeàn ngöôïc suy giaûm sai
soá gradient.
1. Maïng Perceptron moät lôùp

X1
W1

X2 Y
W2

.
.
.
WN
XN

Hình 4.1: Moâ hình maïng Perceptron moät lôùp

Trong ñoù:

⎡ X1 ⎤
⎢X ⎥
X = ⎢ 2 ⎥ Vector tín hieäu vaøo
⎢ ⎥
⎢ ⎥
⎣X N ⎦

⎡ W1 ⎤
⎢W ⎥
W = ⎢ 2 ⎥ Vector troïng soá
⎢ ⎥
⎢ ⎥
⎣WH ⎦

Y : tín hieäu ra

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 41

Thuaät toaùn huaán luyeän:

Böôùc 1:
Khôûi ñoäng trò W(0)
Choïn haèng soá hoïc η
Böôùc 2: lan truyeàn thuaän
Tính:
Y(k) = net(k) = WT.X(k)
Böôùc 3: lan truyeàn ngöôïc
Tính:
∂a (net (k ))
W (k + 1) = W (k ) + η[ D(k ) − Y (k )] (a(.) laø haøm kích hoaït)
∂net (k )
Böôùc 4: laëp laïi böôùc 3 K laàn (moät epoch), vôùi K laø soá maãu döõ lieäu vaøo.
Böôùc 5: tính J ( K ) = 1 2 [D( K ) − Y ( K )]2
Böôùc 6: kieåm tra neáu J(K) ñuû beù:
Ñuû beù: keát thuùc (löu W)
Chöa: laëp laïi böôùc 1 vôùi caùc giaù trò khôûi ñoäng W(0) ñöôïc caäp nhaät töø
böôùc 4

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 42

2. Maïng Perceptron hai lôùp (moät lôùp aån vaø moät lôùp ra)
Maïng Perceptron hai lôùp ( vôùi moät lôùp aån vaø moät lôùp ra), ñöôïc huaán luyeän
baèng giaûi thuaät lan truyeàn ngöôïc suy giaûm sai soá gradient. Haøm kích hoaït lôùp
aån ñöôïc choïn laø haøm sigmoid, haøm kích hoaït lôùp ra laø haøm tuyeán tính.
X1
V11
Z1
V21
VH1 W1

X2 V12 Z2
Y
V22 W2
VH2
. .
.
. . ZH
V1N WH
.
V2N
.
XN
VHN

Hình 4.2: Moâ hình maïng Perceptron hai lôùp (moät lôùp aån vaø moät lôùp ra)
Trong ñoù:
⎡ X1 ⎤
⎢X ⎥
X = ⎢ 2 ⎥ Vector tín hieäu vaøo
⎢ ⎥
⎢ ⎥
⎣X N ⎦
⎡ Vq1 ⎤
⎢V ⎥
Vq = ⎢ ⎥ Caùc vector troïng soá lôùp aån ( q = 1,..., H )
q2

⎢ ⎥
⎢ ⎥
⎢⎣VqN ⎥⎦
⎡ W1 ⎤
⎢W ⎥
W = ⎢ 2 ⎥ Vector troïng soá lôùp ra
⎢ ⎥
⎢ ⎥
⎣WH ⎦
⎡ Z1 ⎤
⎢Z ⎥
Z = ⎢ 2 ⎥ Vector tín hieäu ra lôùp aån.
⎢ ⎥
⎢ ⎥
⎣Z H ⎦
Y : tín hieäu ra

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 43

Thuaät toaùn huaán luyeän:

Böôùc 1:
Khôûi ñoäng trò W(0), Vq(0)
Choïn haèng soá hoïc η
Böôùc 2: lan truyeàn thuaän
Tính:
Zq(k) = sigmoid(netq) = sigmoid(VqT.X(k))
Y(k) = neto = WT.Z(k)
Böôùc 3: lan truyeàn ngöôïc
Tính:
δ O = D(k ) − Y (k )
W (k + 1) = W (k ) + η .δ O .Z (k )
e − netq
δ hq = δ O .Wq .
(1 + e − netq ) 2
Vq (k + 1) = Vq (k ) + η .δ hq . X (k )
Böôùc 4: laëp laïi böôùc 3 K laàn (moät epoch), vôùi K laø soá maãu döõ lieäu vaøo.
Böôùc 5: tính J ( K ) = 1 2 [D( K ) − Y ( K )]2
Böôùc 6: kieåm tra neáu J(K) ñuû beù:
Ñuû beù: keát thuùc (löu W, Vq)
Chöa: laëp laïi böôùc 1 vôùi caùc giaù trò khôûi ñoäng W(0), Vq(0) ñöôïc caäp nhaät
töø böôùc 4

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 44

THÖÏC NGHIEÄM
VAØ KEÁT QUAÛ

1. Chöông trình
2. Löu ñoà giaûi thuaät
3. Keát quaû
4. Ñaùnh giaù keát quaû

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 45

CHÖÔNG 5:

THÖÏC NGHIEÄM VAØ KEÁT QUAÛ


5.1 CHÖÔNG TRÌNH
Chöông trình minh hoïa ñöôïc thöïc hieän baèng ngoân ngöõ MATLAB 7.0 söû duïng
phöông phaùp ñoái saùnh ñöôïc giôùi thieäu trong phaàn 2.4 . Giao dieän nhö sau:

Hình 5.1: Giao dieän cuûa chöông trình thu thaäp, löu tröõ vaø ñoái saùnh vaân tay.

Söû duïng:
¾ Ban ñaàu khi chöa coù döõ lieäu trong database, choïn “Laáy maãu”. Sau ñoù, click
vaøo nuùt “maãu” vaø choïn laàn löôït ba aûnh vaân tay cuûa cuøng moät ngoùn tay ñeå
laøm maãu ñoái saùnh. Tieáp theo, nhaäp caùc thoâng tin caù nhaân cuûa ngöôøi coù maãu
vaân tay ñoù vaø click “OK”.
¾ Sau ñoù, khi caàn ñoái saùnh moät daáu vaân tay naøo ñoù choïn “ñoái saùnh” vaø click
vaøo nuùt “maãu” ñeå choïn aûnh vaân tay caàn ñoái saùnh. Neáu maãu naøy gioáng vôùi
maãu naøo coù trong database thì thoâng tin caù nhaân cuûa ngöôøi coù daáu vaân tay
ñoù seõ ñöôïc thoâng baùo .

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 46

5.2 LÖU ÑOÀ GIAÛI THUAÄT


1. Löu ñoà

AÛnh vaøo

Xaùc ñònh tröôøng Laøm noåi aûnh vaøo


ñònh höôùng

Tính chæ soá Tìm caùc ñieåm


Poincare minutiae

Tìm caùc ñieåm core


vaø delta

Xaùc ñònh vò trí cuûa caùc


ñieåm delta vaø minutiae döïa
vaøo ñieåm goác core

Löu vaøo cô sôû döõ lieäu

Hình 5.2: Löu ñoà giaûi thuaät trích caùc ñieåm ñaëc tröng

Taát caû thuaät toaùn ñöôïc neâu ôû löu ñoà hình 5.2 ñöôïc thöïc hieän baèng haøm
feature_extracting.m (phuï luïc).

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 47

AÛnh vaøo

Trích caùc ñieåm


ñaëc tröng

Xaây döïng taäp


maãu ngoõ vaøo

Huaán luyeän
maïng neural

Löu maïng
neural vaøo cô sôû
döõ lieäu

Hình 5.3: Löu ñoà giaûi thuaät quaù trình laáy maãu

Caùc thuaät toaùn ôû löu ñoà treân ñöôïc thöïc hieän baèng caùc haøm sau (phuï luïc):
- neural_template.m : xaây döïng maãu ngoõ vaøo cho maïng neural
- training1.m : huaán luyeän maïng Perceptron moät lôùp
- training2.m : huaán luyeän maïng Perceptron hai lôùp

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 48

AÛnh vaøo

Trích caùc ñieåm


ñaëc tröng

Xaây döïng taäp


maãu ngoõ vaøo

Ñuùng Ñoái saùnh qua taát caû


caùc maïng trong cô sôû
döõ lieäu

Loãi

FAR 
FRR 

Hình 5.4: Löu ñoà giaûi thuaät quaù trình ñoái saùnh

Vieäc ñoái saùnh ñöôïc thöïc hieän baèng caùch cho maãu caàn ñoái saùnh qua caùc maïng
ñaõ ñöôïc huaán luyeän trong cô sôû döõ lieäu vaø so saùnh ngoõ ra Y vôùi ngöôõng T:
- Y < T : hai maãu gioáng nhau
- Y > T : hai maãu khaùc nhau
Caùc thuaät toaùn ñoái saùnh vaø thu thaäp caùc loãi FAR vaø FRR ñöôïc thöïc hieän baèng
caùc haøm thuthap1.m hoaëc thuthap2.m (phuï luïc).

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 49

2. Ví duï minh hoïa


Hình 5.5 cho thaáy caùc ñieåm ñaëc tröng (ñieåm maøu ñoû laø core, ñieåm maøu tím laø
delta vaø caùc ñieåm maøu xanh laø minutiae) cuûa hai daáu vaân tay khaùc nhau cuûa
cuøng moät ngoùn tay. Caùc ñieåm ñaëc tröng naøy ñöôïc trích theo thuaät toaùn ñöôïc
neâu ôû löu ñoà hình 5.2 vaø baèng haøm feature_extracting.m (phuï luïc).

Hình 5.5: Caùc ñieåm ñaëc tröng cuûa hai daáu vaân tay khaùc nhau cuûa cuøng moät
ngoùn tay

Sau ñaây laø hai maãu ngoõ vaøo (moät duøng ñeå huaán luyeän vaø moät duøng ñeå ñoái
saùnh) töông öùng vôùi hai daáu vaân tay treân. Hai maãu naøy ñöôïc xaây döïng theo
phöông phaùp ñöôïc giôùi thieäu ôû phaàn 4.2.
Theo quan saùt ta thaáy thöôøng treân daáu vaân tay chæ coù theå coù moät hoaëc hai
ñieåm delta (moät beân phaûi vaø moät beân traùi) hoaëc khoâng coù ñieåm delta naøo. Vì
vaäy, boán giaù trò ñaàu tieân cuûa maãu ngoõ vaøo laàn löôït laø vò trí cuûa hai ñieåm delta
beân phaûi vaø beân traùi neáu coù (giaù trò 300 hoaëc -300 cho bieát khoâng coù ñieåm
delta ôû vò trí ñoù). Caùc giaù trò tieáp theo laàn löôït laø vò trí trung bình cuûa caùc

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 50

ñieåm minutiae vaø soá ñieåm minutiae ôû boán phaàn tö cuûa maët phaúng aûnh (nhö ñaõ
giôùi thieäu ôû phaàn 4.2). Nhö vaäy, coù taát caû 16 ngoõ vaøo.
mau1 =
300.0000
300.0000
109.0000
-65.0000
101.8667
49.6667
15.0000
91.1000
49.6000
10.0000
20.3733
9.9333
5.0000
93.8000
57.2000
5.0000

mau2 =
300.0000
300.0000
109.0000
-65.0000
105.8000
50.2667
15.0000
97.1000
48.9000
10.0000
21.1600
10.0533
5.0000
89.2000
58.6000
5.0000

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 51

Vector troïng soá cuûa maïng Perceptron moät lôùp töông öùng vôùi maãu 1, ñöôïc
huaán luyeän vôùi haèng soá hoïc η = 10 −7 vaø sai soá cho pheùp ε = 10 −4 nhö sau:

W=

Columns 1 through 7

-0.2603 -0.2603 0.8691 0.1781 -0.0223 0.9404 0.0820

Columns 8 through 14

-0.0094 0.9404 0.0880 0.0755 0.9881 -0.1060 -0.2126

Columns 15 through 16

-0.1687 -0.1060

vaø giaù trò ngoõ ra khi cho laàn löôït hai maãu treân qua maïng ñöôïc huaán luyeän:

>> Y1 = W*mau1

Y1 =

0.0139

>> Y2 = W*mau2

Y2 =

0.6955

Nhö vaäy, sai soá ñoái saùnh seõ laø Y2 – Y1 = 0.6816. Do ñoù, neáu choïn ngöôõng
T>0.6816 thì hai maãu naøy laø gioáng nhau, ngöôïc laïi hai maãu naøy laø khaùc nhau.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 52

5.3 KEÁT QUAÛ


Caùc keát quaû ñöôïc thu thaäp ôû ñaây ñöôïc thöïc hieän treân moät cô sôû döõ lieäu goàm 200
aûnh vaân tay laáy töø 50 ngoùn tay khaùc nhau, moãi ngoùn 4 aûnh (50 x 4 = 200). Ñoä
phaân giaûi cuûa moãi aûnh laø 450 dpi. Töø 4 aûnh cuûa moãi vaân tay, 1 aûnh ñöôïc laáy laøm
maãu huaán luyeän maïng, 3 aûnh laøm maãu ñoái saùnh.
Taát caû caùc thuaät toaùn ñöôïc thöïc hieän baèng ngoân ngöõ MATLAB 7.0 treân maùy PC
Pentium IV 2.6 GHz 256 MB RAM.
Hình 5.6 cho thaáy caùc keát quaû ñoái saùnh khi söû duïng maïng Perceptron moät lôùp.
Ñoà thò treân bieåu dieãn caùc tyû leä (%) loãi chaáp nhaän nhaàm FAR, töø choái nhaàm FRR
vaø toång SUM = FAR + FRR theo ngöôõng T (giaù trò sai leäch ôû ngoõ ra maïng
neural so vôùi giaù trò mong muoán).

Hình 5.6 Keát quaû ñoái saùnh khi söû duïng maïng Perceptron moät lôùp.

Ta thaáy, khi taêng ngöôõng T thì FAR taêng, coøn FRR giaûm vaø ngöôïc laïi. Tuøy theo
yeâu caàu veà ñoä baûo maät cuûa heä thoáng ta coù theå choïn giaù trò ngöôõng T thích hôïp.
Ví duï, khi heä thoáng yeâu caàu ñoä baûo maät cao ta choïn giaù trò T nhoû. Khi ñoù, loãi
nhaän nhaàm seõ nhoû nhöng loãi töø choái nhaàm seõ lôùn coù theå gaây phieàn haø cho ngöôøi
söû duïng.
Ñeå coù ñaùnh giaù toång quaùt hôn ta duøng toång SUM = FAR + FRR, ñaây laø tyû leä
phaàn traêm loãi xaûy ra treân heä thoáng. Roõ raøng, moät heä thoáng toát phaûi coù SUM nhoû
(trong tröôøng hôïp naøy SUMmin = 24%)

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 53

Hình 5.7 laø caùc keát quaû ñoái saùnh khi söû duïng maïng Perceptron hai lôùp, hình 5.8
laø caùc keát quaû ñoái saùnh söû duïng phöông phaùp ñöôïc giôùi thieäu ôû phaàn 2.4

Hình 5.7 Keát quaû ñoái saùnh khi söû duïng maïng Perceptron hai lôùp.

Hình 5.8: Keát quaû ñoái saùnh söû duïng phöông phaùp ñöôïc giôùi thieäu ôû phaàn 2.4

Baûng 5.1 toång hôïp moät soá keát quaû thu thaäp ñöôïc töø caùc phöông phaùp ñoái saùnh
baèng maïng Perceptron moät lôùp, hai lôùp vaø phöông phaùp giôùi thieäu ôû phaàn 2.4
(taïm goïi laø phöông phaùp tröïc tieáp). Thôøi gian thu thaäp trong baûng döôùi chöa tính
thôøi gian trích caùc ñieåm ñaëc tröng (khoaûng 120s)

Toång loãi nhoû Thôøi gian thu thaäp moät Thôøi gian ñoái saùnh moät maãu
nhaát (%) maãu döõ lieäu (s) qua taäp döõ lieäu 50 maãu (s)
Moät lôùp 24 0.143 0.1327
Hai lôùp 22 2.175 0.2804
Tröïc tieáp 18 0 0.4764

Baûng 5.1 Moät soá keát quaû toång hôïp töø caùc phöông phaùp ñoái saùnh

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 54

5.4 ÑAÙNH GIAÙ KEÁT QUAÛ


− Phöông phaùp ñoái saùnh baèng maïng neural ñöôïc ñeà nghò coù hieäu quaû khi soá
ñieåm minutiae ñuû lôùn vì phöông phaùp coäng trung bình coù taùc duïng giaûm
sai soá khi soá phaàn töû coäng nhieàu (lôùn hôn 30) vaø soá ñieåm loãi nhoû (nhoû hôn
10%).
− Thôøi gian thu thaäp maãu döõ lieäu baèng phöông phaùp tröïc tieáp baèng 0 (khoâng
keå thôøi gian trích caùc ñieåm ñaëc tröng) bôûi vì phöông phaùp naøy khoâng caàn
phaûi huaán luyeän maïng neural. Töø baûng 5.1 ta thaáy thôøi gian huaán luyeän
maïng Perceptron hai lôùp lôùn hôn nhieàu so vôùi maïng moät lôùp, do thuaät toaùn
huaán luyeän maïng hai lôùp phöùc taïp hôn vaø thôøi gian hoäi tuï laâu hôn. Tuy
nhieân, maïng hai lôùp cho keát quaû ñoái saùnh toát hôn vaø oån ñònh hôn maïng
moät lôùp.
− Phöông phaùp tröïc tieáp coù taùc duïng söûa loãi toát hôn neân coù taùc duïng toát khi
chaát löôïng aûnh vaân tay khoâng ñaûm baûo (nhaát laø caùc aûnh ñöôïc laáy töø möïc).
Nhöng vieäc ñoái saùnh phöùc taïp hôn, do ñoù thôøi gian ñoái saùnh laâu hôn.
− Caùc phöông phaùp ñaõ ñöôïc giôùi thieäu ñeàu coù öu ñieåm vaø nhöôïc ñieåm cuûa
noù. Tuøy theo yeâu caàu, ñieàu kieän hieän coù vaø muïc ñích söû duïng ta coù theå
choïn phöông phaùp phuø hôïp ñeå söû duïng.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 55

HÖÔÙNG PHAÙT TRIEÅN


CUÛA ÑEÀ TAØI

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 56

CHÖÔNG 6:

HÖÔÙNG PHAÙT TRIEÅN CUÛA ÑEÀ TAØI


¾ Hieän taïi, ñeà taøi chæ nghieân cöùu vaø thöû nghieäm maïng Perceptron. Trong töông
lai coù theå nghieân cöùu vaø thöû nghieäm treân caùc maïng khaùc, chaúng haïn nhö
maïng neural môø .v.v.
¾ Coù theå nghieân cöùu keát hôïp theâm caùc ñaëc ñieåm khaùc cuûa aûnh vaân tay ngoaøi
caùc ñieåm ñaëc tröng nhö: Orientation field, Density map . . . ñeå gia taêng hieäu
quaû ñoái saùnh.
¾ Thuaät toaùn laøm noåi aûnh vaân tay caàn ñöôïc nghieân cöùu theâm phöông phaùp löïa
choïn caùc thoâng soá T, σx, σy ñeå caûi thieän hieäu quaû cuûa vieäc loïc.
¾ Caùc keát quaû treân ñöôïc thu thaäp treân moät cô sôû döõ lieäu coøn khieâm toán (50).
Neáu coù ñieàu kieän coù theå thöû nghieäm treân caùc taäp maãu lôùn hôn (100 – 200).

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 57

PHUÏ LUÏC
1. Haøm orientation.m

function O = orientation(I,R,Wo)
% Ham tim truong dinh huong cua anh I
% Wo (le): kich thuoc cua so xem xet;

I=double(I);
[m,n]=size(I);
O(1:m,1:n)=pi;
[Gy,Gx]=gradient(I);
for i=(Wo+1)/2:m-(Wo+1)/2
for j=(Wo+1)/2:n-(Wo+1)/2
if R(i,j)==0
A=0;
B=0;
for h=i-(Wo-1)/2:i+(Wo-1)/2
for k=j-(Wo-1)/2:j+(Wo-1)/2
A=A-Gx(h,k)*Gy(h,k);
B=B+Gx(h,k)^2-Gy(h,k)^2;
end;
end;
O(i,j)=atan2(2*A,B)/2;
end;
end;
end;

2. Haøm poincare.m

function P = poincare(O,N,i,j)
% Ham tinh chi so poincare de xet diem Singularity tai diem (i,j)
% O: Truong dinh huong cua anh
% N (le): Kich thuoc "duong cong so" (curve) xem xet

a=(N-1)/2;
d=0;
do=O(i-a,j-a);
for k=j-a+1:j+a
delta=O(i-a,k)-do;
if delta<-pi/2
delta=pi+delta;
elseif delta>pi/2
delta=delta-pi;
end;
d=d+delta;
do=O(i-a,k);
end;
for h=i-a+1:i+a
delta=O(h,j+a)-do;
if delta<-pi/2
delta=pi+delta;
elseif delta>pi/2
delta=delta-pi;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 58

end;
d=d+delta;
do=O(h,j+a);
end;
for k=j+a-1:-1:j-a
delta=O(i+a,k)-do;
if delta<-pi/2
delta=pi+delta;
elseif delta>pi/2
delta=delta-pi;
end;
d=d+delta;
do=O(i+a,k);
end;
for h=i+a-1:-1:i-a
delta=O(h,j-a)-do;
if delta<-pi/2
delta=pi+delta;
elseif delta>pi/2
delta=delta-pi;
end;
d=d+delta;
do=O(h,j-a);
end;
P=round(d*180/pi);

3. Haøm singularity.m

function [core delta] = singularity(R,O,N1,N2)


% Ham tim cac diem Singularity tren anh van tay
% core: Vi tri cua diem core
% delta: Vi tri tuong doi cua diem delta so voi diem core (toa do decac)
% R: Mat na vung van tay (region mask)
% O: Truong dinh huong cua anh van tay
% N1 (le): Kich thuoc "duong cong so" (curve) xem xet (theo phuong phap
% poincare) de tim diem core
% N2 (le): Kich thuoc "duong cong so" (curve) xem xet (theo phuong phap
% poincare) de tim diem delta

[m n]=size(O);
S1(1:m,1:n)=0;
S2(1:m,1:n)=0;
%---------- Tim tat ca cac diem singularity (co the co diem loi) ----------
for i=N1+1:m-N1
for j=N1+1:n-N1
if (R(i-N1,j)==0)&(R(i+N1,j)==0)&(R(i,j-N1)==0)&(R(i,j+N1)==0)
P=poincare(O,N1,i,j);
if (P==360)|(P==180)
S1(i,j)=1; % Whorl or loop
end;
end;
end;
end;

for i=N2+1:m-N2

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 59

for j=N2+1:n-N2
if (R(i-N2,j)==0)&(R(i+N2,j)==0)&(R(i,j-N2)==0)&(R(i,j+N2)==0)
P=poincare(O,N2,i,j);
if P==-180
S2(i,j)=1; % Delta
end;
end;
end;
end;

%-------------------------- Tim diem core ---------------------------------


core=0.4;
i_core=[];
j_core=[];
for i=(N1+1)/2:m-(N1-1)/2
for j=(N1+1)/2:n-(N1-1)/2
S1_sub=S1(i-(N1-1)/2:i+(N1-1)/2,j-(N1-1)/2:j+(N1-1)/2);
if (mean(mean(S1_sub))>=core)
i_core=[i_core i];
j_core=[j_core j];
end;
end;
end;
i_core=round(mean(i_core));
j_core=round(mean(j_core));
core=[i_core j_core];

%-------------------- Tim diem delta ben phai (neu co) --------------------


delta=0.5;
i_delta=0;
j_delta=0;
for i=i_core+(N2+1)/2:m-(N2-1)/2
for j=j_core+(N2+1)/2:n-(N2-1)/2
S2_sub=S2(i-(N2-1)/2:i+(N2-1)/2,j-(N2-1)/2:j+(N2-1)/2);
if (mean(mean(S2_sub))>delta)
delta=mean(mean(S2_sub));
i_delta=i;
j_delta=j;
end;
end;
end;
delta_right1=300;
delta_right2=300;
if (i_delta~=0)&(j_delta~=0)
delta_right1=i_delta-i_core;
delta_right2=j_delta-j_core;
end;
delta_right=[delta_right1;delta_right2;0];

%-------------------- Tim diem delta ben trai (neu co)---------------------


delta=0.5;
i_delta=0;
j_delta=0;
for i=i_core+(N2+1)/2:m-(N2-1)/2
for j=(N2+1)/2:j_core-(N2-1)/2
S2_sub=S2(i-(N2-1)/2:i+(N2-1)/2,j-(N2-1)/2:j+(N2-1)/2);

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 60

if (mean(mean(S2_sub))>delta)
delta=mean(mean(S2_sub));
i_delta=i;
j_delta=j;
end;
end;
end;
delta_left1=300;
delta_left2=-300;
if (i_delta~=0)&(j_delta~=0)
delta_left1=i_delta-i_core;
delta_left2=j_delta-j_core;
end;
delta_left=[delta_left1;delta_left2;0];

%--------------------------------------------------------------------------
delta=[delta_right delta_left];

4. Haøm minutiae.m

function R_minutiae = minutiae(I,R,core)


% Ham tim cac diem dac trung cua anh van tay I
% v: buoc nhay cua is, js
% sigma: 1/2 be rong van
% T: anh sau khi da giac hoa cua I
% T1: ma tran chua cac gia tri cua phuong tiep tuyen, tuong ung voi cac
% duong van sau khi da giac hoa.
% T2: ma tran chua cac gia tri cua phuong tiep tuyen tai cac diem dac trung

v=4;
sigma=5;
I=255-double(I);
[m n]=size(I);
T(1:m,1:n)=0;
for is=26:v:m-25
for js=26:v:n-25
if ((is>core(1)-20)&(is<core(1)+20)&(js>core(2)-15)&(js<core(2)+15))|(R(is,js)==255)
else
[ic jc]=ridgenearest(I,is,js,sigma);
label=true;
if R(ic,jc)==255
label=false;
else
for i=ic-4:ic+4
for j=jc-4:jc+4
if T(i,j)==255
label=false;
end;
end;
end;
end;
if label
[T R]=ridgefollowing(I,T,R,ic,jc,core,sigma,2.4);
[T R]=ridgefollowing(I,T,R,ic,jc,core,sigma,-2.4);
end;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 61

end;
end;
end;
R_minutiae=R;

%--------------------------------------------------------------------------
function [T,R] = ridgefollowing(I,T,R,ic,jc,core,sigma,muy)
% Ham do theo duong van tay
% muy: buoc do

[m n]=size(I);
io=ic;
jo=jc;
if muy>0
object=0;
muyO=muy;
else
object=pi;
muyO=-muy;
muy=0;
end;
object1=0;
phiOO=tangentDir(I,io,jo,9);
phiO=phiOO+object;
esc=true;
while (esc)
it=round(io+muy*sin(phiO));
jt=round(jo+muy*cos(phiO));
muy=muyO;
if ((it>26)&(it<m-25)&(jt>26)&(jt<n-25))&(R(it,jt)~=255)
if (it>core(1)-20)&(it<core(1)+20)&(jt>core(2)-15)&(jt<core(2)+15)
R(it,jt)=-3; % Diem ngat do cham vao vung core
esc=false;
else
phit=tangentDir(I,it,jt,9);
[In in jn]=localmax(I,it,jt,phit,sigma);
if (io~=ic)&(jo~=jc)&(in==io)&(jn==jo)
esc=false;
else
phinn=tangentDir(I,in,jn,9);
if abs(phinn-phiOO)>5*pi/6 % Duong van doi huong tu 90 do
if phiO>pi/2 % sang -90 do hoac nguoc lai
object1=0;
else
object1=pi;
end;
object=0;
end;
phin=phinn+object+object1;
[T R esc]=stopcriteria(I,T,R,In,in,jn,phin);
io=in;
jo=jn;
phiOO=phinn;
phiO=phin;
end;
end;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 62

else
esc=false;
end;
end;

%--------------------------------------------------------------------------
function [ic,jc] = ridgenearest(I,is,js,sigma)
% Ham xac dinh diem cuc dai cuc bo (ic,jc) gan (is,js) nhat

phiC=tangentDir(I,is,js,9);
i1=round(is-(sigma-3)*cos(phiC+pi/2));
j1=round(js-(sigma-3)*sin(phiC+pi/2));
[Ic1 ic1 jc1]=localmax(I,i1,j1,phiC,sigma);
i2=round(is+(sigma-3)*cos(phiC+pi/2));
j2=round(js+(sigma-3)*sin(phiC+pi/2));
[Ic2 ic2 jc2]=localmax(I,i2,j2,phiC,sigma);
d1=(ic1-is)^2+(jc1-js)^2;
d2=(ic2-is)^2+(jc2-js)^2;
if d1<d2
ic=ic1;
jc=jc1;
else
ic=ic2;
jc=jc2;
end;

%--------------------------------------------------------------------------
function [T,R,esc] = stopcriteria(I,T,R,In,in,jn,phin)
% Ham dieu kien dung cua thuat toan
% Ham nay se xet xem diem (in,jn) voi phuong tiep tuyen la phin co thoa
% dieu kien dung cua thuat toan khong.
% phiO: phuong tiep tuyen cua diem (io,jo) lien truoc diem (in,jn).

esc=true;
phin=phin*180/pi;
I_nguong=20;
if ((phin>-90)&(phin<=-67.5))|((phin>247.5)&(phin<=270))
case_phin=1;
elseif (phin>-67.5)&(phin<=-22.5)
case_phin=2;
elseif (phin>-22.5)&(phin<=22.5)
case_phin=3;
elseif (phin>22.5)&(phin<=67.5)
case_phin=4;
elseif (phin>67.5)&(phin<=112.5)
case_phin=5;
elseif (phin>112.5)&(phin<=157.5)
case_phin=6;
elseif (phin>157.5)&(phin<=202.5)
case_phin=7;
else
case_phin=8;
end;
%--------------------------------------------------------------------------
switch case_phin
case 1

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 63

if T(in-1,jn)==255
label=true;
for i=in-6:in+4
for j=jn-4:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2; % Mot diem minutae loi da duoc phat hien
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2; % Mot diem re nhanh
end;
esc=false;
else
for i=in-1:in+1
for j=jn-1:jn+1
T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-6:in+4
for j=jn-4:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label
R(in,jn)=1; % Mot diem ket thuc
end;
esc=false;
end;
end;
case 2
if T(in-1,jn+1)==255
label=true;
for i=in-6:in+4
for j=jn-4:jn+6
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2;
end;
esc=false;
else
for a=-1:1
for b=-1:1
i=in-a+b;
j=jn-a-b;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 64

T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-6:in+4
for j=jn-4:jn+6
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label
R(in,jn)=1;
end;
esc=false;
end;
end;
case 3
if T(in,jn+1)==255
label=true;
for i=in-4:in+4
for j=jn-4:jn+6
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2;
end;
esc=false;
else
for i=in-1:in+1
for j=jn-1:jn+1
T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-4:in+4
for j=jn-4:jn+6
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label
R(in,jn)=1;
end;
esc=false;
end;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 65

end;
case 4
if T(in+1,jn+1)==255
label=true;
for i=in-4:in+6
for j=jn-4:jn+6
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2;
end;
esc=false;
else
for a=-1:1
for b=-1:1
i=in-a+b;
j=jn-a-b;
T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-4:in+6
for j=jn-4:jn+6
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label
R(in,jn)=1;
end;
esc=false;
end;
end;
case 5
if T(in+1,jn)==255
label=true;
for i=in-4:in+6
for j=jn-4:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2;
end;
esc=false;
else

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 66

for i=in-1:in+1
for j=jn-1:jn+1
T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-4:in+6
for j=jn-4:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label
R(in,jn)=1;
end;
esc=false;
end;
end;
case 6
if T(in+1,jn-1)==255
label=true;
for i=in-4:in+6
for j=jn-6:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2;
end;
esc=false;
else
for a=-1:1
for b=-1:1
i=in-a+b;
j=jn-a-b;
T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-4:in+6
for j=jn-6:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 67

R(in,jn)=1;
end;
esc=false;
end;
end;
case 7
if T(in,jn-1)==255
label=true;
for i=in-4:in+4
for j=jn-6:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2;
end;
esc=false;
else
for i=in-1:in+1
for j=jn-1:jn+1
T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-4:in+4
for j=jn-6:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label
R(in,jn)=1;
end;
esc=false;
end;
end;
case 8
if T(in-1,jn+1)==255
label=true;
for i=in-6:in+4
for j=jn-6:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if (label)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)&(R(in,jn+20)~=255)
R(in,jn)=2;
end;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 68

esc=false;
else
for a=-1:1
for b=-1:1
i=in-a+b;
j=jn-a-b;
T(i,j)=255;
end;
end;
if (In<I_nguong)&(R(in-20,jn)~=255)&(R(in+20,jn)~=255)&(R(in,jn-20)~=255)
&(R(in,jn+20)~=255)
label=true;
for i=in-6:in+4
for j=jn-6:jn+4
if (R(i,j)==1)|(R(i,j)==2)|(R(i,j)==-2)|(R(i,j)==-3)
R(i,j)=-2;
label=false;
end;
end;
end;
if label
R(in,jn)=1;
end;
esc=false;
end;
end;
end;

%--------------------------------------------------------------------------
function phit = tangentDir(I,it,jt,anpha)
% Ham xac dinh phuong tiep tuyen phit tai diem (it,jt)

I=255-double(I);
A=0;
B=0;
C=0;
for h=it-(anpha-1)/2:it+(anpha-1)/2
for k=jt-(anpha-1)/2:jt+(anpha-1)/2
ahk=(-I(h-1,k-1)+I(h-1,k+1)+I(h+1,k+1)-I(h+1,k-1))/4;
bhk=(-I(h-1,k-1)-I(h-1,k+1)+I(h+1,k+1)+I(h+1,k-1))/4;
A=A+ahk^2;
B=B+bhk^2;
C=C+ahk*bhk;
end;
end;
if C>0
t1=1;
t2=(B-A)/(2*C)-sqrt(((B-A)/(2*C))^2+1);
elseif C<0
t1=1;
t2=(B-A)/(2*C)+sqrt(((B-A)/(2*C))^2+1);
elseif A<=B
t1=1;
t2=0;
else
t1=0;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 69

t2=1;
end;
if t1==0
phit=pi/2;
else
phit=atan(t2/t1);
end;

%--------------------------------------------------------------------------
function [In in jn] = localmax(I,it,jt,phit,sigma)
% Ham xac dinh diem cua dai cuc bo (in,jn) theo phuong vuong goc voi phit

In=0;
d=[1/23 2/23 5/23 7/23 5/23 2/23 1/23];
in=it;
jn=jt;
LM=[];
io=[];
jo=[];
for x=-sigma:sigma
i=round(it+x*sin(phit+pi/2));
j=round(jt+x*cos(phit+pi/2));
% Io la gia tri trung bình cua I(i,j) voi hai diem lan can cua no
Io=(I(round(i-sin(phit)),round(j-cos(phit)))+I(i,j)+...
I(round(i+sin(phit)),round(j+cos(phit))))/3;
LM=[LM Io]; % LM la vetor chua cac gia tri trung binh tren doan sigma
io=[io i];
jo=[jo j];
end;
LMn(1:2*sigma+1)=0;
for x=4:2*sigma-2
LMn(x)=LM(x-3)*d(1)+LM(x-2)*d(2)+LM(x-1)*d(3)+LM(x)*d(4)+...
LM(x+1)*d(5)+LM(x+2)*d(6)+LM(x+3)*d(7);% Loc Gaussian
if In<LMn(x);
in=io(x);
jn=jo(x);
In=LMn(x);
end;
end;

5. Haøm normalize.m

function [I_nor R] = normalize(I,N)


% Ham chuan hoa muc xam cua anh I, dong thoi tim vung co van tay (region
% mask)
% I_nor: anh sau khi chuan hoa muc xam
% R: region mask

I=double(I);
[m n]=size(I);
R(1:m,1:n)=255;
for i=1:N:m-N
for j=1:N:n-N
I_sub=I(i:i+N-1,j:j+N-1);
X=[];

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 70

for x=1:N
X=[X I_sub(x,:)];
end;
M=mean(X);
VAR=sqrt(var(X,1));
if VAR>6
for x=1:N
for y=1:N
if I_sub(x,y)>M
I_sub(x,y)=100+sqrt(100*(I_sub(x,y)-M)^2/VAR);
else
I_sub(x,y)=100-sqrt(100*(I_sub(x,y)-M)^2/VAR);
end;
end;
end;
I(i:i+N-1,j:j+N-1)=I_sub;
R(i:i+N-1,j:j+N-1)=0;
end;
end;
end;
I_nor=uint8(I);

6. Haøm gabor_filter.m

function I_filted = gabor_filter(I,Wg,T,detax,detay)


% Ham loc anh I bang bo loc Gabor doi xung chan
% Wg: Kich thuoc cua bo loc Gabor
% T: Chu ky cua ham cos trong ham loc Gabor
% detax,detay: Cac he so deta cua ham loc Gabor
% I_filted: Anh sau khi loc
%I=normalize(I);

I=double(I);
[m n]=size(I);
for h=11:Wg:m-Wg-9
for k=11:Wg:n-Wg-9
%------ Lay anh con tu anh chinh de loc --------
p=0;
for i=h-10:h+Wg+9
p=p+1;
q=0;
for j=k-10:k+Wg+9
q=q+1;
I_sub(p,q)=I(i,j);
end;
end;
%--------- Doi ra mien tan so va loc ---------
O=tangentDir(I_sub,(Wg+11)/2,(Wg+11)/2,9);
I_sub=fftshift(fft2(I_sub));
G=fftshift(fft2(es_gabor(Wg+20,T,O,detax,detay)));
G=abs(G);
I_sub=abs(ifft2(fftshift(I_sub.*G)));
%------ Thay anh con da duoc loc tro lai anh chinh ------
p=10;
for i=h:h+Wg-1

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 71

p=p+1;
q=10;
for j=k:k+Wg-1
q=q+1;
I(i,j)=I_sub(p,q);
end;
end;
end;
end;
I_filted=uint8(I);
%--------------------------------------------------------------------------
function g = es_gabor(Wg,T,O,detax,detay)
% Ham MTF (modulation transfer function) cua bo loc Gabor

for x=-(Wg-1)/2:(Wg-1)/2
for y=-(Wg-1)/2:(Wg-1)/2
xO=x*cos(O)-y*sin(O);
yO=x*sin(O)+y*cos(O);
g(x+(Wg+1)/2,y+(Wg+1)/2)=exp(-((xO/detax)^2+(yO/detay)^2)/2)*cos(2*pi*xO/T);
end;
end;
%--------------------------------------------------------------------------
function phit = tangentDir(I,it,jt,anpha)
% Ham xac dinh phuong tiep tuyen phit tai diem (it,jt)

A=0;
B=0;
C=0;
for h=it-(anpha-1)/2:it+(anpha-1)/2
for k=jt-(anpha-1)/2:jt+(anpha-1)/2
ahk=(-I(h-1,k-1)+I(h-1,k+1)+I(h+1,k+1)-I(h+1,k-1))/4;
bhk=(-I(h-1,k-1)-I(h-1,k+1)+I(h+1,k+1)+I(h+1,k-1))/4;
A=A+ahk^2;
B=B+bhk^2;
C=C+ahk*bhk;
end;
end;
if C>0
t1=1;
t2=(B-A)/(2*C)-sqrt(((B-A)/(2*C))^2+1);
elseif C<0
t1=1;
t2=(B-A)/(2*C)+sqrt(((B-A)/(2*C))^2+1);
elseif A<=B
t1=1;
t2=0;
else
t1=0;
t2=1;
end;
if t1==0
phit=pi/2;
else
phit=atan(t2/t1);
end;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 72

7. Haøm matching.m

function kq = matching(tem,db_tem,thres_P,thres_O)
% Ham doi sanh mau van tay "tem" (template) voi mot mau van tay trong
% database "db_tem" (database template). Mau phai co cau truc la mot
% mang 2 hang (hang 1 chua cac gia tri bien do, hang 2 chua cac gia tri
% goc cua cac diem dac trung) va N cot (N la so diem dac trung detect
% duoc tren anh van tay). Trong do 2 cot dau tien la vi tri cua hai diem
% delta (neu co).
% thres_po: nguong sai lech ve vi tri (position).
% thres_ph: nguong sai lech ve goc (orientation).
% kq: ket qua doi sanh - ty le phan tram su giong nhau

N_tem=length(tem(1,:));
N_dbtem=length(db_tem(1,:));

N=0; % So diem giong nhau

d_delta_right=sqrt((tem(1,1)-db_tem(1,1))^2+(tem(2,1)-db_tem(2,1))^2);
d_delta_left =sqrt((tem(1,2)-db_tem(1,2))^2+(tem(2,2)-db_tem(2,2))^2);

if d_delta_right<thres_P
N=N+5; % Mot diem delta bang nam lan diem minutiae
end;
if d_delta_left<thres_P
N=N+5; % Mot diem delta bang nam lan diem minutiae
end;

for i=3:N_tem
dmin=500;
jmin=0;
for j=3:N_dbtem
d=sqrt((tem(1,i)-db_tem(1,j))^2+(tem(2,i)-db_tem(2,j))^2);
if dmin>d
dmin=d;
jmin=j;
end;
end;
if (dmin<thres_P)&(abs(tem(3,i)-db_tem(3,jmin))<thres_O)
N=N+1; % Mot diem minutiae giong nhau
db_tem(1,jmin)=0;
db_tem(2,jmin)=0;
end;
end;

kq=N/(N_dbtem+8)*100;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 73

8. Haøm feature_extracting.m
function [template core] = feature_extracting(I)
% Ham xay dung tap mau cho ham matching va ham sampling (vi tri cua cac
% diem dac trung co dang toa do decac)

[J R]=normalize(I(:,:,1),10);
O=orientation(I(:,:,1),R,9);
[core delta]=singularity(R,O,45,25);
J=(255-double(J))/255;
J=sigmoid(J,25,0.4);
J=uint8((1-J)*255);
J=gabor_filter(J,21,6,1,2);
Rm1=minutiae(J,R,core);
%-----------------------------------------------
[J R]=normalize(I(:,:,2),10);
J=(255-double(J))/255;
J=sigmoid(J,25,0.4);
J=uint8((1-J)*255);
J=gabor_filter(J,21,6,1,2);
Rm2=minutiae(J,R,core);
%-----------------------------------------------
[m n]=size(Rm1);
for i=1:m
for j=1:n
if (Rm1(i,j)==1)|(Rm1(i,j)==2)
label=false;
for x=i-7:i+7
for y=j-7:j+7
if (Rm2(x,y)==1)|(Rm2(x,y)==2)
label=true;
Rm2(x,y)=0;
end;
end;
end;
if ~label
Rm1(i,j)=0;
end;
end;
end;
end;
%------------------------------------------------
template=delta;
for i=1:m
for j=1:n
if (Rm1(i,j)==1)|(Rm1(i,j)==2)
mi1=i-core(1);
mi2=j-core(2);i3=0;
mi3=O(i,j)*180/pi;
mi=[mi1;mi2;mi3];
template=[template mi];
end;
end;
end;
%--------------------------------------------------------------------------
function y = sigmoid(x,a,b)
y=1./(1+exp(-a*(x-b)));

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 74

9. Haøm neural_template.m

function neural_tem = neural_template(tem)


% Xay dung mau cho mang neural

N1=0;
N2=0;
N3=0;
N4=0;
mi(1:3,1:4)=0;

m=length(tem(1,:));
for i=3:m
if (tem(1,i)>=0)&(tem(2,i)>=0)
N1=N1+1;
mi(1,1)=mi(1,1)+tem(1,i);
mi(2,1)=mi(2,1)+tem(2,i);
elseif (tem(1,i)>=0)&(tem(2,i)<=0)
N2=N2+1;
mi(1,2)=mi(1,2)+tem(1,i);
mi(2,2)=mi(2,2)+tem(2,i);
elseif (tem(1,i)<=0)&(tem(2,i)<=0)
N3=N3+1;
mi(1,3)=mi(1,3)+tem(1,i);
mi(2,3)=mi(2,3)+tem(2,i);
else
N4=N4+1;
mi(1,4)=mi(1,4)+tem(1,i);
mi(2,4)=mi(2,4)+tem(2,i);
end;
end;
if N1~=0
mi(:,1)=abs(mi(:,1)/N1);
mi(3,1)=N1;
end;
if N2~=0
mi(:,2)=abs(mi(:,2)/N2);
mi(3,2)=N2;
end;
if N3~=0
mi(:,3)=abs(mi(:,1)/N3);
mi(3,3)=N3;
end;
if N4~=0
mi(:,4)=abs(mi(:,4)/N4);
mi(3,4)=N4;
end;
n_tem=[tem(1,1);tem(2,1);tem(1,2);tem(2,2);mi(:,1);mi(:,2);mi(:,3);mi(:,4)];

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 75

10. Haøm training1.m

function W = training1(X,nuy,epsilon,D,n)
% Ham huan luyen mang neural perceptron don lop 16 ngo vao
% Ham tac dong la ham tuyen tinh
% X(N,K): ma tran cua cac vector mau ngo vao (K=1 mau, moi mau co N=16 gia tri)
% nuy: hang so hoc
% epsilon: nguong huan luyen
% W: cac vector trong so duoc huan luyen

%-------------- Tao gia tri khoi dong --------------------------


W=[0.1 0.1 1 0.1 0.1 1 0.1 0.1 1 0.1 0.1 1 -0.1 -0.1 -0.1 -0.1];
%---------------------------------------------------------------
epoch=0;
J=epsilon;
while (epoch<1000)&(J>=epsilon)
%----------Lan truyen thuan--------------------------
net=W*X;
Y=(-1)^n*net;
%----------Lan truyen nguoc--------------------------
W=W+(-1)^n*nuy*(D-Y)*X'; % Ham tac dong tuyen tinh
%----------------------------------------------------
Y=(-1)^n*W*X;
J=((D-Y)^2)/2;
epoch=epoch+1;
end;

11. Haøm training2.m

function [V W] = training(X,H,nuy,epsilon)
% Ham huan luyen mang neural perceptron hai lop (mot lop an va mot lop ra)
% Ham tac dong lop an la ham sigmoid, ham tac dong lop ra la ham tuyen tinh
% X(N,K): ma tran cua cac vector mau ngo vao (K mau, moi mau co N gia tri)
% nuy: hang so hoc
% epsilon: nguong huan luyen
% V,W: cac vector trong so duoc huan luyen cua lop an va lop ra

[N K]=size(X);
%-------------- Tao gia tri khoi dong --------------------------
V(1:H,1:N)=0.1/(N-1);
W(1:H)=1;
for i=1:H
for j=1:N
if j==i
V(i,j)=-0.1;
end;
end;
if mod(i,2)==0 % i chan
W(i)=-1;
end;
end;
%---------------------------------------------------------------
epoch=0;
J=epsilon;

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 76

dnuy=0;
while (epoch<1000)&(J>=epsilon)
nuy=nuy+dnuy;
for k=1:K
%----------Lan truyen thuan--------------------------
for q=1:H
netq=V(q,:)*X(:,k);
z(q)=sigmoid(netq);
end;
%----------Lan truyen nguoc--------------------------
detaO=-W*z'; % Ham tac dong tuyen tinh
W=W+nuy*detaO*z;
for q=1:H
netq=V(q,:)*X(:,k);
detaHq=detaO*W(q)*5*exp(-0.25*netq)/(1+exp(-0.25*netq))^2;
V(q,:)=V(q,:)+nuy*detaHq*X(:,k)';
end;
%----------------------------------------------------
end;
for q=1:H
netq=V(q,:)*X(:,k);
z(q)=sigmoid(netq);
end;
y=W*z'
Jo=J;
J=(y^2)/2;
dJ=J-Jo;
if dJ<0
dnuy=0.01*nuy;
elseif dJ>10
dnuy=-0.1*nuy;
else
dnuy=0;
end;
epoch=epoch+1;
end;

%--------------------------------------------------------------------------
function y = sigmoid(x)
y=20/(1+exp(-0.25*x));

12. Haøm thuthap1.m

function [FAR FRR] = thuthap1(threshold)

False_match=0;
False_non_match=0;
load('E:\neural matching\database\NDB.mat'); %load NDB
for n=1:NDB
filename=['E:\neural matching\template\matching\tem' num2str(n)];
load(filename,'matching_tem'); % load matching_tem
match_min=threshold;
j_min=0;
for j=1:NDB
filename=['E:\neural matching\database\1\db' num2str(j)];

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 77

load(filename); % load W
match=W*matching_tem(:,i);
if match<match_min
match_min=match;
j_min=j;
end;
end;
if j_min~=0
if j_min~=n
False_match=False_match+1;
end;
else
False_non_match=False_non_match+1;
end;
end;
FAR=False_match/(NDB);
FRR=False_non_match/(NDB);

13. Haøm thuthap2.m

function [FAR FRR] = thuthap2(threshold)


False_match=0;
False_non_match=0;
load('E:\neural matching\database\NDB.mat'); %load NDB
for n=1:NDB
filename=['E:\neural matching\template\matching\tem' num2str(n)];
load(filename,'matching_tem'); % load matching_tem
match_min=threshold;
j_min=0;
for j=1:NDB
filename=['E:\neural matching\database\2\db' num2str(j)];
load(filename); % load V,W
for q=1:16
netq=V(q,:,1)*matching_tem(:,i);
z(q)=20/(1+exp(-0.25*netq));
end;
match=W*z';
if match<match_min
match_min=match;
j_min=j;
end;
end;
if j_min~=0
if j_min~=n
False_match=False_match+1;
end;
else
False_non_match=False_non_match+1;
end;
end;
FAR=False_match/(NDB);
FRR=False_non_match/(NDB);

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 78

TAØI LIEÄU THAM KHAÛO

[1] Dario Maio and Davide Maltoni,”Direct Gray-Scale Minutiae Detection In


Fingerprints”, IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. 19, No. 1, January 1997.
[2] Li Xin Wang, “A course in Fuzzy system and control”.
[3] D.Maltoni, D.Maio, A.K.Jain, S.Prabhakar, ”Singularity and Core Detection”
Extract from “Handbook of Fingerprint Recognition”, Springer, New York,
2003.
[4] D.Maltoni, D.Maio, A.K.Jain, S.Prabhakar, ”Minutiae-based Methods”
Extract from “Handbook of Fingerprint Recognition”, Springer, New York,
2003.
[5] Anil Jain, Lin Hong, Ruud Bolle,”On_line Fingerprint Verification”, IEEE
Transactions on Pattern Analysis and Machine Intelligence, Vol. 19, No. 4,
April 1997.
[6] Nguyeãn Kim Saùch, “Xöû lyù aûnh vaø video soá”, NXB Khoa hoïc vaø kyõ thuaät,
1997.
[7] Nguyeãn Quang Thi, “AÙp duïng maïng neuron trong kyõ thuaät xöû lyù aûnh”, Luaän
aùn cao hoïc, 2000.
[8] Jianwei Yang, Lifeng Liu, Tianzi Jiang, Yong fan, “A modified Gabor filter
design method for fingerprint image enhancement”, Pattern Recognition
Letters 24 (2003) 1805-1817.
[9] Jinwei Gu, Jie Zhou, Chunyu Yang, “Fingerprint Recognition by Combining
Global Structure and Local Cues”, IEEE Transactions on Image Processing,
Vol. 15, No. 7, July 2006.
[10] Dingrui Wan, Jie Zhou, “Fingerprint Recognition Using Model-Based
Density Map”, IEEE Transactions on Image Processing, Vol. 15, No. 6, June
2006.
[11] Karthik Nandakumar, Anil K. Jain, “Local Correlation-based Fingerprint
Matching”, To Appear in Proceedings of ICVGIP, Kolkata, December 2004.
[12] Anil Jain, Sharathcha Pankanti, “Fingerprint Classification and Matching”.

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 79

[13] Anil Jain, Lin Hong, Yifei Wan, ”Fingerprint Image Enhancement:
Algorithm and Performance Evaluation ”, IEEE Transactions on Pattern
Analysis and Machine Intelligence, Vol. 20, No. 8, 1998.
[14] Anil Jain, Lin Hong, Sharathcha Pankanti, Ruud Bolle,”Fingerprint
Enhancement”.
[15] D.Maltoni, D.Maio, A.K.Jain, S.Prabhakar, ”Fingerprint Scanners and their
Features” Extract from “Handbook of Fingerprint Recognition”, Springer,
New York, 2003.
[16] “Evaluation of Fingerprint Recognition Technologies – BioFinger”,
www.bsi.bund.dc

Nhaän daïng vaân tay http://www.ebook.edu.vn


Trang 80

LÝ LỊCH TRÍCH NGANG

Họ và tên : Nguyễn Hoàng Huy


Ngày, tháng, năm sinh : 01/11/1978 Nơi sinh: Tp.HCM
Địa chỉ liên lạc : 58/21 ấp 3 xã Phạm Văn Cội huyện Củ Chi Tp.HCM

QUÁ TRÌNH ĐÀO TẠO

Từ tháng 9/1996 đến tháng 11/2001: Học tại Trường Đại Học Bách Khoa, Đại Học
Quốc Gia Tp.HCM.

QUÁ TRÌNH CÔNG TÁC


Từ tháng 5/2006 đến nay, Giảng dạy tại trường Đại Học Lạc Hồng tỉnh Đồng Nai.

Nhaän daïng vaân tay http://www.ebook.edu.vn

You might also like