μμ° μμ : https://www.youtube.com/watch?v=MN8RRHVUI4Q
μ€λͺ
μμ : https://www.youtube.com/watch?v=NsuU9V1JWTs
-
μμ μΆμ μ ν΅ν μ¨λΌμΈ μν λΆμ νμ νμ§ νλ‘κ·Έλ¨ μ λλ€.
-
μΆκ°μ μΌλ‘ μλ²μμ QRμ½λ λμ‘°λ₯Ό ν΅ν΄μ μ€μκ° μ μ νμΈμ ν©λλ€.
-
μ μΈμ μΉ΄λ©λΌ λ±μ νΉμν μ₯μΉ μμ΄ μ€λ§νΈν°μΌλ‘ μμ μΆμ μ ν μ μμ΅λλ€.
-
μλλ‘μ΄λ μ±, μΈμ¦μλ², κ΄λ¦¬μμ© μΉνμ΄μ§, μνμμ© ν΄λΌμ΄μΈνΈ μ μ°λνμ¬ μ¬μ©ν μ μμ΅λλ€.
-
μμ μΆμ μ νλμ νκ°λ μμ§ μλ£λμ§ μμμ΅λλ€.
-
νμ¬ fbeye.xyz μΉμ¬μ΄νΈ νμ΄μ§λ μ μ μΉνμ΄μ§λ‘ μ νλ μνμ λλ€.
- μ΄ κΈ°λ₯μ Learning to Find Eye Region Landmarks for Remote Gaze Estimation in Unconstrained Settings μ μΈμ©νμ¬ μ μλμμ΅λλ€. μμΈ λͺ¨λΈ ꡬνμ λ Όλ¬Έμ μ°Έκ³ νμκΈ° λ°λλλ€.
- λ μμμ κ·Έλ μ΄μ€μΌμΌ μ΄λ―Έμ§λ₯Ό μ λ ₯νλ©΄, ν΄λΉνλ λ μ΄λ―Έμ§μμ Eyelid, Iris edgeμ Iris center, Eyeball Centerκ° μΆλ ₯λ©λλ€.
- μ λ ₯ν¬κΈ°λ 108*180*1 μ΄λ©° μΆλ ₯ν¬κΈ°λ 36*60*18 μ λλ€.
- HeatMap ννλ‘ μΆλ ₯λλ©°, κ° μμμ ν΄λΉνλ κ°μ€ μ΅λμΉλ₯Ό μ°Ύμ μ’νλ‘ λ³ννλ©΄ μ¬μ© ν μ μμ΅λλ€.
- λͺ¨λΈμ λ°μ€ν¬νμμ νμ΅λμμΌλ©° μΆ©λΆν νμ΅λ λͺ¨λΈμ μλλ‘μ΄λμμ μ¬μ© ν μ μλλ‘ λ³ννμμ΅λλ€.
- λ³νλ λͺ¨λΈμ μΆκ°μ μΈ νμ΅μ΄ λΆκ°λ₯νλ©°, Tensorflow-lite λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ λμμν¬μ μμ΅λλ€.
- νμ΅μ μ¬μ©λ λ°μ΄ν°μ μ 420λ§κ° κ°λμ λλ€.
- CameraX λΌμ΄λΈλ¬λ¦¬μ Google Mlkit λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ μΌκ΅΄ λ° μΌκ΅΄μ νΉμ§μ μ μ°Ύμ΅λλ€.
- Face Detectionμ μ
λ ₯λλ μ΄λ―Έμ§μ ν¬κΈ°λ 640 x 480μ΄μ΄μΌ νλ©°, μΆλ ₯λλ μ΄λ―Έμ§ λν 640 x 480 μ
λλ€. μ΄λ μλ³Έμ΄λ―Έμ§μ ν¬κΈ° λ° λΉμ¨κ³Όλ λ
립μ μ
λλ€.
- CameraX λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ λ³λ€λ₯Έ μ€μ μ ν νμκ° μμ΅λλ€.
- μΌκ΅΄μ΄ 20νλ μ μ΄μ κ²μΆλμ§ μλ κ²½μ° μ리μ΄νλ‘ νλ¨νμ¬ μλ²μ λ‘κ·Έλ₯Ό μ μ‘ν©λλ€.
- μλ²μμ μ΄λ―Έμ§ μμ²μ΄ μ€λκ²½μ° μΌκ΅΄μ΄ κ²μΆλμ§ μλ κ²½μ°μλ μ λ©΄ μΉ΄λ©λΌ μμμ μ μ‘ν©λλ€.
- μμ Face DetectionμΌλ‘ μ»μ΄λΈ μΌκ΅΄ νΉμ§μ μ μ¬μ©ν©λλ€.
- μΌκ΅΄ νΉμ§μ μ€ μΌμͺ½ λ° μ€λ₯Έμͺ½ λμ μμΉλ₯Ό μ°Ύκ³ , μ΄λ₯Ό μ΄λ―Έμ§λ‘ μΆμΆν©λλ€.
- Tensorflow-lite λΌμ΄λΈλ¬λ¦¬λ‘ Eye LandMark Detection λͺ¨λΈμ μλμμΌ 2μ μ΄λ―Έμ§μμ Eye Landmarkλ₯Ό μ»μ΄λ λλ€.
- 3μμ μ»μ Eye Landmarkλ₯Ό κΈ°λ°μΌλ‘ μμ λ°©ν₯ κ°μ ꡬν©λλ€.
- μμ λ°©ν₯ κ°μ μΈμ¦μλ²λ‘ μ μ‘ν©λλ€.
- μλ²μμ μ΄λ―Έμ§ μ μ‘μμ²μ΄ μ€λκ²½μ°, λλμμ ν λ리μ μμ λ°©ν₯μ΄ κ·Έλ €μ§ μ΄λ―Έμ§λ₯Ό μμ±νμ¬ μλ²λ‘ μ μ‘ν©λλ€.
- κ²μΆ μλ ν₯μμ μν΄ GPU κ°μμ μ¬μ©ν©λλ€.
- κΈ°κΈ°μ λ°λΌ GPU κ°μμ μ¬μ©ν μ μλ κ²½μ°λ μμ΅λλ€. μ΄ κ²½μ° κ΄λ ¨ μ΅μ μ μ κ±°ν΄ μ£ΌμκΈ° λ°λλλ€.
- Google Mlkit λ° CameraX λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ PC ν΄λΌμ΄μΈνΈμμ 보μ¬μ£Όλ QR Codeλ₯Ό μΈμν©λλ€.
- QRμ½λλ₯Ό 첫λ²μ§Έλ‘ μΈμν κ²½μ° 5μ΄κ° λκΈ° ν λ€μ μλ²λ‘ μ μ‘ν©λλ€.
- 2μ λκΈ°μκ° μ€ ν΄λν°μ νλ€λ¦Όμ΄ κ°μ§λλ©΄ νΈλν°μ μ¬μ©ν κ²μΌλ‘ κ°μ£Όνμ¬ λ€μ 5μ΄κ° λκΈ°ν©λλ€.
- QR Codeκ° μΈμ¦μλ²μμ νμΈλ κ²½μ°μλ§ μλλ‘μ΄λ μ΄ν리μΌμ΄μ
λ° PC ν΄λΌμ΄μΈνΈλ₯Ό μ μμ μΌλ‘ μ¬μ© ν μ μμ΅λλ€.
- μ¬μ€μμ λ‘κ·ΈμΈ κΈ°λ₯μ λλ€.
- μ΄ν μνμ μμνλ λμμλ μ£ΌκΈ°μ μΌλ‘ λ³κ²½λλ QR Codeλ₯Ό μΈμνμ¬ μλ²λ‘ μ μ‘ν©λλ€.
- QR Codeμμ μΌλΆ λ°μ΄ν°λ₯Ό μΆμΆνμ¬ μ΄λ―Έμ§ μλ²μμ μ°κ²°μ μ±λ¦½μν¬λλ μ¬μ©ν©λλ€.
- 보μμ μν΄ SSLSocketκ³Ό νλ‘ν μ½ TLSv1.2λ₯Ό μ¬μ©ν΄μ μ°κ²°νμ΅λλ€.
- μνν ν΅μ μ μν΄ JSONOBJECTμ μ¬μ©ν΄μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ΅λλ€.
- Socket.IOλ₯Ό μ¬μ©ν΄μ μ°κ²°νμ΅λλ€.
- μ΄λ―Έμ§μ μμ±κ³Ό μ μ‘μ λΉμ©μ΄ ν¬κΈ° λλ¬Έμ μλ²λ‘λΆν° μμ²μ΄ λ€μ΄μ€λ κ²½μ°μλ§ μ΄λ―Έμ§λ₯Ό μ μ‘ν©λλ€.
- μ΄λ―Έμ§ μλ²μμ μ¬μ©νκΈ° νΈνλλ‘ μ μ νκ² λ¦¬μ¬μ΄μ§ν base64 μ΄λ―Έμ§λ‘ λ³νν©λλ€.
- stopλͺ λ Ήμ΄ μ€κΈ° μ κΉμ§ 맀 νλ μλ§λ€ λ³νλ μ΄λ―Έμ§λ₯Ό κ³μν΄μ 보λ λλ€.
- κ°κ°μ νλ©΄λ€μ wakelockμ μ΄μ©ν΄μ μ€ν μ€μ κΊΌμ§μ§ μμ΅λλ€.
- μ¬μ©μμ νΈμμ±μ μν΄ μ²μ μΉ΄λ©λΌ μ‘°μ μ μ μΈνλ©΄ νΉλ³ν μ‘°μμ΄ νμμμ΅λλ€.
- μν λμ€μ UIκ° μ¬λΌμ§λλ€.
- Recommended Device : Samsung Galaxy S10 series or later
- Android : Oreo or later (API 22+)
- ABI : armeabi-v7a or arm64-v8a
- kotlinx-coroutines
- Google MLkit barcode Scanning
- Google MLkit Face detection
- Android CameraX
- Socket.io
- OpenCV
- Tensorflow-lite
@inproceedings{Park2018ETRA, author = {Park, Seonwook and Zhang, Xucong and Bulling, Andreas and Hilliges, Otmar}, title = {Learning to Find Eye Region Landmarks for Remote Gaze Estimation in Unconstrained Settings}, booktitle = {ACM Symposium on Eye Tracking Research and Applications (ETRA)}, series = {ETRA '18}, year = {2018}, location = {Warsaw, Poland}, publisher = {ACM}, address = {New York, NY, USA}, }
npm start
FBEye Web Serverλ μν κ°λ μλ₯Ό μν μν κ΄λ¦¬/κ°λ μΉ μ΄ν리μΌμ΄μ μ λλ€. μν κ΄λ¦¬μ(κ°λ ) κ³μ μΌλ‘ νμκ°μ λ° λ‘κ·ΈμΈνμ¬ μ¬μ©ν μ μμ΅λλ€.
- μν κ΄λ¦¬ νμ΄μ§, λ¬Έμ κ΄λ¦¬ νμ΄μ§, μμμ κ΄λ¦¬ νμ΄μ§λ₯Ό μ΄μ©ν΄ μνμ μμ±νκ±°λ μμ ν μ μμΌλ©°, μν λ¬Έμ μ μμμμ λν μ 보λ₯Ό μμ ν μ μμ΅λλ€.
- μν λμ€ μ±ν μΌλ‘ μμμλ€κ³Ό μ€μκ°μΌλ‘ μν΅νλ©° μνμ κ΄ν νΌλλ°±μ λΉ λ₯΄κ² μ£Όκ³ λ°μ μ μμ΅λλ€.
- μμμκ° λΆμ νμλ‘ μμ¬λλ νμλ₯Ό ν μ ν΄λΉ μ¬νμ λν λ‘κ·Έκ° κ°λ κ΄μκ² μ μ‘λ©λλ€. κ°λ κ΄μ μΉ νμ΄μ§λ‘ μ μ‘λ λ‘κ·Έλ₯Ό λ³΄κ³ λκ° μ΄λ€ νμλ₯Ό νλμ§ νμΈν μ μμ΅λλ€.
- μ°Έμ¬μ λͺ©λ‘μμ μμμλ₯Ό μ ννμ¬ ν΄λΉ μμμμ μΌκ΅΄κ³Ό νλ©΄ μμμ μ€μκ°μΌλ‘ λ³Ό μ μμ΅λλ€.
- Javascript λ°νμ Node.jsμ μΉ νλ μμν¬ Express.jsλ₯Ό μ¬μ©νμ¬ κ΅¬ννμ΅λλ€.
- socket.ioλ₯Ό ν΅ν μ€μκ° μ±ν λ° μ¬μ§ μ€νΈλ¦¬λ°
- MongoDBλ₯Ό μ¬μ©νμ¬ DB μλ² κ΅¬ν
FBEye Web Serverμ μλ μ리μ λν΄ μ€λͺ νλ ννΈμ λλ€.
- νμκ°μ νμ΄μ§μμ μ΄λ©μΌκ³Ό λΉλ°λ²νΈ, νμΈ λΉλ°λ²νΈλ₯Ό μ λ ₯νμ¬ νμκ°μ μ ν©λλ€. νμκ°μ μ νλ©° μ¬μ©μκ° μ λ ₯ν λ°μ΄ν°λ μλ²λ‘ μ μ‘λ©λλ€.
- λΉλ°λ²νΈμ νμΈ λΉλ°λ²νΈκ° μΌμΉνλμ§ κ²μ¬ν©λλ€. μΌμΉνμ§ μλλ€λ©΄ ν¨μ€μλκ° μΌμΉνμ§ μλλ€κ³ flashλ₯Ό μ μ‘νλ©° νμκ°μ νμ΄μ§λ‘ 리λ€μ΄λ νΈνκ³ , μΌμΉνλ€λ©΄ λ€μ λ¨κ³λ‘ λμ΄κ°λλ€.
- μ μ‘λ°μ λ°μ΄ν°μ λμΌν μ λ³΄κ° DBμ μ μ₯λμ΄ μλμ§ κ²μ¬ν©λλ€. λμΌν μ λ³΄κ° DBμ μ΄λ―Έ μ μ₯λμ΄ μλ€λ©΄ μ΄λ―Έ λ±λ‘λ μ΄λ©μΌμ΄λΌκ³ flashλ₯Ό μ μ‘νλ©° νμκ°μ νμ΄μ§λ‘ 리λ€μ΄λ νΈνκ³ , μλ‘μ΄ λ°μ΄ν°λΌλ©΄ DBμ λ°μ΄ν°λ₯Ό μ μ₯ν λ€ νμκ°μ μ μ±κ³΅νμλ€κ³ flashλ₯Ό μ μ‘νλ©° λ‘κ·ΈμΈ νμ΄μ§λ‘ 리λ€μ΄λ νΈν©λλ€.
- μ¬μ©μκ° λ‘κ·ΈμΈμ μλνλ©΄μ μ λ ₯ν μ΄λ©μΌκ³Ό λΉλ°λ²νΈκ° μλ²λ‘ μ μ‘λ©λλ€.
- μλ²λ DB λ΄μ μ μ‘λ°μ λ°μ΄ν°μ μΌμΉνλ λ°μ΄ν°κ° μλμ§ κ²μ¬ν©λλ€. κ²μ¬μ μ€ν¨νλ©΄ μ΄λ©μΌμ΄λ ν¨μ€μλκ° μλͺ»λμλ€κ³ flashλ₯Ό μ μ‘νλ©° λ‘κ·ΈμΈ νμ΄μ§λ₯Ό ν΄λΌμ΄μΈνΈμκ² μ μ‘νκ³ , μ±κ³΅νλ©΄ μΈμ μ λ‘κ·ΈμΈ μ 보λ₯Ό λ±λ‘ν©λλ€.
- μλ‘μ΄ μνμ μΆκ°νλ νμ΄μ§μ λλ€. μν μ΄λ¦, μν κ°λ κ΄, μν μμ/μ’ λ£ μκ°, μν μ½λλ₯Ό κ²°μ ν©λλ€.
- μ¬μ©μλ μν μ΄λ¦, μν μμ/μ’ λ£ μκ°μ μ λ ₯ν©λλ€. κ°λ κ΄μ νμ¬ μΈμ μ μ£ΌμΈμΌλ‘, λ³κ²½ν μ μμ΅λλ€. μν μ½λλ 무μμλ‘ μμ±λλ μ½λλ‘, λ³κ²½ν μ μμ΅λλ€.
- μΆκ°λ μνμ μν κ΄λ¦¬ λͺ©λ‘μ λνλ κ°μ μ΄λ/μμ λ° κ°λ μ΄ κ°λ₯νκ² λ©λλ€.
- μνμ λν μ 보λ₯Ό νμν©λλ€. μ΄λ¦, μμ/μ’ λ£ μκ°, μν μ½λλ₯Ό νμΈν μ μκ³ , μνμ μ΄ λͺ λ¬Έμ κ° μλμ§, μμμλ μ΄ λͺ λͺ μ΄ μλμ§ νμΈν μ μμ΅λλ€. μ΄ νμ΄μ§μμλ λ¬Έμ κ΄λ¦¬, μμμ κ΄λ¦¬ νμ΄μ§λ‘ λμ΄κ° μ μμ΅λλ€.
- μνμ λ±λ‘λμ΄ μλ λ¬Έμ λ€μ λ¬Έμ λ²νΈ, λ¬Έμ λ΄μ©, λ¬Έμ νμ, λ°°μ μ μ 보λ₯Ό νμΈν μ μμ΅λλ€.
- λ¬Έμ μΆκ° λ²νΌμ λλ¬ μλ‘μ΄ λ¬Έμ λ₯Ό μΆκ°νλ νμ΄μ§λ‘ λμ΄κ° μ μκ³ , κ° λ¬Έμ λ₯Ό λλ¬ ν΄λΉ λ¬Έμ λ₯Ό μμ νλ νμ΄μ§λ‘ λμ΄κ° μ μμ΅λλ€.
- νμ, λ°°μ , λ¬Έμ , μ λ΅μ μ λ ₯ν μ μμ΅λλ€. μ¬μ©μκ° μλ£ λ²νΌμ λλ₯΄λ©΄ μ λ ₯ν λ°μ΄ν°κ° μλ²λ‘ μ μ‘λμ΄ DBμ μ μ₯λ©λλ€.
- μΆκ°λ λ¬Έμ λ₯Ό μμ ν μ μλ νμ΄μ§μ λλ€.
- μνμ λ±λ‘λ μμμλ€μ λͺ©λ‘μ λ³Ό μ μλ νμ΄μ§μ λλ€. μμμ μΆκ° λ²νΌμ λλ¬ μλ‘μ΄ μμμλ₯Ό μΆκ°νλ νμ΄μ§λ‘ λμ΄κ° μ μμ΅λλ€.
- μμμ μ΄λ©μΌ, μ΄λ¦, μμμ μ½λλ₯Ό λ±λ‘νλ νμ΄μ§μ λλ€. μ΄ μ€ μμμ μ½λλ 무μμλ‘ μμ±λλ μ½λλ‘, λ³κ²½ν μ μμ΅λλ€.
μνμ΄ μΉλ€μ§λ λμ μ°Έμ¬μλ€μ κ°λ νλ νμ΄μ§μ λλ€.
- κ°λ νμ΄μ§λ ν¬κ² μ°Έμ¬μ λͺ©λ‘, μ°Έμ¬μ μμ, λΆμ νμ λ‘κ·Έ, μ±ν μ 4κ°μ ν¨λλ‘ λλμ΄μ§λλ€.
- μ°Έμ¬μ λͺ©λ‘ ν¨λμμλ μνμ λ±λ‘λ μ°Έμ¬μλ₯Ό νμΈν μ μμ΅λλ€. (( μ°Έμ¬μκ° μνμ μ μ₯νλμ§ μμ ν΅ν΄ νμΈν μ μμ΅λλ€. ))
- μ°Έμ¬μ μμ ν¨λμμλ μ°Έμ¬μλ€μ μΌκ΅΄ μμκ³Ό μν νλ©΄μ νμΈν μ μμ΅λλ€. μ°Έμ¬μ λͺ©λ‘μμ μμμ νμΈνκ³ μΆμ μ°Έμ¬μλ₯Ό λλ¬μ μ ννλ©΄ ν΄λΉ μ°Έμ¬μμ μΌκ΅΄ μμκ³Ό μν νλ©΄μ΄ μ€μκ°μΌλ‘ 보μ΄κ² λ©λλ€.
- λΆμ νμ λ‘κ·Έ ν¨λμμλ μ°Έμ¬μκ° λΆμ νμλ₯Ό νλ€κ³ μμ¬λ λλ§λ€ μ μ‘λλ λ‘κ·Έλ₯Ό λ³Ό μ μμ΅λλ€. λΆμ νμλ₯Ό νλ€κ³ μμ¬λλ μ°Έμ¬μκ° λκ΅¬κ³ , μΈμ μ΄λ€ νλμ νλμ§ νμΈν μ μμ΅λλ€.
- μ±ν ν¨λμμλ μνμ λν μ 보, μν λ¬Έμ μ λν νΌλλ°± λ±μ μ€μκ°μΌλ‘ μ°Έμ¬μλ€κ³Ό μ£Όκ³ λ°μΌλ©° μν΅ν μ μμ΅λλ€.
- Bootstrap (νλ‘ νΈμλ νλ μμν¬)
- Node.js (Javascript λ°νμ)
- Express.js (Node.js μΉ νλ μμν¬)
- ejs (Jake) (ν νλ¦Ώ μμ§)
- socket.io (WebSocket λΌμ΄λΈλ¬λ¦¬)
- MongoDB (λ¬Έμν NoSQL λ°μ΄ν°λ² μ΄μ€)
- μ²λ¦¬ μλ²μμ λ°μμ¨ QRμ½λ λ°μ΄ν°λ₯Ό ZxingλΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©ν΄μ νλ©΄μΌλ‘ μΆλ ₯ν©λλ€. μ΄λ λͺ¨λ°μΌ μ±μ ν΅ν΄ μΈμ¦νλ λ° μ¬μ©λ©λλ€.
- QRμ½λλ₯Ό ν΅ν μ€μκ° μΈμ¦μ μ€ν¨νλ©΄ μν λ¬Έμ κ° λ³΄μ΄μ§ μκ² λ©λλ€.
- μ°½ ν¬κΈ°λ₯Ό μ‘°μ νκ±°λ, μ΅μν μν¬ μ μκ² λ©λλ€.
- 2κ° μ΄μμ λͺ¨λν° μ¬μ© μ λ€λ₯Έ λͺ¨λν°μ νλ©΄μ κ°λ €μ νλμ λͺ¨λν°λ§ μ¬μ©ν μ μκ² λ©λλ€.
- μ΄ νλ‘κ·Έλ¨ μΈμ λ€λ₯Έ νλ‘κ·Έλ¨μ μμΌλ‘ λμ λ³Ό μ μκ² ν©λλ€.
- μν μμ μ€μΈ νλ©΄μ κ΄λ¦¬μμ© μΉνμ΄μ§μμ κ΄λ¦¬μκ° λ³Ό μ μκ² λ©λλ€.
- νλ©΄ λ°μ λ³΄μ§ μλλΌλ μνμ λ³Ό μ μλ νκ²½μ μ 곡ν©λλ€.
- λ©λͺ¨ν μ μλ 곡κ°μ΄ μ 곡λ©λλ€.
- μν μ’ λ£κΉμ§ λ¨μ μκ°μ νμΈν μ μμ΅λλ€.
- μ²μ μ¬μ©νλ μ¬λμ μν΄ μν μ μν νκ²½μ μ 곡ν©λλ€.
- μν μ , μ§ν μ€μ μν κ΄λ¦¬μμ μ±ν μ ν΅ν΄ μν΅ν μ μμ΅λλ€.
- μ²λ¦¬ μλ²μμ μ μ‘ν λͺ¨λ μμ λ°©ν₯ 벑ν°λ μ΅μ 5κ°μ κ°μ νκ· λ΄μ΄ μ¬μ©ν©λλ€.
- Calibration λ¨κ³μμ νλ©΄μμ νΉμ§μ μ μ³λ€λ³΄λ©° ν€ μ λ ₯μ νλ©΄ ν΄λΉ μ’νμ λν μμ λ°©ν₯ 벑ν°κ° μ λ ₯λ©λλ€.
- μλ²μμ μμ λ°μ΄ν°κ° λμ΄μ€λ κ²½μ°, λ€μκ³Ό κ°μ μμλ‘ νλ©΄μ μ’νλ₯Ό κ³μ°ν©λλ€.
- μ νκ°λ₯Ό κ³ λ₯΄κ³ κ·Έμ μ΄μν 3κ°μ μ μ κ³¨λΌ μ§μ¬κ°νμ λ§λλλ€. μ§μ¬κ°νμ΄ μλκ²½μ°λ κ³μ°νμ§ μμ΅λλ€.
- iμμ λ§λ μ§μ¬κ°νμ κ° κΌμ§μ μ λ±λ‘λμ΄ μλ μμ λ°©ν₯ 벑ν°λ€μ κ΅μ°¨νμ¬ λ§λ€μ μλ λͺ¨λ μ¬κ°νμ λνμ¬ λ€μμ μλν©λλ€.
- κ²μ¬ν κ°μ΄ μ¬κ°ν λ΄λΆμ μλμ§ νλ³ν©λλ€.
- μ¬κ°ν λ΄λΆμ μλκ²½μ° ν¬μ λ³νμ ν΅ν΄ ν΄λΉ μ¬κ°ν λ΄λΆμ μλμ’νλ₯Ό ꡬν©λλ€.
- iμμ λ§λ μ§μ¬κ°νμ μμμ κ³Ό κΈΈμ΄, bμμ μ»μ λ΄λΆμ’νλ₯Ό νμ©ν΄ νλ©΄μμ μ€ μ’νλ₯Ό κ³μ°ν©λλ€.
- 2μμ μ»μ λͺ¨λ κ°λ€μ€ μ λ 25%λ₯Ό μ μΈν 25%~75%μ κ°λ€μ νκ· μ λ΄μ΄ νμ¬ μμ μ λν νλ©΄μ μ’νλ₯Ό μ»μ΄λ λλ€.
- Calibration λ¨κ³μμ Eye-Trackingμ΄ μ λλμ§ νμΈ ν μ μμ΅λλ€.
- λͺ¨λ νΉμ§μ μ λν΄ 5ν μ΄μμ κ°μ΄ μ λ ₯λκ²½μ° Calibrationμ΄ μ’ λ£λ©λλ€.
- μν μμλ¨κ³μμ 2μμ μ»μ κ°μ΄ μ ν μλ κ²½μ°, μμ μ΄ νλ©΄ λ°μΌλ‘ λκ°κ²μΌλ‘ κ°μ£Ό, μλ²λ‘ λΆμ νμ λ‘κ·Έλ₯Ό μ μ‘ν©λλ€.
- Zxing
- JSON
- Node.js 12 or later μ€μΉ
npm install
λͺ λ Ήμ μ¬μ©νμ¬ μμ‘΄μ± ν¨ν€μ§ μ€μΉ
npm start
- settings.json νμΌμ μμ νμ¬ μ€μ
key
: TLSμ μ¬μ©ν κ°μΈν€cert
: TLSμ μ¬μ©ν μΈμ¦μdesktop.port
: λ°μ€ν¬ν μ± μ°κ²°μ μν ν¬νΈmobile.port
: λͺ¨λ°μΌ μ± μ°κ²°μ μν ν¬νΈ
uri
: MongoDB μλ² μ£Όμ
size
: μΈμ¦ μ½λμ κΈΈμ΄interval
: μΈμ¦ μ½λ κ°±μ μ£ΌκΈ°
algorithm
: μνΈν μκ³ λ¦¬μ¦length
: μνΈνμ μ¬μ©ν ν€μ κΈΈμ΄