Membandingkan API terbaik untuk memfilter konten cabul

Pengujian penuh atas beberapa API untuk memfilter gambar dari berbagai kategori, seperti ketelanjangan, pornografi, dan diseksi.



Seseorang segera memahami bahwa gambar tertentu tidak pantas, yaitu NSFW (Tidak Aman Untuk Bekerja). Tetapi untuk kecerdasan buatan, semuanya tidak begitu jelas. Banyak perusahaan sekarang mencoba mengembangkan alat yang efektif untuk memfilter konten tersebut secara otomatis.

Saya ingin memahami apa kondisi pasar saat ini. Bandingkan efektivitas API pemfilteran gambar yang ada dalam kategori berikut:

  • Ketelanjangan langsung
  • Ketelanjangan sugestif (yaitu, sugestif dari ketelanjangan langsung - kira-kira Per.)
  • Pornografi / hubungan seksual
  • Imitasi / animasi porno
  • Pemutusan (gore) / kekerasan

Tl; DR: Jika Anda hanya ingin mengetahui API terbaik, Anda dapat langsung menuju perbandingan di akhir artikel.

Kondisi Eksperimen


Dataset . Untuk evaluasi, saya mengumpulkan dataset NSFW saya dengan jumlah gambar yang sama di setiap subkategori NSFW. Set data terdiri dari 120 gambar dengan 20 gambar NSFW positif untuk masing-masing dari lima kategori yang disebutkan, dan 20 gambar SFW. Saya memutuskan untuk tidak menggunakan YACVID 180 yang tersedia untuk umum, karena ini terutama didasarkan pada penggunaan ketelanjangan sebagai ukuran konten NSFW.

Mengumpulkan gambar NSFW itu membosankan, itu adalah tugas yang sangat panjang dan sangat menyakitkan, yang menjelaskan sejumlah kecil gambar.

Dataset tersedia untuk diunduh di sini . [Peringatan: mengandung konten eksplisit]

Berikut adalah tabel dengan hasil mentah untuk setiap API dan setiap gambar dalam dataset.

Metrik


Setiap pengklasifikasi dievaluasi berdasarkan metrik yang diterima secara umum:

Benar-benar Positif: TP


Jika classifier memanggil sesuatu NSFW dan itu sebenarnya NSFW.

Benar Negatif: TN


Jika classifier memanggil sesuatu SFW, dan itu sebenarnya SFW.

Salah positif: FP


Jika classifier disebut sesuatu NSFW, dan ini sebenarnya SFW.

Negatif Salah: FN


Jika classifier memanggil sesuatu SFW, tapi itu sebenarnya NSFW.



Akurasi


Jika model membuat perkiraan, dapatkah itu dipercaya?

Akurasi


Jika model mengatakan gambar itu NSFW, seberapa sering ramalan yang benar?

Ingat


Jika semua sampel adalah NSFW, berapa yang diidentifikasi?

Skor F1


Ini adalah campuran kesalahan dan ingatan, seringkali mirip dengan akurasi.



API untuk moderasi konten berikut dievaluasi:


Kinerja berdasarkan Kategori


Pertama, saya memberi peringkat setiap API di semua kategori NSFW.

Pornografi / Seks


Google dan Sightengine APIs sangat bagus di sini. Mereka adalah satu-satunya yang dengan benar mengenali semua gambar porno. Nanonets dan Algorithmia sedikit tertinggal dengan skor 90%. Microsoft dan Imagga telah menunjukkan kinerja terburuk dalam kategori ini.





Gambar yang mudah diidentifikasi jelas bersifat pornografi. Semua API mengenali gambar-gambar di atas dengan benar. Sebagian besar dari mereka meramalkan NSFW dengan sangat percaya diri.



Sulit untuk mengidentifikasi gambar berisi objek yang tertutup sebagian atau buram, yang membuatnya sulit untuk bekerja. Dalam kasus terburuk, 11 dari 12 sistem melakukan kesalahan dengan gambar. Efektivitas dalam mengenali pornografi sangat berbeda tergantung pada intensitas pornografi dan seberapa baik kontennya terlihat.

Ketelanjangan langsung


Sebagian besar API bekerja sangat baik dengan banyak gambar dalam kategori ini, menunjukkan tingkat deteksi 100%. Bahkan API berkinerja terendah (Clarifai dan Algorithmia) menunjukkan 90%. Definisi ketelanjangan selalu menjadi topik perdebatan. Seperti dapat dilihat dari hasil, sistem biasanya gagal dalam kasus yang meragukan ketika kemungkinan bahwa gambar masih SFW.





Dalam gambar sederhana, ketelanjangan eksplisit terlihat jelas. Siapa pun akan memanggil mereka NSFW tanpa pertanyaan. Tidak ada satu API pun yang melakukan kesalahan, dan skor rata-rata adalah 0,99.



Pada gambar yang kontroversial, API salah. Mungkin alasannya adalah bahwa masing-masing dari mereka memiliki pengaturan sensitivitas.

Ketelanjangan sugestif


Google menang lagi dengan tingkat deteksi 100%. Sightengine dan Nanonets tampil lebih baik daripada yang lain dengan masing-masing 95% dan 90%. Sistem otomatis mengenali ketelanjangan sugestif hampir semudah eksplisit. Mereka membuat kesalahan dalam gambar yang biasanya terlihat seperti SFW, dengan hanya beberapa tanda ketelanjangan.





Sekali lagi, tidak ada API yang salah pada gambar NSFW eksplisit.



Dalam ketelanjangan sugestif, API menyimpang. Seperti dalam ketelanjangan semata, mereka memiliki ambang toleransi yang berbeda. Saya sendiri tidak yakin apakah akan mengenali gambar SFW ini atau tidak.

Imitasi / animasi porno


Semua API berkinerja sangat baik di sini dan menemukan 100% contoh peniruan porno. Satu-satunya pengecualian adalah Imagga, yang melewatkan satu gambar. Saya ingin tahu mengapa API bekerja dengan sangat baik pada tugas ini? Tampaknya, lebih mudah bagi algoritma untuk mengidentifikasi gambar yang dibuat secara buatan daripada yang alami.





Semua API menunjukkan hasil yang sangat baik dan peringkat kepercayaan tinggi.



Satu-satunya gambar yang Imagga keliru, dapat diartikan sebagai bukan porno, jika Anda tidak melihatnya untuk waktu yang lama.

Diseksi


Ini adalah salah satu kategori yang paling sulit, karena efisiensi deteksi rata-rata melalui API kurang dari 50%. Clarifai dan Sightengine mengungguli kompetisi dengan mendeteksi dengan benar 100% gambar dalam kategori ini.





API menangani gambar medis terbaik, tetapi bahkan 4 dari 12 sistem membuat kesalahan pada yang paling ringan.



Gambar yang sulit tidak memiliki kesamaan. Namun, orang akan dengan mudah menyebut foto-foto ini berdarah. Ini mungkin berarti bahwa alasan rendahnya efisiensi adalah kurangnya data yang tersedia untuk pelatihan.

Gambar yang aman


Gambar yang tidak dapat diidentifikasi sebagai NSFW dianggap aman. Pengumpulan data itu sendiri sulit, karena gambar-gambar ini harus dekat dengan NSFW untuk menghargai API. Orang dapat berdebat apakah semua gambar ini SFW atau tidak. Di sini Sightengine dan Google menunjukkan hasil terburuk, yang menjelaskan kinerja luar biasa mereka di kategori lain. Mereka cukup memanggil semua gambar NSFW yang meragukan. Di sisi lain, Imagga melakukan pekerjaan dengan baik di sini karena tidak menyebutkan apa pun NSFW. X-Moderator juga tampil sangat baik.




Tautan ke gambar asli: SFW15 , SFW12 , SFW6 , SFW4

Hanya bercak kecil pada kulit yang ditunjukkan pada gambar yang mudah diidentifikasi, dan orang dapat dengan mudah mengidentifikasi mereka sebagai SFW. Hanya satu atau dua sistem yang salah mengenali mereka.


Tautan ke gambar asli: SFW17 , SFW18 , SFW10 , SFW3

Semua gambar SFW yang sulit diidentifikasi menunjukkan area kulit atau anime yang lebih besar (sistem cenderung mempertimbangkan pornografi anime). Sebagian besar API menghitung gambar area besar sebagai SFW. Pertanyaannya adalah, apakah SFW ini?

Perbandingan umum


Melihat efektivitas API di semua kategori NSFW, serta efektivitasnya dalam mengenali SFW dengan benar, kita dapat menyimpulkan bahwa hasil F1 terbaik dan akurasi rata-rata terbaik dari sistem Nanonets: ia bekerja secara stabil dengan baik di semua kategori. Sistem Google menunjukkan hasil yang sangat baik dalam kategori NSFW, tetapi terlalu sering menandai gambar yang aman sebagai NSFW, oleh karena itu ia menerima denda pada metrik F1.







Oleh pengembang


Saya membandingkan 5 sistem teratas untuk akurasi dan skor F1 untuk mengevaluasi perbedaan kinerja mereka. Semakin besar area diagram kelopak, semakin baik.

1. Nanonets


Sistem Nanonets tidak menempati posisi pertama dalam kategori apa pun. Namun, ini adalah solusi yang paling seimbang. Titik terlemah di mana Anda masih bisa mengatasinya adalah keakuratan pengakuan SFW. Ia terlalu sensitif terhadap area tubuh yang terbuka.



2. Google


Google adalah yang terbaik di sebagian besar kategori NSFW, tetapi yang terburuk dalam deteksi SFW. Saya ingin mencatat bahwa saya mengambil sampel untuk pengujian dengan Google, yaitu, dia "harus tahu" gambar-gambar ini. Ini bisa menjadi alasan untuk kinerja yang sangat baik di sebagian besar kategori.



3. Clarifai


Clarifai benar-benar bersinar dalam menentukan pemotongan, di depan sebagian besar API lainnya, sistem ini juga seimbang dan bekerja dengan baik di sebagian besar kategori. Tapi dia kurang akurat dalam mengidentifikasi ketelanjangan dan pornografi sugestif.



4. X-Moderator


X-Moderator adalah API seimbang lainnya. Selain pembedahan, ia dengan jelas mengidentifikasi sebagian besar jenis NSFW lainnya. Keakuratan 100% dalam menentukan SFW, yang membedakan sistem ini dari pesaing.



5. Sightengine


Seperti Google, sistem Sightengine menunjukkan hasil yang hampir sempurna dalam mengidentifikasi NSFW. Namun, dia tidak mengenali satu gambar pun dari pembedahan itu.



Harga


Kriteria lain dalam memilih API adalah harga. Harga semua perusahaan dibandingkan di bawah ini. Sebagian besar API menawarkan uji coba gratis dengan penggunaan terbatas. Yahoo adalah satu-satunya API yang benar-benar gratis, tetapi perlu di-host sendiri, API ini tidak termasuk dalam tabel ini.



Amazon, Microsoft, Nanonets, dan DeepAI menawarkan harga terendah $ 1.000 per bulan untuk satu juta panggilan API.

Apa API moderasi konten terbaik?


Sifat subjektif konten NSFW membuat sulit untuk menentukan pemenang.

Untuk media sosial dari subjek umum, yang lebih fokus pada distribusi konten dan membutuhkan classifier yang seimbang, saya lebih suka Nanonets API dengan peringkat tertinggi F1 untuk classifier.

Jika aplikasi ini ditujukan untuk anak-anak, saya akan aman dan memilih Google API karena efektivitasnya yang patut dicontoh di semua kategori NSFW, bahkan dengan hilangnya beberapa konten normal.





Apa NSFW sebenarnya?




Setelah menghabiskan banyak waktu untuk masalah ini, saya menyadari satu hal utama: pada kenyataannya, definisi NSFW sangat kabur. Setiap orang akan memiliki definisi sendiri. Apa yang dianggap dapat diterima - sangat tergantung pada apa yang disediakan layanan Anda. Ketelanjangan sebagian dapat diterima dalam aplikasi kencan, tetapi bukan tempat tidur bayi. Dan dalam jurnal medis, sebaliknya. Area yang benar-benar kelabu adalah ketelanjangan sugestif, di mana tidak mungkin untuk mendapatkan jawaban yang benar.

Source: https://habr.com/ru/post/id431628/


All Articles