神经网络用以变形文本矫正系列第九篇

0.前言

上一篇通过实验确定了针对于本研究课题的网络结构,选择四层网络结构,网络节点数为(852,572, 225,5);但是在进行逆映射的时候,发现结果并不如意。所以本篇着重于实验是三个角度对于逆映射结果的影响。

1.实验结果

1.1 只改变pitch,采用预测的值

结果如下:



可以看到基本上和真实点保持一致

=============

这几天做的工作,总结一下。

1)重新生成实验样本,在刚开始的世界坐标里,加入缩放因子,而不是在得到图像像素坐标后加上缩放

2)训练以上样本,测试结果尚可,得到的结果都是近似矩形

2.1重新生成样本

在数据准备刚开始阶段加上缩放,代码如下:

 worldPositionArray = getWorldPositionArray()
    oneArray = np.ones((1, rowColNum))
    for scaleRatio in scaleRatioLst:
        scaleIndex = scaleRatioLst.index(scaleRatio)
        scaleResultWorldPosArray[scaleIndex] = scaleRatio*worldPositionArray[:-1, :]
        scaleResultWorldPosArray[scaleIndex] = np.vstack((scaleResultWorldPosArray[scaleIndex], oneArray))

2.2 生成样本

代码如下:

for scaleResultIndex in range(len(scaleResultWorldPosArray)):
        worldPosArray = scaleResultWorldPosArray[scaleResultIndex]
        #angle 
        samplesIndex = 0
        
        for pitchIndex in range(len(pitchAngleList)):
            for rollIndex in range(len(rollAngleList)):
                for headingIndex in range(len(headingAngleList)):
                    fileIndex = str(scaleResultIndex)+"_"+str(samplesIndex)
                    pitch_generate = pitchAngleList[pitchIndex]
                    roll_generate = rollAngleList[rollIndex]
                    heading_generate = headingAngleList[headingIndex]
                    #get result
                    #realWorldPositionTransform(samplesIndex, worldPositionArray, pitch_generate, roll_generate, heading_generate) 
                    totalGenerateResult(fileIndex, worldPosArray, pitch_generate, roll_generate, heading_generate)
                    #generate correspoding Zc Value
                    #generateZcFileAndData(samplesIndex, worldPositionArray, pitch_generate, roll_generate, heading_generate)
                    samplesIndex = samplesIndex + 1

2.3 训练网络实际结果

训练过程缩略如下:

483600/486000 [============================>.] - ETA: 0s - loss: 4.7297e-04 - acc: 0.9883
484800/486000 [============================>.] - ETA: 0s - loss: 4.7285e-04 - acc: 0.9883
486000/486000 [==============================] - 22s 45us/step - loss: 4.7224e-04 - acc: 0.9883
Epoch 00026: early stopping

Testing ------------

   200/121500 [..............................] - ETA: 10s
121500/121500 [==============================] - 3s 25us/step
test cost: [0.00039522304519598464, 0.98873252083735208]

可以看到准确率为98.83%。

之前做了很多无用功,依然是在图像像素坐标系加上缩放因子,生成样本,进行训练和测试,结果并不理想,都是误区。训练过程文件名是

netL4sampleNums607500DataFormat1Random0_0603-18_56
netL4sampleNums607500DataFormat1Random1_0603-21_12

中途还试了一下能否预测一下tz值,发现还是不行。

最后再次训练原始数据加上缩放的样本,结果如下:

485800/486000 [============================>.] - ETA: 0s - loss: 4.9058e-04 - acc: 0.9886
486000/486000 [==============================] - 23s 48us/step - loss: 4.9041e-04 - acc: 0.9886
Epoch 00026: early stopping

Testing ------------

   200/121500 [..............................] - ETA: 10s
121500/121500 [==============================] - 3s 28us/step
test cost: [0.00043568653173705393, 0.98842799379011237]

准确率是98.86%;

2.4测试结果

结果还是可以的

3.下期任务

目前工作可以完成整个过程,传入一张图片,纠正其变形,变成四正四方的标准模式。所以接下来的任务有以下:

1)提高网络预测的准确率

2)加上书本变形的因素,拟合书本的曲线

3)计算球面和直线的方程。这次逆映射主要是平面与直线的方程求解。

猜你喜欢

转载自blog.csdn.net/qq_35546153/article/details/80551634
今日推荐