Image Acquisition System Based on Arm and Android OS

Download Full-Text PDF Cite this Publication

Text Only Version

Image Acquisition System Based on Arm and Android OS

Image Acquisition System Based on Arm and Android OS

S.Mohanraj

  1. Tech – VLSI & Embedded System B.S.Abdur Rahman University

    Chennai, India mohanraj114@gmail.com

    Mr.J.Anand, Assistant Professor

    Department Of Electronics and Communication Engineering B.S.Abdur Rahman University

    Chennai, India anandj@bsauniv.ac.in

    Key wordsAndroid Operating System, ARM Cortex processor, AM3517 development kit, Image acquisition.

    1. INTRODUCTION

      Image acquisition in image processing can be broadly defined as the action of retrieving an image from some source, usually a hardware-based source, so it can be passed through whatever processes need to occur afterward.

      One of the forms of image acquisition in image processing is known as real-time image acquisition [1]. This usually involves retrieving images from a source that is automatically capturing images. because of the huge volume and high cost, in many outdoor situations PC are not suitable for image acquisition[2]. In this context, the design of a portable acquisition system to collect, store and display the desired images is required by the market.

      Image processing as android application will become counterpart in algorithm development as for any algorithm the first steps are contrast enhancement or color transformation. For the need of implementation of different image processing algorithms, the implanted operations are basic and starting steps to extract useful information according to application. For tasks related to images, Open CV is used. As android application development contains operations on images, Open CV library is required [7]. Open CV stands for Open Source Computer Vision. With this library, Android programmers are able to implement many digital image processing algorithms in Android phone platform.

    2. IMAGE ACQUSITION SYSTEM

      Embedded system consists of embedded hardware, embedded operating systems and embedded application software three parts, in which the embedded hardware are composed by the embedded processor and embedded hardware peripherals[3],as shown in figure1.

      Fig1 Image Acquisition System

      An image acquisition and processing system based on ARM is presented in this paper, it is based on ARM Cortex core AM3517 chip, USB interface mode is adopted and connect camera, storage devices exteriorly in Android operating system. The AM3517 is ideal for application that requires high graphics, including application that requires OpenVG and OpenGL acceleration; Android OS has libraries for real-time requirements of image processing. An Application is created on the android operating system for capturing, displaying and processing the image on the board.

      1. Hardware Design

        The choice processor is a high performance ARM AM3517 microprocessor, which has a rich instruction set and Programming flexibility. The device support high level operating system such as Linux, Windows CE and Android OS. The Android operating system is booted from either NAND flash or Sd card. The structure of board has 600mhz ARM Cortex-A8 core, 256MB DDR3 SDRAM, 512MB

        NAND flash, crystal display and others. It also has various interfaces Including USB, serial port, keyboard and Removable media MMC/SD card. The figure 2 shows the complete hardware design of the system.

        Fig2.Hardware Design

      2. Software Design of the System

      AppA

      Android is open source. Android has binder ipc, low memory killer, etc. which is used for mobile platform (Arm based platform).This feature increasing the performance of arm based device. Android also provide tools for creating apps. Also user uses thousands of application from android market apps. Android easily porting on any arm based devices with minimum changes. So android is better than the other Embedded OS. So, today Most of the people uses devices like mobiles, tablets which has android OS.

      Application

      Application Framework

      Libraries

      Android Runtime

      Linux Kernel

      Fig3.Android Architecture

      At the bottom of the layers is Linux – Linux 2.6 with approximately 115 patches [4-5]. This provides basic system functionality like process management, memory management, device management like camera, keypad, display etc. On top of Linux kernel there is a set of libraries Contains all the code that provides the main features of an Android OS like SQLite for data base storage, web kit for web browsing functionality.

      Android Runtime provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android. The Android runtime also provides a set of core libraries which enable Android application developers to write Android

      applications using standard Java programming language. The Application Framework layer provides many higher- level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their own applications. The Application layer shows the installed application on the OS like camera, browser.

    3. TRANSPLANTING ANDROID OS INTO AM3517

      1. Pre Requirements For Porting

        • First download the kernel image from www.kernel.org. This kernel image is generic for all platforms.

        • Download the android Source code from http://source.android.com/source/downloading.html

        • Extract Android source code.

        • Make kernel folder in android directory and extract kernel in kernel folder like <android directory>/kernel.

          Android source code

          • Get the Android source code:

            $ mkdir android

            $ cd android

            $repo init -u https://android.googlesource.com/platform/manifest

            \-b android-2.3.4_r1

            $ repo sync -c -j2

            repo sync -c will synchronize the files for all the source repositories listed in the manifest.

            Build environment

          • First, run source build/envsetup.sh.

          • This file contains many useful shell functions and aliases, such as root to go to the root directory of the Android source code or lunch, to select the build options.

          • Check your PATH environment variable: echo $PATH

          • The build/envsetup.sh is not modified in your PATH, modifications done during building.

            Compile the root file system

            Before running make, first check the number of CPU cores in your workstation, as seen by the operating system. cat /proc/cpuinfo

            If Linux sees 4 cores, you will get good performance by specifying the double number of parallel jobs make -j 8.

            Compile and Boot the Android Kernel

          • Configure the kernel for the target platform ARCH=arm make goldfish_defconfig

          • Then, configure the kernel using the tool of your choice to add a custom suffix to the kernel version and compile the kernel.

            ARCH=arm CROSS_COMPILE=arm-eabi- make -j 4

          • After few minutes, the kernel image is loaded in arch/arm/boot.

          • By running the lunch command, we can specify our product.

          $ source build/envsetup.sh

          $ lunch generic-eng

      2. Booting android from USB Pre-Requisites:

      • Need to have an SD/MMC/Micro-SD card with at least 2GB of size.

      • The script needs to be invoked from ubuntu Linux machine 8.04 or above.

        /li>

      • User needs to have sudo privileges.

        The mkmmc-android.sh partitions the MMC/SD card into three partitions namely boot, rootfs and data. The script will then put the boot images on boot partition and extracts the android rootfs to rootfs partition. Finally the script will copy the Media clips to the data partition an START_HERE folder to boot partition.

      • Find the disk partition of SD card using the command,

        tail -n50 var/log/syslog

      • Using command prompt, move to the Android image location.

      • Make the image script into executable format sudo chmod a+x ./mkmmc-android.sh

      • Make the drive bootable, in order to boot from SD card.

        Fig.4 Experimental Setup

        Figure 4 shows the screenshot of Android OS booted on AM3517 development kit. Figure 4 shows the screenshot of Android 2.3.4 having API level 14. On this display the application named Image Process is installed. After opening this application it will show options as shown in figure 6&7.

        sudo ./mkmmc-android.sh /dev/sdb

      • The above steps take around 20 40 minutes to make the drive Bootable

    4. RESULTS AND DISCUSSIONS

      Hence, these results show that this system replaces the traditional pc based system for image processing by embedded image processing system with Android operating system. As android application development contains operations on images, Open CV library is required. Open CV stands for Open Source Computer Vision. With this library, Android programmers are able to implement many digital image processing algorithms in Android phone platform.

      Fig.5 Menu screen of OS showing Application named Image Process.

      The application frontend is created by Eclipse IDE and Showed on the emulator Screen. The gingerbread 2.3.4 Android OS is loaded with API level10.Finally the application is installed on the development kit.

      Fig.6 List of options in the main menu.

    5. CONCLUSION

In this paper image acquisition system based on ARM and Android was described. In order to realize the functions of image acquisition, display and data storage, Android operating system was transplanted, image is accessed through usb interface. The application is created for processing the image and also for displaying and storing the image on the board. So the portable system achieves the requirements of safety monitoring and protecting system. The system combines low-cost, high performance of ARM processor, and greatly reducing the cost, it is suitable for security monitoring effectively and has broad market prospects.

REFERENCES

  1. Yong-Qing Wang, Bo He, "image acquisition of USB camera based on ARM920T and Linux," Microcomputer Information, vol.23, pp.176-177, Jan.2007.

  2. Wei Huang, Xiao-li Wang, and Dian-Hong Wang, "Design of image acquisition system based on ARM and GPRS," Mechanical and Electronic, vol.3, pp.53-56, March. 2009.

  3. Hui Xiaowei, Shen Qinglei and Miao Changyun, Acquisition Board Design of High-speed Image Data Based on ARM and FPGA, International Conference On Computer Design And Applications, vol.1, pp 374-376,2010.

  4. Wang Jing, He Huiming, ARM-based Embedded Video Monitoring System Research, IEEE conference, pp 677-679,2010.

  5. He Huimin, Research and Implementation of Embedded Image Acquisition System, International Conference on Advanced Computer Theory and Engineering, vol.3, pp 605-608, 2010.

  6. Yong-linLIU,YingLIANG Design and Implementation of Image Acquisition System Based on ARM and Linux International Conference on Electronics and Optoelectronics,vol.3,pp 49-52,2011.

  7. Li-hua Song, Ke-Gao, "Implementation of USB camera driver baesd on embeded Linux," Computer Engineering, vol. 36, May. 2010, pp.282-284.

  8. EE368 Digital Image Processing, Tutorial On Using Android for Image Processing Projects, Spring 2012, Windows Version.

  9. ZhanJun Sun, XiaoWu Luo, Shengen Luo. USB Device Driver Development Based on the Embedded Linux System, ICEMI,2005, (1):668.

  10. J.R.Parker. Algorithms for Image Processing and Computer Vision, John Wiley and Sons, 1997.

  11. Mehmet Sezgin and Bulent Sankur, Survey Over Image Thresholding Techniques and Quantitative Performance Evolution.,Journal of Electronic Imaging 13(1), 146 165 (January 2004).

  12. Wrox Programmer to Programmer,Beginning Android Application Development.

  13. L.K.Huang and M.J.Wang. Image Thresholding by Minimizing The Measures of Fuzziness, Pattern Recognition, vol 28, p. 41- 51,1995

  14. O Reillys Learning Open CV by Gary Bradski and Adrian Kaehler.

  15. Wrox Programmer to Programmer, Beginning Android Application Development.

Fig.7 Image processing options

Filter analysis has various filter for image enhancement, histogram analysis is also performed.

Leave a Reply

Your email address will not be published. Required fields are marked *