<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.yiv735422067msolistparagraph, li.yiv735422067msolistparagraph, div.yiv735422067msolistparagraph
        {mso-style-name:yiv735422067msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.yiv735422067msonormal, li.yiv735422067msonormal, div.yiv735422067msonormal
        {mso-style-name:yiv735422067msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.yiv735422067msochpdefault, li.yiv735422067msochpdefault, div.yiv735422067msochpdefault
        {mso-style-name:yiv735422067msochpdefault;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.yiv735422067msohyperlink
        {mso-style-name:yiv735422067msohyperlink;}
span.yiv735422067msohyperlinkfollowed
        {mso-style-name:yiv735422067msohyperlinkfollowed;}
span.yiv735422067emailstyle17
        {mso-style-name:yiv735422067emailstyle17;}
p.yiv735422067msonormal1, li.yiv735422067msonormal1, div.yiv735422067msonormal1
        {mso-style-name:yiv735422067msonormal1;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Arial","sans-serif";}
span.yiv735422067msohyperlink1
        {mso-style-name:yiv735422067msohyperlink1;
        color:blue;
        text-decoration:underline;}
span.yiv735422067msohyperlinkfollowed1
        {mso-style-name:yiv735422067msohyperlinkfollowed1;
        color:purple;
        text-decoration:underline;}
p.yiv735422067msolistparagraph1, li.yiv735422067msolistparagraph1, div.yiv735422067msolistparagraph1
        {mso-style-name:yiv735422067msolistparagraph1;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Arial","sans-serif";}
span.yiv735422067emailstyle171
        {mso-style-name:yiv735422067emailstyle171;
        font-family:"Arial","sans-serif";
        color:windowtext;}
p.yiv735422067msochpdefault1, li.yiv735422067msochpdefault1, div.yiv735422067msochpdefault1
        {mso-style-name:yiv735422067msochpdefault1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Arial","sans-serif";}
span.EmailStyle29
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks for the feedback!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">We are indeed using the two clicks (the end points) as road color samples, we want to minimize the amount of clicks, and in most places these two points are
 sufficient, but in places where the road color varies a lot the user will have to break the road into shorter segments (and provide more samples…).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The algorithm is currently “generic, it does not have several modes (high shadows/a lot of tree canopy, urban/suburban/rural, road type etc.). We will probably
 add different modes of operation with time, but will want to keep a simple generic version as well.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The current algorithm does not generate multiple solutions. We have an exploration mode that does that (but wait till mid next week before trying that, since
 the current version is pretty lame </span><span style="font-size:11.0pt;font-family:Wingdings;color:#1F497D">J</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">). I am also thinking of having the multiple answer option
 in the next version of our road detection, but it will probably take a few weeks.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks again for the feedback; it really helps in deciding our priorities (since our resources are quite limited…)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Ido<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Juan Lucas Domínguez Rubio [mailto:juan_lucas_dr@yahoo.com]
<br>
<b>Sent:</b> Saturday, February 05, 2011 7:44 AM<br>
<b>To:</b> talk@openstreetmap.org; Ido Omer<br>
<b>Subject:</b> Re: [OSM-talk] (magical?) road detector<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" style="padding:0in 0in 0in 0in">
<p class="MsoNormal">Hello, a couple quick ideas you might have already considered:<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">- Optional parameters in the API to provide additional information for the algorithm, for example:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">...&roadcolorsample=<RGB_values><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(the user has previously sampled the road color by clicking several times the roads of that area)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">...&areatype={urban,suburban,rural,...}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">...&shadowsheading=<heading><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">...&shadowslength={short,medium,long}<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">(some aerial images have very visible shadows, all in the same direction of course)<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">- I don't know how your algorithm works, but if it generates several solutions, you might return an array of linestrings instead of just one. Sophisticated clients will show them all, simple clients will use the first.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">regards<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Juan Lucas<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
--- On <b>Fri, 2/4/11, Ido Omer <i><<a href="mailto:Ido.Omer@microsoft.com">Ido.Omer@microsoft.com</a>></i></b> wrote:<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
From: Ido Omer <<a href="mailto:Ido.Omer@microsoft.com">Ido.Omer@microsoft.com</a>><br>
Subject: [OSM-talk] (magical?) road detector<br>
To: "<a href="mailto:talk@openstreetmap.org">talk@openstreetmap.org</a>" <<a href="mailto:talk@openstreetmap.org">talk@openstreetmap.org</a>><br>
Date: Friday, February 4, 2011, 7:59 PM<o:p></o:p></p>
<div id="yiv735422067">
<div>
<p class="yiv735422067msonormal">Hi Guys,<o:p></o:p></p>
<p class="yiv735422067msonormal"> <o:p></o:p></p>
<p class="yiv735422067msonormal">I am a researcher at Microsoft and I am currently working on the road detector.<o:p></o:p></p>
<p class="yiv735422067msonormal">I joined a bit late and can’t post answers in the existing road detector thread, but I might be able to provide some additional info regarding the road detector.<o:p></o:p></p>
<p class="yiv735422067msonormal">It is *<b>FAR</b>* from being perfect, but in our experiments it may produce a lot of value (== save time) if you use it correctly. When use it correctly means don’t expect too much, so here are some practical tips:<o:p></o:p></p>
<p class="yiv735422067msolistparagraph">1.<span style="font-size:7.0pt">       </span>
It is currently uses the two end points as example and tries to find a path that is similar to those examples, so it is recommended to use the tool at a zoom level that will let you make sure you click on a road and not near a road (we will probably loosen
 that restriction in the future).<o:p></o:p></p>
<p class="yiv735422067msolistparagraph">2.<span style="font-size:7.0pt">       </span>
Don’t try to challenge the detector too much, it will probably fail, instead if you have a very complicated winding road break it into a few sections and let it detect shorter legs (it will still save you most of the clicks…)<o:p></o:p></p>
<p class="yiv735422067msolistparagraph">3.<span style="font-size:7.0pt">       </span>
One of the main features used is color, so if the road changes its color a lot, break it again into shorter legs.<o:p></o:p></p>
<p class="yiv735422067msolistparagraph">4.<span style="font-size:7.0pt">       </span>
We currently only compute one path (road) between the points and cannot provide a meaningful score for that path. Defining a score is a difficult problem (but we are open to ideas…).<o:p></o:p></p>
<p class="yiv735422067msolistparagraph">5.<span style="font-size:7.0pt">       </span>
To speed things up, we are using a bounding box that is in many cases smaller than the bounding box provided by the client (we take constant margins around the bounding box defined by the two end points). This means that if you click on the two end points of
 a U shaped road we might truncate the lower part of the U and find a “shortcut “ through buildings, fields, etc. And again you’ll need to break the query into shorter legs… (I am currently working on speeding things up and I hope to get rid of this limitation
 in a week)<o:p></o:p></p>
<p class="yiv735422067msolistparagraph">6.<span style="font-size:7.0pt">       </span>
The algorithm is currently ignoring junctions, but I should be able to add them very soon (early next week)<o:p></o:p></p>
<p class="yiv735422067msonormal">That is for road detection. The other mode we will provide is road exploration which will enable finding all the roads in a certain bounding box (well, you’ll probably need to click once or twice…) I am not sure if there is
 an exposed version of this service (I hope not, since so far it is really a bunch of experiments…) but we should have it really soon (a week or two). For the road exploration we will probably have some kind of certainty level for each road segment.<o:p></o:p></p>
<p class="yiv735422067msonormal"> <o:p></o:p></p>
<p class="yiv735422067msonormal">I will be very happy to hear of any complaints/requests/places where you think the detector should work but it fails/any other feedback.<o:p></o:p></p>
<p class="yiv735422067msonormal"> <o:p></o:p></p>
<p class="yiv735422067msonormal">Thanks,<o:p></o:p></p>
<p class="yiv735422067msonormal">Ido<o:p></o:p></p>
<p class="yiv735422067msolistparagraph"> <o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
-----Inline Attachment Follows-----<o:p></o:p></p>
<div>
<p class="MsoNormal">_______________________________________________<br>
talk mailing list<br>
<a href="/mc/compose?to=talk@openstreetmap.org">talk@openstreetmap.org</a><br>
<a href="http://lists.openstreetmap.org/listinfo/talk" target="_blank">http://lists.openstreetmap.org/listinfo/talk</a><o:p></o:p></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif""><o:p> </o:p></span></p>
</div>
</body>
</html>