The main idea is that a hyperplane $H_{a,b}(x) = a^\top x + b$ defined by parameters $a,b$ gives a halfspace $X = \{x : H_{a,b}(x) \geq 0\}$ that is positive homogenous. That is, for $\hat{X} = \{\hat{x}: H_{a/t,b/t}(\hat{x})\geq0/t\}$ and $t>0$ (to preserve the direction of the inequality), we have $X=\hat{X}$.
To see this, take some $x\in X$.
Fix $t>0$.
Then $a^\top x + b \geq 0$. This means that $$(1/t) \times (a^\top x + b) = (a/t)^\top x + (b/t) \geq 0,$$ so that $x\in\hat{X}$.
For the other containment, take some $\hat{x}\in\hat{X}$.
Then $$(a/t)^\top\hat{x} + (b/t) = (1/t) \times (a^\top \hat{x} + b) \geq0$$
so that $\hat{x} \in X$.
Thus $X=\hat{X}$.
For strict inequalities, we can do a $0<\epsilon\ll1$ argument and send $\epsilon\to0$.
That is, we know $$a^\top x + b > 0 \iff a^\top x + b \geq \epsilon$$ for $\epsilon>0$.
But sending $\epsilon\to0$ will give us a "$\geq$" inequality in the limit. This is why the "$\geq$" appears, and by the previous argument involving positive homogeneity, we can scale the RHS to 1 (and move the $b$ term around).
The same sort of argument should work for the other half of the hyperplane, i.e., the "$\leq$" part.
So in the solutions, the $a$ and $b$ are probably "different" but still characterize the same set. And we could take $b=0$ after making the RHS $\pm1$.