自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 LearnOpenGL-QT 4). 着色器 (下)

使用Qt学习OpenGL图绘制

2022-10-08 22:51:45 889 1

原创 LearnOpenGL-QT 4). 着色器 (上)

使用Qt学习OpenGL图绘制

2022-10-08 22:51:04 859

原创 LearnOpenGL-QT 3). 顶点数组对象

使用Qt学习OpenGL图绘制

2022-10-08 19:53:26 679

原创 LearnOpenGL-QT 2). 着色器和三角形绘制

使用Qt学习OpenGL绘制

2022-10-08 11:51:23 542

原创 LearnOpenGL-QT 1). 环境配置及窗口绘制

使用Qt 学习 OpenGL绘制

2022-10-08 11:50:11 498

原创 DetectX 深度学习模型Android部署 - NanoDetPlus + NCNN

使用NCNN将Nanodet-Plus_m416部署到android设备上,调用摄像头达到实时检测效果,并根据自身需求训练NanoDet-Plus模型并部署。

2022-09-04 23:53:14 8622

原创 Android使用OpenCV加载深度学习模型 - MobileSSD

要点:1. 在JNI中使用Opencv-4.2.02. 使用CameraX (1.0.0-beta03)3. 使用MobileSSD caffe 模型4. 使用renderscript进行YUV420 -> RGBA5. easyPermissions权限申请6. 模型文件会在首次使用时拷贝到packageDir代码:https://github.com/riskycheng...

2020-04-26 23:32:11 1558 6

原创 Python 日常使用记录

sorted排序python的排序函数sort,sorted在列表排序和字典排序中的应用详解和举例,python 列表list中内置了一个十分有用的排序函数sort,sorted,它可以用于列表的排序,以下是例子。a = [5,2,1,9,6] >>> sorted(a) #将a从小到大排序,不影响a本身结构 [1, 2...

2019-07-18 09:50:44 188

原创 Keras实例教程(四)- 使用kaggle Dogs & Cats

数据集Kaggle’s Dogs and Cats dataset : https://www.microsoft.com/en-us/download/details.aspx?id=54765【0】 基础版本实现将训练数据集分割成训练集、验证集、测试集,目录结构如图所示:其中,选取了各自的0-1999前2000张作为train-set, 2000-2499该500张作为valid...

2019-07-16 23:53:09 340

原创 Keras 实例教程(三)- 使用VGG-16识别

Keras 作为当前深度学习框架中的热门之一,使用起来是极其简便的,它所提供的各种友好而灵活的API,即使对于新手而言,相比于TensorFlow也非常容易上手。更特别的是,Keras中还预置了多种已经训练好的、非常流行的神经网络模型:ModelSizeTop-1 AccuracyTop-5 AccuracyParametersDepthXception88 MB...

2019-07-16 23:52:33 2268 1

原创 Keras 实例教程(二)- mnist数据集

这次执行的任务和《基于Softmax实现手写数字识别》中所描述的基本一致,也就是设法对MINST数据集中的手写数字图片进行识别。如果你通过阅读之前的文章已经对当前问题有所了解,那么也应该知道这其实是一个分类任务,也就是将每张图片分入0~9这个十个类别中。当然首先还是导入各种所需的package以及数据集:import osos.environ['TF_CPP_MIN_LOG_LEVEL'] =...

2019-07-16 23:52:03 471

原创 Keras实例教程(一) - 模拟简单数据

现在人工智能,特别是深度学习可谓风光无限,加之各种框架神器层出不穷也令深度学习不再是什么空中楼阁。由于工具化的趋势越来越明显,现在要自行搭建一个深度神经网络已经变得越来越容易。你可能听说过的框架有TensorFlow、Theano、Torch、Caffe、MXNet等等,今天我们就要来介绍构建神经网络最为容易的一个框架——Keras。之所以说Keras是当前构建神经网络最为容易的框架,就是因为相比...

2019-07-16 23:51:34 410

原创 markdown中公式编辑教程

markdown公式编辑遵照katex规则,详细使用方法参考:markdown中公式编辑教程katex support官方文档

2019-07-16 23:44:59 347

原创 深度学习-从零开始(1) - Pandas相关用法及KNN

本章背景本章是来源于coursera课程 python-machine-learning中的作业1内容。本章参考Pandas—汇总和频数统计Pandas—DataFrame切片Pandas—数据结构之Seriessklearn—train_test_split()解析本章内容Pandas用法DataFrame用法Series用法K最近邻 (KNN,k-NearestNe...

2019-07-16 23:35:47 615

原创 深度学习-从零开始(2) - LinearRegression

本章背景本章是来源于coursera课程 python-machine-learning中的作业2内容。本章内容多项式线性回归决定系数 R2 (coefficient of determination) 的计算参考评价回归模型r2_score为负数的问题探讨0. Polynomial LinearRegression(多项式线性回归)随机创建如下数据:import nu...

2019-07-16 23:34:53 370

原创 Android-Studio Gradle Build Flavor 使用小结

Build Flavor 作用在一个分支上,编译不同的版本(包名/应用图标/debug/release)多个分支代码片段/so库,合并到同一分支进行维护,并且可以根据不同的Build Variant 进行选择性编译;使用方法比如现在有如下需求:第一维度是高通835/845平台(不同平台可能使用不同的DSP相关的so)第二维度是算法提供商,以人脸检测为例提供商有Se...

2019-07-08 10:51:50 2823

原创 Keras实例教程(五)- 使用 GTSRB 用于交通标志识别

数据集GTSRB dataset :http://benchmark.ini.rub.de/?section=gtsrb&subsection=dataset#Downloads该数据集包含43类交通标志,提供的资料中包含标注信息。【0】 数据准备根据标注裁剪图像在每类的文件夹中,包含若干.ppm格式的图片及一个.csv文件,csv中包含每个ppm图像的标注信息,根据标注信息...

2019-01-19 18:47:27 3202

原创 Android native crash 日志分析

NDK的常见异常NDK编译生成的.so文件作为程序的一部分,在运行发生异常时同样会造成程序崩溃。不同于Java代码异常造成的程序崩溃,在NDK的异常发生时,程序在Android设备上都会立即退出,即通常所说的闪退,而不会弹出“程序xxx无响应,是否立即关闭”之类的提示框。NDK是使用C/ Cpp来进行开发的,熟悉C/Cpp的程序员都知道,指针和内存管理是最重要也是最容易出问题的地方,稍有不慎就...

2018-09-20 22:59:48 1310 1

原创 Android NDK - JNI 与 Java 接收及修改数组

JNI 取用 Java 数组即将已经在Java中产生的数组数值传递到native去处理并返回Java层处理结果,==不会修改Java中该数组Field的数值==,比如应用场景: - Java层通过Camera获取的帧数据传递给native结合opencv进行处理,并返回(图像预处理/检测/分类等)结果; - 在Java业务层产生的数据,需要进行复杂的运算(比如加密/解密等); - ……...

2018-05-26 23:03:40 1902

原创 Android 内存泄漏 - Animator的使用与释放

Animator 导致泄漏在属性动画中如果定义为无限循环,如果在Activity中播放这类动画并且在其退出(生命周期结果前)未停止动画,造成内存泄漏。举例说明假设有如下无限循环动画:public class LeakActivity extends AppCompatActivity { private TextView textView; private...

2018-04-04 16:45:11 9629

原创 Android 内存泄漏 - 不要用static修饰控件

LeakCanary 工具集成LeakCanary是android平台用于内存泄漏检测的开源工具,使用方法十分简单,其github地址: LeakCanary Github内存泄漏总结 Avoid using non-static inner classes in an activity if instances of the inner class could outliv...

2018-04-04 15:24:17 5114

原创 Android Studio在Gradle中调用cmd脚本

Gradle中调用cmd需要在Gradle编译时,调用某些脚本进行文件操作,比如:头文件更新,或者动态链接库文件的更新等,需要借助脚本文件,并且不需要手动运行,那么如何使用Gradle呢?如下代码可以实现在执行Gradle编译时连续运行两条命令: exec { workingDir '../' commandLine 'cmd', '...

2018-03-22 13:48:58 4247

原创 利用BuildConfig进行编译选择及Gradle自定义BuildTypes和字段

BuildConfig的用法在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是这些代码不想在发布后执行,我们并不想在软件发布后调试日志被其他开发者看到,现在我的方法是设置一个全局变量,标记软件为Debug模式还是Release模式。来看下代码:public class Log { private static final boo...

2018-03-20 12:35:05 2165

原创 Android NDK - JNI 传递自定义类型及其数组传递

在实际开发中,JNI与java有很多场景需要传递数据,有时是基本数据类型,而有时则是自定义类型。在遇到通过回调Java中函数进行自定义类型传递时,是不可以直接传递,需要进行转换,本篇将针对参数存在自定义类型和自定义类型数组两种场景进行举例说明。基本数据类型参数数组针对如下代码片段说明://基本数据类型参数数组的静态函数package com.test.jni;//Java ...

2018-02-22 14:28:10 2979 2

原创 Android NDK - JNI 回调Java函数注意事项

被回调的Java静态函数中有数组参数假设有如下Java函数待被JNI调用,但是由于Cpp中的数组和java中的数组是属于不同的数据类型,因此是无法直接传递的。 按照经验,极可能会在JNI中将基本数据类型数组直接传入,但这会报错。 因此传递之前,一定要C++中的数组进行本地化转换。//Java 函数package com.test.jni;public class TestFun

2018-01-22 11:05:46 384

原创 微信小程序 - 报.wxss文件编译错误

最近更新的微信小程序官方开发IDE及时使用模板工程编译也会遇到: 编译 .wxss 文件错误问题。解决方法:在控制台输入openVendor() ,清除里面的wcsc wcsc.exe 然后重启工具即可。

2018-01-18 16:58:06 2540

原创 Android NDK - JNI中回调Java中的函数及函数签名

在实际应用中,除了在JNI层对部分功能进行C++的实现,同时还会有在JNI中对Java函数的调用以实现某种逻辑的联通。 在JNI中回调Java函数,实际上是通过反射机制来实现的,通过反射机制取得目标函数所在的类,以及其名称,通过NDK提供的接口在JNI层进行调用。JNI中调用Java函数的栗子TestFunction.javapackage com.test.jni;public class

2018-01-14 00:48:15 1193

原创 Android NDK - JNI 函数注册

在JNI中定义native函数,所有的native函数均需要注册之后才能在动态链接库加载后被索引到,函数注册有两种方式:静态注册:采用规范命名函数名称,并生成对应的头文件;动态注册:采用 JNINativeMethod 结构体进行动态注册,注册时即声明其签名/native函数对应关系/java层的native对应函数声明类。当前Android本身即推荐使用动态注册的方式,因此对于较早期的静态注

2018-01-03 15:25:55 577

原创 Android Uri解析4.4及以上版本兼容

在android level 19之后,由于官方更新了Uri的格式,因此需要采用最新的Uri解析方式以适配, 如果还采用Android 4.4之前的解析方法(实际上目前网络上大部分还是这种方式)就会出现空指针的问题,实际上就是因为格式不匹配导致的解析失败。参考实现如下,可以直接作为工具类加入现有代码中。/** * get the image/file path, able to run on

2018-01-02 16:18:30 699

原创 GoogleTest NDK 编译

下载 googleTest 源码从github上直接clone 最新的googleTest源码: 创建一个本地路径,如:c:/test/GoogleTest然后进入到该路径下直接clone最新的代码:git clone https://github.com/google/googletest.gitNDK编译当前的目录结构:c:/test/Google

2018-01-02 14:43:13 952

原创 git 日常使用整理(持续更新)

1. 使用git查看比较两次提交的差异,仅查看变化的文件:git diff code1 code2 --name-only2. 使用git比较两次提交的差异:git diff code1 code2以上命令即将列出所有的文件及改动部分;注意比较次序,是code2相对于code1的变动,即code2被认为是最近提交;同时如果想以当前提交作为起点进行推算,那么可以借助HEAD指针:git diff HE

2017-12-17 01:38:23 458

原创 ROC、Precision、Recall、TPR、FPR理解

首先,有如下预备知识需要清楚,即分类的四个基本属性,而其他相关指标均是通过该四项属性进行组合计算得出的。1. TP、TN、FP、FN - Relevant NonRelevant Retrieved true positives (tp) false positives(fp) Not Retrieved false negatives(fn) true negat

2017-09-24 00:56:18 3619

原创 批量操作资源或控件 - 使用Resources.getIdentifier获取id

背景介绍在实际开发过程中,有时会遇到需要批量创建控件、批量读取并处理drawable文件,如果是通过写死xml并挨个从drawable中取资源那就太慢太繁琐了,那么有没有想过,针对结构化的drawable资源或者xml中的控件id,可以通过构建字符串数组的方式实现单行循环操作呢?下面介绍两种方法用于批量读取drawable资源文件和xml中的控件。解决方案不管是通过findViewById获取xml

2017-07-25 00:00:03 2786

原创 Tess4J OCR简单使用教程

Tess4J简介Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。而Tess4J则是Tesseract在Java PC上的应用。在英文和数字识别中性能还是不错的,但是在中文识别中,无论速度还是识别率还是较弱,建议有条件的话,针对场景进行训练,会获得较好结果,本文仅对目前Tess4J的用法进行介绍。使用教程1.去Tess4J官网下载源码包前往:Tess4J

2017-06-26 00:38:01 9985 11

原创 Android Studio解决创建项目build 卡顿

本地配置gradle

2017-06-26 00:37:12 815

原创 设计模式及在Android中的应用 - Builder模式

1. 了解Builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 光看定义并不能理解究竟啥是Builder模式,通过一个具体的实例就会十分清晰。我们顶一个Person类,该Person类包含很多属性,比如name、age、gender、weight等,并且允许这些属性可以不设置,允许为空,则该类的定义如下:public class Person {

2017-05-22 00:08:36 287

原创 设计模式及在Android中的应用 - 单例模式

首先了解一些单例模式的概念。 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 这样做有以下几个优点 • 对于那些比较耗内存的类,只实例化一次可以大大提高性能,尤其是在移动开发中; • 保持程序运行的时候该中始终只有一个实例存在内存中 有如下经典的实现方式:public class Singleton { private static volatile

2017-05-19 23:55:30 339

原创 Java操作Excel文件以及将xls/xlsx转为csv文件

Java 读写Excel文件以及xls、xlsx文件转化为csv文件的陷阱

2016-05-23 23:56:59 22355 6

原创 android插入SQLite中文乱码问题

问题描述:Android开发中经常会遇到从txt、csv等文件中将数据加载到SQLite数据库中,而时常这些文件中都包含中文字符,如果不对编码作明确制定,则会采用默认的编码方式,此时便可能导致插入到数据库中包含中文的字段变成乱码,影响后续操作。解决方法:需要在读取文件时指定编码,如果包含中文,则需要指定为GB2312编码方式,如下所示:try { BufferedReader br = new B

2016-05-23 23:31:43 4196 2

原创 关于WebView无法加载含中文的链接

WebView是android开发中经常遇到的控件,调用webview.loadUrl(String str)函数时,当链接str中包含中文时,则会无法访问,比如:String urlStr = "http://218.241.27.245:8080/myFate/zhishidiaoyue/摆件/shengxiao_gou.html";webview.loadUrl(urlStr);此时便会无法

2016-04-29 11:10:42 1217

DetectX.rar

Opencv::DNN 加载 MobileSSD 使用 CameraX 接口在android上的应用

2020-04-26

Tess4J Demo

Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。而Tess4J则是Tesseract在Java PC上的应用。

2017-08-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除