>  기사  >  백엔드 개발  >  PHP를 통해 객체 감지를 위해 카메라를 호출하는 방법

PHP를 통해 객체 감지를 위해 카메라를 호출하는 방법

王林
王林원래의
2023-07-30 23:21:211200검색

PHP를 통해 물체 감지를 위해 카메라를 호출하는 방법

카메라는 현대 생활에서 매우 흔해졌습니다. 카메라를 사용하여 다양한 작업을 수행할 수 있으며 그 중 하나가 객체 감지입니다. 이 기사에서는 PHP 언어를 사용하여 카메라를 호출하고 객체 감지를 수행하는 방법을 소개합니다.

시작하기 전에 PHP가 설치되어 있고 카메라를 사용할 수 있는지 확인해야 합니다. 다음은 객체 감지에 PHP를 사용하는 단계입니다.

  1. 관련 라이브러리 설치
    객체 감지에 PHP를 사용하려면 먼저 필요한 라이브러리를 설치해야 합니다. 여기서는 OpenCV와 php-faceDetect 라이브러리를 사용하겠습니다. 이러한 라이브러리는 다음 명령을 통해 설치할 수 있습니다:
sudo apt-get install python-opencv
sudo apt-get install unzip
wget https://github.com/nenadmarkus/pico
cd pico
unzip master.zip
cd /path/to/php-facedetect-master
  1. PHP 코드 작성
    다음으로 PHP 코드를 작성하여 카메라를 호출하고 객체 감지를 수행할 수 있습니다. 다음은 얼굴을 감지한다고 가정한 샘플 코드입니다.
<?php
// 调用摄像头
exec('fswebcam -d /dev/video0 -r 1280x720 --no-banner image.jpg');

// 加载图片
$image = imagecreatefromjpeg('image.jpg');

// 设置参数
$scale = 4;
$w = imagesx($image) / $scale;
$h = imagesy($image) / $scale;
$size = min($w, $h);

$x = (imagesx($image) - $size) / 2;
$y = (imagesy($image) - $size) / 2;

// 裁剪图片
$croppedImage = imagecrop($image, ['x' => $x, 'y' => $y, 'width' => $size, 'height' => $size]);

// 保存裁剪后的图片
imagejpeg($croppedImage, 'cropped.jpg');

// 调用pico人脸检测库
exec('pico/picornt cropped.jpg face.txt');

// 解析人脸检测结果
$faceTxt = file_get_contents('face.txt');
$faceTxt = explode("
", $faceTxt);
$faceCount = count($faceTxt);

// 在原始图像上绘制检测到的人脸框
for ($i = 0; $i < $faceCount - 1; $i++) {
    $faceData = explode(" ", $faceTxt[$i]);
    
    $x = $faceData[0] * $scale;
    $y = $faceData[1] * $scale;
    $width = $faceData[2] * $scale;
    $height = $faceData[3] * $scale;
    
    imagerectangle($image, $x, $y, $x + $width, $y + $height, imagecolorallocate($image, 0, 255, 0));    
}

// 显示图像
header("Content-Type: image/jpeg");
imagejpeg($image);

// 删除临时文件
unlink('image.jpg');
unlink('cropped.jpg');
unlink('face.txt');
?>

위 코드는 먼저 카메라를 호출하여 이미지를 얻고 이를 image.jpg로 저장합니다. 그런 다음 OpenCV를 통해 이미지의 중앙 부분을 잘라서 cropped.jpg로 저장합니다. 다음으로 php-faceDetect 라이브러리의 pico 얼굴 감지 프로그램을 호출하고 처리된 이미지를 입력으로 받아 얼굴 감지 결과를 face.txt에 저장합니다. 마지막으로 얼굴 검출 결과를 파싱하여 원본 이미지에 얼굴 프레임을 그려 결과를 표시합니다. image.jpg。然后,通过OpenCV裁剪图像的中心区域,保存为cropped.jpg。接下来,调用php-facedetect库中的pico人脸检测程序,将处理后的图像作为输入,并将人脸检测结果保存到face.txt。最后,解析人脸检测结果,并在原始图像上绘制人脸框,将结果显示出来。

  1. 运行代码
    保存上述代码为detection.php
    1. 코드 실행
    위 코드를 Detection.php로 저장하고 터미널에서 다음 명령을 실행하세요.

    php detection.php

    모든 것이 잘 실행되면 카메라가 이미지를 캡처하고 이미지에서 감지된 얼굴에 녹색 상자를 그립니다.

    요약

    객체 감지를 위해 PHP를 통해 카메라를 호출하는 것은 흥미로운 기능입니다. 이 기사에서는 OpenCV와 php-faceDetect 라이브러리를 사용하여 이 기능을 구현하는 방법을 소개하고 얼굴을 감지하는 방법을 보여주는 샘플 코드를 제공합니다. 필요에 따라 다른 객체를 감지하도록 코드를 수정할 수 있습니다.

    🎜이 샘플 코드는 완전하지 않으며 데모 목적으로만 사용됩니다. 실제 프로젝트에서는 정확한 객체 감지를 완료하려면 더 많은 논리와 알고리즘이 필요할 수 있습니다. 이 기사가 여러분에게 영감을 줄 수 있기를 바라며, 여러분의 성공을 기원합니다! 🎜

    위 내용은 PHP를 통해 객체 감지를 위해 카메라를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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