Giter VIP home page Giter VIP logo

barcodedetectionhough's Introduction

Requirements
----

° Any C++08 compiler (actually used g++ 4.8.1)
° OpenCv 2.4.* with Qt 4 support enabled
° Boost 1.53 or more recent builds



Compile on Linux machine
----

Just type 'make' in the root directory of the project.
The executable will be placed there if no errors occur.

This package is meant to be compiled and used in a linux environment.
Anyway, it should be straightforward to adapt it to different architectures as both the OpenCv and Boost libraries are cross-platform. 
In order to facilitate it, the shared library linked by the makefile are:
° boost_filesystem
° boost_system
° boost_chrono
° boost_program_options
° opencv_core
° opencv_highgui
° opencv_ml
° opencv_imgproc

If you encounter any problem check if the required libraries are installed in your system.



Usage
----

Type './barcodedetection --help' to print the help message.

Command line arguments:
	-d or --dataset: full path of the directory that contains the dataset. It must constain two subdirectories: 
		 	 'Original' with the actual images, 'Detection' with the detection masks, all in png format.
			 Detection masks are black images with white-filled bounding-boxes.
			 
	-s or --show: show in a GUI some intermadiate images taken at each step of the algorihtm.
		      Press the spacebar to continue to the next image.

	-q or --quiet: no verbose output
	
	-o or --output: set an existing directory to save some intermediate result.

	-w or --whitelist: specity a text file containing the image names (one per line) you want to process from the dataset directory.
			   Image names that do not match any element of the list are skipped.

Dataset:
	The default dataset directory contains some images.
	You can download the full dataset at
		http://artelab.dicom.uninsubria.it/downloads/datasets/barcode/hough_barcode_1d/hough_barcode_1d.html
	You should use the dataset no.2 plain.

Example:

	> mkdir output
	> make clean && make
	> ./barcodedetection -s -o output
	
In the directory 'output' you will also find the intermediate images.


Output
----

For each image, the program prints the detected angle, the jaccard overlap accuracy and the time employed.
When it ends, it returns the average overlap accuracy, the average time and a set of 10 values.
We set a varying threshold from 0.1 to 1 with step 0.1 (therefore 10 thresholds).
For each threshold, these values are the ratio of images whose detection bounding boxes have an overlap accuracy greater or equal the threshold.
So, i.e., the fifth value represents the percentage of images that obtain an accuracy greater then 0.5.

Jaccard accuracy is the standard union over intersection ratio.


Acknowledgements and license
----

The conditions are described in LICENSE.

If you use this code, part of it or the dataset, please cite the following reference

	Robust Angle Invariant 1D Barcode Detection
	Alessandro Zamberletti, Ignazio Gallo and Simone Albertini
	The 2nd Asian Conference on Pattern Recognition (ACPR), 2013
	Okinawa, Japan


Bibtex:
	@inproceedings{zamberletti2013acpr,
		author = "Alessandro Zamberletti and Ignazio Gallo and Simone Albertini",
		title = "Robust Angle Invariant 1D Barcode Detection",
		booktitle = "In proceedings of the 2nd Asian Conference on Pattern Recognition (ACPR)",
		year = "2013"
	}

barcodedetectionhough's People

Contributors

simonealbertini avatar

Watchers

 avatar  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.