diff --git a/face_mesh.blend b/face_mesh.blend index 15e27fa..e7c6588 100644 Binary files a/face_mesh.blend and b/face_mesh.blend differ diff --git a/face_mesh.obj b/face_mesh.obj index f15f226..d5b838a 100644 --- a/face_mesh.obj +++ b/face_mesh.obj @@ -1,484 +1,484 @@ # Blender 3.1.0 # www.blender.org o FaceMesh -v 0.000000 -0.041968 0.026858 -v 0.000000 -0.015171 0.050020 -v 0.000000 -0.023985 0.028034 -v -0.006552 0.014237 0.039959 -v 0.000000 -0.006117 0.052954 -v 0.000000 0.005987 0.049892 -v -0.000000 0.034861 0.029552 -v -0.056519 0.035433 -0.002649 -v -0.000000 0.055907 0.025395 -v -0.000000 0.068134 0.027961 -v -0.000000 0.115763 0.021217 -v 0.000000 -0.044206 0.025427 -v 0.000000 -0.046358 0.022531 -v 0.000000 -0.048050 0.018078 -v 0.000000 -0.053321 0.018260 -v 0.000000 -0.057228 0.018925 -v 0.000000 -0.061770 0.020524 -v 0.000000 -0.066710 0.019180 -v 0.000000 -0.073474 0.010821 -v 0.000000 -0.019465 0.045691 -v -0.007727 -0.019628 0.034144 -v -0.092583 0.070195 -0.039241 -v -0.033365 0.029697 0.005504 -v -0.041949 0.028460 0.005009 -v -0.050026 0.028586 0.002770 -v -0.059813 0.032472 -0.004272 -v -0.026009 0.032171 0.004602 -v -0.047768 0.053147 0.008836 -v -0.037692 0.052886 0.008953 -v -0.056506 0.050840 0.006026 -v -0.061665 0.047135 0.002686 -v -0.067153 0.027208 -0.008740 -v -0.028692 -0.086954 0.000228 -v -0.059283 0.037380 -0.005315 -v -0.093329 0.030461 -0.045278 -v -0.076747 0.032790 -0.016627 -v -0.040481 -0.006775 0.011031 -v -0.010038 -0.040066 0.025853 -v -0.009347 -0.045538 0.021275 -v -0.019373 -0.041914 0.020768 -v -0.025912 -0.043911 0.014284 -v -0.017092 -0.045551 0.017901 -v -0.023150 -0.046305 0.011945 -v -0.037296 -0.057468 0.000198 -v -0.006375 -0.014908 0.049347 -v -0.007345 -0.006125 0.052032 -v -0.074654 0.053659 0.001508 -v -0.023775 0.015149 0.013316 -v -0.025140 -0.011786 0.028842 -v -0.025496 -0.006850 0.026319 -v -0.064854 -0.005541 0.000608 -v -0.006996 0.004926 0.047449 -v -0.056159 0.063681 0.016223 -v -0.067436 0.060095 0.009788 -v -0.084558 0.087086 -0.021994 -v -0.018350 0.058071 0.022980 -v -0.028730 0.049600 0.006418 -v -0.043675 -0.049521 -0.001186 -v -0.078384 -0.051267 -0.073625 -v -0.019381 -0.017261 0.025577 -v -0.013126 -0.019915 0.025946 -v -0.035118 -0.047419 -0.000708 -v -0.033047 -0.047550 0.001606 -v -0.072275 0.065365 0.006218 -v -0.025646 -0.015138 0.023971 -v -0.040074 0.063723 0.020752 -v -0.042117 0.070884 0.022985 -v -0.049370 0.110307 0.010550 -v -0.077501 0.077595 -0.005850 -v -0.043648 0.091615 0.017568 -v -0.079628 0.057332 -0.005227 -v -0.086018 0.064229 -0.020935 -v -0.009835 -0.043064 0.024476 -v -0.018261 -0.043855 0.019604 -v -0.024608 -0.045069 0.013721 -v -0.017666 -0.018760 0.023786 -v -0.034051 -0.047481 0.000539 -v -0.030102 -0.050361 0.005395 -v -0.031984 -0.047727 0.001917 -v -0.015177 -0.014594 0.037485 -v -0.021913 -0.047266 0.010171 -v -0.015951 -0.047021 0.014006 -v -0.008705 -0.047315 0.017073 -v -0.011183 -0.073018 0.010414 -v -0.011539 -0.065504 0.018601 -v -0.010876 -0.060591 0.019719 -v -0.009970 -0.056044 0.017959 -v -0.008987 -0.052477 0.017235 -v -0.022060 -0.050052 0.010080 -v -0.023723 -0.051417 0.010856 -v -0.025668 -0.053470 0.011730 -v -0.027256 -0.056131 0.010184 -v -0.034527 -0.036552 0.012058 -v -0.090510 -0.010153 -0.082701 -v 0.000000 -0.022110 0.034384 -v -0.026437 -0.049165 0.005337 -v -0.028247 -0.049600 0.005670 -v -0.010552 -0.023226 0.025722 -v -0.023042 -0.020302 0.017434 -v -0.011758 -0.021578 0.026169 -v -0.032311 0.010175 0.010099 -v -0.045862 0.004365 0.007566 -v -0.027012 -0.010555 0.021397 -v -0.070741 0.100925 -0.004523 -v -0.063951 0.087158 0.006513 -v -0.059505 0.070513 0.015336 -v -0.030353 -0.063606 0.004280 -v -0.021831 0.069566 0.026869 -v -0.023099 0.092814 0.023770 -v -0.026541 0.114894 0.019144 -v -0.056345 0.029713 -0.000853 -v -0.075999 0.021152 -0.013657 -v -0.021246 0.034384 0.003644 -v -0.069444 0.043182 -0.004160 -v -0.018108 0.020736 0.016539 -v -0.020069 -0.008943 0.037251 -v -0.084885 0.014908 -0.023427 -v -0.070689 0.015316 -0.006619 -v -0.060352 0.012612 0.000796 -v -0.044397 0.014300 0.004501 -v -0.032547 0.018250 0.006392 -v -0.023877 0.022663 0.008898 -v -0.007637 0.032489 0.026358 -v -0.082497 -0.003141 -0.022230 -v -0.076336 0.044317 -0.007684 -v -0.003881 -0.019205 0.045217 -v -0.023041 0.006367 0.016293 -v -0.096435 0.030178 -0.073121 -v -0.017470 0.027286 0.010560 -v -0.027773 -0.011261 0.012846 -v -0.063269 0.037112 -0.007025 -v -0.020282 -0.002933 0.034168 -v -0.085449 -0.030799 -0.080371 -v -0.021081 0.037278 0.002018 -v -0.013790 0.001956 0.042380 -v -0.060950 -0.068424 -0.030229 -v -0.059200 -0.078307 -0.045890 -v -0.089225 -0.007189 -0.052189 -v -0.071053 -0.057756 -0.040060 -v -0.090270 0.048535 -0.035330 -v -0.029450 -0.095291 -0.005342 -v -0.003263 -0.021780 0.033816 -v -0.030460 0.000172 0.012861 -v -0.083282 0.031235 -0.024950 -v -0.049037 0.033118 0.002306 -v -0.042035 0.032907 0.004337 -v -0.031726 -0.051476 0.003902 -v -0.079982 -0.020733 -0.026168 -v -0.015341 -0.106374 -0.007728 -v -0.037438 -0.096061 -0.023787 -v -0.047236 -0.088790 -0.033392 -v -0.000000 0.092680 0.025511 -v 0.000000 -0.107565 -0.005550 -v -0.034794 0.034014 0.004680 -v -0.027808 0.035753 0.003547 -v -0.023269 0.036544 0.002077 -v -0.081975 0.045938 -0.015937 -v -0.029171 0.043362 0.005133 -v -0.036992 0.045179 0.006646 -v -0.044494 0.044850 0.006322 -v -0.051406 0.042923 0.004227 -v -0.055393 0.040672 0.001409 -v -0.096204 0.052003 -0.057931 -v -0.053525 0.034151 -0.000346 -v 0.000000 -0.030411 0.025676 -v -0.026211 -0.032277 0.017044 -v -0.019238 -0.015933 0.029078 -v -0.011427 -0.030431 0.024872 -v -0.000000 0.045688 0.024301 -v -0.050173 -0.079142 -0.022662 -v -0.039947 -0.087265 -0.014640 -v -0.016232 -0.100613 0.002496 -v -0.069219 -0.066890 -0.060608 -v -0.023636 0.039899 0.003373 -v -0.012660 0.018211 0.027995 -v 0.000000 -0.101793 0.004254 -v -0.027231 -0.102238 -0.013965 -v -0.084918 -0.025988 -0.052274 -v -0.016115 -0.051261 0.014086 -v -0.017730 -0.053846 0.014984 -v -0.019275 -0.057306 0.016171 -v -0.020457 -0.061686 0.014962 -v -0.021818 -0.069013 0.008447 -v -0.028251 -0.047035 0.006599 -v -0.029752 -0.046377 0.006644 -v -0.030998 -0.045676 0.006850 -v -0.040907 -0.042353 0.005804 -v -0.070283 -0.024449 -0.009304 -v -0.012719 0.027108 0.020855 -v -0.016354 0.044105 0.007986 -v -0.020793 0.043008 0.004947 -v -0.026734 -0.047770 0.005509 -v -0.069683 -0.045259 -0.023267 -v -0.010317 0.045206 0.018557 -v -0.025497 -0.077877 0.003818 -v 0.000000 0.015740 0.042726 -v -0.007150 0.022986 0.034190 -v 0.000000 0.024901 0.036041 -v -0.018096 0.004460 0.027243 -v 0.000000 -0.093530 0.009533 -v 0.000000 -0.083089 0.010058 -v -0.013380 -0.082513 0.008472 -v -0.043618 -0.062071 -0.004540 -v -0.034691 -0.018011 0.010562 -v -0.035113 -0.071088 -0.000837 -v -0.053669 -0.016812 0.007175 -v -0.042620 -0.026475 0.008404 -v -0.060150 -0.030489 -0.000305 -v -0.015670 -0.092637 0.007516 -v -0.022874 -0.000250 0.020879 -v -0.049083 -0.069375 -0.012657 -v -0.038670 -0.078692 -0.007582 -v -0.050627 -0.051599 -0.004722 -v -0.076987 -0.035353 -0.030096 -v -0.059539 -0.053605 -0.012789 -v -0.079629 -0.042947 -0.050147 -v -0.049187 -0.036676 0.003864 -v -0.017671 0.012337 0.021652 -v -0.017630 -0.012932 0.039237 -v -0.022722 -0.014888 0.029724 -v -0.014099 -0.007282 0.045074 -v -0.023703 0.051626 0.010931 -v -0.038549 0.056449 0.012564 -v -0.051176 0.056720 0.011857 -v -0.061051 0.054237 0.008265 -v -0.067196 0.049872 0.003077 -v -0.069207 0.035218 -0.010440 -v -0.092425 0.011630 -0.049223 -v -0.062638 0.023696 -0.004696 -v -0.054551 0.021692 0.000242 -v -0.043373 0.022043 0.003503 -v -0.032681 0.024480 0.004982 -v -0.024389 0.027673 0.005546 -v -0.018799 0.030530 0.006190 -v -0.093935 0.009918 -0.080625 -v -0.022721 -0.016911 0.025496 -v -0.012642 0.010097 0.033998 -v -0.012010 -0.013642 0.045521 -v -0.008054 -0.017791 0.041864 -v -0.012081 -0.015049 0.041467 -v -0.020674 -0.019342 0.022415 -v -0.006438 -0.018621 0.044032 -v -0.005841 -0.021046 0.034005 -v -0.018392 0.037014 0.003094 -v -0.014686 0.035356 0.007793 -v -0.012858 0.034181 0.013323 -v -0.057585 0.038981 -0.001519 -v -0.064457 0.042855 -0.002126 -v 0.006552 0.014237 0.039959 -v 0.056519 0.035433 -0.002649 -v 0.007727 -0.019628 0.034144 -v 0.092583 0.070195 -0.039241 -v 0.033365 0.029697 0.005504 -v 0.041949 0.028460 0.005009 -v 0.050026 0.028586 0.002770 -v 0.059813 0.032472 -0.004272 -v 0.026009 0.032171 0.004602 -v 0.047768 0.053147 0.008836 -v 0.037692 0.052886 0.008953 -v 0.056506 0.050840 0.006026 -v 0.061665 0.047135 0.002686 -v 0.067153 0.027208 -0.008740 -v 0.028692 -0.086954 0.000228 -v 0.059283 0.037380 -0.005315 -v 0.093329 0.030461 -0.045278 -v 0.076747 0.032790 -0.016627 -v 0.040481 -0.006775 0.011031 -v 0.010038 -0.040066 0.025853 -v 0.009347 -0.045538 0.021275 -v 0.019373 -0.041914 0.020768 -v 0.025912 -0.043911 0.014284 -v 0.017092 -0.045551 0.017901 -v 0.023150 -0.046305 0.011945 -v 0.037296 -0.057468 0.000198 -v 0.006375 -0.014908 0.049347 -v 0.007345 -0.006125 0.052032 -v 0.074654 0.053659 0.001508 -v 0.023775 0.015149 0.013316 -v 0.025140 -0.011786 0.028842 -v 0.025496 -0.006850 0.026319 -v 0.064854 -0.005541 0.000608 -v 0.006996 0.004926 0.047449 -v 0.056159 0.063681 0.016223 -v 0.067436 0.060095 0.009788 -v 0.084558 0.087086 -0.021994 -v 0.018350 0.058071 0.022980 -v 0.028730 0.049600 0.006418 -v 0.043675 -0.049521 -0.001186 -v 0.078384 -0.051267 -0.073625 -v 0.019381 -0.017261 0.025577 -v 0.013126 -0.019915 0.025946 -v 0.035118 -0.047419 -0.000708 -v 0.033047 -0.047550 0.001606 -v 0.072275 0.065365 0.006218 -v 0.025646 -0.015138 0.023971 -v 0.040074 0.063723 0.020752 -v 0.042117 0.070884 0.022985 -v 0.049370 0.110307 0.010550 -v 0.077501 0.077595 -0.005850 -v 0.043648 0.091615 0.017568 -v 0.079628 0.057332 -0.005227 -v 0.086018 0.064229 -0.020935 -v 0.009835 -0.043064 0.024476 -v 0.018261 -0.043855 0.019604 -v 0.024608 -0.045069 0.013721 -v 0.017666 -0.018760 0.023786 -v 0.034051 -0.047481 0.000539 -v 0.030102 -0.050361 0.005395 -v 0.031984 -0.047727 0.001917 -v 0.015177 -0.014594 0.037485 -v 0.021913 -0.047266 0.010171 -v 0.015951 -0.047021 0.014006 -v 0.008705 -0.047315 0.017073 -v 0.011183 -0.073018 0.010414 -v 0.009687 -0.065583 0.018382 -v 0.010876 -0.060591 0.019719 -v 0.009970 -0.056044 0.017959 -v 0.008987 -0.052477 0.017235 -v 0.022060 -0.050052 0.010080 -v 0.023723 -0.051417 0.010856 -v 0.025668 -0.053470 0.011730 -v 0.027256 -0.056131 0.010184 -v 0.034527 -0.036552 0.012058 -v 0.090510 -0.010153 -0.082701 -v 0.026437 -0.049165 0.005337 -v 0.028247 -0.049600 0.005670 -v 0.010552 -0.023226 0.025722 -v 0.023042 -0.020302 0.017434 -v 0.011758 -0.021578 0.026169 -v 0.032311 0.010175 0.010099 -v 0.045862 0.004365 0.007566 -v 0.027012 -0.010555 0.021397 -v 0.070741 0.100925 -0.004523 -v 0.063951 0.087158 0.006513 -v 0.059505 0.070513 0.015336 -v 0.030353 -0.063606 0.004280 -v 0.021831 0.069566 0.026869 -v 0.023099 0.092814 0.023770 -v 0.026541 0.114894 0.019144 -v 0.056345 0.029713 -0.000853 -v 0.075999 0.021152 -0.013657 -v 0.021246 0.034384 0.003644 -v 0.069444 0.043182 -0.004160 -v 0.018108 0.020736 0.016539 -v 0.020069 -0.008943 0.037251 -v 0.084885 0.014908 -0.023427 -v 0.070689 0.015316 -0.006619 -v 0.060352 0.012612 0.000796 -v 0.044397 0.014300 0.004501 -v 0.032547 0.018250 0.006392 -v 0.023877 0.022663 0.008898 -v 0.007637 0.032489 0.026358 -v 0.082497 -0.003141 -0.022230 -v 0.076336 0.044317 -0.007684 -v 0.003881 -0.019205 0.045217 -v 0.023041 0.006367 0.016293 -v 0.096435 0.030178 -0.073121 -v 0.017470 0.027286 0.010560 -v 0.027773 -0.011261 0.012846 -v 0.063269 0.037112 -0.007025 -v 0.020282 -0.002933 0.034168 -v 0.085449 -0.030799 -0.080371 -v 0.021081 0.037278 0.002018 -v 0.013790 0.001956 0.042380 -v 0.060950 -0.068424 -0.030229 -v 0.059200 -0.078307 -0.045890 -v 0.089225 -0.007189 -0.052189 -v 0.071053 -0.057756 -0.040060 -v 0.090270 0.048535 -0.035330 -v 0.029450 -0.095291 -0.005342 -v 0.003263 -0.021780 0.033816 -v 0.030460 0.000172 0.012861 -v 0.083282 0.031235 -0.024950 -v 0.049037 0.033118 0.002306 -v 0.042035 0.032907 0.004337 -v 0.031726 -0.051476 0.003902 -v 0.079982 -0.020733 -0.026168 -v 0.015341 -0.106374 -0.007728 -v 0.037438 -0.096061 -0.023787 -v 0.047236 -0.088790 -0.033392 -v 0.034794 0.034014 0.004680 -v 0.027808 0.035753 0.003547 -v 0.023269 0.036544 0.002077 -v 0.081975 0.045938 -0.015937 -v 0.029171 0.043362 0.005133 -v 0.036992 0.045179 0.006646 -v 0.044494 0.044850 0.006322 -v 0.051406 0.042923 0.004227 -v 0.055393 0.040672 0.001409 -v 0.096204 0.052003 -0.057931 -v 0.053525 0.034151 -0.000346 -v 0.026211 -0.032277 0.017044 -v 0.019238 -0.015933 0.029078 -v 0.011427 -0.030431 0.024872 -v 0.050173 -0.079142 -0.022662 -v 0.039947 -0.087265 -0.014640 -v 0.016232 -0.100613 0.002496 -v 0.069219 -0.066890 -0.060608 -v 0.023636 0.039899 0.003373 -v 0.012660 0.018211 0.027995 -v 0.027231 -0.102238 -0.013965 -v 0.084918 -0.025988 -0.052274 -v 0.016115 -0.051261 0.014086 -v 0.017730 -0.053846 0.014984 -v 0.019275 -0.057306 0.016171 -v 0.020457 -0.061686 0.014962 -v 0.021818 -0.069013 0.008447 -v 0.028251 -0.047035 0.006599 -v 0.029752 -0.046377 0.006644 -v 0.030998 -0.045676 0.006850 -v 0.040907 -0.042353 0.005804 -v 0.070283 -0.024449 -0.009304 -v 0.012719 0.027108 0.020855 -v 0.016354 0.044105 0.007986 -v 0.020793 0.043008 0.004947 -v 0.026734 -0.047770 0.005509 -v 0.069683 -0.045259 -0.023267 -v 0.010317 0.045206 0.018557 -v 0.025497 -0.077877 0.003818 -v 0.007150 0.022986 0.034190 -v 0.018096 0.004460 0.027243 -v 0.013380 -0.082513 0.008472 -v 0.043618 -0.062071 -0.004540 -v 0.034691 -0.018011 0.010562 -v 0.035113 -0.071088 -0.000837 -v 0.053669 -0.016812 0.007175 -v 0.042620 -0.026475 0.008404 -v 0.060150 -0.030489 -0.000305 -v 0.015670 -0.092637 0.007516 -v 0.022874 -0.000250 0.020879 -v 0.049083 -0.069375 -0.012657 -v 0.038670 -0.078692 -0.007582 -v 0.050627 -0.051599 -0.004722 -v 0.076987 -0.035353 -0.030096 -v 0.059539 -0.053605 -0.012789 -v 0.079629 -0.042947 -0.050147 -v 0.049187 -0.036676 0.003864 -v 0.017671 0.012337 0.021652 -v 0.017630 -0.012932 0.039237 -v 0.022722 -0.014888 0.029724 -v 0.014099 -0.007282 0.045074 -v 0.023703 0.051626 0.010931 -v 0.038549 0.056449 0.012564 -v 0.051176 0.056720 0.011857 -v 0.061051 0.054237 0.008265 -v 0.067196 0.049872 0.003077 -v 0.069207 0.035218 -0.010440 -v 0.092425 0.011630 -0.049223 -v 0.062638 0.023696 -0.004696 -v 0.054551 0.021692 0.000242 -v 0.043373 0.022043 0.003503 -v 0.032681 0.024480 0.004982 -v 0.024389 0.027673 0.005546 -v 0.018799 0.030530 0.006190 -v 0.093935 0.009918 -0.080625 -v 0.022721 -0.016911 0.025496 -v 0.012642 0.010097 0.033998 -v 0.012010 -0.013642 0.045521 -v 0.008054 -0.017791 0.041864 -v 0.012081 -0.015049 0.041467 -v 0.020674 -0.019342 0.022415 -v 0.006438 -0.018621 0.044032 -v 0.005841 -0.021046 0.034005 -v 0.018392 0.037014 0.003094 -v 0.014686 0.035356 0.007793 -v 0.012858 0.034181 0.013323 -v 0.057585 0.038981 -0.001519 -v 0.064457 0.042855 -0.002126 -v -0.040105 0.039526 0.000000 -v -0.031108 0.039526 0.000000 -v -0.040332 0.047493 0.000000 -v -0.049312 0.039526 0.000000 -v -0.040011 0.032313 0.000000 -v 0.040105 0.039526 0.000000 -v 0.049313 0.039526 0.000000 -v 0.040332 0.047493 0.000000 -v 0.031108 0.039526 0.000000 -v 0.040011 0.032313 0.000000 +v 0.000000 -0.263889 0.283205 +v 0.000000 -0.122932 0.405047 +v 0.000000 -0.169293 0.289391 +v -0.034465 0.031768 0.352123 +v 0.000000 -0.075300 0.420478 +v 0.000000 -0.011632 0.404370 +v 0.000000 0.140255 0.297376 +v -0.297307 0.143263 0.127989 +v 0.000000 0.250964 0.275512 +v 0.000000 0.315281 0.289007 +v 0.000000 0.565825 0.253535 +v 0.000000 -0.275664 0.275677 +v -0.000000 -0.286984 0.260445 +v -0.000000 -0.295881 0.237021 +v -0.000000 -0.323612 0.237978 +v -0.000000 -0.344161 0.241477 +v -0.000000 -0.368054 0.249885 +v -0.000000 -0.394041 0.242819 +v -0.000000 -0.429621 0.198844 +v 0.000000 -0.145517 0.382276 +v -0.040648 -0.146375 0.321534 +v -0.487018 0.326126 -0.064496 +v -0.175510 0.113089 0.170875 +v -0.220667 0.106584 0.168276 +v -0.263155 0.107246 0.156493 +v -0.314637 0.127688 0.119454 +v -0.136815 0.126104 0.166133 +v -0.251274 0.236447 0.188405 +v -0.198274 0.235071 0.189018 +v -0.297237 0.224312 0.173625 +v -0.324375 0.204819 0.156055 +v -0.353247 0.099998 0.095948 +v -0.150927 -0.500528 0.143122 +v -0.311847 0.153508 0.113965 +v -0.490938 0.117109 -0.096254 +v -0.403715 0.129361 0.054463 +v -0.212945 -0.078765 0.199952 +v -0.052806 -0.253882 0.277921 +v -0.049170 -0.282669 0.253838 +v -0.101907 -0.263607 0.251173 +v -0.136307 -0.274110 0.217061 +v -0.089912 -0.282736 0.236090 +v -0.121775 -0.286704 0.204762 +v -0.196187 -0.345424 0.142966 +v -0.033532 -0.121547 0.401506 +v -0.038638 -0.075345 0.415629 +v -0.392703 0.239141 0.149856 +v -0.125065 0.036564 0.211973 +v -0.132245 -0.105122 0.293642 +v -0.134116 -0.079157 0.280372 +v -0.341150 -0.072273 0.145121 +v -0.036803 -0.017211 0.391523 +v -0.295414 0.291856 0.227264 +v -0.354734 0.272993 0.193410 +v -0.444801 0.414976 0.026229 +v -0.096529 0.262349 0.262807 +v -0.151127 0.217788 0.175688 +v -0.229745 -0.303619 0.135687 +v -0.412327 -0.312806 -0.245365 +v -0.101953 -0.133921 0.276470 +v -0.069045 -0.147882 0.278406 +v -0.184733 -0.292566 0.138201 +v -0.173839 -0.293253 0.150372 +v -0.380187 0.300716 0.174633 +v -0.134905 -0.122756 0.268018 +v -0.210804 0.292076 0.251089 +v -0.221546 0.329749 0.262832 +v -0.259704 0.537125 0.197420 +v -0.407678 0.365050 0.111150 +v -0.229604 0.438800 0.234339 +v -0.418869 0.258460 0.114427 +v -0.452483 0.294738 0.031800 +v -0.051733 -0.269656 0.270674 +v -0.096057 -0.273817 0.245046 +v -0.129444 -0.280202 0.214102 +v -0.092930 -0.141808 0.267045 +v -0.179117 -0.292889 0.144762 +v -0.158346 -0.308041 0.170302 +v -0.168246 -0.294183 0.152010 +v -0.079837 -0.119896 0.339108 +v -0.115269 -0.291756 0.195425 +v -0.083907 -0.290473 0.215602 +v -0.045791 -0.292015 0.231732 +v -0.058825 -0.427223 0.196704 +v -0.060698 -0.387694 0.239772 +v -0.057209 -0.361855 0.245652 +v -0.052446 -0.337935 0.236394 +v -0.047273 -0.319170 0.232587 +v -0.116041 -0.306412 0.194949 +v -0.124789 -0.313596 0.199031 +v -0.135024 -0.324392 0.203629 +v -0.143375 -0.338393 0.195496 +v -0.181623 -0.235402 0.205351 +v -0.476112 -0.096530 -0.293111 +v 0.000000 -0.159433 0.322798 +v -0.139065 -0.301747 0.169998 +v -0.148590 -0.304036 0.171751 +v -0.055505 -0.165300 0.277229 +v -0.121208 -0.149921 0.233632 +v -0.061852 -0.156634 0.279580 +v -0.169964 0.010398 0.195046 +v -0.241249 -0.020161 0.181721 +v -0.142094 -0.098649 0.254480 +v -0.372121 0.487772 0.118131 +v -0.336402 0.415356 0.176184 +v -0.313014 0.327796 0.222598 +v -0.159668 -0.377715 0.164436 +v -0.114838 0.322812 0.283263 +v -0.121510 0.445106 0.266960 +v -0.139617 0.561253 0.242629 +v -0.296390 0.113178 0.137435 +v -0.399777 0.068140 0.070085 +v -0.111763 0.137747 0.161092 +v -0.365299 0.184027 0.120040 +v -0.095254 0.065954 0.228925 +v -0.105568 -0.090170 0.337875 +v -0.446520 0.035298 0.018690 +v -0.371849 0.037444 0.107105 +v -0.317473 0.023217 0.146111 +v -0.233542 0.032099 0.165600 +v -0.171207 0.052876 0.175547 +v -0.125601 0.076088 0.188733 +v -0.040172 0.127780 0.280573 +v -0.433958 -0.059646 0.024988 +v -0.401552 0.189996 0.101505 +v -0.020418 -0.144151 0.379778 +v -0.121202 -0.009632 0.227633 +v -0.507279 0.115622 -0.242717 +v -0.091897 0.100409 0.197476 +v -0.146094 -0.102362 0.209500 +v -0.332817 0.152099 0.104972 +v -0.106691 -0.058554 0.321661 +v -0.449489 -0.205137 -0.280850 +v -0.110893 0.152969 0.152538 +v -0.072542 -0.032834 0.364855 +v -0.320615 -0.403057 -0.017087 +v -0.311413 -0.455047 -0.099471 +v -0.469351 -0.080943 -0.132607 +v -0.373764 -0.346940 -0.068802 +v -0.474851 0.212187 -0.043923 +v -0.154917 -0.544387 0.113825 +v -0.017165 -0.157696 0.319807 +v -0.160231 -0.042220 0.209580 +v -0.438091 0.121180 0.010679 +v -0.257949 0.131088 0.154056 +v -0.221116 0.129978 0.164737 +v -0.166891 -0.313903 0.162448 +v -0.420730 -0.152186 0.004273 +v -0.080699 -0.602686 0.101272 +v -0.196938 -0.548435 0.016799 +v -0.248476 -0.510189 -0.033728 +v 0.000000 0.444401 0.276122 +v -0.000000 -0.608949 0.112730 +v -0.183027 0.135802 0.166542 +v -0.146278 0.144947 0.160584 +v -0.122403 0.149110 0.152849 +v -0.431216 0.198522 0.058093 +v -0.153451 0.184971 0.168927 +v -0.194589 0.194532 0.176885 +v -0.234053 0.192799 0.175182 +v -0.270414 0.182663 0.164159 +v -0.291387 0.170825 0.149335 +v -0.506066 0.230429 -0.162813 +v -0.281560 0.136520 0.140106 +v 0.000000 -0.203097 0.276987 +v -0.137880 -0.212911 0.231581 +v -0.101198 -0.126939 0.294885 +v -0.060108 -0.203204 0.272761 +v 0.000000 0.197207 0.269755 +v -0.263925 -0.459437 0.022718 +v -0.210134 -0.502168 0.064913 +v -0.085384 -0.572383 0.155056 +v -0.364113 -0.394988 -0.176891 +v -0.124331 0.166759 0.159667 +v -0.066597 0.052672 0.289186 +v -0.000000 -0.578587 0.164300 +v -0.143242 -0.580928 0.068465 +v -0.446695 -0.179831 -0.133052 +v -0.084771 -0.312774 0.216022 +v -0.093267 -0.326374 0.220745 +v -0.101393 -0.344570 0.226991 +v -0.107611 -0.367615 0.220627 +v -0.114770 -0.406154 0.186358 +v -0.148611 -0.290543 0.176639 +v -0.156503 -0.287082 0.176876 +v -0.163061 -0.283396 0.177957 +v -0.215184 -0.265914 0.172453 +v -0.369709 -0.171735 0.092983 +v -0.066904 0.099474 0.251626 +v -0.086026 0.188879 0.183934 +v -0.109377 0.183111 0.167949 +v -0.140630 -0.294412 0.170903 +v -0.366554 -0.281203 0.019533 +v -0.054269 0.194675 0.239542 +v -0.134122 -0.452785 0.162010 +v 0.000000 0.039672 0.366679 +v -0.037609 0.077788 0.321774 +v 0.000000 0.087862 0.331513 +v -0.095189 -0.019665 0.285230 +v -0.000000 -0.535124 0.192072 +v -0.000000 -0.480198 0.194835 +v -0.070381 -0.477169 0.186492 +v -0.229444 -0.369637 0.118042 +v -0.182484 -0.137866 0.197485 +v -0.184704 -0.417072 0.137522 +v -0.282317 -0.131560 0.179666 +v -0.224195 -0.182393 0.186130 +v -0.316407 -0.203505 0.140319 +v -0.082427 -0.530425 0.181462 +v -0.120326 -0.044438 0.251752 +v -0.258193 -0.408060 0.075346 +v -0.203416 -0.457068 0.102043 +v -0.266313 -0.314552 0.117083 +v -0.404977 -0.229095 -0.016389 +v -0.313195 -0.325102 0.074647 +v -0.418873 -0.269042 -0.121863 +v -0.258742 -0.236054 0.162248 +v -0.092953 0.021770 0.255819 +v -0.092741 -0.111149 0.348325 +v -0.119523 -0.121442 0.298281 +v -0.074165 -0.081430 0.379026 +v -0.124685 0.228443 0.199423 +v -0.202782 0.253817 0.208013 +v -0.269202 0.255239 0.204294 +v -0.321145 0.242181 0.185399 +v -0.353474 0.219218 0.158110 +v -0.364049 0.142133 0.087004 +v -0.486185 0.018054 -0.117006 +v -0.329495 0.081523 0.117221 +v -0.286957 0.070982 0.143199 +v -0.228154 0.072828 0.160353 +v -0.171910 0.085646 0.168130 +v -0.128295 0.102443 0.171098 +v -0.098888 0.117475 0.174487 +v -0.494131 0.009045 -0.282189 +v -0.119518 -0.132083 0.276039 +v -0.066502 0.009986 0.320764 +v -0.063178 -0.114888 0.381381 +v -0.042368 -0.136711 0.362141 +v -0.063548 -0.122285 0.360056 +v -0.108751 -0.144871 0.259835 +v -0.033866 -0.141075 0.373545 +v -0.030724 -0.153831 0.320803 +v -0.096747 0.151580 0.158201 +v -0.077255 0.142857 0.182919 +v -0.067639 0.136676 0.212006 +v -0.302915 0.161928 0.133935 +v -0.339065 0.182307 0.130742 +v 0.034465 0.031768 0.352123 +v 0.297307 0.143263 0.127989 +v 0.040648 -0.146375 0.321534 +v 0.487018 0.326126 -0.064496 +v 0.175510 0.113089 0.170875 +v 0.220667 0.106584 0.168276 +v 0.263155 0.107246 0.156493 +v 0.314637 0.127688 0.119454 +v 0.136815 0.126104 0.166133 +v 0.251274 0.236447 0.188405 +v 0.198274 0.235071 0.189018 +v 0.297237 0.224312 0.173625 +v 0.324375 0.204819 0.156055 +v 0.353247 0.099998 0.095948 +v 0.150927 -0.500528 0.143122 +v 0.311847 0.153508 0.113965 +v 0.490938 0.117109 -0.096254 +v 0.403715 0.129361 0.054463 +v 0.212945 -0.078765 0.199952 +v 0.052806 -0.253882 0.277921 +v 0.049170 -0.282669 0.253838 +v 0.101907 -0.263607 0.251173 +v 0.136307 -0.274110 0.217061 +v 0.089912 -0.282736 0.236090 +v 0.121775 -0.286704 0.204762 +v 0.196187 -0.345424 0.142966 +v 0.033532 -0.121547 0.401506 +v 0.038638 -0.075345 0.415629 +v 0.392703 0.239141 0.149856 +v 0.125065 0.036564 0.211973 +v 0.132245 -0.105122 0.293642 +v 0.134116 -0.079157 0.280372 +v 0.341150 -0.072273 0.145121 +v 0.036803 -0.017211 0.391523 +v 0.295414 0.291856 0.227264 +v 0.354734 0.272993 0.193410 +v 0.444801 0.414976 0.026229 +v 0.096529 0.262349 0.262807 +v 0.151127 0.217788 0.175688 +v 0.229745 -0.303619 0.135687 +v 0.412327 -0.312806 -0.245365 +v 0.101953 -0.133921 0.276470 +v 0.069045 -0.147882 0.278406 +v 0.184733 -0.292566 0.138201 +v 0.173839 -0.293253 0.150372 +v 0.380187 0.300716 0.174633 +v 0.134905 -0.122756 0.268018 +v 0.210804 0.292076 0.251089 +v 0.221546 0.329749 0.262832 +v 0.259704 0.537125 0.197420 +v 0.407678 0.365050 0.111150 +v 0.229604 0.438800 0.234339 +v 0.418869 0.258460 0.114427 +v 0.452483 0.294738 0.031800 +v 0.051733 -0.269656 0.270674 +v 0.096057 -0.273817 0.245046 +v 0.129444 -0.280202 0.214102 +v 0.092930 -0.141808 0.267045 +v 0.179117 -0.292889 0.144762 +v 0.158346 -0.308041 0.170302 +v 0.168246 -0.294183 0.152010 +v 0.079837 -0.119896 0.339108 +v 0.115269 -0.291756 0.195425 +v 0.083907 -0.290473 0.215602 +v 0.045791 -0.292015 0.231732 +v 0.058825 -0.427223 0.196704 +v 0.050955 -0.388113 0.238617 +v 0.057209 -0.361855 0.245652 +v 0.052446 -0.337935 0.236394 +v 0.047273 -0.319170 0.232587 +v 0.116041 -0.306412 0.194949 +v 0.124789 -0.313596 0.199031 +v 0.135024 -0.324392 0.203629 +v 0.143375 -0.338393 0.195496 +v 0.181623 -0.235402 0.205351 +v 0.476112 -0.096530 -0.293111 +v 0.139065 -0.301747 0.169998 +v 0.148590 -0.304036 0.171751 +v 0.055505 -0.165300 0.277229 +v 0.121208 -0.149921 0.233632 +v 0.061852 -0.156634 0.279580 +v 0.169964 0.010398 0.195046 +v 0.241249 -0.020161 0.181721 +v 0.142094 -0.098649 0.254480 +v 0.372121 0.487772 0.118131 +v 0.336402 0.415356 0.176184 +v 0.313014 0.327796 0.222598 +v 0.159668 -0.377715 0.164436 +v 0.114838 0.322812 0.283263 +v 0.121510 0.445106 0.266960 +v 0.139617 0.561253 0.242629 +v 0.296390 0.113178 0.137435 +v 0.399777 0.068140 0.070085 +v 0.111763 0.137747 0.161092 +v 0.365299 0.184027 0.120040 +v 0.095254 0.065954 0.228925 +v 0.105568 -0.090170 0.337875 +v 0.446520 0.035298 0.018690 +v 0.371849 0.037444 0.107105 +v 0.317473 0.023217 0.146111 +v 0.233542 0.032099 0.165600 +v 0.171207 0.052876 0.175547 +v 0.125601 0.076088 0.188733 +v 0.040172 0.127780 0.280573 +v 0.433958 -0.059646 0.024988 +v 0.401552 0.189996 0.101505 +v 0.020418 -0.144151 0.379778 +v 0.121202 -0.009632 0.227633 +v 0.507279 0.115622 -0.242717 +v 0.091897 0.100409 0.197476 +v 0.146094 -0.102362 0.209500 +v 0.332817 0.152099 0.104972 +v 0.106691 -0.058554 0.321661 +v 0.449489 -0.205137 -0.280850 +v 0.110893 0.152969 0.152538 +v 0.072542 -0.032834 0.364855 +v 0.320615 -0.403057 -0.017087 +v 0.311413 -0.455047 -0.099471 +v 0.469351 -0.080943 -0.132607 +v 0.373764 -0.346940 -0.068802 +v 0.474851 0.212187 -0.043923 +v 0.154917 -0.544387 0.113825 +v 0.017165 -0.157696 0.319807 +v 0.160231 -0.042220 0.209580 +v 0.438091 0.121180 0.010679 +v 0.257949 0.131088 0.154056 +v 0.221116 0.129978 0.164737 +v 0.166891 -0.313903 0.162448 +v 0.420730 -0.152186 0.004273 +v 0.080699 -0.602686 0.101272 +v 0.196938 -0.548435 0.016799 +v 0.248476 -0.510189 -0.033728 +v 0.183027 0.135802 0.166542 +v 0.146278 0.144947 0.160584 +v 0.122403 0.149110 0.152849 +v 0.431216 0.198522 0.058093 +v 0.153451 0.184971 0.168927 +v 0.194589 0.194532 0.176885 +v 0.234053 0.192799 0.175182 +v 0.270414 0.182663 0.164159 +v 0.291387 0.170825 0.149335 +v 0.506066 0.230429 -0.162813 +v 0.281560 0.136520 0.140106 +v 0.137880 -0.212911 0.231581 +v 0.101198 -0.126939 0.294885 +v 0.060108 -0.203204 0.272761 +v 0.263925 -0.459437 0.022718 +v 0.210134 -0.502168 0.064913 +v 0.085384 -0.572383 0.155056 +v 0.364113 -0.394988 -0.176891 +v 0.124331 0.166759 0.159667 +v 0.066597 0.052672 0.289186 +v 0.143242 -0.580928 0.068465 +v 0.446695 -0.179831 -0.133052 +v 0.084771 -0.312774 0.216022 +v 0.093267 -0.326374 0.220745 +v 0.101393 -0.344570 0.226991 +v 0.107611 -0.367615 0.220627 +v 0.114770 -0.406154 0.186358 +v 0.148611 -0.290543 0.176639 +v 0.156503 -0.287082 0.176876 +v 0.163061 -0.283396 0.177957 +v 0.215184 -0.265914 0.172453 +v 0.369709 -0.171735 0.092983 +v 0.066904 0.099474 0.251626 +v 0.086026 0.188879 0.183934 +v 0.109377 0.183111 0.167949 +v 0.140630 -0.294412 0.170903 +v 0.366554 -0.281203 0.019533 +v 0.054269 0.194675 0.239542 +v 0.134122 -0.452785 0.162010 +v 0.037609 0.077788 0.321774 +v 0.095189 -0.019665 0.285230 +v 0.070381 -0.477169 0.186492 +v 0.229444 -0.369637 0.118042 +v 0.182484 -0.137866 0.197485 +v 0.184704 -0.417072 0.137522 +v 0.282317 -0.131560 0.179666 +v 0.224195 -0.182393 0.186130 +v 0.316407 -0.203505 0.140319 +v 0.082427 -0.530425 0.181462 +v 0.120326 -0.044438 0.251752 +v 0.258193 -0.408060 0.075346 +v 0.203416 -0.457068 0.102043 +v 0.266313 -0.314552 0.117083 +v 0.404977 -0.229095 -0.016389 +v 0.313195 -0.325102 0.074647 +v 0.418873 -0.269042 -0.121863 +v 0.258742 -0.236054 0.162248 +v 0.092953 0.021770 0.255819 +v 0.092741 -0.111149 0.348325 +v 0.119523 -0.121442 0.298281 +v 0.074165 -0.081430 0.379026 +v 0.124685 0.228443 0.199423 +v 0.202782 0.253817 0.208013 +v 0.269202 0.255239 0.204294 +v 0.321145 0.242181 0.185399 +v 0.353474 0.219218 0.158110 +v 0.364049 0.142133 0.087004 +v 0.486185 0.018054 -0.117006 +v 0.329495 0.081523 0.117221 +v 0.286957 0.070982 0.143199 +v 0.228154 0.072828 0.160353 +v 0.171910 0.085646 0.168130 +v 0.128295 0.102443 0.171098 +v 0.098888 0.117475 0.174487 +v 0.494131 0.009045 -0.282189 +v 0.119518 -0.132083 0.276039 +v 0.066502 0.009986 0.320764 +v 0.063178 -0.114888 0.381381 +v 0.042368 -0.136711 0.362141 +v 0.063548 -0.122285 0.360056 +v 0.108751 -0.144871 0.259835 +v 0.033866 -0.141075 0.373545 +v 0.030724 -0.153831 0.320803 +v 0.096747 0.151580 0.158201 +v 0.077255 0.142857 0.182919 +v 0.067639 0.136676 0.212006 +v 0.302915 0.161928 0.133935 +v 0.339065 0.182307 0.130742 +v -0.210967 0.164795 0.141925 +v -0.163637 0.164795 0.141925 +v -0.212157 0.206706 0.141925 +v -0.259397 0.164795 0.141925 +v -0.210472 0.126854 0.141925 +v 0.210967 0.164795 0.141925 +v 0.259401 0.164795 0.141925 +v 0.212157 0.206706 0.141925 +v 0.163640 0.164795 0.141925 +v 0.210473 0.126854 0.141925 s 0 f 176 153 378 397 f 397 378 401 370 @@ -900,11 +900,11 @@ f 154 23 27 155 f 155 27 113 156 f 156 113 244 134 f 134 244 191 174 -f 470 469 473 -f 472 473 469 -f 472 469 471 -f 469 470 471 -f 474 475 478 -f 474 476 475 -f 474 478 477 f 476 474 477 +f 474 476 475 +f 474 475 478 +f 474 478 477 +f 469 472 471 +f 469 471 470 +f 473 472 469 470 +f 472 473 469 diff --git a/face_mesh_perspective.blend b/face_mesh_perspective.blend new file mode 100644 index 0000000..4e86952 Binary files /dev/null and b/face_mesh_perspective.blend differ diff --git a/face_track.py b/face_track.py index b063ef4..f276fb7 100755 --- a/face_track.py +++ b/face_track.py @@ -1,11 +1,29 @@ #!/usr/bin/env python3 import argparse +import math from struct import pack import numpy as np import cv2 as cv import mediapipe as mp + +eye_l_idxs = [474, 475, 476, 477] +eye_r_idxs = [469, 470, 471, 472] +head_idxs = [34, 264] + +# For averaging depth estimate out over multiple frames. +WINDOW_WIDTH = 3 + + +def distance(a, b): + x = a.x - b.x + y = a.y - b.y + z = a.z - b.z + + return ((x * x) + (y * y) + (z * z))**0.5 + + if __name__ == "__main__": arg_parser = argparse.ArgumentParser(description= """ @@ -13,13 +31,38 @@ if __name__ == "__main__": data. Currently only supports video files with a single face. """ ) + arg_parser.add_argument("--fov", help="Attempt to account for perspective projection based on the given horizontal fov (in degrees).") + arg_parser.add_argument("--focal_len", help="Same as --fov except it takes sensor size / focal length (e.g. \"35/60\" for a 35mm sensor and 60mm lens).") arg_parser.add_argument("input_video", help="The input video file with a person's face in it.") arg_parser.add_argument("output_mdd", help="The .mdd file to write the mesh animation data to.") args = arg_parser.parse_args() video_path = args.input_video mdd_path = args.output_mdd + camera_scale = None + if args.fov is not None: + try: + fov = float(args.fov) + camera_scale = 2.0 * math.tan(math.radians(fov / 2)) + except: + print("Error: the specified fov, '{}', is not a number.".format(args.fov)) + exit() + elif args.focal_len is not None: + error_msg = "Error: focal_len must be specified as two numbers separated by a slash (no spaces). E.g. \"35/60\" for a 35mm sensor and 60mm lens." + try: + sensor_lens = args.focal_len.split("/") + if len(sensor_lens) != 2: + raise None + sensor = float(sensor_lens[0]) + lens = float(sensor_lens[1]) + camera_scale = sensor / lens + except: + print(error_msg) + exit() + + + #---------------------------------------------------------- # Compute the mesh points from the input video. meshes = [] # One mesh per frame. point_count = 0 @@ -61,6 +104,21 @@ if __name__ == "__main__": print("\rRead {} frames. ".format(len(meshes))) print("Generated vert count:", point_count) + + #---------------------------------------------------------- + # Compute distance and average Z coordinate of our metric head width + # vertices for each frame. + width_2d_and_z = [] + for mesh in meshes: + if mesh is None: + width_2d_and_z += [None] + else: + d = distance(mesh[head_idxs[0]], mesh[head_idxs[1]]) + z = (mesh[head_idxs[0]].z + mesh[head_idxs[1]].z) * 0.5 + width_2d_and_z += [(d, z)] + + + #---------------------------------------------------------- # Write the mdd file. frame_count = len(meshes) if frame_count > 0: @@ -69,18 +127,56 @@ if __name__ == "__main__": mdd.write(pack(">2i", frame_count, point_count)) mdd.write(pack(">%df" % (frame_count), *[frame / fps for frame in range(frame_count)])) - i = 1 - for mesh in meshes: + for mesh, i in zip(meshes, range(len(meshes))): print("\rWriting frame", i, end = "") if mesh is None: # Put all vertices at the origin for bogus frames. for n in range(point_count): mdd.write(pack(">3f", 0.0, 0.0, 0.0)) - else: + elif camera_scale is None: + # No camera fov, so just do simple orthographic. for point in mesh: x = point.x - 0.5 y = point.y - 0.5 - mdd.write(pack(">3f", x, y / aspect_ratio, point.z)) - i += 1 + mdd.write(pack(">3f", x, -y / aspect_ratio, -point.z)) + else: + # Compute a rolling average of width_2d_and_z. + w2d = width_2d_and_z[i][0] + wz = width_2d_and_z[i][1] + k = 1 + for j in range(1, WINDOW_WIDTH + 1): + if (i + j) < len(width_2d_and_z): + w2d_z = width_2d_and_z[i + j] + if w2d_z is None: + break + w2d += w2d_z[0] + wz += w2d_z[1] + k += 1 + for j in range(1, WINDOW_WIDTH + 1): + if (i - j) >= 0: + w2d_z = width_2d_and_z[i - j] + if w2d_z is None: + break + w2d += w2d_z[0] + wz += w2d_z[1] + k += 1 + w2d /= k + wz /= k + + # Compute and write out mesh coordinates. + scale = 1.0 / w2d + for point in mesh: + z = ((point.z - wz) * camera_scale * scale) + scale + x = (point.x - 0.5) * camera_scale * z + y = ((point.y - 0.5) * camera_scale / aspect_ratio) * z + + mdd.write(pack( + ">3f", + x / camera_scale, + -y / camera_scale, + -z / camera_scale, + )) print("\rWrote {} frames. ".format(len(meshes))) + +