[spam-prevention] 포르노 이미지를 프로그래밍 방식으로 감지하는 가장 좋은 방법은 무엇입니까? [닫은]

Akismet은 스팸 댓글을 감지하는 데 놀라운 일을합니다. 하지만 요즘에는 댓글 만이 스팸의 유일한 형태가 아닙니다. 사용자가 자신의 사진, 아바타 등을 업로드 할 수있는 소셜 네트워킹 사이트에서 포르노 이미지를 자동으로 감지하도록 akismet과 같은 기능을 원하면 어떻게해야합니까?

이미 몇 개의 이미지 기반 검색 엔진과 얼굴 인식 기능을 사용할 수 있으므로 로켓 과학이 아니고 가능하다고 가정합니다. 그러나 나는 그것이 어떻게 작동하는지, 처음부터 그것을 개발하고 싶다면 어떻게 해야하는지에 대한 단서가 없습니다.

어떻게 시작해야합니까?

이에 대한 오픈 소스 프로젝트가 있습니까?



답변

이것은 2000 년에 쓰여졌는데, 포르노 탐지의 최첨단이 전혀 발전했는지는 확실하지 않지만 나는 그것을 의심합니다.

http://www.dansdata.com/pornsweeper.htm

PORNsweeper는 사진이 컬러 인 한 사람 사진과 사람이 아닌 사진을 구별하는 능력이있는 것 같습니다. 사람들의 더러운 사진과 깨끗한 사진을 구분하는 데는 덜 성공적입니다.

기본 감도가 중간 인 경우 인사부에서 계정의 새 챕터 사진을 보내면 약 50 %의 확률로 얻을 수 있습니다. 여동생이 6 개월 된 아기의 사진을 보내면 구금 될 가능성이 비슷합니다.

소프트웨어의 동작을 대표하는 경우 모나리자 포르노를 부르는 것과 같은 재미있는 오류를 지적하는 것이 공정합니다. 제작자가 알고리즘 이미지 인식기가 15 %의 시간 동안 공을 떨어 뜨릴 것이라는 점을 인정한다면, 정확히 할 때 그것을 놀리는 것은 어리석은 일입니다.

그러나 PORNsweeper는 실제 포르노 탐지라는 한 부서에서 명시된 사양에 부합하는 것 같습니다. 포르노를 탐지하는 데는 반 정도 괜찮지 만 깨끗한 사진을 탐지하는 것은 좋지 않습니다. 그리고 가까운 장래에이 분야에서 큰 도약이 이루어지지 않았다고해도 놀라지 않을 것입니다.


답변

이것은 실제로 합리적으로 쉽습니다. 프로그래밍 방식으로 피부 톤을 감지 할 수 있으며 포르노 이미지에는 피부가 많은 경향이 있습니다. 이것은 오탐을 생성하지만 이것이 문제라면 실제 조정을 통해 감지 된 이미지를 전달할 수 있습니다. 이것은 중재자의 작업을 크게 줄일뿐만 아니라 많은 무료 포르노를 제공합니다. 윈윈입니다.

#!python
import os, glob
from PIL import Image

def get_skin_ratio(im):
    im = im.crop((int(im.size[0]*0.2), int(im.size[1]*0.2), im.size[0]-int(im.size[0]*0.2), im.size[1]-int(im.size[1]*0.2)))
    skin = sum([count for count, rgb in im.getcolors(im.size[0]*im.size[1]) if rgb[0]>60 and rgb[1]<(rgb[0]*0.85) and rgb[2]<(rgb[0]*0.7) and rgb[1]>(rgb[0]*0.4) and rgb[2]>(rgb[0]*0.2)])
    return float(skin)/float(im.size[0]*im.size[1])

for image_dir in ('porn','clean'):
    for image_file in glob.glob(os.path.join(image_dir,"*.jpg")):
        skin_percent = get_skin_ratio(Image.open(image_file)) * 100
        if skin_percent>30:
            print "PORN {0} has {1:.0f}% skin".format(image_file, skin_percent)
        else:
            print "CLEAN {0} has {1:.0f}% skin".format(image_file, skin_percent)

이 코드는 이미지 중앙의 피부 톤을 측정합니다. 나는 비교적 길들인 “포르노”이미지 20 개와 완전히 무고한 이미지 20 개를 테스트했습니다. “포르노”의 100 %와 깨끗한 이미지 20 개 중 4 개를 표시합니다. 그것은 상당히 높은 오 탐지율이지만 스크립트는 상당히 신중하고 더 조정될 수있는 것을 목표로합니다. 밝고 어둡고 아시아 피부 톤에서 작동합니다.

오 탐지의 주요 약점은 모래와 나무와 같은 갈색 물체이며 물론 “웃음”과 “좋은”육체 (얼굴 샷처럼)의 차이를 알지 못합니다.

허위 네거티브의 약점은 살이 많이 노출되지 않은 이미지 (가죽 본디지), 페인트 칠하거나 문신을 한 피부, 흑백 이미지 등입니다.

소스 코드 및 샘플 이미지


답변

오히려 사용자가 나쁜 이미지에 대해보고하는 것을 허용하고 싶습니다. 이미지 인식 개발에는 너무 많은 노력과 시간이 소요될 수 있으며 사람의 눈만큼 정확하지는 않습니다. 중재 작업을 아웃소싱하는 것이 훨씬 저렴합니다.

살펴보기 : Amazon Mechanical Turk

Amazon Mechanical Turk (MTurk)는 컴퓨터 프로그램이 인간 지능을 사용하여 컴퓨터가 수행 할 수없는 작업을 수행하도록 조정하는 크라우드 소싱 시장 인 Amazon Web Services 제품군 중 하나입니다.”


답변


답변

팔! 다음은 알고리즘이 포함 된 백서 입니다.

누구든지 자바 (또는 모든 언어) 구현을위한 소스 코드를 어디서 얻을 수 있는지 알고 있습니까?

그것은 흔들릴 것입니다.

WISE라는 알고리즘 중 하나는 정확도가 98 %이지만 오 탐률은 14 %입니다. 따라서 사용자가 2 % 오탐을 표시하도록하고, 이상적으로는 특정 수의 사용자가 플래그를 지정하면 자동 제거를 사용하고 중재자가 14 % 오탐을 보도록합니다.


답변

Nude.js 는 De La Salle University의 Rigan Ap-apid 의 백서 를 기반으로합니다 .


답변

포르노에 대한 확률을 감지하는 소프트웨어가 있지만 컴퓨터가 실제로 그림에있는 내용을 인식 할 수 없기 때문에 정확한 과학이 아닙니다 (사진은 의미가없는 그리드의 큰 값 집합 일뿐입니다). 예를 들어 컴퓨터에 포르노가 무엇인지 아닌지 가르 칠 수 있습니다. 이것은 이러한 또는 유사한 이미지 만 인식한다는 단점이 있습니다.

포르노의 반복적 인 특성을 감안할 때 오탐을 거의 사용하지 않고 시스템을 훈련하면 좋은 기회가 있습니다. 예를 들어 누드 사람들로 시스템을 훈련 시키면 “거의”누드 된 사람들이있는 해변 사진도 포르노로 표시 될 수 있습니다.

비슷한 소프트웨어는 최근에 나온 페이스 북 소프트웨어입니다. 얼굴에 특화되어 있습니다. 주요 원칙은 동일합니다.

기술적으로는 베이 필터링을 사용하는 일종의 기능 감지기를 구현합니다. 특징 탐지기는 단순한 탐지기이거나 저장된 포르노 이미지 세트로 현재 이미지의 유사성을 계산하는 경우 살색 픽셀 비율과 같은 특징을 찾을 수 있습니다.

이것은 물론 포르노에 국한되지 않고 실제로는 더 많은 경우입니다. 이미지에서 다른 것을 찾으려고하는 시스템이 더 일반적이라고 생각합니다 😉