Preheat the oven to 350°F (175°C) and grease the muffin tin or line it with muffin liners.
In a mixing bowl, whisk together the flour, baking powder, baking soda, salt, cinnamon, nutmeg, and ginger. Set aside.
In another bowl, combine the pumpkin puree, granulated sugar, brown sugar, vegetable oil, eggs, and vanilla extract. Beat until smooth.
Gradually add the dry ingredients to the wet ingredients, stirring just until combined. Be careful not to overmix.
In a separate bowl, prepare the cream cheese filling by mixing the softened cream cheese, powdered sugar, and vanilla extract until smooth.
To make the streusel topping, mix together the flour, brown sugar, rolled oats, and cinnamon in a bowl. Stir in the melted butter until crumbly.
Fill each muffin cup halfway with the pumpkin muffin batter. Add a spoonful of the cream cheese filling in the center of each cup, then cover with remaining batter, filling each cup about ¾ full.
Sprinkle the streusel topping generously over each muffin.
Bake in the preheated oven for about 20 minutes or until a toothpick inserted in the center comes out clean.
Allow the muffins to cool in the pan for 5 minutes before transferring to a wire rack to cool completely.