Download Full-Text PDF Cite this Publication
- Open Access
- Total Downloads : 11
- Authors : S.Mohanraj, Mr.J.Anand
- Paper ID : IJERTCONV2IS05036
- Volume & Issue : NCICCT – 2014 (Volume 2 – Issue 05)
- Published (First Online): 30-07-2018
- ISSN (Online) : 2278-0181
- Publisher Name : IJERT
- License: This work is licensed under a Creative Commons Attribution 4.0 International License
Image Acquisition System Based on Arm and Android OS
Image Acquisition System Based on Arm and Android OS
Tech – VLSI & Embedded System B.S.Abdur Rahman University
Chennai, India firstname.lastname@example.org
Mr.J.Anand, Assistant Professor
Department Of Electronics and Communication Engineering B.S.Abdur Rahman University
Chennai, India email@example.com
Key wordsAndroid Operating System, ARM Cortex processor, AM3517 development kit, Image acquisition.
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 . 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. 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 . 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.
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,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.
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.
Software Design of the System
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.
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.
TRANSPLANTING ANDROID OS INTO AM3517
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
$ repo sync -c -j2
repo sync -c will synchronize the files for all the source repositories listed in the manifest.
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
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.
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
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.
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.
Yong-Qing Wang, Bo He, "image acquisition of USB camera based on ARM920T and Linux," Microcomputer Information, vol.23, pp.176-177, Jan.2007.
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.
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.
Wang Jing, He Huiming, ARM-based Embedded Video Monitoring System Research, IEEE conference, pp 677-679,2010.
He Huimin, Research and Implementation of Embedded Image Acquisition System, International Conference on Advanced Computer Theory and Engineering, vol.3, pp 605-608, 2010.
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.
Li-hua Song, Ke-Gao, "Implementation of USB camera driver baesd on embeded Linux," Computer Engineering, vol. 36, May. 2010, pp.282-284.
EE368 Digital Image Processing, Tutorial On Using Android for Image Processing Projects, Spring 2012, Windows Version.
ZhanJun Sun, XiaoWu Luo, Shengen Luo. USB Device Driver Development Based on the Embedded Linux System, ICEMI,2005, (1):668.
J.R.Parker. Algorithms for Image Processing and Computer Vision, John Wiley and Sons, 1997.
Mehmet Sezgin and Bulent Sankur, Survey Over Image Thresholding Techniques and Quantitative Performance Evolution.,Journal of Electronic Imaging 13(1), 146 165 (January 2004).
Wrox Programmer to Programmer,Beginning Android Application Development.
L.K.Huang and M.J.Wang. Image Thresholding by Minimizing The Measures of Fuzziness, Pattern Recognition, vol 28, p. 41- 51,1995
O Reillys Learning Open CV by Gary Bradski and Adrian Kaehler.
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.