{"id":238,"date":"2022-12-10T23:06:30","date_gmt":"2022-12-10T23:06:30","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/?p=238"},"modified":"2022-12-10T23:08:09","modified_gmt":"2022-12-10T23:08:09","slug":"kevins-status-report-for-12-10-22","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/2022\/12\/10\/kevins-status-report-for-12-10-22\/","title":{"rendered":"Kevin&#8217;s Status Report for 12\/10\/22"},"content":{"rendered":"<p>This week started with final presentations, for which I prepared slide content and updated graphics:<\/p>\n<figure id=\"attachment_240\" aria-describedby=\"caption-attachment-240\" style=\"width: 243px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-240 \" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screen-Shot-2022-12-04-at-3.46.08-PM-917x1024.png\" alt=\"\" width=\"243\" height=\"260\" \/><figcaption id=\"caption-attachment-240\" class=\"wp-caption-text\">Illustration of Confidence Matrix spellcheck<\/figcaption><\/figure>\n<figure id=\"attachment_241\" aria-describedby=\"caption-attachment-241\" style=\"width: 353px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-241\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screen-Shot-2022-12-10-at-1.55.48-PM.png\" alt=\"\" width=\"353\" height=\"261\" \/><figcaption id=\"caption-attachment-241\" class=\"wp-caption-text\">Illustration of our re-scoped solution<\/figcaption><\/figure>\n<p>Following presentations, I continued to work on integration and was able to put all our software parts together and verify functionality on the AGX Xavier.<\/p>\n<p><strong>AGX Xavier<\/strong><\/p>\n<p>This week, I was able to get TensorRT working on the AGX Xavier by re-installing the correct distribution of onnxruntime from NVIDIA&#8217;s pre-built Jetson Zoo. I was also able to install <a href=\"https:\/\/github.com\/brektrou\/rtl8821CU\">drivers<\/a> which enabled us to use a USB Wi-Fi dongle instead of being tethered by Ethernet. Once the Xavier was set up, I was able to measure inference performance for my classification dataset:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-242\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screen-Shot-2022-12-10-at-2.01.14-PM.png\" alt=\"\" width=\"1482\" height=\"736\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screen-Shot-2022-12-10-at-2.01.14-PM.png 1482w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screen-Shot-2022-12-10-at-2.01.14-PM-300x149.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screen-Shot-2022-12-10-at-2.01.14-PM-768x381.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screen-Shot-2022-12-10-at-2.01.14-PM-1024x509.png 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>It quickly became clear that Xavier had a huge performance advantage over the Nano, and given our new stationary rescope, it seemed reasonable to pivot to the Xavier platform. Crucially, the Xavier provided more than 7x speedup over the Nano when running inferences with TensorRT. This meant that we could translate 625 characters in one second&#8217;s latency &#8211; more than 100 words &#8211;\u00a0 far exceeding our requirements. Combined with only 3x the maximum power draw, we felt that the trade-off favored the Xavier.<\/p>\n<p>Integrating software subsystems was fairly straightforward once again, allowing me to perform some informal tests on the entire system. Using the modified AngelinaReader to perform real-time crops, we were able to achieve 3-5s latency from capture-to-read. Meanwhile, our own hardcoded crops \/ preprocessing pipeline was able to reach under 2s of latency, as we had hoped.<\/p>\n<p><strong>Experimental Feature: Finger Cursor <\/strong><\/p>\n<p>Because I had some extra time this week, I decided to implement an idea I had to address some of the ethical concerns that were raised regarding our project. Specifically, that users will become overreliant on the device and neglect learning braille on their own. To combat this, I implemented an experimental feature that allows the user to read character by character at their own pace as if they are reading the braille themselves.<\/p>\n<p>Combining the bounding boxes I can extract from AngelinaReader and Google&#8217;s <a href=\"https:\/\/google.github.io\/mediapipe\/solutions\/hands.html\">MediaPipe hand pose estimation model<\/a>, I was able to prototype a feature that we can use during demo which allows users to learn braille characters as they move their fingers over them.<\/p>\n<p>Using the live feed from the webcam, we can detect when the tip of a user&#8217;s index finger is within the bounding box of a character and read the associated predictions from the classification subsystem out loud. This represents a quick usability prototype to demonstrate the educational value of our solution.<\/p>\n<figure id=\"attachment_244\" aria-describedby=\"caption-attachment-244\" style=\"width: 1920px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-244\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screenshot-from-2022-12-10-14-14-53.png\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screenshot-from-2022-12-10-14-14-53.png 1920w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screenshot-from-2022-12-10-14-14-53-300x169.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screenshot-from-2022-12-10-14-14-53-768x432.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-content\/uploads\/sites\/215\/2022\/12\/Screenshot-from-2022-12-10-14-14-53-1024x576.png 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption id=\"caption-attachment-244\" class=\"wp-caption-text\">Demonstration of experimental finger cursor feature view<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This week started with final presentations, for which I prepared slide content and updated graphics: Following presentations, I continued to work on integration and was able to put all our software parts together and verify functionality on the AGX Xavier. AGX Xavier This week, I was able to get TensorRT working on the AGX Xavier &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/2022\/12\/10\/kevins-status-report-for-12-10-22\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Kevin&#8217;s Status Report for 12\/10\/22&#8221;<\/span><\/a><\/p>\n","protected":false},"author":645,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,3],"tags":[6],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/posts\/238"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/users\/645"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/comments?post=238"}],"version-history":[{"count":8,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/posts\/238\/revisions"}],"predecessor-version":[{"id":250,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/posts\/238\/revisions\/250"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/media?parent=238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/categories?post=238"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f22-teamb1\/wp-json\/wp\/v2\/tags?post=238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}