2020 νλ
λ μ°ν μ°κ³ νλ‘μ νΈ κ΅κ³Όλͺ©μμ μ§νν AI μκ³ λ¦¬μ¦μ νμ©ν μ΄λ―Έμ§ μ μ¬λ μΈ‘μ
νλ‘μ νΈμ
λλ€.
ꡬ체μ μΌλ‘λ νΉν μ΄λ―Έμ§(μν λ° λμμΈ) μ μ¬λ λΆμ
μ μ£Όμ λ‘ κ°λ°μ μ§ννμ΅λλ€.
μ¬μ©μκ° μμ μ΄ λ±λ‘νκ³ μ νλ μν νΉμ λμμΈ μ΄λ―Έμ§λ₯Ό μ λ‘λνλ©΄
ν΄λΉ μΉ μλΉμ€μμ μ¬μ μ νΉνκ° λ±λ‘λ μ λ³΄λ€ μ€ μ μ¬ν κ²μ΄ μλμ§ μ½κ² νμ ν μ μλλ‘ ν©λλ€.
μ΄λ₯Ό ν΅ν΄ νΉν μ΄λ―Έμ§ μ μ¬λ μΈ‘μ μ λν κ°κ΄μ± μ§νλ₯Ό μ»κ³ μ μ¬λ νλ³μ μμλλ μκ°μ λ¨μΆνμ¬
λΆνμν μΈλ ₯ λλΉλ₯Ό μ΅μννκ³ μ ν΄λΉ νλ‘μ νΈλ₯Ό μ§ννκ² λμμ΅λλ€.
Deep-Ranking
μ 2014λ
CVPRμμ "Learning Fine-grained Image Similarity with Deep Ranking" λ
Όλ¬Έμ κΈ°μ¬λ μ΄λ―Έμ§ μ μ¬λ
λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν μκ³ λ¦¬μ¦ μ
λλ€.
μλ‘ λ€λ₯Έ μ΄λ―Έμ§κ°μ μ μ¬μ±μ λΉκ΅νκΈ° μν΄μ triplet
μ΄λΌ λΆλ¦¬λ μ΄λ―Έμ§ μ§ν©μ μ¬μ©ν©λλ€.
μ¬κΈ°μ triplet
μ query, positive, negative
μ΄λ―Έμ§λ‘ ꡬμ±λμ΄ μλ μμ μλ―Έν©λλ€.
triplet
μ κ° μ΄λ―Έμ§λ€μ μ ν΄λ¦¬λ κ³΅κ° μμ 맀ν λμ΄ μ ν΄λ¦¬λ μ κ³± 거리
λ₯Ό ν΅ν΄ μ μ¬μ±μ λΉκ΅ν©λλ€.
μ¬κΈ°μ μ ν΄λ¦¬λ κ³΅κ° λ§€ν ν¨μλ₯Ό μλ² λ© ν¨μ
λΌκ³ νλ©° CNN κ³Ό κ°μ λͺ¨λΈμ μ¬μ©ν μ μμ΅λλ€.
μΌλ° μ ν΄λ¦¬λ κ±°λ¦¬κ° μλ μ κ³± 거리λ₯Ό μ¬μ©ν΄μ ν΄λ¬μ€ν°λ§μ κ³ μν ν μ μμ΅λλ€.
μ°λ¦¬κ° μ¬μ©νλ μ ν΄λ¦¬λ μ κ³± 거리
μ μμμ λ€μκ³Ό κ°μ΅λλ€.
μ΄μ μ΄ μκ³ λ¦¬μ¦μ΄ μ¬μ©νλ μμ€ ν¨μ
λ₯Ό μμλ³΄κ² μ΅λλ€.
Deep-Ranking
μκ³ λ¦¬μ¦μ μμ κ°μ΄ triplet
μ λν hinge loss
λ₯Ό μ¬μ©νλ©°
μ΄λ₯Ό ν΅ν΄ μ μ¬ μ΄λ―Έμ§μλ λ κ°κΉκ³ μ μ¬νμ§ μμ μ΄λ―Έμ§μλ λ λ©κ² μλ² λ© λλλ‘ νμ΅λ©λλ€.
μ€μ λͺ¨λΈμμ νμ΅μ μ¬μ©λλ λͺ©μ ν¨μ
λ λ€μκ³Ό κ°μ΅λλ€.
μ¬κΈ°μ λλ€λ μ κ·νλ₯Ό μν 맀κ°λ³μμ΄λ©° μ΄λ₯Ό ν΅ν΄ μκ³ λ¦¬μ¦μ μΌλ°ν ν μ μμ΅λλ€.
ν΄λΉ λ
Όλ¬Έμμλ λλ€ κ°μ 0.001
λ‘ μ€μ νμ΅λλ€.
λν W
λ μλ² λ© ν¨μ f
μμ μ¬μ© λλ 맀κ°λ³μμ΄κ³ μ΄ κ°μ μ΅μ ν νλ κ²μ΄ λͺ©νμ
λλ€.
λ°λΌμ, μ λͺ©μ ν¨μλ₯Ό μ΄μ©ν΄μ μλ² λ© ν¨μ f
μμ μ¬μ©λλ W
μ μ΅μ μ κ°μ νμ΅νκΈ° μν΄
μ΄ν μ€λͺ νλ λ₯λ¬λ λ€νΈμν¬ κ΅¬μ‘°κ° νμ©λλ κ²μ λλ€.
Deep-Ranking
μκ³ λ¦¬μ¦μ μ 체μ μΌλ‘ λ΄€μ λ νμ΅μ μν΄ μ λ€νΈμν¬ κ΅¬μ‘°λ₯Ό μ¬μ©ν©λλ€.
Q, P, N
μ κ°κ° μ§μ, κΈμ , λΆμ μ΄λ―Έμ§λ₯Ό μλ² λ©νλ νμ λ€νΈμν¬λ₯Ό μλ―Έν©λλ€.
κ°κ°μ Layer
μ μν μ λ€μκ³Ό κ°μ΅λλ€.
-
Triplet Sampling Layer
Triplet Sampling Layer
μ κ²½μ° μ΄λ―Έμ§ μνλ‘λΆν°Triplet
μ μμ±νλ κ³μΈ΅μ λλ€.λ Όλ¬Έμ λ°λ₯΄λ©΄ νλμ μ§μ μ΄λ―Έμ§μ λ€λ₯Έ μ΄λ―Έμ§λ€ κ°μ
relevance score
λ₯Ό κ³μ°νμ¬κΈμ , λΆμ
μ΄λ―Έμ§λ₯Ό μ μνκ³ μ΄λ₯Ό ν΅ν΄triplet
μ μμ±ν©λλ€. -
Q, P, N Layer
ν΄λΉ κ³μΈ΅μ κ°κ°μ μ΄λ―Έμ§ μνμ μ ν΄λ¦¬λ 곡κ°μ μλ² λ©νλ μν μ ν©λλ€.
-
Ranking Layer
Ranking Layer
μ κ²½μ° μλ² λ©λ κ°μΌλ‘hinge loss
λ₯Ό κ³μ°νλ κ³μΈ΅μ λλ€.
μλ² λ©μ μν νμ λ€νΈμν¬ κ΅¬μ‘°(Q, P, N Layer
) λ μμ κ°μ μΈλΆ λ€νΈμν¬λ‘ ꡬμ±λ©λλ€.
μμ κ°μ΄ ConvNet
νλλ§ μ¬μ©νλ κ²μ΄ μλλΌ multi-scale
λ€νΈμν¬λ‘ ꡬμ±ν μ΄μ λ
fine-grained
ν κ²°κ³Όλ₯Ό μ»κΈ° μν¨ μ
λλ€.
ConvNet
μ μ΄λ―Έμ§ λΆλ₯μ νΉνλ κ³ μ±λ₯ λͺ¨λΈμ μ¬μ©νκ³ κ·Έ μΈ λ κ°μ Convolution Layerλ
μ
λ ₯ μ΄λ―Έμ§μ κ³ μ ν μ§μμ νΉμ±
μ κ°μ§νκΈ° μν μ©λλ‘ μ¬μ©λ©λλ€.
Hyper Parameters (μ€μ νμ΅ μ μ¬μ©)
Epoch
: 10Batch size
: 20optimizer
: AdamLearning rate
: 0.001
λ€μ μΈ κ°μ§ μ¬νμ΄ νλ‘μ νΈ μ§ν μ μ€μ λ Όλ¬Έκ³Ό λ€λ₯΄κ² ꡬνν λΆλΆμ λλ€.
-
**ConvNet
μ μ© λͺ¨λΈ**ConvNet
μ λ Όλ¬Έκ³Ό κ°μ΄AlexNet
μ μ¬μ©νμ§ μκ³ μ±λ₯μμ μ΄μ λ‘ResNet
μ μ μ©νμ΅λλ€. -
**Q, P, N
λ€νΈμν¬ κ΅¬μ‘°**λ Όλ¬Έμ λ°λ₯΄λ©΄
Q, P, N
λ€νΈμν¬μμ μ¬μ© λλ μλ² λ© ν¨μf
λ λμΌν νλΌλ―Έν° κ°W
λ₯Ό 곡μ ν©λλ€.λ°λΌμ κ΅³μ΄ 3 μ’ λ₯μ νμ λ€νΈμν¬λ₯Ό ꡬμ±νμ§ μκ³ νλμ λ€νΈμν¬λ‘ ν΅ν©νμ¬ κ΅¬ννμμ΅λλ€.
μ΄λ νλ‘μ νΈ κ·λͺ¨μ νλ ¨μ νμν λ°μ΄ν°μ μ, κ·Έλ¦¬κ³ μμ μκ° λ±μ κ³ λ €ν κ²μ λλ€.
-
**Triplet
μνλ§ λ°©μ**λ Όλ¬Έμλ
relevance score
λ₯Ό κ³μ°ν΄μ μ¨λΌμΈ λ²νΌ μνλ§ μκ³ λ¦¬μ¦μΌλ‘μ§μ μ΄λ―Έμ§μ
κΈμ , λΆμ
μ΄λ―Έμ§ μ μ ꡬμ±ν©λλ€.μ΄λ₯Ό μν΄μ λ°©λν μ΄λ―Έμ§μ κ° μ΄λ―Έμ§μ νΉμ± κ°μ μ§μ μ§μ νλ μμ μ΄ νμνλ°
(λ Όλ¬Έμ κ²½μ° 27κ°μ§μ νΉμ±μ μ§μ νμ¬
golden feature
λ₯Ό ꡬμ±ν¨)μ ν¬μ κ²½μ° νΉνμ² μ€ν API λ₯Ό ν΅ν΄ μμ§νλ μ΄λ―Έμ§ λ°μ΄ν° μμ νκ³μ νλ‘μ νΈ κΈ°κ°μ λ¬Έμ λ‘
λΉ λ₯΄κ² ꡬννκ³ ν μ€νΈνκΈ° μν΄ μ΄ λ³΄λ€ λ¨μν λ°©λ²μ΄ νμνμ΅λλ€.
λ°λΌμ
triplet
μ μ¬μ©λλ κΈμ λ° λΆμ μ΄λ―Έμ§λ κ°κ°in-class
μout-class
μμλλ€μΌλ‘ μμ±νκ³
triplet
κ²μ¦ κ³Όμ μ κ±°μ³ νλ ¨μ μ¬μ©λ μ΄λ―Έμ§ μ μ κ±Έλ¬λ΄κΈ°λ‘ νμ΅λλ€.
μν μ΄λ―Έμ§λ μ¬μ€ λλΆλΆ νΉμ κ°μ²΄(μ¬κΈ°μ λ) λΏλ§ μλλΌ μνΈλͺ λ ν¬ν¨νλ κ²½μ°κ° λ§μ΅λλ€.
μ΄ κ²½μ° ν΄λΉ μ΄λ―Έμ§λ₯Ό κ·Έλλ‘ νμ΅νλ©΄ μν μ μ¬λ μ νλκ° ν¬κ² λ¨μ΄μ§κ³ μ λ’°μ±μ μκ² λ©λλ€.
λ°λΌμ μνμ μ μ¬μ±μ ν° μν₯μ μ£Όλ νΉμ κ°μ²΄λ§ μΆμΆν΄μ λΉκ΅νκ³ μ λμ νκ² λμμ΅λλ€.
YOLO
μκ³ λ¦¬μ¦μ λ¨μΌ λ¨κ³ λ°©μ
μ κ°μ²΄ νμ§ μκ³ λ¦¬μ¦μ
λλ€.
λλ¬Έμ λ¨Όμ μμ μ μ(Region Proposal)
μ΄ νμν μ΄λ¨κ³ λ°©μ
μ μκ³ λ¦¬μ¦λ³΄λ€ μλ λ©΄μμ λ°μ΄λ©λλ€.
μ΄λ‘ μΈν΄ μ€μκ° νμ§λ₯Ό νμλ‘ νλ μ ν리μΌμ΄μ μμ λ§μ΄ νμ©λ©λλ€.
μ€μ μ¬μ©μ μν΄μ OpenCV
λ₯Ό κΈ°λ°μΌλ‘ ꡬνλ μ€ν μμ€λ₯Ό νμ© νμΌλ©°
YOLO
μ λ°±λ³Έ μν€ν
μ³μΈ DarkNet
μ νμ΅νλ λ³λμ κ³Όμ μ΄ νμνμ΅λλ€.
Deep-Ranking
μκ³ λ¦¬μ¦μ μ μ λ triplet
μ΄ νμν©λλ€.
λ
Όλ¬Έμ κ²½μ° μ¨λΌμΈ μνλ§ λ°©μμ μ¬μ©νκ³ μμ§λ§ μ ν¬λ handcrafted
λ°©μμ μ¬μ©νκΈ°λ‘ νμ΅λλ€.
μ΄λ₯Ό μν΄μ μμ νμΌλ‘ μ§μ, κΈμ , λΆμ μ΄λ―Έμ§ μ μ μμ±νκ³ κ°κ°μ μ‘°ν©μ νμΈνλ©°
λͺ¨λΈ νμ΅μ μΈ λ§ν λ°μ΄ν°λ€μ κ±Έλ¬ λ΄λ κ³Όμ μ΄ νμν©λλ€.
λͺ¨λ μ΄λ―Έμ§λ₯Ό μ§μ μ΄μ΄λ³΄λ©° λΉκ΅νλ κ²μ λ§μ μκ°μ νμλ‘ νκΈ° λλ¬Έμ
python tinker
ν¨ν€μ§λ₯Ό νμ©νμ¬ μ΄ μμ
μ λμμ£Όλ GUI νλ‘κ·Έλ¨μ μ μν΄μ μμ
μ λ¨μννμ΅λλ€.
YOLO
μκ³ λ¦¬μ¦ νλ ¨μ μν΄μ λ§μ μμ νμ΅ μ΄λ―Έμ§κ° νμνμ΅λλ€.
νμ΅μ μ¬μ©ν μΉ΄ν κ³ λ¦¬λ μ΄ 5κ°μ§ (λ, λΌμ§, μ¬μ, μ, νμ) μ΄λ©° λ°μ΄ν°λ₯Ό λͺ¨μΌκΈ° μν΄
κ΅¬κΈ μ΄λ―Έμ§ ν¬λ‘€λ¬λ₯Ό μ μνμ¬ μ§ννμ΅λλ€.
λν νΉνμ² μ€ν API λ₯Ό ν΅ν΄ νΉν μ΄λ―Έμ§μ μ 보λ₯Ό μμ§νκ³ , μ΄λ₯Ό μλννκΈ° μν΄
λ§μ°¬κ°μ§λ‘ API ν¬λ‘€λ¬λ₯Ό ꡬνν΄μ μ¬μ©νμ΅λλ€.
Learning Fine-grained Image Similarity with Deep Ranking
Learning Fine-grained Image Similarity with Deep Ranking μ 리
Euclidean and Euclidean Squared
λ₯λ¬λμ νμ©ν κ°μ²΄ νμ§ μκ³ λ¦¬μ¦ μ΄ν΄νκΈ° - SAS Korea Blog