JavaScript裸體識別技術
當第一次聽說nude.js的時候,我非常懷疑這種瀏覽器端的裸體識別技術,有幾個理由:
- 正常情況下,裸體識別應該在伺服器端進行,這樣,那些色情圖片或色情視訊才能在傳送給瀏覽者前被發現。
- 我不相信完全依賴計算機能過濾掉所有色情內容(雖然我是個程式設計師)。
- 黑白裸體影象能被識別出來嗎?準確率能有多少?
- 如果在客戶端發現了色情圖片,你能怎麼做?這種技術如何使用?
我用nude.js試驗了不少內容,讓我來告訴你如何使用它,以及我這些懷疑的答案是什麼。
關於nude.js裸體識別指令碼
從技術的角度上講,nude.js使用了HTML5畫布(Canvas)和WebWorker技術來操作影象進行分析。影象被複制到畫布上,使用裸體識別演算法進行比較,包括下面幾種特徵識別:
- 在影象中查詢類似膚色的畫素。
- 根據捕捉到的畫素定位或構造皮膚位置。
- 分析皮膚位置判斷是裸體或非裸體。
- 就裸露情況進行分級,判斷是否屬於裸露。
nude.js支援IE9+ (excanvas), Firefox 3.6+, WebKit引擎的瀏覽器(谷歌瀏覽器, Safari, Mobile Safari,Opera)。nude.js還支援對視訊進行截圖分析。
nude.js的用法
首先要在你的頁面上引入nude.js指令碼,然後是需要分析的圖片:
<!-- 對於不支援畫布技術的IE --> <!--[if IE]> <script type="text/javascript" src="excanvas_r3/excanvas.compiled.js"></script> <![endif]--> <script src="nude.js/compressed/nude.min.js"></script> <!-- 需要識別的圖片 --> <img src="/lazy.gif?067588" data-original="dvt1.jpg" alt="Dita Von Tease" id="image1" onclick="onImageClick('image1');" /> <img src="/lazy.gif?067588" data-original="dvt2.jpg" alt="Dita Von Tease" id="image2" onclick="onImageClick('image2');" /> <img src="/lazy.gif?067588" data-original="dvt3.jpg" alt="Dita Von Tease" id="image3" onclick="onImageClick('image3');" /> <img src="/lazy.gif?067588" data-original="dvt4.jpg" alt="Dita Von Tease" id="image4" onclick="onImageClick('image4');" />
nude.js的用法很簡單,因為它只有兩個方法:<code>load</code> 和 <code>scan</code>。其中 <code>load</code> 方法接受圖片的 <code>id</code> 或圖片本身,將其拷貝到畫布裡。而 <code>scan</code> 方法根據演算法對畫布資料進行分析,返回 <code>true</code> 或 <code>false</code>。
function onImageClick(node) { nude.load(node); // 掃描 nude.scan(function(result){ alert(result ? "在" + node.id + "發現裸露影象!" : "非裸體"); }); }
你可以想象出,這些過程是在瀏覽器裡進行的,所以不要期望很迅速的得出結果。而且,很顯然,圖片尺寸是分析速度的一個重要因素。如果你的網站嚴重的依賴nude.js,小心那些大尺寸的圖片。
裸體識別的結果
對於高質量的裸露女性的JPEG圖片,這個小指令碼檢測成功率非常高。但對於暗色調或黑人皮膚卻不是很成功。在我的測試中,nude.js沒有識別出黑白裸露影象,也沒有發現視訊的色情影像(可能是我的視訊清晰度不夠)。
不管怎麼說,nude.js的表現還是很不錯的,但總覺得這種技術還無法大規模使用。掃描圖片需要時間,而且會卡住瀏覽器。因為nude.js(包括它使用的識別演算法)對黑白圖片和低質量的圖片有缺陷,所以我不推薦在網站上大量的依賴這個指令碼進行識別。
相關文章
- OCR識別技術—活體檢測
- 影像識別技術
- OCR識別技術
- 表格識別技術
- ocr文字識別技術
- 語音識別技術
- 人臉識別與人體動作識別技術及應用pdf
- OCR識別技術—財務報表識別
- OCR識別技術—增值稅發票識別
- 文字識別(二)--字元識別技術總覽字元
- AI識別技術,在改變全球流媒體AI
- 人臉識別活體檢測技術理論
- OCR技術-文字影像識別
- OCR身份證識別技術
- 銀行卡識別技術
- OCR識別技術—財務報表識別(2)
- TH-OCR文字識別技術
- 人臉識別技術應用
- OCR檢測與識別技術
- 裸土未覆蓋AI識別系統AI
- ai行為識別技術監控AI
- 人工智慧之人臉識別技術人工智慧
- OCR識別的技術流程解析1
- OCR識別的技術流程解析2
- java指紋識別以及谷歌圖片識別技術原始碼Java谷歌原始碼
- APP移動端識別行駛證、駕駛證識別技術APP
- 基於OPENCV的手勢識別技術OpenCV
- 面部識別技術對社會危害大
- 如何識別人的技術能力和水平?
- Android 超簡單整合活體檢測技術 快速識別“假臉”Android
- javascript 技術精要JavaScript
- 直播美顏SDK的人臉識別技術進階知識
- 【技術分析】惡意 SPL 代幣識別指南
- OCR識別技術—護照閱讀器2
- 一文讀懂人臉識別技術
- OCR證件識別技術的功能特點
- 人臉識別背後:可怕的不是技術
- 人臉識別技術企業 TOP25
- 身份證識別技術的持續應用