Giter VIP home page Giter VIP logo

cardscanner's Introduction

VGU THESIS - Business Card Detection based on Artificial Intelligence

Overview

This repository contains an implementation of a system that can digitalize business cards and save the details into a contact list of the Android Operating System. The system has a client-server architecture where the client-side is the Android application and the server provides API using Flask.

alt text alt text alt text

System flow

alt text

Activity diagram

alt text

Server setup

The server provides service for text-line detection and text-intent classification.

Presiquitive

  • Docker
  • docker-compose

Install Docker

Following installation step from previous links to install Docker on your system.

Install Docker-Compose

On Windows and MacOS version of Docker desktop have included Docker-compose.

Run this command to download the current stable release of Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Apply executable permissions to the binary:

sudo chmod +x /usr/local/bin/docker-compose

Run the server on your local system

After successfully installing Docker and running Docker Daemon, open command prompt and run the following command on the root directory to create an environment for server:

docker-compose up

Wait until Docker's containers finish creating the environment, go to localhost:8080

Online Server

http://thesis.tkhco.com.vn:8080

Client setup

Android application handle business card image processing, text recognition and save contact details.

Presiquitive

  • JDK (8)
  • OpenCV SDK(4.1.0)
  • Android Studio (3.3.2)
  • SDK (minSDK level 24)
  • NDK (20.0.5594570)
  • CMake

Installing JDK

JDK 8 is necessary for Java development in Android Studio, the compiler can be installed from Oracle's website after accepting their license agreement.

OpenCV SDK

OpenCV SDK can be downloaded from here.

Installing Android Studio

Latest Android Studio for different platforms can be found here.

Installing SDK, NDK and CMake

Three of them can be installed by going to Tools->SDK Manager. In Android SDK select SDK Tools tab. Then select suitable version for Android SDK Build-Tools, Android SDK Platform-Tools, Android SDK Tools, NDK and CMake.

Setting path to Project and OpenCV SDK

Open CMakeLists.txt and change the first two paths which are paths of project and OpenCV SDK. For the Project path will be specific_location/CardScanner/app and for OpenCV path will be specific_location/opencv-4.1.0-android-sdk/OpenCV-android-sdk/sdk/native/jni/include.

Generating APK

  1. Go to Build -> Select Build Variant and then select build variant you want to build for the app module.
  2. Go to Build -> Generate Signed Bundle or APK, select APK option and then press NEXT button.
  3. Next, you have to create a new key store or you can choose exisiting key in the repo, which has both passwords is 123456789, and key alias is key0.
  4. Then, choosing destination folder for the APK and select release build variant. Finally, select both V1 (Jar Signature) and V2(Full APK Signature), and press the FINISH button.
  5. By default destination, the APK will be placed here.

cardscanner's People

Contributors

bardiaalavi-2020 avatar zuqluoq97 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.