web-dev-qa-db-fra.com

Valeurs recommandées pour les paramètres OpenCV detectMultiScale ()

Quels sont les paramètres recommandés pour CascadeClassifier::detectMultiScale() et en fonction des facteurs pour lesquels je dois modifier les paramètres par défaut?

void CascadeClassifier::detectMultiScale(
    const Mat& image, 
    vector<Rect>& objects, 
    double scaleFactor=1.1,
    int minNeighbors=3, 
    int flags=0, 
    Size minSize=Size(),
    Size maxSize=Size() )
55
torayeff

Parmi ces paramètres, vous devez accorder plus d’attention à quatre d’entre eux:

  • scaleFactor - Paramètre spécifiant le degré de réduction de la taille de l'image à chaque échelle.

    Fondamentalement, le facteur d'échelle est utilisé pour créer votre pyramide d'échelle. Plus d'explications peuvent être trouvées ici . En bref, comme décrit ici , votre modèle a une taille fixe définie lors de la formation, qui est visible dans le xml. Cela signifie que cette taille de visage est détectée dans l'image si elle est présente. Toutefois, en redimensionnant l'image d'entrée, vous pouvez redimensionner un visage plus grand en un visage plus petit, ce qui le rend détectable par l'algorithme.

    1.05 est une bonne valeur possible, ce qui signifie que vous utilisez une petite étape pour le redimensionnement, c’est-à-dire que vous réduisez la taille de 5%, vous augmentez les chances que la taille du modèle corresponde à celle de la détection. a trouvé. Cela signifie également que l'algorithme fonctionne plus lentement car il est plus complet. Vous pouvez l'augmenter jusqu'à 1,4 pour une détection plus rapide, avec le risque de manquer certains visages.

  • minNeighbors - Paramètre spécifiant le nombre de voisins que chaque rectangle candidat devrait avoir pour le conserver.

    Ce paramètre affectera la qualité des visages détectés. Une valeur plus élevée entraîne moins de détections mais avec une qualité supérieure. 3~6 est un bon rapport qualité-prix.

  • minSize - Taille d'objet minimale possible. Les objets plus petits que cela sont ignorés.

    Ce paramètre détermine la taille que vous souhaitez détecter. Vous le décidez! Habituellement, [30, 30] est un bon début pour la détection de visage.

  • maxSize - Taille maximale possible de l'objet. Les objets plus gros que cela sont ignorés.

    Ce paramètre détermine la taille que vous souhaitez détecter. Encore une fois, vous le décidez! Généralement, vous n'avez pas besoin de le définir manuellement , la valeur par défaut suppose que vous souhaitez détecter sans limite supérieure la taille du visage.

130
herohuyongtao