То, что вы хотите сделать, полностью выполнимо, этот тип проекта называется регрессия , поскольку вы используете данные изображений, лучший тип моделей называется сверточная нейронная сеть (CNN) вам понадобится некоторое понимание, если вы хотите построить свою собственную модель. Я выполнил проект, в котором мне нужно было предсказать количество бактериальных колоний, используя изображение, очень похоже на вашу проблему, за исключением того, что у меня не было границ с предсказанными значениями.
Что такое CNN? Вот ссылка
В основном CNN понимает функции изображений и будет использовать эти функции для прогнозирования значения.
Вам не нужно создавать свою собственная модель, большинство людей просто используют хорошо разработанную модель в научной литературе c.
Go для керас, это самый простой фреймворк, который работает как шарм. Вот как реализовать VGG16 (архитектура, которая, вероятно, лучше всего подходит для вашей проблемы): ссылка
Вы должны следовать этому учебнику , чтобы приступайте к разработке с помощью keras.
Последний совет: не используйте тот же последний слой, что и в реализации VGG16, используйте Dense Layer с одним нейроном и с сигмоидом / линейным / неплотным relu активация.
ie:
#model.add(Dense(1000, activation='softmax'))
model.add(Dense(1, activation='sigmoid'))
Это означает: предсказать 1
число (сигмоида ограничит его от 0 до 1, но, возможно, лучше использовать lrelu или linear )
Кроме того, я думаю, вы могли бы использовать MongoDB для чтения изображений в виде массивов, но я бы просто поместил изображения в папку.
Редактировать: при компиляции модели используйте mean squared error
как в
adam = keras.optimizers.Adam(lr=1e-4)
model.compile(optimizer=adam, loss='mse')