﻿
{"id":27640,"date":"2025-03-16T00:45:46","date_gmt":"2025-03-16T00:45:46","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=27640"},"modified":"2025-03-16T00:45:46","modified_gmt":"2025-03-16T00:45:46","slug":"nette-amazon-rekognition-ile-image-recognition-yuz-tanima-ve-bulaniklastirma","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/nette-amazon-rekognition-ile-image-recognition-yuz-tanima-ve-bulaniklastirma\/","title":{"rendered":".NET&#8217;te Amazon Rekognition \u0130le Image Recognition &#8211; Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde <em>Amazon Rekognition<\/em> ile .NET&#8217;te <em>Image Recognition<\/em> hakk\u0131nda bilgi edinecek, bu servise dair temel kavramlar\u0131 \u00f6\u011frenecek ve bir yandan da g\u00f6rsellerdeki insan\/nesne g\u00f6r\u00fcnt\u00fclerini tan\u0131may\u0131 ya da gizlilik endi\u015feleri nedeniyle bir g\u00f6r\u00fcnt\u00fcdeki insan y\u00fczlerini bulan\u0131kla\u015ft\u0131rmay\u0131 ve bunlar\u0131n d\u0131\u015f\u0131nda baz\u0131 ek i\u015flemleri pratiksel olarak nas\u0131l ger\u00e7ekle\u015ftirebilece\u011fimizi inceliyor olaca\u011f\u0131z. Ayr\u0131ca <em>Y\u00fcz Analizi(Facial Analysis)<\/em>, Etiket Alg\u0131lama(Label Detection), G\u00f6r\u00fcnt\u00fc D\u00fczenleme(Image Moderation) vb. gibi API&#8217;leri de dashboard \u00fczerinden ele alaca\u011f\u0131z. \u015eimdi gelin, \u00e7ok fazla uzatmaks\u0131z\u0131n, uygulamalar\u0131m\u0131za bir \u00e7ift dijital g\u00f6z misali g\u00f6rsel d\u00fcnyay\u0131 yorumlayabilmemizi sa\u011flayacak olan nitelikleri kazand\u0131racak bu ilgin\u00e7 servisi incelemeye ge\u00e7elim&#8230;<\/p>\n<h4>Amazon Rekognition Nedir?<\/h4>\n<p>Amazon Rekognition, AWS taraf\u0131ndan sunulan makine \u00f6\u011frenimi(machine learning) tabanl\u0131 bir g\u00f6r\u00fcnt\u00fc ve video analiz servisidir. Bu servis sayesinde, uygulamalara a\u015fa\u011f\u0131daki gibi g\u00fc\u00e7l\u00fc g\u00f6r\u00fcnt\u00fc i\u015fleme yetenekleri eklenebilmektedir;<\/p>\n<ul>\n<li><em style=\"color:purple;\">Y\u00fcz Tan\u0131ma ve Analizi<\/em>\n<ul>\n<li>G\u00f6r\u00fcnt\u00fclerdeki y\u00fczleri tespit etme<\/li>\n<li>Y\u00fcz \u00f6zelliklerini analiz ederek ya\u015f tahmini, duygu analizi gibi i\u015flemler ger\u00e7ekle\u015ftirme<\/li>\n<li>Belirli bir y\u00fcz\u00fc veritaban\u0131ndaki y\u00fczlerle e\u015fle\u015ftirme<\/li>\n<li>Ger\u00e7ek zamanl\u0131 y\u00fcz tan\u0131ma sistemleri geli\u015ftirme<\/li>\n<\/ul>\n<\/li>\n<li><em style=\"color:purple;\">Nesne ve Sahne Alg\u0131lama<\/em>\n<ul>\n<li>G\u00f6r\u00fcnt\u00fclerde veya videolarda araba, k\u00f6pek, plaj vs. gibi nesneleri, sahneleri ve aktiviteleri alg\u0131lama<\/li>\n<\/ul>\n<\/li>\n<li><em style=\"color:purple;\">Metin Alg\u0131lama<\/em>\n<ul>\n<li>G\u00f6rsellerde veya videolarda bulunan yaz\u0131lar\u0131 otomatik olarak tan\u0131ma ve i\u015fleme<\/li>\n<\/ul>\n<\/li>\n<li><em style=\"color:purple;\">Zararl\u0131 \u0130\u00e7erik Alg\u0131lama<\/em>\n<ul>\n<li>Uygunsuz veya zararl\u0131 g\u00f6rselleri otomatik tespit etme<\/li>\n<li>\u0130\u00e7erik filtreleme<\/li>\n<\/ul>\n<\/li>\n<li><em style=\"color:purple;\">Ki\u015fi Tan\u0131ma<\/em>\n<ul>\n<li>AWS taraf\u0131ndan sa\u011flanan \u00fcnl\u00fc ki\u015fi veri seti sayesinde \u00fcnl\u00fc ki\u015fileri tan\u0131mlama<\/li>\n<\/ul>\n<\/li>\n<li><em style=\"color:purple;\">Olay Alg\u0131lama<\/em>\n<ul>\n<li>Videolar i\u00e7inde birinin d\u00fc\u015fmesi veya bir nesnenin kaybolmas\u0131 gibi olaylar\u0131 tespit etme<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Evet, g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere biz geli\u015ftiriciler, Amazon Rekognition&#8217;\u0131n yetenekleri sayesinde g\u00f6rsel i\u00e7eriklerden b\u00fcy\u00fck \u00f6l\u00e7ekte de\u011ferli bilgiler edinebilmekteyiz. \u00dcstelik bunu yaparken de bu s\u00fcper yetenekleri uygulamalar\u0131m\u0131za kolayca entegre edebilmemiz i\u00e7in Amazon Rekognition taraf\u0131ndan \u00e7e\u015fitli API&#8217;ler ve SDK&#8217;ler sunulmaktad\u0131r.<\/p>\n<p><strong>Fiyatland\u0131rma<\/strong> a\u00e7\u0131s\u0131ndan Amazon Rekognition&#8217;\u0131 de\u011ferlendirirsek e\u011fer her biri kendi fiyatland\u0131rma ayr\u0131nt\u0131s\u0131na sahip 4 farkl\u0131 kullan\u0131m t\u00fcr\u00fcnden bahsedilmektedir. Bizler bu i\u00e7eri\u011fimizde genellikle G\u00f6r\u00fcnt\u00fc Tan\u0131ma(Image Recognition) ile ilgili seyirde bulunaca\u011f\u0131m\u0131zdan dolay\u0131 direkt bu konseptin fiyatland\u0131rmas\u0131na odaklan\u0131rsak e\u011fer, ayda 5000&#8217;den fazla g\u00f6rseli ilk 12 ay boyunca \u00fccretsiz olarak analiz etmemizi sa\u011flayacakt\u0131r. Ee bu bilgide \u015fimdilik bizim i\u00e7in yeterlidir diyebiliriz \ud83d\ude42 Daha ayr\u0131nt\u0131l\u0131 bilgi i\u00e7in <a href=\"https:\/\/aws.amazon.com\/rekognition\/pricing\/\" target=\"_blank\">\u015furadaki<\/a> dok\u00fcmana g\u00f6z atman\u0131zda fayda vard\u0131r.<\/p>\n<h5>Nerelerde Kullanaca\u011f\u0131z?<\/h5>\n<p>Amazon Rekognition servisini nerelerde, ne ama\u00e7larla kullanaca\u011f\u0131m\u0131za dair projeksiyon olmas\u0131 a\u00e7\u0131s\u0131ndan bir ka\u00e7 sat\u0131rda yorumda bulunmak istiyorum. \u015e\u00f6yle ki;<\/p>\n<ul>\n<li>Taraf\u0131n\u0131zca payla\u015f\u0131lm\u0131\u015f \u00f6zg\u00fcn bir g\u00f6rselin hedef bir web sitesinde, herhangi bir sosyal medyada ya da i\u00e7erik payla\u015f\u0131m platformunda yay\u0131nlan\u0131p yay\u0131nlanmad\u0131\u011f\u0131n\u0131 Amazon Rekognition servisini kullanarak \u0130\u00e7erik Denetleme(Content Moderation) yakla\u015f\u0131m\u0131yla tarayabilirsiniz.<\/li>\n<li>Duygu Analizi(Sentiment Analysis) ile bireylerin duygusal duyarl\u0131l\u0131k katsay\u0131lar\u0131n\u0131 \u00f6l\u00e7ebilir ve neticeye g\u00f6re ticari ya da farkl\u0131 eylemsel hamlelerde bulunabilirsiniz.<\/li>\n<li>G\u00f6rme engelli kullan\u0131c\u0131lara bir g\u00f6rseli dijital olarak anlatmak i\u00e7in kullanabilirsiniz.<\/li>\n<li>Online ma\u011fazalar\u0131n\u0131zda kullan\u0131c\u0131lar\u0131n ellerindeki g\u00f6rsellerle ya da metinsel bir tan\u0131mla \u00fcr\u00fcn tarayabilmelerini sa\u011flayabilir ve dijital pazarlarda fark yaratabilirsiniz.<\/li>\n<li>Umumi uygulamalarda \u00f6zellikle g\u00f6rsel materyallerde uygulama politikalar\u0131n\u0131za uygun g\u00fcvenlik ve g\u00f6zetim ama\u00e7l\u0131 kullanabilirsiniz.<\/li>\n<li>Ve daha nice ihtiya\u00e7 noktalar\u0131nda kullan\u0131p, yaz\u0131l\u0131mlar\u0131n\u0131za akla gelmeyecek \u00f6zg\u00fcn nitelikler kazand\u0131rabilirsiniz.<\/li>\n<\/ul>\n<h4>Amazon Rekognition Dashboard&#8217;u Ke\u015ffedelim<\/h4>\n<p>Elbette ki i\u00e7eri\u011fimizin devam\u0131nda image recognition i\u00e7in Asp.NET Core \u00fczerinden pratiksel dokunu\u015flarda bulunaca\u011f\u0131z. Lakin \u00f6ncelikle bu servisi daha iyi tan\u0131mak ve kavramak i\u00e7in Amazon Rekognition Dashboard&#8217;a g\u00f6z atmakta fayda g\u00f6rmekteyim. Bunun i\u00e7in AWS Management Console \u00fczerinden ilgili servisi aratarak a\u00e7al\u0131m ve incelemeye ba\u015flayal\u0131m&#8230;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.gif\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"800\" height=\"397\" class=\"aligncenter size-full wp-image-27661\" \/><\/a>Yukar\u0131daki g\u00f6rselden de g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere Amazon Rekognition yeteneklerini bizlere deneme yapabilmemiz i\u00e7in demo olarak a\u00e7maktad\u0131r ve label detection&#8217;dan tutun text in image&#8217;e kadar bir\u00e7ok servis burada listelenmektedir. Misal olarak bizler, \u00f6rnek bir resim \u00fczerinden <strong>label detection<\/strong>&#8216;\u0131 test ediyoruz. Dikkat ederseniz se\u00e7ilen g\u00f6rsel i\u00e7eri\u011finde aya bakan bir adam(ben \ud83d\ude43) var. Haliyle Amazon Rekognition adam\u0131 da ay\u0131 da yakalayabilmekte ve bizlere sonucu d\u00f6nd\u00fcrmektedir. <span style=\"font-size:12px;\">(Ulan hadi adam\u0131 anlad\u0131n da, ay\u0131n ay oldu\u011funu nas\u0131l anlad\u0131n, helal be!)<\/span> Bunun d\u0131\u015f\u0131nda yine dikkat ederseniz sa\u011fdaki &#8216;result&#8217; k\u0131sm\u0131nda g\u00f6rsele dair do\u011fa, a\u00e7\u0131k hava, g\u00f6ky\u00fcz\u00fc vs. gibi analiz oranlar\u0131n\u0131 vermekte <span style=\"font-size:12px;\">(hatta g\u00f6rselde g\u00f6z\u00fckmese de, bulunulan ortam\u0131n Gemi olma ihtimaline de %55 vermi\u015f \ud83d\ude2f)<\/span> ve bir yandan da bu servisi API \u00fczerinden kullan\u0131rken request&#8217;in nas\u0131l yap\u0131labilece\u011fine ve request neticesinde gelecek olan response&#8217;un nas\u0131l bir i\u00e7eri\u011fe sahip olaca\u011f\u0131na dair bilgiler sunmaktad\u0131r.<\/p>\n<p>Benzer mant\u0131kla <strong>image properties<\/strong>&#8216;i test edersek e\u011fer;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"1559\" height=\"830\" class=\"aligncenter size-full wp-image-27662\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.png 1559w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-300x160.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1024x545.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-768x409.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1536x818.png 1536w\" sizes=\"auto, (max-width: 1559px) 100vw, 1559px\" \/><\/a>g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere verilen g\u00f6rsele dair renk bile\u015fenlerinden tutun parlakl\u0131k oran\u0131 vs. t\u00fcm teknik bilgileri vermektedir.<\/p>\n<p><strong>Image moderation<\/strong> yetene\u011finde ise;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"1564\" height=\"851\" class=\"aligncenter size-full wp-image-27663\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1.png 1564w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1-300x163.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1-1024x557.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1-768x418.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-1-1536x836.png 1536w\" sizes=\"auto, (max-width: 1564px) 100vw, 1564px\" \/><\/a>Amazon Rekognition, g\u00f6rseli de\u011ferlendirip g\u00fcven puan\u0131 vermekte ve ima edici, uygunsuz ya da m\u00fcstehcen olup olmama durumunu de\u011ferlendirmektedir. Misal olarak, yukar\u0131daki g\u00f6rselde herhangi bir ima ya da uygunsuzluk s\u00f6z konusu olmad\u0131\u011f\u0131 i\u00e7in bir oran vermedi\u011fini g\u00f6r\u00fcyorsunuz. Amma velakin m\u00fcstehcen bir i\u00e7erikle testi ger\u00e7ekle\u015ftirirseniz burada de\u011ferlendirme neticesini alabilir ve ne kadar ger\u00e7ek\u00e7i oldu\u011funu g\u00f6zlemleyip, bir yandan \u015fa\u015f\u0131r\u0131rken bir yandan da uygulamalar\u0131n\u0131z i\u00e7in Amazon Rekognition&#8217;\u0131n gayet g\u00fcvenilir bir ara\u00e7 oldu\u011funa emin olabilirsiniz. \u00d6zellikle bu yetene\u011fi bizler, \u00e7o\u011funlukla kullan\u0131c\u0131lar\u0131n g\u00f6r\u00fcnt\u00fc payla\u015fmas\u0131na izin verilen public sahalarda kullanmay\u0131 tercih edebiliriz. Ne de olsa birinin oturup yay\u0131nlanan g\u00f6rselleri manuel olarak incelemesi yerine, bu denetim sorumlulu\u011funu Amazon Rekognition gibi \u00fcst\u00fcn yetenekli bir tool&#8217;a b\u0131rakmak mali a\u00e7\u0131dan \u00e7ok daha hesapl\u0131 ve ak\u0131ll\u0131ca olacakt\u0131r kanaatindeyim.<\/p>\n<p>Son olarak <strong>facial analysis<\/strong>&#8216;i test edersek e\u011fer;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-2.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"1558\" height=\"768\" class=\"aligncenter size-full wp-image-27664\" \/><\/a>g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere, g\u00f6rsel \u00fczerindeki t\u00fcm y\u00fczleri yakalay\u0131p analizlerini ger\u00e7ekle\u015ftirebiliyor; cinsiyet, ya\u015f aral\u0131\u011f\u0131, duygu ve benzeri di\u011fer \u00f6zellikleri belirleyerek bizlere sunabiliyor. <span style=\"font-size:12px;\">(peze*v*ke bak erkek gibi g\u00f6r\u00fcn\u00fcyo diyo \ud83d\ude02 si**__)<\/span> D\u00fc\u015f\u00fcnsenize, bu gelen verilerden yola \u00e7\u0131karak esas\u0131nda uygulamaya y\u00fcklenecek bir g\u00f6rselin nas\u0131l olmas\u0131 ve g\u00f6r\u00fcnmesi gerekti\u011fini tan\u0131mlayabilir ve b\u00f6ylece uygulaman\u0131n politikalar\u0131na uygun bir g\u00f6rsel dayatmas\u0131nda bulunabilirsiniz.<\/p>\n<p>Bunlar\u0131n d\u0131\u015f\u0131nda y\u00fcz kar\u015f\u0131la\u015ft\u0131rma(face comparison), g\u00f6rseldeki yaz\u0131lar\u0131 okuma(text in image) vs. gibi daha bir\u00e7ok de\u011ferli \u00f6zellikte mevcuttur. Art\u0131k bunlar\u0131 denemeyi sizlere b\u0131rak\u0131yorum. Bizler i\u00e7eri\u011fimizin devam\u0131nda Amazon Rekognition SDK&#8217;i e\u015fli\u011finde bir Asp.NET Core uygulamas\u0131 \u00fczerinden label detection ve image moderation tekniklerini pratiksel inceleyecek ve bunlar\u0131n yan\u0131nda g\u00f6rsel \u00fczerindeki y\u00fczleri bulan\u0131kla\u015ft\u0131rmay\u0131 teknik olarak deneyimleyece\u011fiz. Hadi ba\u015flayal\u0131m&#8230;<\/p>\n<h4>Asp.NET Core&#8217;da Amazon Rekognition ile Image Recognition<\/h4>\n<p>\u0130lk olarak bir Asp.NET Core uygulamas\u0131 olu\u015ftural\u0131m ve bu projeye a\u015fa\u011f\u0131daki paketleri y\u00fckleyerek ba\u015flayal\u0131m;<\/p>\n<div style=\"font-size:14px;line-height:1.9;\">\n<code><a href=\"https:\/\/www.nuget.org\/packages\/AWSSDK.Extensions.NETCore.Setup\" target=\"_blank\">AWSSDK.Extensions.NETCore.Setup<\/a><\/code> <span style=\"color:green;\">(Install-Package AWSSDK.Extensions.NETCore.Setup)<\/span><br \/>\n<code><a href=\"https:\/\/www.nuget.org\/packages\/AWSSDK.Rekognition\" target=\"_blank\">AWSSDK.Rekognition<\/a><\/code> <span style=\"color:green;\">(Install-Package AWSSDK.Rekognition)<\/span><br \/>\n<code><a href=\"https:\/\/www.nuget.org\/packages\/SixLabors.ImageSharp\" target=\"_blank\">SixLabors.ImageSharp<\/a><\/code> <span style=\"color:green;\">(Install-Package SixLabors.ImageSharp)<\/span>\n<\/div>\n<p>\nG\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere AWS servislerini .NET uygulamalar\u0131na entegre etmemizi ve Rekognition yetene\u011fini kullanabilmemizi sa\u011flayacak k\u00fct\u00fcphaneler e\u015fli\u011finde, g\u00f6r\u00fcnt\u00fc i\u015fleme k\u00fct\u00fcphanesi olan <code>ImageSharp<\/code>&#8216;\u0131 uygulamaya y\u00fcklemi\u015f bulunuyoruz.<\/p>\n<p>Ard\u0131ndan a\u015fa\u011f\u0131daki yap\u0131land\u0131rmayla uygulamaya Rekognition servisini ekleyelim;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nbuilder.Services.AddDefaultAWSOptions(builder.Configuration.GetAWSOptions());\r\nbuilder.Services.AddAWSService&lt;IAmazonRekognition&gt;();\r\n<\/pre>\n<\/div>\n<p>Tabi burada \u00e7al\u0131\u015fma sergilenen makineden AWS servislerini kullanabilmek i\u00e7in authentication yap\u0131ld\u0131\u011f\u0131na dair emin olunmas\u0131 gerekmektedir. Bunun i\u00e7in, AWS CLI Profiles&#8217;\u0131 kullanaca\u011f\u0131z.<\/p>\n<blockquote style=\"background-color:#fff8b2;\"><p><em>AWS CLI Profiles&#8217;\u0131n Yap\u0131land\u0131r\u0131lmas\u0131 Ad\u0131mlar\u0131<\/p>\n<ol style=\"font-size:12px;\">\n<li><a href=\"https:\/\/aws.amazon.com\/cli\/\" target=\"_blank\">AWS CLI<\/a>&#8216;\u0131 indirip, y\u00fckleyiniz.<\/li>\n<li>IAM servisinden bir user olu\u015fturunuz.<\/li>\n<li>User&#8217;a access key olu\u015fturunuz.<\/li>\n<li>Herhangi bir terminal ekran\u0131ndan <code>aws configure --profile example-profile<\/code> talimat\u0131n\u0131 vererek bilgisayarda &#8216;example-profile&#8217; ad\u0131nda bir profil olu\u015fturunuz.<\/li>\n<li>Son olarak <code>aws configure list --profile example-profile<\/code> talimat\u0131yla da olu\u015fturulan profili do\u011frulay\u0131n\u0131z.<\/li>\n<\/ol>\n<p><\/em><\/p><\/blockquote>\n<p>Haliyle uygulaman\u0131n &#8216;appsettings.json&#8217; dosyas\u0131nda a\u015fa\u011f\u0131daki yap\u0131land\u0131rmada bulunmam\u0131z gerekmektedir.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n{\r\n  .\r\n  .\r\n  .\r\n  &quot;AWS&quot;: {\r\n    &quot;Profile&quot;: &quot;example-profile&quot;,\r\n    &quot;Region&quot;: &quot;us-west-2&quot;\r\n  }\r\n}\r\n<\/pre>\n<\/div>\n<p>Art\u0131k temel yap\u0131land\u0131rmay\u0131 sa\u011flad\u0131\u011f\u0131m\u0131za g\u00f6re art\u0131k uygulamaya gerekli endpoint&#8217;leri eklemeye ge\u00e7ebiliriz.<\/p>\n<h5>Label Detection Endpoint<\/h5>\n<p>\u0130lk olarak label detection i\u015flevini halledece\u011fiz. Client&#8217;tan gelecek olan bir g\u00f6rseli Amazon Rekognition&#8217;la gerekli alg\u0131lama i\u015flemine tabi tutaca\u011f\u0131z. Bunun i\u00e7in a\u015fa\u011f\u0131daki endpoint&#8217;i olu\u015ftural\u0131m;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\napp.MapPost(&quot;\/detect-labels&quot;, async (IFormFile file, IAmazonRekognition amazonRekognition) =&gt;\r\n{\r\n    var memoryStream = new MemoryStream();\r\n    await file.CopyToAsync(memoryStream);\r\n    var response = await amazonRekognition.DetectLabelsAsync(new DetectLabelsRequest\r\n    {\r\n        Image = new Amazon.Rekognition.Model.Image\r\n        {\r\n            Bytes = memoryStream\r\n        },\r\n        MinConfidence = 95\r\n    });\r\n\r\n    Console.WriteLine(JsonSerializer.Serialize(response));\r\n\r\n    var labels = new List&lt;string&gt;();\r\n    foreach (var label in response.Labels)\r\n        labels.Add(label.Name);\r\n\r\n    return Results.Ok(labels);\r\n})\r\n    .DisableAntiforgery();\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131da yap\u0131lan \u00e7al\u0131\u015fmaya g\u00f6z atarsan\u0131z e\u011fer, client&#8217;tan gelen g\u00f6rseli <em>MemoryStream<\/em>&#8216;e almakta ve <code>DetectLabelsAsync<\/code> metodu e\u015fli\u011finde label detection&#8217;a g\u00f6ndermekteyiz. Ayr\u0131ca, g\u00f6rseldeki etiketlere dair minimum g\u00fcven puan\u0131 olarak da %95 de\u011ferinde bir e\u015fik<span style=\"font-size:12px;\">(<code>MinConfidence<\/code>)<\/span> belirleyerek bu \u015fekilde optimizasyon dokunu\u015flar\u0131nda da bulunabilmekteyiz.<\/p>\n<p>Uygulamay\u0131 bu vaziyette derleyip \u00e7al\u0131\u015ft\u0131r\u0131rsak ve a\u015fa\u011f\u0131daki g\u00f6rseldeki \u00f6rnek resimle testimizi ger\u00e7ekle\u015ftirirsek e\u011fer;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-3.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"940\" height=\"694\" class=\"aligncenter size-full wp-image-27670\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-3.png 940w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-3-300x221.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-3-768x567.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/a><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-4.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"175\" height=\"492\" class=\"alignleft size-full wp-image-27671\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-4.png 175w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-4-107x300.png 107w\" sizes=\"auto, (max-width: 175px) 100vw, 175px\" \/><\/a>yandaki gibi bir neticeyle kar\u015f\u0131la\u015faca\u011f\u0131z&#8230;<\/p>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere, label detection i\u00e7in g\u00f6nderdi\u011fimiz \u00f6rnek g\u00f6rselde ben deniz kota benzer giysiler giydi\u011fim i\u00e7in <em>Clothins<\/em>, <em>Jeans<\/em> ve <em>Pants<\/em> de\u011ferlerini vermektedir. Benzer mant\u0131kla; <em>Face<\/em>, <em>Portrait<\/em>, <em>Adult<\/em>, <em>Male<\/em> ve <em>Man<\/em> etiketleriyle y\u00fcz\u00fc g\u00f6z\u00fcken yeti\u015fkin bir erke\u011fi; <em>Photography<\/em>, <em>Nature<\/em> ve <em>Outdoors<\/em> etiketleriyle g\u00f6rselin do\u011fada veya a\u00e7\u0131k havada \u00e7ekilmi\u015f bir foto\u011fraf oldu\u011funu; <em>Rock<\/em>, <em>Grass<\/em>, <em>Plant<\/em> ve <em>Tree<\/em> etiketleriyle g\u00f6rselde kaya, \u00e7imen, bitki, a\u011fa\u00e7 vs. gibi do\u011fal \u00f6\u011felerin bulundu\u011funu; <em>Sea<\/em>, <em>Water<\/em>, <em>Beach<\/em>, <em>Coast<\/em>, <em>Shoreline<\/em> ve <em>Horizon<\/em> etiketleriyle g\u00f6rselde deniz, k\u0131y\u0131 \u015feridi veya plaj manzaras\u0131 oldu\u011funu ve <em>Sitting<\/em> etiketiyle de g\u00f6rseldeki ki\u015finin oturdu\u011funu ifade etmektedir.<\/p>\n<p>Burada gelen etiketler, yukar\u0131daki yap\u0131land\u0131rmada <code>MinConfidence<\/code>&#8216;da vurgulad\u0131\u011f\u0131m\u0131z e\u015fik de\u011ferinin \u00fczerinde olan etiketlerdir. E\u011fer e\u015fi\u011fin de\u011ferini d\u00fc\u015f\u00fcr\u00fcrseniz sezgisel olarak g\u00f6rselle alakas\u0131zla\u015fan daha fazla etiketin sonu\u00e7 olarak gelmeye ba\u015flad\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<p>T\u00fcm bunlar\u0131n d\u0131\u015f\u0131nda label detection s\u00fcrecine a\u015fa\u011f\u0131daki yap\u0131land\u0131rmalar e\u015fli\u011finde de t\u00fcrl\u00fc k\u0131s\u0131tlamalar getirebilir ve daha ince optimizasyonlarda bulunabilirsiniz;<\/p>\n<ul style=\"font-size:12px;line-height:1.4;\">\n<li><strong><em>Maksimum Etiket Say\u0131s\u0131 (MaxLabels)<\/em><\/strong><br \/>\nEn fazla tespit edilecek etiket say\u0131s\u0131n\u0131 belirler;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\n    var response = await amazonRekognition.DetectLabelsAsync(new DetectLabelsRequest\r\n    {\r\n        Image = new Amazon.Rekognition.Model.Image\r\n        {\r\n            Bytes = memoryStream\r\n        },\r\n        MinConfidence = 95,\r\n\r\n        MaxLabels = 5\r\n    });\r\n.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<p>E\u011fer sonu\u00e7 olarak \u00e7ok fazla etiket istemiyorsan\u0131z bu de\u011feri s\u0131n\u0131rland\u0131rabilir ve b\u00f6ylece gereksiz etiketleri filtreleyerek i\u015flem y\u00fck\u00fcn\u00fc azaltabilirsiniz.\n<\/li>\n<li><strong><em>\u00d6zellikler (Features)<\/em><\/strong><br \/>\nLabel detection s\u00fcrecinde belirli \u00f6zellikleri belirterek alg\u0131lanacak nesnelere m\u00fcdahale edebilirsiniz;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\n    var response = await amazonRekognition.DetectLabelsAsync(new DetectLabelsRequest\r\n    {\r\n        Image = new Amazon.Rekognition.Model.Image\r\n        {\r\n            Bytes = memoryStream\r\n        },\r\n        MinConfidence = 95,\r\n\r\n        Features = &#x5B;\r\n            &quot;GENERAL_LABELS&quot;,\r\n            &quot;IMAGE_PROPERTIES&quot;\r\n            ]\r\n    });\r\n.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<p>Burada mevcut features se\u00e7enekleri a\u015fa\u011f\u0131daki gibidir;<\/p>\n<p>&nbsp;&#8211; <em>GENERAL_LABELS<\/em> : Genel nesneleri ve sahneleri alg\u0131lar. Varsay\u0131lan se\u00e7enektir.<br \/>\n&nbsp;&#8211; <em>IMAGE_PROPERTIES<\/em> : G\u00f6rselin renk bilgilerini ve metadata bilgilerini d\u00f6nd\u00fcr\u00fcr.<br \/>\n&nbsp;&#8211; <em>TEXT_DETECTION<\/em> : G\u00f6rseldeki metinleri alg\u0131lar.\n<\/li>\n<\/ul>\n<p>Evet, label detection&#8217;\u0131 yeterince inceledi\u011fimize g\u00f6re art\u0131k (muhtemelen) i\u00e7eri\u011fimizin en haval\u0131 b\u00f6l\u00fcm\u00fc olan k\u0131sma, g\u00f6rseldeki y\u00fczleri alg\u0131lamaya ve bu y\u00fczleri bulan\u0131kla\u015ft\u0131rmaya ge\u00e7ebiliriz.<\/p>\n<h5>Blur Faces Endpoint<\/h5>\n<p>A\u015fa\u011f\u0131daki \u00e7al\u0131\u015fmada Amazon Rekognition ile g\u00f6rseldeki y\u00fczleri alg\u0131lamakta ve b\u00f6ylece hem toplam y\u00fcz say\u0131s\u0131n\u0131 hem de bu y\u00fczlerin konumunu ve boyutunu belirten koordinatlar\u0131n\u0131(BoundingBox) elde etmekteyiz. Haliyle bu bilgiler e\u015fli\u011finde <em>SixLabors.ImageSharp<\/em> paketini kullanarak g\u00f6r\u00fcnt\u00fcdeki y\u00fczler kolayl\u0131kla bulan\u0131kla\u015ft\u0131r\u0131lmaktad\u0131r.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\napp.MapPost(&quot;blur-faces&quot;, async (IFormFile file, IAmazonRekognition amazonRekognition) =&gt;\r\n{\r\n    using var memoryStream = new MemoryStream();\r\n    await file.CopyToAsync(memoryStream);\r\n    var response = await amazonRekognition.DetectFacesAsync(new DetectFacesRequest\r\n    {\r\n        Image = new Amazon.Rekognition.Model.Image()\r\n        {\r\n            Bytes = memoryStream\r\n        }\r\n    });\r\n\r\n    if (response.FaceDetails.Count &gt; 0)\r\n    {\r\n        var image = SixLabors.ImageSharp.Image.Load(file.OpenReadStream());\r\n        foreach (var face in response.FaceDetails)\r\n        {\r\n            var rectangle = new SixLabors.ImageSharp.Rectangle\r\n            {\r\n                Width = (int)(image.Width * face.BoundingBox.Width),\r\n                Height = (int)(image.Height * face.BoundingBox.Height),\r\n                X = (int)(image.Width * face.BoundingBox.Left),\r\n                Y = (int)(image.Height * face.BoundingBox.Top)\r\n            };\r\n\r\n            image.Mutate(context =&gt; context.BoxBlur(30, rectangle));\r\n            memoryStream.Position = 0;\r\n        }\r\n        var outputMemoryStream = new MemoryStream();\r\n        await image.SaveAsync(outputMemoryStream, new WebpEncoder());\r\n        outputMemoryStream.Position = 0;\r\n\r\n        #region \u0130sterseniz Dosyay\u0131 Fiziksel Kaydedebilirsiniz\r\n        \/\/outputMemoryStream.Position = 0;\r\n        \/\/using var fileStream = File.Create(&quot;output.webp&quot;);\r\n        \/\/await outputMemoryStream.CopyToAsync(fileStream); \r\n        #endregion\r\n\r\n        return Results.File(outputMemoryStream, file.ContentType);\r\n    }\r\n    return Results.NotFound();\r\n})\r\n    .DisableAntiforgery();\r\n<\/pre>\n<\/div>\n<p>Bu sefer de g\u00f6rseldeki y\u00fczleri <code>DetectFacesAsync<\/code> metoduyla alg\u0131lad\u0131\u011f\u0131m\u0131za dikkatinizi \u00e7ekerim. Hemen a\u015fa\u011f\u0131daki g\u00f6rsel e\u015fli\u011finde gerekli testimizi ger\u00e7ekle\u015ftirirsek;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-5.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"969\" height=\"538\" class=\"aligncenter size-full wp-image-27672\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-5.png 969w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-5-300x167.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-5-768x426.png 768w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/><\/a>a\u015fa\u011f\u0131daki gibi olduk\u00e7a ba\u015far\u0131l\u0131 bir netice elde etti\u011fimizi g\u00f6zlemleyece\u011fiz;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.webp\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.webp\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"650\" height=\"360\" class=\"aligncenter size-full wp-image-27673\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma.webp 650w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-300x166.webp 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/a>Harika de\u011fil mi? \ud83d\ude42<\/p>\n<blockquote style=\"color:purple;\"><p><em>AWS S3 Bucket&#8217;a her g\u00f6rsel y\u00fcklendi\u011finde bu kod par\u00e7as\u0131n\u0131 bir AWS Lambda \u00fczerinden tetikleyip y\u00fcz bulan\u0131kla\u015ft\u0131rma i\u015flemini otomatik ger\u00e7ekle\u015ftirebilirsiniz. \u0130lham kayna\u011f\u0131na pratik e\u015flik i\u00e7in bak\u0131n\u0131z : <a href=\"https:\/\/www.gencayyildiz.com\/blog\/nette-s3-eventleriyle-aws-lambdayi-tetikleyelim\/\" target=\"_blank\">.NET\u2019te S3 Event\u2019leriyle AWS Lambda\u2019y\u0131 Tetikleyelim<\/a><\/em><\/p><\/blockquote>\n<h5>Image Moderation Endpoint<\/h5>\n<p>Son olarak da gelen g\u00f6r\u00fcnt\u00fcleri herhangi bir ima edici, m\u00fcstehcen ya da uygunsuz i\u00e7eri\u011fe kar\u015f\u0131n denetmek i\u00e7in bir endpoint \u00e7al\u0131\u015fmas\u0131 ger\u00e7ekle\u015ftirelim;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\napp.MapPost(&quot;\/moderate&quot;, async (IFormFile file, IAmazonRekognition amazonRekognition) =&gt;\r\n{\r\n    var memoryStream = new MemoryStream();\r\n    await file.CopyToAsync(memoryStream);\r\n    var response = await amazonRekognition.DetectModerationLabelsAsync(new DetectModerationLabelsRequest\r\n    {\r\n        Image = new Amazon.Rekognition.Model.Image\r\n        {\r\n            Bytes = memoryStream\r\n        },\r\n        MinConfidence = 90\r\n    });\r\n\r\n    Console.WriteLine(JsonSerializer.Serialize(response));\r\n\r\n    return response.ModerationLabels.Any() ? Results.Ok(&quot;unsafe&quot;) : Results.Ok(&quot;safe&quot;);\r\n})\r\n    .DisableAntiforgery();\r\n<\/pre>\n<\/div>\n<p>Burada <code>DetectModerationLabelsAsync<\/code> metoduyla g\u00f6rseli kontrol ediyor ve <code>MinConfidence<\/code> ayar\u0131n\u0131 da %90 belirterek minimum g\u00fcven e\u015fi\u011fini ayarl\u0131yoruz. B\u00f6ylece Amazon Rekognition, g\u00f6rseldeki ima edici, m\u00fcstehcen ya da uygunsuz i\u00e7eri\u011fi %90 ya da daha fazla ihtimalle alg\u0131lad\u0131\u011f\u0131ndan emin oldu\u011funda <em>ModerationLabels<\/em> verilerini d\u00f6nd\u00fcrmekte ve bizler de i\u015flemlerimizi buna g\u00f6re \u015fekillendirmekteyiz.<\/p>\n<p>Tabi burada gelen <em>ModerationLabels<\/em> de\u011ferlerine de g\u00f6z atabilir ve g\u00f6rseldeki uygun olmayan nesne ya da durumlar\u0131 ifade eden label&#8217;lar\u0131 da i\u015flevsel kaynak olarak uygulaman\u0131zda kullanabilirsiniz. Misal olarak a\u015fa\u011f\u0131daki sava\u015f g\u00f6rselini moderation etti\u011fimizde neticeyi g\u00f6zlemleyebilirsiniz;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-6.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"815\" height=\"636\" class=\"aligncenter size-full wp-image-27674\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-6.png 815w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-6-300x234.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-6-768x599.png 768w\" sizes=\"auto, (max-width: 815px) 100vw, 815px\" \/><\/a><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/03\/NETte-Amazon-Rekognition-Ile-Image-Recognition-Yuz-Tanima-ve-Bulaniklastirma-7.png\" alt=\".NET&#039;te Amazon Rekognition \u0130le Image Recognition - Y\u00fcz Tan\u0131ma ve Bulan\u0131kla\u015ft\u0131rma\" width=\"102\" height=\"74\" class=\"aligncenter size-full wp-image-27675\" \/><\/a><\/p>\n<p>\u0130\u015fte bu kadar \ud83d\ude42<\/p>\n<p>Nihai olarak;<br \/>\n\u0130\u00e7erik seyrinde Amazon Rekognition ile label detection, image moderation ve facial analysis gibi teknikleri hem teorik hem de pratik olarak incelemi\u015f ve bir yandan da g\u00f6rsel \u00fczerindeki y\u00fczleri bulan\u0131kla\u015ft\u0131rarak teknik bir ihtiyaca kar\u015f\u0131n basit bir \u00e7\u00f6z\u00fcm\u00fc tecr\u00fcbe etmi\u015f bulunuyoruz. Bu i\u015flemler \u00f6z\u00fcnde ayr\u0131 bir u\u011fra\u015f ve matematik bilgisi gerektiriyor olsa da Amazon Rekognition sayesinde bu k\u0131s\u0131mlar\u0131n sorumlulu\u011funu kodumuzdan soyutlayabilmekte, bir SDK arac\u0131l\u0131\u011f\u0131yla olduk\u00e7a kolay bir \u015fekilde uygulayabilmekte ve yaz\u0131l\u0131mlara entegre edebilmekteyiz.<\/p>\n<p>Bundan gayr\u0131 ihtiya\u00e7 noktalar\u0131nda kesin tercihim Amazon Rekognition&#8217;d\u0131r diyebilirim \ud83d\ude42<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<p>Not : \u00d6rnek \u00e7al\u0131\u015fmaya a\u015fa\u011f\u0131daki GitHub adresinden eri\u015febilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/gncyyldz\/AmazonRekognition.Example\" target=\"_blank\">https:\/\/github.com\/gncyyldz\/AmazonRekognition.Example<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde Amazon Rekognition ile .NET&#8217;te Image Recognition hakk\u0131nda bilgi edinecek, bu servise dair temel kavramlar\u0131 \u00f6\u011frenecek ve bir yandan da g\u00f6rsellerdeki insan\/nesne g\u00f6r\u00fcnt\u00fclerini tan\u0131may\u0131 ya da gizlilik endi\u015feleri nedeniyle bir g\u00f6r\u00fcnt\u00fcdeki insan&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":27677,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4730,1904],"tags":[5255,5253,5269,5272,5273,5258,5257,5260,5270,5271,5261,5254,5259,5274,5256],"class_list":["post-27640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","category-goruntu-isleme","tag-amazon-image-recognition","tag-amazon-rekognition","tag-amazon-rekognition-nedir","tag-content-moderation","tag-duygu-analizi","tag-etiket-algilama","tag-facial-analysis","tag-goruntu-duzenleme","tag-goruntu-tanima","tag-icerik-denetleme","tag-image-moderation","tag-image-recognition","tag-label-detection","tag-sentiment-analysis","tag-yuz-analizi"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=27640"}],"version-history":[{"count":11,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27640\/revisions"}],"predecessor-version":[{"id":27678,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27640\/revisions\/27678"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/27677"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=27640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=27640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=27640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}