Submitted:
30 December 2022
Posted:
03 January 2023
You are already at the latest version
Abstract
Keywords:
I. Introduction:
II. Literature Review
III. Theoretical Framework
- Source image (I): The image in which we expect to find a match to the template image
- Template image (T): The image which will be compared to the source image
- Declare some global variables, such as the image, template and result matrices, as well as the match method.
- Load the source image and template
- Perform the template matching operation.
- Normalize the results
- Localize the minimum and maximum values in the result matrix R by using minMaxLoc() function.
- For the first two methods in Figure 2, the best matches are the lowest values. For all the others, higher values represent better matches.
- Display the source image and the result matrix.
- Determine whether there is a match between the two compared images.
IV. Motivation/Objectives
V. Timeline
| Week | Date | Description |
|---|---|---|
| Week 1 | February 3 | Come up with a unique project idea. Decided on identifying playing cards using Computer Vision and implementing a helping strategy for Blackjack |
| Week 2 | February 8 & February 10 | Start typing the 15-page single-spaced proposal (5 pages per week) |
| Week 3 | February 15 & February 17 | Still working on the 15-page proposal |
| Week 4 | February 22 & February 24 | Still working on the 15-page proposal |
| Week 5 | March 1 & March 3 | Watch tutorials on openCV and how it aids in object detection (Focus on Python). Then Tech Demos (What we have worked on so far which will be the base structure) |
| Week 6 | March 8 & March 10 | Continue working on the project |
| Week 7 | March 15 & March 17 | Finalize step 1 of the project |
| Week 8 | March 29 & March 31 | Alpha Demo |
| Week 9 | April 5 & April 7 | Code Review and start working on step 2 of the project |
| Week 10 | April 12 & April 14 | Work on Step 2 of the project |
| Week 11 | April 19 & April 21 | Beta Demo if step 2 is ready or demo step 1 again with improvements |
| Week 12 | April 26 & April 28 | Code Review and finalize step 2 of the project |
| Week 13 | May 3 & May 5 | Code improvement and bug fixes |
| Week 14 | May 10 & May 12 | Release Date (Finalize everything, and do a final run through of the project fixing minor bugs and issues) |
| Week 15 | May 16 | Final Presentation and Demo |
| Duty | Who’s Responsible? |
|---|---|
| Watch OpenCV Tutorials | Anas, Justin, Maame, Sam |
| Distinguish Objects from each other code | Justin, Sam |
| Identify objects the type of object code | Maame, Anas |
| Code Review | Anas, Justin, Maame, Sam |
| Tech Demo of base structure | Anas, Justin, Maame, Sam |
| Code Review | Anas, Justin, Maame, Sam |
| Identify Quantities of Similar Objects code | Anas, Justin |
| Locate Objects in 3D Space code | Sam, Maame |
| Code review | Anas, Justin, Maame, Sam |
| Identify a Playing Card code | Justin, Maame |
| Develop Card Game Algorithms code | Sam, Anas |
| Blackjack Code | Mainly Anas (rest of group gives moral support) |
| Alpha Demo | Anas, Justin, Maame, Sam |
| Code Review | Anas, Justin, Maame, Sam |
| Beta Demo | Anas, Justin, Maame, Sam |
| Code review | Anas, Justin, Maame, Sam |
| Release Date | Anas, Justin, Maame, Sam |
| Final Presentation and Demo | Anas, Justin, Maame, Sam |
VI. Expected Results (Maame)
VII. Intellectual Merit (Cassens)
VIII. Broader Impact (Cassens)
References
- Thomas, M. Ward, Pietro Mascagni, Yutong Ban, Guy Rosman, Nicolas Padoy, Ozanan Meireles, Daniel A. Hashimoto, Computer vision in surgery. Surgery 2021, 169, 1253–1256. [Google Scholar] [CrossRef]
- CPPrimeStudios: https://cprimestudios.com/blog/object-recognition-what-it-and-how-does-it-work.
- Shutterstock Images: https://www.shutterstock.com/image-photo/messy-cards-background-27814762.
- Light Image: https://lightsinc.com/pathway-lighting/.
- OpenCV library; http://code.opencv.org.
- Spoon Image: https://www.dreamstime.com/colorful-kitchen-spoon-set-isolated-white-colored-cutlerytools-background-different-types-spoons-vivid-image230013979.
- Dog Image: https://scobbaphotography.wordpress.com/2020/11/12/november-12-angles/.
- Pen Image: https://unsplash.com/s/photos/study.
- Howse, J. (2013). Preface. In OpenCV computer vision with python: Learn to capture videos, manipulate images, and track objects with python using the opencv library (pp. 1–2). preface, Packt Publ.
- Kari Pulli, Anatoly Baksheev, Kirill Kornyakov, and Victor Eruhimov. Real-time computer vision with OpenCV. Commun. ACM 2012, 55, 61–69. [Google Scholar] [CrossRef]
- Geronimo, David, et al. Traffic sign recognition for computer vision project-based learning. IEEE transactions on education 2013, 56, 364–371. [Google Scholar] [CrossRef]
- Martins, Paulo, Luís Paulo Reis. Poker vision: Playing cards and chips identification based on image processing. In Iberian Conference on Pattern Recognition and Image Analysis; Springer: Berlin, Heidelberg, 2011. [Google Scholar]
- Bradski, G. The OpenCV Library. Dr. Dobb's J. Softw. Tools Prof. Program. 2000. [Google Scholar]



| Step | Objective | Description |
| A. | Distinguish Objects From Each Other | The first thing the program needs to be able to accomplish is to distinguish one object from another. At any given time, there will be many “objects” on the screen at any time. The program must be able to identify the starting and ending points of an object (its borders) in order to determine it as being an “object” to count or identify. In this case: the program needs to distinguish an individual playing card from the desk that it rests on, and any other surrounding visual “noise” that is on the screen. |
| B. | Identify the Type of Object | Once the program can recognize separate objects, the next step is to identify what an object is. Ex: playing card, hand, table. |
| C. | Identify Quantities of Similar Objects | The program needs to be able to count the quantities of similar objects that are seen by the program at any given time. |
| D. | Locate Objects in 3D Space | Once the program can identify objects and count, it needs to be able to locate where individual objects are in the real world. This is an important step for developing large scale analysis of an entire card game. |
| E. | Identify a Playing Card | The program should identify the playing card that is shown on the screen (King of Hearts, 2 of Spades, etc). Building this framework is important for any card game based algorithm we wish to implement. |
| F. | Develop Card Game Algorithms | Once the program can identify a playing card, count the quantity of cards, and determine where they are in space, back end code can be developed to create algorithms for card games. This will be the most logic and algorithm intensive portion of the project, as it will implement card game theory and algorithms for any individual card game. |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).