<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AH Projects &#187; ITP</title>
	<atom:link href="http://ahprojects.com/blog/c/itp/feed" rel="self" type="application/rss+xml" />
	<link>http://ahprojects.com</link>
	<description>Adam Harvey Projects</description>
	<lastBuildDate>Wed, 01 Feb 2012 19:35:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>OpenCV Face Detection: Visualized</title>
		<link>http://ahprojects.com/blog/opencv-face-detection-visualized</link>
		<comments>http://ahprojects.com/blog/opencv-face-detection-visualized#comments</comments>
		<pubDate>Wed, 08 Jun 2011 21:51:13 +0000</pubDate>
		<dc:creator>admhrv</dc:creator>
				<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://ahprojects.local/?p=20</guid>
		<description><![CDATA[&#160; Visualizing the OpenCV Detection Process This video visualizes the detection process of OpenCV&#8217;s face detector. The algorithm utilizes the Viola Jones method of calculating the integral image and then performing some calculations on all the areas defined by the &#8230; <a href="http://ahprojects.com/blog/opencv-face-detection-visualized">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/12774628?title=0&amp;byline=0&amp;portrait=0" width="579" height="552" frameborder="0"></iframe></p>
<div class="spMediaMd">&nbsp;</div>
<h3>Visualizing the OpenCV Detection Process</h3>
<p>This video visualizes the detection process of OpenCV&#8217;s face detector. The algorithm utilizes the Viola Jones method of calculating the integral image and then performing some calculations on all the areas defined by the black and white rectangles. The sub-window (in red) is scanned across the image at various scales to detect if there is a potential face. In the post-processing stage all the potential faces are checked for overlaps. Typically, 2 or 3 overlapping rectangles are required to confirm a face. Loner rectangles are rejected as false-positives.<br />This visualization was done as part of the documentation for <em>CV Dazzle</em>, camouflage from face detection. For more information, visit <a href="http://cvdazzle.com">http://cvdazzle.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ahprojects.com/blog/opencv-face-detection-visualized/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CV Dazzle vs OpenCV</title>
		<link>http://ahprojects.com/blog/cv-dazzle-vs-opencv</link>
		<comments>http://ahprojects.com/blog/cv-dazzle-vs-opencv#comments</comments>
		<pubDate>Fri, 04 Jun 2010 21:50:21 +0000</pubDate>
		<dc:creator>admhrv</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://ahprojects.local/?p=19</guid>
		<description><![CDATA[OpenCV vs CV Dazzle In this image the dotted lines represent all possible face detections, including false positives, before post-processing. Solid lines indicate a positive face detection. Each of the different colors represent the different Haar Cascade face profiles that &#8230; <a href="http://ahprojects.com/blog/cv-dazzle-vs-opencv">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahprojects.com/blog/cv-dazzle-vs-opencv/attachment/20100622132533" rel="attachment wp-att-190"><img src="http://ahprojects.com/wp-content/uploads/2010/06/20100622132533-578x586.jpg" alt="OpenCV vs CV Dazzle" title="OpenCV vs CV Dazzle" width="578" height="586" class="size-large wp-image-190 first" /></a></p>
<div class="wp-caption">OpenCV vs CV Dazzle</div>
<p class="first">In this image the dotted lines represent all possible face detections, including false positives, before post-processing. Solid lines indicate a positive face detection. Each of the different colors represent the different Haar Cascade face profiles that were used. Images without any solid lines are classified as false-positives and have beaten the face detector.</p>
<p>Post-processing in OpenCV helps remove false positives. Though false positives are still possible, they are reduced by searching for overlapping detections. Only detections that overlap at least 3 (default) other rectangles are considered to be a face. The default setting can be changed to 2 for a higher detection rate, but with more false positives. Setting the overlap minimum to 0 returns all possible detections, as shown here by the dotted lines. </p>
<p>The solid lines represent the faces. They are confirmed by multiple overlapping rectangles. And the colors correspond to the difference detection profiles. OpenCV includes four robust profiles for detecting faces in a <em>frontal view</em>. These profiles include the &#8220;frontalface_default.xml&#8221;, &#8220;frontalface_alt.xml&#8221;, &#8220;frontalface_alt2.xml&#8221;, and &#8220;frontalface_alt_tree.xml&#8221; files. Each detector returns different noticeably different results.</p>
<p><a href="http://opencv.willowgarage.com/wiki/Mac_OS_X_OpenCV_Port">OpenCV</a> is a computer vision framework available in many different programming languages. For this test, I used the Java port created for Processing from <a href="http://ubaa.net/shared/processing/opencv/opencv_image.html">http://ubaa.net/shared/processing/opencv/opencv_image.html</a> and then confirmed the results using the standard framework in C.</p>
<p>The images on the bottom row without any solid lines indicate that no faces were found. Although some potential faces were found. They were ignored, because there was not enough confidence.</p>
<p>These images show a proof of concept hair + makeup pattern capable of deceiving the OpenCV face detector. It was developed as my master&#8217;s thesis project at the Interactive Telecommunication Program at NYU. A more detailed report will be posted on <a href="http://cvdazzle.com">CVDazzle.com</a> when it&#8217;s ready.</p>
<p>Model: Jen Jaffe, Hair: Pia Vivas, Makeup: Leigh Brown</p>
]]></content:encoded>
			<wfw:commentRss>http://ahprojects.com/blog/cv-dazzle-vs-opencv/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CV Dazzle vs PhotoTagger</title>
		<link>http://ahprojects.com/blog/cv-dazzle-vs-phototagger</link>
		<comments>http://ahprojects.com/blog/cv-dazzle-vs-phototagger#comments</comments>
		<pubDate>Wed, 02 Jun 2010 21:49:12 +0000</pubDate>
		<dc:creator>admhrv</dc:creator>
				<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://ahprojects.local/?p=17</guid>
		<description><![CDATA[CV Dazzle vs PhotoTagger from Adam Harvey on Vimeo. CV Dazzle is camouflage from face detection. It]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/12308527?title=0&amp;byline=0&amp;portrait=0" width="586" height="425" frameborder="0"></iframe>
<p><a href="http://vimeo.com/12308527">CV Dazzle vs PhotoTagger</a> from <a href="http://vimeo.com/admhrv">Adam Harvey</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>CV Dazzle is camouflage from face detection. It</p>
]]></content:encoded>
			<wfw:commentRss>http://ahprojects.com/blog/cv-dazzle-vs-phototagger/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Haar Cascade Target Areas</title>
		<link>http://ahprojects.com/blog/haar-cascade-target-areas</link>
		<comments>http://ahprojects.com/blog/haar-cascade-target-areas#comments</comments>
		<pubDate>Sun, 28 Mar 2010 21:46:18 +0000</pubDate>
		<dc:creator>admhrv</dc:creator>
				<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://ahprojects.local/?p=14</guid>
		<description><![CDATA[False Overlays Test patterns based on reversing Haar cascade files. In the test images above, the original face was overlaid with hand-made variations of the true Haar cascade points of interest (POI) and the reversed POI. Variations of original POI &#8230; <a href="http://ahprojects.com/blog/haar-cascade-target-areas">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahprojects.com/blog/haar-cascade-target-areas/cvdazzle-false" rel="attachment wp-att-181"><img src="http://ahprojects.com/wp-content/uploads/2010/03/cvdazzle-false-578x115.jpg" alt="False Overlays" title="False Overlays" width="578" height="115" class="alignnone size-large wp-image-181 first" /></a></p>
<div class="wp-caption">False Overlays</div>
<h3>Test patterns based on reversing Haar cascade files.</h3>
<p>In the test images above, the original face was overlaid with hand-made variations of the true Haar cascade points of interest (POI) and the reversed POI. Variations of original POI yielded nearly 100% positive results except for the all white overlay (top middle). It was surprising the rest of the all-black/white pixels still tested positive, so one missed face was not too disappointing. All of the expected negatives tested negative. (Images in red are positive faces. Unaltered images were negative)
</p>
<p><a href="http://ahprojects.com/blog/haar-cascade-target-areas/cvdazzle-lights" rel="attachment wp-att-182"><img src="http://ahprojects.com/wp-content/uploads/2010/03/cvdazzle-lights-578x231.jpg" alt="Overlays" title="Overlays" width="578" height="231" class="alignnone size-large wp-image-182" /></a></p>
<div class="wp-caption">Overlays</div>
<p>The images with a light overlay have white pixels where dark pixels should be if there, statistically, was face. Images with a dark overlay have black pixels where the light pixels should be. Because they are all custom variations of the original patterns (top 2 rows), they don&#8217;t all hide the face. But the patterns that do hide the images are surprisingly small. Note the small white accents that yielded a negative result and the large black pixel-beard that tested positive.</p>
]]></content:encoded>
			<wfw:commentRss>http://ahprojects.com/blog/haar-cascade-target-areas/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing Haar Cascade Files</title>
		<link>http://ahprojects.com/blog/visualizing-haar-cascade-files</link>
		<comments>http://ahprojects.com/blog/visualizing-haar-cascade-files#comments</comments>
		<pubDate>Sun, 28 Mar 2010 21:45:15 +0000</pubDate>
		<dc:creator>admhrv</dc:creator>
				<category><![CDATA[ITP]]></category>

		<guid isPermaLink="false">http://ahprojects.local/?p=13</guid>
		<description><![CDATA[Haarcascade Frontalface Default Visualizing the features that Haar-based face detection programs use to find faces. When you use face detection in Processing and OpenFrameworks you&#8217;re using an algorithm developed in 2001 called the Viola-Jones method. Though seemingly old, it&#8217;s still &#8230; <a href="http://ahprojects.com/blog/visualizing-haar-cascade-files">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ahprojects.com/blog/visualizing-haar-cascade-files/haarcascade_frontalface_default" rel="attachment wp-att-185"><img src="http://ahprojects.com/wp-content/uploads/2010/03/haarcascade_frontalface_default-578x462.jpg" alt="Haarcascade Frontalface Default" title="Haarcascade Frontalface Default" width="578" height="462" class=" first alignnone size-large wp-image-185" /></a></p>
<div class="wp-caption">Haarcascade Frontalface Default</div>
<h3>Visualizing the features that Haar-based face detection programs use to find faces.</h3>
<p>When you use face detection in Processing and OpenFrameworks you&#8217;re using an algorithm developed in 2001 called the Viola-Jones method. Though seemingly old, it&#8217;s still a robust and efficient way to detect faces in real time. It works great in Java, C++ and even Flash as you can see from these examples in <a href="http://www.youtube.com/watch?v=SdvaanQ2yYk">Processing</a>, <a href="http://www.youtube.com/watch?v=luQo2w4Hf58">OpenFrameworks</a>, and <a href="http://vimeo.com/3383559">Flash</a>.</p>
<p>The algorithm looks at the image (or video) and tries to match the Haar features (in black and white) to features of the image. The more features match, the more likely it is that the image contains a face. As its name implies, a cascade is made of a series of feature-tests. For a face to be detected, the algorithm must match a cascade or series of features in the expected locations. The examples above and below show the Haar features from the cascade files that ship with <a href="http://opencv.willowgarage.com/wiki/">OpenCV</a>. For more information on how face detection works, I recommend starting with a 2007 article from Servo magazine about <a href="http://www.cognotics.com/opencv/servo_2007_series/part_2/sidebar.html">how face detection works</a>. </p>
<p><strong>To do:</strong> Find the order and weight of the trees in the cascade to determine which are the most and least important features. (NB: the image of <a href="http://images.google.com/images?q=lena+face+detection">Lena</a> is popular test image for face detection.)</p>
]]></content:encoded>
			<wfw:commentRss>http://ahprojects.com/blog/visualizing-haar-cascade-files/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

