fingerprint_recognition

๐Ÿƒ CNN์„ ํ™œ์šฉํ•˜์—ฌ ์ง€๋ฌธ ์ธ์‹ Model ํ•™์Šต Mini project

Model Architecture

์•„ํ‚คํ…์ฒ˜

  • ๊ฐ™์€ ๊ฐ€์ค‘์น˜(ํ•˜๋‚˜์˜ Model)์„ ์‚ฌ์šฉํ•˜์—ฌ Input ๊ณผ DB์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•œ๋‹ค
  • Model์˜ Output 2๊ฐœ์˜ vector๋ฅผ subtract ํ•˜์—ฌ Conv, Pool๋กœ ํ•œ๋ฒˆ ๋” ๋ถ„์„์„ ํ•ด์ค€ ๋‹ค์Œ, Flatten๊ณผ Dense, Sigmoid๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ๊ฐ€ ๊ฐ™์€์ง€ ๋‹ค๋ฅธ์ง€ ํŒ๋ณ„

Result

์ง€๋ฌธ

  • ๊ฐ™์€ ๊ฒƒ์€ 1 ๋‹ค๋ฅธ๊ฒƒ์€ 0์œผ๋กœ ๊ฐ’์„ ๋ฐ˜ํ™˜

Dependencies

  • Python
  • numpy
  • keras
  • matplotlib
  • sklearn
  • imgaug

Dataset

Sokoto Coventry Fingerprint Dataset (SOCOFing) https://www.kaggle.com/ruizgara/socofing/home

์ƒˆ๋กœ ๋ฐฐ์šด ์ 

โ˜€๏ธ imgaug library๋ฅผ ์‚ฌ์šฉํ•ด์„œ image๋ฅผ ์‚ด์ง์”ฉ ๋ณ€ํ˜•ํ•˜์—ฌ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค
โ˜๏ธ Sequential API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Model์„ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋Š”๋ฐ, Model์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋งค์šฐ ์‰ฝ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๊ฐ„๋‹จํ–ˆ๋‹ค, ํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ์ˆ˜์‹์„ ๊ฐ€์ง„ Model์€ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
โšก ์ˆ˜ ๋งŽ์€ data๋ฅผ ํ•œ ๋ฒˆ์— Testํ•˜๊ธฐ ์œ„ํ•ด์„œ Data generator๋ฅผ ์ด์šฉํ•ด๋ดค๋‹ค. Sequence๋ผ๋Š” ๊ฒƒ์„ ์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค์ด๊ณ , init, len, getitem, on_epoch_end๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, init๋Š” ์ธ์ž๋ฅผ ๋ฐ›๊ณ , len์€ index๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, getitem์€ indexํšŸ์ˆ˜ ๋งŒํผ ํŠน์ • ๋™์ž‘์„ ํ•˜๋ฉฐ, on_epoch_end๋Š” ๋ฐ˜๋ณต์„ ํ•˜๊ฒŒ ๋„์™€์ค€๋‹ค