演算法警告!該圖片涉嫌違規不予顯示
作者 | 一一
出品 | AI科技大本營(ID:rgznai100)
60s測試:你是否適合轉型人工智慧?
https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw
一般看到頭圖,“老司機”立馬心領神會,就會猜到這篇文章的主題大致與什麼相關。
沒錯,今天的內容就跟“不可描述”的圖片有關,但請別激動,也許沒有福利:)
要介紹的專案名稱叫 NSFW.JS,英文全稱是 Not Safe/Suitable For Work,也就是說不適合工作場所使用。
這其實是一個基於 TensorFlow.js 的色情圖片識別專案,說白了就是“審查”色情圖片,它的好處是在本地即可識別,即使是那些你無法控制的網路不雅內容,也可以提前幫助進行防禦,尤其在保護未成年人健康上網這一點上很有益處。
比如有的網站、或者 App 上,有使用者總想嘗試上傳色情圖片,而通過使用 NSFW.JS 則可以提前警告使用者禁止上傳,如果強行上傳,則需要再通過人工稽核。
又比如像微博、微信等 App 上賣片的殭屍賬號比較氾濫,NSFW.JS 則可以對將要收到該資訊的人發出警告,告知他們要檢視的內容可能不合適,需要澄清一點,這並不需要伺服器處理即可完成操作。
預設情況下,該 JS 庫對影像進行分為了以下 5 類:
-
Drawing - 無害的藝術圖畫,包括動漫
-
Hentai - 色情藝術圖,不適合大多數工作環境
-
Neutral - 安全、中性圖片
-
Porn - 色情圖片,性行為,通常涉及生殖器
-
Sexy - 性感圖片,而非色情圖片,包括乳頭
以下是 Demo 展示,如果預設開啟模糊保護,只有當 NSFW.JS 識別圖片為 Drawing 和 Neutral 時的比例更高時,意味著可以通過稽核進行展示,而將圖片識別成其它三類圖片的比例更高,圖片則自動遮蔽。
當然,這是理想狀態下的呈現結果,實際上,專案建立者也坦陳,NSFW.JS 現在並不完美,如果你進行測試就會發現,有一些顯而易見的誤識圖片。
用於訓練 NSFW 影像分類器的影像資料指令碼集合,目前已在 GitHub 獲得 8397 個 Star。
喏,資料集地址你:https://github.com/alexkimxyz/nsfw_data_scraper,還請善加利用:)
專案建立者認為,雖然目前的識別結果中會出現少量偏差,但通常還是很有趣。對於像 NSFW 這樣的專案,他覺得目前召回率比精確度更重要,”誤識率高一點也比讓更危險的東西漏掉要好”。
話雖如此,但還是有掩飾識別準確度不高的嫌疑。建立者此前測試 15,000 個影像集的準確率大約 90%,不過,根據 AI科技大本營親自測試,整體感覺是誤識率較高。對於顯而易見的色情圖片,該專案識別時非常明瞭,不過介於“性感”和“色情”的黑色地帶,就不太靠譜了,很容易誤傷。
其中,以 AI科技大本營測試的二十多張 Monica Bellucci 圖片為例,有很多明顯不涉及色情的圖片都被錯誤分類,將“性感照”甚至是普通照片分到了“色情”檔。
相較而言,第一張圖片明顯漏胸面積更大,第二張明顯是很普通的圖片,卻被分類為“Porn”了。
這兩張圖怎麼就是“Porn”了......
更令人難以接受的或許是這樣的圖片被識別為“Porn”,臉都不能漏了?
目前來看,該專案的分類器模型還有很大的提升空間,尤其隨著 data scraper 的改進,如果未來識別率有大幅提升,它應該會成為很有潛力的應用專案。這是一個緩慢但卻是值得期待的過程。
如何使用 NSFW.JS?
最後附上 NSFW.JS 的操作步驟,簡單來說只需三步:
1、獲取程式碼到位
2、在客戶端上載入模型
3、對影像進行分類
專案建立者也在 GitHub 中給出了詳細說明:
import * as nsfwjs from 'nsfwjs'
const img = document.getElementById('img')
// Load model from my S3.
// See the section hosting the model files on your site.
const model = await nsfwjs.load()
// Classify the image
const predictions = await model.classify(img)
console.log('Predictions: ', predictions)
API
載入模型。出於多種原因,你應該使用可選引數並從你的網站載入模型。
const model = nsfwjs.load('/path/to/model/directory/')
引數
-
可選的 URL model.json
返回
-
準備使用 NSFWJS 模型物件
對影像進行分類
此函式可以使用任何基於瀏覽器的影像元素(,),並返回最可能的預測陣列及其置信度。
// Return top 3 guesses (instead of all 5)
const predictions = await model.classify(img, 3)
引數
-
要檢查的張量(Tensor)、影像資料、影像元素、視訊元素或畫布元素
-
要返回的結果數(預設全部都是 5)
返回
-
物件陣列包含 className 和 probability。陣列大小由 classify 函式中的第二個引數確定。
安裝
NSFWJS 由 Tensorflow.JS 提供支援,作為peer dependency(同級依賴)。如果你的專案還沒有 TFJS,則需要進行新增。
# peer dependency
$ yarn add @tensorflow/tfjs
# install NSFWJS
$ yarn add nsfwjs
你也可以進行下載和託管專案:
https://s3.amazonaws.com/nsfwdetector/min_nsfwjs.zip
相關連結:
github 連結:https://github.com/infinitered/nsfwjs
demo 測試地址: https://nsfwjs.com/
如果你對該專案感興趣,可以安裝試用,歡迎在評論區交流使用體驗。
(本文為AI科技大本營原創文章,轉載請微信聯絡 1092722531)
5G之後,中國的人工智慧發展趨勢如何?
https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw
群招募
掃碼新增小助手微信,回覆:公司+研究方向(學校+研究方向),邀你加入技術交流群。技術群稽核較嚴,敬請諒解。
推薦閱讀:
點選“閱讀原文”,檢視歷史精彩文章。
相關文章
- img圖片無法顯示利用onerror事件顯示替代圖片Error事件
- Java——圖片滾動顯示Java
- opencv圖片上如何顯示兩個小圖片OpenCV
- win7圖片只顯示圖示不顯示預覽圖解決方案Win7圖解
- 網頁圖片不能顯示 網頁圖片顯示不出來的解決辦法網頁
- iOS設定tabbar不顯示文字,只顯示圖片iOStabBar
- 小程式button背景顯示圖片
- CSS圖片的灰色顯示效果CSS
- ImageView顯示網路上的圖片View
- vue el-image 顯示圖片Vue
- Android 開源圖片裁剪工具、圖片顯示工具分享Android
- iOS Swift 仿微信聊天圖片顯示iOSSwift
- 動態顯示資料庫圖片資料庫
- cv2.imshow顯示圖片不全
- JS控制圖片顯示的大小(圖片等比例縮放)JS
- springmvc中圖片回顯返回位元組流陣列顯示圖片完整案例SpringMVC陣列
- 網賭平臺賬戶涉嫌套利違規下注提不了款怎麼辦?
- 安卓圖片顯示與網路訪問安卓
- iOS 左滑按鈕(UITableViewRowAction)顯示圖片iOSUIView
- html2canvas生成圖片顯示不全HTMLCanvas
- 預載入顯示圖片的藝術
- iOS開發之imageView居中顯示圖片iOSView
- 資料庫顯示圖片的問題資料庫
- jquery Banner 圖片自動輪換顯示jQuery
- el-image圖片預覽顯示bug
- vue迴圈顯示base64圖片Vue
- jquery 滑鼠移到圖片彈出浮動層顯示大圖片例子jQuery
- Swift UIButton 圖片 文字 同時顯示 不顯示,細節問題SwiftUI
- word圖文混排複製到KindEditor圖片不顯示
- word圖文混排複製到CuteEditor圖片不顯示
- 圖片設定level-list,根據不同狀態顯示不同圖片
- CoordinatorLayout、AppBarLayout實現上滑隱藏圖片,下滑顯示圖片APP
- Overleaf中插入pdf圖片只顯示圖片路徑的解決方式
- Golang pprof 結果使用 graphviz 圖片化顯示Golang
- iOS根據圖片比例計算顯示大小iOS
- psd圖片不能在網頁上顯示網頁
- QLabel顯示圖片 ,並實現縮放
- linux系統lcd顯示jpg格式圖片Linux