Hello Erfan,
EdgeDetect[img, r] (with r = 2, 3 or 4) does a good job finding boundaries. It's sensitive and it has a good location accuracies.
However, if you are seeking a good and consistent segmentation of all the fields and roads try ClusteringComponents[img].
Training a neural net may eventually return better results, but it takes quite some effort.
We are working on next generation foundation networks to provide you better solutions in upcoming versions.