iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 5
0
Everything on Azure

Azure Data Service 相關服務基本操作手冊系列 第 5

Day 05 - Cognitive Service - 辨識 - 內容仲裁

今天就來介紹一下針對影片或是影像判斷內容是否有「18 禁」或是「冒犯性」的內容進行判斷:內容仲裁。

內容仲裁有以下特點:

  • 影像審核
    透過機器學習式的分類器、自訂封鎖清單及光學字元辨識 (OCR),加強偵測潛在冒犯性或垃圾影像的能力。
  • 文字審核
    使用內容篩選可偵測 100 多種語言中可能具有冒犯性的文字、根據內容將可能不恰當的用字加上標記 (公開預覽階段),並以您自訂的清單進行文字比對。內容仲裁也有助於檢查個人識別資訊 (PII)。
  • 影片審核
    利用機器協助,偵測影片中可能具限制級與種族歧視的內容。Azure 媒體服務提供影片仲裁服務 (公開預覽階段)。
  • 人工審核工具
    人機共同作業將可產生最佳的仲裁結果。當預測信任度在實際情況下有改進或調整的空間時,可利用這項審核工具。

使用 API

內容仲裁服務提供了以下類型 API:

  • 文字仲裁 API
    使用此 API 掃描文字中有無可能的粗話、偏激、具暗示性、冒犯及個人識別資訊 (PII)。
  • 自訂字組清單 API
    使用此 API 比對除內建字詞以外的自訂字詞清單。 使用這些清單根據您的內容原則來封鎖或允許內容。
  • 影像仲裁 API
    使用此 API 掃描影像中有無成人和猥褻內容、使用光學字元辨識 (OCR) 功能偵測影像中的文字,以及偵測臉部。
  • 自訂影像清單 API
    使用此 API 比對自訂影像清單,這是您不需要重新分類的預先識別內容。
  • 影片仲裁 API
    使用此 API 掃描影片中有無潛在的成人和猥褻內容。
  • 審核 API
    使用工作、審核與工作流程作業來建立及自動化審核工具中的人機互動工作流程。

影像仲裁 API

首先要到 Azure Portal 新增 Content Moderator 的 API Key

再來新增專案完畢後,進行 Nuget 套件安裝,共需要安裝以下三個套件::

  • Microsoft.Azure.CognitiveServices.ContentModerator
  • Microsoft.Rest.ClientRuntime
  • Newtonsoft.Json

使用 dotnet CLI

dotnet add package Microsoft.Azure.CognitiveServices.ContentModerator
dotnet add package Microsoft.Rest.ClientRuntime
dotnet add package Newtonsoft.Json

使用 Package Explorer

Install-Package Microsoft.Azure.CognitiveServices.ContentModerator
Install-Package Microsoft.Rest.ClientRuntime
Install-Package Newtonsoft.Json
  • 示範成人或裸露影像偵測

因為這次示範圖片偏 18 禁,所以我就不把圖片貼上來了

先把相關變數設定好,像是 API Key 跟 ImageUrl,我把 apiKey 放在 appsettings.json 裡

string apiKey = configuration.GetSection("apiKey").Value;
string imageUrl = "http://pic.pimg.tw/k110107632/1387547248-3785354604.jpg";

接下來我們就把 ContentModeratorClient 給 New 起來,並根據 Azure Portal 上之資訊設定 Endpoint

ContentModeratorClient client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(apiKey));
client.Endpoint = "https://southeastasia.api.cognitive.microsoft.com";

EndPoint 不能這定成跟 Azure Portal 上顯示的一樣,要設為:https://[location].api.cognitive.microsoft.com/

設定完成後,我們就可以把圖片送出去做辨識啦

var imageModeration =
    client.ImageModeration.EvaluateUrlInput("", new BodyModel("URL", imageUrl));
Console.WriteLine($"IsImageAdultClassified: {imageModeration.IsImageAdultClassified}");
Console.WriteLine($"AdultClassificationScore: {imageModeration.AdultClassificationScore}");
Console.WriteLine($"IsImageRacyClassified: {imageModeration.IsImageRacyClassified}");
Console.WriteLine($"RacyClassificationScore: {imageModeration.RacyClassificationScore}");

結果如下

完整範例程式:https://github.com/MoneyYu/2019ItHelpData


人工審核介面

除了透過 API 的方式,內容仲裁服務也提供了讓人工可以手動審核的介面;先讓程式透過 API 方式使用前述的審核 API 建立文字、影像和影片的審核,最後再透過人工的方式最後的決斷。

內容審核生命週期與相關的重要工作如下:

  1. 從基礎審查 API 結果自動建立人工審核
  2. 使用一項工具 (審查工具和 API) 來審查多種格式 (文字、影像和影片)
  3. 將內容審核指派或呈報給依照內容類別或經驗層級組織的多個審核小組。
  4. 使用預設工作流程或定義具有彈性規則的自訂工作流程,而不需撰寫任何程式碼。
  5. 只要建立連接器,即可將人力審查新增至任何 API 或商務程序。
  6. 使用預設連接器來檢閱 Microsoft PhotoDNA、文字分析和臉部 API 的結果。
  7. 取得您內容審核程序的關鍵效能計量。

官方網站:https://contentmoderator.cognitive.microsoft.com/


在開放給一般使用者上傳影片時,就可以很快速的透過此服務篩選掉不適當的影片,如果有更大的疑慮,還可以最後再透過人工審核方式進一步加強效果。


下一篇來介紹我一直很想介紹的「Custom Vision」


上一篇
Day 04 - Cognitive Service - 辨識 - Video Indexer
系列文
Azure Data Service 相關服務基本操作手冊5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言