");--av-icon-instagram:url("data:image/svg+xml;charset=utf-8, ");--av-icon-linkedin:url("data:image/svg+xml;charset=utf-8, ");--av-icon-pinterest:url("data:image/svg+xml;charset=utf-8, ");--av-icon-print:url("data:image/svg+xml;charset=utf-8, ");--av-icon-rss:url("data:image/svg+xml;charset=utf-8, ");--av-icon-telegram:url("data:image/svg+xml;charset=utf-8, ");--av-icon-twitter:url("data:image/svg+xml;charset=utf-8, ");--av-icon-whatsapp:url("data:image/svg+xml;charset=utf-8, ");--av-icon-youtube:url("data:image/svg+xml;charset=utf-8, ");--av-icon-tiktok:url("data:image/svg+xml;charset=utf-8, ");--av-icon-discord:url("data:image/svg+xml;charset=utf-8, ");--av-facebook-color:#1877f2;--av-instagram-color:#f00075;--av-linkedin-color:#0d66c2;--av-pinterest-color:#e60122;--av-telegram-icon:#2aabee;--av-twitter-color:#000;--av-whatsapp-color:#25d366;--av-youtube-color:red}.av-social-share{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:1em 0;overflow:hidden;padding:0}@media screen and (min-width:480px){.av-social-share{justify-content:flex-start}}#avConsent:not([class*=-amphtml-consent-ui-iframe-fullscreen]){bottom:auto;box-shadow:0 0 20px 0 #000;max-height:60vh;top:0}@keyframes av-affiliation-fade{0%{opacity:.4}to{opacity:1}}.amp-wp-enforced-sizes{max-width:100%;margin:0 auto}body{background:#fff;color:#333;font-family:Krub;font-size:16px;font-weight:400;line-height:1.75;position:relative;margin:0}.amp-wp-header,.amp-wp-article,.amp-wp-footer{max-width:600px;margin:auto}p,ul,figure{margin:0 0 1.5em;padding:0}a,a:visited{color:#ce5c5c;text-decoration:underline}a:hover,a:active,a:focus{color:#ce5c5c;text-decoration:underline}h1,h2,h3,.amp-wp-article-content h1,.amp-wp-article-content h2,.amp-wp-article-content h3{color:#1a1a1a;font-family:Lora}h1,h2,h3{font-family:Lora;font-weight:700;letter-spacing:.5px;line-height:1.25;margin:0 auto 1rem;padding:0;color:#1a1a1a}h1.amp-wp-title{color:#222;font-family:Lora;font-weight:400;display:block;flex:1 0 100%;margin:0 0 1rem;width:100%;font-size:1.5rem;text-align:center}.amp-wp-header div,.amp-wp-title,.amp-wp-footer p{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif}.amp-wp-header{padding:0;margin:auto;height:50px;line-height:50px;text-align:center;white-space:nowrap;font-size:18px;font-weight:700;background:#ce5c5c;color:#fff}.amp-wp-header{color:#fff;font-size:1em;font-weight:400}.amp-wp-header-container{position:relative}.amp-wp-header a{color:#fff;text-decoration:none}.amp-wp-header .header-title{padding:0 60px;letter-spacing:.5px}.amp-wp-header .header-title a{font-family:Lilita One}.amp-wp-header div a{color:#fff;text-decoration:none;text-align:center;font-size:18px}.amp-wp-header .header-menu-toggle{width:30px;height:30px;padding:5px 10px;position:absolute;display:block;top:5px;left:5px;background:0 0;line-height:30px;z-index:10}.amp-wp-header .header-menu-toggle button.menu-toggle{font-size:21px;line-height:1;font-weight:400;background:transparent;color:#fff;border:none;padding:0;outline:none}.amp-wp-header .header-menu-toggle svg{fill:#fff}#site-menu{width:100%;background-color:#ce5c5c;color:#fff;text-align:left;padding-left:5px;padding-right:5px}#site-menu a,#site-menu a:visited{display:block;margin:5px 0;padding:5px 0;color:#fff;font-weight:500;font-size:14px;text-transform:uppercase;text-decoration:none;line-height:28px}#site-menu ul{padding:5px 0;list-style-type:none;position:relative}#site-menu ul li{padding:0;margin:0 15px;border-bottom:1px solid rgba(255,255,255,.15)}#site-menu ul li.sidebar-close{position:relative;height:50px;border:0}#site-menu .menu-close{position:absolute;right:-5px;top:3px;width:40px;height:40px;background:transparent;border:0;padding:5px;outline:none}#site-menu .menu-close span{position:relative;display:block;margin:auto;background-color:transparent;content:"";height:2px;width:24px;opacity:1}#site-menu .menu-close span:before{background-color:#fff;content:"";height:2px;width:24px;left:0;position:absolute;top:-6px;transform-origin:center center 0;-webkit-transform:translate(0,6px) rotate(-45deg);transform:translate(0,6px) rotate(-45deg)}#site-menu .menu-close span:after{background-color:#fff;bottom:-6px;content:"";height:2px;width:24px;position:absolute;left:0;transform-origin:center center 0;-webkit-transform:translate(0,-6px) rotate(45deg);transform:translate(0,-6px) rotate(45deg)}.amp-wp-article{font-weight:400;margin:1.5em auto;overflow-wrap:break-word;overflow-x:hidden}.amp-wp-article-header{align-items:center;align-content:stretch;display:flex;flex-wrap:wrap;justify-content:space-between;margin:1.5em 10px 0}.amp-wp-title{color:#1a1a1a;display:block;flex:1 0 100%;font-weight:900;margin:0 0 .625em;width:100%}.amp-wp-article-content{margin:0 10px}.amp-wp-article-content ul{margin:1.5em 0 1.5em 1.5em}.amp-wp-article-content amp-img{margin:0 auto}.amp-wp-footer{margin:1.5em auto;border-top:1px solid rgba(0,0,0,.1)}.amp-wp-footer div{position:relative;margin:0 20px;padding:1.5em 0}.amp-wp-footer h2{font-size:1em;line-height:1.375em;text-align:center;margin:0 0 .5em;color:#222}.amp-wp-footer p{color:#888;font-size:.8em;line-height:1.5em;margin:0 85px 0 0}.amp-wp-footer a{text-decoration:none}.amp-wp-footer .av-credit-link{font-size:11px;clear:both;text-align:center;padding:10px 0;width:100%;margin:0}.amp-related-posts{margin:0 5px}.amp-related-posts amp-img{object-fit:contain}.amp-related-posts-cont{text-align:center}.amp-related-posts h2{color:#222;font-size:1.5rem;margin:1.5rem 0;text-align:center}.amp-related-posts h3{color:#222;margin-bottom:1rem;padding:1rem 0 0;font-size:1.125rem}.amp-related-posts-cont ul{list-style:none;display:flex;flex-wrap:wrap;flex-direction:row}.amp-related-posts-cont ul li{margin-bottom:1rem;width:50%;padding:0 5px;box-sizing:border-box}.amp-related-posts a{font-size:1.125rem;text-decoration:none}.av-social-share{text-align:center}.av-social-share amp-social-share{margin:0 10px}@media screen and (min-width:360px){.amp-wp-article-content,.amp-wp-article-header{margin-left:20px;margin-right:20px}.amp-related-posts{margin-left:10px;margin-right:10px}.amp-related-posts-cont ul li{padding-left:10px;padding-right:10px}}:root:not(#_):not(#_):not(#_):not(#_):not(#_) .amp-wp-f8c7f22{position:relative;font-size:12px;clear:both;text-align:center}:root:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) .amp-wp-f8c7f22{padding:8px;margin:0}
Facile riconoscimento vari punti facciali - GXVTRONICS Facile riconoscimento vari punti facciali Utilizzando il semplice python e una libreria chiamata DLib e ‘ facilissimo e divertentissimo riconoscere i punti facciali. Quello che avete bisogno e ‘ semplicemente un editor di testo oppure il professionale Pycharm con la libreria DLib installata. Una volta che avete tutto in ordine eseguite il seguente programma dando come argomenti un modello pretrained, ossia un file con i punti chiave e che richiederebbe lungo tempo per essere preparato, e la path a una folder con le foto da riconoscere.
Il seguente codice proviene dalla folder esempio di DLib:
import sys
import os
import dlib
import glob
if len(sys.argv) != 3:
print(
"Give the path to the trained shape predictor model as the first "
"argument and then the directory containing the facial images.\n"
"For example, if you are in the python_examples folder then "
"execute this program by running:\n"
" ./face_landmark_detection.py shape_predictor_68_face_landmarks.dat ../examples/faces\n"
"You can download a trained facial shape predictor from:\n"
" http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2")
exit()
predictor_path = sys.argv[1]
faces_folder_path = sys.argv[2]
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_path)
win = dlib.image_window()
for f in glob.glob(os.path.join(faces_folder_path, "*.jpg")):
print("Processing file: {}".format(f))
img = dlib.load_rgb_image(f)
win.clear_overlay()
win.set_image(img)
# Ask the detector to find the bounding boxes of each face. The 1 in the
# second argument indicates that we should upsample the image 1 time. This
# will make everything bigger and allow us to detect more faces.
dets = detector(img, 1)
print("Number of faces detected: {}".format(len(dets)))
for k, d in enumerate(dets):
print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
k, d.left(), d.top(), d.right(), d.bottom()))
# Get the landmarks/parts for the face in box d.
shape = predictor(img, d)
print("Part 0: {}, Part 1: {} ...".format(shape.part(0),
shape.part(1)))
# Draw the face landmarks on the screen.
win.add_overlay(shape)
win.add_overlay(dets)
dlib.hit_enter_to_continue()
Links https://github.com/davisking/dlib/