小编Ami*_*dan的帖子

OpenCV MSER检测文本区域 - Python

我有发票图片,我想检测上面的文字.所以我计划使用两个步骤:首先是识别文本区域,然后使用OCR识别文本.

我在python中使用OpenCV 3.0.我能够识别文本(包括一些非文本区域),但我还想从图像中识别文本框(也不包括非文本区域).

我的输入图片是: 原版的 输出是: 处理 我正在使用以下代码:

img = cv2.imread('/home/mis/Text_Recognition/bill.jpg')
mser = cv2.MSER_create()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #Converting to GrayScale
gray_img = img.copy()

regions = mser.detectRegions(gray, None)
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
cv2.polylines(gray_img, hulls, 1, (0, 0, 255), 2)
cv2.imwrite('/home/mis/Text_Recognition/amit.jpg', gray_img) #Saving
Run Code Online (Sandbox Code Playgroud)

现在,我想识别文本框,并删除/取消识别发票上的任何非文本区域.我是OpenCV的新手,也是Python的初学者.我能够在MATAB示例C++示例中找到一些示例,但如果我将它们转换为python,则需要花费大量时间.

有没有使用OpenCV的python的例子,或者任何人都可以帮助我吗?

python ocr opencv image-processing

21
推荐指数
1
解决办法
2万
查看次数

Pandas Dataframe或类似的C#.NET

我目前正致力于实现早先用Python构建的Gurobi线性程序模型的C#版本.我有许多CSV文件,我从中导入数据和创建pandas数据帧,我从这些数据帧中获取列,以创建我在线性程序中使用的变量.使用数据帧创建变量的python代码如下:

dataPath = "C:/Users/XYZ/Desktop/LinearProgramming/TestData"
routeData = pd.DataFrame.from_csv(os.path.join(dataPath, "DirectLink.csv"), index_col=None)
#Creating 3 Python-dictionaries from Python Multi-Dict using column names and keeping RouteID as the key
routeID, transportCost, routeType = multidict({x[0]:[x[1],x[2]] for x in routeData[['RouteID', 'TransportCost','RouteType']].values}) 
Run Code Online (Sandbox Code Playgroud)

示例:如果csv结构如下:

RouteID  RouteEfficiency  TransportCost  RouteType
  1           0.8              2.00          F
  2           0.9              5.00          D
  3           0.7              6.00          R
  4           0.6              3.00          T     
Run Code Online (Sandbox Code Playgroud)

3个变量应该是:RouteID:1 2 3 4

运输成本:

1:2.00
2:5.00
3:6.00
4:3.00
Run Code Online (Sandbox Code Playgroud)

RouteType:

1:F
2:D
3:R
4:T
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一个执行相同任务的上述代码的C#版本,但我了解到C#不支持数据帧.我试着寻找一些替代品,但我找不到任何东西.请帮我解决一下这个.

.net c# python dataframe pandas

14
推荐指数
3
解决办法
1万
查看次数

Tensorflow返回类似的图像

我想使用Google的Tensorflow将类似图像返回到输入图像.

我已经在虚拟机CPU上的Ubuntu14.04上安装了来自http://www.tensorflow.org的 Tensorflow (使用PIP安装--pip和python 2.7).

我从下载了训练模型盗-V3(开始- 2015-12-05.tgz)http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz是受过培训ImageNet大型视觉识别挑战使用2012年的数据,但我认为它内部包含神经网络和分类器(作为预测类别的任务).我还下载了classify_image.py文件,该文件在模型中的1000个类中的1个中对图像进行分类.

所以我有一个随机图像image.jpg,我正在运行测试模型.当我运行命令时:

python /home/amit/classify_image.py --image_file=/home/amit/image.jpg
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:(使用softmax完成分类)

I tensorflow/core/common_runtime/local_device.cc:40] Local device intra op parallelism threads: 3
I tensorflow/core/common_runtime/direct_session.cc:58] Direct session inter op parallelism threads: 3
trench coat (score = 0.62218)
overskirt (score = 0.18911)
cloak (score = 0.07508)
velvet (score = 0.02383)
hoopskirt, crinoline (score = 0.01286)
Run Code Online (Sandbox Code Playgroud)

现在,手头的任务是从60,000张图像的数据库中找到与输入图像(image.jpg)类似的图像(jpg格式,并保存在/ home/amit/images的文件夹中).我相信这可以通过从初始-v3模型中删除最终分类层,并使用输入图像的特征集来查找所有60,000个图像的特征集的余弦距离来完成,并且我们可以返回距离较小的图像(cos 0 = 1)

请建议我解决此问题的方法,以及如何使用Python API执行此操作.

neural-network python-2.7 google-image-search deep-learning tensorflow

10
推荐指数
1
解决办法
6113
查看次数

Tensorflow初始-V3重新训练多层

我已成功使用Python2.7 api为我自己的100个类重新训练了初始V3最终分类层,它给出了不错的结果,但并不是特别好.

我也有代码来重新训练整个网络,如下所示(谷歌代码),但这是资源和时间密集,我有40万张图像,所以不知道训练后的准确度是多少.

我想知道我是否可以重新培训最后几个完全连接的层中的一些,或者不仅仅是分类层,以便在一定程度上提高准确性,并且在资源和时间方面也不是计算上非常苛刻的.

我试图搜索很多,但找不到任何东西.有可能我想做什么?我需要帮助.

python neural-network deep-learning conv-neural-network tensorflow

7
推荐指数
1
解决办法
1173
查看次数

Android ClassNotFoundException:在路径上找不到类:Dexpathlist

我面临以下错误,我几乎尝试了Stackoverflow的每一个解决方案.我是android的新手,所以我可能不了解原因.我按照说明测试libgdx项目:https: //github.com/libgdx/libgdx/wiki/Setting-up-your-Development-Environment-%28Eclipse%2C-Intellij-IDEA%2C-NetBeans% 29

我按顺序安装了下面提到的工具:

  1. JDK(java版本1.8.0.73)
  2. Eclipse IDE for Java Developers版本:Mars.2发布(4.5.2).
  3. SDK(我有SDK工具24.4.1和SDK构建工具23.0.2和23.0.1)
  4. 来自eclipse中的URL的Eclipse Android开发工具:https://dl-ssl.google.com/android/eclipse/
  5. Gradle 2.11 - 我解压缩gradle-all-2.11.zip并保存在我的本地机器上.

现在,当我使用gdx-setup.jar生成一个非常基本的示例libgdx项目,并将包命名为my-gdx-game时,它创建了一个桌面版(java应用程序)和一个android版本(android应用程序)

我在通过jar构建项目时使用Build工具V 23.0.1.我的eclipse屏幕看起来像这样:

日食 当我右键单击my-gdx-game-desktop和Run as Java应用程序时,它会成功运行并显示和图像(项目就是显示图像).

现在,对于android项目,我创建了一个AVD - Nexus 5,Android 4.4.2(api 19),CPU:ARM(armeabi-v7a),使用主机GPU.我的manifest.xml文件如下:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="23" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/GdxTheme" >
    <activity
        android:name="com.mygdx.game.AndroidLauncher"
        android:label="@string/app_name" 
        android:screenOrientation="landscape"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

项目>属性> Android:仅选择Android 4.4.2(API 19)

现在,当我右键单击项目>运行为> android应用程序时,AVD打开并生成以下错误:

03-08 13:44:35.110: W/dalvikvm(1968): Unable to resolve superclass of Lcom/mygdx/game/AndroidLauncher; (3)
03-08 13:44:35.110: W/dalvikvm(1968): Link …
Run Code Online (Sandbox Code Playgroud)

java eclipse android gradle libgdx

0
推荐指数
1
解决办法
4051
查看次数