>  기사  >  웹 프론트엔드  >  JavaScript로 얼굴 인식 및 감정 분석 알아보기

JavaScript로 얼굴 인식 및 감정 분석 알아보기

PHPz
PHPz원래의
2023-11-04 13:26:061287검색

JavaScript로 얼굴 인식 및 감정 분석 알아보기

JavaScript로 얼굴 인식 및 감정 분석 배우기

소개:
컴퓨터 기술의 급속한 발전과 함께 인공지능 기술은 점점 더 성숙해지고 있습니다. 그 중 얼굴인식과 감정분석 기술은 다양한 분야에서 널리 활용되고 있다. 이 기사에서는 얼굴 인식 및 감정 분석에 JavaScript를 사용하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. 얼굴 인식
얼굴 인식은 이미지나 동영상에서 얼굴을 감지하고 인식하는 기술입니다. JavaScript에서는 타사 라이브러리인 Face-api.js를 사용하여 얼굴 인식 기능을 구현할 수 있습니다. 다음은 카메라 비디오 스트림에서 얼굴 감지 및 인식을 구현하는 샘플 코드입니다.

const video = document.getElementById('video');

Promise.all([
  faceapi.nets.tinyFaceDetector.loadFromUri('/models'),
  faceapi.nets.faceLandmark68Net.loadFromUri('/models'),
  faceapi.nets.faceRecognitionNet.loadFromUri('/models'),
  faceapi.nets.faceExpressionNet.loadFromUri('/models')
]).then(startVideo);

function startVideo() {
  navigator.getUserMedia(
    { video: {} },
    stream => video.srcObject = stream,
    err => console.error(err)
  )
}

video.addEventListener('play', () => {
  const canvas = faceapi.createCanvasFromMedia(video);
  document.body.append(canvas);
  const displaySize = { width: video.width, height: video.height };
  faceapi.matchDimensions(canvas, displaySize);
  setInterval(async () => {
    const detections = await faceapi.detectAllFaces(video, new faceapi.TinyFaceDetectorOptions())
      .withFaceLandmarks()
      .withFaceExpressions();
    const resizedDetections = faceapi.resizeResults(detections, displaySize);
    canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height);
    faceapi.draw.drawDetections(canvas, resizedDetections);
    faceapi.draw.drawFaceLandmarks(canvas, resizedDetections);
    faceapi.draw.drawFaceExpressions(canvas, resizedDetections);
  }, 100)
});

위 코드에서 Face-api.js 모델이 먼저 로드된 후 getUserMedia()를 호출하여 비디오 스트림을 가져옵니다. 메소드와 그 값은 비디오 요소에 할당됩니다. 비디오 재생 이벤트 리스너에서 discoverAllFaces() 메서드를 사용하여 비디오 스트림의 모든 얼굴을 감지하고 drawDetections() 및 drawFaceLandmarks() 메서드를 통해 얼굴 감지 프레임과 얼굴 키 포인트를 그립니다. 마지막으로 drawFaceExpressions() 메서드를 통해 표정을 그립니다.

2. 감정 분석
감정 분석은 얼굴 표정을 분석하고 식별하여 사람의 감정 상태를 판단하는 것입니다. JavaScript에서는 Face-api.js 라이브러리를 사용하여 감정 분석 기능을 구현할 수도 있습니다. 다음은 사진에서 얼굴 표정을 인식하여 감정 결과를 출력하는 샘플 코드입니다.

const img = document.getElementById('img');

Promise.all([
  faceapi.nets.tinyFaceDetector.loadFromUri('/models'),
  faceapi.nets.faceLandmark68Net.loadFromUri('/models'),
  faceapi.nets.faceRecognitionNet.loadFromUri('/models'),
  faceapi.nets.faceExpressionNet.loadFromUri('/models')
]).then(startAnalysis);

function startAnalysis() {
  faceapi.detectAllFaces(img)
    .withFaceLandmarks()
    .withFaceExpressions()
    .then(result => {
      if (result.length > 0) {
        const expressions = result[0].expressions;
        const emotion = Object.keys(expressions).reduce((a, b) => expressions[a] > expressions[b] ? a : b);
        console.log(`Detected emotion: ${emotion}`);
      } else {
        console.log("No faces detected");
      }
    })
    .catch(err => console.error(err));
}

위 코드에서는 Face-api.js 모델을 먼저 로드한 후, detectorAllFaces()를 통해 사진 속 인물을 감지합니다. 얼굴을 검출한 후 withFaceLandmarks() 메서드를 통해 얼굴의 핵심 포인트 위치를 획득하고, 마지막으로 withFaceExpressions() 메서드를 통해 표현 결과를 획득합니다. 표현 결과에서 확률이 가장 높은 감정을 찾아 출력하기 위해 Reduce() 메소드를 사용한다.

결론:
이 기사에서는 JavaScript를 사용하여 얼굴 인식 및 감정 분석 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 이러한 기술을 학습하고 숙달함으로써 인공지능 기술은 다양한 분야에 적용되어 사용자에게 더 나은 경험과 서비스를 제공할 수 있습니다. 이 기사의 소개와 코드 예제를 통해 독자들이 이러한 기술을 더 깊이 이해하고 적용하고 더 많은 인공 지능 애플리케이션의 개발을 촉진할 수 있기를 바랍니다.

위 내용은 JavaScript로 얼굴 인식 및 감정 분석 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.