首页 文章 精选 留言 我的

精选列表

搜索[通用文字识别],共10006篇文章
优秀的个人博客,低调大师

为何机器学习识别声音还做不到像识别图片那么容易?

声音是传递信息的重要方式之一。 大多数开车的人都熟悉汽车皮带打滑的声音。我爷爷甚至能靠耳朵来判断高载火车的刹车问题。还有很多专家都能通过听他们常用机器发出来的声音来检测机器运行的问题。 如果能找到一种自动监听的方法,我们就可以24小时监控我们生活的世界中存在的各种机器。当我们被通知机器声音发生异常时,我们便可以预测出发动机、铁路基础设施、石油钻井和发电厂的运行故障。 自动监听技术能减少运行事故造成的人员伤亡。尽管最近机器学习领域取得了很大发展,利用机器学习实现自动监听的技术仍处于研发阶段。我们已经获得许多音频数据,但这些数据往往没有关键的分类标签(译者注:即标注每段音频来自正常还是异常的运行情况)。 在深度学习的模型里,这样的“黑箱”问题让我们很难确定某段音频被标记为异常的原因。我们仍然在努力解决真实的机器学习的边缘问题中的难题。。

优秀的个人博客,低调大师

Solon Flow Helloworld(通用流编排框架)

探索视频: 1、新建项目 可以用Solon Initializr生成一个模板项目。新建项目之后,添加依赖 <dependency> <groupId>org.noear</groupId> <artifactId>solon-flow</artifactId> </dependency> 2、添加配置 添加应用配置: solon.flow: - "classpath:flow/*.yml" 添加流处理配置(支持 json 或 yml 格式),例:flow/demo1.chain.yml id: "c1" layout: - { id: "n1", type: "start", link: "n2"} - { id: "n2", type: "activity", link: "n3", task: "System.out.println(\"hello world!\");"} - { id: "n3", type: "end"} 示意图: 3、代码应用 注解模式 import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; import org.noear.solon.core.bean.LifecycleBean; import org.noear.solon.flow.FlowEngine; @Component public class DemoCom implements LifecycleBean { @Inject private FlowEngine flowEngine; @Override public void start() throws Throwable { flowEngine.eval("c1"); } } 原生 Java 模式 import org.noear.solon.flow.FlowEngine; FlowEngine engine = FlowEngine.newInstance(); //加载链配置 engine.load("classpath:flow/*"); //执行 engine.eval("c1");

优秀的个人博客,低调大师

loginsight 2.0.0 发布,通用日志分析工具

看日志不方便、思路混乱,让我开始了创作loginsight的旅程。截止v1.5.0累积获得¥200余的赞助,让我看到了这款工具继续前行的意义。 时隔数月,经两稿的代码架构设计,v2.0.0终于完成。 更新日志 多标签页支持:可以在一个窗口内同时查看多个日志了。 多个过滤窗支持:可以同时查看多个过滤词的过滤结果 嵌套过滤支持:可以对过滤窗的内容再次指定关键词过滤 全新解析机制:为了修复一些莫名其妙的问题,彻底重写了底层的文件解析机制 多线程加速:充分发挥机器性能,走出“单核”困境 上线了官网:www.loginsight.top 开发计划 这次重构,为将来扩展新功能带来了便捷。一些大的开发计划如下: 支持更多的日志源:如直接打开服务器上日志、打开adb日志、显示后台进程日志等待 时间线功能增强:分组、增强和日志窗口的融合、导出前可调序、涂鸦等 日志格式化高亮 智能分析、领域分析 开源困境是个人开发者之殇。想法很多,时间很少;喝彩很多,支持很少。 为了能更好的发展这个开源项目,我决定开启商业版计划,新功能将在商业版上优先支持,并延后一段时间同步到开源版本上。视具体情况,可能会保留一些商业版的专属功能。感谢支持🙏🏻

优秀的个人博客,低调大师

MyBatis-Plus 通用查询工具类

mybatis-plus简称MP是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网 。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。 下面是在MP为基础封装了一个查询类,实现了如果需要增加查询条件只需在前端修改即可。 查询工具 SearchModel public class SearchModel<T> { private Integer pageIndex; private Integer pageSize; private List<Field> fields; private String orderField; private boolean isAsc; public IPage<T> getPage() { IPage<T> page = new Page<>(pageIndex, pageSize); if (!StringUtil.isEmptyOrNull(orderField)) { OrderItem orderItem = new OrderItem(); orderItem.setAsc(isAsc); orderItem.setColumn(orderField); page.orders().add(orderItem); } return page; } public QueryWrapper<T> getQueryModel() { QueryWrapper<T> queryWrapper = new QueryWrapper<>(); for (Iterator iter = this.fields.iterator(); iter.hasNext(); ) { Field field = (Field) iter.next(); switch (field.getQueryMethod()) { case eq: queryWrapper.eq(true, field.getName(), field.getValue()); break; case like: queryWrapper.like(true, field.getName(), field.getValue()); } } if (!StringUtil.isEmptyOrNull(orderField)) { queryWrapper.orderBy(true, isAsc, orderField); } return queryWrapper; } } Field public class Field { public Field(String name, Object value) { this.name = name; this.value = value; this.queryMethod = QueryMethod.eq; } public Field(String name, Object value, QueryMethod queryMethod) { this.name = name; this.value = value; this.queryMethod = queryMethod; } private String name; private Object value; private QueryMethod queryMethod; } QueryMethod public enum QueryMethod { eq, like } 调用示例 { "fields": [ { "value": "v", "name": "project_code", "queryMethod": "eq" }, { "name": "type", "queryMethod": "like", "value": "b" }, { "name": "id", "queryMethod": "like", "value": "a" } ], "pageIndex": 1, "pageSize": 8, "orderField": "type", "isAsc": "false" } 在api中传入上面的json对象即可完成一个查询服务,查询条件通过前端传入的字段控制 BaseService IBaseService public interface IBaseService<T> { T save(T entity) throws Exception; boolean saveBatch(Collection<T> entityList); // TableId 注解存在更新记录,否插入一条记录 boolean saveOrUpdate(T entity); // 根据updateWrapper尝试更新,否继续执行saveOrUpdate(T)方法 boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper); // 批量修改插入 boolean saveOrUpdateBatch(Collection<T> entityList); // 根据 entity 条件,删除记录 boolean remove(Wrapper<T> queryWrapper); // 根据 ID 删除 boolean removeById(Serializable id); // 根据 columnMap 条件,删除记录 boolean removeByMap(Map<String, Object> columnMap); // 删除(根据ID 批量删除) boolean removeByIds(Collection<? extends Serializable> idList); List<T> list(); // 查询列表 List<T> list(SearchModel<T> searchModel); // 查询(根据ID 批量查询) Collection<T> listByIds(Collection<? extends Serializable> idList); // 查询(根据 columnMap 条件) Collection<T> listByMap(Map<String, Object> columnMap); // 翻页查询 IPage<T> page(SearchModel<T> searchModel); T selectById(Serializable id); T selectOne(Wrapper<T> queryWrapper); } BaseServiceImpl public class BaseServiceImpl<M extends BaseMapper<T>, T> implements IBaseService<T> { @Autowired private M baseMapper; @Override public T save(T entity) throws Exception { baseMapper.insert(entity); return entity; } @Transactional(rollbackFor = RuntimeException.class) @Override public boolean saveBatch(Collection<T> entityList) { Integer size = entityList.size(); for (T entity : entityList) { baseMapper.insert(entity); size++; } return size == entityList.size(); } @Override public boolean saveOrUpdate(T entity) { int rs = baseMapper.updateById(entity); if (rs > 0) return true; return baseMapper.insert(entity) > 0; } @Override public boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper) { return false; } @Transactional(rollbackFor = RuntimeException.class) @Override public boolean saveOrUpdateBatch(Collection<T> entityList) { for (T entity : entityList) { saveOrUpdate(entity); } return true; } @Override public boolean remove(Wrapper<T> queryWrapper) { return baseMapper.delete(queryWrapper) > 0; } @Override public boolean removeById(Serializable id) { return baseMapper.deleteById(id) > 0; } @Override public boolean removeByMap(Map<String, Object> columnMap) { return baseMapper.deleteByMap(columnMap) > 0; } @Override public boolean removeByIds(Collection<? extends Serializable> idList) { return baseMapper.deleteBatchIds(idList) > 0; } @Override public List<T> list() { return baseMapper.selectList(new QueryWrapper<T>()); } @Override public List<T> list(SearchModel<T> searchModel) { return baseMapper.selectList(searchModel.getQueryModel()); } @Override public Collection<T> listByIds(Collection<? extends Serializable> idList) { return baseMapper.selectBatchIds(idList); } @Override public Collection<T> listByMap(Map<String, Object> columnMap) { return baseMapper.selectByMap(columnMap); } @Override public IPage<T> page(SearchModel<T> searchModel) { return baseMapper.selectPage(searchModel.getPage(), searchModel.getQueryModel()); } @Override public T selectById(Serializable id) { return baseMapper.selectById(id); } @Override public T selectOne(Wrapper<T> queryWrapper) { return baseMapper.selectOne(queryWrapper); } } MP实现了mapper层基础的CRUD方法,这里把一些常用的service层的方法整理了一下,又减少了一些代码量 代码地址 使用示例

优秀的个人博客,低调大师

15 个 Android 通用流行框架大全

缓存 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库 Picasso 一个强大的图片下载与缓存的库 Fresco 一个用于管理图像和他们使用的内存的库 Glide 一个图片加载和缓存的库 图片处理 Picasso-transformations 一个为Picasso提供多种图片变换的库 Glide-transformations 一个为Glide提供多种图片变换的库 Android-gpuimage 基于OpenGL的Android过滤器 网络请求 Android Async HTTP Android异步HTTP库 AndroidAsync 异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程。 OkHttp 一个Http与Http/2的客户端 Retrofit 类型安全的Http客户端 Volley Google推出的Android异步网络请求框架和图片加载框架 网络解析 Gson 一个Java序列化/反序列化库,可以将JSON和java对象互相转换 Jackson Jackson可以轻松地将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象 Fastjson Java上一个快速的JSON解析器/生成器 HtmlPaser 一种用来解析单个独立html或嵌套html的方式 Jsoup 一个以最好的DOM,CSS和jQuery解析html的库 数据库 OrmLite JDBC和Android的轻量级ORM java包 Sugar 用超级简单的方法处理Android数据库 GreenDAO 一种轻快地将对象映射到SQLite数据库的ORM解决方案 ActiveAndroid 以活动记录方式为Android SQLite提供持久化 SQLBrite SQLiteOpenHelper 和ContentResolver的轻量级包装 Realm 移动数据库:一个SQLite和ORM的替换品 依赖注入 ButterKnife 将Android视图和回调方法绑定到字段和方法上 Dagger2 一个Android和java快速依赖注射器。 AndroidAnotations 快速安卓开发。易于维护 RoboGuice Android平台的Google Guice 图表 WilliamChart 创建图表的Android库 HelloCharts 兼容到API8的Android图表库 MPAndroidChart 一个强大的Android图表视图/图形库 后台处理 Tape 一个轻快的,事务性的,基于文件的FIFO的库 Android Priority Job Queue 一个专门为Android轻松调度任务的工作队列 事件总线 EventBus 安卓优化的事件总线,简化了活动、片段、线程、服务等的通信 Otto 一个基于Guava的增强的事件总线 响应式编程 RxJava JVM上的响应式扩展 RxJavaJoins 为RxJava提供Joins操作 RxAndroid Android上的响应式扩展,在RxJava基础上添加了Android线程调度 RxBinding 提供用RxJava绑定Android UI的API Agera Android上的响应式编程 Log框架 Logger 简单,漂亮,强大的Android日志工具 Hugo 在调试版本上注解的触发方法进行日志记录 Timber 一个小的,可扩展的日志工具 测试框架 Mockito Java编写的Mocking单元测试框架 Robotium Android UI 测试 Robolectric Android单元测试框架 Android自带很多测试工具:JUnit,Monkeyrunner,UiAutomator,Espresso等 调试框架 Stetho 调试Android应用的桥梁,使得可以利用Chrome开发者工具进行调试 性能优化 LeakCanary 内存泄漏检测工具 ACRA Android应用程序崩溃报告 文章转载自 开源中国社区[http://www.oschina.net]

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册