Computer Vision Based Barcode Reader For Halal JAKIM Verification System.

i

COMPUTER VISION BASED BARCODE READER FOR HALAL JAKIM
VERIFICATION SYSTEM

MOHD NIZAR BIN ZAINUN

This Report Is Submitted In Partial Fulfillment of Requirements For
The Bachelor Degree in Electronic Engineering (Computer Engineering)

Fakulti Kejuruteraan Elektronik dan Kejuruteraan Komputer
Universiti Teknikal Malaysia Melaka

June 2014

ii

iii

“Saya akui laporan ini adalah hasil kerja saya sendiri kecuali ringkasan dan petikan yang
tiap-tiap satunya telah saya jelaskan sumbernya.”


Tandatangan

: ………………………………………..

Nama Penulis

: MOHD NIZAR BIN ZAINUN

Tarikh

: 6 JUNE 2014

iv

“Saya/kami akui bahawa saya telah membaca karya ini pada pandangan saya/kami karya
ini adalah memadai dari skop dan kualiti untuk tujuan penganugerahan Ijazah Sarjana
Muda Kejuruteraan Elektronik (Elektronik Komputer).”

Tandatangan


: ……………………………………………...

Nama Penyelia

: NORHASHIMAH BINTI MOHD SAAD

Tarikh

: 6 JUNE 2014

v

To my beloved parents Zainun Barahim and Maimunah Chin, my family and all my
fellow friends.

vi

ACKNOWLEDGEMENT


Alhamdullillah, firstl I am grateful to Allah S.W.T because with His blessing, at
last I have finished my Projek Sarjana Muda 2 (PSM 2) together with my thesis without
any problem. To my beloved parent, Zainun Bin Barahim and Maimunah Binti Chin
and the entire of my family members, thank you very much for all of their moral support
during the entire of my learning journey in UTeM.

To my supervisor, Norhashimah bte Mohd Saad for her guidance, advices and
her ideas during my PSM session thus making me improve my knowledge, thank you
very much. To all of my friends that helping me out together with their moral
support. Finally, to all individuals who involved in this PSM 2 which I have not
mentions their name. Without all of you, this report will never finished succesfully.

Thank you.

vii

ABSTRACT

At present, many people are looking for applications that can facilitate and
launch their daily life. The industry technology began to pay more attention to barcode

application for domestic users need. This thesis describes an android application for
Muslims to identify the Halal Status (prepared in accordance to Islamic law) of the
product. The barcode images is need for preprocessing in order to extract the barcode
into the database and also barcode recognition process. A Computer Vision Based
Barcode Reader For Halal Jakim Verification System is a low cost barcode reader,
which is develop by using Android developer. Barcode are a class of the simplest printed
patterns that can be reliably recognize by a computer vision or an any operating system.
These codes consist of sequence of parallel, light and dark stripes printed on papers.
This is a real time application that requires high processing time. This is the main reason
for using the language JAVA for the development this project.The objective is supported
by several sub-objectives, namely to gain knowledge of Java Eclipse, Android versions
and able the development of an algorithm for Smartphone on Android. This project
consists of analysis, scematic design, system development and testing. The purpose is to
determine the basic flow and system testing of the barcode scanner. The halal jakim
database is also develop in this system. In conclusion, a new system for Halal status
checking was develop for new android application.

viii

ABSTRAK


Pada masa kini, ramai orang yang mencari aplikasi yang dapat memudahkan dan
melancarkan kehidupan harian mereka. Teknologi industri mula menumpukan aplikasi
barcode. Tesis ini menerangkan applikasi android untuk umat Islam mengenalpasti
status Halal (sesuai dengan undang-undang Islam) sesuatu produk. Gambar kod bar
digunakan untuk teknik preprocessing untuk mengekstrak kod bar tersebut ke dalam
pengkalan data dan proses pengecaman. Sistem Visual Komputer Berdasarkan Pembaca
kod bar untuk Pengesahan Status Halal Jakim merupakan sistem kos rendah yang dibina
menggunakan pembina android. Kod bar adalah bahan yang paling mudah dicetak oleh
komputer atau mana-mana sistem operasi. Kod-kod ini terdiri dari rangkaian selari,
garis-garis terang dan gelap dicetak di atas kertas. Ini adalah aplikasi masa nyata dan
memerlukan masa proses yang tinggi. Sistem ini menggunakan perisian JAVA dalam
melaksanakan projek ini. Objektif disokong oleh beberapa sub-objektif, iaitu menimba
ilmu mengenai Java Eclips,versi android dan algorithma untuk Android. Projek ini
terdiri daripada analisis, reka bentuk skematik, pembangunan system dan ujian.
Tujuannya adalah untuk menentukan aliran dan sistem ujian asas pengimbas kod bar.
Pengkalan data halal JAKIM juga dibina di dalam sistem. Kesimpulannya, system baru
untuk semakan status halal telah dilaksanakan.

ix

CONTENTS

CONTENT TITLE

I

PAGES

PROJECT TITLE

i

DECLARATION

ii

DEDICATION

v


ACKNOWLEDGEMENT

vi

ABSTRACT

vii

ABSTRAK

viii

CONTENTS

ix

LIST OF TABLE

xiii


LIST OF FIGURES

xiv

LIST OF ABBREVIATION

xvi

INTRODUCTION

1

1.1

Project Background

1

1.2


Problem Statement

2

1.3

Objective

3

1.4

Scope of Project

3

1.5

Methodology of Project


3

1.6

Thesis Organization

4

x
II

III

LITERATURE REVIEW

5

2.1

Introduction


5

2.2

Catogories of Barcodes

7

2.2.1

One Dimensional Barcodes

7

2.2.2

Two Dimensional Barcodes

13

2.3

Available System For Halal Checking in Malaysia

14

2.4

Platform For Barcode Scanner

15

2.5

JAVA Language

16

2.6

JAVA Development Platform

17

METHODOLOGY

18

3.1

Overview

18

3.2

Analysis

19

3.2.1

Research and Side Visit

19

3.2.2

Observation

20

3.2.3

View Existing Documentation

20

3.3

3.4

Scematic Design

20

3.3.1

Android Manifest.xml

21

3.3.2

Activity

22

3.3.3

Intent

23

3.3.4

SQLite Database

24

System Development

25

3.4.1

Development Tools

26

3.4.1.1 Adope Flash Builder 4.6

26

3.4.1.2 Eclipse IDE for Java Developers

27

3.4.1.3 Install ADT Plug-in and Android SDK

28

3.4.1.4 Manual Installation of the Android SDK

30

Main Screen Activity

32

3.4.2

xi
3.4.3

Scan Barcode Activity

33

3.4.4

Halal Status Activity

35

3.4.4.1 Add Detail Database

35

3.4.4.2 Database Handler

35

3.4.4.3 Read Database

36

Link to Web Pages Activity

36

3.4.5
3.5

IV

System Testing

37

3.5.1

Testing Approach

38

3.5.1.1 Functional Test

38

3.5.1.2 Unit Testing

38

3.5.1.3 Integration Testing

38

RESULT AND DISCUSSION

39

4.1

Overview

39

4.1.1

Use Case Diagram

40

4.1.2

Sequence Diagram

41

4.2

4.3

Graphical User Interface (GUI)

42

4.2.1 Function Button

42

4.2.1.1 Scan Barcode Button

43

4.2.1.2 Halal Status Button

44

4.2.1.3 Hyperlink Button

45

Analysis Result

46

4.3.1

Analysis Scanner To Different Condition

46

4.3.2

Performance Analysis

50

xii
V

CONCLUSION AND RECOMMENDATION

51

5.1

Overview

51

5.2

Recommendation

53

5.2.1

Develop with online database storage

53

5.2.2

Compatible with all Android version

53

5.2.3

Compatible with other OS

53

REFERENCES

54

xiii

LIST OF TABLE

NO

TITLE

PAGE

4.1

Comparison barcode scanned (full images)

46

4.2

Comparison barcode scanned (upper part masked)

47

4.3

Comparison barcode scanned (bottom part masked)

48

4.4

Over Light Condition

49

xiv

LIST OF FIGURES

NO

TITLE

PAGE

2.1

The European Article Numbering (EAN)-13 barcode

6

2.2

Code 39

8

2.3

Code 93

8

2.4

Code 128

9

2.5

EAN 13

9

2.6

EAN 14

10

2.7

Codabar

11

2.8

UPC (Universal Product Code)

11

2.9

Application in Google Store

14

2.10

Barcode scanner

15

2.11

Barcode pen-scanners

15

3.1

Waterfall model used for this project

19

3.2

Manifest file

21

3.3

Method which loads the view of the xml

22

3.4

Intent Object

23

3.5

Database Management Systems

24

3.6

SQLite database code

25

3.7

Adope Flash Builder 4.6

26

3.8

Eclipse Java used for create this project

27

3.9

Configure for SDK

28

3.10

Contribute usage statistics

29

xv
3.11

Install packages

29

3.12

Android Preferences

30

3.13

SDK Manager to Install Packages

31

3.14

SDK manager download

31

3.15

Main Screen Applications

32

3.16

Code for Each Button

33

3.17

Code for Connect class of Intengrator.java

34

3.18

Code for Connect IntenResult.java

34

3.19

Add Detail Database

35

3.20

Internet Manifest Code

36

3.21

Code in MainActivity.java

36

4.1

Perspective when application running

40

4.2

Consecutive action during usual application run

41

4.3

Main Screen Interface

42

4.4

Function of Scan Button

43

4.5

Function for Halal Status Button

44

4.7

Function for www.halal.gov.my Button

45

xvi

LIST OF ABBREVIATION

JAKIM

-

Jabatan Kemajuan Islam Malaysia

1D

-

One dimensional

2D

-

Two Dimension

SQLite

-

Structured Query Language

EAN

-

European Article Numbering

UPC

-

Universal Product Code

JVM

-

Java Virtual Machine

FDS

-

Flex Data Services

AIR

-

Adobe Integrated Runtime

API

-

Application Programming Interface

SDK

-

Software Development Kit

ADT

-

Android Developer Tools

GUI

-

Graphical User Interface

IDE

-

Integrated Development Environment

OS

-

Operation System

UI

-

User Interface

CPU

-

Central Processing Unit

PIN

-

Personal Identification Number

PC

-

Personal Computer

IDE

-

Integrated Development Environment

JDK

-

Java Development Kit

1

CHAPTER 1

INTRODUCTION

1.1

Project Background

Nowadays, almost all products have its unique barcode numbers. It represents
loads of information about a product. Many people familiar with halal food issue. Other
popular applications of bar code include the logistic industry and domestic consumer
food monitoring. The android application has the potential of changing the consumer
business landscape in the near future. Also it has opened up exciting new channels for
any type of products identification using mobile technology. Meanwhile, Halal
consumer products have become a crucial concern that affects Malaysian's Muslims as
well as around 1 .5 billion Muslim throughout the world. The word Halal is an Arabic
term meaning "permissible". It is important to understand that Halal is a unique
comprehensive Islamic concept encompasses the matters of food and drink, and all other

2

matters of daily life. In Malaysia, Jabatan Kemajuan Islam Malaysia (JAKIM) is
responsible for Halal certification. It covers consumer products such as foods, drinks,
cosmetics, etc. Each of these must pass the JAKIM requirements for Halal Certification.
JAKIM department was provided SMS (Short Message System) to user know about the
food status only send the food barcode and get the response in real time.

For this application from this project (Computer Vision Based Barcode Reader
for Halal Jakim Verification System), user can know the food status only scan the
barcode image to capture by camera .To make food reorganization processes become
more effective, this proposed system is developed to make more systematic a
consistence. It also keeps all the data about the food on the database.

By developing this system, it can upgrade to replace the current system for
example it is provide with database to store all the information about the food. The
barcode will be applied for this system and the barcode which capture by smart phones
camera to give the food status .With the barcode on food, the identification of it will be
more efficient and systematic.
1.2

Problem Statement

A lot of the existing products in the market use Halal Malaysia label without
getting the certification from JAKIM. Thus, the halal status cannot be trusted just by
looking at the label of product. In addition to this problem, some products still use the
Halal Malaysia label even though the certification has expired. JAKIM has provided ehalal using web-portal and SMS to ascertain the halal status. However, both systems
have limitations such as the need of internet access for the web-portal, consumers must
remember the SMS number for verifying via SMS using mobile phone. Both systems are
costly and need to key-in the product barcode manually for authentication. This system
helping consumers to overcome these limitations by verifying halal status verification
easily.

3

1.3

Objectives

The objective of this project:
1. To design barcode recognition system using image processing algorithms
2. To analyze the recognition rate of the image processing algorithm.
3. To construct Halal system verification system using the barcode images
captured.

1.4

Scope of Project

The scope of the project is as following:
1. Type of barcode use is 1D barcode.
2. This project concentrates on the process of detection barcode and calls the data.
3. Eclipse software will be used to develop the algorithms barcode scanner and
application.
4. SQLite (Structured Query Language) will be used to manage the details data.

1.5

Methodology of Project



Analysis some related project, study and analysis the existing project.



Design specification of detail framework that chooses in Android.



System development of project.



System testing the performance.

4

1.6

Thesis Organization
This report contains five chapters. Chapter one describe about introduction of

Computer Vision Based Barcode Reader For Halal Jakim Verification System, problem
statement of the project, objective of the project, the purpose of the project that describe
the reason for developing this project, scope of the project and organization of the
report.

Chapter two is literature review about the barcode system available, types of
barcode, and Halal Jakim system available. This chapter review on previous research
about the topic related to the project. Various methods and approaches that related to the
project is discussed and reviewed.

Chapter three explains the theory of this project. This project theory includes
Java Language, Android Architecture, SQLite and algorithms. This chapter will review
the basic theory about application software, language, and management software.

Chapter four explains the methodology of the project. This project will used Java
Android algorithms techniques to read the barcode and use the SQLite database
management system to store all data. The flow chart of the project and the algorithms
use is explained in this chapter.

Chapter five is about results of the Java Android simulation and discussion
regarding the results. Analysis about scan the barcode in different condition will be
discussed. Lastly, chapter six will conclude the project findings and recommendation for
the further study.

5

CHAPTER 2

LITERATURE REVIEW

2.1

Introduction

A barcode is an optical machine-readable representation of data relating to the
object to which it is attached. Originally barcode are systematically represented data by
varying the widths and spacing’s of parallel lines, and may be referred as linear or onedimensional (1D). Later, they evolved into rectangles, dots, hexagons and other
geometric patterns in two dimensions (2D). Although the 2D systems use variety of
symbols, they are generally referred to as barcodes as well. Barcodes are “printed
horizontal strips of vertical bars used for identifying specific items”[1].Barcodes
originally were scanned by special optical scanners called barcode readers. Later,
scanners and interpretive software became available on devices including desktop
printers and smart phones. Many mobile applications that incorporate barcode reader
have been developed in various areas such as blood bank [2], product recommendations
[3], and logistic [4].

6

Fig
igure 2.1 : European Article Numbering (EAN
N)-13

The European
an Article Numbering (EAN)-13 barcode is used
u
internationally for
tagging retail goods [5] (figure 2.1). The usage of barcode tec
technology has provided
enormous benefits to consumer and business. As a result, the process of capturing
product data (price,
e, etc.) is faster and more accurate. Mistake
kes are minimized and
managing inventory hhas been much easier.
EAN-13 barco
rcode has 13 numeric characters, also known
n aas digits. The first two
or three characters are the country code. Depending on the length
th of the country code; it
followed by either nine
nin or ten characters for manufacturer codee and
a product code. The
13t character of the EAN-13
E
barcode is the checksum digit [6].

7

2.2

Categories of Barcode

Barcodes have now become an essential part of almost company. It is rarely to
find a product without a barcode tag. Different types of barcodes are used for different
purposes in business sectors. Typical usage of barcodes include tracking sale and
purchase of large number of items in an inventory, pasted on sports tickets which allow
one to enter a sports arena and often placed on gift tokens that when decoded tells
which gift that token corresponds.

2.2.1 One Dimensional Barcodes

One dimensional or linear barcodes are commonly referred as first generation
barcodes. A variety of 2D barcode shave been designed that are much better suited for
camera acquisition[7],[8], but for the next several years 1D barcode will remain the
dominant type of label for most packaged goods. These barcodes consist of vertical lines
at specific gaps resulting in a particular pattern. There has been a variety of research
done on algorithms for reading 1D barcodes, which we survey, briefly here. Most past
work has dealt with scan line data (typically acquired by a laser scanner), using
waveform analysis, debluring and other signal processing techniques to detect edges
[9],[10],[11]. Hardware scanners are used to scan these patterns and decode the
information stored in those particular patterns. These barcodes are also commonly
called discrete, one dimensional or UPC barcodes. Commonly the 1D barcodes are:

8

Code 39

Figure 2.2: Code 39

Code 39 (also
lso known as 3 of 9) is by far the most commo
mon barcode symbology
outside the retail are
rea and is read by most scanners, although it is not as compact as
Code 93 or Code 128
28 (Figure 2.2). The normal Code 39 schemee encodes both numbers
and upper case letters
ers, and was the first alphanumeric symbology.
y. Code 39 is a discrete,
self-checking symbol
ology - so the gap between ciphers may be larger
la
than a unit space.
Some users mistake th
that inter-cipher gap for a space and becomee concerned
c
because it is
not the same size as in another barcode representing the same char
aracters.

Code 93

Figure 2.3: Code 93

Code 93 (Fig
igure 2.3) is a variable length, continuouss ssymbology using four
element widths with
th each character consisting of three bars andd three spaces. Code 93
was designed to comp
mplement Code 39 and is a more compact cod
ode than the latter. Code
93 is not a self-che
hecking symbology.Code 93 symbols include
de two Mod 47 check
characters.Special co
codes are used to allow full ASCII characte
ters to be incorporated,