Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ace4896/project-sekai-thumbnail-matching-notes
Notes on extracting and matching Project Sekai card thumbnails.
https://github.com/ace4896/project-sekai-thumbnail-matching-notes
opencv project-sekai python sekai
Last synced: 8 days ago
JSON representation
Notes on extracting and matching Project Sekai card thumbnails.
- Host: GitHub
- URL: https://github.com/ace4896/project-sekai-thumbnail-matching-notes
- Owner: Ace4896
- Created: 2023-06-20T16:16:50.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-05T17:36:49.000Z (over 1 year ago)
- Last Synced: 2024-11-07T15:36:52.667Z (about 2 months ago)
- Topics: opencv, project-sekai, python, sekai
- Language: Jupyter Notebook
- Homepage:
- Size: 53 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project Sekai - Thumbnail Matching Notes
Notes on extracting and matching Project Sekai card thumbnails.
## Usage
In this folder are various Jupyter notebooks outlining my attempts at extracting and matching card thumbnails:
- **Thumbnail Extraction**
- [`character-box`](./character-box.ipynb)
- Getting the character box from a screenshot of the character list
- This step helps narrow down the search for thumbnails, as it filters out most of the menu controls
- [`thumbnail-extraction`](./thumbnail-extraction.ipynb)
- Extracting individual card thumbnails from the character list
- **Thumbnail Matching**
- [`orb-feature-matching`](./orb-feature-matching.ipynb)
- This approach involves computing ORB Features and performing brute-force matching of features
- While this would be the most accurate, it's probably too slow for the usecase in mind (importing of cards from a screenshot)
- I also haven't figured out a way to measure the "similarity" between the feature descriptors
- [`hsv-histogram`](./hsv-histogram.ipynb)
- This approach involves generating normalised colour histograms from HSV channels and comparing similarity
- The matching speed is good, even with a linear search
- However, the histograms are quite large, so storage may be an issue when more thumbnails are added
- [`image-hashing`](./image-hashing.ipynb)
- This approach involves generating image hashes from the thumbnails and comparing the distance between hashes
- The matching speed is better than the histogram method, without a big sacrifice in accuracy
- The hashes are just 64-bit integers, so storage is very simpleTo run these notebooks:
- Install Python 3.11 or higher (may work on older versions, but not sure if it'll work)
- [Create a virtual environment and activate it](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment)
- Install dependencies: `pip install -r requirements.txt`
- Run `jupyter notebook`