TY - DATA T1 - Efficient Implementations of Machine Vision Algorithms using a Dynamically Typed Programming Language PY - 2012/11/08 AU - Jan Wedekind UR - https://figshare.com/articles/thesis/Efficient_Implementations_of_Machine_Vision_Algorithms_using_a_Dynamically_Typed_Programming_Language/97244 DO - 10.6084/m9.figshare.97244.v1 L4 - https://ndownloader.figshare.com/files/143003 KW - computer vision KW - software engineering KW - Applied Computer Science N2 - Current machine vision systems (or at least their performance critical parts) are predo-minantly implemented using statically typed programming languages such as C, C++, orJava. Statically typed languages however are unsuitable for development and maintenanceof large scale systems.When choosing a programming language, dynamically typed languages are usuallynot considered due to their lack of support for high-performance array operations. Thisthesis presents efficient implementations of machine vision algorithms with the (dynam-ically typed) Ruby programming language. The Ruby programming language was used,because it has the best support for meta-programming among the currently popular pro-gramming languages. Although the Ruby programming language was used, the approachpresented in this thesis could be applied to any programming language which has equalor stronger support for meta-programming (e.g. Racket (former PLT Scheme)).A Ruby library for performing I/O and array operations was developed as part of thisthesis. It is demonstrated how the library facilitates concise implementations of machinevision algorithms commonly used in industrial automation. That is, this thesis is abouta different way of implementing machine vision systems. The work could be applied toprototype and in some cases implement machine vision systems in industrial automationand robotics.The development of real-time machine vision software is facilitated as follows1. A just-in-time compiler is used to achieve real-time performance. It is demonstratedthat the Ruby syntax is sufficient to integrate the just-in-time compiler transparently.2. Various I/O devices are integrated for seamless acquisition, display, and storage ofvideo and audio data.In combination these two developments preserve the expressiveness of the Ruby program-ming language while providing good run-time performance of the resulting implementa-tion.To validate this approach, the performance of different operations is compared withthe performance of equivalent C/C++ programs. ER -