FPGA String Art

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 พ.ค. 2019
  • people.ece.cornell.edu/land/co...
    The algorithm that Barton used to derive the processed images was developed by computer graphics researchers at TU Wien (Vienna University of Technology), which is outlined in detail in this paper. In it, they formulate the problem mathematically and present their trials of different optimization methods to approach a good result, which in the end is judged subjectively by the human eye (as art should be, although they do present quantitative evaluation as well).
    We will explain the algorithm in detail below, but the problem with the researchers' implementation of it in MATLAB is that it runs extraordinarily slow. Most of the inefficiency is a result of MATLAB being a script language that is compiled during execution. It took over 3 hours to generate the image of Albert Einstein above, and takes even more time for darker images that require more lines. Moreover, they have implemented matrix operations extensively to improve on the execution time from the original version, using a gigantic sparce matrix to convert from the space of edges to the space of pixels. For a 256 pin circular canvas on a 512x512 pixel image, that is a 262,144 by 130,560 matrix (assuming 4 possible edges per pin pair). This makes the code incapable of running on any computer with less than 32 GB of RAM, and even on a computer that satisfied such hardware requirements it filled 100% of the available memory.
    Thus our goal was to implement specialized solvers on the FPGA, and accelerate the computation of this greedy optimization problem. Since Barton is making his hardware design open-source, this would contribute to allowing more people to build the full system without needing a high-end computer and a MATLAB license. We were successful in implementing a reduced version of the best algorithm from the paper that showed over 100x acceleration in finding the result. However, we were not able to fit the supersampling portion on the DE1-SoC's FPGA due to memory constraints. Our design is presented below as well as further steps needed to achieve an equivalent result to the MATLAB program.
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 37

  • @JairSales10
    @JairSales10 3 ปีที่แล้ว +1

    como desenvolver esta arte colorida?

  • @stlo0309
    @stlo0309 4 ปีที่แล้ว

    hey @BruceLand! Sorry if this is too noob of a question, but like who are the Intended Audience of ECE 5760? I am a 1st year EEE undergrad, and all these projects seem too advance to me. I'm intimidated and confused at the same time watching these projects...

    • @ece4760
      @ece4760  4 ปีที่แล้ว

      This course is aimed at 5th year students, but some 4th year students take it. It assumes that you have had digital logic, cpu design, DSP, and partial differential equations

  • @AshishSharma-js2xy
    @AshishSharma-js2xy 2 ปีที่แล้ว +1

    This is a great project to work on. I am planning to do my masters in ECE in hardware designing, so it would be very kind of you if you can tell me which subjects/tools I need to have good knowledge of.

    • @ece4760
      @ece4760  2 ปีที่แล้ว +1

      There are several levels to hardware design, but the level that is used for this project is logical design of sequential machines. You need to be good at state machines, boolean logic, Ability to read a huge (1000 page) data sheet, and ability to set up and use electronic instrumentation. The language we used here was Verilog, but VHDL could also work.

  • @PipicoClips
    @PipicoClips ปีที่แล้ว

    Hello, I'm trying to recreate the physical part of Barton's machine, but he is far from answering me in any contact I have try with him, would there be any way for you to help me with this?

    • @ece4760
      @ece4760  ปีที่แล้ว

      I am sorry, but I do not see how I can help with this. I do not know Barton and have never build a string machine.

  • @Libyastandup
    @Libyastandup 3 ปีที่แล้ว

    I am an artist, how can I use this software to generate lines from black and white images I intend to use?

    • @ece4760
      @ece4760  3 ปีที่แล้ว +1

      I think that you should one of the many free software packages available. This hardware (not software) is difficult to set up.

  • @NoorAli-ky2tu
    @NoorAli-ky2tu 4 ปีที่แล้ว

    كيف نتعلم ذلك 😥

  • @aboalbsamer
    @aboalbsamer 3 ปีที่แล้ว

    How can I contact you about a necessary topic?

    • @ece4760
      @ece4760  3 ปีที่แล้ว

      talk here

  • @user-mq1qg4rj2t
    @user-mq1qg4rj2t 6 หลายเดือนก่อน

    Possible details about the application device used

    • @ece4760
      @ece4760  6 หลายเดือนก่อน

      did you read the linked report?

  • @masthe007
    @masthe007 5 ปีที่แล้ว +1

    I wonder if it's fair to compare Matlab code to an fpga. I bet you'll get decent performance if you coded in C++, with code similar to the fpga, using avx instructions etc.
    I was wondering if the 80x speed up was for the same resolution image on Matlab vs fpga.

    • @ece4760
      @ece4760  5 ปีที่แล้ว +2

      Same resolution. Recoding is C will certainly speed it up compared to matlab. I doubt that "code similar to FPGA" is possible on a sequential processor. Also, the FPGA is running a about 1 watt, probably about 5-10% of the power of the labtop.

    • @masthe007
      @masthe007 5 ปีที่แล้ว

      True, fpga wins on perf per watt.

    • @fasctic3922
      @fasctic3922 3 ปีที่แล้ว

      @@ece4760 I actually made a string art algorithm in c++ and using the CUDA toolkit from nvidia to run it on a graphics card which has a few thousand of processors that can run in parallel. I first wrote the same algorithm sequentially in python and it took 3 minutes to finish but now with it running on a graphics card it takes less than a second. It's image processing after all and that's what graphics cards were made to do.

    • @fasctic3922
      @fasctic3922 3 ปีที่แล้ว

      This is an example of the result from my algorithm used in conjunction with the 3d rendering software Blender to render the string art on top of a metal frame inserted into an image with the right perspective, shadows and such. (image link) imgur.com/a/AN1m6s5

  • @traveldiaries1693
    @traveldiaries1693 3 ปีที่แล้ว

    Do you make whole machine??

    • @ece4760
      @ece4760  3 ปีที่แล้ว

      I am not sure what you mean. The students used a commercial FPGA board, but the string art generator is their design

  • @alpeshsuthar2032
    @alpeshsuthar2032 3 ปีที่แล้ว

    Hello
    Nice work details.
    I want to amoe such arts by a machine based theory. Can u give me a more details on costing of tye machine & software.

    • @ece4760
      @ece4760  3 ปีที่แล้ว

      We use DE1-Soc from Terasic
      www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=836
      Software is freely downloadable from intel.

  • @elijahmumbakela8145
    @elijahmumbakela8145 ปีที่แล้ว

    Can you please assist me with a link to a software I can download on my pc so I can be doing some portrait as well please 🙌🙌🥺

    • @ece4760
      @ece4760  ปีที่แล้ว

      did you read the report? There is a link to matlab code.

  • @3usakaka705
    @3usakaka705 3 ปีที่แล้ว

    For the love of god tell me how and where can i use the algorithm to turn the portraits into lines thank you❤️

    • @ece4760
      @ece4760  3 ปีที่แล้ว +1

      the algorithm is very easy to search for.

    • @Julia-fc4mp
      @Julia-fc4mp 3 ปีที่แล้ว

      If you ever get hold of the codes please pass them into me

    • @Julia-fc4mp
      @Julia-fc4mp 3 ปีที่แล้ว

      @@ece4760 can you give more details please.

    • @ece4760
      @ece4760  3 ปีที่แล้ว

      @@Julia-fc4mp Did you read the linked report?

    • @Julia-fc4mp
      @Julia-fc4mp 3 ปีที่แล้ว

      @@ece4760 no I didnt