프로그래밍 방식으로 사람의 얼굴을 검측하고 모호하게 하다

이 글에서 당신은 현대인 얼굴 검출 알고리즘이 백그라운드에서 어떻게 작동하는지, 이런 기술의 사용과 관련된 프라이버시 문제를 이해할 것이다. 마지막으로 PixLab API를 이용하여 얼굴을 검출하고 먼저 좌표를 추출하며 마지막으로 추출된 모든 사람의 얼굴(즉 경계틀)에 대해 모호한 필터를 사용해야 한다.우리 잠수하자!

카탈로그

  • Face Detection Algorithms
  • Privacy Concerns
  • The PixLab API
  • Code Samples
  • Conclusion
  • 얼굴 검출 알고리즘


    얼굴 검출은 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 알고리즘의 기본 사상은 다음과 같다.
  • 모든 합리적인 위치와 비례에서 등급 연결 2치 분류기를 사용하여 이미지/프레임을 스캔합니다.
  • 대상 이미지/프레임의 영역이 종속 연결된 모든 구성원을 통과하는 데 성공하면 관심 있는 객체로 분류합니다.각 2치 분류기는 결정 트리 집합으로 구성되는데 그 중에서 픽셀 강도 비교는 그 내부 노드 중의 2치 테스트로 한다.이것은 탐지기가 매우 높은 속도로 이미지 영역을 처리할 수 있게 한다.
  • 이 실현은 우수 논문을 바탕으로 한다. Object Detection with Pixel Intensity Comparisons Organized in Decision Trees, 생성된 코드 라이브러리는 SOD SDK에서 통합되고 무료로 제공된다.
  • 프라이버시 문제

    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 단점을 통해 공개합니다.
  • 얼굴 분석 API 단점은 docscan, face detection, landmarks extraction, facial recognition, content moderationmany more 입니다.
  • 동적 이미지 암호화, 변환, 압축 및 PixLab API 1.9.72 버전에서 HTTP/2 및 HTTP/3(QUIC)에 대한 완전한 지원.
  • AWS S3 및 기타 클라우드 스토리지 공급업체의 에이전트입니다.
  • 130개 이상의 기계 시각과 미디어 처리API endpoints.
  • 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'])
    
  • Python Gist 소스 코드: https://github.com/symisc/pixlab/blob/master/python/blur_human_faces.py
  • 현재 PHP를 사용하는 논리는 동일합니다.
    <?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";
        }
    }
    ?>
    
  • PHP Gist 소스 코드: https://github.com/symisc/pixlab/blob/master/PHP/blur_human_faces.php
  • 밑바닥 프로그래밍 언어가 무엇이든지 간에 논리는 항상 같다.입력 이미지 URL을 유일한 매개 변수로 사용하여 간단한 HTTP GET 요청을 보냈습니다.대부분의 PixLab 단점은 다양한 HTTP 방법을 지원하기 때문에 휴대전화나 웹 응용 프로그램에서 이미지와 동영상을 직접 업로드하여 분석하려면 게시물 기반 요청으로 쉽게 전환할 수 있습니다.예제로 돌아가면 얼굴 흐림 작업은 두 개의 API 끝점만 필요합니다.

  • 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/pixlabhttps://github.com/symisc/sod 에서 더 많은 코드 예시를 찾으십시오.

    좋은 웹페이지 즐겨찾기