{"id":4835,"date":"2017-09-26T10:49:54","date_gmt":"2017-09-26T09:49:54","guid":{"rendered":"https:\/\/qdraw.nl\/blog\/?p=4835"},"modified":"2025-11-23T17:57:43","modified_gmt":"2025-11-23T16:57:43","slug":"train-een-tensorflow-gezicht-object-detectie-model","status":"publish","type":"post","link":"https:\/\/qdraw.nl\/blog\/design\/train-een-tensorflow-gezicht-object-detectie-model\/","title":{"rendered":"Train een tensorflow gezicht object detectie model"},"content":{"rendered":"<p>Met Artificial Intelligence wordt het mogelijk om beelden slim te analysen en dit slim toe te passen. Dit artikel is een follow-up van <a href=\"https:\/\/qdraw.nl\/blog\/design\/objectherkenning-met-de-computer-vision-library-tensorflow\/\" target=\"_blank\" rel=\"noopener noreferrer\">Objectherkenning met de Computer Vision library Tensorflow<\/a>.<br \/>\nIn het vorige deel zet ik een getraind model in om 80 objecten, te vinden en te identificeren en de locatie in het beeld te bepalen.  Ik ga nu nog een stap verder want ik ga een eigen model trainen dat gezichten kan vinden in een afbeelding. In deze tutorial wordt technisch stap voor stap uitgelicht hoe het proces verloopt. In de stap <em><a href=\"#conclusie-en-het-gebruik-van-het-frozen-model\">\u2018Gebruik van het frozen model\u2019<\/a> <\/em>staat toegelicht hoe het mogelijk is om het model snel te testen.<\/p>\n<p><em>There is a english version of <a target=\"_blank\" href=\"https:\/\/medium.com\/@qdraw\/how-to-train-a-tensorflow-face-object-detection-model-3599dcd0c26f\" rel=\"noopener noreferrer\">How to train a Tensorflow face object detection model<\/a> available at Medium.com<\/em><\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/1000\/000_cars-motorcyle-mscoco_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Train een tensorflow gezicht object detectie model MS COCO Tensorflow N\u00fcrburgring example (own picture) | foto 1\" data-gps=\"0,0\" data-heightratio=\"0.56\"><br \/>\n    <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/500\/000_cars-motorcyle-mscoco_kl.jpg\" alt=\"Train een tensorflow gezicht object detectie model\" \/><\/noscript><br \/>\n    <img decoding=\"async\" src=\"data:image\/jpeg;base64,\/9j\/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\/wAARCAAGAAoDASIAAhEBAxEB\/8QAFgABAQEAAAAAAAAAAAAAAAAAAAYH\/8QAIhAAAgEDAgcAAAAAAAAAAAAAAQIDAAQRBQYHEzFBUWGR\/8QAFAEBAAAAAAAAAAAAAAAAAAAAAv\/EABcRAAMBAAAAAAAAAAAAAAAAAAABAjH\/2gAMAwEAAhEDEQA\/ALe3bcEvETUYLu9VdIknJj5M7mVcdsMpUA4HT35rVjeICcRD7SlGMYUf\/9k=\" title=\"Train een tensorflow gezicht object detectie model MS COCO Tensorflow N\u00fcrburgring example (own picture) | foto 1\" alt=\"Train een tensorflow gezicht object detectie model MS COCO Tensorflow N\u00fcrburgring example (own picture); Car, motorcycle, box, common objects in context\" \/><br \/>\n<\/a><\/p>\n<p><!-- <em>MS COCO Tensorflow N\u00fcrburgring example (own picture)<\/em> --><\/p>\n<h2>Setup van de slim en object_detection module<\/h2>\n<p>De eerste stap is het clonen van de Tensorflow models. In deze repository staan Machine Leaning-modelen die getraind zijn met Tensorflow. <a href=\"https:\/\/qdraw.nl\/blog\/design\/objectherkenning-met-de-computer-vision-library-tensorflow\/\">Voor deze tutorial gebruiken we alleen de <em>slim<\/em> module en <em>object_detection<\/em><\/a>.<\/p>\n<p><span style=\"font-size:10.0pt; font-family:'Courier New';\">$ nano .profile<br \/>\nexport PYTHONPATH=$PYTHONPATH:\/home\/dion\/<wbr>tensorflow_models\/research:<wbr>\/home\/dion\/<wbr>tensorflow_models\/research\/slim<\/span><\/p>\n<p>Vervolgens zorg je ervoor dat de protobuf libraries zijn gecompiled<\/p>\n<p><span style=\"font-size:10.0pt; font-family:'Courier New'\">$ protoc object_detection\/protos\/*.proto &#45;&#45;python_out=.<\/span><\/p>\n<h2>Clone de tutorial repository en install dependencies<\/h2>\n<p>In een losse repository heb ik alle inhoud verzameld van deze tutorial. Met de onderstaande opdracht kopieer je de map vanuit Github.<\/p>\n<p><span style=\"font-size:10.0pt; font-family:'Courier New';\">$ git clone https:\/\/github.com\/qdraw\/tensorflow-face-object-detector-tutorial.git<\/span><\/p>\n<p>Mocht je snel even het model willen proberen er is een protobuf en de checkpoint files staan in deze repository.<\/p>\n<p>Het volgende deel van de uitleg voeren we uit vanuit de onderstaande map:<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\">$ cd tensorflow-face-object-detector-tutorial\/<\/span><\/p>\n<p>De benodigdheden het trainen moeten nog worden ge\u00efnstalleerd. <a href=\"https:\/\/qdraw.nl\/blog\/design\/objectherkenning-met-de-computer-vision-library-tensorflow\/\" target=\"_blank\" rel=\"noopener noreferrer\">Denk eraan dat OpenCV ook ge\u00efnstalleerd staat met Python bindings<\/a><\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\">$ pip install -r requirements.txt<\/span><\/p>\n<h2>Downloaden van de training en validatie data<\/h2>\n<p>De Chinese Universiteit van Hongkong (CUHK) heeft een grote dataset van foto\u2019s met mensen met daarbij exact aangegeven waar het gezicht zich bevindt in de afbeelding. In het onderstaande voorbeeld is staat in het kladblok de co\u00f6rdinaten van de afbeelding geselecteerd. Op de achtergrond heb ik <a target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\/\/github.com\/HumanSignal\/labelImg\">labelImg<\/a> geopend en is dezelfde foto te zien met annotaties.<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/1000\/001-0_Parade_marchingband_1_419_widerkopie_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Train een tensorflow gezicht object detectie model MS COCO Tensorflow N\u00fcrburgring example (own picture) | foto 2\" data-gps=\"0,0\" data-heightratio=\"0.63\"><br \/>\n    <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/500\/001-0_Parade_marchingband_1_419_widerkopie_kl.jpg\" alt=\"Train een tensorflow gezicht object detectie model\" \/><\/noscript><br \/>\n    <img decoding=\"async\" src=\"data:image\/jpeg;base64,\/9j\/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\/wAARCAAGAAoDASIAAhEBAxEB\/8QAFQABAQAAAAAAAAAAAAAAAAAAAAP\/xAAeEAACAwABBQAAAAAAAAAAAAABAgADESEFEyJkgf\/EABUBAQEAAAAAAAAAAAAAAAAAAAME\/8QAGxEAAgEFAAAAAAAAAAAAAAAAAQIAAwQRIVH\/2gAMAwEAAhEDEQA\/AJ2I6eZSk0oGLqN08bwTo+ZICzppAPbsG+vVESW1AqoS3YjjB1P\/2Q==\" title=\"Train een tensorflow gezicht object detectie model MS COCO Tensorflow N\u00fcrburgring example (own picture) | foto 2\" alt=\"Train een tensorflow gezicht object detectie model MS COCO Tensorflow N\u00fcrburgring example (own picture); WIDER, example\" \/><br \/>\n<\/a><\/p>\n<p><em>WIDER example using labelImg (credits: <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"http:\/\/shuoyang1213.me\/WIDERFACE\/\">http:\/\/shuoyang1213.me\/WIDERFACE\/<\/a><\/em><\/p>\n<p>Met het script <em>001_down_data.py<\/em> wordt <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"http:\/\/shuoyang1213.me\/WIDERFACE\/\">WIDERFace<\/a> en <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"http:\/\/web.archive.org\/web\/20171213203452\/https:\/\/github.com\/tensorflow\/models\/blob\/master\/research\/object_detection\/g3doc\/detection_model_zoo.md\">ssd_mobilenet_v1_coco_11_06_2017<\/a> gedownload. WIDERFace is de dataset die ik hiervoor gebruik. Daarnaast maak ik ook nog gebruik van \u2018pre-trained\u2019 model om de trainingstijd te versnellen. Wanneer je zelf gaat trainen zorg er dan voor dat er voldoende schijfruimte beschikbaar is. Er komt al minimaal 6GB in de map <em>data\/<\/em> te staan.<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\">$ python 001_down_data.py<\/span><\/p>\n<h2>WIDERFace omzetten naar Pascal XML<\/h2>\n<p>Er komt eerst nog een conversieslag. De dataset die de universiteit beschikbaar heeft gesteld is in een ander formaat dan bruikbaar is in een labelImg en Tensorflow. Met een script gaan we deze data omzetten. De afbeeldingen die gedownload zijn staan in de map WIDER_train, eerst maakt <em>002_data-to-pascal-xml.py <\/em>een los xml-bestand in dezelfde map met de annotatie data gestructureerd opgeslagen. Nadat alle afbeeldingen met een goede tag voorzien zijn van een los xml bestand wordt de inhoud gekopieerd naar een losse map (tf_wider_train). Met het onderstaande script wordt de WIDERFace data omgezet in Pascal XML en worden er losse mappen aangemaakt. Op mijn computer duurt dit 5 minuten aangezien er 9263 afbeeldingen worden verwerkt.<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\">$ python 002_data-to-pascal-xml.py<\/span><\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/1000\/002_tf_0_Parade_marchingband_1_35_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Train een tensorflow gezicht object detectie model WIDER example using labelImg (credits: http:\/\/mmlab.ie.cuhk.edu.hk\/projects\/WIDERFace\/) | foto 3\" data-gps=\"0,0\" data-heightratio=\"0.46\"><br \/>\n    <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/500\/002_tf_0_Parade_marchingband_1_35_kl.jpg\" alt=\"Train een tensorflow gezicht object detectie model\" \/><\/noscript><br \/>\n    <img decoding=\"async\" src=\"data:image\/jpeg;base64,\/9j\/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\/wAARCAAFAAoDASIAAhEBAxEB\/8QAFgABAQEAAAAAAAAAAAAAAAAAAAYH\/8QAHxAAAQQCAgMAAAAAAAAAAAAAAgABAwQRIQUGQWFx\/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL\/xAAWEQEBAQAAAAAAAAAAAAAAAAABACL\/2gAMAwEAAhEDEQA\/AN47JVl5GvRirW5aTx2BMzj28g+R9ZVMzDjQ6+oikdJLf\/\/Z\" title=\"Train een tensorflow gezicht object detectie model WIDER example using labelImg (credits: http:\/\/mmlab.ie.cuhk.edu.hk\/projects\/WIDERFace\/) | foto 3\" alt=\"Train een tensorflow gezicht object detectie model WIDER example using labelImg (credits: http:\/\/mmlab.ie.cuhk.edu.hk\/projects\/WIDERFace\/); WIDER, example\" \/><br \/>\n<\/a><br \/>\n<!-- <em>Uit de dataset WIDERFace en de film Marching Band (2009) met XML en LabelImg interface zichtbaar<\/em> --><\/p>\n<h2>Pascal XML naar Tensorflow CSV index<\/h2>\n<p>Wanneer de data is omgezet naar Pascal XML wordt er een index gemaakt. Met het trainen en valideren van de dataset gebruiken we deze bestanden als input om TFRecords van te maken. Het is echter ook mogelijk om met een tool als labelImg handmatig afbeeldingen te labelen en deze stap te gebruiken om hier een index van te maken.<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/1000\/003-excel-finder-list-files_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Train een tensorflow gezicht object detectie model WIDER example using labelImg (credits: http:\/\/mmlab.ie.cuhk.edu.hk\/projects\/WIDERFace\/) | foto 4\" data-gps=\"0,0\" data-heightratio=\"0.5\"><br \/>\n    <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/500\/003-excel-finder-list-files_kl.jpg\" alt=\"Train een tensorflow gezicht object detectie model\" \/><\/noscript><br \/>\n    <img decoding=\"async\" src=\"data:image\/jpeg;base64,\/9j\/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\/wAARCAAFAAoDASIAAhEBAxEB\/8QAFgABAQEAAAAAAAAAAAAAAAAAAAUH\/8QAHBAAAgEFAQAAAAAAAAAAAAAAAAERAwQSITEF\/8QAFAEBAAAAAAAAAAAAAAAAAAAAAf\/EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH\/2gAMAwEAAhEDEQA\/AN98tRWuGozhvKN9LieuAC9gMv\/Z\" title=\"Train een tensorflow gezicht object detectie model WIDER example using labelImg (credits: http:\/\/mmlab.ie.cuhk.edu.hk\/projects\/WIDERFace\/) | foto 4\" alt=\"Train een tensorflow gezicht object detectie model WIDER example using labelImg (credits: http:\/\/mmlab.ie.cuhk.edu.hk\/projects\/WIDERFace\/); Excel, finder\" \/><br \/>\n<\/a><br \/>\n<!-- <em>Excel and OS X Finder with list of files<\/em> --><\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\">$ python 003_xml-to-csv.py<\/span><\/p>\n<h2>Maak een TFRecord file<\/h2>\n<p>Een TFRecords file is een groot binair bestand dat uit gelezen kan worden om het Machine Learning model te trainen. Het bestand wordt in de volgende stap sequentieel uitgelezen door Tensorflow. De training en validatie data wordt omgezet d.m.v. onderstaande commando opdrachten omgezet in binaire blobs\n<\/p>\n<p>Trainingsdata naar TFRecord (847.6 MB)<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\"> $ python 004_generate_tfrecord.py &#45;&#45;images_path=data\/tf_wider_train\/images &#45;&#45;csv_input=data\/tf_wider_train\/train.csv  &#45;&#45;output_path=data\/train.record<\/span><\/p>\n<p>Validatiedata naar TFRecord (213.1MB)<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\"> $ python 004_generate_tfrecord.py &#45;&#45;images_path=data\/tf_wider_val\/images &#45;&#45;csv_input=data\/tf_wider_val\/val.csv  &#45;&#45;output_path=data\/val.record<\/span><\/p>\n<h2>Prepareren van het config bestand<\/h2>\n<p>In de repository staat <em>ssd_mobilenet_v1_face.config,<\/em> dit is een configuratiebestand dat gebruikt wordt om een Artificial Neural Network te trainen. Dit bestand is gebaseerd op een huisdieren detector.<br \/>\nHet aantal <em>num_classes <\/em>blijft in dit geval \u00e9\u00e9n omdat er alleen gezichten zullen worden herkend.<br \/>\nDe variabel<em> fine_tune_checkpoint<\/em> wordt gebruikt om het pad naar een eerder model aan te geven om learnings te halen. Deze locatie pas je aan in dit bestand. Het finetune checkpoint bestand wordt gebruikt om transfer learning toe te passen. Transfer learning is een methode in Machine Learning dat gefocust is om kennis wat opgedaan van \u00e9\u00e9n context toe te passen op een andere context.<br \/>\nIn de class<em> train_input_reader <\/em>wordt een link gelegd met de TFRecord bestanden voor het trainen van het model. In het config-bestand moet je deze aanpassen naar de juiste locatie.<br \/>\nDe variabel <em>label_map_path <\/em>bevat een index id\u2019s en namen. Bij dit bestand wordt nul als placeholder gebruikt en beginnen we dus met nummeren vanaf \u00e9\u00e9n.\n<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\"><br \/>\nitem {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;id: 1<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;name: &quot;face&quot;<br \/>\n}<br \/><\/span>\n<\/p>\n<p>Voor het valideren zijn er twee variabelen belangrijk. De variabel <em>num_examples<\/em> binnen de class <em>eval_config<\/em> wordt gebruikt om het aantal voorbeelden in te stellen.<br \/>\nIn de class <em>eval_input_reader<\/em> staat de locatie van de validatie data beschreven. Op deze locatie staat ook een pad.<br \/>\nVerder is het nog mogelijk om learning rate, batch size en nog meer instellingen te veranderen. Voor nu heb ik de standaard instellingen aangehouden.<\/p>\n<h2>Let\u2019s train \ud83d\ude09<\/h2>\n<p>Nu gaat het echte werk beginnen. De computer gaat learnings halen uit de dataset en hier een Neural Network van maken. Aangezien ik het model train op een CPU gaat dit een aantal dagen kosten om een goed resultaat te krijgen. Met krachtige Nvidia grafische kaart is het mogelijk om dit te verkorten naar enkele uren.<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'; word-break: break-all;\">$ python ~\/tensorflow_models<wbr\/>\/object_detection\/train.py &#45;&#45;logtostderr &#45;&#45;pipeline_config_path=<wbr\/>ssd_mobilenet_v1_face.config  &#45;&#45;train_dir=model_output<\/span><\/p>\n<p><!--\nTensorboard geeft inzicht in het leerproces. De tool is onderdeel van Tensorflow en wordt automatisch mee ge\u00efnstalleerd.\n\n\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'\">$ tensorboard --logdir= model_output<\/span><\/p>\n\n\n\n\n\n\n<p><a href=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/1000\/005_0_train-tf-total-loss-graph_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Train een tensorflow gezicht object detectie model Tensorflow Tensorboard TotalLoss | foto 5\" data-gps=\"0,0\">\n<img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/500\/005_0_train-tf-total-loss-graph_kl.jpg\" title=\"Train een tensorflow gezicht object detectie model Tensorflow Tensorboard TotalLoss | foto 5\" alt=\"Train een tensorflow gezicht object detectie model Tensorflow Tensorboard TotalLoss; \" \/>\n<\/a><\/p>\n\n\n\n <em>Tensorflow Tensorboard TotalLoss<\/em> --><\/p>\n<h2>Omzetten van checkpoint naar protobuf<\/h2>\n<p>Om het model te kunnen gebruiken in <a target=\"_blank\" href=\"https:\/\/qdraw.nl\/blog\/design\/objectherkenning-met-de-computer-vision-library-tensorflow\/\" rel=\"noopener noreferrer\">Objectherkenning met de Computer Vision library Tensorflow<\/a>. Het onderstaande commando staat een locatie naar de models repository en naar het laatste checkpoint. In de map <em>model<\/em> komt <em>frozen_inference_graph.pb <\/em>te staan.<\/p>\n<p><span style=\"font-size:10.0pt; font-family:'Courier New'; word-break: break-all;\">$ python ~\/tensorflow_models\/<wbr\/>object_detection\/export_inference_graph.py \\<br \/>\n&#45;&#45;input_type image_tensor \\<br \/>\n&#45;&#45;pipeline_config_path ssd_mobilenet_v1_face.config \\<br \/>\n&#45;&#45;trained_checkpoint_prefix model_output\/model.ckpt-12262 \\<br \/>\n&#45;&#45;output_directory model\/<br \/><\/span>\n<\/p>\n<h3>TL;DR;<\/h3>\n<p>In de map <em>model\/frozen_inference_graph.pb <\/em>op de github repository staat een frozen model van het Artificial Neural Network. De Chinese Universiteit van Hongkong heeft WIDERFace beschikbaar gesteld. In deze tutorial wordt deze dataset gebruikt om een gezichtsherkenings Machine Learning model te trainen.<\/p>\n<h2>Evaluatie<\/h2>\n<p>Naast de data die gebruikt wordt voor het trainen is er ook een evaluatie-dataset. Op basis van deze evaluatie-dataset is het mogelijk om de nauwkeurigheid uit te rekenen. Voor mijn model heb ik de nauwkeurigheid (Mean Average Precision) uitgerekend. Ik kwam op een score van 83.80% bij 14337 stappen (epochs). Voor dit proces heeft Tensorflow een los script en wordt het mogelijk om in Tensorboard te zien wat de score is. Er wordt aangeraden om naast het trainen ook een evaluatieproces te draaien. Je kunt dan het proces monitoren met Tensorboard.\n<\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New'; word-break: break-all;\">$ python ~\/tensorflow_models\/object_detection\/eval.py &#45;&#45;logtostderr &#45;&#45;pipeline_config_path=ssd_mobilenet_v1_face.config  &#45;&#45;checkpoint_dir=model_output &#45;&#45;eval_dir=eval<\/span><\/p>\n<p><span style=\"font-size:10.0pt;font-family:'Courier New';\">$ tensorboard &#45;&#45;logdir=eval &#45;&#45;port=6010<\/span><\/p>\n<h2 id=\"conclusie-en-het-gebruik-van-het-frozen-model\">Conclusie en het gebruik van het frozen model<\/h2>\n<p>Het is gelukt om een gezichtsherkenning model te trainen.  Het frozen model <em>model\/frozen_inference_graph.pb<\/em> kan ingezet worden in bijvoorbeeld <a target=\"_blank\" href=\"https:\/\/qdraw.nl\/blog\/design\/objectherkenning-met-de-computer-vision-library-tensorflow\/\" rel=\"noopener noreferrer\">Objectherkenning met de Computer Vision library Tensorflow<\/a>.<br \/>\nMocht de wereld van Computer Vision je interesse hebben gewekt, maar weet je nog niet hoe je dit kunt toepassen en heb je de nodige vragen? Stuur mij dan een <a target=\"_blank\" href=\"https:\/\/qdraw.nl\/contact.html\" rel=\"noopener noreferrer\">mailtje<\/a> dan kunnen we een kopje koffie drinken.<\/p>\n<p><video style=\"width:100%; height:100%;\" loop autoplay muted controls preload=\"auto\"  poster=\"https:\/\/media.qdraw.nl\/log\/train-een-tensorflow-gezicht-object-detectie-model\/embed\/007_20170926-face003a_1920.jpg\"><source src=\"https:\/\/media.qdraw.nl\/log\/train-een-tensorflow-gezicht-object-detectie-model\/embed\/007_20170926-face003a_1920.mp4\" type=\"video\/mp4\">Your browser does not support the video tag.<\/video><\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/1000\/007-group-faces_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Train een tensorflow gezicht object detectie model Uit de dataset WIDERFace en de film Marching Band (2009) met XML en LabelImg interface zichtbaar\n | foto 6\" data-gps=\"0,0\" data-heightratio=\"0.67\"><br \/>\n    <noscript><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/log\/\/train-een-tensorflow-gezicht-object-detectie-model\/500\/007-group-faces_kl.jpg\" alt=\"Train een tensorflow gezicht object detectie model\" \/><\/noscript><br \/>\n    <img decoding=\"async\" src=\"data:image\/jpeg;base64,\/9j\/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\/wAARCAAHAAoDASIAAhEBAxEB\/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH\/8QAIRABAAIBBAEFAAAAAAAAAAAAAQIDEQAEE0EFEiEiMTL\/xAAVAQEBAAAAAAAAAAAAAAAAAAADBP\/EABcRAAMBAAAAAAAAAAAAAAAAAAABEUH\/2gAMAwEAAhEDEQA\/AM1nw+OqlbuLmuJHlCVY8cM8fqWP690DsQ6ykpnhSci2O8LM\/IrkEc94E+tNNHChvD\/\/2Q==\" title=\"Train een tensorflow gezicht object detectie model Uit de dataset WIDERFace en de film Marching Band (2009) met XML en LabelImg interface zichtbaar\n | foto 6\" alt=\"Train een tensorflow gezicht object detectie model Uit de dataset WIDERFace en de film Marching Band (2009) met XML en LabelImg interface zichtbaar\n; faces, tensorflow\" \/><br \/>\n<\/a><br \/>\n<!-- \n\n<p>In dit voorbeeld worden 43 gezichten herkend. Bron afbeelding: Ricardo Lago <a href=\"https:\/\/www.flickr.com\/photos\/kruzul\/4763629720\/\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">  https:\/\/www.flickr.com\/photos\/kruzul\/4763629720\/<\/a><\/p>\n\n --><\/p>\n<p><em>Deze blogpost verscheen op <a href=\"https:\/\/qdraw.nl\/blog\/design\/train-een-tensorflow-gezicht-object-detectie-model\/\">Qdraw<\/a>. Er is een Engelse vertaling beschikbaar op: <a target=\"_blank\" href=\"https:\/\/medium.com\/@qdraw\/how-to-train-a-tensorflow-face-object-detection-model-3599dcd0c26f\" rel=\"noopener noreferrer\">Towards Data Science \u2013 Medium<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"Met Artificial Intelligence wordt het mogelijk om beelden slim te analysen en dit slim toe te passen. Dit artikel is een follow-up van Objectherkenning met de Computer Vision library Tensorflow. In het vorige deel zet ik een getraind model in om 80 objecten, te vinden en te identificeren en de locatie in het beeld te&#8230; <a class=\"view-article\" href=\"https:\/\/qdraw.nl\/blog\/design\/train-een-tensorflow-gezicht-object-detectie-model\/\">Bekijk artikel<\/a>","protected":false},"author":2,"featured_media":4834,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"qdraw_kf_afstand":"","qdraw_kf_uren":"","qdraw_kf_minuten":"","qdraw_kf_startpunt":"","qdraw_kf_eindpunt":"","qdraw_kf_waardering":"","footnotes":""},"categories":[2136],"tags":[2718,2724,2708,2725],"content_hub":[],"class_list":["post-4835","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-design","tag-artificial-intelligence","tag-computer-vision","tag-machine-learning","tag-tensorflow"],"_links":{"self":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/4835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/comments?post=4835"}],"version-history":[{"count":0,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/4835\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/media\/4834"}],"wp:attachment":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/media?parent=4835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/categories?post=4835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/tags?post=4835"},{"taxonomy":"content_hub","embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/content_hub?post=4835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}