【问题标题】:Example for OCR with ANN in OpenCVOpenCV 中带有 ANN 的 OCR 示例
【发布时间】:2013-08-18 02:03:16
【问题描述】:

我是 OpenCV 的新手,我想用 ANN 实现 OCR。我尝试搜索示例,但没有看到任何将 ANN 与图像处理结合使用的示例。

然后我看到了这个例子basicOCRwithANN,但是当我尝试这个代码时,它的错误率超过 90%

谁能给我看一个使用 ANN 实现 OCR 或图像处理的示例

【问题讨论】:

    标签: opencv neural-network


    【解决方案1】:

    您只需点击Zip Archive 链接,下载main page of the project 上的完整压缩包。

    此应用程序使用 Qt,因此您最好将其安装在您的系统上。

    您需要在编译之前对代码进行一次快速更改。进入src目录,打开ma​​in.cpp,在#if QUICKSTART前添加如下指令:

    #undef QUICKSTART
    

    要在 Linux 上编译此应用程序,请在 src 目录中执行以下命令:

    g++ main.cpp blackbird.cpp tests/lkdemo.cpp tests/ocr/mainOCR.cpp tests/rectifytest.cpp tests/camshift.cpp tests/ocr/basicOCR.cpp tests/StreamImportExport.cpp tests/ocr/basicFunctions.cpp pipeline/Pipeline.cpp pipeline/Properties.cpp pipeline/MarkerArea.cpp pipeline/Utils.cpp pipeline/modules/perspective_correction/Blob.cpp pipeline/modules/perspective_correction/BlobExtraction.cpp pipeline/modules/perspective_correction/BlobResult.cpp pipeline/modules/output/Output.cpp pipeline/modules/test_module/TestModule.cpp pipeline/modules/beamer/Beamer.cpp pipeline/modules/beamer_calibration/BeamerCalibration.cpp pipeline/modules/perspective_correction/PerspectiveCorrect.cpp view/View.cpp -o main -I/usr/local/include/opencv -I/usr/local/include  -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -I/opt/qt_47x/include/ -L/opt/qt_47x/lib/ -lQtGui -lQtCore
    

    这将生成一个名为 ma​​in 的可执行文件。 注意 -I/opt/qt_47x/include/ 指的是 Qt 头文件在我的系统中的位置,-L/opt/qt_47x/lib/ 指的是 Qt 库目录。这 2 条路径很可能在您的系统上有所不同,因此您需要适当地调整它们。

    然后要执行ma​​in,您需要进入上一个目录并运行./src/main 并选择选项编号3。等待大约5-10 分钟,直到网络训练完毕并弹出一个新窗口向上。此窗口让您绘制(希望是数字),完成后按键盘上的 C 对图像进行分类并在控制台上查看结果。

    如果这不是这样做的方法,我相信你有能力自己发现如何使用应用程序,因为应用程序的编译已经完成。

    编辑:

    在这种情况下,download 并测试 latest available package。这个包带来了 CMake 项目文件,使编译更容易。也大大提高了分类的准确率。但是我不知道这个版本是否使用了ANN。也许您必须使用 2 个版本进行一些科学怪人编程。

    【讨论】:

    • 我可以编译这段代码,但是当我对它进行分类时,它的错误率超过了 90%。这意味着它不能分类,不能编译。
    • 我明白了。更新的答案带来了最新可用软件包的链接。手写数字的检测要好得多。
    • 谢谢,但我以前用过 KNN,分类需要很长时间,所以我想用 ANN 代替 KNN。
    • 好的,但是在我的机器上的新项目似乎比你引用的主干中的另一个快得多。我不知道为什么,也许它使用较少的图像来训练,但无论如何还是值得一试。
    • 如果你分开训练和分类。你会看到 ANN 分类的速度有多快。人工神经网络在训练时确实需要很长时间,但它非常准确(如果使用正确的参数)并且非常快。
    猜你喜欢
    • 2015-09-16
    • 1970-01-01
    • 2016-12-09
    • 2023-03-11
    • 1970-01-01
    • 2016-07-28
    • 2020-01-21
    • 2014-04-02
    • 2017-07-14
    相关资源
    最近更新 更多