Lot's of great answers and opinions already. As you're already pretty clear on the role of the PO, the bottom line in my view is:
Does the Product Owner comes from the software company or from the customer?
In an ideal world, the product owner would be someone from the customer. This ensures a direct dialogue with the customer, which makes them fully invested in the team and project. This is supported by one of the cornerstones of the Agile manifesto: Customer collaboration over contract negotiation.
However, most situations are far from ideal, which brings us to:
In the particular case it can come from both parties, in the scenario
where a customer has no idea about agile planning is it safe to assume
the Product Owner will come from the software company?
Not safe to assume, but likely to happen in real life situations.
You'll need to educate your customer on agile planning so they understand the project process. If you have one main contact at your customer, you can set him up for a role as product owner. If the budget's there, train your client.
If a customer PO is not an option, which often happens, you'll end up having an intermediary PO on your side. This PO will represent the customer / stakeholders during the project. You will need to explicitly tell the client that someone on your side is calling the shots on their behalf.
The risk in this, is not working directly with the client during the project. They won't get invested as much in the project as they would working directly with the team. It will be harder to manage customer expectations, as they're not directly involved with the team. It may end up as a waterfall project front with scrum under the hood.