Photometric stereo is a form of computer vision for estimating the normals from different conditions.
We can actually achieve this at home for very little cost and effort. Here’s how you can do it too.

Example of my prototype setup:

Build the environment to shoot in. Ideally it is flat and has a neutral white, grey, or dark bottom to make masking as easy as possible later. It needs to be made of a translucent enough material that lets light through and diffuses it nicely (like kitchen paper).
You need a light source that you can reposition around the capture environment. If not possible you can always rotate the capture environment/objects instead, but then you also have to rotate the camera with it in order to prevent manually aligning the pictures later, which can be a major headache and negatively impact the quality of the end result.
Ideally you have a neutral colored light (~6500K) but if not you can/should correct your camera settings to adjust. Otherwise you can also do it later in post.
The camera needs to be fixed and not move even a millimeter during capturing. You also need to disable all automatic features such as white-balance, exposure, etc.
Shoot 4 (the minimum) images capturing light coming from the top, right, bottom, and left of the object.
Get the images on your computer, do any required color balancing to make them as neutral as possible, and crop them to a power of 2 size for use in the DCC. Ensure that all the captures line up exactly and that nothing shifted during the capture process. Misaligned captures will negatively impact quality.

(mine here are obviously not white-balanced - something I had to fix later)
Substance Designer
If you have access to Adobe Substance Designer you can use the Multi-Angle to Normal and Multi-Angle to Albedo.
Material Maker
If you don’t, then you can use use the custom node I made for Material Maker which you can find here:
Multi-Angle to Normal & Albedo - Material Maker custom nodes

