В Swift есть несколько способов распознавания лиц. Один из них - использование библиотеки Vision. Вам понадобится импортировать модуль Vision и использовать класс VNFaceObservation для обнаружения лиц на фотографии или видео.
Вот пример кода, который позволяет обнаружить лицо на фотографии:
import UIKit import Vision func detectFace(image: UIImage) { guard let ciImage = CIImage(image: image) else { fatalError("Не удалось получить CIImage из изображения") } // Создание обработчика запросов Core ML let faceDetectionRequest = VNDetectFaceRectanglesRequest { (request, error) in guard let observations = request.results as? [VNFaceObservation] else { fatalError("Не удалось получить результаты обнаружения лиц") } // Перебор обнаруженных лиц for observation in observations { let boundingBox = observation.boundingBox // Координаты обнаруженного лица let faceCoordinates = CGRect(x: boundingBox.origin.x * image.size.width, y: (1 - boundingBox.origin.y - boundingBox.size.height) * image.size.height, width: boundingBox.size.width * image.size.width, height: boundingBox.size.height * image.size.height) // Отображение рамки вокруг лица let imageView = UIImageView(image: image) let faceRectangle = UIView(frame: faceCoordinates) faceRectangle.layer.borderWidth = 2 faceRectangle.layer.borderColor = UIColor.red.cgColor imageView.addSubview(faceRectangle) } } // Создание обработчика изображений Core ML let faceDetectionHandler = VNImageRequestHandler(ciImage: ciImage, orientation: .up, options: [:]) do { // Запуск обработки запроса try faceDetectionHandler.perform([faceDetectionRequest]) } catch { print("Ошибка при обнаружении лица: (error)") } }
Данный код принимает UIImage, преобразует его в CIImage и использует VNDetectFaceRectanglesRequest для обнаружения лиц. Затем он перебирает результаты и отображает рамки вокруг найденных лиц на изображении с помощью UIImageView. Вы также можете выполнять другие действия с данными о лице, например, извлекать характеристики или распознавать эмоции.
Этот код является основным примером. Вы можете его настраивать, добавлять другие функции и улучшать алгоритм обнаружения. Однако помните, что распознавание лиц - сложная задача, и этот код является только начальной точкой.