• Tidak ada hasil yang ditemukan

Price and Stock Checking Robot for Retail Store

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "Price and Stock Checking Robot for Retail Store"

Copied!
75
0
0

Teks penuh

I declare that this report entitled "PRICE AND STOCK CONTROL BY ROBOT IN RETAIL STORE" is my own work except as cited in the references. Robot is created to replace manpower as the robot is said to be more accurate and almost error free while performing the task. The price and inventory control robot is an automated robotic product created to serve the retail store.

Problems that occur every day in the retail store include the wrong price tag, the price shown on the price tag is not up to date, there is still stock in the garage but the shelves are empty. The functionality of this robot will be reduced to a few small tasks and slowly added to each prototype.

LIST OF TABLES

LIST OF ABBREVIATIONS

  • Problem Statement and Motivation
  • Project Scope
  • Impact Significance and Contribution
  • Background Information
  • Proposed Approach
  • Highlight of what had been achieved
  • Report Organization

The problem arises because the price tag along with the bar code on the rack is usually forgotten to be changed. The employee in charge will have to check the price mentioned on the price tag and compare it one by one with the latest price in the price database using the portable reader. This price and stock check robot will check the availability of the stock on the rack by retrieving the stock availability from the database and the correctness of the price displayed on the price tag.

To perform price comparison, the system must retrieve the price stated on the price tag using Tesseract OCR. Able to perform OCR on the captured image to get only the price on the price tag by eliminating all redundant information.

Figure 1-1-1 Example of Price Tag in Retail Store
Figure 1-1-1 Example of Price Tag in Retail Store

Literature Review

  • Background
  • Barcode
  • Existing Bar-code Scanning Solution Zbar (Zbar 2019)
  • Optical Character Recognition (OCR) .1 Tesseract OCR
  • Robot Operating System (ROS)
    • Component of ROS (Pyo et. al, 2017)
    • ROS Ecosystem (Pyo et. al, 2017)
    • Advantages of ROS (ROS, 2018)
  • Review and Comparison on Existing Product .1 Bossa Nova's Shelf-scanning Robot
    • Simbe Robotics Tally
    • Comparison of Existing and Proposed System
  • Chapter Summary

The image capture from the OpenCV is passed to the dedicated barcode decoding library. It is highly portable and focuses more on providing less rejection than accuracy (Patel, Patel, & Patel, 2012). In the next step, outlines are converted into blobs that are arranged in lines of text.

First, there will be a set of training data which those words will be transferred to the adaptive classifier in the first pass. In the final stage, the problem will be solved and the text from the image will be filtered (Patel, Patel, & Patel, 2012). Tesseract OCR is open source and is accessible in the form of the Dynamic Link Library.

Tesseract is more accurate in extracting text and it is a faster way in OCR processing. From ROS components, it is predictable that ROS is now and will be the standard in Robotics for years. Moreover, the other functionality is that the misplaced items will be determined and notify the employees.

It is very efficient and employee price and stock checking routine can be done more efficiently by it. Since the robot body is quite large in size, it is claimed that it may not be suitable for working in a store with a smaller storefront. The Tally robot's body is quite small, so it can be used in both small and large retail stores.

Figure 2-3-1 Example of 1D and 2D Barcode
Figure 2-3-1 Example of 1D and 2D Barcode

System Design

System Flowchart

After the robot is activated, it will walk along the rack and try to detect the existence of barcode. If no barcode is detected along the rack, the robot will continue walking. If a barcode is detected, the robot will stop and take several pictures of the price tag.

These images are made for the purpose of retrieving product codes and prices, which will be done later. ii) Product Key Retrieval (Barcode Scan Step). If the barcode is scanned successfully, the robot retrieves the product code information from the price tag. For example, if the price tag is as below, the retrieved product code will be the numbers below the barcode.

From the above image, the system will retrieve the price "7.40". iv) Data retrieval from database and price comparison. After steps ii and iii, the system will access the database and retrieve the latest price of the product using the product code retrieved in step ii. If the product code is not found, the system will ask the robot to take a picture again.

After three counts, the barcode is classified as a bad barcode, which means that the barcode contains an error. On the other hand, if the product key does exist, the latest price will be retrieved and the price comparison will be performed. v) GUI display. After the report is sent, it continues to run and starts detecting a new barcode (step i).

Figure 3-1-2 Example of Barcode for Product Code Retrieval  iii)  The price retrieval (OCR step)
Figure 3-1-2 Example of Barcode for Product Code Retrieval iii) The price retrieval (OCR step)

The Use Case Diagram

The system will then handle the backend task such as retrieving the product key, OCR and performing price comparisons. The control report containing the correctness of the price tag and the stock count in the garage is sent to the end user.

The ROS Block Diagram (Step i)

Block Diagram

  • Barcode Scan (Step ii)
  • OCR Block Diagram (Step iii)

Once the price tag is captured by the webcam, use OpenCV, the system will start performing OCR on the captured images. Before reading the image, the system will eliminate the unnecessary area of ​​the photo, which will be discussed later in chapter 4. Then the system will eliminate those unwanted information and keep the price in the group.

After comparing all the outputs of the OCR in the array, the output with the highest possibilities will be selected as the final detected price.

Figure 3-4-2 The Block Diagram of OCR
Figure 3-4-2 The Block Diagram of OCR

ERD Diagram of database (Step iv)

The Design for GUI (Step v) Admin Page

Methodology

First, in the planning phase, the problem is found and the initial requirements are formed. The requirement is collected from the various retail store business owners to decide which functionality should be equipped in the proposed system. The collected requirements will then be analyzed to determine the necessity and priority level of those requirements for the implementation of this robot.

Thirdly, in the design phase, the functionality and characteristics of the proposed robot are designed based on the user's wishes. The analysis, design and implementation step will be iterative to create as many prototypes as needed until a satisfied prototype is created. The final prototype, also called the final version of the robot, will be implemented after several prototypes.

System Design Specifications Hardware Involved

  • Hardware tools
  • Software Tools

It is designed for university graduate students and developers who wanted to use ROS, a robotic operating system, which we will discuss in more detail below. In this project, the webcam will be used as a barcode scanning and photography tool. The SD card with Raspian installed will be plugged into the turtlebot3 and establish a connection to the remote computer.

OpenCV is used to perform tasks such as recognizing predefined shapes and objects, tracking human faces, and detecting motion in a video. Python is a high-level programming language that handles many tasks that the programmers need to perform in low-level languages ​​like C. One of the advantages of Python is that they provide many open-source modules that can be downloaded and used freely (Kelly, 2016 ).

Some research has shown that Python will be used as the main programming language in the future (Kelly, 2016.). ROS data communication is supported by multiple operating systems, programs, and software, making it suitable for use in robot development where many types of hardware components are combined (Figure 3.8). The MySQL table is integrated with python code to create an inventory system that can be accessed by the administrator (Figure 3.9).

Instead of using text-based user interfaces, GUI supports the use of visual indicators such as icons and menus to execute the command. With the use of GUI, the user does not need to interact with the electronic devices through programming language (Computer Home, 1998). In this report, tkinter is used to create the GUI for the inventory system to connect the system to the end user.

Figure 4.2-2 Webcam Use for Robot.
Figure 4.2-2 Webcam Use for Robot.

System Architecture Design

Project Timeline

Implementation, Testing and Results

  • Testing Component
  • Robot Control
    • Step I: Robot Walking
    • Image Capture after Price tag detection
  • Step II – Barcode Scanning (Product Code Retrieval)
  • Step III – Extract the price from the price tag (OCR)
  • The mostFrequent() function
  • Step IV – Database and price comparison .1 Database
    • The price Comparison
  • The Admin GUI
  • CONCLUSION
    • Summary of the project
    • Summary of the product
    • Future Work

When the robot is walking, the message "Robot walking --- no barcode detection..." as in the orange circle will be. After detecting the barcode, the robot stops and takes some pictures of the price tag. These images will be used later in step ii – barcode scanning and step iii – OCR.

In this step, the Zbar library will be used to extract the product code information from the barcode of the captured images. If the length of the decoded results is 13 characters (Standard Barcode Length), the scanned results will be appended to the array named productData, which is a temporary array to store the results. The actual code will be stored in the product_code_info array after filtering in the mostFrequent() function.

After eliminating unwanted data, the data set will be passed to the mostFrequent() function to get the most accurate price results. Finally, the system has managed to get the output correctly, which is and RM3.30 that will be used to do price comparison and stock count later. First in query1, the system will check the existence of the product code, if the code is not in the database, error message 3 above will be prompted.

If the detected price differs from the price in the database, error message 1 is displayed. If the price is equal to the price in the database, message 2 is displayed. Based on observation, the price tag on the shelves is usually not up to date or misplaced.

Barcode scanning is performed to detect the product code and OCR is used to find out the price on the price tag. The resolution of the web camera is too low, which is why the detection sometimes still gets the wrong price tag even when comparisons are made.

Table 5-1-1 The Product Code and Price of the Testing Price Tag
Table 5-1-1 The Product Code and Price of the Testing Price Tag

Gambar

Figure 2-3-1 Example of 1D and 2D Barcode
Figure 2-4-1 The System Architecture of the Tesseract OCR  How Tesseract works
Figure 2-5-1 The Label on the Maps Shows the Current User of ROS
Figure 2-6-1 Bossa Nova's Shelf-scanning Robot
+7

Referensi

Dokumen terkait

If the village is able to optimize all its potential resources to drive the economy, then the development and strengthening management body effort owned by village expected able