{"id":76756,"date":"2024-04-15T08:34:43","date_gmt":"2024-04-15T07:34:43","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=76756&#038;preview=true&#038;preview_id=76756"},"modified":"2024-04-16T10:00:32","modified_gmt":"2024-04-16T09:00:32","slug":"appli-detection-objet-react","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/","title":{"rendered":"Comment construire une application de d\u00e9tection d&rsquo;objets en temps r\u00e9el en utilisant React et Kinsta"},"content":{"rendered":"<p>Depuis l&rsquo;am\u00e9lioration des cam\u00e9ras, la d\u00e9tection d&rsquo;objets en temps r\u00e9el est devenue une fonctionnalit\u00e9 de plus en plus recherch\u00e9e. Des voitures autonomes aux syst\u00e8mes de surveillance intelligents en passant par les applications de r\u00e9alit\u00e9 augment\u00e9e, cette technologie est utilis\u00e9e dans de nombreuses situations.<\/p>\n<p>La vision par ordinateur, terme sophistiqu\u00e9 d\u00e9signant la technologie qui utilise des cam\u00e9ras avec des ordinateurs pour effectuer des op\u00e9rations telles que celles mentionn\u00e9es ci-dessus, est un domaine vaste et complexe. Cependant, vous ne savez peut-\u00eatre pas que vous pouvez vous lancer dans la d\u00e9tection d&rsquo;objets en temps r\u00e9el tr\u00e8s facilement depuis le confort de votre navigateur.<\/p>\n<p>Cet article explique comment cr\u00e9er une application de d\u00e9tection d&rsquo;objets en temps r\u00e9el \u00e0 l&rsquo;aide de <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-react-js\/\">React<\/a> et la d\u00e9ployer sur Kinsta. L&rsquo;application de d\u00e9tection d&rsquo;objets en temps r\u00e9el exploite le flux de la webcam de l&rsquo;utilisateur.<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Pr\u00e9-requis<\/h2>\n<p>Voici un aper\u00e7u des technologies cl\u00e9s utilis\u00e9es dans ce guide :<\/p>\n<ul>\n<li><strong>React<\/strong>: React est utilis\u00e9 pour construire l&rsquo;interface utilisateur de l&rsquo;application. React excelle dans le <a href=\"https:\/\/kinsta.com\/fr\/blog\/rendu-conditionnel-react\/\">rendu de contenu dynamique<\/a> et sera utile pour pr\u00e9senter le flux de la webcam et les objets d\u00e9tect\u00e9s dans le navigateur.<\/li>\n<li><strong>TensorFlow.js<\/strong> : <a href=\"https:\/\/www.tensorflow.org\/js\" target=\"_blank\" rel=\"noopener noreferrer\">TensorFlow.js<\/a> est une biblioth\u00e8que JavaScript qui apporte la puissance de l&rsquo;apprentissage automatique au navigateur. Elle vous permet de charger des mod\u00e8les pr\u00e9-entra\u00een\u00e9s pour la d\u00e9tection d&rsquo;objets et de les ex\u00e9cuter directement dans le navigateur, \u00e9liminant ainsi le besoin d&rsquo;un traitement complexe c\u00f4t\u00e9 serveur.<\/li>\n<li><strong>Coco SSD <\/strong>: L&rsquo;application utilise un mod\u00e8le de d\u00e9tection d&rsquo;objets pr\u00e9-entra\u00een\u00e9 appel\u00e9 <a href=\"https:\/\/github.com\/tensorflow\/tfjs-models\/tree\/master\/coco-ssd\" target=\"_blank\" rel=\"noopener noreferrer\">Coco SSD<\/a>, un mod\u00e8le l\u00e9ger capable de reconna\u00eetre un large \u00e9ventail d&rsquo;objets quotidiens en temps r\u00e9el. Bien que Coco SSD soit un outil puissant, il est important de noter qu&rsquo;il a \u00e9t\u00e9 form\u00e9 sur un ensemble de donn\u00e9es g\u00e9n\u00e9rales d&rsquo;objets. Si vous avez des besoins de d\u00e9tection sp\u00e9cifiques, vous pouvez vous entra\u00eener sur un mod\u00e8le personnalis\u00e9 \u00e0 l&rsquo;aide de TensorFlow.js en <a href=\"https:\/\/blog.tensorflow.org\/2021\/01\/custom-object-detection-in-browser.html\" target=\"_blank\" rel=\"noopener noreferrer\">suivant ce guide<\/a>.<\/li>\n<\/ul>\n<h2>Cr\u00e9er un nouveau projet React<\/h2>\n<ol>\n<li>Cr\u00e9ez un nouveau projet React. Pour cela, ex\u00e9cutez la commande suivante :\n<pre><code class=\"language-bash\">npm create vite@latest kinsta-object-detection --template react<\/code><\/pre>\n<p>Cela vous permettra d&rsquo;\u00e9chafauder un projet React de base en utilisant <a href=\"https:\/\/vitejs.dev\/\" target=\"_blank\" rel=\"noopener noreferrer\">vite<\/a>.<\/li>\n<li>Ensuite, installez les biblioth\u00e8ques TensorFlow et Coco SSD en ex\u00e9cutant les commandes suivantes dans le projet :\n<pre><code class=\"language-bash\">npm i @tensorflow-models\/coco-ssd @tensorflow\/tfjs<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>Vous \u00eates maintenant pr\u00eat \u00e0 d\u00e9velopper votre application.<\/p>\n<h2>Configuration de l&rsquo;application<\/h2>\n<p>Avant d&rsquo;\u00e9crire le code de la logique de d\u00e9tection des objets, il convient de comprendre ce qui est d\u00e9velopp\u00e9 dans ce guide. Voici \u00e0 quoi ressemblerait l&rsquo;interface utilisateur de l&rsquo;application :<\/p>\n<figure id=\"attachment_176989\" aria-describedby=\"caption-attachment-176989\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-176989 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/object-detection-app-ui-1024x502.png\" alt=\"Conception de l'interface utilisateur de l'application.\" width=\"1024\" height=\"502\"><figcaption id=\"caption-attachment-176989\" class=\"wp-caption-text\">Conception de l&rsquo;interface utilisateur de l&rsquo;application.<\/figcaption><\/figure>\n<p>Lorsqu&rsquo;un utilisateur clique sur le bouton <strong>Start Webcam<\/strong>, il est invit\u00e9 \u00e0 autoriser l&rsquo;application \u00e0 acc\u00e9der au flux de la webcam. Une fois l&rsquo;autorisation accord\u00e9e, l&rsquo;application commence \u00e0 afficher le flux de la webcam et d\u00e9tecte les objets pr\u00e9sents dans le flux. Elle affiche alors une bo\u00eete pour montrer les objets d\u00e9tect\u00e9s sur le flux en direct et y ajoute une \u00e9tiquette.<\/p>\n<p>Pour commencer, cr\u00e9ez l&rsquo;interface utilisateur de l&rsquo;application en collant le code suivant dans le fichier <strong>App.jsx<\/strong>:<\/p>\n<pre><code class=\"language-jsx\">import ObjectDetection from '.\/ObjectDetection';\nfunction App() {\n  return (\n    &lt;div className=\"app\"&gt;\n      &lt;h1&gt;Image Object Detection&lt;\/h1&gt;\n        &lt;ObjectDetection \/&gt;\n    &lt;\/div&gt;\n  );\n}\n\nexport default App;<\/code><\/pre>\n<p>Cet extrait de code sp\u00e9cifie un en-t\u00eate pour la page et importe un composant personnalis\u00e9 nomm\u00e9 <code>ObjectDetection<\/code>. Ce composant contient la logique permettant de capturer le flux de la webcam et de d\u00e9tecter les objets en temps r\u00e9el.<\/p>\n<p>Pour cr\u00e9er ce composant, cr\u00e9ez un nouveau fichier nomm\u00e9 <strong>ObjectDetection.jsx<\/strong> dans votre r\u00e9pertoire <strong>src <\/strong>et collez-y le code suivant :<\/p>\n<pre><code class=\"language-jsx\">import { useEffect, useRef, useState } from 'react';\n\nconst ObjectDetection = () =&gt; {\n  const videoRef = useRef(null);\n  const [isWebcamStarted, setIsWebcamStarted] = useState(false)\n\n  const startWebcam = async () =&gt; {\n    \/\/ TODO\n  };\n\n  const stopWebcam = () =&gt; {\n     \/\/ TODO\n  };\n\n  return (\n    &lt;div className=\"object-detection\"&gt;\n      &lt;div className=\"buttons\"&gt;\n        &lt;button onClick={isWebcamStarted ? stopWebcam : startWebcam}&gt;{isWebcamStarted ? \"Stop\" : \"Start\"} Webcam&lt;\/button&gt;\n      &lt;\/div&gt;\n      &lt;div className=\"feed\"&gt;\n        {isWebcamStarted ? &lt;video ref={videoRef} autoPlay muted \/&gt; : &lt;div \/&gt;}\n      &lt;\/div&gt;\n    &lt;\/div&gt;\n  );\n};\n\nexport default ObjectDetection;<\/code><\/pre>\n<p>Le code ci-dessus d\u00e9finit une structure <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-le-html\/\">HTML<\/a> avec un bouton pour d\u00e9marrer et arr\u00eater le flux de la webcam et un \u00e9l\u00e9ment <code>&lt;video&gt;<\/code> qui sera utilis\u00e9 pour montrer \u00e0 l&rsquo;utilisateur le flux de sa webcam une fois qu&rsquo;il est actif. Un conteneur d&rsquo;\u00e9tat <code>isWebcamStarted<\/code> est utilis\u00e9 pour stocker l&rsquo;\u00e9tat du flux de la webcam. Deux fonctions, <code>startWebcam<\/code> et <code>stopWebcam<\/code>, sont utilis\u00e9es pour d\u00e9marrer et arr\u00eater le flux de la webcam. D\u00e9finissons-les :<\/p>\n<p>Voici le code de la fonction <code>startWebcam<\/code>:<\/p>\n<pre><code class=\"language-jsx\">const startWebcam = async () =&gt; {\n    try {\n      setIsWebcamStarted(true)\n      const stream = await navigator.mediaDevices.getUserMedia({ video: true });\n\n      if (videoRef.current) {\n        videoRef.current.srcObject = stream;\n      }\n    } catch (error) {\n      setIsWebcamStarted(false)\n      console.error('Error accessing webcam:', error);\n    }\n  };<\/code><\/pre>\n<p>Cette fonction se charge de demander \u00e0 l&rsquo;utilisateur d&rsquo;autoriser l&rsquo;acc\u00e8s \u00e0 la webcam et, une fois l&rsquo;autorisation accord\u00e9e, elle configure le site <code>&lt;video&gt;<\/code> pour qu&rsquo;il affiche le flux de la webcam en direct \u00e0 l&rsquo;utilisateur.<\/p>\n<p>Si le code ne parvient pas \u00e0 acc\u00e9der au flux de la webcam (peut-\u00eatre parce qu&rsquo;il n&rsquo;y a pas de webcam sur l&rsquo;appareil actuel ou parce que l&rsquo;utilisateur n&rsquo;a pas l&rsquo;autorisation), la fonction imprime un message sur la console. Vous pouvez utiliser un bloc d&rsquo;erreur pour afficher la raison de l&rsquo;\u00e9chec \u00e0 l&rsquo;utilisateur.<\/p>\n<p>Remplacez ensuite la fonction <code>stopWebcam<\/code> par le code suivant :<\/p>\n<pre><code class=\"language-jsx\">const stopWebcam = () =&gt; {\n    const video = videoRef.current;\n\n    if (video) {\n      const stream = video.srcObject;\n      const tracks = stream.getTracks();\n\n      tracks.forEach((track) =&gt; {\n        track.stop();\n      });\n\n      video.srcObject = null;\n      setPredictions([])\n      setIsWebcamStarted(false)\n    }\n  };<\/code><\/pre>\n<p>Ce code v\u00e9rifie les pistes de flux vid\u00e9o en cours d&rsquo;ex\u00e9cution auxquelles l&rsquo;objet <code>&lt;video&gt;<\/code> acc\u00e8de et arr\u00eate chacune d&rsquo;entre elles. Enfin, il d\u00e9finit l&rsquo;\u00e9tat de <code>isWebcamStarted<\/code> en <code>false<\/code>.<\/p>\n<p>\u00c0 ce stade, essayez d&rsquo;ex\u00e9cuter l&rsquo;application pour v\u00e9rifier si vous pouvez acc\u00e9der au flux de la webcam et le visualiser.<\/p>\n<p>Veillez \u00e0 coller le code suivant dans le fichier <strong>index.css<\/strong> pour vous assurer que l&rsquo;application a la m\u00eame apparence que l&rsquo;aper\u00e7u que vous avez vu plus t\u00f4t :<\/p>\n<pre><code class=\"language-css\">#root {\n  font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;\n  line-height: 1.5;\n  font-weight: 400;\n  color-scheme: light dark;\n  color: rgba(255, 255, 255, 0.87);\n  background-color: #242424;\n  min-width: 100vw;\n  min-height: 100vh;\n  font-synthesis: none;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\na {\n  font-weight: 500;\n  color: #646cff;\n  text-decoration: inherit;\n}\n\na:hover {\n  color: #535bf2;\n}\n\nbody {\n  margin: 0;\n  display: flex;\n  place-items: center;\n  min-width: 100vw;\n  min-height: 100vh;\n}\n\nh1 {\n  font-size: 3.2em;\n  line-height: 1.1;\n}\n\nbutton {\n  border-radius: 8px;\n  border: 1px solid transparent;\n  padding: 0.6em 1.2em;\n  font-size: 1em;\n  font-weight: 500;\n  font-family: inherit;\n  background-color: #1a1a1a;\n  cursor: pointer;\n  transition: border-color 0.25s;\n}\n\nbutton:hover {\n  border-color: #646cff;\n}\n\nbutton:focus,\n\nbutton:focus-visible {\n  outline: 4px auto -webkit-focus-ring-color;\n}\n\n@media (prefers-color-scheme: light) {\n  :root {\n    color: #213547;\n    background-color: #ffffff;\n  }\n\n  a:hover {\n    color: #747bff;\n  }\n\n  button {\n    background-color: #f9f9f9;\n  }\n}\n\n.app {\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  flex-direction: column;\n}\n\n.object-detection {\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n\n  .buttons {\n    width: 100%;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-direction: row;\n\n    button {\n      margin: 2px;\n    }\n  }\n\n  div {\n    margin: 4px;\n  }\n}<\/code><\/pre>\n<p>Supprimez \u00e9galement le fichier <strong>App.css<\/strong> pour \u00e9viter de perturber les styles des composants. Vous \u00eates maintenant pr\u00eat \u00e0 \u00e9crire la logique d&rsquo;int\u00e9gration de la d\u00e9tection d&rsquo;objets en temps r\u00e9el dans votre application.<\/p>\n<h2>Mise en place de la d\u00e9tection d&rsquo;objets en temps r\u00e9el<\/h2>\n<ol>\n<li>Commencez par ajouter les importations pour Tensorflow et Coco SSD en haut de <strong>ObjectDetection.jsx<\/strong>:\n<pre><code class=\"language-jsx\">import * as cocoSsd from '@tensorflow-models\/coco-ssd';\n\nimport '@tensorflow\/tfjs';<\/code><\/pre>\n<\/li>\n<li>Ensuite, cr\u00e9ez un \u00e9tat dans le composant <code>ObjectDetection<\/code> pour stocker le tableau des pr\u00e9dictions g\u00e9n\u00e9r\u00e9es par le mod\u00e8le Coco SSD :\n<pre><code class=\"language-js\">const [predictions, setPredictions] = useState([]);<\/code><\/pre>\n<\/li>\n<li>Cr\u00e9ez ensuite une fonction qui charge le mod\u00e8le Coco SSD, collecte le flux vid\u00e9o et g\u00e9n\u00e8re les pr\u00e9dictions :\n<pre><code class=\"language-jsx\">const predictObject = async () =&gt; {\n    const model = await cocoSsd.load();\n\n    model.detect(videoRef.current).then((predictions) =&gt; {\n      setPredictions(predictions);\n    })\n\n      .catch(err =&gt; {\n        console.error(err)\n      });\n  };<\/code><\/pre>\n<p>Cette fonction utilise le flux vid\u00e9o et g\u00e9n\u00e8re des pr\u00e9dictions pour les objets pr\u00e9sents dans le flux. Elle vous fournira un tableau d&rsquo;objets pr\u00e9dits, chacun contenant une \u00e9tiquette, un pourcentage de confiance et un ensemble de coordonn\u00e9es indiquant l&#8217;emplacement de l&rsquo;objet dans l&rsquo;image vid\u00e9o.<\/p>\n<p>Vous devez appeler cette fonction en permanence pour traiter les images vid\u00e9o au fur et \u00e0 mesure qu&rsquo;elles arrivent, puis utiliser les pr\u00e9dictions stock\u00e9es dans l&rsquo;\u00e9tat <code>predictions<\/code> pour afficher les cases et les \u00e9tiquettes de chaque objet identifi\u00e9 sur le flux vid\u00e9o en direct.<\/li>\n<li>Ensuite, utilisez la fonction <code>setInterval<\/code> pour appeler la fonction en continu. Vous devez \u00e9galement emp\u00eacher cette fonction d&rsquo;\u00eatre appel\u00e9e apr\u00e8s que l&rsquo;utilisateur a arr\u00eat\u00e9 le flux de la webcam. <code>clearInterval<\/code> Ajoutez le conteneur d&rsquo;\u00e9tat suivant et le crochet <code>useEffect<\/code> dans le composant <code>ObjectDetection<\/code> pour configurer la fonction <code>predictObject<\/code> afin qu&rsquo;elle soit appel\u00e9e en continu lorsque la webcam est activ\u00e9e et qu&rsquo;elle soit supprim\u00e9e lorsque la webcam est d\u00e9sactiv\u00e9e :\n<pre><code class=\"language-jsx\">const [detectionInterval, setDetectionInterval] = useState()\n\n  useEffect(() =&gt; {\n    if (isWebcamStarted) {\n      setDetectionInterval(setInterval(predictObject, 500))\n    } else {\n      if (detectionInterval) {\n        clearInterval(detectionInterval)\n        setDetectionInterval(null)\n      }\n    }\n  }, [isWebcamStarted])<\/code><\/pre>\n<p>Cela permet \u00e0 l&rsquo;application de d\u00e9tecter les objets pr\u00e9sents devant la webcam toutes les 500 millisecondes. Vous pouvez envisager de modifier cette valeur en fonction de la vitesse \u00e0 laquelle vous souhaitez que la d\u00e9tection des objets soit effectu\u00e9e, tout en gardant \u00e0 l&rsquo;esprit que si vous le faites trop souvent, votre application risque d&rsquo;utiliser beaucoup de m\u00e9moire dans le navigateur.<\/li>\n<li>Maintenant que vous disposez des donn\u00e9es de pr\u00e9diction dans le conteneur d&rsquo;\u00e9tat <code>prediction<\/code>, vous pouvez les utiliser pour afficher une \u00e9tiquette et un cadre autour de l&rsquo;objet dans le flux vid\u00e9o en direct. Pour cela, mettez \u00e0 jour l&rsquo;instruction <code>return<\/code> de l&rsquo;instruction <code>ObjectDetection<\/code> pour qu&rsquo;elle renvoie ce qui suit :\n<pre><code class=\"language-jsx\">return (\n    &lt;div className=\"object-detection\"&gt;\n      &lt;div className=\"buttons\"&gt;\n        &lt;button onClick={isWebcamStarted ? stopWebcam : startWebcam}&gt;{isWebcamStarted ? \"Stop\" : \"Start\"} Webcam&lt;\/button&gt;\n      &lt;\/div&gt;\n      &lt;div className=\"feed\"&gt;\n        {isWebcamStarted ? &lt;video ref={videoRef} autoPlay muted \/&gt; : &lt;div \/&gt;}\n        {\/* Add the tags below to show a label using the p element and a box using the div element *\/}\n        {predictions.length &gt; 0 && (\n          predictions.map(prediction =&gt; {\n            return &lt;&gt;\n              &lt;p style={{\n                left: `${prediction.bbox[0]}px`, \n                top: `${prediction.bbox[1]}px`,\n                width: `${prediction.bbox[2] - 100}px`\n            }}&gt;{prediction.class  + ' - with ' \n            + Math.round(parseFloat(prediction.score) * 100) \n            + '% confidence.'}&lt;\/p&gt;\n            &lt;div className={\"marker\"} style={{\n              left: `${prediction.bbox[0]}px`,\n              top: `${prediction.bbox[1]}px`,\n              width: `${prediction.bbox[2]}px`,\n              height: `${prediction.bbox[3]}px`\n            }} \/&gt;\n            &lt;\/&gt;\n          })\n        )}\n      &lt;\/div&gt;\n      {\/* Add the tags below to show a list of predictions to user *\/}\n      {predictions.length &gt; 0 && (\n        &lt;div&gt;\n          &lt;h3&gt;Predictions:&lt;\/h3&gt;\n          &lt;ul&gt;\n            {predictions.map((prediction, index) =&gt; (\n              &lt;li key={index}&gt;\n                {`${prediction.class} (${(prediction.score * 100).toFixed(2)}%)`}\n              &lt;\/li&gt;\n            ))}\n          &lt;\/ul&gt;\n        &lt;\/div&gt;\n      )}\n\n    &lt;\/div&gt;\n  );<\/code><\/pre>\n<p>Cela rendra une liste de pr\u00e9dictions juste en dessous du flux de la webcam et dessinera une bo\u00eete autour de l&rsquo;objet pr\u00e9dit en utilisant les coordonn\u00e9es de Coco SSD ainsi qu&rsquo;une \u00e9tiquette en haut des bo\u00eetes.<\/li>\n<li>Pour styliser correctement les bo\u00eetes et l&rsquo;\u00e9tiquette, ajoutez le code suivant au fichier <strong>index.css<\/strong>:\n<pre><code class=\"language-css\">.feed {\n  position: relative;\n\n  p {\n    position: absolute;\n    padding: 5px;\n    background-color: rgba(255, 111, 0, 0.85);\n    color: #FFF;\n    border: 1px dashed rgba(255, 255, 255, 0.7);\n    z-index: 2;\n    font-size: 12px;\n    margin: 0;\n  }\n\n  .marker {\n    background: rgba(0, 255, 0, 0.25);\n    border: 1px dashed #fff;\n    z-index: 1;\n    position: absolute;\n  }\n\n}<\/code><\/pre>\n<p>Ceci termine le d\u00e9veloppement de l&rsquo;application. Vous pouvez maintenant red\u00e9marrer le serveur de d\u00e9veloppement pour tester l&rsquo;application. Voici \u00e0 quoi elle devrait ressembler une fois termin\u00e9e :<\/p>\n<p><figure id=\"attachment_176988\" aria-describedby=\"caption-attachment-176988\" style=\"width: 2988px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-176988 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/object-detection-demo.gif\" alt=\"D\u00e9monstration de la d\u00e9tection d'objets en temps r\u00e9el \u00e0 l'aide d'une webcam\" width=\"2988\" height=\"1466\"><figcaption id=\"caption-attachment-176988\" class=\"wp-caption-text\">D\u00e9monstration de la d\u00e9tection d&rsquo;objets en temps r\u00e9el \u00e0 l&rsquo;aide d&rsquo;une webcam<\/figcaption><\/figure><\/li>\n<\/ol>\n<p>Vous pouvez trouver le code complet dans ce <a href=\"https:\/\/github.com\/krharsh17\/realtime-object-detection\" target=\"_blank\" rel=\"noopener noreferrer\">d\u00e9p\u00f4t GitHub<\/a>.<\/p>\n<h2>D\u00e9ployer l&rsquo;application termin\u00e9e sur Kinsta<\/h2>\n<p>La derni\u00e8re \u00e9tape consiste \u00e0 d\u00e9ployer l&rsquo;application sur Kinsta pour la mettre \u00e0 la disposition de vos utilisateurs. Pour ce faire, Kinsta vous permet d&rsquo;<a href=\"https:\/\/docs.sevalla.com\/static-sites\/overview\">h\u00e9berger <strong>gratuitement<\/strong> jusqu&rsquo;\u00e0 100 sites web statiques<\/a> directement depuis votre fournisseur Git pr\u00e9f\u00e9r\u00e9 (<a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> ou <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>).<\/p>\n<p>Une fois que votre d\u00e9p\u00f4t git est pr\u00eat, suivez les \u00e9tapes suivantes pour d\u00e9ployer votre application de d\u00e9tection d&rsquo;objets sur Kinsta :<\/p>\n<ol>\n<li>Connectez-vous ou cr\u00e9ez un compte pour afficher votre tableau de bord <a href=\"https:\/\/my.kinsta.com\/?lang=fr\" target=\"_blank\" rel=\"noopener noreferrer\">MyKinsta<\/a>.<\/li>\n<li>Autorisez Kinsta avec votre fournisseur Git.<\/li>\n<li>Cliquez sur <strong>Sites statiques<\/strong> dans la colonne lat\u00e9rale de gauche, puis sur <strong>Ajouter un site<\/strong>.<\/li>\n<li>S\u00e9lectionnez le d\u00e9p\u00f4t et la branche \u00e0 partir desquels vous souhaitez effectuer le d\u00e9ploiement.<\/li>\n<li>Attribuez un nom unique \u00e0 votre site.<\/li>\n<li>Ajoutez les param\u00e8tres de construction dans le format suivant :\n<ul>\n<li><strong>Commande de construction :<\/strong> <code>yarn build<\/code> ou <code>npm run build<\/code><\/li>\n<li><strong>Version Node :<\/strong> <code>20.2.0<\/code><\/li>\n<li><strong>R\u00e9pertoire de publication :<\/strong> <code>dist<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Enfin, cliquez sur <strong>Cr\u00e9er un site<\/strong>.<\/li>\n<\/ol>\n<p>Une fois l&rsquo;application d\u00e9ploy\u00e9e, vous pouvez cliquer sur <strong>Visiter le site<\/strong> dans le tableau de bord pour acc\u00e9der \u00e0 l&rsquo;application. Vous pouvez maintenant essayer d&rsquo;ex\u00e9cuter l&rsquo;application sur diff\u00e9rents appareils \u00e9quip\u00e9s de cam\u00e9ras pour voir comment elle fonctionne.<\/p>\n<p>Comme alternative \u00e0 l&rsquo;h\u00e9bergement de site statique, vous pouvez d\u00e9ployer votre site statique avec l&rsquo;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9bergement d&rsquo;application<\/a> de Kinsta, qui offre une plus grande flexibilit\u00e9 d&rsquo;h\u00e9bergement, une plus large gamme d&rsquo;avantages et l&rsquo;acc\u00e8s \u00e0 des fonctionnalit\u00e9s plus robustes. Par exemple, l&rsquo;\u00e9volutivit\u00e9, le d\u00e9ploiement personnalis\u00e9 \u00e0 l&rsquo;aide d&rsquo;un <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/dockerfile\">fichier Docker<\/a> et des <a href=\"https:\/\/docs.sevalla.com\/applications\/analytics\">analyses compl\u00e8tes<\/a> englobant des donn\u00e9es en temps r\u00e9el et historiques.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Vous avez r\u00e9ussi \u00e0 construire une application de d\u00e9tection d&rsquo;objets en temps r\u00e9el \u00e0 l&rsquo;aide de React, TensorFlow.js et Kinsta. Cela vous permet d&rsquo;explorer le monde passionnant de la vision par ordinateur et de cr\u00e9er des exp\u00e9riences interactives directement dans le navigateur de l&rsquo;utilisateur.<\/p>\n<p>N&rsquo;oubliez pas que le mod\u00e8le Coco SSD que nous avons utilis\u00e9 n&rsquo;est qu&rsquo;un point de d\u00e9part. En explorant davantage, vous pouvez approfondir la d\u00e9tection d&rsquo;objets personnalis\u00e9s \u00e0 l&rsquo;aide de TensorFlow.js, ce qui vous permet d&rsquo;adapter l&rsquo;application \u00e0 l&rsquo;identification d&rsquo;objets sp\u00e9cifiques r\u00e9pondant \u00e0 vos besoins.<\/p>\n<p>Les possibilit\u00e9s sont vastes ! Cette application sert de base \u00e0 la cr\u00e9ation d&rsquo;applications plus d\u00e9taill\u00e9es, comme des exp\u00e9riences de r\u00e9alit\u00e9 augment\u00e9e ou des syst\u00e8mes de surveillance intelligents. En d\u00e9ployant votre application sur la plateforme fiable de Kinsta, vous pouvez partager votre cr\u00e9ation avec le monde entier et voir la puissance de la vision par ordinateur prendre vie.<\/p>\n<p><em>Quel est le probl\u00e8me que vous avez rencontr\u00e9 et que vous pensez que la d\u00e9tection d&rsquo;objets en temps r\u00e9el peut r\u00e9soudre ? Faites-le nous savoir dans les commentaires ci-dessous !<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depuis l&rsquo;am\u00e9lioration des cam\u00e9ras, la d\u00e9tection d&rsquo;objets en temps r\u00e9el est devenue une fonctionnalit\u00e9 de plus en plus recherch\u00e9e. Des voitures autonomes aux syst\u00e8mes de surveillance &#8230;<\/p>\n","protected":false},"author":238,"featured_media":76757,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[979,1011,1004],"class_list":["post-76756","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-frameworks-javascript","topic-generateurs-sites-statiques","topic-react"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comment construire une application de d\u00e9tection d&#039;objets en temps r\u00e9el en utilisant React et Kinsta - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Cet article explique comment construire une application de d\u00e9tection d&#039;objets en temps r\u00e9el \u00e0 l&#039;aide de React qui exploite la webcam d&#039;un utilisateur et d\u00e9ployer l&#039;application sur Kinsta.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment construire une application de d\u00e9tection d&#039;objets en temps r\u00e9el en utilisant React et Kinsta\" \/>\n<meta property=\"og:description\" content=\"Cet article explique comment construire une application de d\u00e9tection d&#039;objets en temps r\u00e9el \u00e0 l&#039;aide de React qui exploite la webcam d&#039;un utilisateur et d\u00e9ployer l&#039;application sur Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-15T07:34:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-16T09:00:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kumar Harsh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Cet article explique comment construire une application de d\u00e9tection d&#039;objets en temps r\u00e9el \u00e0 l&#039;aide de React qui exploite la webcam d&#039;un utilisateur et d\u00e9ployer l&#039;application sur Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app-1024x512.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kumar Harsh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/\"},\"author\":{\"name\":\"Kumar Harsh\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9\"},\"headline\":\"Comment construire une application de d\u00e9tection d&rsquo;objets en temps r\u00e9el en utilisant React et Kinsta\",\"datePublished\":\"2024-04-15T07:34:43+00:00\",\"dateModified\":\"2024-04-16T09:00:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/\"},\"wordCount\":1986,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/\",\"name\":\"Comment construire une application de d\u00e9tection d'objets en temps r\u00e9el en utilisant React et Kinsta - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg\",\"datePublished\":\"2024-04-15T07:34:43+00:00\",\"dateModified\":\"2024-04-16T09:00:32+00:00\",\"description\":\"Cet article explique comment construire une application de d\u00e9tection d'objets en temps r\u00e9el \u00e0 l'aide de React qui exploite la webcam d'un utilisateur et d\u00e9ployer l'application sur Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/react\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment construire une application de d\u00e9tection d&#8217;objets en temps r\u00e9el en utilisant React et Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9\",\"name\":\"Kumar Harsh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g\",\"caption\":\"Kumar Harsh\"},\"description\":\"Kumar is a software developer and a technical author based in India. He specializes in JavaScript and DevOps. You can learn more about his work on his website.\",\"sameAs\":[\"https:\/\/kumarharsh.me\"],\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/kumarharsh\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment construire une application de d\u00e9tection d'objets en temps r\u00e9el en utilisant React et Kinsta - Kinsta\u00ae","description":"Cet article explique comment construire une application de d\u00e9tection d'objets en temps r\u00e9el \u00e0 l'aide de React qui exploite la webcam d'un utilisateur et d\u00e9ployer l'application sur Kinsta.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment construire une application de d\u00e9tection d'objets en temps r\u00e9el en utilisant React et Kinsta","og_description":"Cet article explique comment construire une application de d\u00e9tection d'objets en temps r\u00e9el \u00e0 l'aide de React qui exploite la webcam d'un utilisateur et d\u00e9ployer l'application sur Kinsta.","og_url":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2024-04-15T07:34:43+00:00","article_modified_time":"2024-04-16T09:00:32+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg","type":"image\/jpeg"}],"author":"Kumar Harsh","twitter_card":"summary_large_image","twitter_description":"Cet article explique comment construire une application de d\u00e9tection d'objets en temps r\u00e9el \u00e0 l'aide de React qui exploite la webcam d'un utilisateur et d\u00e9ployer l'application sur Kinsta.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app-1024x512.jpg","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Kumar Harsh","Dur\u00e9e de lecture estim\u00e9e":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/"},"author":{"name":"Kumar Harsh","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9"},"headline":"Comment construire une application de d\u00e9tection d&rsquo;objets en temps r\u00e9el en utilisant React et Kinsta","datePublished":"2024-04-15T07:34:43+00:00","dateModified":"2024-04-16T09:00:32+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/"},"wordCount":1986,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/","url":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/","name":"Comment construire une application de d\u00e9tection d'objets en temps r\u00e9el en utilisant React et Kinsta - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg","datePublished":"2024-04-15T07:34:43+00:00","dateModified":"2024-04-16T09:00:32+00:00","description":"Cet article explique comment construire une application de d\u00e9tection d'objets en temps r\u00e9el \u00e0 l'aide de React qui exploite la webcam d'un utilisateur et d\u00e9ployer l'application sur Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/04\/object-detection-app.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/appli-detection-objet-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"React","item":"https:\/\/kinsta.com\/fr\/sujets\/react\/"},{"@type":"ListItem","position":3,"name":"Comment construire une application de d\u00e9tection d&#8217;objets en temps r\u00e9el en utilisant React et Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9","name":"Kumar Harsh","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g","caption":"Kumar Harsh"},"description":"Kumar is a software developer and a technical author based in India. He specializes in JavaScript and DevOps. You can learn more about his work on his website.","sameAs":["https:\/\/kumarharsh.me"],"url":"https:\/\/kinsta.com\/fr\/blog\/author\/kumarharsh\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/76756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/238"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=76756"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/76756\/revisions"}],"predecessor-version":[{"id":76767,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/76756\/revisions\/76767"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/translations\/es"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76756\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/76757"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=76756"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=76756"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=76756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}