我是AI界的新手,尝试一些练习。 看起来我需要一些第三方体验。OpenCV用于图像处理的神经网络
比方说,我需要摆脱图像缺陷(实际上任务更棘手)。 我希望受过训练的NN能够插入缺陷区域。
由于这些原因,我尝试创建简单的神经网络。 它有输入:具有deffect(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);
培训了10项数据集NN给出了关于这个(下同)投入坏的结果。我尝试了不同的参数
但是仅对2幅图像进行训练NN获得接近的输出(在训练数据上)。
我想,这不是正确对待和解决方案也不是那么容易。
也许有人对参数或神经网络架构或整体方法有一些建议。