так как вопрос задан в общем то и ответ будет общим
фаза 0 - выбираешь, что именно будет отдано на откуп ии а что на opencv
фаза 1 - собираешь обучающие данные
фаза 3 - создаешь нейронную сеть (выбор алгоритма/архитектуры, выбор гиперпараметров типа количества слоев)
фаза 4 - обучение (подготовка данных в нужном формате, деление выборки на обучающую и тестовую, обучение, периодическое сравнение метрик качества на основной и обучающей для выявления переобучения)
фаза 5 - создание алгоритма для проверки эффективности результата
все это заворачиваешь в цикл от фазы 0 до 5 до тех пор пока метрики эффективности для тебя не станут достаточными.
p.s. советую для начала остаться на opencv и понять, где именно у тебя тормоза, займись для начала профилированием, какой именно алгоритм у тебя занимает большее время, и попробуй его заменить на что то по проще.
очень часто, вместо сравнения изображений, может хватить сравнение их частей или каких то быстро вычисляемых характеристик... возможно тебе достаточно будет сравнить несколько точек?