Hello Explorers!
I've written an OCR library that will process screenshots of the system map and extract information from the leftmost portion of the screen where object description and detail information are located. You can later browse this information in a sortable grid with filtering.

This will allow you to get all detail scan data of the object -- e.g. atmostphere and surface temperature, also including mining reserves and terraforming status -- as a text in either XML or a more human-readable format. My sample application includes a sortable grid with row filters etc.
Current Version: Beta3 "Horizons" Fix 2
Main Features:
You can get the program at GitHub: https://github.com/ThoroughlyLostExplorer/ExplOCR/releases/download/TagBeta4-1.7/ExplOCRbeta3-for-Guardians2.2.zip
Current version is for 1920x1080 and 1920x1200. I'm looking forward to hearing from you if you need support for another resolution.
I'd like to thank CMDR Finwen who was kind enough to test the program during closed beta!
Please try out the program and let me know what you think. Remember that I rely on your feedback to improve the program.
(Please note the install and usage notes below.)
Best regards,
ThoroughlyLostExplorer
PS: I don't like to announce upcoming features before they are ready. This time around I'll make bit of an an exception and mention that I'm hoping to soon connect to a popular exploration-related website that has an API to post data to it. As always, I'd be glad to hear from more developers about connecting exploration OCR to their programs.
Beta 2 Users Upgrading from Beta 1 or Beta 2: Please read my Sep 13 post!
Additional Information, Program Usage Overview, Limitations:
I've written an OCR library that will process screenshots of the system map and extract information from the leftmost portion of the screen where object description and detail information are located. You can later browse this information in a sortable grid with filtering.

This will allow you to get all detail scan data of the object -- e.g. atmostphere and surface temperature, also including mining reserves and terraforming status -- as a text in either XML or a more human-readable format. My sample application includes a sortable grid with row filters etc.
Current Version: Beta3 "Horizons" Fix 2
Main Features:
- Puts all information about your discoveries in one location.
- Easy to use: Just press <Ctrl>-<Alt>-<Shift> with an object selected in the system map, the program does the rest for you.
When the program presents you the results, click Save to add your screenshot to the archive and data to the database. - Directly add a custom description or custom categories separated by newlines.
- Automatically stitch screenshots that don't fit on a single screen (e.g. rings) together.
- System name taken from network log, body name within system scanned from the screenshot.
- Check OCR quality at a glance: Intuitive display of your screenshot underlines "good" letters in green, less good letters in yellow or red.
- Big friendly Kerbal-coloured button to open the archive browser / table view.
- Grid view with easy sorting and filtering. Columns selectable.
- Grid allows editing to correct any reading mistakes. Re-Read the screenshot from archive to restore original.
- Review your archived screenshots in grid view unsing a handy fold-out tab.
- Cut & paste data from the grid to your favourite spreadsheet.
- It is also possible to load screenshots, so you can process an existing archive to extract data.
- Custom screenshot key combinations. [NEW]
- Custom database file / screenshot archive directories. This allows per-trip databases. [NEW]
- Found an interesting planet, e.g. with a thin atmosphere made of gaseous rock? Tell people about it without having to type it off:
SYSTEM Stock 1 Sector MS-S c4-8
BODY 2e
DESCRIPTION Rocky World
EARTH_MASSES [0.0039]
RADIUS [1104] KM
SURFACE_TEMP [131] K
VOLCANISM_TYPE NO VOLCANISM
ATMOSPHERE_TYPE NO ATMOSPHERE
COMPOSITION [91] % ROCK
[9] % METAL
ORBIT_PERIOD [8.5] D
ORBIT_MAJOR [0.01] AU
ORBIT_ECCENTRICITY
[0.0001]
ORBIT_INCLINATION [-0.61] DEG
ORBIT_PERIAPSIS [149.62] DEG
ROTATION_PERIOD [-8.5] D
ROTATION_LOCKED NO
ROTATION_TILT [128.71] DEG
BODY 2e
DESCRIPTION Rocky World
EARTH_MASSES [0.0039]
RADIUS [1104] KM
SURFACE_TEMP [131] K
VOLCANISM_TYPE NO VOLCANISM
ATMOSPHERE_TYPE NO ATMOSPHERE
COMPOSITION [91] % ROCK
[9] % METAL
ORBIT_PERIOD [8.5] D
ORBIT_MAJOR [0.01] AU
ORBIT_ECCENTRICITY
[0.0001]
ORBIT_INCLINATION [-0.61] DEG
ORBIT_PERIAPSIS [149.62] DEG
ROTATION_PERIOD [-8.5] D
ROTATION_LOCKED NO
ROTATION_TILT [128.71] DEG
You can get the program at GitHub: https://github.com/ThoroughlyLostExplorer/ExplOCR/releases/download/TagBeta4-1.7/ExplOCRbeta3-for-Guardians2.2.zip
Current version is for 1920x1080 and 1920x1200. I'm looking forward to hearing from you if you need support for another resolution.
I'd like to thank CMDR Finwen who was kind enough to test the program during closed beta!
Please try out the program and let me know what you think. Remember that I rely on your feedback to improve the program.
(Please note the install and usage notes below.)
Best regards,
ThoroughlyLostExplorer
PS: I don't like to announce upcoming features before they are ready. This time around I'll make bit of an an exception and mention that I'm hoping to soon connect to a popular exploration-related website that has an API to post data to it. As always, I'd be glad to hear from more developers about connecting exploration OCR to their programs.
Beta 2 Users Upgrading from Beta 1 or Beta 2: Please read my Sep 13 post!
Additional Information, Program Usage Overview, Limitations:
The library may be of use to explorers who wish to gather and record detailed information about a scanned object in a format that makes it accessible for further processing. Even with just the test application, cutting and pasting from the grid should combine well with your favourite spreadsheet to do anything from statistical analysis to pretty pie graphs of planet types.
My goal in developing the library is primarily to use it for my own favourite gameplay experience, which involves browsing large tables of all the objects I happend to scan. Did you ever wonder what the (in-game) distribution curve of Jovian planet mass is -- uniform, normal, or something else? Well, I'd hate to have to scan 100 new Jovians just because I made up that question after a pint too many. I'm looking to use my previous records to find the answer in this kind of situation.
While this style of gameplay will probably not appeal to many, I've come to think that there may be explorers out there who would have their own, different use of the same data and are, like me, too plain lazy to type it all off. So I've decided to release my library with public license, just in case someone might find it useful.
While the library would most typically be used in a component of somebody's program, or as a tool executable called by that program, I have decided to wrap it up in a .NET executable file to make it easier for others to try it out. This executable file includes a very basic browsable grid so you could e.g. check if any of your bodies break a UC record.
Liability: None. Not even in-game, don't blame me for any embarrassment: Should you be using this as a tool for UC record hunting, double check any finds
Limitations: There are a number of things the program might be expected to do but can't do currently. Some of these things it can't do because it is still in beta, and some of these things will never be included unless someone else decides to contribute. Please don't be disappointed if it can't:
License: ExplOCR.exe has an Apache 2.0 license. So its free, you can see the source and do lots of things with it. Note that it uses OpenCV 2.4.10 (for the neural net) and LibEmgu 2.4.10 (for connecting to OpenCV), which have different "free" licenses. I have included their license notes.
Installation: Download theExplOCRbeta1.zip archive from the GitHub link above. Unpack into a directory of your choice. The program itself should work without additional installation. Unfortunately, I'm currently not checking if your system as a whole meets all requirements.
You will need the following:
Usage:
Feedback: When reporting bugs, please check if the same bug has been reported before. I think GitHub has an error tracker, so you might check there if things have already been reported and then add your bug as an issue. This would help me to fix it.
I'm interested in receiving screenshots that don't work so I can improve accuracy. Since Screenshots tend to be largeish, PM me first to see if I still need samples.
My goal in developing the library is primarily to use it for my own favourite gameplay experience, which involves browsing large tables of all the objects I happend to scan. Did you ever wonder what the (in-game) distribution curve of Jovian planet mass is -- uniform, normal, or something else? Well, I'd hate to have to scan 100 new Jovians just because I made up that question after a pint too many. I'm looking to use my previous records to find the answer in this kind of situation.
While this style of gameplay will probably not appeal to many, I've come to think that there may be explorers out there who would have their own, different use of the same data and are, like me, too plain lazy to type it all off. So I've decided to release my library with public license, just in case someone might find it useful.
While the library would most typically be used in a component of somebody's program, or as a tool executable called by that program, I have decided to wrap it up in a .NET executable file to make it easier for others to try it out. This executable file includes a very basic browsable grid so you could e.g. check if any of your bodies break a UC record.
Liability: None. Not even in-game, don't blame me for any embarrassment: Should you be using this as a tool for UC record hunting, double check any finds
Limitations: There are a number of things the program might be expected to do but can't do currently. Some of these things it can't do because it is still in beta, and some of these things will never be included unless someone else decides to contribute. Please don't be disappointed if it can't:
[*=1]Launch. Or work reliably. Or do anything without a crash. Well, it's a beta. I'll try to patch up bugs as they appear. Chances are it will work for most people without problems.
[*=1]Work with very high screen resolutions. I use a resolution of 1920x1080. From closed beta I know that 1980x1200 also works. I think that higher resolutions can be made to work in the future.
[*=1]Work with space stations, powerplay control info etc. The program focuses on exploration, so I will try to ignore any traces of civilisation.
[*=1]Interpret discovery tags. I ignore them when reading.
[*=1]Detect object type in every case. It may look trivial, given that the OCR can read numbers rather well, but some object types differ only in one word (star color) and surface temperature. With those, there is a margin of error.
Type detection should work well in the vast majority of cases, but always keep an eye on the detected object type and possibly PM me -- I might want to see the screen shot that caused it to fix the problem.
[*=1]Work at 100% accuracy. On my system, accuracy is quite good and much better than my accuracy when typing. I'm looking to progress to "very good accuracy" in due time, and maybe to "uncanny accuracy" if I can make it. Remember, this is a beta!
License: ExplOCR.exe has an Apache 2.0 license. So its free, you can see the source and do lots of things with it. Note that it uses OpenCV 2.4.10 (for the neural net) and LibEmgu 2.4.10 (for connecting to OpenCV), which have different "free" licenses. I have included their license notes.
Installation: Download theExplOCRbeta1.zip archive from the GitHub link above. Unpack into a directory of your choice. The program itself should work without additional installation. Unfortunately, I'm currently not checking if your system as a whole meets all requirements.
You will need the following:
[*=1]ExplOCR.exe uses .NET 4.5. I'm not sure if it will run on systems that have only .NET 4.0. If it doesn't, let me know and I'll try to build against 4.0.
[*=1]ExplOCR.exe uses OpenCV and LibEmgu, which have requirements of their own. The only thing you need to worry about is having the right Visual C++ runtime installed. I can't legally include those in my GitHub repository (I think). Often, these runtimes will already be present on your system and all will be fine. If something doesn't work, get the "Microsoft Visual C++ 2010 Redistributable" and ""Microsoft Visual C++ 2013 Redistributable" for 32 bit / x86 downloadable from Microsoft free of charge.
[*=1]For data import when upgrading: Beta1 or Beta2 Users Read post at thread end please!
Usage:
[*=1]Start up the program. If all goes well, it will display the main window.
[*=1]Minimize the program.
[*=1]When the game is running (preferrably in full-screen borderless mode), select an object in the system map.
[*=1]Then press <Ctrl>-<Alt>-<Shift> (this is an easy key combo for my program to listen for while it is in the background) to take a screenshot and bring my program to the foreground. Read below on fow to change this combination!
[*=1]The program window should now look like this:
[*=1] The left portion of the windows is the screenshot. The program has added underlining to showhow well it was able to read letters: Green is good, Red is bad. This will tell you at a glance where any misinterpretation of letters/digits may have occurred.
The top right portion is where the program will propose system name and body letter/number code. This works well only if you are currently in the system where the screenshot was made beacuse it uses your net log.
[*=1]The checkbox "Await Image Stitch" tells the program that you are about to take a second screenshot showing a portion of the body information beneath the current one. A typical example are rings, where the ring info often extends beyond what the game can show on the info screen at an time.
To handle this properly: Make your first screenshot showing the top. Check the checkbox. Clicking Save will minimize the window, but it will keep waiting for the second screenshot. Scroll down in game to show more of the body info. Make second screenshot. Information is stitched together as if it was one screenshot all along. Note that the check box has been unchecked for you. Now save as normal! (In theory, you can chain this but I never found a planet with that many rings...)
Please note: Use the quick-edit box only after you are done stitching, otherwise you would lose the edited version and stitch to the original.
[*=1]Beneath the checkbox, you can enter your own custom description and custom category strings. It should be possible to e.g. filter the grid for custom categories. One category per line please.
[*=1]Shown beneath that is the data in a more human-readable form. You should find everything in the screenshot in this printout (well, everything that I thought was important). The numbers should almost never be misread (-> PM me if you find an example where it is wrong). A number may turn up a 0 if nothing could be read there (-> I'm also interested in these cases, though they are not quite as rare as to justify a PM for each). The Body type should be correct in most cases, though it is sometimes misidentified. Look into Configuration\Descriptions.xml to see what the code for the body type means.
[*=1]Use the Edit button if something has been misread to fix it before saving.
[*=1]As an alternative to making a screenshot directly, you can also load a screenshot from file using menu File / Open.
[*=1]The program will read your net log to determine the system you are in. Configure your log location in menu Config.
[*=1]Use the Save button or hit return while the body number field has focus to add the XML to a savefile and the screenshot to an archive (-> paths beneath the program's directory).
[*=1]A quick workflow while supercruising to the next scan is: Open system map, <Ctrl>-<Shift>-<Alt>, Save, <Return> and the program nimizes, putting you back in the system map.
[*=1]Use the big friendly "Browse Archive" button to stop taking screenshots and browse the archive.
[*=1]Data table is on the left, selected body data is in the center. The right tab can be folded in or out depending on wether you need it. It shows either the original screenshot or text that represents the current, possibly edited, grid row state.
[*=1]The table filter uses a format described in Microsoft's documentation for DataView https://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(v=vs.110).aspx -- e.g. DESCRIPTION LIKE 'Planet*' filters planets.
[*=1]The page is mainly for browsing. You can also edit, though. To do this, uncheck the ugly nasty looking "Read Only" checkbox. Be sure to backup your data file systems.xml! Editing worked fine for me, but don't come running to me should the program screw up your precious data. Yesssss my preciousss, check box must be checked again so nasssty editses won't ruin our data!
[*=1]Editing will make the text fields and grid in the center section be available for inputs. In theory, you can even add new lines to the grid. Don't be angry if that doesn't work.
[*=1]Re-Reading the original screenshot counts as editing.
[*=1]Use "Save" to write any changes back to the main grid, or "Cancel" ro reset your changes and keep the original main grid data.
[*=1]Configure the save location of your database "systems.xml" and your screenshot archive in menu item "Config" / "Save Directories" [NEW]
[*=1]Configure your screenshot key comination in menu item "Config" / "Screenshot Key Combination". This will open a little dialog where you can either select the default combination or record a custom key combo. When recording, it is ok to press the keys sequentially, btw. when choosing a combination, please remmeber that I'll make no attempt that the game is running as active window, so make sure you don't overlap a combination used elsewhere. [NEW]
Feedback: When reporting bugs, please check if the same bug has been reported before. I think GitHub has an error tracker, so you might check there if things have already been reported and then add your bug as an issue. This would help me to fix it.
I'm interested in receiving screenshots that don't work so I can improve accuracy. Since Screenshots tend to be largeish, PM me first to see if I still need samples.
Attachments
Last edited: