How to call the camera for object detection through PHP
Cameras have become very common in modern life. We can use cameras to perform various operations, one of which is object detection. This article will introduce how to use PHP language to call the camera and perform object detection.
Before we start, we need to make sure that PHP is installed and the camera can be used. The following are the steps to use PHP for object detection:
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
<?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'); ?>
The above code first calls the camera to obtain the image and saves it as image.jpg
. Then, crop the central area of the image through OpenCV and save it as cropped.jpg
. Next, call the pico face detection program in the php-facedetect library, take the processed image as input, and save the face detection results to face.txt
. Finally, the face detection results are parsed, the face frame is drawn on the original image, and the results are displayed.
detection.php
, and then run the following command in the terminal: php detection.php
If everything runs normally , you will be able to see the image captured by the camera and draw green boxes on the faces detected in the image.
Summary
Calling the camera for object detection through PHP is an interesting function. In this article, we introduce how to use OpenCV and the php-facedetect library to achieve this functionality, and provide a sample code to demonstrate how to detect faces. You can modify the code to detect other objects as needed.
Please note that this sample code is not complete and is for demonstration purposes only. In actual projects, you may need more logic and algorithms to complete accurate object detection. I hope this article can inspire you, and I wish you success!
The above is the detailed content of How to call the camera for object detection through PHP. For more information, please follow other related articles on the PHP Chinese website!