現實是,全世界大約有45.4億個互聯網用戶(2020年6月)產生了空前的內容,只會增加尋找優化內容適度方法的方法的衝動。由於活躍用戶數量不斷浸泡,內容量也成倍增長,機器學習和人工智能可能非常昂貴,並且手動適度的時間非常耗時,並且時間延遲。
因此,現在我們正處於任何允許用戶生成內容的平檯面臨類似問題。幸運的是,機器學習已經成熟到計算機處理能力,存儲,數據工具,網絡等的進步,使機器學習技術變得越來越負擔得起。這是為創新而持續不斷的努力,帶領Sashido的團隊創建了僅使用開源工具和庫構建的簡單,優雅的完整內容審核服務。它由三個主要組件 - 圖像分類REST API,自動化引擎和管理面板組成,它們可以單獨集成或將其完全集成到任何Parse Server Node.js項目中並在任何地方託管。
簡單地對我們的桌面和移動友好的管理面板進行了簡單的插圖。在這裡檢查完整的演示。
根據您的特定標準,在Admin應用程序中顯示的供批准的圖像是從自動化引擎中標記為手動調節的圖像。
以下是一些示例,說明瞭如何通過REST API對特定類別的圖片進行分類。
圖像源 | 圖像源 | 圖像源 |
---|---|---|
分類結果 | 分類結果 | 分類結果 |
[{{ “ className”:“中立”, “概率”:0.93821 },{ “ className”:“繪圖”, “概率”:0.05473 },{ “ classname”:“性感”, “概率”:0.00532 },{ “ className”:“無盡”, “概率”:0.00087 },{ “ classname”:“色情”, “概率”:0.00085 ]] | [{{ “ classname”:“性感”, “概率”:0.99394 },{ “ className”:“中立”, “概率”:0.00432 },{ “ classname”:“色情”, “概率”:0.00164 },{ “ className”:“繪圖”, “概率”:0.00006 },{ “ className”:“無盡”, “概率”:0.00001 ]] | [{{ “ className”:“繪圖”, “概率”:0.96063 },{ “ className”:“中立”, “概率”:0.03902 },{ “ className”:“無盡”, “概率”:0.00032 },{ “ classname”:“性感”, “概率”:0.00001 },{ “ classname”:“色情”, “概率”:0.00005 ]] |
中性演示 | 性感演示 | 繪畫演示 |
此服務是用Mongo DB和Parse Server構建的。您可以在標準Express應用程序中使用它,但請記住,存儲庫的文件結構是特定於解析的。該代碼是在src
文件夾中組織的, src/cloud/main.js
是服務的根文件。 React Vizalization邏輯分別將其放置在scr/react
文件夾中。
REST API與NSFW.JS分類一起使用,該分類使用TensorFlow預訓練的模型。給定URL,它返回預測圖像進入每個類的可能性 - 繪畫,中性,性感,色情和無盡。您可以在此博客文章中找到有關背後邏輯和堆棧的更多詳細信息。
API提供了兩種用於分類圖像的方法 - 使用任何Parse SDK或Parse REST API直接從明確路由或直接從雲代碼函數進行分類。
從快遞端點分類
curl http://localhost:1337/api/image/classify?url=https://nsfw-demo.sashido.io/sexy.png
從nsfwimageclalsify雲代碼函數 - REST API示例進行分類。
curl -X POST
-H "X-Parse-Application-Id: myAppId"
-H "X-Parse-REST-API-Key: myRestApiKey"
--data-urlencode "{"url":"https://nsfw-demo.sashido.io/sexy.png"}"
http://localhost:1337/functions/nsfwImageClassify
自動化引擎的目的是檢查某個圖像的分類如何與您設置為安全項目的參數相對應。該過程是使用Parse Server AfterSave Trigger自動化的。
一開始,必須定義五個NSFW類和值中的哪一個可以包含有毒圖片並且哪些是安全的。所有可能會為您的受眾打擾的課程都應包括在適度偏好中。
為了說明什麼想法和設置,讓我們想像我們需要為成人約會應用程序設置標準。作為任何約會應用程序,用戶都有個人資料圖片,並被允許上傳不同的照片。我們可以假設照片的類型應該主要是中立的……也許還允許一些性感的照片。因此,我們將將所有其他類別添加到我們的節制偏好中。像:
{
"Sexy": { "min": 0.6, "max": 1 },
"Drawing": { "min": 0.5, "max": 0.8 },
"Porn": { "min": 0.4, "max": 0.8 },
"Hentai": { "min": 0.2, "max": 0.8 }
}
自動化引擎將自動拒絕我們的首選項中設置的max
限制上方的所有圖像,並批准所有低於min
的圖像。
有關如何在此處的文章中找到項目的參數的更多詳細信息。
適度的首選項將被保存到Production應用程序中的MedererationsCores配置參數中,因為這將使您在需要時可以隨時修改它們。
將後懸掛觸發器掛鉤到用戶生成的收藏集中,會自動檢查新上傳的照片,並將其標記為安全,刪除或進行調節。 AfterSAFE包含用於匹配圖像的API分類與定義的適度偏好相對應的邏輯。根據所有傳遞的數據,做出了決定,結果將保存到您的數據庫中。
為了保留REST API預測和自動化引擎結果的整潔記錄,您將需要在數據庫集合中添加一些列,以持有用戶生成的內容。
您應該將以下列添加到用戶imagecollection
min
,則標記為isSafe - true
。deleted - true
不適當圖片。這些圖片不會自動從文件存儲中刪除。save自動發射後,但是我們添加了一個額外的API端點,以防您需要檢查手動是否對觀眾有毒。
curl http://YOUR_PARSE_SERVER_URL/api/image/is_safe?url=https://nsfw-demo.sashido.io/sexy.png
最後的觸摸是基於ReactJS的簡單admin應用程序。它具有簡單的登錄/註銷功能,僅授予批准的主持人訪問。
自動化引擎將其標記為moderationRequired=true
圖片顯示在應用程序中。我們確保同時構建台式機和移動友好的用戶界面,因此您可以在旅行時輕鬆地批准或拒絕圖像。
自己測試我們的演示中的圖像!
node.js> = 10.2.1
Mongo DB
解析服務器
克隆回購:
git clone https://github.com/SashiDo/content-moderation-application.git
cd content-moderation-application
將env.example複製到.env文件,並使用您喜歡的編輯器為您的本地環境設置環境變量:
cp env.example .env
放置您的mongodb uri並歸檔URL。如果您的應用程序託管在Sashido,則可以使用Sashido項目的憑據。您可以在App的儀表板 - >應用程序設置上找到所有鍵和URL。
NB!要加載需要手動審核的圖像在當地的管理應用程序中,您還需要放置實際的app_id!
由於這是一個功能齊全的示例,因此包含所有依賴關係。您只需要運行:
npm install
npm run dev
為您的生產服務器設置以下parse.configs。
適中對象應作為parse.config保存,因此可以隨時更新首選項。
布爾類型的MederationAutomation選項,該選項允許啟用/禁用內容審核自動化。
對於生產,您需要設置NSFW模型URL , NSFW模型形狀大小和自動化配置緩存的可變。
模型URL | 尺寸 | 形狀大小 | 準確性 |
---|---|---|---|
https://ml.files-sashido.cloud/models/nsfw_inception_v3/ | 巨大的 | 299 | 93% |
https://ml.files-sashido.cloud/models/nsfw_mobilenet_v2/90/ | 2.6 MB | 224 | 90% |
https://ml.files-sashido.cloud/models/nsfw_mobilenet_v2/93/ | 4.2 MB | 224 | 93% |
請注意,用於此項目的Inception_V3模型具有較高的RAM/CPU消耗量。儘管這兩個Mobilenet型號更輕巧。
TF_MODEL_URL = MODEL_URL
TF_MODEL_INPUT_SHAPE_SIZE = MODEL_SHAPE_SIZE
CONFIG_CACHE_MS = CONFIG_CAHE_IN_MILISECONDS
# Example
TF_MODEL_URL = " https://ml.files-sashido.cloud/models/nsfw_mobilenet_v2/93/ "
TF_MODEL_INPUT_SHAPE_SIZE = 224
CONFIG_CACHE_MS = 10000
將您的Sashido應用與GitHub連接,接下來可以使用兩個簡單命令來輕鬆部署代碼,以添加遠程分支和推動更改。
git remote add production [email protected]:parsegroundapps/<your-pg-app-your-app-repo>.git
git push -f production master
感謝您查看此部分。我們對任何很酷的想法都開放,因此,如果您有一個願意並願意分享 - 分叉存儲庫,應用更改並打開拉動請求。 :)
版權所有©2020,Cloudstrap AD。有關更多詳細信息,請參見許可證。