- μλΉμ€ μκ°
- κΈ°ν λ°°κ²½
- κΈ°λ₯ μκ°
- μμ° μμ
- κΈ°μ μ€ν
- νλ‘μ νΈ μΌμ λ° μ°μΆλ¬Ό
- κ°λ° λ©€λ² λ° νκ³
- νμ€ μκ° : λ΄κ° λ§λ κ°λ©΄μΌλ‘ λ―Έν νμ
- μλΉμ€ λͺ
:
AVATIME(μλ°νμ)
-
COVID-19 λ‘ μΈν΄μ λ―Έν μ μ½κ² μ°Έμ¬ν μ μκ² λ μ¬λλ€
-
κ°λ²Όμ΄ λ―Έν μ νκ³ μΆμ μ¬λλ€
-
μ¬λ―Έμκ³ μλ‘μ΄ λ―Έν μ ν΄λ³΄κ³ μΆμ μ¬λλ€
π ** λ―Έν μ νκ³ μΆμ λͺ¨λ μ¬λλ€ **
μΌλ°μ μΈ λ―Έν
μν©μμλ μΈλͺ¨κ° 첫λ²μ§Έ νλ¨μμκ° λμ΄ μΈλͺ¨μ μμ μ΄ μλ μ¬λλ€μ μ½κ² μ μ
견μ 극볡 ν μ μμ΅λλ€. AVATIME
μ μ΄λ¬ν μΈλͺ¨μ§μμ£Όμλ₯Ό νννκ³ λꡬλ μ¦κΈΈ μ μλ λ―Έν
μ λ§λ€κ³ μ νμμ΅λλ€.
λΈλΌμΈλ μλ°ν λ―Έν
μ μ₯μ μ λ€μκ³Ό κ°μ΅λλ€. λ¨Όμ . μΌκ΅΄μ΄ κ°λ €μ§ μνλ‘ λ€λ₯Έμ¬λλ€κ³Ό μν΅μ νμ λμ νΈκΈ°μ¬μ΄ κ·Ήλν λλ©°, νΉμ μ λΆμκΈ°κ° μ£Όλ μ€λ μ λλ μ μκ³ , λν λΈλΌμΈλλΌλ νΉμ± λλ¬Έμ λ―Έν
μ ν΄λ³΄μ§ μμ μ¬μ©μλ, μΈλͺ¨κ° μ₯μ μ΄ μλ μ¬λλ€λ λΆλ΄μμ΄ μλΉμ€μ μ κ·Όκ°λ₯ν©λλ€.
μ²μ λ§λλ μ¬λλ€λΌλ¦¬ λΆλ΄μμ΄ μ¬λ―Έμλ λ―Έν μ νκ² νμ
- λΉλλ©΄ μν©μμ μ§μ λ§λμ§ μκ³ λ μ¦κΈΈ μ μλ μ¨λΌμΈ λΉλλ©΄ λ―Έν
- μλ°νλ₯Ό ν΅ν΄ μλλ₯Ό λ°λ‘ μ μ μλ€λ μ€λ νΈκΈ°μ¬ κΈ°λκ°
- λλ§μ μλ°νλ₯Ό μ¬μ©νλ―λ‘μ κ°μ±μ λ½λ΄κ³ μμ¬κ° μμΉ
WebRTCλ₯Ό λ³΄λ€ κ°λ¨νκ² μ μ©ν μ μκ³ , λ€μν νλ μμν¬μ νΈνμ±μ΄ λμ openviduλ₯Ό μ¬μ©νμ¬ νλ‘μ νΈλ₯Ό μ§ννμ΅λλ€.
AVATIME
μμλ λ―Έν
μ νμ ν΅νλ₯Ό νκΈ° μν΄ openViduλ₯Ό μ¬μ©ν©λλ€.
AVATIME
μμλ μ€μκ° μν 곡μ λ₯Ό μν΄ λ€μ μΈ λΆλΆμμ webSocketμ μ¬μ©ν©λλ€.
- μ±ν (μ 체μ±ν , μ±λ³μ±ν )
- λ°© λͺ©λ‘νλ©΄ -> λ°©μ μν(μ°Έμ¬ μ μ μ, κ²μμμμ 무)λ₯Ό μ€μκ°μΌλ‘ 곡μ ν©λλ€.
- μλ°ν μ ννλ©΄ -> λ€λ₯Έ μ¬μ©μκ° μ΄λ€ μλ°νλ₯Ό μ ννλμ§ μ€μκ°μΌλ‘ μ μ μκ³ μλ°ν μ€λ³΅ μ νμ λ§μ μ μμ΅λλ€.
MediaPipe Face Meshλ λͺ¨λ°μΌ κΈ°κΈ°μμλ μ€μκ°μΌλ‘ 468κ°μ 3D μΌκ΅΄ λλλ§ν¬λ₯Ό μΆμ νλ μ루μ μ λλ€. λ¨Έμ λ¬λ(ML)μ μ¬μ©νμ¬ 3D μΌκ΅΄ νλ©΄μ μΆλ‘ νλ―λ‘ μ μ© κΉμ΄ μΌμ μμ΄ λ¨μΌ μΉ΄λ©λΌ μ λ ₯λ§ μμΌλ©΄ λ©λλ€. μ΄ μ루μ μ νμ΄νλΌμΈ μ λ°μ κ±Έμ³ GPU κ°μκ³Ό ν¨κ» κ²½λ λͺ¨λΈ μν€ν μ²λ₯Ό νμ©νμ¬ λΌμ΄λΈ κ²½νμ μ€μν μ€μκ° μ±λ₯μ μ 곡ν©λλ€.
(μΆμ²: https://google.github.io/mediapipe/solutions/face_mesh.html)
Three.jsλ νΉμ μΉ λΈλΌμ°μ λ νλ¬κ·ΈμΈμ μμ‘΄νμ§ μκ³ μλ°μ€ν¬λ¦½νΈ μΈμ΄λ₯Ό μ¬μ©νμ¬ μΉ μ»¨ν μΈ μ ν λΆλΆμΌλ‘μ κ·Έλν½ μ²λ¦¬ μ₯μΉ(GPU)μμ κ°μλλ 3μ°¨μ 컨ν μΈ λ₯Ό λ§λ€ μ μλλ‘ ν΄μ€λλ€.
(μΆμ²: https://threejs.org/)
AVATIME
μμλ Facemesh APIλ₯Ό μ μ©ν΄ μΆμΆν 3D μΌκ΅΄ λλλ§ν¬λ₯Ό Threejs λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ μ¬μ©μμ μΌκ΅΄ μμ λ§μ€ν¬λ₯Ό κ·Έλ €λ
λλ€.
μΆκ°λ‘, μ¬μ©μκ° κ·Έλ¦° μ΄λ―Έμ§λ₯Ό μ μ©νμ¬ AVATIME
μ λ§μ€ν¬ κΈ°λ₯μ μμ±ν μ μμμ΅λλ€. μΌμͺ½μ μ¬μ©μκ° μ§μ κ·Έλ¦° μ‘μ
κ°λ©΄ μ΄λ―Έμ§ νμΌμ΄κ³ , μ€λ₯Έμͺ½μ ν΄λΉ νμΌμ μ μ©ν μμ° μμμ
λλ€.
μ κΈ°μ μ μλ κΉνμ μ°Έκ³ νμ¬ κ΅¬ννμ΅λλ€.
https://github.com/samarthgulati/ar-face-filters
Git flow μ¬μ©μ μν΄ sourcetree
νλ‘κ·Έλ¨μ μ¬μ©νμκ³ μ°μν νμ λ€μ git flowμ μ°Έκ³ νμ΅λλ€. front μ back μΌλ‘ λλμ΄ faature
μ νμ λΈλμΉλ₯Ό μ¬μ©νμμΌλ©° λ§€μΌ μ€μ μ€ν¬λΌ μ΄ν back
λΈλμΉμ front
λΈλμΉλ‘ merge νμ¬ μ¬μ©νμ΅λλ€.
commit message
λ feat(λκΈ°λ°©): μ±ν
λ°© ꡬν
κ³Ό κ°μ΄ ν΅μΌνμ¬ μμ±νμ΅λλ€.
맀주 μμμΌ μ€μ νμμμ κΈμ£Όμ μ§ν μ΄μλ₯Ό λ°±λ‘κ·Έμ λ±λ‘νμ΅λλ€. μ μ£Όμ μλ£νμ§ λͺ»ν μ΄μλ, μμΌλ‘ μ§νν μ΄μλ€μ μΆκ°ν©λλ€.
- μν½μ νμ, λ―Έν , μ€κ³ λ±μΌλ‘ ꡬμ±νμ΅λλ€.
- λ μ΄λΈμ BE, FE, full μΌλ‘ ꡬμ±νμ΅λλ€.
- μ€ν 리λ λͺ
νν μ λ¬μ μνμ¬
API λͺ μΈμ μμ±
μ κ°μ΄ μμ±νμ΅λλ€. - μμ
νν©μ μ€μκ°μΌλ‘ μ§λΌμ λ°μνμ¬ νμ¬ νμμ΄ μ΄λ€ μμ
μ νκ³ μλμ§, μΌμ μ λλ μ΄κ° μλμ§ ν λμ μμλ³Ό μ μκ² νμ΅λλ€.
-
λ―Όκ²½μ± : 맑μ κ²μ λκΉμ§ ν΄λ΄λ νμλ€ λλΆμ λ λ νκ² μμ§νλ©° κΈ°ννλ λ§νΌ 무μ¬ν λ§λ¬΄λ¦¬ ν μ μμμ΅λλ€. 첫 κΈ°νμ λ¨λ¨νκ² ν΄μΌνλ©° λ¬Έμνλ κΌΌκΌΌνκ² μμ±ν΄μΌ μ΄ν μΌμ μ΄ μννκ² μ§νλ μ μλ€λ κ²μ λ°°μ μ΅λλ€. λλΆμ΄ λ°μ λΆμκΈ°λ‘ μλ‘μ μκ²¬μ΄ μ‘΄μ€λ°λ νκ²½μμ κ°λ°νλ κ²μ΄ κ²°κ³Όλ¬Ό ν₯μμ λμμ΄ λλ κ²μ λ°°μ μ΅λλ€. Django κ° λ©μΈ νλ μμν¬μμ§λ§ Springboot λ‘ νλ‘μ νΈλ₯Ό μ§ννλ©° μ¬λ¬ νλ μμν¬λ€μ νΉμ§μ μκ² λμ΅λλ€. λν Git κ³Ό Jira λ₯Ό κ²½ννκ³ , λΈλμΉ κ΄λ¦¬λ₯Ό μ§μ μννλ©° νμλ€μ μ½λ μν©μ ν λμ νμ νλ κ²½νμ΄ μ’μμ΅λλ€. κ·Έλ¦¬κ³ μλ²½ λ¦κ²κΉμ§ κ°λ°νκ³ λ°€μ μ€μ¬κ°λ λͺ¨μ΅μ μ΄μμμμ λκΌμ΅λλ€. λ€λ₯Έ κ³³μ λ΄λκΈ°μ μλμ€λ¬μ΄ νλ‘μ νΈκ° μκ²Όλ€λ μ¬μ€μ΄ μ’μ΅λλ€.
-
κΉμ°¬μ : 6λͺ μ νμλ€κ³Ό ν¨κ» μ°Έμ¬ν 첫 λκ·λͺ¨(?) νλ‘μ νΈμμ΅λλ€. Web RTCλΌλ κΈ°μ μ μ΄μ©νμ¬ μ§μ νμ λ―Έν μλΉμ€λ₯Ό κΈ°ννκ³ κ°λ°νλκ² μ½μ§ μμμ§λ§, νμλ€μ΄ μμ΄μ κ°λ₯νλ κ² κ°μ΅λλ€. 6μ£ΌλΌλ μκ° λμ κ°λ°μ μ§ν νλ©΄μ IT μλΉμ€λ₯Ό κ°λ°νλ μΌλ ¨μ κ³Όμ μ κ²½νν μ μμμ΅λλ€. κΈ°μ‘΄μ νμ΄μ¬λ§ μ¬μ©νλ€κ° μλ° κ΄λ ¨ νλ μμν¬μ λν μ΄ν΄λ₯Ό ν μ μμκ³ , Gitμ΄λ Jiraμ κ°μ νμ ν΄λ λ°°μΈ μ μμμ΅λλ€. λ§μ§λ§μΌλ‘ μ§μ λ°°ν¬λ₯Ό ν΄λ³΄λ©΄μ Dockerκ° μ νμνμ§, μ ν¨μ€κ° μ λ§ ν¨μ¨μ μ¦κ°μν¬ μ μλ ν΄μ΄κ΅¬λ νλ κ²λ λλ μ μμμ΅λλ€. 무μ보λ€λ νμλ€ κ°μ μν΅κ³Ό λ°°λ €νλ λͺ¨μ΅λ€ λλΆμ μ’μ κ²°κ³Όλ₯Ό μ»μ΄λΌ μ μμλ κ² κ°μ΅λλ€.
-
μ΄μ§λ : μ΄λ² νλ‘μ νΈμμ WebRTC, Web Socket, JPA λ± μ²μ μ ν΄λ³΄λ κΈ°μ λ€μ΄ λ§μ μ²μμλ νλ€μμ§λ§, νμλ€ λͺ¨λκ° μ κ·Ήμ μΌλ‘ μ°Έμ¬ν λλΆμ 6μ£ΌλΌλ 짧μ μκ° λμ κ³νν κ²λ€μ λͺ¨λ ꡬνν μ μμμ΅λλ€. νΉν gitκ³Ό JIRAμ κ°μ νμ ν΄μ μ κ·Ήμ μΈ μ¬μ©μ ν΅ν΄ μ€νλΌμΈμμμ λ§λ¨μ΄ μ μλ μν©μμλ μνν μν΅μ νλ λ²μ λ°°μΈ μ μμ΄ μ’μμ΅λλ€. μ€κ°μ κ°μ‘± μ¬νμ κ°μλ μ°Έμ¬νμ λ§νΌ μ΅μ μ λ€ν΄ μ΄μ μ μΌλ‘ μνκΈ° λλ¬Έμ κ°μΈμ μΌλ‘ νν μλ νλ‘μ νΈκ° λμμμ λ¬Όλ‘ μ΄κ³ , μμΌλ‘ μ μμ μ μκ°ν λ λΉλΉνκ² BackEnd νλ‘κ·Έλλ¨ΈλΌκ³ ν μ μμ κ² κ°μ΅λλ€. μ°λ¦¬ νμλ€μ μλ μ λ νμ΄μ΄ ν¨κ»νμΌλ©΄ μ’κ² κ³ , λ€μ νλ‘μ νΈλ λ λ°μ λκ³ μμ±λ κ²°κ³Όλ¬Όμ λ΄κ³ μΆμ΅λλ€!
-
μ΄μ£Όμ : μ²μ μ νλ Web RTCλΌλ κΈ°μ μ μ¬μ©νλ νλ‘μ νΈλΌ κ±±μ μ΄ μμ°μ΅λλ€. νμ§λ§ μ±μ€νκ³ μ λ₯ν λ©μ§ νμλ€μ λ§λ ν° μ΄λ €μ μμ΄ νλ‘μ νΈλ₯Ό μ§νν μ μμμ΅λλ€. λͺ¨λ νμλ€μ΄ μ κ·Ήμ μΌλ‘ μ°Έμ¬ν΄μ€ κ²°κ³Ό λ§μ‘±μ€λ¬μ΄ μλΉμ€ κΈ°νμ ν μ μμκ³ , νλ‘μ νΈ μ΄λ°μ μ΄μ κ·Έλλ‘ κ°λ°, ν μ€νΈ, λ°°ν¬ λ¨κ³κΉμ§ μ΄μ΄λκ° μ μμμ΅λλ€.
κ°μΈμ μΌλ‘ μ΄ νλ‘μ νΈλ λ μ±κ³΅μ΄λΌκ³ μκ°ν©λλ€. κ·Έ μ΄μ λ νλ‘ νΈ/λ°± μλ νμλ€ λͺ¨λ κ° λΆμΌμ μ¬λ―Έλ₯Ό λλΌκ³ , λ 곡λΆνκ³ μΆλ€λ μꡬλ₯Ό λλΌκ² ν΄μ€ μ μ΅ν κ²½νμ΄ λμλ€κ³ μκ°νκΈ° λλ¬Έμ λλ€. κ·Έ μλλ ₯μ ν ꡬμ±μ νλνλκ° μ’μ νμμ΄ λμκΈ° λλ¬Έμ΄ μλκΉ μκ°ν©λλ€. λͺ¨λ νμλ€μκ² κ°μ¬νλ€λ λ§μ νκ³ μΆκ³ , λͺ¨λλ€ κ³ μνμ ¨μ΅λλ€~~ -
μ κ±΄μ° : FrontEnd μΈ λͺ λͺ¨λ Reactλ₯Ό μ¬μ©ν΄λ³΄μ§ μμμ μ€ν°λλ₯Ό μ§ννλ©° νμ΅ λ΄μ©μ 곡μ νλ κ²μ΄ κ°λ°νλ λ°μ ν° λμμ΄ λ κ² κ°μ΅λλ€. μ΄λ² νλ‘μ νΈλ₯Ό μ§ννλ©΄μ React, TypeScriptμ μΉν΄μ§ μ μμ΄μ μ’μκ³ , νμμ μ¬μ©ν΄λ³΄μ§ λͺ»νλ μ¬λ¬ APIλ₯Ό μ μ©ν¨μ λ°λΌ νλ‘μ νΈ ν리ν°κ° μ¬λΌκ°λ κ²μ λ³΄κ³ κ°λ°μ μ¬λ―Έλ₯Ό λκΌμ΅λλ€.
μ¬λ¬ λͺ κ³Ό ν¨κ»νλ 첫 μΉ νλ‘μ νΈμ¬μ μ€λ λ° κ±±μ λ° μ΄μλλ°, μ΄μ¬ν μ°Έμ¬νλ νμλ€μ λ§λμ νλ‘μ νΈλ₯Ό μ λ§λ¬΄λ¦¬ ν μ μμλ κ² κ°μ΅λλ€. λ€μ νλ‘μ νΈλ μλ‘μ΄ κΈ°μ λ€κ³Ό ν¨κ» μ¬λ°κ² νκ³ μΆμ΄μ! -
μ±μ€μ : μ’μ νμλ€μ λ§λ ν볡νμ΅λλ€!! κΈ°μ μ μΈ λΆλΆλΏλ§ μλλΌ νμν¬, νμ , μν΅μ μ€μμ±μ λν΄ λ§μ΄ κ³ λ―Όνκ³ λ λ§μ΄ λ°°μ°κ³ μ±μ₯ν μ μμμ΅λλ€. TSμ Reactλ₯Ό μ²μ μ¬μ©ν΄λ³΄λ©°, μνμ°©μ€λ κ²ͺμμ§λ§ νμ μ λͺ μν΄μ€ λ€λ κ²μ΄ μΌλ§λ ν° μ₯μ μΈμ§ κΉ¨λ¬μμ΅λλ€.
νλ‘μ νΈ κΈ°κ°λμ μ΅μ μ λ€νκΈ°μAVATIME
μ λν μμ¬μμ μμ΅λλ€! μ κ° λ³΄κΈ°μλ λ©μ§ νλ‘μ νΈμΈ λ§νΌ μ¬λ¬λΆμ΄ λ³΄μ€ λλ κ·Έλ κ² λκ»΄μ‘μΌλ©΄ μ’κ² μ΅λλ€. μμΌλ‘ λ λ§μ΄ λ°°μ°λ©° μ΄λμλ μ’μ νμμΌ μ μλ νλ‘ νΈμλ κ°λ°μλ‘ μ±μ₯νκ³ μΆμ΅λλ€.