Releases: ForOhForError/Yet-Another-Magic-Card-Recognizer
Prerelease, consistent with Readme
Ah, it's been a while. There sure has been a lot going on [gestures at world in general].
Anyway, this release is a catch-up to the features outlined in the readme. These have been in the codebase for a while, but haven't been available as a release.
The following features have been added:
- Custom Sets - Create your own sets from a series of images; useful for custom cards, tokens, and non-magic card games. Note that these set files contain image data; please only distribute custom set files if distributing the images themselves is permitted.
- "Auto-Detect Card Bounds" settings now gives a "Subtract Static Background" option. This is an experimental feature, but may prove useful if you cannot find a clean background to recognize from.
- Similarly, "Radius Recognition" is now an option for card boundary recognition, involving setting a circular area around where a card is expected to appear. This is an experimental option, and "Auto-Detect Card Bounds" remains the recommended option, but it may prove useful against non-clean backgrounds.
- A browser source option is available, allowing for an easy way to composite a card preview into a broadcast program such as OBS. This mostly consists of code from Nifty Recognizer, with a few modifications to connect to YamCR properly.
Additionally, this release now uses the .yam format for set files. This is a zip-format file that is needed for several of the new features. Old set files will no longer load, and can be safely deleted.
I do intend to return to developing YamCR more actively at some point, but paper magic hasn't been a high priority for me through the global pandemic. Thank you for your patience :)
Collection Manager
Not a long changelog, but an anticipated one:
- Added collection manager
- Save and load (tab-separated) csv files
Big Improvements, Milestone Release
Exciting stuff here! This release introduces a card-detection algorithm that removes the need to manually select where a card is in frame.
In addition, some new recognition strategies have been added. The Perceptual Hash Narrowing strategy manages to speed up recognition quite a bit -- to the point where detection of any printed magic card is now possible in real time! This is very memory intensive for now, so the included run.bat file (for windows users) allocates 6 GB toward java's memory. Feel free to lower this, though your mileage may vary.
UI Improvements and various fixes
The UI should be much better for loading and generating sets now.
- Changed the set loading panel to a more useful view. It's now sorted by release date, and shows all sets, not just generated ones. Double click to load a generated set, or press "generate selected" to generate the sets you select.
- Added the ability to reposition the recognition area in a useful way (see readme)
- Fixes to generating certain card types. Whatever weird layout, YamCR now handles it.
- Some technical changes will make it far easier for build and release now. Dependencies are totally mavenized.
Grab YamCR from the link below
🍠 📷 🎴
Some more fixes and new features
It's been a little while, eh? Turns out I've had time to learn computer vision concepts a bit more academically, so that'll hopefully be useful.
In this version:
*Custom Decklists should actually function now
*A new option on the settings pane to re-select your webcam source without closing the program
*A new preprocessing step to hopefully get better recognition in general, especially on cards with dark or low contrast artwork. May not play well with old set files, but shouldn't entirely break functionality
I'm hoping to improve recognition speed and rework the GUI to be more... usable in the future.
~404
Hotfix
Updated scryfall bindings, app now works again (whoops)
Rebranded as "YamCR"
Renamed the program to "Yet Another Magic Card Recognizer", or YamCR for short, with a snazzy logo to boot! (Really, who wouldn't want to be associated with root vegetables?)
Some needed improvements as well:
Ability to generate custom lists of cards to recognize from. Hopefully this will become less needed as I implement more advanced card recognition strategies, but necessary for the moment.
A card's image will only be loaded if the card preview pane is currently open. Huzzah, bandwidth savings!
Framework for implementing better card recognition strategies. This removes the ability to individually unload sets, but it's a minor price to pay for ease of development.
Minor bugfixes, including the set pane scrolling at a reasonable speed when using the scroll wheel.
Some updates
Lots of changes:
Better support in the context of the current scryfall API
Ability to add IP web cameras via ipcams.txt
Ability to update outdated sets, in case a set was generated during spoiler season
Ability to select the type of sets to generate in the set generation window
Very Alpha (Hi Reddit!)
Been working on this for a while. Accuracy should be decent.
(Whoops, attached the wrong file. Fixed.)