大家好,

我是博客园的老用户了,许久不做.NET技术了,从2013年起,开始从事App技术,写过书,在Linux上搭建区块链,用GO写智能合约,使用nodejs搭建过微服务,用python写过爬虫,写过微信聊天机器人。

人到中年,已经写不出20多岁时意气风发的激扬文字了。

最近开始从事历史类工具的开发,以及人工智能,尤其是OCR技术,又重拾C#和winform的老本行,做了一个半人工标注平台PaddleOCRLabel,在gitee上开源,地址是:https://gitee.com/BaoJianQiang/paddle-ocrlabel

写这个软件只用了一周时间,很多遗忘的技术,上网搜一下,改一改代码,基本就能为我所用。写了17年代码了,这是最直接的体会。

再比如说,要做一个操作回滚的功能,用命令模式或备忘录模式,也是得心应手,这也是08年开始研究设计模式的成果。

比较感慨的是,.NET生态真的不是很繁荣。举一个例子,我这个软件里面要做类似于PhotoShop的圈锁和浮层,竟然找不到好用的第三方库,只能直接使用最原始的GDI+绘制,效果不是很理想。我隐约记得有个.NET仿照PS做的Paint.NET开源项目,竟然官网已经不提供下载了。只能去一些网站付费下载,打开才发现是很早的版本,现在的VisualStudio根本打不开。

再聊聊我步入ai这个大舞台的初步感受,我至今也没入门这个领域,只是机械性的知道tensorflow和pytorch搭建模型的那些代码,但是对于文字和图像转变成数字矩阵然后大量训练就能得到结果,还是摸不着头脑。

看一下这个开源项目的界面吧,如下图所示:

这个软件哦,其实还没全做完,因为要和百度paddleocr合作,所以只能使用百度的服务。

接下来,会在此基础上,开发出更强大的一个项目,扫描一张图片,同时从腾讯、百度、阿里、科大讯飞这几家公司的ocr服务,返回标注结果,供用户选择,这就是商用软件了。

此外,我上个月还写了一个一键生成的工具,可以把pdf直接转换为ocr识别后的文本,软件界面如下图所示,过段时间我也会开源出来:

我的一个长期愿景是整理古籍,把古籍中的文字搜集为一个很大的历史资料库,支持全文索引,如下图所示(只截取了两晋十六国和民国的截图,想看其他朝代的可以私聊),是我花了一年时间做的一个软件,通过这个内容类收集软件,可以快速把历朝历代的人物的传记文章归类,可以快速阅读完一个朝代的历史,这是我的初衷:

把这些工具结合在一起,就是一个非常牛逼的纸质书籍转文本的一揽子解决方案。我主要针对古籍,因为这块没有版权的问题。

最后,因为咱们这个技术社区做.NET的人多一些,所以希望各位winform绘图高手,以及python多线程高手,有兴趣可以参与到我这个开源项目中来。

谢谢

开源自己编写的半人工标注平台PaddleOCRLabel(.NET Winform版本)的更多相关文章

  1. Reaction 开源可自定义实时的电商平台

    Reaction 开源可自定义实时的电商平台,支持以下特性 拖放商品 订单处理 支付 物流 税 折扣 Analytics(分析) 与许多第三方应用程序集成 graphql 开发api 简单demo 使 ...

  2. NLP(十四)自制序列标注平台

    背景介绍   在平时的NLP任务中,我们经常用到命名实体识别(NER),常用的识别实体类型为人名.地名.组织机构名,但是我们往往也会有识别其它实体的需求,比如时间.品牌名等.在利用算法做实体识别的时候 ...

  3. RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

    最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...

  4. mac平台多个php版本快速切换

    mac平台多个php版本快速切换 要求所有php版本都是由brew安装 使用brew安装php多版本方法 # brew install php56 # brew install php70 安装切换工 ...

  5. Java 基础 Java平台的3个版本

    Java平台有3个版本:适用于小型设备和智能卡的JavaME(Java Platform Micro Edition,Java微型版).适用于桌面系统的JavaSE(Java Platform Sta ...

  6. 获取Windows平台下 安装office 版本位数信息

    最近在处理客户端安装程序过程,有一个需求:需要检测Windows平台下安装office 版本信息以及获取使用的office是32 位还是64 位: 当检测出office 位数为64位时,提示当前off ...

  7. 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)

    在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...

  8. 开源|性能优化利器:数据库审核平台Themis的选型与实践

    作者:韩锋 出处:DBAplus社群分享:来源:宜信技术学院 Themis开源地址:https://github.com/CreditEaseDBA 一.面临的挑战 1.运维规模及种类 我相信,这也是 ...

  9. 【开源】.net 分布式架构之监控平台

    开源地址:http://git.oschina.net/chejiangyi/Dyd.BaseService.Monitor .net 简单监控平台,用于集群的性能监控,应用耗时监控管理,统一日志管理 ...

随机推荐

  1. C++ //深拷贝与浅拷贝 //浅拷贝 : 简单的赋值拷贝操作 //深拷贝: 在堆区重新申请空间 进行拷贝操作

    1 //深拷贝与浅拷贝 2 3 //浅拷贝 : 简单的赋值拷贝操作 4 //深拷贝: 在堆区重新申请空间 进行拷贝操作 5 6 7 #include <iostream> 8 using ...

  2. C# CS0050 可访问性不一致: 返回类型 错误

    今天学习C#代码过程中,遇到可访问性不一致的错误: 严重性 代码 说明 项目 文件 行 禁止显示状态错误 CS0050 可访问性不一致: 返回类型"Transaction"的可访问 ...

  3. 三个线程按循序一个打印A一个打印B一个打印C 循环打印?

    第一种 public static volatile int flag = 1; public static void printABC1(){ Thread t1 = new Thread(() - ...

  4. ASP.NET Core教程:ASP.NET Core使用AutoMapper

    一.前言 在实际的项目开发过程中,我们使用各种ORM框架可以使我们快捷的获取到数据,并且可以将获取到的数据绑定到对应的List<T>中,然后页面或者接口直接显示List<T>中 ...

  5. WPF以鼠标当前位置进行缩放

    <Window x:Class="ImageViewer.MainWindow" xmlns="http://schemas.microsoft.com/winfx ...

  6. C# 检测某版本VC++是否安装

    一.根据微软的产品号GUID,调用msi.dll class Program { static void Main(string[] args) { if (GetProcuct("{GUI ...

  7. uwp 之语音朗读

    xml code --------------------------------- <Page x:Class="MyApp.MainPage" xmlns="h ...

  8. 跟着华为,学数字化转型(8):组织转型之业务IT一体化

    数字化时代,技术已经成了企业发展的重要驱动力,是转型中的企业不可或缺的力量.那采用什么样的组织结构,才能发挥出技术能力的最大价值呢?华为经历了多种组织形式,最终得出的结论是业务IT一体化组织是最合适的 ...

  9. 详解 Interpolator动画插值器

    Interpolator 被用来修饰动画效果,定义动画的变化率.在Android源码中对应的接口类为TimeInterpolator,通过输入均匀变化的0~1之间的值,可以得到匀速.正加速.负加速.无 ...

  10. ORB_SLAM2 Ubuntu16.04编译错误

    Ubuntu14.04一切正常,迁移到Ubuntu16.04后编译报错,提示: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:745:3: ...