I would proceed like this:
- When starting the application, do an initialization where you are loading the needed files (like the vocabulary and classifier files). This should be done only once at the beginning. Then, for every image you want to process, you'll have the data you'll need. For example, this can be done in the constructor of the class (or in a global variable, if you are not using OOP, which is not so good).
- I think using .xml will be smaller than the .yaml/.yml. I have done some tests (in the same idea: saving vocabulary of BOW) and in my cases it was always smaller.