Kurz: středně náročné image produktů elektronického obchodování s využitím Azure Content Moderator

Upozornění

Nástroj pro kontrolu Content Moderator je nyní zastaralý a bude vyřazení 12/31/2021.

V tomto kurzu se naučíte, jak používat Azure Cognitive Services, včetně Content Moderator, ke klasifikaci a mírnému používání imagí produktu pro scénář elektronického obchodování. Použijete Počítačové zpracování obrazu a Custom Vision k aplikování značek (popisků) na obrázky a potom vytvoříte tým, který kombinuje Content Moderator technologie založené na strojovém učení s týmy pro personálního přezkoumání, aby poskytovala inteligentní systém moderování.

V tomto kurzu získáte informace o následujících postupech:

  • Zaregistrujte se Content Moderator a vytvořte si tým pro revize.
  • Vyhledání případného nevhodného obsahu a obsahu pro dospělé pomocí rozhraní API Content Moderatoru pro obrázky
  • Použijte službu Počítačové zpracování obrazu k vyhledávání obsahu celebrit (nebo jiných značek zjistitelných v počítači).
  • Pomocí služby Custom Vision můžete vyhledat přítomnost příznaků, hraček a per (nebo jiných vlastních značek).
  • Prezentovat kombinované výsledky kontroly pro lidskou kontrolu a konečné rozhodování.

Kompletní vzorový kód je k dispozici v části Samples The elektronického obchodování Catalog úložištì on GitHub.

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Požadavky

  • Klíč předplatného Content Moderatoru. Podle pokynů v části Vytvoření účtu Cognitive Services se přihlaste k odběru služby Content moderator a Získejte svůj klíč.
  • Počítačové zpracování obrazu klíč předplatného (stejné pokyny jako výše).
  • jakákoli edice Visual Studio 2015 nebo 2017.
  • Sada imagí pro každý popisek, který bude Custom Vision klasifikátoru používat (v tomto případě se jedná o hračky, pera a značky v angličtině).

Vytvořit tým pro revize

Pokyny, jak se zaregistrovat do Nástroje pro kontrolu Content moderator a vytvořit tým pro kontrolu, najdete v Content Moderatorm rychlém startu na webu. Poznamenejte si hodnotu ID týmu na stránce přihlašovací údaje .

Vytváření vlastních značek moderování

Dále vytvořte vlastní značky v nástroji pro revizi (viz článek značky , pokud potřebujete s tímto procesem pomáhat). V tomto případě přidáme následující značky: celebrit, USA, příznak, hračky a pero. Ne všechny značky musí být zjistitelné kategorie v Počítačové zpracování obrazu (například celebrit); vlastní značky můžete přidat, pokud Custom Vision třídění, abyste je mohli později zjistit.

Konfigurace vlastních značek

Vytvoření projektu v sadě Visual Studio

  1. v Visual Studio otevřete dialogové okno nový Project. Rozbalte položku nainstalované a pak Visual C# a pak vyberte Konzolová aplikace (.NET Framework).
  2. Pojmenujte aplikaci EcommerceModeration a pak vyberte OK.
  3. Pokud přidáváte tento projekt do existujícího řešení, vyberte tento projekt jako jeden spouštěný projekt.

V tomto kurzu se zvýrazní kód, který je centrální pro projekt, ale nepokrývá každý řádek kódu. Zkopírujte celý obsah programu program. cs z ukázkového projektu (Samples elektronického obchodování Catalog moderovány) do souboru program. cs nového projektu. Potom si Projděte následující části, kde se dozvíte, jak projekt funguje a jak ho použít sami.

Definování klíčů a koncových bodů rozhraní API

V tomto kurzu se používá tři služby pro rozpoznávání; proto vyžaduje tři odpovídající klíče a koncové body rozhraní API. Podívejte se na následující pole ve třídě program :

public const string ContentModeratorKey = "XXXXXXXXXXXXX";
public const string ComputerVisionKey = "XXXXXXXXXXXX";
public const string CustomVisionKey = "XXXXXXXXXXX";

// All your end points based on the new account and subscriptions
public const string ImageUri = "https://westus.api.cognitive.microsoft.com/contentmoderator/moderate/v1.0/ProcessImage/Evaluate";
public const string ReviewUri = "https://westus.api.cognitive.microsoft.com/contentmoderator/review/v1.0/teams/YOUR-TEAM-ID/reviews";
public const string ComputerVisionUri = "https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze?details=celebrities";
public const string CustomVisionUri = "https://southcentralus.api.cognitive.microsoft.com/customvision/v1.0/Prediction/XXXXXXXXXXXXXXXX/url";

Budete muset aktualizovat ___Key pole hodnotami vašich klíčů předplatného a musíte změnit ___Uri pole na správné adresy URL koncového bodu (později získáte Custom Vision klíč a koncový bod). Tyto hodnoty najdete na kartách rychlý Start každého prostředku Azure. Vyplňte YOURTEAMID část ReviewUri pole ID týmu revize, který jste vytvořili dříve. Poslední část pole vyplníte CustomVisionUri později.

Poznámka

Nové prostředky vytvořené po 1. červenci 2019 budou používat názvy vlastních subdomén. Další informace a úplný seznam regionálních koncových bodů najdete v tématu názvy vlastních subdomén pro Cognitive Services.

Volání primárních metod

Podívejte se na následující kód v metodě Main , který projde seznamem adres URL obrázků. Analyzuje jednotlivé obrázky se třemi různými službami, zaznamenává použité značky do pole ReviewTags a pak vytvoří kontrolu pro lidské moderování odesláním imagí do nástroje pro kontrolu Content moderator. Tyto metody budete zkoumat v následujících částech. Pokud chcete, můžete určit, které obrázky budou odesílány ke kontrole, pomocí pole ReviewTags v podmíněném příkazu pro kontrolu, které značky byly použity.

// for each image URL in the file...
foreach (var Url in Urls)
{
    // Initiatize a new review tags array
    ReviewTags = new KeyValuePair[MAXTAGSCOUNT];

    // Evaluate for potential adult and racy content with Content Moderator API
    EvaluateAdultRacy(Url, ref ReviewTags);

    // Evaluate for potential presence of celebrity (ies) in images with Computer Vision API
    EvaluateComputerVisionTags(Url, ComputerVisionUri, ComputerVisionKey, ref ReviewTags);

    // Evaluate for potential presence of custom categories other than Marijuana
    EvaluateCustomVisionTags(Url, CustomVisionUri, CustomVisionKey, ref ReviewTags);

    // Create review in the Content Moderator review tool
    CreateReview(Url, ReviewTags);
}

Metoda EvaluateAdultRacy

Podívejte se na metodu EvaluateAdultRacy ve třídě program . Tato metoda přebírá adresu URL obrázku a pole párů klíč-hodnota jako parametry. Volá REST API image Content Moderator, aby získala výsledky pro dospělé a Pikantníi obrázku. Pokud je skóre pro jednu z hodnot větší než 0,4 (rozsah je mezi 0 a 1), nastaví odpovídající hodnotu v poli ReviewTags na hodnotu true.

/// <summary>
/// Use Content Moderator API to evaluate for potential adult and racy content
/// </summary>
/// <param name="ImageUrl"></param>
/// <param name="ReviewTags"></param>
/// <returns>API call success or not</returns>
public static bool EvaluateAdultRacy(string ImageUrl, ref KeyValuePair[] ReviewTags)
{
    float AdultScore = 0;
    float RacyScore = 0;

    var File = ImageUrl;
    string Body = $"{{\"DataRepresentation\":\"URL\",\"Value\":\"{File}\"}}";

    HttpResponseMessage response = CallAPI(ImageUri, ContentModeratorKey, CallType.POST,
                                           "Ocp-Apim-Subscription-Key", "application/json", "", Body);

    if (response.IsSuccessStatusCode)
    {
        // {“answers”:[{“answer”:“Hello”,“questions”:[“Hi”],“score”:100.0}]}
        // Parse the response body. Blocking!
        GetAdultRacyScores(response.Content.ReadAsStringAsync().Result, out AdultScore, out RacyScore);
    }

    ReviewTags[0] = new KeyValuePair();
    ReviewTags[0].Key = "a";
    ReviewTags[0].Value = "false";
    if (AdultScore > 0.4)
    {
        ReviewTags[0].Value = "true";
    }

    ReviewTags[1] = new KeyValuePair();
    ReviewTags[1].Key = "r";
    ReviewTags[1].Value = "false";
    if (RacyScore > 0.3)
    {
        ReviewTags[1].Value = "true";
    }
    return response.IsSuccessStatusCode;
}

Metoda EvaluateComputerVisionTags

Další metoda přebírá adresu URL obrázku a informace o Počítačové zpracování obrazu předplatném a analyzuje obrázek pro přítomnost celebrit. Pokud se najde aspoň jeden celebrit, nastaví se odpovídající hodnota v poli ReviewTags na true.

/// <summary>
/// Use Computer Vision API to evaluate for potential celebrity presence in image
/// </summary>
/// <param name="ImageUrl"></param>
/// <param name="ComputerVisionUri"></param>
/// <param name="ComputerVisionKey"></param>
/// <param name="ReviewTags"></param>
/// <returns>API call success or not</returns>
public static bool EvaluateComputerVisionTags(string ImageUrl, string ComputerVisionUri, string ComputerVisionKey, ref KeyValuePair[] ReviewTags)
{
    var File = ImageUrl;
    string Body = $"{{\"URL\":\"{File}\"}}";

    HttpResponseMessage Response = CallAPI(ComputerVisionUri, ComputerVisionKey, CallType.POST,
                                           "Ocp-Apim-Subscription-Key", "application/json", "", Body);

    if (Response.IsSuccessStatusCode)
    {
        ReviewTags[2] = new KeyValuePair();
        ReviewTags[2].Key = "cb";
        ReviewTags[2].Value = "false";

        ComputerVisionPrediction CVObject = JsonConvert.DeserializeObject<ComputerVisionPrediction>(Response.Content.ReadAsStringAsync().Result);

        if ((CVObject.categories[0].detail != null) && (CVObject.categories[0].detail.celebrities.Count() > 0))
        {                 
            ReviewTags[2].Value = "true";
        }
    }

    return Response.IsSuccessStatusCode;
}

Metoda EvaluateCustomVisionTags

Dále si prohlédněte metodu EvaluateCustomVisionTags , která klasifikuje skutečné produkty — v tomto případě příznaky, hračky a pera. Postupujte podle pokynů v tématu Postup vytvoření klasifikátoru pro sestavování vlastního klasifikátoru imagí a rozpoznávání příznaků, hraček a per (nebo bez ohledu na to, co jste zvolili jako vlastní značky) na obrázcích. k rychlému proškolování některých kategorií v tomto příkladu můžete použít image ve složce sample-images úložiště GitHub .

Custom Vision webové stránky s školicími snímky pro pera, hračky a příznaky

Jakmile provedete klasifikátor, Získejte adresu URL koncového bodu a předpovědi předpovědi (viz získat adresu URL a klíč předpovědi , pokud potřebujete pomoc s jejich načtením) a přiřadit tyto hodnoty k CustomVisionKey polím a v CustomVisionUri uvedeném pořadí. Metoda používá tyto hodnoty k dotazování klasifikátoru. Pokud klasifikátor najde jednu nebo více vlastních značek v obrázku, tato metoda nastaví odpovídající hodnoty v poli ReviewTags na hodnotu true.

/// <summary>
/// Use Custom Vision API to evaluate for potential content from custom-trained categories 
/// </summary>
/// <param name="ImageUrl"></param>
/// <param name="CustomVisionUri"></param>
/// <param name="CustomVisionKey"></param>
/// <param name="ReviewTags"></param>
/// <returns>API call success or not</returns>
 public static bool EvaluateCustomVisionTags(string ImageUrl, string CustomVisionUri, string CustomVisionKey, ref KeyValuePair[] ReviewTags)
 {
     var File = ImageUrl;
     string Body = $"{{\"URL\":\"{File}\"}}";

     HttpResponseMessage response = CallAPI(CustomVisionUri, CustomVisionKey, CallType.POST,
                                            "Prediction-Key", "application/json", "", Body);

     if (response.IsSuccessStatusCode)
     {
         // Parse the response body. Blocking!
         SaveCustomVisionTags(response.Content.ReadAsStringAsync().Result, ref ReviewTags);
     }

     return response.IsSuccessStatusCode;
 }

Vytvořit recenze pro nástroj pro kontrolu

V předchozích částech jste prozkoumali, jak aplikace kontroluje příchozí obrázky pro dospělé a pikantní obsah (Content Moderator), celebrit (Počítačové zpracování obrazu) a různé další objekty (Custom Vision). Dále si přečtěte část metoda CreateReview , která nahraje obrázky se všemi použitými značkami (předaných jako metadata) do nástroje pro kontrolu Content moderator.

/// <summary>
/// Call Content Moderator's Review API to create a review with the image (URL) and the review tags as inputs
/// </summary>
/// <param name="ImageUrl"></param>
/// <param name="Metadata"></param>
/// <returns>API call success or not</returns>
public static bool CreateReview(string ImageUrl, KeyValuePair[] Metadata)
{

    ReviewCreationRequest Review = new ReviewCreationRequest();
    Review.Item[0] = new ReviewItem();
    Review.Item[0].Content = ImageUrl;
    Review.Item[0].Metadata = new KeyValuePair[MAXTAGSCOUNT];
    Metadata.CopyTo(Review.Item[0].Metadata, 0);

    //SortReviewItems(ref Review);

    string Body = JsonConvert.SerializeObject(Review.Item);

    HttpResponseMessage response = CallAPI(ReviewUri, ContentModeratorKey, CallType.POST,
                                           "Ocp-Apim-Subscription-Key", "application/json", "", Body);

    return response.IsSuccessStatusCode;
}

Obrázky se zobrazí na kartě Revize Nástroje pro kontrolu Content moderator.

Snímek obrazovky nástroje pro revizi Content Moderator s několika obrázky a jejich zvýrazněnými značkami

Odeslat seznam imagí testu

Jak vidíte v metodě Main , tento program hledá adresář "C:test" se souborem Urls.txt , který obsahuje seznam adres URL obrázků. Vytvořte tento soubor a adresář, nebo změňte cestu tak, aby odkazovala na textový soubor. Pak tento soubor naplňte pomocí adres URL imagí, které chcete testovat.

// Check for a test directory for a text file with the list of Image URLs to scan
var topdir = @"C:\test\";
var Urlsfile = topdir + "Urls.txt";

if (!Directory.Exists(topdir))
    return;

if (!File.Exists(Urlsfile))
{
    return;
}

// Read all image URLs in the file
var Urls = File.ReadLines(Urlsfile);

Spuštění programu

Pokud jste postupovali podle všech výše uvedených kroků, program by měl zpracovat každý obrázek (dotazování na všechny tři služby pro příslušné značky) a potom obrázky s informacemi o značkách nahrát do nástroje pro kontrolu Content Moderator.

Další kroky

V tomto kurzu jste nastavili program pro analýzu imagí produktů, označíte je podle typu produktu a umožníte týmu kontroly, aby se o moderování obsahu rozhodli. V dalším kroku se dozvíte více o podrobnostech o moderování imagí.