프로그래밍 방식으로 사람의 얼굴을 검측하고 모호하게 하다
카탈로그
얼굴 검출 알고리즘
얼굴 검출은 21세기 초 이후 해결된 문제였지만 실제로 직면한 도전은 매우 적다. 이는 저단 이동/사물인터넷 장치의 저렴한 CPU에서 미소한 비전면 얼굴을 실시간으로 검출하는 것을 포함한다.
가장 광범위하게 사용되는 기술은 정방향 사다리 직사각형도(약칭HOG와 지원 벡터기SVM의 조합으로 고품질 이미지를 제공하는 상황에서 비교적 좋은 검측률을 실현할 수 있다.
한편, PixLab은 하나의 브랜드new architecture를 개발하여 단일 대상 검측을 대상으로 얼굴 검측에 적용한다.이 탐지기는 RealNets라는 구조를 바탕으로 분류 등급의 결정 트리를 사용하여 저렴한 안드로이드 장치의 CPU에서 실시간으로 작업하여 HOG/SVM 조합보다 우수하다.디텍터는 이미 오픈 소스 소프트웨어 SOD Computer Vision Library (OpenCV 대체 소프트웨어) 에서 발표되었고, 심지어 자바스크립트/WebAssembly에 이식되었기 때문에 실행할 수 있습니다 real-time face detection on your browser.브라우저에서 탐지기를 사용하거나 이 blog post 를 통해 WebAssembly 포트에 대한 더 많은 정보를 찾을 수 있습니다.다음 섹션에서는 RealNets 아키텍처에 대해 설명합니다.
RealNet face detector 알고리즘의 기본 사상은 다음과 같다.
프라이버시 문제
Photo sharing on social networks can cause privacy issues. Face blurring is one strategy to increase privacy while still allowing users to share photos. Users experience ratings for face blurring were positive는 모호함이 사용자 각도에서 사진을 수정할 수 있는 수용 가능한 방식일 수 있음을 나타낸다.전 세계적으로 개인 정보 보호 규정이 변경되고 최근 유럽연합에서 발효된 GDPR에 따라 서비스에 얼굴 모호성을 추가/통합하여 모든 기본 규정을 준수하는 것이 좋습니다.
이런 방법의 유일한 문제는 만약에 관중들이 사용자에 대해 약간의 이해를 가지고 있다면 그들은 여전히 그들을 식별할 수 있다는 것이다. 설령 모호하더라도.예를 들어 그들은 옷, 체형, 피부색 등 다른 요소를 사용할 수 있다.그러나 저희가 방금 API의 기본 응용 프로그램을 제시했기 때문에 개발자로서 사진 속 인물의 신분을 모호하게 표시할 수 있는 다른 기능을 통해 더욱 복잡하게 할 수 있습니다.다음 절에서는 PixLab의 이미지 모호 API를 사용하여 감지된 모든 사람의 얼굴에 이러한 필터를 적용합니다.
PixLab API
PixLab은 ML 중심의 SaaS 플랫폼으로 간단한 Web 또는 Offline SDK를 통해 개발자에게 기계 시각과 미디어 처리 API를 제공한다.PixLab API 기능 세트는 다음을 포함하지만 이에 국한되지 않습니다.
Passports & ID Cards 직접적인 HTTP Rest API를 통해 가장 선진적인 머신러닝 모델을 사용하여 문서를 스캔합니다. 예를 들어 Pythongists와 같이/PHP API 단점을 통해 공개합니다.
Python/PHP 코드 예
Given an input image with some nice faces:
먼저 사람의 얼굴을 검출하고 추출된 모든 구역(즉 사람의 얼굴 좌표)에 모호 필터를 적용합니다.최종 결과는 다음과 같습니다.
위의 결과는 다음 Pyton gist를 통해 얻을 수 있습니다.
import requests
import json
imgUrl = 'https://pixlab.io/images/m3.jpg' # Target picture we want to blur any face on. Note that /facedetect supports POST HTTP method so you can upload your images directly from your website or app.
# Detect all human faces in a given image via /facedetect first and blur all of them later via /mogrify.
# Call /facedetect first to extract the coordinates for each present face.
req = requests.get('https://api.pixlab.io/facedetect',params={
'img': imgUrl,
'key':'PIXLAB_API_KEY',
})
reply = req.json()
if reply['status'] != 200:
print (reply['error'])
exit();
total = len(reply['faces']) # Total detected faces
print(str(total)+" faces were detected")
if total < 1:
# No faces were detected, exit immediately
exit()
# Pass the detected faces coordinates untouched to mogrify
coordinates = reply['faces']
# Call mogrify & blur the face(s)
req = requests.post('https://api.pixlab.io/mogrify',headers={'Content-Type':'application/json'},data=json.dumps({
'img': imgUrl,
'key':'PIXLAB_API_KEY',
'cord': coordinates # The field of interest
}))
reply = req.json()
if reply['status'] != 200:
print (reply['error'])
else:
print ("Blurred Picture URL: "+ reply['ssl_link'])
<?php
/*
* PixLab PHP Client which is just a single class PHP file without any dependency that you can get from Github
* https://github.com/symisc/pixlab-php
*/
require_once "pixlab.php";
# Detect all human faces in a given image via `facedetect` and blur all of them via `mogrify`.
# Target Image we want to blur face(s) on
$img = 'https://pixlab.io/images/m3.jpg';
# Your PixLab API key
$key = 'PIXLAB_API_KEY';
$pix = new Pixlab($key);
echo "Detecting faces first...\n";
/* Invoke facedetect first */
if( !$pix->get('facedetect',array('img' => $img)) ){
echo $pix->get_error_message();
die;
}
/* Grab the total number of detected faces */
$faces = $pix->json->faces;
echo "Total number of detected faces: ".count($faces)."\n";
if( count($faces) < 1 ){
echo "No human faces were were detected on this picture\n";
}else{
echo "Blurring faces...\n";
/* Call mogrify (Only POST) */
if( !$pix->post('mogrify', ['img' => $img,'cord' => $faces]) ){
echo $pix->get_error_message();
}else{
echo "Blurred faces URL: ".$pix->json->link."\n";
}
}
?>
facedetect는 최초의 분석 종점이라고 부른다.이것은 이미지나 비디오 프레임에서 검출된 모든 사람의 얼굴에 대한 직사각형 좌표를 출력합니다.각 반환 좌표에는 면 너비, 높이 및 입력 이미지 또는 비디오 프레임의 X&Y 위치가 포함됩니다.잠시 후, 우리는 이 정보를 사용하여 모든 목표 구역에 모호 필터를 적용할 것이다.facedetect 단점 here 에 대한 더 많은 정보를 찾을 수 있습니다.
mogrify 우리가 검출된 모든 면의 직사각형 좌표를 얻은 후에 호출합니다.이런 상황에서 우리는 이 좌표를 닿지 않은 mogrify 에게 전달하기만 하면 이미지의 목표 구역이 모호해진다.완료되면 PixLab CDN 에서 AWS S3 메모리 통을 연결했으면,mogrify는 PixLab Dashboard 에 저장된 희미한 그림이나 자신의 S3 메모리 통에 대한 직접 링크로 돌아갑니다.이 단점의blob 매개 변수를true로 설정하면mogrify는 클라우드 저장소가 아닌 원시 모호한 이미지로 되돌아갈 수 있습니다.마지막으로mogrify 단점은 pixlab.io/cmd?id=mogrify에 기록되어 있다.
결론
Surprisingly, blurring faces automatically is straightforward for the average web developer or site administrator who may lack technical machine learning skills thanks to open computer vision technologies such the one provided by PixLab .전 세계적으로 개인 정보 보호 규정이 변경되고 최근 유럽연합에서 발효된 GDPR에 따라 서비스에 얼굴 모호성을 추가/통합하여 모든 기본 규정을 준수하는 것이 좋습니다.오프라인 SDK의 C/C++ 개발자라면 https://github.com/symisc/pixlab 및 https://github.com/symisc/sod 에서 더 많은 코드 예시를 찾으십시오.
Reference
이 문제에 관하여(프로그래밍 방식으로 사람의 얼굴을 검측하고 모호하게 하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/unqlite_db/detect-blur-faces-programmatically-2cbp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)