是否有可能将两个网络叠加在一起,在不同的输入数据分辨率上进行操作?
下面是我的用法:就像谷歌,我想识别图像中的文本。与谷歌不同,我只能访问非常有限的计算资源。我的解决方案是,不要在整个场景图像上使用序列到序列的网络,我首先使用YOLO运行对象检测,然后将裁剪传递给序列到序列模型,注意-OCR。
为了进一步减少处理时间,我在低分辨率上运行目标检测,并在高分辨率输入图像中对检测结果进行裁剪,所以在我的作物上使用序列识别时,仍然可以访问高分辨率输入。为了检测到有文本,低分辨率是足够的,但是要读取文本,网络需要更高的分辨率输入。
这一切都很好,但我怀疑,如果我可以得到更好的性能,如果我可以训练整个系统端到端,所以作物直接优化,以得到最好的阅读文本。我可以将序列到序列模型堆叠在对象检测模型之上,但是文本读取操作与用于文本检测的低分辨率输入相同。
有没有人知道如何解决这个问题,或者谁能给我指点与此相关的研究?
发布于 2017-12-19 13:45:25
我建议你把你的问题分成两部分:
非常常见的模式是对大数据进行模型训练(例如,通过租用AWS服务器),然后使用它的预测来训练更小的网络。这里是Hinton等人关于这一主题的基础论文。
这样,您可以坚持更传统的对象检测方法,而不涉及堆叠,然后部署‘压缩’网络到您的设备。
但回到你的问题上。如果由于各种原因,您的方法是僵化的,并且不能像我前面所描述的那样,那么很多端到端的方法在文献中都是可用的,请看一下这来开始。
甚至还有代码。
我只想引述这份文件:
提出了一种用于快速多尺度目标检测的统一深度神经网络,即多尺度CNN (MS).MS由一个提议子网络和一个检测子网络组成.在建议子网络中,在多个输出层进行检测,使接收域匹配不同尺度的对象。这些互补的尺度特异性检测器被组合在一起,产生一个强大的多尺度目标检测器.统一的网络是通过优化多任务损失来学习端到端的.采用反褶积方法进行特征过采样,作为输入过采样的一种替代方法,减少了内存和计算量。最新的物体检测性能,高达15 fps,是在数据集上报告的,如KITTI和Caltech,其中包含了大量的小物体。
但是,尽管如此,还是可以自由地尝试网络压缩(看看这)。它通常具有高度的冗余性,通过创造性地探索这种冗余,就有可能获得许多好处。
https://datascience.stackexchange.com/questions/24860
复制相似问题