i suggest you to use ED_Lib which finds circles and ellipses efficiently. I want to add it in OpenCV Contrib but did not find enough time to complete yet. anyway i can help you if you want to add its source in OpenCV and use it with python.
you can test it if you compile OpenCV adding edlib directory in modules
sample python code produces the image below:

import cv2
img = cv2.imread('16016470376420309.jpg')
circles = cv2.testEDCircles(img)
if circles is not None: # Check if circles have been found and only then iterate over these and add them to the image
_a, b, _c = circles.shape
for i in range(b):
cv2.circle(img, (circles[0][i][0], circles[0][i][1]), circles[0][i][2], (0, 255, 0), 1, cv2.LINE_AA)
cv2.circle(img, (circles[0][i][0], circles[0][i][1]), 2, (0, 255, 0), 1, cv2.LINE_AA) # draw center of circle
# show the output image
cv2.imshow("output", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
(I can't see any circles in the image, do it might be hard for OpenCv too...)
yes you're right. i updated my image to be more clear.