{"id":365,"date":"2014-09-30T14:31:35","date_gmt":"2014-09-30T14:31:35","guid":{"rendered":"http:\/\/dronesonen.hibu.no\/?p=365"},"modified":"2014-09-30T15:56:38","modified_gmt":"2014-09-30T15:56:38","slug":"bildegjenkjenning","status":"publish","type":"post","link":"https:\/\/dronesonen.usn.no\/?p=365","title":{"rendered":"Bildegjenkjenning"},"content":{"rendered":"<p>Et alternativ vi har sett p\u00e5 er \u00e5 ha et stasjon\u00e6rt kamera som kjenner igjen b\u00e5de telys og roboten. &#8220;Stasjonen&#8221; vil da enten kunne gi koordinater som roboten navigerer seg frem til, eller kontinuelig oppdatering om hvilken retning den burde kj\u00f8re. Overf\u00f8ring kunne skjedd over bluetooth.<\/p>\n<p>Det er mange problemstillinger ved denne fremgangsm\u00e5ten. F\u00f8rst og fremst \u00e5 f\u00e5 en datamaskin til \u00e5 kjenne igjen et bord, et telys og roboten. Etter mye leting fant vi frem til opencv, it bibliotek for bildegjenkjenning. Fordelen med opencv er at det finnes moduler for \u00e5 utvikle i Python, noe som \u00f8ker progresonshastigheten.<\/p>\n<p>Som en test tok vi bilde av et bord<\/p>\n<p><a href=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/table2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-369 aligncenter\" src=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/table2-300x200.jpg\" alt=\"table2\" width=\"300\" height=\"200\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/table2-300x200.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/table2-1024x682.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/table2.jpg 1080w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>for \u00e5 finne hj\u00f8rnenene er det mange muligheter, men vi valge \u00e5 bruke en blanding av mange algoritmer. V\u00e5r fremgangsm\u00e5te er:<\/p>\n<ul>\n<li>finne alle kanter \/ piksler som er ved siden av hverandre med veldig forskjellig verdi.<\/li>\n<li>skille ut disse og bruke en fill algoritme som fyller avgrensede omr\u00e5der i bildet.<\/li>\n<li>velge det st\u00f8rste avgrensede omr\u00e5det (antar bordet er plassert i fokus).<\/li>\n<li>fjerne ande kanter.<\/li>\n<li>Bruke Hough transform til \u00e5 kjenne igjen rette linjer, og finne deres skj\u00e6ringspunkter. Disse skj\u00e6ringspunktene er da hj\u00f8rnene p\u00e5 bordet.<\/li>\n<\/ul>\n<p>Etter kantdeteksjon:<\/p>\n<p><a href=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/canny.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-367 aligncenter\" src=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/canny-300x200.jpg\" alt=\"canny\" width=\"300\" height=\"200\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/canny-300x200.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/canny-1024x682.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/canny.jpg 1080w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Ferdig prosessert bilde:<\/p>\n<p><a href=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/output.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-368 aligncenter\" src=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/output-300x200.jpg\" alt=\"output\" width=\"300\" height=\"200\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/output-300x200.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/output-1024x682.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2014\/09\/output.jpg 1080w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Neste steg er s\u00e5 \u00e5 transformere dette perspektivet til et 2D plan slik at punkter kommer ut som koordinater. Dette er fullt mulig, da vi har bredde og lengde p\u00e5 bordet, men krever noen litt kinkige matrise transformasjoner.<\/p>\n<p>Dette jobber vi med n\u00e5.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Et alternativ vi har sett p\u00e5 er \u00e5 ha et stasjon\u00e6rt kamera som kjenner igjen b\u00e5de telys og roboten. &#8220;Stasjonen&#8221; vil da enten kunne gi koordinater som roboten navigerer seg frem til, eller kontinuelig oppdatering om hvilken retning den burde kj\u00f8re. Overf\u00f8ring kunne skjedd over bluetooth. Det er mange problemstillinger ved denne fremgangsm\u00e5ten. F\u00f8rst og [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-365","post","type-post","status-publish","format-standard","hentry","category-smart-systems-2014-fire-fighters"],"_links":{"self":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=365"}],"version-history":[{"count":4,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/365\/revisions"}],"predecessor-version":[{"id":379,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/365\/revisions\/379"}],"wp:attachment":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}