This puzzle is a combination of a U-Bahn and a Nurikabe (without the restriction on 2x2 areas).
If you are unfamiliar with U-Bahn, here is a guide that covers the core logic.
Draw a loop network through the centers of some empty cells, which may branch or turn, but may not have any dead ends.
A clue outside the grid indicates how many times the corresponding line shape (i.e. a cross, branch, straight line, or turn) appears in the corresponding row or column, irrespective of the line shape's rotation.
Every orthogonally connected area of cells not visited by the loop network contains exactly one clue, the value of which represents the size of the area. A "?" can represent any non-zero size.