Object segmentation and machine learning

I have an early Christmas present for scenProc users, today I have push a new development release of scenProc that contains exciting new features for the texture filter that I have been working on the last months.

About half a year ago I start to explore how I could make the vegetation detection in the texture filter more accurate and easier to use. I found a number of interesting articles about this in the literature and soon it became clear that all of them were using an object based classification, instead of a pixel based classification. And most were also using the Support Vector Machine (SVM) machine learning algorithm for the actual classification. So I have been working on adding these two features to scenProc as well and from the testing and experimentation I have done until now I think this will indeed make detection of features in imagery easier.

Below is a video tutorial I made about these new features. I would also mention the sample that is provided in section 6.3.5 of the manual. That should be a good starting point to start experimenting for your own project. And if you have questions or suggestions on how to improve this functionality, feel free to post them on the scenProc forum at FSDeveloper.com.

Texture filter configuration file format changed

The latest development release of scenProc adds a new file format to export the texture filter configuration file to. This new format is called the TF2 format and will replace the TFC format in the future. For now scenProc will support both formats, but I have some changes in development that will give backwards compatibility issues with the old TFC format. That is why this new format has been added now.

As I know developing a texture filter configuration file for complex feature detection can take a lot of time, it is important that developers can easily convert their existing configuration to the new format. There are two ways to do this:

  1. You can open the TFC file in the texture filter editor and then save it in the new TF2 format.
  2. You can use the tfc_to_tf2 command line conversion tool.

Once I have released the features in development now that will break the backwards compatibility option 2 will be the only way to convert your existing work.

Processing scenProc scripts in batch

The scenProcBatchRunner tool has been expanded in the latest development release of scenProc. With this tool you can run your scenProc scripts in a batch file, passing different variables to each run of the same script. By using multiple scenProcWorkers you can also speed up the processing of your scripts. And the new Workflow Feeder mode allows you to setup a entire workflow for your project and easily run that over a big area. The video tutorial below explains this all in more detail.


Creating photoreal scenery with scenProc

With the latest development release of scenProc it is possible to create photoreal scenery BGL files directly from scenProc. In your script you define which raster and vector data is used to create the photoreal. In a texture filter configuration file you define how the raster data should be processed before it is handled to resample for the BGL creation. The process also allows you to create watermasks, blendmasks, night or seasonal variants. The video tutorial below gives an overview of the possibilities.

scenProc improvements

The latest development release of scenProc contains a number of interesting improvements.

  1. The available steps for the texture filter have been expanded to include steps to calculate the Normalized Difference Water Index (NDWI), Urban Water Index (UWI) and Urban Shadow Index (USI). With those additional steps it becomes easier to detect water from images as well. Sections 6.3.3 and 6.3.4 of the manual show example scripts using these new steps.
  2. The ExportGDAL step can now also call a texture configuration file. That way you can run a texture filter on the raster data before exporting it to disk. This would for example allow you to export the watermask that you have detected with the new texture filter steps described above to a GeoTIFF file and use it in other applications.
  3. I have unlocked two additional features of scenProc that were previously only available to selected projects. But as these features are more complex they deserve their own blog post with a video tutorial. So I will upload those ones the video tutorials are done.

I have another interesting feature in development. I am currently experimenting with using machine learning in the feature detection process. Hopefully that will make the results even better and hopefully also easier to adapt a script for different input images. But as I am still learning how to do this, I can’t give an estimation when this feature will be ready.

XtoMDL special characters

On the FSDeveloper forum there are regularly questions about why XtoMDL does not compile a certain object. XtoMDL then usually throws a bunch of not so clear errors, as shown in the picture below. One of the common causes for such errors are special characters.

Let me start by saying that what I call special characters here, characters like é or ç, are very common characters to use in many languages. So it might well be that your Windows username contains some special characters or something like that. But XtoMDL is very picky and does not like them. I have analyzed which situations give issues:

  1. If you use special characters in the model name or in texture names, they are lost on export to the MDL file. Therefore FS will also not render the texture correctly. There is no error from XtoMDL in this case and a MDL file is still created.
  2. If you use a special character in the filename of the MDL file there is no problem, this is allowed and works fine.
  3. If you export the MDL to a folder that contains a special character than XtoMDL throws the error shown in the image above is given, no MDL file is created in this case. You should thus make sure that you always export to a location where the path contains no special characters. That means if your Windows username has some of these characters that you should not export to your desktop or places like that.

The latest development release of ModelConverterX also helps you with the special characters. For situation 1 described above a warning message will be shown in the log that informs you that information will be lost on export. For situation 3 ModelConverterX writes a clear error message in the event log and stops the export. So this way you don’t get the unclear XtoMDL error anymore, but a clear error message that tells you want you need to change.

YouTube links

After the accidential loss of the FSDeveloper YouTube channel a few months ago, I have uploaded most of the video tutorials related to my tools to a new channel. Today I have tried to update as many links in the posts and pages on this website to point to the new channel. But if you find an old post that still has an invalid link, just let me know by posting a comment or sending an email.

Material color to vertex colors

The latest development release of ModelConverterX adds a new drawcall optimization option for MSFS. It is now also possible to copy the color of the material color to the vertex colors. That allows multiple parts with the different colors to be rendered in one drawcall, if the remainder of their material settings is the same.

This new option is accessible in two places:

  • In the Hierarchy Editor you can right click on a model part to perform this action.
  • In the Drawcall Minimizer in the Material Editor there is a checkbox where you can select that material colors are copied to the vertex colors. If this option is not checked, the material colors will be replaced by textures, as the previous implementation always was.

Hopefully this new feature gives you more options to optimize models for MSFS.

Command line conversion

ModelConverterX is primarily a tool with a graphical user interface, but did already have some command line arguments to load objects or apply batch conversions. These command arguments have now been modified to support easy conversion between formats from the command line as well. This can be useful if you want to integrate ModelConverterX somewhere in your modelling workflow automatically. Check the new chapter in the manual for all details.