Porno görüntüleri programlı olarak tespit etmenin en iyi yolu nedir? [kapalı]


120

Akismet, spam yorumları tespit etmede harika bir iş çıkarıyor. Ancak bu günlerde yorumlar tek spam türü değil. Ya akismet gibi bir sosyal ağ sitesindeki porno görüntüleri otomatik olarak algılamak ve kullanıcıların resimlerini, avatarlarını vb. Yüklemelerine izin vermek istersem?

Halihazırda birkaç görsel tabanlı arama motoru ve yüz tanıma özelliği mevcut, bu yüzden roket bilimi olmayacağını ve yapılabilir olduğunu varsayıyorum. Bununla birlikte, bu şeylerin nasıl çalıştığına ve sıfırdan geliştirmek istersem nasıl devam etmem gerektiğine dair hiçbir fikrim yok.

Nasıl başlamalıyım?

Bunun için herhangi bir açık kaynak projesi var mı?


82
Aslında bunun roket biliminden çok daha zor olduğunu söyleyebilirim! Zaten çok sayıda
roketimiz

4
LOL. Yüz tanıma var, ancak henüz genital ve meme tanıma teknolojisi yok. Zor şans.
Jon Limjap

11
Pornografi bir coğrafya meselesidir - ayrıca, cinsel organları veya çıplaklığı hiç göstermeyen, oldukça sert (yine bazı yerlerde) kabul edilebilecek pek çok resim olduğundan eminim. Basit bir algoritma değil, gelişmiş bir yapay zeka için bir iş gibi görünüyor.
Noam Gal

2
Bu konuyu hatırlamamı sağlayan bu yardımcı programa rastladım. Çalışır mı acaba? proofpronto.com/porn-detection-stick-by-paraben.html
Martin Smith

1
@ jm666, sorun sizin için bu kadar ciddiyse ve bu alandaki son iki yılda son teknolojinin geliştiğini düşünüyorsanız, başvurulan dupe'ye bir ödül vermeye ne dersiniz? Bu şekilde biraz dikkat ve belki bazı cevaplar toplamalısın.
Michael Petrotta

Yanıtlar:


69

Bu, 2000 yılında yazılmıştır, porno algılamadaki son teknolojinin ilerlemiş olup olmadığından emin değilim, ancak bundan şüpheliyim.

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

PORNsweeper, resimler renkli olduğu sürece, insanların resimlerini insan olmayan şeylerin fotoğraflarından ayırt etme yeteneğine sahip görünüyor. İnsanların kirli resimlerini temiz olanlardan ayırt etmekte daha az başarılıdır.

Varsayılan, orta hassasiyetle, İnsan Kaynakları Hesaplar'daki yeni bölümün resmini gönderirse, onu alma şansınız yaklaşık% 50'dir. Kız kardeşiniz size altı aylık çocuğunun bir resmini gönderirse, benzer şekilde gözaltına alınma olasılığı da vardır.

Yazılımın davranışını temsil ediyorlarsa, Mona Lisa pornosu aramak gibi eğlenceli hataları belirtmek doğru olur. Yapımcılar, algoritmik görüntü tanıyıcılarının zamanın% 15'inde topu düşürdüğünü kabul ederse, tam olarak bunu yaptığında onunla dalga geçmek aptalca olur.

Ancak PORNsweeper, yalnızca bir bölümde belirtilen şartnamelere uygun görünüyor - gerçek porno tespiti. Pornoyu tespit etmede yarı yarıya iyi, ancak temiz resimleri tespit etmekte kötü. Yakın gelecekte bu alanda büyük atılımlar yapılmazsa şaşırmam.


Çünkü porno algılama o zamandan beri gelişti. Nesne tanıma / görüntü klasikleştirme / bilgisayar vizyonunda çok fazla fikir ayrılığı olmuştur. 2000 bana taş devri gibi geliyor.
Maarten

89

Bu aslında oldukça kolaydır. Cilt tonlarını programlı olarak tespit edebilirsiniz - ve porno görüntüler çok fazla cilde sahip olma eğilimindedir. Bu, yanlış pozitifler yaratacaktır, ancak bu bir sorunsa, gerçek denetim yoluyla tespit edilen görüntüleri geçirebilirsiniz. Bu sadece moderatörlerin işini büyük ölçüde azaltmakla kalmaz, aynı zamanda size bol miktarda bedava porno verir. Kazan-kazan.

#!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)

Bu kod, görüntünün merkezindeki cilt tonlarını ölçer. 20 nispeten uysal "porno" görüntü ve 20 tamamen masum görüntü üzerinde test ettim. "Porno" nun% 100'ünü ve temiz görüntülerin 20'sinden 4'ünü işaretler. Bu oldukça yüksek bir yanlış pozitif oranı ancak senaryo oldukça temkinli olmayı hedefliyor ve daha fazla ayarlanabilir. Açık, koyu ve Asya cilt tonlarında çalışır.

Yanlış pozitiflerin ana zayıf yönleri kum ve tahta gibi kahverengi nesnelerdir ve tabii ki "yaramaz" ve "güzel" et (yüz çekimleri gibi) arasındaki farkı bilmiyor.

Sahte negatiflerin zayıflığı, çok fazla maruz kalan et (deri bağları gibi), boyanmış veya dövmeli cilt, siyah beyaz resimler vb.

kaynak kodu ve örnek görüntüler


20 satırlık Python kavram kanıtınızı yayınlamak ister misiniz? (-1)
bobobobo

Fena değil, +1. İlginç bir şekilde normal yüzeylerin (halı veya buzdolabı yüzeyi gibi) görüntüleri, yüksek miktarda cilde sahip olarak ortaya çıkıyor.
bobobobo

6
Spoiler: Görüntü örneklerinde gerçek çıplaklık yok.
Luc

Bu aynı zamanda ahşabı bir deri olarak değerlendirecektir. Çünkü tamamen aynı renge ama farklı bir dokuya sahip. Portelerden bahsetmiyorum bile.
Maarten

45

Kullanıcıların kötü resimler hakkında bildirimde bulunmalarına izin vermeyi tercih ederim. Görüntü tanıma geliştirme çok fazla çaba ve zaman alabilir ve insan gözleri kadar doğru olmayacaktır. Bu ılımlılık işini dış kaynak olarak kullanmak çok daha ucuz.

Şuna bir göz atın: Amazon Mechanical Turk

" Amazon Mechanical Turk (MTurk), bilgisayar programlarının bilgisayarların yapamadığı görevleri yerine getirmek için insan zekasının kullanımını koordine etmesini sağlayan bir kitle kaynaklı pazar yeri olan Amazon Web Services paketinden biridir."


4
Muhtemelen Amazon Mechanical Turk tarzı bir web sitesi için bir pazar var, ancak bu tür konularda uzmanlaşmış bir web sitesi var .... :)
Zengin

6
Amazon Mechanical Turk muhtemelen maliyetlidir. Konu göz önüne alındığında, bunu ücretsiz olarak yapabileceğiniz akıllı bir iş modeli olduğunu düşünürsünüz.
Ankur 05

1
Bunun oldukça etik olmayan bir yaklaşım olduğunu düşünüyorum.
Noon Silk

2
@Ankur LOL! İyi fikir. PornOrNot.com'un hala mevcut olup olmadığını kontrol etmek için nic.com'a gidiyorum.
Pekka

9
@Noon Silk neden bunun etik olmayan bir yaklaşım olduğunu düşünüyorsunuz?
Mazatec


15

BOOM! Algoritmayı içeren whitepaper burada .

Bir java (veya herhangi bir dil) uygulaması için kaynak kodunu nereden alacağını bilen var mı?

Bu harika olurdu.

WISE adlı bir algoritma% 98 doğruluk oranına, ancak% 14 yanlış pozitif oranına sahiptir. Yani yaptığınız şey, kullanıcıların% 2'lik yanlış negatifleri işaretlemesine izin vermektir; ideal olarak, belirli sayıda kullanıcı tarafından işaretlenirse otomatik olarak kaldırılır ve moderatörlerin% 14 yanlış pozitifleri görüntülemesini sağlarsınız.


Algoritmayı buldun. Bu çok iyi. Kaynak kodu genellikle bir alıştırma olarak bırakılır. Sonuçta, belirli bir programlama dili belirtmiyoruz, değil mi?
Ian


8

Porno olasılığını tespit eden bir yazılım var, ancak bu kesin bir bilim değil, çünkü bilgisayarlar gerçekte resimlerdeki şeyi tanıyamıyor (resimler, bir ızgarada anlamsız yalnızca büyük bir değerler kümesidir). Bilgisayara neyin porno olduğunu ve neyin olmadığını örnekler vererek öğretebilirsiniz. Bunun dezavantajı, yalnızca bu veya benzer görüntüleri tanımasıdır.

Pornonun tekrarlayan doğası göz önüne alındığında, sistemi birkaç yanlış pozitifle eğitirseniz iyi bir şansınız olur. Örneğin, sistemi çıplak insanlarla eğitirseniz, "neredeyse" çıplak olan bir plajın resimlerini de porno olarak işaretleyebilir.

Benzer bir yazılım, son zamanlarda çıkan facebook yazılımıdır. Sadece yüzler konusunda uzmanlaşmıştır. Ana prensip aynıdır.

Teknik olarak, bölme filtrelemesini kullanan bir tür özellik algılayıcısı kullanırsınız. Özellik algılayıcı, basit bir algılayıcıysa veya yalnızca mevcut görüntünün bir dizi kaydedilmiş porno görüntüyle benzerliğini hesaplarsa, ten rengi piksel yüzdesi gibi özellikler arayabilir.

Bu elbette porno ile sınırlı değil, aslında daha çok köşe vakası. Resimlerde başka şeyler bulmaya çalışan sistemlerin daha yaygın olduğunu düşünüyorum ;-)


1
İnsanlar neden bu yanıta olumsuz oy veriyor?
Patrick Cornelissen

çünkü bir algoritma, tarif veya referans gibi bir şey içermiyor.
Ian

7
Yani soruyu soran kullanıcıya, elde etmeye çalıştığı şeyin gerçekten mümkün olmadığını açıklamak geçerli bir cevap değil mi? Dostum, biraz daha serbest kalmış olabilirsin ...
Patrick Cornelissen

Ayrıca, "bilgisayarlar resimlerdeki gerçekte ne olduğunu anlayamadıkları için" yanlış bir açıklama yapıyor
Daveth3Cat

Çünkü yapamazlar. Yalnızca belirli görüntüleri tespit etmeyi öğrenebilirsiniz ve pozitif ve negatif vakaların db değeri ne kadar büyük olursa o kadar iyidir, ancak genel olarak asla bir insan kadar doğru bir çözüm bulamazsınız, bu nedenle çok sayıda sonuç elde edersiniz. yanlış pozitifler ve negatifler.
Patrick Cornelissen

5

Cevap gerçekten çok kolay: Önümüzdeki yirmi yılda bunun mümkün olmayacağını söylemek oldukça güvenlidir. Bundan önce muhtemelen iyi çeviri araçlarına sahip olacağız. En son kontrol ettiğimde, yapay zeka çalışanları biraz farklı bir açıdan çekilmiş iki fotoğrafta aynı arabayı tanımlamaya çalışıyorlardı. Birlikte yeterince iyi OCR veya konuşma tanıma elde etmelerinin ne kadar sürdüğüne bir göz atın. Bunlar, sözlüklerden büyük ölçüde yararlanabilecek tanıma problemleridir ve kendilerine atılan milyonlarca insan ayına rağmen hala tamamen güvenilir çözümlere sahip olmaktan uzaktır.

Basitçe bir "saldırgan" ekleyebileceğiniz söyleniyor. Kullanıcı tarafından oluşturulan yarışmanın yanındaki bağlantı ve gelen şikayetleri çapraz kontrol edin.

Düzenle:

Bir şeyi unuttum: Bir tür filtre uygulayacaksanız, güvenilir bir filtreye ihtiyacınız olacak. Çözümünüz% 50 doğru ise, düzgün görüntülere sahip 4000 kullanıcıdan 2000'i engellenecektir. Bir öfke bekleyin.


5

Tayvan'daki National Cheng Kung Üniversitesi'nden bir yüksek lisans öğrencisi 2004 yılında bu konuda bir araştırma yaptı. İnternetten indirilen çıplak resimleri tespit etmede% 89.79 başarı oranına ulaştı. İşte tezinin bağlantısı: Ten Rengine Dayalı Çıplak İnsan Görüntü Algılama Çalışması
Çince, bu nedenle okuyamamanız durumunda bir çevirmene ihtiyacınız olabilir.


4

kısa cevap: bir moderatör kullanın;)

Uzun cevap: Bunun için bir proje olduğunu sanmıyorum porno nedir? Sadece bacaklar, tam çıplaklık, cüceler vs. Öznel.


3
soru şudur: "Porno görüntülerini programlı olarak tespit etmenin en iyi yolu nedir?", programlı olarak ...
Agusti-N

5
Soruyu biliyorum ama dediğim gibi% 100 doğru porno engelleyici yok çünkü porno özneldir. Öznel kod ile ilişkilendirilemez. 1 sanırım sadece çıplaklık, diğerleri pornosunu düşünüyor. Daha iyi bir çözüm, bir 'rapor resmi' düğmesine sahip olmaktır. Koistya Navin .NET ile aynı fikir
RvdK

1
"Cüceler vs." Kutsal sözsüz, Batman.
Doug McClean

Cüce pornosu diye bir şey var.
Chris Sherlock

4

Rahatsız edici bir bağlantı ekleyin ve rahatsız edici görüntünün md5'ini (veya başka bir karma değerini) saklayın, böylece gelecekte otomatik olarak etiketlenebilir.

Birisi, web hizmeti olarak çalışan açıklayıcı etiketlerle birlikte geniş bir genel görüntü md5 veritabanına sahip olsaydı ne kadar havalı olurdu? Pek çok porno orijinal bir çalışma değil (şu anda ona sahip olan kişi muhtemelen başaramadı) ve popüler görüntüler farklı yerlerde gezinme eğiliminde, bu yüzden bu gerçekten bir fark yaratabilir.


8
Şüpheliyim. Orada O kadar çok porno var (ve gün geçtikçe tonlarca daha fazla üretiliyor) aynı resmi iki kez görme şansınız (IMHO) sıfıra oldukça yakın.
Vilx

Bir süre her yerde küvete sahip kızın ne sıklıkla ortaya çıktığını bir düşünün. Bir kez işaretlenmiş olacaktı ve sonra herkes bundan kaçınabilirdi.
rfusca

3
kırpılmadıysa, yeniden boyutlandırılmadıysa veya yüklenmeden önce yeniden açılıp kaydedilmedikçe ..
Blorgbeard

Ya, bunu düşündüm :( eh, bu bir düşünceydi.
rfusca

1
MD5'ten daha iyi, ehliyet sahibi TinEye.
Tobu

2

Gerçekten zamanınız ve paranız varsa:

Bunu yapmanın bir yolu 1) Bir nesnenin insan olup olmadığını bulmak için bir görüntü algılama algoritması yazmaktır. Bu, bir görüntünün "kontürlerini" almak ve konturların bir insan konturuna uyup uymadığını görmek için bit maskesi oluşturarak yapılabilir.

2) Veri madenciliği yapan çok sayıda porno görüntü ve C4 algoritmaları veya Parçacık Sürü Optimizasyonu gibi veri madenciliği tekniklerini kullanarak porno görüntülerle eşleşen modeli tespit etmeyi öğrenin.

Bu, bir insan vücudunun çıplak erkek / kadın hatlarının dijital formatta nasıl görünmesi gerektiğini belirlemenizi gerektirecektir (bu, OCR görüntü tanıma algoritmalarının çalıştığı şekilde gerçekleştirilebilir).

Umarım eğlenirsin! :-)


2

Bana göre ana engel bir "porno imajı" tanımlamak. Kolayca tanımlayabilirseniz, muhtemelen işe yarayacak bir şey yazabilirsiniz. Ancak insanlar bile pornonun ne olduğu konusunda hemfikir değil. Uygulama nasıl bilecek? Kullanıcı denetimi muhtemelen en iyi seçeneğinizdir.


1

Porno görüntü filtreleme yapan bir web filtreleme uygulaması gördüm, üzgünüm adını hatırlayamıyorum. Yanlış pozitiflere oldukça meyilliydi, ancak çoğu zaman işe yarıyordu.

Bence asıl püf noktası, "resimdeki çok fazla dış yüzeyi algılamak :)


1
Çalışmayı da hatırlayamıyorum - ama bir kenar tespiti yaptı ve döndürülmüş veya gizlenmiş vulvaların desenleriyle eşleşti. Görüntü işleme açısından oldukça ilginç.
jim

-1, Bu yorum sağlar ancak önemli bir çözüm sunmaz.
Brad Koch

1

Porno görüntüleri tespit etmek, henüz çok teorik olan kesin bir AI görevidir.

"Spam / kötüye kullanım bildir" düğmesi / bağlantısı ekleyerek kolektif gücü ve insan zekasını toplayın. Veya bu işi yapmak için birkaç moderatör kullanın.

Not: Yazılım ve algoritmaların çok güçlü olduğunu varsayarak, istediklerinin yapılıp yapılamayacağını bile düşünmeden kaç kişinin soru sorduğunu gerçekten şaşırttı. Donanıma, düşük seviyeli programlamaya ve tüm bu "arkasındaki sihir" anlayışına sahip olmayan yeni tür programcıların temsilcileri mi?

Not 2. Ayrıca periyodik olarak, insanların bir resmin porno mu yoksa sanat mı mahkemeye götürüldüğüne karar veremedikleri bazı durumlarda olduğunu hatırlıyorum. Mahkeme kurallarından sonra bile, insanların yarısı kararı yanlış değerlendirecek. Bu türden son aptalca durum, oldukça yakın bir tarihte, bir Wikipedia sayfasının, biraz çıplaklık içeren bir CD kapak resmi nedeniyle İngiltere'de yasaklanmasıydı.


1

Aklıma gelen iki seçenek (her ikisi de programatik olarak pornoyu tespit etmiyor):

  1. Yöneticilerinizden biri onlara bakana kadar yüklenen tüm resimleri engelleyin. Bunun uzun sürmesi için hiçbir neden yok: Saniyede 10 görüntü gösteren bir yazılım yazabilirsiniz, neredeyse bir film gibi - bu hızda bile, bir insan için potansiyel olarak pornografik bir görüntüyü fark etmek kolaydır. Sonra bu yazılımı geri sarar ve daha yakından bakarsınız.
  2. Her zamanki "bu resmi uygunsuz olarak işaretle" seçeneğini ekleyin.

1

BrightCloud web hizmeti API'si bunun için idealdir. Bunun gibi web sitesi aramaları yapmak için bir REST API'sidir. Çok büyük ve çok doğru bir web filtreleme DB'si içerir ve kategorilerden biri olan Yetişkin, 10 milyondan fazla porno sitesine sahiptir!


1

Çok basit ama oldukça etkili algoritma kullanan araçları duydum. Algoritma, önceden tanımlanmış bazı "dış görünüm" renklerine yakın renk değerine sahip göreceli piksel miktarını hesapladı. Bu miktar önceden tanımlanmış bir değerden yüksekse, görüntünün erotik / pornografik içerikli olduğu kabul edilir. Elbette bu algoritma yakın çekim yüz fotoğrafları ve daha pek çok şey için yanlış pozitif sonuçlar verecektir.
Sosyal ağ hakkında yazdığınız için, üzerinde yüksek miktarda ten rengi bulunan çok sayıda "normal" fotoğraf olacaktır, bu nedenle bu algoritmayı olumlu sonuç veren tüm resimleri reddetmek için kullanmamalısınız. Ancak moderatörler için biraz yardım sağlamak için kullanabilirsiniz, örneğin bu resimleri daha yüksek öncelikli olarak işaretleyin,


Aslında kullanımda buna benzer bir sistem gördüm. Kendi başına bırakılacak kadar güvenilir değil, ancak uygun olduğunda bir moderatörü uyarmak için çok iyi bir iş çıkarıyor. Tam bir kanıt değildir, özellikle de kişi sadece küçük bir açık alanla kaplıysa. Oran tam tersi olarak güvenilir bir şekilde çalışmıyor.
Tim Post


0

Dosya adına ve özniteliklere bakın. Yaramaz görüntülerin% 20'sini bile tespit etmek için neredeyse yeterli bilgi yoktur, ancak basit bir anahtar kelime kara listesi en azından açıklayıcı etiketlere veya meta verilere sahip görüntüleri tespit eder. % 20'lik bir başarı oranı için 20 dakikalık kodlama kötü bir anlaşma değildir, özellikle de geri kalanını yargılama için bir moderatöre iletmeden önce en azından bazı basit olanları yakalayabilen bir ön ekran olarak.

Diğer yararlı numara, elbette bunun tersidir, denetleme veya kontrol olmaksızın izin vermek için görüntü kaynaklarının bir beyaz listesini tutun. Resimlerinizin çoğu bilinen güvenli yükleyicilerden veya kaynaklardan geliyorsa, bunları bağlayıcı bir şekilde kabul edebilirsiniz.




0

Bu roket bilimi değil. Artık değil. Yüz tanımaya çok benzer. Bununla başa çıkmanın en kolay yolunun makine öğrenimini kullanmak olduğunu düşünüyorum. Ve görüntülerle uğraştığımız için, nöronal ağlara işaret edebilirim, çünkü bunlar görüntüler için tercih ediliyor gibi görünüyor. Eğitim verilerine ihtiyacınız olacak. İnternette tonlarca eğitim verisi bulabilirsiniz, ancak görüntüleri, algoritmanın algılamasını istediğiniz belirli bölüme kırpmanız gerekir. Elbette, sorunu tespit etmek ve her biri için eğitim verileri oluşturmak istediğiniz farklı vücut bölümlerine ayırmanız gerekecek ve işte burada işler eğlenceli hale geliyor.

Yukarıda birinin dediği gibi, yüzde 100 yapılamaz. Bu tür algoritmaların başarısız olduğu durumlar olacaktır. Gerçek hassasiyet, eğitim verilerinize, nöronal ağlarınızın yapısına ve eğitim verilerini (penisler, vajinalar, göğüsler vb. Ve bunların kombinasyonları) nasıl kümelemeyi seçeceğinize göre belirlenir. Her halükarda, bunun açık porno görüntüleri için yüksek doğrulukla elde edilebileceğinden çok eminim.



-1

Günümüzün bilgisiyle bunu% 100 (belki% 1-5'in makul olacağını söyleyebilirim) yapmanın bir yolu yok. Sadece cinsiyetle ilgili kelimelerin resim adlarını kontrol ederek çok daha iyi sonuç alırsınız (% 1-5'ten daha iyi).

@SO Troll: Çok doğru.


-1, Bu yorum sağlar ancak önemli bir çözüm sunmaz.
Brad Koch
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.