Skip to content

An android Camera-based augmented reality Application that automatically solve and fill Sudoku puzzles by passing the camera over the puzzle

License

Notifications You must be signed in to change notification settings

Sanahm/SudoCAM-Ku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project is no more maintained!

SudoCAM-Ku!

An android camera-based augmented reality application that automatically solve and fill Sudoku puzzles by passing the camera over the puzzle. This project is based on a previous work : An automous robot that solve and fill sudoku puzzles (see Sudoku-robot repo for more details).

Get the project

$ git pull https://github.com/Sanahm/SudoCAM-Ku 

How it works?

First you need to take a picture of the sudoku grid by touching the screen when ready (this is not mandatory! It is just to avoid spending a lot of time on computation). After that, you'll need to touch the screen a second time to process the grid and solve it. Once solved the result will automatically be drawn on the camera frame.

An offline processing is also implemented. That it is, you can also solve a puzzle from your phone storage.

Note that this app use image processing method to process grid. That means, better is your image more the processing will succeed! You'll certainly have to try and try again according to the quality of your images .

A video is worth a thousand words: a link to youtube video

Remark

  • As the project size is big ( ~1GB with libs both Tensorflow and OpenCV) , you'll find on my repo just .java, .xml files and asset folder containing the tensorflow training model.

  • The project is fully documented. If you want more information about how processing works, just go and see Sudoku-robot.

How to setup the project

Create a new project on androidStudio and replace the src folder by mine.

You need to install Tensorflow and OpenCV in your AndroidStudio environment. Here are some indications on how to do that:

  • Download the Tensorflow libraries here and decompress. Once done,copy the libandroid_tensorflow_inference_java.jar and the architecture folders inside of the libtensorflow_inference.so in out/native/libtensorflow_inference.so into the android project jniLibs folder locate at src/main/jniLibs.

  • Download the OpenCV android pack here and decompress. I use the 3.1.0 version. Then copy the architecture folders inside OpenCV-android-sdk/sdk/native/libs into the same jniLibs as below.

  • Now update the gradle file

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"

    defaultConfig {
        applicationId "com.example.mohamed.sudoku"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:design:25.0.0'
}

Otherwise, find here some links to completly install opencv.

Keywords

  • Computer vision

  • Image classification - Convolutionnal Neural Network (CNN) with Tensorflow

  • Image recognition - Image processing

About

An android Camera-based augmented reality Application that automatically solve and fill Sudoku puzzles by passing the camera over the puzzle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages