Heim  >  Artikel  >  Backend-Entwicklung  >  So rufen Sie die Kamera zur Objekterkennung über PHP auf

So rufen Sie die Kamera zur Objekterkennung über PHP auf

王林
王林Original
2023-07-30 23:21:211272Durchsuche

So rufen Sie die Kamera zur Objekterkennung über PHP auf

Kameras sind im modernen Leben weit verbreitet. Mit Kameras können wir verschiedene Vorgänge ausführen, darunter die Objekterkennung. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Sprache die Kamera aufrufen und eine Objekterkennung durchführen.

Bevor wir beginnen, müssen wir sicherstellen, dass PHP installiert ist und die Kamera verwendet werden kann. Im Folgenden sind die Schritte aufgeführt, um PHP zur Objekterkennung zu verwenden:

  1. Relevante Bibliotheken installieren
    Um PHP zur Objekterkennung zu verwenden, müssen wir zunächst einige notwendige Bibliotheken installieren. Hier verwenden wir OpenCV und die PHP-Facedetect-Bibliothek. Diese Bibliotheken können über den folgenden Befehl installiert werden:
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-Code schreiben
    Als nächstes können wir PHP-Code schreiben, um die Kamera aufzurufen und eine Objekterkennung durchzuführen. Das Folgende ist ein Beispielcode, vorausgesetzt, wir möchten Gesichter erkennen:
<?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');
?>

Der obige Code ruft zunächst die Kamera auf, um ein Bild zu erhalten, und speichert es als image.jpg. Schneiden Sie dann den zentralen Bereich des Bildes über OpenCV zu und speichern Sie ihn als cropped.jpg. Rufen Sie als Nächstes das Pico-Gesichtserkennungsprogramm in der PHP-Facedetect-Bibliothek auf, nehmen Sie das verarbeitete Bild als Eingabe und speichern Sie die Gesichtserkennungsergebnisse in face.txt. Abschließend werden die Gesichtserkennungsergebnisse analysiert, der Gesichtsrahmen auf dem Originalbild gezeichnet und die Ergebnisse angezeigt. image.jpg。然后,通过OpenCV裁剪图像的中心区域,保存为cropped.jpg。接下来,调用php-facedetect库中的pico人脸检测程序,将处理后的图像作为输入,并将人脸检测结果保存到face.txt。最后,解析人脸检测结果,并在原始图像上绘制人脸框,将结果显示出来。

  1. 运行代码
    保存上述代码为detection.php
    1. Führen Sie den Code aus
    Speichern Sie den obigen Code als detection.php und führen Sie den folgenden Befehl im Terminal aus:

    php detection.php

    Wenn alles gut läuft, werden Sie es tun sehen können Die Kamera erfasst das Bild und zeichnet grüne Kästchen auf die im Bild erkannten Gesichter.

    Zusammenfassung

    Der Aufruf der Kamera über PHP zur Objekterkennung ist eine interessante Funktion. In diesem Artikel stellen wir vor, wie Sie OpenCV und die PHP-Facedetect-Bibliothek verwenden, um diese Funktionalität zu erreichen, und stellen einen Beispielcode zur Verfügung, um zu demonstrieren, wie Gesichter erkannt werden. Sie können den Code ändern, um bei Bedarf andere Objekte zu erkennen.

    🎜Bitte beachten Sie, dass dieser Beispielcode nicht vollständig ist und nur zu Demonstrationszwecken dient. In tatsächlichen Projekten benötigen Sie möglicherweise mehr Logik und Algorithmen, um eine genaue Objekterkennung durchzuführen. Ich hoffe, dieser Artikel kann Sie inspirieren und wünsche Ihnen viel Erfolg! 🎜

    Das obige ist der detaillierte Inhalt vonSo rufen Sie die Kamera zur Objekterkennung über PHP auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn