gpt4 book ai didi

c++ - 用于图像处理的 OpenCV 神经网络

转载 作者:搜寻专家 更新时间:2023-10-31 02:10:49 26 4
gpt4 key购买 nike

我刚接触 AI 世界并尝试一些练习。看来我需要一些第三方经验。

假设我需要消除图像缺陷(实际上这个任务更棘手)。我希望经过训练的神经网络能够对缺陷区域进行插值。

出于这些原因,我尝试创建简单的神经网络。它有输入:有缺陷的灰度图像(72 * 54)和没有缺陷的相同图像。隐藏层有2*72*54个神经元。

主要代码

   cv::Ptr<cv::ml::ANN_MLP> ann = cv::ml::ANN_MLP::create();

int inputsCount = imageSizes.width * imageSizes.height;
std::vector<int> layerSizes = { inputsCount, inputsCount * 2, inputsCount};
ann->setLayerSizes(layerSizes);
ann->setActivationFunction(cv::ml::ANN_MLP::SIGMOID_SYM);

cv::TermCriteria tc(cv::TermCriteria::MAX_ITER + cv::TermCriteria::EPS, 50, 0.1);
ann->setTermCriteria(tc);

ann->setTrainMethod(cv::ml::ANN_MLP::BACKPROP, 0.0001);

std::cout << "Result : " << ann->train(trainData, cv::ml::ROW_SAMPLE, resData) << std::endl;
ann->predict(trainData, predicted);

我的训练数据集看起来像 enter image description here

在 10 个项目数据集上训练 NN 在这个(相同)输入上给出了糟糕的结果。我尝试了不同的参数 enter image description here

但仅在 2 张图像上训练 NN 得到接近的输出(在训练数据上)。

enter image description here

我想这不是不合适的方法,解决方案也不是那么容易。

也许有人对参数或神经网络架构或整个方法有一些建议。

最佳答案

终止标准似乎只适用于两个样本,但在训练大量样本时不够好。一定要尝试调整它们,还有学习率。从已正确恢复的像素质量来看,网络架构似乎适合这项任务。一旦网络在 10 个样本上运行良好,我强烈建议添加更多训练样本。

关于c++ - 用于图像处理的 OpenCV 神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44640599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com