python卷积神经网络人体图像识别
??二十多年來,自動(dòng)發(fā)現(xiàn)裸體圖片一直是計(jì)算機(jī)視覺中的中心問題,并且由于其悠久的歷史和直接的目標(biāo),它成為該領(lǐng)域如何發(fā)展的一個(gè)很好的例子。在這篇博文中,我將使用裸露檢測問題來說明現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)(convnets)的訓(xùn)練與過去的研究有何不同。
(警告和免責(zé)聲明:這篇文章包含了裸露的可視化效果,以用于科學(xué)目的。如果您未滿18歲,或者被裸露冒犯,請(qǐng)勿繼續(xù)閱讀。)
1996年
該領(lǐng)域的開創(chuàng)性著作是Fleck等人的恰當(dāng)命名為“ Finding Naked People”。它于90年代中期出版,為計(jì)算機(jī)視覺研究人員在卷積網(wǎng)絡(luò)接管之前進(jìn)行的這類工作提供了一個(gè)很好的例子。??
2014年
深度學(xué)習(xí)研究人員沒有設(shè)計(jì)正式的規(guī)則來描述輸入數(shù)據(jù)應(yīng)如何表示,而是設(shè)計(jì)了網(wǎng)絡(luò)體系結(jié)構(gòu)和數(shù)據(jù)集,使AI系統(tǒng)可以直接從數(shù)據(jù)中學(xué)習(xí)表示形式。但是,由于深度學(xué)習(xí)研究人員沒有確切指定網(wǎng)絡(luò)在給定輸入下的行為,因此出現(xiàn)了一個(gè)新問題:如何理解卷積網(wǎng)絡(luò)在激活什么?
了解卷積網(wǎng)絡(luò)的操作需要在各個(gè)層次上解釋要素活動(dòng)。在本文的其余部分中,我們將通過將活動(dòng)從頂層向下映射到輸入像素空間來檢查NSFW模型的早期版本。這將使我們能夠看到是什么輸入模式最初在功能圖中導(dǎo)致了給定的激活(即,為什么將圖像標(biāo)記為“ NSFW”)。
觸覺敏感度
?為了在左側(cè)建立熱圖,我們將每個(gè)窗口發(fā)送到convnet并平均每個(gè)像素的“ NSFW”得分。當(dāng)卷積網(wǎng)看到作物充滿了皮膚時(shí),往往會(huì)預(yù)測為“ NSFW”,這會(huì)導(dǎo)致莉娜身體上的大紅色區(qū)域。為了在右側(cè)創(chuàng)建熱圖,我們系統(tǒng)地遮住了原始圖像的一部分,并報(bào)告1減去平均“ NSFW”得分(即“ SFW”得分)。當(dāng)大多數(shù)NSFW區(qū)域被遮擋時(shí),“ SFW”得分會(huì)增加,并且我們會(huì)在熱圖中看到更高的值。為了清楚起見,下圖舉例說明了上述兩個(gè)實(shí)驗(yàn)分別將哪種圖像饋入卷積網(wǎng)絡(luò):
這些遮擋實(shí)驗(yàn)的優(yōu)點(diǎn)之一是,當(dāng)分類器是一個(gè)完整的黑匣子時(shí),可以執(zhí)行它們。這是一個(gè)通過我們的API再現(xiàn)這些結(jié)果的代碼片段:
# NSFW occulsion experimentfrom StringIO import StringIOimport matplotlib.pyplot as plt import numpy as np from PIL import Image, ImageDraw import requests import scipy.sparse as spfrom clarifai.client import ClarifaiApiCLARIFAI_APP_ID = '...' CLARIFAI_APP_SECRET = '...' clarifai = ClarifaiApi(app_id=CLARIFAI_APP_ID,app_secret=CLARIFAI_APP_SECRET,base_url='https://api.clarifai.com')def batch_request(imgs, bboxes):"""use the API to tag a batch of occulded images"""assert len(bboxes) < 128#convert to image bytesstringios = []for img in imgs:stringio = StringIO()img.save(stringio, format='JPEG')stringios.append(stringio)#call api and parse responseoutput = []response = clarifai.tag_images(stringios, model='nsfw-v1.0')for result,bbox in zip(response['results'], bboxes):nsfw_idx = result['result']['tag']['classes'].index("sfw")nsfw_score = result['result']['tag']['probs'][nsfw_idx]output.append((nsfw_score, bbox))return output盡管這些類型的實(shí)驗(yàn)提供了一種顯示分類器輸出的簡單方法,但它們的一個(gè)缺點(diǎn)是生成的可視化效果通常很模糊。這使我們無法獲得對(duì)網(wǎng)絡(luò)實(shí)際運(yùn)行情況的有意義的洞察力 。
反卷積網(wǎng)絡(luò)
在給定的數(shù)據(jù)集上訓(xùn)練了網(wǎng)絡(luò)之后,我們希望能夠拍攝圖像和課程,并向卷積網(wǎng)絡(luò)提出類似的要求 :
這是當(dāng)我們使用deconvnet可視化如何修改Lena的照片 (注意:此處使用的deconvnet需要一個(gè)正方形圖像才能正常運(yùn)行-我們填充了完整的Lena圖像以獲得正確的外觀比):
?根據(jù)我們的deconvnet,我們可以通過增加紅色來修飾芭芭拉,使其看起來更像PG:
這張詹姆斯·邦德電影《無博士》中烏斯拉·安德列斯(Hors Rider)飾演的《蜜月騎士》(Honey Rider)在2003年的一項(xiàng)英國調(diào)查中被評(píng)選為“屏幕歷史上最偉大的100個(gè)性感時(shí)刻”的第一名:
上述實(shí)驗(yàn)的一個(gè)顯著特征是,卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)了紅唇和肚臍,表示“ NSFW”。這可能意味著我們?cè)凇?SFW”訓(xùn)練數(shù)據(jù)中沒有包含足夠的紅唇和肚臍圖像。如果我們僅通過檢查精度/召回率和ROC曲線(如下所示-測試集大小:428,271)來評(píng)估模型,我們將永遠(yuǎn)不會(huì)發(fā)現(xiàn)此問題,因?yàn)槲覀兊臏y試數(shù)據(jù)也存在相同的缺點(diǎn)。這凸顯了基于訓(xùn)練規(guī)則的分類器與現(xiàn)代AI研究之間的根本區(qū)別。與其手動(dòng)設(shè)計(jì)功能,不如重新設(shè)計(jì)訓(xùn)練數(shù)據(jù),直到發(fā)現(xiàn)的功能得到改善為止。
總結(jié)
以上是生活随笔為你收集整理的python卷积神经网络人体图像识别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模拟双色球彩彩票开奖和购买兑换。红色[1
- 下一篇: 论文写作-标点符号