﻿
{"id":6736,"date":"2017-07-27T01:03:05","date_gmt":"2017-07-27T01:03:05","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=6736"},"modified":"2017-07-27T01:08:44","modified_gmt":"2017-07-27T01:08:44","slug":"emgucv-face-eye-nose-and-mouth-detectionyuz-goz-burun-ve-agiz-algilama","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/emgucv-face-eye-nose-and-mouth-detectionyuz-goz-burun-ve-agiz-algilama\/","title":{"rendered":"EmguCV &#8211; Face, Eye, Nose and Mouth Detection(Y\u00fcz, G\u00f6z, Burun ve A\u011f\u0131z Alg\u0131lama)"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde g\u00f6r\u00fcnt\u00fc i\u015fleme framework\u00fc olan EmguCV ile y\u00fcz, g\u00f6z, burun ve a\u011f\u0131z tespiti \u00fczerine konu\u015fuyor olaca\u011f\u0131z. Peki bu i\u015flemi nas\u0131l yapaca\u011f\u0131z? Yani elde edilen g\u00f6r\u00fcnt\u00fc \u00fczerinde y\u00fcz\u00fc, g\u00f6z\u00fc vs. nas\u0131l alg\u0131layaca\u011f\u0131z?<\/p>\n<p>G\u00f6r\u00fcnt\u00fc i\u015flemede hedef olarak neyi ar\u0131yorsak arayal\u0131m ilgili nesneyi sisteme tan\u0131tmam\u0131z gerekmektedir. Burada normal bir insan\u0131 baz alarak d\u00fc\u015f\u00fcn\u00fcrsek e\u011fer; nas\u0131l bir insan bir nesneyi \u00f6nceden tan\u0131mlamadan o nesneyi ilk g\u00f6r\u00fc\u015f\u00fcnde tan\u0131yamamaktaysa, benzer mant\u0131kla bu durum bilgisayar i\u00e7inde ge\u00e7erli olmaktad\u0131r. Yani bir krem peynirden tutunda, bir buluta kadar herhangi bir nesneyi\/\u015fekli\/\u015femali sisteme bir \u015fekilde tan\u0131tmam\u0131z gerekmektedir ki o sistemin zaman\u0131 gelince elinde ihtiyaca d\u00f6n\u00fck kar\u015f\u0131la\u015ft\u0131rma yapabilece\u011fi ve bir \u00f6l\u00e7\u00fct olarak de\u011ferlendirebilece\u011fi bir veri olsun.<\/p>\n<p>Nesneleri\/\u015fekilleri\/\u015femalleri programatik olarak tan\u0131mlanm\u0131\u015f ve o nesnelerin binlerce pozitif ve negatifi ile haz\u0131rlanm\u0131\u015f xml uzant\u0131l\u0131 veri setlerine casecade s\u0131n\u0131fland\u0131r\u0131c\u0131lar\u0131 denmektedir. Cascade veri setlerinde; pozitif tan\u0131mlanan g\u00f6r\u00fcnt\u00fcler istenilen nesnenin bulundu\u011fu, negatif tan\u0131mlanan g\u00f6r\u00fcnt\u00fcler ise istenilen nesnenin bulunmad\u0131\u011f\u0131 durumlar\u0131 g\u00f6stermektedirler. <\/p>\n<p>\u0130lgili makalemizde i\u00e7erik olarak y\u00fcz, g\u00f6z, a\u011f\u0131z ve burun s\u00f6z konusu oldu\u011fu i\u00e7in bu nesneleri tan\u0131mlamam\u0131z gerekecektir. \u0130\u015fte b\u00f6yle bir durumda OpenCV(<em>do\u011fal olarak EmguCV&#8217;de<\/em>) imdad\u0131m\u0131za yeti\u015fmekte ve bunlar ve bunlara benzer bir\u00e7ok nesneyi hali haz\u0131rda tan\u0131mlam\u0131\u015f olarak bizlere sunmaktad\u0131r.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/Cascades.rar\">Buradan<\/a>, bu makalede fazlas\u0131yla i\u015fimize yarayacak olan t\u00fcm cascade dosyalar\u0131n\u0131 elde edebilirsiniz.<\/p>\n<p>\u015eimdi bu indirdi\u011finiz cascade dosyas\u0131n\u0131n i\u00e7eri\u011fine g\u00f6z atal\u0131m.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama.png\" alt=\"EmguCV - Face, Eye, Nose and Mouth Detection(Y\u00fcz, G\u00f6z, Burun ve A\u011f\u0131z Alg\u0131lama)\" width=\"749\" height=\"176\" class=\"aligncenter size-full wp-image-6749\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama.png 749w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-300x70.png 300w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere bir\u00e7ok nesne cascade veri seti olarak tan\u0131mlanm\u0131\u015f durumda. Biz y\u00fcz, g\u00f6z, burun ve a\u011f\u0131z i\u00e7in yukar\u0131da vurgulad\u0131\u011f\u0131m cascade dosyalar\u0131n\u0131 kullanaca\u011f\u0131z. Tabi bunlar d\u0131\u015f\u0131nda piyasada bir\u00e7ok cascade dosyas\u0131n\u0131n mevcut oldu\u011funuda s\u00f6ylemekte fayda var.<\/p>\n<p>\u015eimdi hi\u00e7 uzatmadan direkt olarak konuya giri\u015f yapal\u0131m.<\/p>\n<p>\u00d6ncelikle <a href=\"http:\/\/www.gencayyildiz.com\/blog\/emgucv-projeye-entegrasyonu-ve-kamera-goruntusu-alma\/\" target=\"_blank\">\u015fu adresteki<\/a> yaz\u0131m\u0131zda anlat\u0131ld\u0131\u011f\u0131 gibi EmguCV ile ilgili t\u00fcm dll entegrasyon i\u015flemlerinin yap\u0131ld\u0131\u011f\u0131n\u0131 varsay\u0131yoruz ve konumuza devam ediyoruz.<\/p>\n<p>Yukar\u0131da elde etti\u011fimiz cascade dosyalar\u0131n\u0131n eri\u015fimi kolay olmas\u0131 a\u00e7\u0131s\u0131ndan projemizin &#8220;bin&#8221; -> &#8220;debug&#8221; dizinine yerle\u015ftirmeyide unutmay\u0131n.<\/p>\n<p>\u0130lk olarak kameradan g\u00f6r\u00fcnt\u00fc elde edecek kodlar\u0131m\u0131z\u0131 yazal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        private void Form1_Load(object sender, EventArgs e)\r\n        {\r\n            Capture capture = new Capture();\r\n            capture.Start();\r\n            capture.ImageGrabbed += (x, y) =&gt;\r\n            {\r\n                var image = capture.RetrieveBgrFrame();\r\n                pictureBox1.Image = image.ToBitmap();\r\n            };\r\n        }\r\n<\/pre>\n<p>Ard\u0131ndan cascade dosyalar\u0131m\u0131z\u0131 sisteme dahil edelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        private void Form1_Load(object sender, EventArgs e)\r\n        {\r\n            Capture capture = new Capture();\r\n            capture.Start();\r\n\r\n            HaarCascade haaryuz = new HaarCascade(&quot;haarcascade_frontalface_default.xml&quot;);\r\n            HaarCascade haargoz = new HaarCascade(&quot;haarcascade_eye.xml&quot;);\r\n            HaarCascade haaragiz = new HaarCascade(&quot;haarcascade_mcs_mouth.xml&quot;);\r\n            HaarCascade haarburun = new HaarCascade(&quot;haarcascade_mcs_nose.xml&quot;);\r\n\r\n            capture.ImageGrabbed += (x, y) =&gt;\r\n            {\r\n                var image = capture.RetrieveBgrFrame();\r\n                pictureBox1.Image = image.ToBitmap();\r\n            };\r\n        }\r\n<\/pre>\n<p>Dikkat ederseniz e\u011fer HaarCascade s\u0131n\u0131f\u0131 cascade dosyalar\u0131m\u0131z\u0131 tuttu\u011fumuz s\u0131n\u0131ft\u0131r. \u015eimdi bu s\u0131n\u0131f arac\u0131l\u0131\u011f\u0131yla programatik veri olarak tutulan ilgili nesneyi elimizdeki g\u00f6r\u00fcnt\u00fcde DetectHaarCascade  metodu ile ke\u015ffetmeye \u00e7al\u0131\u015faca\u011f\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        private void Form1_Load(object sender, EventArgs e)\r\n        {\r\n            Capture capture = new Capture();\r\n            capture.Start();\r\n\r\n\r\n            HaarCascade haaryuz = new HaarCascade(&quot;haarcascade_frontalface_default.xml&quot;);\r\n            HaarCascade haargoz = new HaarCascade(&quot;haarcascade_eye.xml&quot;);\r\n            HaarCascade haaragiz = new HaarCascade(&quot;haarcascade_mcs_mouth.xml&quot;);\r\n            HaarCascade haarburun = new HaarCascade(&quot;haarcascade_mcs_nose.xml&quot;);\r\n\r\n            capture.ImageGrabbed += (x, y) =&gt;\r\n            {\r\n                var image = capture.RetrieveBgrFrame();\r\n                if (image != null)\r\n                {\r\n                    \/\/Elde edilen kamera g\u00f6r\u00fcnt\u00fcs\u00fc Image&lt;Gray, byte&gt; nesnesine convert ediliyor.\r\n                    var grayimage = image.Convert&lt;Gray, byte&gt;();\r\n\r\n                    \/\/grayimage nesnemizde DetectHaarCascade metodu arac\u0131l\u0131\u011f\u0131yla HaarCascade\r\n                    \/\/nesnesinde tutulan cascade aranmaktad\u0131r.\r\n                    MCvAvgComp&#x5B;]&#x5B;] Yuzler = grayimage.DetectHaarCascade(haaryuz, 1.2, 5, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(15, 15));\r\n                    MCvAvgComp&#x5B;]&#x5B;] Gozler = grayimage.DetectHaarCascade(haargoz, 1.2, 10, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(15, 15));\r\n                    MCvAvgComp&#x5B;]&#x5B;] Agizlar = grayimage.DetectHaarCascade(haaragiz, 1.2, 100, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(15, 15));\r\n                    MCvAvgComp&#x5B;]&#x5B;] Burunlar = grayimage.DetectHaarCascade(haarburun, 1.2, 50, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(15, 15));\r\n\r\n                    \/\/Bulunan t\u00fcm nesnelerin koordinatlar\u0131 elde edilip gerekli \u00e7izim\r\n                    \/\/i\u015flemi ger\u00e7ekle\u015ftirilmektedir.\r\n                    foreach (MCvAvgComp yuz in Yuzler&#x5B;0])\r\n                        image.Draw(yuz.rect, new Bgr(Color.Red), 2);\r\n                    foreach (MCvAvgComp goz in Gozler&#x5B;0])\r\n                        image.Draw(goz.rect, new Bgr(Color.Black), 2);\r\n                    foreach (MCvAvgComp agiz in Agizlar&#x5B;0])\r\n                        image.Draw(agiz.rect, new Bgr(Color.Blue), 2);\r\n                    foreach (MCvAvgComp burun in Burunlar&#x5B;0])\r\n                        image.Draw(burun.rect, new Bgr(Color.Yellow), 2);\r\n                }\r\n                pictureBox1.Image = image.ToBitmap();\r\n            };\r\n        }\r\n<\/pre>\n<p>E\u011fer ki yukar\u0131daki \u00e7al\u0131\u015fmay\u0131 derleyip \u00e7al\u0131\u015ft\u0131r\u0131rsak a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcndeki gibi g\u00f6r\u00fcnt\u00fcde istenilen yap\u0131lar alg\u0131lanacak ve vurgulanm\u0131\u015f olacakt\u0131r.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-1.png\" alt=\"EmguCV - Face, Eye, Nose and Mouth Detection(Y\u00fcz, G\u00f6z, Burun ve A\u011f\u0131z Alg\u0131lama)\" width=\"519\" height=\"296\" class=\"aligncenter size-full wp-image-6757\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-1.png 519w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-1-300x171.png 300w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a><\/p>\n<p>Evet&#8230; Her ne kadar makalemizde hedefledi\u011fimiz noktaya gelmi\u015f bulunsakta \u015fimdide bu \u00e7al\u0131\u015fmay\u0131 dahada g\u00fc\u00e7lendirmek \u00fczere nelere dikkat edebiliriz bu hususlar\u0131 konu\u015fal\u0131m.<\/p>\n<h4>Daha G\u00fc\u00e7l\u00fc ve Hassas G\u00f6r\u00fcnt\u00fc Alg\u0131lama Nas\u0131l Yap\u0131l\u0131r?<\/h4>\n<p>G\u00f6r\u00fcnt\u00fcy\u00fc alg\u0131larken hassasiyeti artt\u0131rarak daha g\u00fc\u00e7l\u00fc ve verimli bir \u00e7al\u0131\u015fma ger\u00e7ekle\u015ftirmek istiyorsan\u0131z e\u011fer DetectHaarCascade metodunun parametrelerini do\u011fru de\u011ferlerle ayarlaman\u0131z gerekmektedir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-2.png\" alt=\"EmguCV - Face, Eye, Nose and Mouth Detection(Y\u00fcz, G\u00f6z, Burun ve A\u011f\u0131z Alg\u0131lama)\" width=\"871\" height=\"19\" class=\"aligncenter size-full wp-image-6761\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-2.png 871w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-2-300x7.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguCV-Face-Eye-Nose-and-Mouth-DetectionY\u00fcz-G\u00f6z-Burun-ve-A\u011f\u0131z-Alg\u0131lama-2-768x17.png 768w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/a><\/p>\n<ul>\n<li><em><strong>scaleFactor parametresi<\/strong><\/em>;<br \/>\n&#8220;\u00d6l\u00e7ek Art\u0131\u015f Oran\u0131&#8221; olarak nitelendirebilece\u011fimiz bu parametre ile aranan nesnenin alg\u0131lama \u00f6l\u00e7e\u011finin ne kadar h\u0131zl\u0131 artt\u0131rmas\u0131 gerekti\u011fini belirtir. Bu parametre ne kadar y\u00fcksek ayarlan\u0131rsa detekt\u00f6r bir o kadar h\u0131zl\u0131 \u00e7al\u0131\u015facakt\u0131r. Tabi burada \u00f6l\u00e7e\u011fi y\u00fcksek ayarlaman\u0131z nesne aramas\u0131 s\u0131ras\u0131nda geni\u015f periyotlarla bir arama sa\u011flayacakt\u0131r.<\/p>\n<p>Varsay\u0131lan de\u011feri : 1.1&#8217;dir. Yani bir ba\u015fka deyi\u015fle, her ge\u00e7i\u015fte \u00f6l\u00e7ek 1.1(%10) artmaktad\u0131r.<\/p>\n<p>\u015euana kadar yapt\u0131\u011f\u0131m \u00e7al\u0131\u015fmalarda en ideal \u00f6l\u00e7e\u011fin 1.2 oldu\u011funu test etmi\u015f oldum.\n<\/li>\n<li><em><strong>minNeighbors parametresi<\/strong><\/em>;<br \/>\nBuda &#8220;Minumum Kom\u015fu E\u015fi\u011fi&#8221; olarak nitelendirilen bir parametredir. Yani hedeflenen nesneden tespit edilenlerin minumum ne kadar aral\u0131klarda vurgulanmas\u0131n\u0131 ifade etmektedir.\n<\/li>\n<li><em><strong>[HAAR_DETECTION_TYPE] flag parametresi<\/strong><\/em>;<br \/>\n<em>DO_CANNY_PRUNING<\/em><br \/>\nBu \u00f6zellik se\u00e7ilirse, dedekt\u00f6r aranan nesnenin mevcut g\u00f6r\u00fcnt\u00fc b\u00f6lgelerini atlayacak ve hesap maliyetini d\u00fc\u015f\u00fcrecektir.\n<\/li>\n<\/ul>\n<h4>Alg\u0131lan\u0131p Vurgulanan G\u00f6r\u00fcnt\u00fclere Metinsel Olarak \u0130sim Yazma<\/h4>\n<p>Bu i\u015flem i\u00e7in alg\u0131lanan nesne her ne ise bizlere koordinatlar\u0131 gerekmektedir. Haliyle bu koordinatlar yukar\u0131daki kod blo\u011funda var olan foreach d\u00f6ng\u00fclerinin kullan\u0131ld\u0131\u011f\u0131 yerlerde bulunmaktad\u0131rlar. O halde bu foreach d\u00f6ng\u00fclerinde a\u015fa\u011f\u0131daki gibi de\u011fi\u015fiklik olduk\u00e7a yeterli olabilir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n                    foreach (MCvAvgComp hFAce in Yuzler&#x5B;0])\r\n                    {\r\n                        image.Draw(hFAce.rect, new Bgr(Color.Red), 2);\r\n                        MCvFont font = new MCvFont(FONT.CV_FONT_HERSHEY_COMPLEX, 0.3, 0.3);\r\n                        \/\/Yaz\u0131 Yaz\u0131yorum\r\n                        image.Draw(&quot;Yuz&quot;, ref font, new Point(hFAce.rect.X, hFAce.rect.Y), new Bgr(Color.Yellow));\r\n                    }\r\n                    foreach (MCvAvgComp hEye in Gozler&#x5B;0])\r\n                    {\r\n                        image.Draw(hEye.rect, new Bgr(Color.Blue), 2);\r\n                        MCvFont font = new MCvFont(FONT.CV_FONT_HERSHEY_COMPLEX, 0.3, 0.3);\r\n                        \/\/Yaz\u0131 Yaz\u0131yorum\r\n                        image.Draw(&quot;Goz&quot;, ref font, new Point(hEye.rect.X, hEye.rect.Y), new Bgr(Color.Yellow));\r\n                    }\r\n                    foreach (MCvAvgComp hMouth in Agizlar&#x5B;0])\r\n                    {\r\n                        image.Draw(hMouth.rect, new Bgr(Color.Gray), 2);\r\n                        MCvFont font = new MCvFont(FONT.CV_FONT_HERSHEY_COMPLEX, 0.3, 0.3);\r\n                        \/\/Yaz\u0131 Yaz\u0131yorum\r\n                        image.Draw(&quot;Agiz&quot;, ref font, new Point(hMouth.rect.X, hMouth.rect.Y), new Bgr(Color.Yellow));\r\n                    }\r\n                    foreach (MCvAvgComp hNose in Burunlar&#x5B;0])\r\n                    {\r\n                        image.Draw(hNose.rect, new Bgr(Color.Orange), 2);\r\n                        MCvFont font = new MCvFont(FONT.CV_FONT_HERSHEY_COMPLEX, 0.3, 0.3);\r\n                        \/\/Yaz\u0131 Yaz\u0131yorum\r\n                        image.Draw(&quot;Burun&quot;, ref font, new Point(hNose.rect.X, hNose.rect.Y), new Bgr(Color.Yellow));\r\n                    }\r\n<\/pre>\n<p>Bu i\u015flemden sonra projeyi derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda a\u015fa\u011f\u0131daki videoda oldu\u011fu gibi alg\u0131lanan g\u00f6r\u00fcnt\u00fclere gerekli isimler verilmektedir.<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/jJPGWhvar00\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>\nTabi CPU ve RAM d\u00fc\u015f\u00fckl\u00fc\u011f\u00fcnden dolay\u0131 bunca i\u015flemi benim ya\u015fl\u0131 bilgisayar\u0131m anca bu kadar canl\u0131 sergileyebildi\u011fi i\u00e7in mazur g\u00f6r\u00fcn\u00fcz efendim \ud83d\ude42<\/p>\n<p>Ve son olarak,<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/07\/EmguObjectDetectionExempla.rar\">\u00d6rnek projeyi indirmek i\u00e7in buraya t\u0131klaman\u0131z yeterlidir dostlar&#8230;<\/a><\/p>\n<p>Velhas\u0131l bir makalenin daha sonuna gelmi\u015f bulunmaktay\u0131z.<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar diliyorum&#8230;<\/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 g\u00f6r\u00fcnt\u00fc i\u015fleme framework\u00fc olan EmguCV ile y\u00fcz, g\u00f6z, burun ve a\u011f\u0131z tespiti \u00fczerine konu\u015fuyor olaca\u011f\u0131z. Peki bu i\u015flemi nas\u0131l yapaca\u011f\u0131z? Yani elde edilen g\u00f6r\u00fcnt\u00fc \u00fczerinde y\u00fcz\u00fc, g\u00f6z\u00fc vs. nas\u0131l alg\u0131layaca\u011f\u0131z? G\u00f6r\u00fcnt\u00fc&#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":6757,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1905,1904],"tags":[1920,1919,1918,1921,1916,1898,1910,1912,1911,1913,1914,1915,1917],"class_list":["post-6736","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-emgucv","category-goruntu-isleme","tag-emgucv-eye-detection","tag-emgucv-face-detection","tag-emgucv-mouth-detection","tag-emgucv-nose-detection","tag-eye-detection","tag-face-detection","tag-haarcascade","tag-haarcascade_eye-xml","tag-haarcascade_frontalface_default-xml","tag-haarcascade_mcs_mouth-xml","tag-haarcascade_mcs_nose-xml","tag-mouth-detection","tag-nose-detection"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6736","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=6736"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6736\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/6757"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=6736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=6736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=6736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}