實話實說啊,這個標題起得就有點標題黨,識別是識別,準確率就有點玄學了。git
Win10 系統下 Python3,編譯器是 Pycharm,須要安裝 nonude 這個庫。github
Pycharm 安裝第三方庫的方法。
spa
先導入 nonude 這個庫(我也很奇怪爲何 import 的是 nude)code
import nude
再寫出代碼orm
print(nude.is_nude("godfather.jpg")) print(nude.is_nude("leisheng.jpg")) print(nude.is_nude("qiaoba.png"))
代碼運行的結果竟然是 False、True、True
讓咱們來看一下圖片。對象
對了,我這裏是直接把圖片放在了項目的路徑裏的
若是不喜歡這樣,能夠換一個寫法blog
import nude print(nude.is_nude("E:/Images/OOXX/00mitai.jpg")) print(nude.is_nude("E:\Images\OOXX/00zkted.jpg")) print(nude.is_nude("E:/Images\OOXX/011idk8.jpg"))
代碼運行的結果是 False、True、False圖片
說一下,路徑裏面的斜槓 / 能夠是反斜槓 ,若是後面有數字的話,請使用斜槓 /,不要用反斜槓 。ip
先導入要用的庫rem
import glob import itertools from nude import Nude
這裏用 glob 返回匹配指定模式的文件名
images_format = ['jpg', 'png', 'gif'] # 圖片格式 images_jpg = glob.glob("E:/Images/OOXX/*.jpg") # 返回匹配指定模式的文件名 images_png = glob.glob("E:/Images/OOXX/*.png") images_gif = glob.glob("E:/Images/OOXX/*.gif")
itertools.chain 把迭代對象串聯起來,造成一個更大的迭代器,說白了就是把 images_jpg、images_png、images_gif 弄在一塊兒,變成了images_list。
而後進行循環,在 images_list 裏面一個一個對圖片進行識別。
images_list = itertools.chain(images_jpg, images_png, images_gif) for i in images_list: print(i) # 輸出照片的路徑 n = Nude(i) # 對圖片進行識別 n.parse() print(n.result) # 輸出結果 print(n.message) # 輸出判斷信息 print(n.inspect()) # 輸出更加詳細的判斷信息
運行結果以下圖
咱們來看一下下圖片,準確率嘛,有點玄學。
識別是否是色色的圖片的有依據的,根據給出的信息來看,是皮膚暴露的百分比來判斷的,暴露的比例大於 15% 就判斷爲色色的圖片。這裏只是很粗淺的說明,還有一些我沒有看懂。
nonude 的 GitHub 連接:https://github.com/gearsystems/nonude/
nonude 的最近一次更新是兩年前了,感受有點惋惜,但願做者能繼續維護。
文章首發於本人公衆號,歡迎關注~