Winderλ 'Wine Finder' λΌλ λ¨μ΄μ μλ―Έλ‘ μ μ κ° μνλ, μ μ κ° μκ³ μΆμ μμΈμ μ°Ύμμ£Όκ³ μμΈ μ 보λ₯Ό μ 곡νλ μλΉμ€μ λλ€.
iOS μ΄ν리μΌμ΄μ μ ꡬν ꡬ쑰λ₯Ό μκ°ν©λλ€.
μμΈ μ΄λ―Έμ§ λ°μ΄ν° λ² μ΄μ€μ λ¨Έμ λ¬λ μν€ν μ² μ λλ€.
- μμ§ν μμΈ μ 보 λ°μ΄ν°λ² μ΄μ€μ μ΄λ―Έμ§ λ°μ΄ν°λ² μ΄μ€λ₯Ό κΈ°λ°μΌλ‘ μ΄λ―Έμ§ λΆλ₯λ₯Ό νλ λͺ¨λΈμ λλ€.
260 X 960
μ¬μ΄μ¦ μ μ΄λ―Έμ§ λ°μ΄ν°λ₯ΌAlbumentation
λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©ν΄μData Augmentation
μ ν©λλ€.Data Augmentation
μ νμ§, λ°κΈ°, νμ , μ근거리λ₯Ό κΈ°μ€μΌλ‘, λ°μ΄ν°λ₯Ό μΈμν μ μλ μ΅λ-μ΅μ μ¬μ΄μ κ°μ ν μ€νΈ νμ¬ μ§μ νμμ΅λλ€.- μ΅λ-μ΅μ μ¬μ΄μ κ° μ¬μ΄μμ λλ€νκ² λ°μ΄ν°κ° μμ±λλ©°, κ°κ°μ λ°μ΄ν°λ
100+a
μ₯μΌλ‘ λ°μ΄ν° λͺ¨λΈμ΄ λ°μ ν μλ‘ μΆ©λΆν λ릴 μ μμ΅λλ€. - λ¨Έμ λ¬λ μν€ν
μ²λ
MobileNetV2
λͺ¨λΈμ μ μ νμκ³ ,Training
κ²°κ³Όμ λ°λΌ μ€λ²νΌν μ μ€μ΄κΈ° μν΄Layer
λ₯Ό μΌλΆ μΆκ°νμ΅λλ€.
μ¬μ©μμ μΉ΄λ©λΌ 촬μ λ°μ΄ν°μ λν μ μ²λ¦¬ λͺ¨λΈμ λλ€.
- μ¬μ©μμ μΉ΄λ©λΌ μΊ‘μ³ μΈν λ°μ΄ν°λ κ°λ°μμ μ μ₯μμ κ°μ₯ νΈλ€λ§νκΈ° μ΄λ €μ΄ λΆλΆμ΄λΌκ³ μκ°νμ΅λλ€. μ΄λ₯Ό λ² νλ²μ μμλ κ°μ΄λλΌμΈ μ μ λ° μ»΄ν¨ν° λΉμ μ²λ¦¬λ₯Ό ν΅ν΄ λ°μ΄ν° μ μ²λ¦¬λ₯Ό νλ κ²μΌλ‘ μ μ νμμ΅λλ€.
- iOS μ΄ν리μΌμ΄μ μμ μ¬μ©μκ° μ΄¬μν λ, μΉ΄λ©λΌ μ€λ²λ μ΄λ₯Ό ν΅ν΄ μ μ¬μ΄ μ€μμ μΈλ‘λ‘ λλλ‘ μ λν©λλ€. ν΄λΉ μν€ν μ²μ 첫 λ²μ§Έ μ¬μ§μ κ°μ΄λλΌμΈμ λ°λ₯Έ 촬μ κ²°κ³Όλ¬Όμ λλ€.
- ν΄λΉ μ¬μ§μ μ€μμ κΈ°μ€μΌλ‘ μ μ μ¬μ§μ μλ₯΄κ³ , κ·Έλ μ΄μ€μΌμΌ/λΉνΈμμ΄μ¦ λ±μ μ»΄ν¨ν° λΉμ μ°μ°μ κ±°μ³ μ»¨ν¬μ΄λ§ μμ μ ν©λλ€.
- 컨ν¬μ΄λ§ μμ μ ν΅ν΄ μμ±λ μ’νλ₯Ό κΈ°μ€μΌλ‘ μ¬μ§μ λ§μ€νΉ νκ³ μμΈ μ΄λ―Έμ§λ₯Ό νλ ¨λ λͺ¨λΈλ‘ μμΈ‘μ°μ°μ μ§νν©λλ€.
- μ°μ°λ κ²°κ³Όλ μμΈ λ°μ΄ν°λ² μ΄μ€μ
ID
κ°κ³Ό 맀νλμ΄ κ²°κ³Όλ¬Όμ RestAPI λ‘ μ μ‘ν©λλ€.
μ μ©λ OCR λͺ¨λΈμ μ 체 νλ‘μΈμ€μ λν μν€ν μ²μ λλ€.
- μ¬μ©μκ° κ°μ΄λ λΌμΈμ λ§μΆμ΄μ κ°μ΄λ°μ μμΈμ 촬μνλ©΄ μ€κ° μ§μ μ μλ¦ λλ€.
- μΆμΆν νμΈ μ΄λ―Έμ§λ₯Ό κ·Έλ μ΄μ€μΌμΌ νΉμ λΉνΈμμ΄μ¦ μ°μ°μ κ±°μ³μ Keras OCR νΉμ Tesseract OCR λͺ¨λΈμ ν΅ν΄ μΈμλ ν μ€νΈλ₯Ό μΆμΆν©λλ€.
- ν΄λΉ ν μ€νΈλ μλΌμ€ν±μμΉ κ²μμμ§μ ν΅νμ¬ λ°μ΄ν° λ² μ΄μ€μ 맀μΉν©λλ€.
- ν΄λΉ κ²°κ³Όμ λ°λΌ μμΈ λ°μ΄ν° λ² μ΄μ€λ₯Ό Rest API λ‘ μλΉμ€μ μ λ¬ν©λλ€.
μμΈ λΌλ²¨ μΈμμ λν λ¨Έμ λ¬λ μλΉμ€λ₯Ό λ§λ€λ©΄μ λ°μν μ΄μμ λν μ²λ¦¬ λ΄μ©μ λ΄μμ΅λλ€.
μμΈ λΌλ²¨ λ°μ΄ν°λ κ° ν΄λμ€λ³λ‘ ν κ°μ© μλ μ΄μκ° μμμ΅λλ€. μ΄λ―Έμ§λ₯Ό κ° ν΄λμ€ λ³λ‘ μλ―Έμλ λΆλ₯λ₯Ό νκΈ° μν΄μλ Parametric
ν λ°μ΄ν°λ€μ΄ κ°κ° μμ΄μΌ νλ€κ³ νλ¨νμ΅λλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ Data Augmentation
λ°©μμ μ μ νμκ³ Albumentation
λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ νμ§, λ°κΈ°, νμ , μ근거리λ₯Ό κΈ°μ€μΌλ‘, λ°μ΄ν°λ₯Ό μΈμν μ μλ μ΅λ-μ΅μ μ¬μ΄μ κ°μ ν
μ€νΈ νμ¬ λ°μ΄ν°μ λ§λ κ°μ μ§μ νμμ΅λλ€.
κ°λ° λ¨κ³μμ, μμΈ λ°μ΄ν°λ² μ΄μ€λ κ³μ μ¦κ°νκΈ° λλ¬Έμ κΈ°μ‘΄μ νμ΅λ λͺ¨λΈμ μ¨μ ν μ¬μ©νκΈ° μ΄λ €μ΄ μ΄μκ° μμμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ Incremental Learning
μ λμ
νλ € μλ νμ΅λλ€. νμ¬λ OCR
λͺ¨λΈλ‘ μλΉμ€ μν€ν
μ²λ₯Ό λ³κ²½νμκΈ° λλ¬Έμ λ°μ μ μ©νμ§ μμμ΅λλ€.
κ°λ°μμ μ μ₯μμ κ°μ₯ νΈλ€λ§νκΈ° μ΄λ €μ΄ λΆλΆμ μμ μ¬μ©μκ° μ΄¬μν λ°μ΄ν°λΌκ³ μκ°νμ΅λλ€. μ¬μ§μ μ΄λ ν μμΉ λ° κ°λλ‘λ μ°μ μ μκΈ° λλ¬Έμ λλ€.
μ΄κΈ° μν€ν
μ² μ€κ³ μ€, μ μ²λ¦¬ λ¨κ³μ Mask-RCNN
μ λμ
νμ¬ μμΈ μ΄λ―Έμ§λ₯Ό μΈμ νκ³ λ§μ€νΉνμ¬ μμΈ λ°μ΄ν° λ² μ΄μ€ λ§μ κ°μ§κ³ λͺ¨λΈμ μμΈ‘ μ°μ° νλ κ²μ ꡬμνμμ΅λλ€. νμ§λ§ μ μ²λ¦¬ λ¨κ³μμ λ§μ μκ°μ μ¬μ©νκ² λλ€λ©΄ κ·Έ λλ¦λλ‘ μ’μ§ μμ μλΉμ€λΌκ³ μκ°νμ΅λλ€.
μ΄μ λ°λΌ, μ¬μ©μμκ² μ΄¬μ λ¨κ³μμ λΆν° κ°μ΄λλΌμΈμ μ΄ν리μΌμ΄μ μ μΉ΄λ©λΌ μ€λ²λ μ΄λ‘ μ μνκ³ , 촬μλ λ°μ΄ν°λ₯Ό ν¬λ‘ λ° μ»΄ν¨ν° λΉμ μ°μ°μ ν΅ν΄ μ’νλ₯Ό νλνμ¬ μ μ²λ¦¬ νλ λ°©μμΌλ‘ ꡬννμμ΅λλ€.
μμ§ν μμΈ λ°μ΄ν° λ² μ΄μ€κ° μ¦κ°ν μλ‘ λ₯λ¬λ λͺ¨λΈμ΄ μ μ λ§μ 리μμ€λ₯Ό μ°κ² λλ μ΄μκ° μμμ΅λλ€. λΏλ§ μλλΌ Data Augmentation
κ΄λ ¨ μ°μ°λ κ·Έμ λ§μΆμ΄ μ¦κ°νκΈ° λλ¬Έμ κ²°κ΅ μ΄λ―Έμ§ μΈμ λͺ¨λΈμ μ 체 νλ‘μΈμ€κ° κ°μ Έκ°λ μ°μ°λμ΄ λ§€μ° λ§μ λ¬Έμ κ° μκΈ°κ³ μμμ΅λλ€.
μμΈ λ°μ΄ν° λ² μ΄μ€κ° μ¦κ°ν¨μ λ°λΌ λ₯λ¬λ μ°μ°λ λ§€λ² μλν΄μΌνκΈ° λλ¬Έμ μ ν©νμ§ μμ λͺ¨λΈμ΄λΌκ³ νλ¨νκ²λμκ³ , OCR
λͺ¨λΈλ‘ λ³κ²½νκ² λμμ΅λλ€.
OCR λͺ¨λΈμ Keras-OCR
, pytesseract
λͺ¨λΈμ μ±ννμμ΅λλ€. κ²°κ³Ό ν
μ€νΈ κ³Όμ μμ pytesseract
λ λ§μ μ»΄ν¨ν° λΉμ μ μ²λ¦¬ κ³Όμ μ κ±°μΉλλΌλ λ€μν μ μ μΈνλ°μ΄ν°(νμ§, μ근거리 λ±)λ₯Ό 컀λ²ν μ μμ μ λμ μΆ©λΆν μ νλλ₯Ό κ°μ§μ§ μμμ΅λλ€. λ₯λ¬λ μ°μ° κΈ°λ°μ λͺ¨λΈ κ΅¬μΆ νΉμ λΌμ΄λΈλ¬λ¦¬ μ±νμ ꡬμνκ² λμκ³ , κ·Έ κ²°κ³Ό Keras-OCR
μ λμ
νκ² λμμ΅λλ€.
νμ§λ§ λ₯λ¬λ μ°μ° κΈ°λ°μ λͺ¨λΈμ μ²μ λͺ¨λΈμ λ©λͺ¨λ¦¬ μ μ νλ μκ°κΉμ§ λ§μ μκ°μ΄ κ±Έλ Έκ³ , μΈ‘μ κ²°κ³Ό μ½ 17~18
μ΄ μ λ μμκ° λμμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ νμ¬ λͺ¨λΈμ Preload
νκΈ° μν μ€νμ μ§ν μ€μ μμ΅λλ€.
π·π·π·