You are on page 1of 42

i

AUTOMATION OF BOTTLING USING IMAGE PROCESSING


The purpose of this project is to focus on the automation of quality control environment of a manufacturing process. The end product is an electrical and mechanical solution which would help realize stringent quality control measures where authentication and management of quality is achieved through imaging techniques. The product is basically aimed at providing a two course action; identification of the defected item and its disposal in a proper manner

ii

Acknowledgments
We bow our heads in most humble thanks to Almighty Allah, the most gracious, the most merciful for granting us the wisdom and strength to complete this work. It is our great pleasure to express our most sincere and deep gratitude to our respected supervisor, Sir Muhammad Habib for his unabated guidance, constant help and encouragement throughout the course of this project. We also wish to express our gratitude and admiration to all the faculty members of air University for their highly useful suggestions and co-operation. We shall be failing in our duty if we do not extend our thanks to our friends and colleagues for their help and encouragement whenever needed. Last but not the least we would like to thank our families for their moral support, love and understanding that enabled us to complete this work.

iii

Table of Contents
Acknowledgments ................................................................................................................... ii Chapter 1: INTRODUCTION ................................................................................................. 1 1.1. Automation.............................................................................................................. 1

1.1.1. Advantages and disadvantages of automation....................................................... 2 1.2 Bottling.......................................................................................................................... 3 Chapter 2: DESIGN PROCEDURE AND .............................................................................. 5 DETAILS ................................................................................................................................ 5 2.1 Hardware ....................................................................................................................... 5 2.1.1 Mechanical hardware ............................................................................................. 5 2.1.1.1 Conveyor belt ...................................................................................................... 5 2.1.1.2 Robotic arm ......................................................................................................... 6 2.1.2 Electrical hardware................................................................................................. 7 2.1.2.1 Infrared Sensor .................................................................................................... 7 2.1.2.2 Dc power supply: ................................................................................................ 9 2.1.2.3 Motor drives ...................................................................................................... 12 Unidirectional drive:............................................................................................................. 12 Bidirectional drive ................................................................................................................ 14 Chapter 3: IMAGE PROCESSING IN MATLAB ............................................................... 17 3. 1 Image acquisition ....................................................................................................... 17 3.2 Separation of RGB components: ................................................................................. 17 3.3 Size of image: .............................................................................................................. 18 3.4 Image Information....................................................................................................... 18 3.5 Image Conversion ....................................................................................................... 19 3.5.1 RGB to Gray Scale ............................................................................................... 19 3.5.2 Gray Scale to Binary Image ................................................................................. 19 3.6 Color Segmentation..................................................................................................... 21 3.7 Morphological Operations .......................................................................................... 22 3.7.1 Structuring Elements ............................................................................................ 22 3.7.2 Closing and opening of image .............................................................................. 24 3.9 Edge Detection ............................................................................................................ 26 3.10 Algorithm .................................................................................................................. 28

iv

Chapter 4: RESULTS AND DISCUSSION.......................................................................... 29 4.1 Data Set ....................................................................................................................... 29 4.2 Limitations .................................................................................................................. 30 CHAPTER 5 : CONCLUSION & FUTURE ENHANCEMENT ......................................... 31 5.1 Conclusion .................................................................................................................. 31 5.2 Future Enhancements .................................................................................................. 31

List of Figures
Figure 2.1 Conveyor Belt Figure 2.2 Robotic Arm Figure 2.3 Infrared Circuit Figure 2.4 5V DC Supply Figure 2.5 12V DC Supply Figure 2.6 15V DC Supply Figure 2.7 Unidirectional Motor Derive Figure 2.8 Bidirectional Motor derive Figure 3.1 RGB components Figure 3.2 Conversion of Gray Scale Image Figure 3.3 RGB to Binary Figure 3.4.1 Color Segmentation of led and label Figure 3.4.2 Color Segmentation of Solution Figure 3.5 Closing and Opening Figure 3.6 Edge Detection

Chapter 1: INTRODUCTION
In life, there is always a room for betterment. Everything that has been made by human keeps getting improved and this is a never ending process. There can be many examples regarding it, like cars, planes, etc. During the last few decades the term quality has become one of the most stressed words in the field of production. Companies today are under constant pressure to become more efficient in their manufacturing processes, to obtain higher yields, have faster throughput, and increasing productivity while keeping wastage and costs down. In addition to efficiency, accuracy is imperative as companies race to develop and maintain procedural standards to meet ISO 9000 compliance and position for themselves for corporate survival in the twenty-first century. Every manufacturer today wants to continually improve the quality of the products he produces. Few of the many important factors that affect quality are contamination; deviation of the process from its validated state, end product impurity etc. Contamination can be caused by air, water and especially human intervention. Manufacturing a product is a procedure. Quality control is a procedure to monitor a procedure with the goal of making it more efficient. Today the need is to explore ways to make the quality control procedure itself more efficient by automating the quality control process.

1.1. Automation

To get started with this project, one first needs to understand the word automation. According to Wikipedia; automation is: the use of control systems (such as numerical control, programmable logic control, and other industrial control systems), in concert with other applications of information technology (such as computer-aided technologies), to control indus-

trial machinery and processes, reducing the need for human intervention.[1] In the scope of industrialization, automation is a step beyond mechanization. Whereas mechanization provided human operators with machinery to assist them with the physical requirements of work. Automation greatly reduces the need for human sensory and mental requirements as well. Processes and systems can also be automated.[2] Currently, for manufacturing companies, the purpose of automation has shifted from increasing productivity and reducing costs, to broader issues, such as increasing quality and flexibility in the manufacturing process.

1.1.1. Advantages and disadvantages of automation


Advantages of automation include the following: Avoids bulk wastages Overall waste reduction Increased hygiene due to lesser human intervention Increased productivity Replacing human operators in tedious tasks Replacing humans in tasks that need to be performed in dangerous environments Making task that are beyond the human capabilities manageable Speedier accomplishment of tasks Saved cost of training human operators Reduction of labor costs On the other hand automation has few disadvantages: Technology limits. Nowadays technology is not able to atomize all the desired tasks. [2] Initial costs are relative high. The automation of a new product requires a huge initial investment in comparison with the unit cost of the product.[2]

1.2 Bottling
Bottling as the name suggest, refers to the process in which bottles are filled labeled and packed in the cartons, boxes or crates etc. The term bottling is very well known in all the bottles related industries and the bottling process is one of the most significant issues in all such industries. All the major drinks production companies and factories like coke, Pepsi, nestle etc. give great importance to this process for better quality, production and business. To achieve these objectives most of the companies up till now have been affording man labor at very high costs, but with the advancement of the science and the technology all the major industries have been longing to replace this high cost man labor with a fast, economical and efficient machine work. Automation of bottling is the best solution to meet all the requirements of bottling industries in todays advance world. Since the last decade automated machines and robots have served such industries a lot to achieve their goals.

1.3 Project overview


This project was designed keeping this need for automation in mind. The end product of this project is an electrical and mechanical solution which would help realize stringent quality control measures where authentication and management of quality is achieved through imaging techniques. The product is basically aimed at providing a two course action; identification of the defected item and its disposal in a proper manner. Although such a system can be deployed in any industry but this system is designed specifically for the beverage and bottling industry. The following aspects of the bottles need to be checked in any bottling environment: Level of the product inside the bottle Correct placement of label

Placement of the lid

The solution would not only identify the defected good by checking the above aspects but also remove it from the production line.

Chapter 2: DESIGN PROCEDURE AND DETAILS


2.1 Hardware
Hardware has been divided into two major parts mechanical hardware and the electrical hardware.

2.1.1 Mechanical hardware


ABUIP contains two major mechanical hardware conveyor belt and robotic arm. Conveyor belt works as the production line of an industry and the robotic arm removes the defected items from the production line.

2.1.1.1 Conveyor belt


A Conveyor belt is a mechanical hardware that can carry objects from one position to another. The Conveyor belts may be of different dimensions and may have a variable speed depending upon the requirements of the project it is being used for. A conveyor belt may contain two or even more pulleys, which are normally driven by the single driver pulley. All the pulleys other than that of driver pulley are called idler pulleys. The conveyor belt contains two pulleys, a driver pulley driven by a 24V simple DC motor and an idler pulley. The length of the belt is 90 cm and width is 15 cm. the DC motor is connected with the driver pulley by the means of two gears. When the motor is energized the driver pulley intern drives the idler pulley and the belt, carrying the bottles. The motion of the motor is unidirectional as only one sided movement of the belt is required at the production line site. The conveyor belt measurements and the motor power are enough to carry about six bottles at a time. Figure 2.1 shows the real conveyor belt being used by ABUIP.

Figure 2.1 conveyor belt

2.1.1.2 Robotic arm


Robotic arm is a device generally used in industries for different processes .in design it is similar as a human arm with similar three motions the yaw motion (shoulder) pitch (elbow) and the clipper (hand) and hence named as robotic arm. All the arm motions are controlled by motors of different specifications depending upon the design and the requirements. Basic use of a robotic arm is to pick and place objects.

The robotic arm used in our project is of the simplest form having only one motion i.e. the yaw motion. The purpose here is to eliminate the defected bottles from the production line. Whenever the image processing tools finds any defected item which is not meeting any of the standards then the robotic arm is held responsible to drop the bottle of the production line. Our robotic arm is having 90 degree yaw motion which enough to meet our requirements. Two limit switches are placed at both the extremes limits of the motion which provides signal when any of the physical limits is reached. Figure 2.2 is the real picture of the robotic arm being used in the project.

Figure 2.2 Robotic Arm

2.1.2 Electrical hardware

2.1.2.1 Infrared Sensor

Infrared sensors pair consist of a transmitter and a receiver, which operates with in the infrared band. Within the line of sight the transmitter generates infrared radiations and the receiver is responsible for detection of the signals. Infrared sensors may be used for the detection of any obstacles or objects that come across the line of sight of the transmitter and the receiver. The object across the line of sight blocks the radiation path and the transition at the receiver detects a path blockage.

The transmitter and the receiver are placed across the width of the conveyor belt. The output at the receiver end of the sensor remains constant as long as the line of sight connection is being established. Whenever the bottle comes in between the line of sight (i.e. the frame of the camera) the transition in the voltage at the receiver indicates the microcontroller that the bottle is in the frame. Microcontroller after receiving the signal from the sensor stops the motion of the belt and signals the camera for taking an image.

Circuitry:

Figure 2.3 Infrared Circuit

Figure 2.3 shows the circuit the infrared sensors used in the project. The two legs are placed across the width of the conveyor belt. The one with the transistor is

the transmitter and the other is the receiver. When the signal is applied at the base of the transistor Q1(2N22) it gets on and the current begins to flow from the source to the sink making the led(D1) to transmit infrared radiations, the transmitted radiations are continuously received by the receiver diode(D2). As long as the radiations are being received by the receiver the voltage at the output point remains constant. Whenever the path is interrupted by any obstacle the receiver detects the blockage and transition occurs at the output point. This transition is sensed by the microcontroller, and it is confirmed that the bottle is exactly in the frame of the camera.

2.1.2.2 Dc power supply:


All the electronic equipment for example motors and their driver circuits are to be operated with low DC voltages, for the reason we have designed our own DC power supplies exactly matching our requirements. The three different voltage requirements for ABUIP were 5V DC, 12V DC and 15V DC to bias microcontroller interface circuit, motor derives limit switches, motors etc. so to make the ABUIP self-sufficient all the voltage supplies of the desired values were self-established. The figures below shows the schematic diagrams of the supplies being used by the ABUIP.

(a) 5Volts DC Supply


A transformer takes 220V Ac as an input and provides 12V AC on the output. Then the diodes rectify the AC signal coming from the transformer. Then the regulator 7805 takes the rectified DC signal at the input and provides 5V regulated voltage at the output. To eliminate the high frequency components at the output and to make it smooth a non-polar capacitor is attached across the output.

10

Figure 2.4 5V DC Supply

(b) 12Volts DC Supply


A 220V to 24V transformer is used at the input which provides up till 4amperes of current. Then the diodes rectify the AC signal coming from the transformer. Then the regulator 7812 takes the rectified DC signal at the input and provides 12V regulated voltage at the output. Similarly the negative rectified cycle is regulated by the negative regulator 7912 which provides the -12V at the output. To eliminate the high frequency components at the output and to make it smooth a non-polar capacitor is attached across the output. When the motors require more current the regulators hold the output regulated at the output terminals, the additional current is provided by the N-type power BJT (TIP2955) and P-type power BJT (TIP3055) at the corresponding outputs.

11

Figure 2.5 12V DC Supply

(c) 15Volts DC Supply:


A 220V to 24V transformer is used at the input which provides up till 4amperes of current. Then the diodes rectify the AC signal coming from the transformer. Then the regulator 7815 takes the rectified DC signal at the input and provides 15V regulated voltage at the output. To eliminate the high frequency components at the output and to make it smooth a non-polar capacitor is attached across the output. When the motors and the circuits require more current the regulators hold the output regulated at the output terminals, the additional current is provided by the N-type power BJT (TIP2955) at the output.

12

Figure 2.6 +15V DC Supply

2.1.2.3 Motor drives


To control the motion and the speed of the motors via microcontroller drives were established. These drives are operated by the micro controller using PWM, and the duty cycle of the pulse or the pulse width is responsible for controlling the speed of the motors.

Unidirectional drive:
Motion of the motor driving the conveyor belt is supposed to be unidirectional, so for that reason a unidirectional motor derive was designed. This derives takes an input signals from the microcontroller (pulse waveform) and decides for the motor to on and off. When a pulse is applied at the input, during the high logic or 5volts time period the power MOSFET gets on and allows the motor to rotate at the voltage provided across its terminals. And during logic 0 cycles it stops the motor for rotation. In this way the width of each cycle decides the off and the on time of the motor. And finally this continuous pulse signal controls the speed of the motor.

13

When the bottle comes in between the camera frame the microcontroller stops the motion of the conveyor belt after getting the signal from the sensor. And this stopping of the belt is made possible by setting the duty cycle at input of derive.

Circuitry:
Figure 2.7 Unidirectional Motor Drive

The above given figure shows the circuit for the unidirectional motor derives which will control the speed of the conveyor belt. Input of the motor derive is the microcontroller pulse. Input waveform and the corresponding output waveforms at the various points mentioned in the figure are as follows.

Figure 2.7.1 Input waveform at point I

14

Figure 2.7.2 Waveform at point A

Figure 2.7.3 Waveform at point O

When a signal is applied at point I (fig.2.7.1), an inverted wave form appears at the output of the opt coupler (4n35) i.e. at point A (fig.2.7.2). During logic 1 at point I the transistor Q1 is on and the transistor of the IC in off hence ground or 0volts appear at point A. when point A is at zero volts transistor Q2 gets off and the VCC directly appears at gate of the MOS-fet and it gets on(fig.2.7.3), providing the motor with the maximum voltage difference between the two terminals. Same process goes on for the logic 1 or 5volts at input point.

Bidirectional drive
Motors fixed in the robotic arm that controls the yaw, pitch and the clipper motion are all supposed to be bidirectional, in order to remove the bottle from the production line. Bidirectional motor derives were also designed to achieve the objective. The bidirectional motor derives consist of a H-bridge circuit made using two PMOSFETs (IRF 9540) and two N-MOSFETs (IRF540). The transition of the voltage

15

at the center of the two legs controls the direction of the motion and the width or the duty cycle of the pulse like in unidirectional case controls the speed of the motor.

Circuitry:

Figure 2.8 Bidirectional Motor Drive

Figure2.8 shows the circuit for the H-bridge derives for controlling the speed and the direction of all the bidirectional motors. Motor is fixed between the two points marked as point A and B in the figure. Now its simple to control the direction of the motor just by changing the polarity between the two points. If point A is at higher voltage then B then the motor will move in one direction and if the point B is at higher voltage then the motor will move in the other direction. and for doing that transistors Q1 and Q4 are set on simultaneously and Q2 and Q3 are set on at a time keeping the other two off for the opposite direction motion.

16

Transistors Q1 and Q2 are P-MOS (IRF9540) where as Q3 and Q4 are NMOS (IRF540). N-MOS gets on when it gets logic 1 at its gate and P-MOS gets on when it gets logic 0 at the base. To set the two transistors Q1 (P-MOS) and Q4 (N-MOS) on at the same time Q1 is provided with logic 0 at the gate and Q4 is provided with logic 1 at the gate. Same signaling is applied at the gates of the other two transistors for the opposite motion and the other two at the other time inverters are used. To achieve the desired signaling pattern at the gates same procedure is adopted as mentioned in the last section of unidirectional motor derive.

17

Chapter 3: IMAGE PROCESSING IN MATLAB


Following commands and methods given below are used in image processing code.

3. 1 Image acquisition
In MatLab (see Appendix A for the code) this task was accomplished with the help of a simple command: getsnapshot Syntax: y = getsnapshot(vid) (see Appendix A)

3.2 Separation of RGB components:


It is important to separate the RGB components of the image. This task was done with the help of commands given below. Syntax:

R=y(:,:,1)(see Appendix A) G=y(:,:,2) (see Appendix A) B=y(:,:,3) (see Appendix A)

Figure 3.1.1 Input Image

Figure 3.1.2 R Component

18

Figure 3.1.3 G Component Figure 3.1.4 B Component

Figure 3.1.1 shows the input RGB image of the bottle by using the commands given above we can separate the R component G component and B component of the image. Figure 3.1.2, figure 3.1.3 and figure 3.1.4 shows the R, G and B component of the image.

3.3 Size of image:


Function size gives the row and column dimensions of an image >>size(y) ans= 1024 1024 This function is practically useful in programming when used in the following form to determine automatically the size of an image >> [M, N] = size(y); This syntax return the number of rows(M) and columns(N) in the image.

3.4 Image Information


The whos function displays additional information about an array. >> whos y Name y Size 480x640x3 Bytes 921600 Class uint8

19

The uint8 entry shows refers to one of several MATLAB data classes discussed earlier in data types.

3.5 Image Conversion


3.5.1 RGB to Gray Scale
Syntax: Gray-image = rgb2gray( rgb-image ) Convert an RGB image to a gray scale image. The input RGB image can be of class uint8, uint16 or double. The output image is of the same class as the input.

Figure 3.2.1 Input RGB Image

Figure 3.2.2 Output Gray Scale Image

Figure 3.2.1 shows the input RGB image by using the command rgb2gray we can easily convert it into gray scale image.

3.5.2 Gray Scale to Binary Image


Syntax:

y=im2bw(f,T) Convert a gray scale image to binary image. Valid input data are uint8, unit16 and double. This command produces intensity image, f, by thresholding. The out binary image g has values of 0 for all pixels in the input image with intensity

20

values less than threshold T, and 1 for all other pixels. The value specified for T has to be in the range [0,1], regardless of the class of the input. The output binary image is automatically declared as a logical array by im2bw. If we write g=im2bw(f) it use a default value of 0.5.

Figure 3.3.1 Threshold value 90

Figure 3.3.2 Threshold Value 110

Figure 3.3.3 Threshold Value 170

Figure 3.3.1 shows the binary image of the figure 3.2.1 with threshold value of 90, figure 3.3.2 shows the binary image with threshold value of 90 and figure 3.3.3 shows the binary image with threshold value of 170.

21

3.6 Color Segmentation


Color segmentation is the process in which we separate different colors .As we set the white background and white color of conveyor belt so there is only a bottle in a frame, with black solution in it and red lid and red label. When we segment the red color from the frame we get the lid and the label. When we segment the black color we get the solution. We did this by thresholding the R, G and B component of the image. For the segmentation of red color we used threshold values given below. R(i,j)>=80 && G(i,j)<=90 && B(i,j)<=90;

From this thresholding we get the lid and label pixels as 1 and other than this limit we get 0.

Figure 3.4.1 Color Segmentation of Lid and Label

For the segmentation of solution in the bottle we set the thresolding values as given below R(i,j)<=70 && G(i,j)<=60 && B(i,j)<=70; From these values of R G and B component of image we get the pixel of solution as 1s and other pixel as 0s.

22

Figure 3.4.2 Color Segmentation of Solution

Figure 3.4.1 shows the color segmentation of lid and label of the bottle. And figure 3.4.2 shows the color segmentation of solution of the product inside the bottle.

3.7 Morphological Operations


Morphology relates to the structure or form of objects. Morphological filtering simplifies a segmented image to facilitate the search for objects of interest. This is done by smoothing out object outlines, filling small holes, eliminating small projections, and using other similar techniques The two principal morphological operations are dilation and erosion. Dilation allows objects to expand, thus potentially filling in small holes and connecting disjoint objects. Erosion shrinks objects by etching away (eroding) their boundaries. These operations can be customized for an application by the proper selection of the structuring element, which determines exactly how the objects will be dilated or eroded.

3.7.1 Structuring Elements


An essential part of the dilation and erosion operations is the structuring element used to probe the input image. Two-dimensional, or flat, structuring elements consist of a matrix of 0's and 1's, typically much smaller than the image being

23

processed. The center pixel of the structuring element, called the origin, identifies the pixel of interest--the pixel being processed. The pixels in the structuring element containing 1's define the neighborhood of the structuring element. These pixels are also considered in the dilation or erosion processing. Three dimensional, or nonflat, structuring elements use 0's and 1's to define the extent of the structuring element in the x- and y-plane and add height values to define the third dimension.

se = strel('diamond',3) se =
0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0

Structuring element used in the code is se = strel('rectangle',[4 9]) it is a 49 matrix of 1s se = strel('rectangle',[4 9])

se = Neighborhood: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

24

3.7.2 Closing and opening of image


By using the closing first and opening second the result of image segmentation was perfect. Closing suppresses dark detail smaller than the structuring element and opening suppresses bright detail smaller than the structuring element. They are used for image smoothing and noise removal.

Figure 3.5.1 Segmentation without Morphological Operation

Figure 3.5.2 Closing and Opening

3.8 Labeling
Bwlabel command is used to label the connected portions. We get the segmented portions by labeling different connected regions i.e 1,2,3 or 4 pixel values for different connected regions.

25

Syntax: [L,num]= bwlabel(f,conn) Where f is an input binary image and conn specifies the desired connectivity it can be either 4 or 8. Out L is called the label matrix, and num (optional) gives the total number of connected portions found. Example given below shows the label matrix L corresponds to matrix F, computed using bwlabel(f,4). The pixel in each different connected component is assigned a unique integer, from 1 to the total number of connected components. In other words, the pixel labeled 1 belongs to first connected portion; the pixel label 2 belongs to the second connected component and so on.

F= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0

L=

1 1

1 1

1 1

0 0

0 2

0 2

0 0

0 0

26

1 1 1 1 1 1

1 1 1 1 1 1

1 1 1 1 1 1

0 0 0 0 0 0

2 0 0 0 0 0

2 0 0 0 3 0

0 4 4 4 0 0

0 0 0 0 0 0

Function find is useful when working with label matrices. For example, the following call to find returns the row and column indices for all the pixels belonging to the third object. [r,c]=find(L==3) r=7 c=6

3.9 Edge Detection


Intensity discontinuities in a digital image; point lines and edges, the most common way to look them is to run a mask through the image. It was done by multiplying each pixel in the neighborhood by a corresponding coefficient and summing the results to obtain the response at each point (x,y). if the neighborhood is of size mn, mn coefficients are required. The coefficients are arranged as a matrix called a filter, mask or window [5]. The process consists simply of moving center of filter mask from point to point in an image. At each point (x,y) the response of the filter at that point is the sum of product of the filter coefficients and the corresponding neighborhood pixels in the area spanned by the filter mask. Edge detection is the first derivative of the image. A fundamental property of the gradient vector is that it points in the direction of the maximum rate of change occur. With the preceding discussion, the basic idea behind edge detection to find places in an image where the intensity changes rapidly, use one of two general criteria.

27

1. Find places where the first derivate of the intensity is greater in magnitude than a specified threshold.[5] 2. Find places where the second derivate of the intensity has a zero crossing.[5] We used sobel edge detection to find the edges of bottle. The sobel edge detector uses the mask shown given below Gx and Gy.

Gx = -1 0 1 -2 0 2 -1 0 1

Gy = -1 -2 -1 0 0 0 1 2 1

Complete code is given in appendix

28

b22= m11a11 + m12a12 + m13a13 + m21a21 + m22a22 + m23a23 + m31a31 + m32a32 + m33a33
Figure 3.6.1 Edge Detection Process

Figure 3.6.2 edge detection result

3.10 Algorithm
The basic idea is to find the corner points of lid, label and the level of the product. For correctness of the bottle lid we used to find the pixel ratio of the corner points of the lid from the base of the bottle, ratio of the corner points of the label from the base point and the corner points of level from the base point. The ratio is always remains the same it didnt depend upon the placement of the bottle as the camera is fixed. We fixed threshold values for the placement of lid, label and level of the product. If the one of the ratio exceed or decrease from the threshold value the bottle will declared incorrect and discarded otherwise it declared as correct bottle.

29

Chapter 4: RESULTS AND DISCUSSION


4.1 Data Set
In the beginning a data set was established containing about fifty images, with different light and shadows effects keeping the distance and position of the camera fixed. The data set contains the following images.

30

4.2 Limitations
To make the project simple and for easy implementation a few limitations were observed. Some of the major limitaions are as follows. The algorithm was desighned only for single brand (coke) Camera position was set fixed Distance of the camera and conveyor belt was also fixed Light effect issues were resolved by placing the light above the camera

31

CHAPTER 5 : CONCLUSION & FUTURE ENHANCEMENT


5.1 Conclusion
Companies today are a target of cut throat competition. If a company wants to stay in business, it has to provide better and more efficient products/services in lesser time than their competitors. The opposite of this would mean death for the business. So essentially in business today, its all about quality and time. The conventional methods of quality checking are no more acceptable in terms of consistency as well as time. A revolution was needed and the ultimate solution is automation. Automation creates an extremely proficient process designed to maintain the manufacturers quality control standards. Furthermore; the effect of introducing automation results in reduced injuries for the production personnel, less handling which improves hygiene, improved Quality Assurance as every piece is now checked at consistent packing speeds, all leading to major labor and product saving gains. In summary, automating quality control processes improves productivity and ensures accurate and precise product manufacturing. It is a simple and inexpensive solution to improve the products and the companys reputation.

5.2 Future Enhancements


This project dealt only with the outer look of the product for which imaging techniques were used. One of the enhancements that can make this project more advantageous can be the introduction of other checks along with the available checks. For example; if we look at the bottling industry, better

32

imaging techniques may be used to check the presence of any suspended particles in the product or sensors can be incorporated through which other factors of the products can be checked. If this project is applied to the food industry e.g. biscuits etc., then the weight and humidity sensors along with camera can be deployed for a broader scope.

33

REFRENCES
[1] Definitions

from

Dictionary.com".

dictionary.reference.com.

http://dictionary.reference.com/browse/Automation. [2] Wikipedia, the free encyclopaedia. [3] http://www.mathworks.com/products/image/

[4] MATLAB (image processing toolbox) [5] Digital Image Processing By Rafael C. Gonzalez, Richard Eugene Woods

34

APPENDIX A
Code for Image Processing

vid=videoinput('winvideo',3,'RGB24_352x288'); %camera initialization obj=getselectedsource(vid); obj.FocusMode='manual'; s=serial('com14'); fopen(s) %camera properties %set auto focus %serial port initialization %open serial port

for i=1:1:2000 f=fscanf(s) if(f=='S') y=getsnapshot(vid); imview(y)

%wait for the bottle %serial reception

%get image

R=y(:,:,1); G=y(:,:,2); B=y(:,:,3); [a,b,c]=size(y); for i=2:1:a-1 for j=2:1:b-1

%RGB components of image

35

if R(i,j)>=80 && G(i,j)<=90 && B(i,j)<=90; imnew(i,j)=1; else imnew(i,j)=0; end end end

%color segmentation

se = strel('rectangle',[4 4]); imnew=imclose(imnew,se); imnew=imopen(imnew,se);

%structural element %Morphological operations

L = bwlabel(imnew,4); imview(L) [r,c]= find(L==2); a1=min(r); b=min(c); d=max(r); e=max(c); plid=[a b ; a e ; d b ; d e ] [r,c]=find(L==1); al=min(r); b=min(c); d=max(r);

%labeling

%corner detection

36

e=max(c); plab=[a b ; a e ; d b ; d e ] imview(imnew) %level detection

R=y(:,:,1); G=y(:,:,2); B=y(:,:,3); [a,b,c]=size(y); for i=2:1:a-1 for j=2:1:b-1 if R(i,j)<=70 && G(i,j)<=65 && B(i,j)<=70; imnew(i,j)=1; else imnew(i,j)=0; end end end se = strel('rectangle',[6 6]); imnew=imclose(imnew,se); imnew=imopen(imnew,se); L = bwlabel(imnew,4); imview(L) [r,c]= find(L==2); ap=min(r); %color segmentation of level

37

b=min(c); a3=max(r); e=max(c); [r,c]=find(L==1); ao=min(r); b=min(c); a6=max(r); e=max(c); [r,c]=find(L==3); ai=min(r); b=min(c); a4=max(r); e=max(c); [r,c]=find(L==4); au=min(r); b=min(c); a5=max(r); e=max(c); a2=max([a3 a4 a5 a6]); as=min([ap ao ai au]); if(a2/a1>=4.1 && a2/a1<=4.8 && a2/al>=1.6 && a2/al<=1.8 && a2/as>=1.9 && a2/as<=2.4) %threshold values fwrite(s,'Y') p=[5] else

38

fwrite(s,'N') p=[0] end else end end

You might also like