Skip to content

DI-LEE/dognose_recognition_management_service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

25 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

dognose_recognition_management_service

dog nose recognition management service application with Siamese Neural Networks and object-detection(deep-learning)

Keywords

  • Siamese Neural Network
  • Object-Detection
  • ๋น„๋ฌธ์ธ์‹
  • ๋ฐ˜๋ ค๊ฒฌ
  • ํŽซ ๋‹ค์ด์–ด๋ฆฌ

็Šฌ์ชฝ์ด ๐Ÿถ

๋น„๋ฌธ ๊ฐœ์ฒด ์ธ์‹ ๊ธฐ์ˆ ์„ ํ†ตํ•œ ๋ฐ˜๋ ค๋™๋ฌผ ๊ด€๋ฆฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

  • ๋™๊ตญ๋Œ€ํ•™๊ต ๋ฏธ๋ž˜์‚ฌํšŒ๋ฅผ ์œ„ํ•œ ์ธ๊ณต์ง€๋Šฅ ์ฑŒ๋ฆฐ์ง€ ์ตœ์šฐ์ˆ˜์ƒ ์ˆ˜์ƒ

Team

์ฒญ์ถ˜ ๊ทธ ์žก์ฑ„

Name Role Contact
์ด๋™์ธ ํŒ€์žฅ, ๊ฐ•์•„์ง€ ์ฝ” ์ถ”์ถœ ๋ฐ ๋น„๋ฌธ ์ธ์‹ ๋ชจ๋ธ ๊ฐœ๋ฐœ ๋ฐ ์ด์‹, ๋ฐ์ดํ„ฐ ๋ผ๋ฒจ๋ง ๋ฐ ์ฆ๊ฐ• [email protected]
์ž„์„œ์—ฐ ๊ธฐํš, ํ•™์Šต ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ๋ผ๋ฒจ๋ง, ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ [email protected]
ํ™ฉ๋‚จ์ฃผ UX/UI ๋””์ž์ธ, ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ [email protected]
์กฐ์„ฑ๋ฏผ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ฐ ์„œ๋ฒ„ ๊ตฌ์ถ• [email protected]

Requirement

Siamese Neural Network

dog nose recognition

  • tensorflow==2.8.0
  • scikit-learn==1.1.3
  • opencv-python==4.6.0
  • imgaug==0.4.0

Object-Detection

crop dog nose

  • pytorch==1.11.0
  • opencv-python==4.6.0

Image Preprocessing

  • opencv-python==4.6.0
  • imgaug==0.4.0

APP

frontend

  • react-native==0.69.6
  • react==18.0.0
  • expo==46.0.13

backend

  • Django==3.2
  • djangorestframework==3.13.1
  • djangorestframework-simplejwt==5.2.1
  • django-allauth==0.51.0
  • Pillow==9.1.1

environment

train environment

  • RTX 3060
  • CUDA Version==11.2
  • cudnn==7.6.5

Motivation

๋น„๋ฌธ์ด๋ž€ ๊ฐ•์•„์ง€ ์ฝ”์˜ ์ฃผ๋ฆ„์„ ๋œปํ•œ๋‹ค. ์‚ฌ๋žŒ์œผ๋กœ ์น˜๋ฉด ์ง€๋ฌธ๊ณผ ๊ฐ™์•„ ๋‚˜์ด๊ฐ€ ๋“ค์–ด๋„ ๋ณ€ํ˜• ๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ณง ๊ฐ•์•„์ง€์˜ ๊ฐœ์ฒด ์ธ์‹์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ ํŒ€์€ ๋น„๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๊ฐœ์ฒด ์ธ์‹ ๊ธฐ์ˆ  ๊ฐœ๋ฐœ ๋ชฉํ‘œ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.

์ตœ๊ทผ ๋ฐ˜๋ ค๋™๋ฌผ 1500๋งŒ ์‹œ๋Œ€๊ฐ€ ๋˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ˜๋ ค๋™๋ฌผ ๋“ฑ๋ก๋ฅ ์€ ๋ฐ˜๋ ค๋™๋ฌผ ์ˆ˜์— ๋น„ํ•ด ํ˜„์ €ํžˆ ๋‚ฎ์€ ์ˆ˜์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฐ˜๋ ค๋™๋ฌผ ๋“ฑ๋ก์€ ๋‚ด์žฅํ˜•์นฉ๊ณผ ์™ธ์žฅํ˜•์นฉ์„ ๊ฒฐ์ •ํ•˜์—ฌ ์นฉ์— ๊ฐ•์•„์ง€ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ค€ ๋’ค ๋“ฑ๋ก์„ ํ•ด์•ผํ•œ๋‹ค. ์™ธ์žฅํ˜• ์นฉ์€ ๊ฐ•์•„์ง€๋“ค์ด ๋งŽ์ด ์žƒ์–ด๋ฒ„๋ ค ์žƒ์–ด๋ฒ„๋ฆด๋•Œ๋งˆ๋‹ค ๋‹ค์‹œ ๊ตฌ๋งค๋ฅผ ํ•ด์•ผํ•˜๋Š” ๋น„์šฉ๋ถ€๋‹ด์ด ์žˆ์œผ๋ฉฐ, ๋‚ด์žฅํ˜• ์นฉ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ฐ˜๋ ค๊ฒฌ์—๊ฒŒ ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๋ถ€๊ฐ์ด ๋“ค์–ด ๋งŽ์€ ๋ฐ˜๋ ค์ธ๋“ค์ด ๋“ฑ๋กํ•˜์ง€ ์•Š๋Š” ๊ฐ€์žฅ ํฐ ๋น„์œจ์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. ํŽซ ๋ณดํ—˜ ๊ฐ€์ž…๋ฅ  ๋˜ํ•œ ๋‹ค๋ฅธ ๋‚˜๋ผ๋“ค์ด ๋น„ํ•ด ๋‚ฎ์€ ์ˆ˜์น˜์™€ ์ž‘์€ ์‹œ์žฅ ๊ทœ๋ชจ๋กœ ํ˜•์„ฑ ๋˜์–ด์žˆ๋‹ค. ํŽซ ๋ณดํ—˜ ์†ํ•ด์œจ์€ 200% ๊ธฐ๋กํ•˜๊ณ  ์žˆ๋‹ค. ํŽซ ๋ณดํ—˜์€ ํ”ผ๋ณดํ—˜๋Œ€์ƒ ์‹๋ณ„์ด ์–ด๋ ค์›Œ ๊ฐ€์ž…์ž๋“ค์ด ์•…์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ๊ธฐ์—…๋“ค์—์„œ ์ ๊ทน์ ์œผ๋กœ ํŽซ ๋ณดํ—˜์„ ์ถœ์‹œ ํ• ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ ํŒ€์€ ์ €์กฐํ•œ ๋™๋ฌผ๋“ฑ๋ก, ๋†’์€ ํŽซ ๋ณดํ—˜ ์†ํ•ด์œจ, ๊ฑฐ๋ถ€๊ฐ์ด ๋“œ๋Š” ๋‚ด์žฅ์นฉ์˜ ํ•œ๊ณ„์ ์„ ๋ณด์•ˆํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๋™๋ฌผ๋“ฑ๋ก, ํŽธ๋ฆฌํ•œ ๊ฐœ์ฒด์ธ์‹, ๋‚ด์žฅํ˜• ์นฉ ๊ฑฐ๋ถ€๊ฐ ํ•ด์†Œ, ํŽซ ๊ด€๋ฆฌ, ๋ฐ˜๋ ค๋™๋ฌผ ์‹œ์žฅ์˜ ํ™œ์„ฑํ™”๋ฅผ ๋ชฉํ‘œ๋กœ ๋น„๋ฌธ๊ฐœ์ฒด ์ธ์‹๊ธฐ์ˆ ์„ ํ†ตํ•œ ๋ฐ˜๋ ค๋™๋ฌผ๊ด€๋ฆฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ–ˆ๋‹ค.

UI/UX

image

image

image

Result Video

result_video.mp4

System Structure

๋น„๋ฌธ ๋“ฑ๋ก ์‹œ์Šคํ…œ ๊ตฌ์กฐ

์บก์Šคํ†ค_๋น„๋ฌธ๋“ฑ๋ก drawio (3)

  1. ์‚ฌ์šฉ์ž๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์นด๋ฉ”๋ผ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐ•์•„์ง€์˜ ์ •๋ฉด ์–ผ๊ตด ์‚ฌ์ง„์„ ์ฐ๋Š”๋‹ค.

  2. ๊ฐ•์•„์ง€ ์ •๋ฉด ์–ผ๊ตด ์‚ฌ์ง„์€ ๊ฐค๋Ÿฌ๋ฆฌ์— ์ €์žฅ๋˜๋ฉฐ, REST API๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.

  3. ์ „์†ก๋œ ๊ฐ•์•„์ง€ ์ •๋ฉด ์–ผ๊ตด ์‚ฌ์ง„์€ object-detection ๋ชจ๋ธ์ธ yoloV5์„ ํ†ตํ•ด ๊ฐ•์•„์ง€์˜ ์ •๋ฉด ์–ผ๊ตด ์ค‘ ์ฝ”(๋น„๋ฌธ) ๋ถ€๋ถ„๋งŒ ์ถ”์ถœํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ „์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•œ๋‹ค.

๋น„๋ฌธ ์ธ์‹ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

์บก์Šคํ†ค_๋น„๋ฌธ์ธ์‹ drawio

  1. ์‚ฌ์šฉ์ž๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์นด๋ฉ”๋ผ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐ•์•„์ง€์˜ ์ •๋ฉด ์–ผ๊ตด ์‚ฌ์ง„์„ ์ฐ๋Š”๋‹ค.

  2. ๊ฐ•์•„์ง€ ์ •๋ฉด ์–ผ๊ตด ์‚ฌ์ง„์€ ๊ฐค๋Ÿฌ๋ฆฌ์— ์ €์žฅ๋˜๋ฉฐ, REST API๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.

  3. ์ „์†ก๋œ ๊ฐ•์•„์ง€ ์ •๋ฉด ์–ผ๊ตด ์‚ฌ์ง„์€ object-detection ๋ชจ๋ธ์ธ yoloV5์„ ํ†ตํ•ด ๊ฐ•์•„์ง€์˜ ์ •๋ฉด ์–ผ๊ตด ์ค‘ ์ฝ”(๋น„๋ฌธ) ๋ถ€๋ถ„๋งŒ ์ถ”์ถœํ•˜์—ฌ ๋น„๋ฌธ ์ธ์‹ ๋ชจ๋ธ์— input ํ•œ๋‹ค.

  4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ๊ฐ•์•„์ง€์˜ ๋น„๋ฌธ์„ ์ด์ง„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๋น„๋ฌธ ์ธ์‹ ๋ชจ๋ธ์— input ํ•œ๋‹ค.

  5. ๋น„๋ฌธ ์ธ์‹ ๋ชจ๋ธ์€ input์œผ๋กœ ๋“ค์–ด์˜จ ๋‘ ๋น„๋ฌธ ์‚ฌ์ง„์˜ ์œ ์‚ฌ๋„๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์€ ๋น„๋ฌธ์ธ์ง€ ๋‹ค๋ฅธ ๋น„๋ฌธ์ธ์ง€ ์˜ˆ์ธก๊ฐ’์„ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด client๋กœ ์ „์†กํ•œ๋‹ค.

  6. ๋งŒ์•ฝ ๊ฐ™์€ ๋น„๋ฌธ์ผ ๊ฒฝ์šฐ, ํ•ด๋‹น ๋น„๋ฌธ์˜ ๊ฐ•์•„์ง€ ์ •๋ณด๋ฅผ client์—๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

Deep learning

Data collection

ํ•™์Šต ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ๋ผ๋ฒจ๋ง

๊ฐ•์•„์ง€ ์ฝ” ์ธ์‹ ๋ฐ์ดํ„ฐ

ํ•™์Šต๋ฐ์ดํ„ฐ๋Š” Tsinghua Dogs Dataset ์—์„œ ๊ฐ•์•„์ง€ ์ฝ”๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ง„๋“ค์€ ์„ ๋ณ„ํ•œ ํ›„ ์ด๋ฏธ์ง€ ์ฆ๊ฐ•์„ ์ด์šฉํ•ด ํ•™์Šต๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

Data Collection Sorted Image Image Augmentation
70,428 2,029 10,145

๊ฐ•์•„์ง€ ๋น„๋ฌธ ์ธ์‹ ๋ฐ์ดํ„ฐ

ํ•™์Šต๋ฐ์ดํ„ฐ๋Š” CVPR2022 Biometrics Workshop Pet Biometric Challenge์— ์ฒจ๋ถ€๋œ ๋ฐ์–ดํ…Œ ์…‹ ์ค‘์— ๊ฐ•์•„์ง€ ๋น„๋ฌธ์ด ๋ณด์ด๋Š” ์‚ฌ์ง„๋“ค๋กœ ์„ ๋ณ„ํ•˜๊ณ , ๊ตฌ๊ธ€ํผ์„ ํ†ตํ•ด ํŒ€์›๋“ค์˜ ์ธ์Šคํƒ€๊ทธ๋žจ์— ์˜ฌ๋ ค ๋ฐ˜๋ ค๊ฒฌ์ด ์žˆ๋Š” ์ง€์ธ๋“ค์—๊ฒŒ ์–ป์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋ฏธ์ง€ ์ฆ๊ฐ•์„ ์ด์šฉํ•ด ํ•™์Šต๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์ด๋ฏธ์ง€ ์„ ๋ณ„ ์ด๋ฏธ์ง€ ์ฆ๊ฐ•
20,000 964 9,640

Image Preprocessing

๊ฐ•์•„์ง€ ๋น„๋ฌธ ์ธ์‹์„ ์œ„ํ•œ ์ด๋ฏธ์ง€ ์ „์ฒ˜๋ฆฌ

  • GaussianBlur :ใ€€์ด๋ฏธ์ง€์˜ ์ค‘์•™๊ฐ’์— ๊ฐ€์ค‘์น˜๋ฅผ ์ฃผ๊ณ  ์ฃผ๋ณ€์€ ๋” ํ๋ฆฌ๊ฒŒ ํ•˜์—ฌ ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐํ•ด ์ฝ”์˜ ๋น› ๋ฐ˜์‚ฌ ์ œ๊ฑฐ

  • EdgeDection :ใ€€sobel, laplacian, canny ์‚ฌ์šฉํ•ด ๊ฐ€์žฅ์ž๋ฆฌ ์ถ”์ถœ

Sboel Laplacian Canny
image01 image02 image03

Object-Detection

crop dog nose(๊ฐ•์•„์ง€ ์ฝ” ์ถ”์ถœ)

๊ฐ์ฒดํƒ์ง€(object-detection)์€ ํ•œ ์ด๋ฏธ์ง€์—์„œ ๊ฐ์ฒด์™€ ๊ทธ ๊ฒฝ๊ณ„ ์ƒ์ž(bounding box)๋ฅผ ํƒ์ง€ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๊ฐ์ฒด ํƒ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด๋ฏธ์ง€๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๊ณ , ๊ฒฝ๊ณ„ ์ƒ์ž์™€ ๊ฐ์ฒด ํด๋ž˜์Šค ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ ์ด๋•Œ ๊ฒฝ๊ณ„ ์ƒ์ž์— ๋Œ€์‘ํ•˜๋Š” ์˜ˆ์ธก ํด๋ž˜์Šค์™€ ํด๋ž˜์Šค์˜ ์‹ ๋ขฐ๋„(confidence)๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ์€ 2018๋…„์— ์ถœ์‹œ๋œ yoloV5 ๋ชจ๋ธ์ด๋‹ค.

Train Result

yoloV5n(๋‚˜๋…ธ)

epoch 300 600 1047(early stopping)
์ •ํ™•๋„ mAP50-95: 0.952 mAP50-95: 0.952 mAP50-95: 0.952

yoloV5m(๋ฏธ๋””์›€)

epoch 300 600 646(early stopping)
์ •ํ™•๋„ mAP50-95: 0.984 mAP50-95: 0.984 mAP50-95: 0.984

yoloVn vs yoloV5m

Model yoloV5n yoloV5m๋ฏธ๋””์›€*
์ •ํ™•๋„ mAP50-95 : 95.2% mAP50 : 98%

=> ์ฐจ์ด๊ฐ€ ๊ทน์ ์œผ๋กœ ํฌ๊ฒŒ ๋‚˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์˜ˆ์ธก์†๋„๊ฐ€ ๋น ๋ฅธ yoloV5n์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

Siamese Neural Network

Siamese Network ๋Š” (์ดํ•˜ ์ƒด ๋„คํŠธ์›Œํฌ) ๋‹ค๋ฃจ์–ด์•ผํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ข…๋ฅ˜๊ฐ€ ๋งค์šฐ ๋งŽ๊ณ , ํŠน์ • ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์‚ฌ์ง„์„ ๋Œ€๋Ÿ‰์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์—†์„ ๋•Œ ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ™œ์šฉํ•˜์—ฌ ๊ทธ ํด๋ž˜์Šค๋ฅผ ๊ตฌ๋ถ„ํ•ด๋‚ด๊ธฐ ์œ„ํ•˜์—ฌ ๊ณ ์•ˆ๋œ ๋„คํŠธ์›Œํฌ์ด๋‹ค.

์ƒด ๋„คํŠธ์›Œํฌ๋Š” ๋‘ ์‚ฌ์ง„์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„์„œ ๋‘ ์ด๋ฏธ์ง€๋ฅผ ๋ฒกํ„ฐํ™” ์‹œํ‚จ ์ดํ›„, ๋‘ ๋ฒกํ„ฐ๊ฐ„์˜ ์œ ์‚ฌ๋„ (similarity in [0, 1]) ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋„คํŠธ์›Œํฌ์ด๋‹ค. Network๋Š” ํ•ด๋‹น ์ด๋ฏธ์ง€์˜ ํŠน์ง•์„ hand-crafted features๊ฐ€ ์•„๋‹Œ data์—์„œ ์ง์ ‘ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์–ด์ง„ similarity ๋ฅผ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ์–‘์งˆ์˜ feature๋ฅผ ์ถ”์ถœํ•œ๋‹ค.

Siamese Network๋Š” ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” weight๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ด๋ฏธ์ง€๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ์—ฌ๋Ÿฌ๋ฒˆ์˜ convolution ์—ฐ์‚ฐ์„ ๊ฑฐ์ณ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ธ์ฝ”๋”ฉํ•œ๋‹ค. ๋‘ ์ด๋ฏธ์ง€๋Š” ๊ณต์œ ๋˜๋Š” weight ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฒกํ„ฐ๋กœ ์ธ์ฝ”๋”ฉ ๋œ๋‹ค.

์ •์˜๋œ ๋„คํŠธ์›Œํฌ์— ๋‘ ์‚ฌ์ง„์ด ๊ฐ™์€ ๊ฒฝ์šฐ ์œ ์‚ฌ๋„(Similarity)๋ฅผ 1๋กœ ์ฃผ๊ณ , ๋‘ ์‚ฌ์ง„์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์œ ์‚ฌ๋„(similarity)๋ฅผ 0์œผ๋กœ ์ฃผ์–ด์„œ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚จ๋‹ค. ์ด๋•Œ ํ•™์Šต์— ์‚ฌ์šฉํ•˜๋Š” loss๋Š” binary_crossentropy๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜๊ฐ’์ด ์œ ์‚ฌ๋„์ธ 0~1 ์‚ฌ์ด์˜ ํ™•๋ฅ ๊ฐ’์œผ๋กœ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด์„œ ์ถ”์ถœ๋œ ๋ฒกํ„ฐ ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋Š” ์„œ๋กœ ์œ ์‚ฌํ•œ(=๊ฐ™์€) ์ด๋ฏธ์ง€๋ผ๋ฆฌ๋Š” ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ(๋†’์€ ์œ ์‚ฌ๋„)๋ฅผ ๊ฐ€์ง€๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€ ๊ฐ„์—๋Š” ๋จผ ๊ฑฐ๋ฆฌ๋ฅผ (๋‚ฎ์€ ์œ ์‚ฌ๋„) ๊ฐ€์ง€๋„๋ก ํ•™์Šต์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

Siamese Neural Network ๊ธฐ๋ฐ˜ ๋น„๋ฌธ ์ธ์‹ ๋ชจ๋ธ

์ƒด๋„คํŠธ์›Œํฌ drawio

๋น„๋ฌธ ์ด๋ฏธ์ง€์—์„œ ํŠน์ง•์ ์„ ๋น„๊ตํ•˜๊ธฐ์œ„ํ•ด ์›์ƒท ๋Ÿฐ๋‹๊ธฐ๋ฐ˜์˜ ์ƒด๋„คํŠธ์›Œํฌ ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.

์ธ์‹ ์‹œํ‚ฌ ์‚ฌ์ง„๊ณผ db์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ์‚ฌ์ง„์ด ๋™์‹œ์— input์œผ๋กœ ๋“ค์–ด๊ฐ€ ๊ฐ๊ฐ ์›จ์ดํŠธ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ๋ฒˆ์˜ ์ปจ๋ณผ๋ฃจ์…˜ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํŠน์ง•์ ์ด ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค. ํŠน์ง•์ ์ด ์ถ”์ถœ๋œ ์ด ํ”ผ์ฒ˜๋งต์˜ ์ฐจ์ด๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ์˜ dense ๋ ˆ์ด์–ด๋ฅผ ๊ฑฐ์น˜๊ณ  sigmod๋ฅผ ํ†ตํ•ด ์œ ์‚ฌ๋„์ธ 0-1 ์‚ฌ์ด์˜ ํ™•๋ฅ  ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์›์ฒœ ์ด๋ฏธ์ง€์™€ ๊ฐ๊ฐ์˜ ์ „์ฒ˜๋ฆฌ๋œ ์ด๋ฏธ์ง€๋“ค์„ ๊ธฐ๋ฒ• ๋ณ„๋กœ ๋ชจ๋‘ ํ•™์Šต์‹œ์ผœ ๋น„๊ต๋ถ„์„์„ ํ–ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

Train Result

Original Canny dataset Laplacian dataset Sobel dataset
Accuracy 0.96 0.95 0.96 0.96
Loss 0.14 0.16 0.13 0.14

=> Laplacian๊ธฐ๋ฒ•์˜ ์ •ํ™•๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์•„ ์ด ์ „์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ์„ ์„œ๋ฒ„(๋ฐฑ์•ค๋“œ)์— ์ด์‹ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ๋‹ค.

APP

Frontend

ํ”„๋ก ํŠธ์—”๋“œ ์–ธ์–ด๋กœ๋Š” javascript, ๊ทธ๋ฆฌ๊ณ  framework๋กœ์„œ react-native๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

react-native์˜ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” cli ๋Œ€์‹  expo๋ฅผ ์„ ํƒํ–ˆ๋‹ค. expo๋Š” ํŽธ๋ฆฌํ•˜๊ณ  ์œ ์šฉํ•˜๋ฉฐ ์ถ”ํ›„ ๋ฐฐํฌํ•  ๊ฒฝ์šฐ cli๋ณด๋‹ค ๊ฐ„ํŽธํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด ์œ ์ง€, ๋ณด์ˆ˜ํ•˜๊ธฐ์— ์ข‹๋‹ค. cli๋ณด๋‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ ์ง€๋งŒ, expo ์ž์ฒด์—์„œ ๊พธ์ค€ํ•˜๊ฒŒ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ์–ด ์„ ํƒํ–ˆ๋‹ค.

์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ค‘์‹œ

๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๋•Œ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ข‹์€ ๊ฒฝํ—˜์„ ์ฃผ๋Š” ๊ฒƒ์„ ๊ฐ€์žฅ ์ตœ์šฐ์„ ์˜ ๋ชฉํ‘œ๋กœ ์„ค์ •ํ•˜์—ฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. text input์ด๋‚˜ button๊ณผ ๊ฐ™์ด ์ž์ฃผ ์“ฐ์ด๋Š” ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ์‹์œผ๋กœ ํ†ต์ผ์„ฑ์„ ๋†’์ด๊ณ  ๋น„๋ฌธ ๋“ฑ๋ก๊ณผ ๊ฒ€์ƒ‰ ์‹œ ๋ชจ๋ธ์ด ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— skeleton component๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
์นด๋ฉ”๋ผ ์ดฌ์˜์‹œ, ์‚ฌ์šฉ์ž ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๊ฐ•์•„์ง€ ์ฝ”๋ฅผ ์ฐ์„ ์ˆ˜ ์žˆ๊ฒŒ ์ฝ” ๋ชจ์–‘ ์ด๋ฏธ์ง€๋ฅผ ์นด๋ฉ”๋ผ ํ™”๋ฉด์— ๋„์šฐ๊ณ , ๊ฐ•์•„์ง€ ์ดฌ์˜์€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ•์•„์ง€๋ฅผ ํ•ธ๋“œํฐ์œผ๋กœ ์ง‘์ค‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด clap-sound๋ฅผ ๋„ฃ์–ด ์ฝ”๋ฅผ ์‰ฝ๊ณ , ์ •ํ™•ํ•˜๊ฒŒ ์ฐ์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

์‚ฌ์šฉํ•œ library

expo์—์„œ ๋‹ค์–‘ํ•œ library๋ฅผ ์ง€์›ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค. ์นด๋ฉ”๋ผ ๊ธฐ๋Šฅ์œผ๋กœ๋Š” expo-camera์™€ expo-image-picker๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ์บ˜๋ฆฐ๋” ๊ธฐ๋Šฅ์œผ๋กœ๋Š” expo-calendar๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. clap-sound๋ฅผ ๋„ฃ์„ ์‹œ์—๋Š” react-native-sound์™€ react-native-sound-player๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

Backend

Account app

rest_auth, allauth ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํšŒ์›๊ฐ€์ž…์— ํ•„์š”ํ•œ ์‚ฌ์šฉ์ž์˜ ๋‹‰๋„ค์ž„, ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•„์„œ ์ž…๋ ฅ ๋ฐ›์•„์„œ ์‚ฌ์šฉ์ž์˜ ๊ณ„์ •์„ ๋งŒ๋“ ๋‹ค. DB์— ์ €์žฅ๋  ๋•Œ ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜(one-way hash function)๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํšŒ์›๊ฐ€์ž…์„ ํ•  ๋•Œ์—๋Š” JWT ํ† ํฐ ์ธ์ฆ ๋ฐœ๊ธ‰์„ ํ•จ๊ป˜ ์ง„ํ–‰ํ•œ๋‹ค.

Dogaccount app

์• ์™„๊ฒฌ์˜ ํ”„๋กœํ•„์˜ ๊ฐ’์„ DB์— ์ €์žฅํ•˜๊ณ  ์• ์™„๊ฒฌ์˜ ๋น„๋ฌธ๋“ฑ๋ก ๋ฐ ๋น„๋ฌธ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. DB์— ์ €์žฅ์„ ์™„๋ฃŒํ•œ ํ›„, ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋ก ํŠธ์—์„œ ์• ์™„๊ฒฌ ํ”„๋กœํ•„ ์ •๋ณด ๋ฐ id(pk)๊ฐ’์„ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„์—์„œ ๋ฐ›์•„, ํ•ด๋‹น id ๊ฐ’์— ๋งก๋Š” ์• ์™„๊ฒฌ์˜ DB ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์กฐํšŒ ๋ฐ ์ˆ˜์ •์„ ์ง„ํ–‰ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๋ฌธ ๋“ฑ๋ก ๋ฐ ์ธ์‹ํ•  ๋•Œ ์• ์™„๊ฒฌ์˜ ์ฝ” ์‚ฌ์ง„๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋กœ DB์— ์ €์žฅํ•œ ํ›„, Foreign key ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ•์•„์ง€์˜ ํ”„๋กœํ•„ ์ •๋ณด์˜ DB์™€ ์—ฐ๊ฒฐ์‹œํ‚จ๋‹ค.

๋น„๋ฌธ์กฐํšŒ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ•์•„์ง€์˜ ์ฝ”์‚ฌ์ง„์„ ์ฐ์œผ๋ฉด yolo๋ฅผ ํ†ตํ•ด ํฌ๋กญ๋œ ์ฝ”์‚ฌ์ง„์ด ๋‚˜์˜จ๋‹ค. ์ด ์‚ฌ์ง„์˜ ๊ฒฝ๋กœ์™€ ๊ฐ•์•„์ง€ DB์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ์ฝ” ์‚ฌ์ง„ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ๋‘๊ฐœ์˜ ์ฝ” ์‚ฌ์ง„์„ ๋น„๊ตํ•œ๋‹ค. ๋น„๋ฌธ ์ธ์‹ ๋ชจ๋ธ์˜ ๊ฒฐ๊ณผ์ธ ์œ ์‚ฌ๋„ ํ™•๋ฅ  ๊ฐ’, ์ฆ‰ Score ์ ์ˆ˜๊ฐ€ 0.8 ์ด์ƒ์ผ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ•์•„์ง€๊ฐ€ ๊ฐ™๋‹ค๊ณ  ํ•˜๊ณ  ๊ฐ•์•„์ง€์˜ DB๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์•„๋‹๊ฒฝ์šฐ HTTP_204_NO_CONTENT ๋ฅผ ํ†ตํ•ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค.

Pet_hospital_diary app

๋ณ‘์›์ผ์ง€ ์ ๋Š” DB์™€ ๋ณ‘์› ๋ฐ ์˜ˆ๋ฐฉ ์ ‘์ข…๊ณผ ์‹ฌ์žฅ์‚ฌ์ƒ์ถฉ์„ ์ €์žฅํ•˜๋Š” DB๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ €์žฅํ•œ๋‹ค.

Diary app

์• ์™„๊ฒฌ๊ณผ ๊ด€๋ จ๋œ ๋‚˜์˜ ์ผ๊ธฐ๋ฅผ DB์— ์ €์žฅํ•œ๋‹ค. ์ผ๊ธฐ์—์„œ ์‚ฐ์ฑ… ์—ฌ๋ถ€๋ฅผ choice๋กœ ์ฒดํฌ๋ฐ•์Šค ์œ ๋ฌด์— ๋”ฐ๋ผ DB๊ฐ’์ด [o, x] ๊ฐ’์œผ๋กœ ์ €์žฅ๋˜๋Š”๋ฐ, o๊ฐ€ ์ €์žฅ๋  ๋•Œ๋งˆ๋‹ค ์‚ฐ์ฑ… ๊ฐ’์ด 1๊ฐœ์”ฉ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ์ถ”ํ›„ ๋‹ค๋ฅธ ์ผ๊ธฐ์—์„œ ํ•ด๋‹น ๊ฐ’์ด o์ธ์ง€ x์ธ์ง€ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•ด์„œ o์ผ ๊ฒฝ์šฐ ์‚ฐ์ฑ… ํšŸ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์•„๋‹, ๊ฒฝ์šฐ ๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ ์‚ฐ์ฑ… ํšŸ์ˆ˜๋ฅผ DB์— ์ €์žฅ์‹œํ‚จ๋‹ค.

Benefits

์‚ฌ๋žŒ์˜ ์ง€๋ฌธ๊ณผ ๊ฐ™์ด ๋ฐ˜๋ ค๊ฒฌ์˜ ๋น„๋ฌธ(์ฝ” ์ง€๋ฌธ)์€ ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉฐ ๋‚˜์ด๊ฐ€ ๋“ค์–ด์„œ๋„ ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ์— ์ƒ์ฒด์ •๋ณด๋กœ์จ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋•Œ๋ฌธ์—, ๋น„๋ฌธ ๊ฐœ์ฒด์ธ์‹ ๊ธฐ์ˆ ์„ ๊ฐœ๋ฐœํ•จ์œผ๋กœ์จ ๋งˆ์ดํฌ๋กœ์นฉ์˜ ๋ถ€์ž‘์šฉ์„ ๊ทน๋ณตํ•˜๊ณ  ๋ฐ˜๋ ค๊ฒฌ ์‹ ์ฒด ๋‚ด ์ด๋ฌผ์งˆ ์‚ฝ์ž…๊ณผ ๋น„์šฉ์— ๋Œ€ํ•œ ๋ถ€๋‹ด์ด ์ ์œผ๋ฉฐ, ํŒŒ์† ๋ฐ ๋ถ„์‹ค ์—ผ๋ ค๊ฐ€ ์—†๊ณ  ๋น ๋ฅด๊ฒŒ ๋“ฑ๋ก ๋ฐ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ๋ณธ์งˆ์ ์œผ๋กœ ๋ฐ˜๋ ค๋™๋ฌผ์˜ ๋ถ„์‹์ด๋‚˜ ์œ ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜„์žฌ ๋น„๋ฌธ ๊ด€๋ จํ•œ ๊ธฐ์ˆ  ์ค‘ ์ผ๋ถ€๋Š” ์‚ฌ์šฉ์ž ์นœํ™”์ ์ด์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์ „ ์ž‘์—…์ด ๋งŽ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค์— ๋ถ€์ ํ•ฉํ•˜๋‹ค. ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋” ๋‚˜์€ ๊ธฐ์ˆ  ๊ฐœ๋ฐœ์„ ํ†ตํ•˜์—ฌ ๋น ๋ฅธ์‹œ๊ฐ„๋‚ด์— ํšจ๊ณผ์ ์œผ๋กœ ๊ฐœ์ฒด์ธ์‹์„ ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋ฐ˜๋ ค๊ฒฌ ๋น„๋ฌธ์ธ์‹ ์‹œ์Šคํ…œ์˜ ์ƒ์šฉํ™”๋ฅผ ์œ„ํ•ด ํ–ฅํ›„ ๋ถ„๋ฅ˜ ์„ฑ๋Šฅ์„ ๋”์šฑ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์—ฐ๊ตฌ์™€ ๋”๋ถˆ์–ด ์‹ค์ œ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์˜ ๋ถ„๋ฅ˜ ์„ฑ๋Šฅ ๋ถ„์„ ์—ฐ๊ตฌ๋„ ์ˆ˜ํ–‰ํ•  ์˜ˆ์ •์ด๋‹ค. ์ด๊ฒƒ์€ ๋ฐ˜๋ ค๊ฒฌ ๋น„๋ฌธ ์ธ์‹ ์‹œ์Šคํ…œ์˜ ๋ถˆํ•„์š”ํ•œ ์ธ์‹ ์ฒ˜๋ฆฌ ํšŸ์ˆ˜๋ฅผ ์ค„์ด๊ณ  ์ธ์‹๋ฅ ๋„ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋œ๋‹ค.

ํ˜„์žฌ๋Š” ๊ฐœ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์˜ˆ์ •์ด์ง€๋งŒ, ํ–ฅํ›„ ๊ณ ์–‘์ด์™€ ๊ฐ™์€ ๊ฐœ๋ฅผ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ๋ฐ˜๋ ค๋™๋ฌผ๊นŒ์ง€ ํ™•๋Œ€ํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฆฌ๋ผ ์˜ˆ์ƒํ•œ๋‹ค.

๋˜ํ•œ, ๋™๋ฌผ์ด ๋ฏธ๋ฆฌ ๋“ฑ๋ก๋œ ํŠน์ • ๊ฐœ์ฒด์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋™๋ฌผ ์ธ์ฆ์€ ๋™๋ฌผ ๋ณ‘์›, ๋™๋ฌผ ์ž…์–‘ ์„ผํ„ฐ, ๋™๋ฌผ ๋ณดํ˜ธ์†Œ, ๋™๋ฌผ ๋ณดํ—˜์‚ฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. ๋™๋ฌผ ๋ณดํ—˜์‚ฌ์˜ ๊ฒฝ์šฐ, ์‚ฌ๊ณ ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ณดํ—˜์— ๊ฐ€์ž…๋œ ํŠน์ • ๊ฐœ์ฒด์ธ์ง€ ์ •ํ™•ํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด ์ด์™€ ๊ฐ™์€ ๋ฐ˜๋ ค๋™๋ฌผ ์‚ฌ์—…์—์„œ ์œ ์šฉํ•œ ๊ธฐ์ˆ ๋กœ ์ž๋ฆฌ๋ฅผ ์žก์œผ๋ฉฐ ๋ฐ˜๋ ค๋™๋ฌผ ์‹œ์žฅ์˜ ํ™œ์„ฑํ™”๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

Reference

  1. Gregory Koch, Richard Zemel, Ruslan Salakhutdinov, Siamese Neural Networks for One-shot Image Recognition, ICML deep learning workshop, vol. 2, pp. 3-8 ,2015
  2. Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi, You Only Look Once: Unified, Real-Time Object Detection, pp. 1-7, 2015
  3. YOLOv5, https://pytorch.org/hub/ultralytics_yolov5/
  4. ์ •์„ฑํ™˜, ๋ฐฐ์ข…ํ›ˆ, OpenCV-Python์œผ๋กœ ๋ฐฐ์šฐ๋Š” ์˜์ƒ ์ฒ˜๋ฆฌ ๋ฐ ์‘์šฉ, ์ƒ๋Šฅ์ถœํŒ, 2020
  5. ๊ถŒํƒœํ˜•, ๋ฐฑ์—”๋“œ๋ฅผ ์œ„ํ•œ Django REST Framework with ํŒŒ์ด์ฌ, ์˜์ง„๋‹ท์ปด, 2022
  6. ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ, 493์ชฝ, ํ•œ๋น›๋ฏธ๋””์–ด - ๊น€๋ฒ”์ค€
  7. Do it! ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, 856์ชฝ, ์ด์ง€ํผ๋ธ”๋ฆฌ์‹ฑ - ์ „์˜ˆํ™

About

dognose_recognition_management_service used deep-learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published