Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vfdev-5/dobblegamevision
Computer vision for "Dobble" game
https://github.com/vfdev-5/dobblegamevision
Last synced: 11 days ago
JSON representation
Computer vision for "Dobble" game
- Host: GitHub
- URL: https://github.com/vfdev-5/dobblegamevision
- Owner: vfdev-5
- Created: 2015-07-01T21:36:57.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-03-15T16:59:39.000Z (over 8 years ago)
- Last Synced: 2024-10-13T12:21:14.728Z (26 days ago)
- Language: C++
- Homepage:
- Size: 13.2 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Computer vision for 'Dobble' game
Idea : Support player with computer vision system to recognize and compare objects on the cards
### Algorithm (08/09/2015) :
1) Detect cards on the image
a) Simplify image (i.g. low-band pass filtering, median blur, etc)
b) Derivate -> Threhold -> Morpho -> Find contours
c) Select contours by size and length/surface ratio
2) 'Unify' size of detected cards
a) Resize all detected cards to a unique size
3) Extract and match objects between any two cards
a) Loop on cards taking two different cards
b) For each card extract objects
1) Median blur -> Canny -> Morpho -> Find contours
2) Select contours :
a) bounding rect of the contour larger min area and smaller 1/4 of card size
b) distance between center of the contour and the card center is smaller than card radius
c) max dimension of contour is smaller than card radius
d) contour brect should not touch (+/- 1 pixel) image boundaries
c) Extract keypoints and descriptors for the reference object of the card one
1) Feature extraction uses AKAZE algorithm: http://docs.opencv.org/master/d8/d30/classcv_1_1AKAZE.html
Pablo F Alcantarilla, Jesús Nuevo, and Adrien Bartoli. Fast explicit diffusion for accelerated
features in nonlinear scale spaces. Trans. Pattern Anal. Machine Intell, 34(7):1281–1298, 2011.
d) Extract keypoints and descriptors for a test object of the card two
e) Match keypoints and select matched keypoints
f) Decide whether objects match and continue the loopProblems :
1) Card contours are too weak -> no card detection
- weak card contours, strong small contours
- weak card contours are neglected on threshold=> Use a generic method to extract cards or objects