обнаружение пола из изображений на лице является одним из многих захватывающих приложений компьютерного зрения. В этом проекте мы объединяем OpenCV для местоположения конфронта и API Roboflow для гендерной классификации, создавая устройство, которое идентифицирует лица, проверяет их и предсказывает их пол. Мы используем Python, особенно в Google Colab, для ввода и запуска этого кода. Этот прямой дает простую прохождение кода, разъясняя каждый шаг, чтобы вы могли понять и применить его к своим предприятиям.
]Эта статья была опубликована как часть Data Science Blogathon. таблица содержимого
это обычно является распространенной стратегией для обнаружения объектов. Он идентифицирует края, текстуры и шаблоны, связанные с объектом (в данном случае, лица). OpenCV обеспечивает предварительно обученную модель обнаружения поверхности, которая загружается с использованием `cascadeclassifier.`
]мы складываем перенесенную картинку и изменяем ее на серогоском, так как это имеет значение в достижении точной конфликты местоположения. После этого мы используем детектор лица, чтобы найти лица на изображении.
]from google.colab import files import cv2 import numpy as np from matplotlib import pyplot as plt from inference_sdk import InferenceHTTPClient # Upload image uploaded = files.upload() # Load the image for filename in uploaded.keys(): img_path = filename]
]
]
Используйте cv2.imread (), чтобы сложить перенесенную картинку.# Load the Haar Cascade model for face detection face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades 'haarcascade_frontalface_default.xml')измените изображение на серогоском с помощью CV2.cvtcolor (), чтобы уменьшить сложность и обновление обнаружения.
]
]обнаружение лиц:
]# Load the image and convert to grayscale img = cv2.imread(img_path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Detect faces in the image faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))используйте Detectmultiscale (), чтобы найти лица на изображении серого.
]
для каждого распознаваемого лица система рисует ограничивающую коробку, используя CV2.Rectangle (), чтобы визуально выделить лицо в изображении. Затем он разбудит область лица, используя нарезку (face_img = img [y: y h, x: x w]), изолируя его для дальнейшей обработки. После временного сохранения обрезанного лица система отправляет его в модель Roboflow через client.infer (), которая возвращает гендерное прогноз вместе с оценкой доверия. Система добавляет эти результаты в виде текстовых меток над каждой поверхностью с использованием cv2.puttext (), обеспечивая четкое и информативное наложение.# Load the Haar Cascade model for face detection face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades 'haarcascade_frontalface_default.xml')Шаг 6: отображение результатов
]
Наконец, мы визуализируем выход. Сначала мы преобразуем изображение из BGR в RGB (как OpenCV использует BGR по умолчанию), а затем отображает обнаруженные лица и гендерные прогнозы. После этого мы показываем отдельные обрезанные лица с их соответствующими этикетками.
# преобразовать изображение из BGR в RGB для отображения img_rgb = cv2.cvtcolor (img, cv2.color_bgr2rgb) # Отображать изображение с обнаруженными лицами и гендерными метками Plt.Figure (FigSize = (10, 10)) plt.imshow (img_rgb) plt.axis ('off') plt.title (f "обнаруженные лица: {face_count}") plt.show () # Отображать каждую обрезанную поверхность с его этикеткой горизонтально Рис, оси = plt.subplots (1, face_count, Figsize = (15, 5)) для i, (face_img, метка) в перечислении (cropped_faces): face_rgb = cv2.cvtcolor (face_img, cv2.color_bgr2rgb) Оси [i] .imshow (face_rgb) Оси [i] .axis ('off') Оси [i] .set_title (метка) plt.show ()
]преобразование изображения:
] Поскольку OpenCV использует формат BGR по умолчанию, мы преобразуем изображение в RGB, используя CV2.cvtcolor () для правильного цветового отображения в Matplotlib.
# Initialize face count face_count = 0 # List to store cropped face images with labels cropped_faces = [] # Process each detected face for (x, y, w, h) in faces: face_count = 1 # Draw rectangles around the detected faces cv2.rectangle(img, (x, y), (x w, y h), (255, 0, 0), 2) # Extract the face region face_img = img[y:y h, x:x w] # Save the face image temporarily face_img_path = 'temp_face.jpg' cv2.imwrite(face_img_path, face_img) # Detect gender using the InferenceHTTPClient result = CLIENT.infer(face_img_path, model_) if 'predictions' in result and result['predictions']: prediction = result['predictions'][0] gender = prediction['class'] confidence = prediction['confidence'] # Label the rectangle with the gender and confidence label = f'{gender} ({confidence:.2f})' cv2.putText(img, label, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (255, 0, 0), 2) # Add the cropped face with label to the list cropped_faces.append((face_img, label))]
]
мы используем Matplotlib для отображения изображения с обнаруженными лицами и гендерными метками поверх них.]
]# Load the image and convert to grayscale img = cv2.imread(img_path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Detect faces in the image faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))]
в этом руководстве мы успешно разработали мощное обнаружение пола с OpenCV и Roboflow в Python. Реализуя OpenCV для обнаружения лица и Roboflow для гендерного прогноза, мы создали систему, которая может точно идентифицировать и классифицировать пол на изображениях. Добавление Matplotlib для визуализации еще больше улучшило наш проект, обеспечивая четкие и проницательные дисплеи результатов. Этот проект подчеркивает эффективность объединения этих технологий и демонстрирует их практические преимущества в реальных приложениях, предлагая надежное решение для задач обнаружения пола. ]
проект демонстрирует эффективный подход к обнаружению и классификации пола из изображений с использованием предварительно обученной модели ИИ. Демонстрация точно отличает сексуальную ориентацию с высокой уверенностью, демонстрируя его непоколебимое качество.
]
способность системы различать и классифицировать пол разных людей на одной картине подчеркивает его энергичность и гибкость, что делает его подходящим для различных приложений.
использование предварительно обученной демонстрации гарантирует высокую точность в прогнозах, как доказано показателями определенности, указанных в предстоящем. Эта точность имеет решающее значение для приложений, требующих надежной гендерной классификации. ]
также чтение: именованная гендерная идентификация с использованием NLP и Python
как работает модель обнаружения пола?
a. Модель анализирует изображения для обнаружения лиц, а затем классифицирует каждое обнаруженное лицо как мужчину или женщины на основе обученных алгоритмов ИИ. Он выводит доверительные оценки для прогнозов.Q5. какие изображения могут обрабатывать модель?
]
СМИ, показанные в этой статье, не принадлежат аналитике Vidhya и используется по усмотрению автора. ]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3