นี่เป็นเรื่องง่ายพอสมควร คุณสามารถตรวจจับโทนสีผิวโดยทางโปรแกรมได้และภาพโป๊มักจะมีผิวเยอะ สิ่งนี้จะสร้างผลบวกลวง แต่หากเป็นปัญหาคุณสามารถส่งภาพที่ตรวจพบผ่านการกลั่นกรองจริง สิ่งนี้ไม่เพียงลดการทำงานของผู้ดูแล แต่ยังช่วยให้คุณมีสื่อลามกฟรีมากมาย มันชนะ
#!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% และ 4 ภาพจาก 20 ภาพที่สะอาดตา นั่นเป็นอัตราผลบวกที่ผิดพลาดค่อนข้างสูง แต่สคริปต์มีจุดมุ่งหมายที่จะค่อนข้างระมัดระวังและสามารถปรับแต่งเพิ่มเติมได้ ใช้ได้กับโทนสีผิวที่สว่างมืดและเอเชีย
จุดอ่อนหลักที่มีผลบวกลวงคือวัตถุสีน้ำตาลเช่นทรายและไม้และแน่นอนว่ามันไม่ทราบความแตกต่างระหว่างเนื้อ "ซน" และ "ดี" (เช่นภาพใบหน้า)
ความอ่อนแอด้วยฟิล์มเนกาทีฟปลอมจะเป็นภาพที่ไม่มีเนื้อสัมผัสมาก (เช่นหนังหุ้ม) ผิวหนังที่มีสีหรือรอยสักภาพขาวดำ ฯลฯ
ซอร์สโค้ดและรูปภาพตัวอย่าง