Я бы попробовал цветовую сегментацию, подобную этой обучающей программе , в качестве первого шага, чтобы отделить монеты от фона. Вот моя небольшая попытка в Python с использованием OpenCV:
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread("coins.jpg")
lower = np.array([0,40,5])
upper = np.array([255,255,255])
mask = cv2.inRange(hsv, lower, upper)
cv2.imshow(img)
plt.show()
plt.imshow(mask)
Это выводит нас из входного изображения
![enter image description here](https://i.stack.imgur.com/ftlig.png)
к этой маске:
![enter image description here](https://i.stack.imgur.com/LOdmL.png)
Отсюда, используя анализ BLOB-объектов и фильтр размеров, вы сможете найти и отделить неподключенные монеты. Отключение перекрывающихся областей может быть достигнуто с помощью активных контуров , или, поскольку ваша цель - создать набор тренировочных данных, сдвинув монеты перед съемкой.