Разработчик Крис Бонгерс поделился в блоге на dev.to методом создания детектора лиц на JavaScript.
В отличие от предыдущей разработки автора, сканера штрих-кода, интерфейс по распознаванию лиц еще не находится в общем доступе, но его можно включить в Chrome, установив соответствующий флаг. Для этого:
chrome://flags
;#enable-experimental-web-platform-features
. Конечным результатом будет API-интерфейс для обнаружения лиц на картинке.
const faceDetector = new FaceDetector(); // Pass options: const faceDetector = new FaceDetector({ maxDetectedFaces: 5, fastMode: false });
#С помощью команды maxDetectedFaces
можно устанавливать количество лиц для обнаружения.
#Команда fasteMode
определяет скорость распознавания. Если режим включен, лица обнаруживаются быстрее, но с меньшей точностью.
try { const faces = await faceDetector.detect(image); faces.forEach(face => doSomething(face)); } catch (e) { console.error('Face detection failed:', e); }
<img src="https://images.unsplash.com/photo-1531545514256-b1400bc00f31?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1567&q=80" crossorigin alt="Group of people" />
window.onload = () => { detect(); };
async function detect() { const image = document.querySelector('img'); const faceDetector = new FaceDetector({fastMode: true}); try { const faces = await faceDetector.detect(image); faces.forEach(face => { console.log(face); }); } catch (e) { console.error('Face detection failed:', e); } }
#Функция вызывает выбранное изображение и запускает детектор в быстром режиме.
<div id="holder"> <img src="https://images.unsplash.com/photo-1531545514256-b1400bc00f31?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1567&q=80" crossorigin alt="Group of people" /> </div>
img { position: absolute; } #holder { position: relative; }
const faces = await faceDetector.detect(image); faces.forEach(face => { const {top, left, width, height} = face.boundingBox; const faceDiv = document.createElement('div'); faceDiv.className = 'face'; Object.assign(faceDiv.style, { width: `${width}px`, height: `${height}px`, left: `${left}px`, top: `${top}px` }); holder.appendChild(faceDiv); });
face
, устанавливаем для него стили и добавляем его в держатель div..face { position: absolute; border: 2px solid yellow; }
Вот и все. Конечный результат автор разместил в онлайн-редакторе кода CodePen здесь.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…