- 博客(235)
- 资源 (1)
- 收藏
- 关注
原创 Gitlab 删除 commit 历史
Gitlab 删除 commit 历史1. 删除所有的历史(请确保你有备份,此操作不可逆)rm -rf .git/2. 基于当前的内容重建 Git 仓库git initgit add .git commit -m "Initial commit"3. 推送到 Gitlabgit remote add origin <gitlab-uri>git push -u -...
2020-04-28 08:53:08 16813 2
原创 初识 Speex 语音压缩
文章目录初识 Speex 语音压缩Speex 简介Speex 性能Speex 与 OpusSpeex 的 JNI 实现初识 Speex 语音压缩Speex 简介Speex 是一个声音编码格式,目标是用于网络电话、在线广播使用的语音编码,基于 CELP(一种语音编码算法)开发,Speex 宣称可以免费使用,以 BSD 授权条款开放源代码。Speex 的开发者将这个格式视为 Vorbis(通用...
2020-03-06 11:24:15 2833
原创 NCSDK(Movidius SDK) 与 OpenVINO
NCSDK(Movidius SDK) 与 OpenVINO文章目录NCSDK(Movidius SDK) 与 OpenVINOPython - NCAPI v2Python - OpenVINO™ ToolkitC++ - NCAPI v2C++ - OpenVINO™ ToolkitNCSNCS2说明出品公司MovidiusIntel以色列公司 Movidi...
2019-10-09 10:34:41 1119
原创 基于树莓派搭建 Intel Movidius 神经网络计算棒2代深度学习环境
基于树莓派搭建 Intel Movidius 神经网络计算棒2代深度学习环境文章目录基于树莓派搭建 Intel Movidius 神经网络计算棒2代深度学习环境@[toc]开发平台要求安装树莓派 OS安装树莓派 OS 的 OpenVINO™ 工具包【Install the OpenVINO™ Toolkit for Raspbian* OS Package】安装其它依赖软件【Install E...
2019-09-20 08:57:19 1875
原创 C++11 实现读写锁 read_write_mutex
读写锁 read_write_mutex对于一个数据操作,简单的分可以分为读和写。但是经常会遇到多人同时访问一个数据的情况:多人读多人写有人读,有人写处理这种情况,常用的方式是加锁(Mutex):读与读之间,允许并发。读与写,写与写之间互斥。所以读写锁需要支持以上两种情况。读写锁// file: read_write_mutex.h#pragma once#in...
2019-09-12 11:37:55 6237 4
原创 【leetcode】688.Knight Probability in Chessboard(“马”在棋盘上的概率)
【leetcode】688.Knight Probability in Chessboard(“马”在棋盘上的概率)688. Knight Probability in ChessboardOn an NxN chessboard, a knight starts at the r-th row and c-th column and attempts to make exactly K mo...
2019-09-02 21:52:48 259
原创 【leetcode】44.Wildcard Matching(通配符匹配)
【leetcode】44.Wildcard Matching(通配符匹配)44. Wildcard MatchingGiven an input string (s) and a pattern (p), implement wildcard pattern matching with support for '?' and '*'.'?' Matches any single chara...
2019-08-31 17:05:14 234
原创 【leetcode】10.regular-expression-matching(正则表达式匹配)
【leetcode】10.regular-expression-matching(正则表达式匹配)10. Regular Expression MatchingGiven an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*'.'.' ...
2019-08-31 09:29:44 207
原创 【leetcode】37.Sudoku Solver(解数独)
【leetcode】37.Sudoku Solver(解数独)37.Sudoku SolverWrite a program to solve a Sudoku puzzle by filling the empty cells.A sudoku solution must satisfy all of the following rules:Each of the digits 1-...
2019-08-25 21:22:43 206
原创 【leetcode】32.longest-valid-parentheses(最长有效括号)
【leetcode】32.longest-valid-parentheses(最长有效括号)32.longest-valid-parenthesesGiven a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses su...
2019-08-25 18:28:56 182
原创 【leetcode】30.substring-with-concatenation-of-all-words(串联所有单词的子串)
【leetcode】30.substring-with-concatenation-of-all-words(串联所有单词的子串)30.substring-with-concatenation-of-all-wordsYou are given a string, s, and a list of words, words, that are all of the same length. F...
2019-08-24 22:07:23 330
原创 【leetcode】224.basic-calculator(基本计算器)
【leetcode】224.basic-calculator(基本计算器)224.basic-calculatorImplement a basic calculator to evaluate a simple expression string.The expression string may contain open ( and closing parentheses ), the...
2019-08-24 08:56:13 188
原创 【leetcode】41. First Missing Positive(缺失的第一个正数)
【leetcode】41. First Missing Positive(缺失的第一个正数)41. First Missing PositiveGiven an unsorted integer array, find the smallest missing positive integer.Example 1:Input: [1,2,0]Output: 3Example 2:...
2019-08-23 22:06:09 190
原创 openssl 实现 aes 文件加密解密
openssl 实现 aes 文件加密解密依赖Linux 环境(基础)安装 openssl(加密用)安装 python 环境(转换密钥用)参考脚本如下:#!/bin/shPY_FILE=__zone_aes_tool__.pyKEY=IV=IN_FILE=OUT_FILE=# 获取密钥k,向量v,输入文件i,输出文件owhile getopts ":k:v:i:...
2019-08-13 19:29:21 3187
原创 Android 保存 JNI 层 opencv cvMat 图片
Android 保存 JNI 层 opencv cvMat 图片必须在 APP 层申请读写权限。然后引入如下代码即可保存 cv::Mat 图片。cv::imwrite 会分析图片格式 { // write to SD char p_str[128] = "/storage/emulated/0/DCI...
2019-07-12 11:18:24 2033
原创 Lua —— 轻量小巧脚本语言,支持与 C 相互调用
Lua —— 轻量小巧脚本语言,支持与C相互调用Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发。Lua 用标准 C 语言编写并开放源代码。优势:轻量级:使用标准 C 语言编写,编译后仅仅 100k+,可以很方便地可扩展:Lua 提供非常易于使用的扩展接口和机制...
2019-03-27 16:45:35 668
原创 NCNN Linux 版本编译方法
NCNN Linux 版本编译方法NCNN Android 版本编译方法可以参考如下文章:NCNN - 适用于移动端的高性能神经网络前向计算框架NCNN Linux 版本编译方法有所不同,依赖也不一样。protobufprotobuf(Google Protocol Buffer,简称 protobuf) 是 google 推出的混合语言数据标准。类似的技术有: JSON,XML 等。文...
2019-03-27 16:38:19 3245 2
原创 Android 下设置 CameraView 预览与 Camera.Size 等比例
Android 下设置 CameraView 预览与 Camera.Size 等比例前提使用的是 Camera API 1。Camera.Size 的选择,是基于当前 View 的比例下,尽可能选择更高的分辨率。surfaceCreated 中重新拉伸 Viewpublic class CameraPreview extends SurfaceView implements Surfac...
2019-03-26 14:50:05 7277
原创 opencv (opencv_contrib) 实现目标跟踪
opencv (opencv_contrib) 实现目标跟踪前提需要安装 opencv 和 opencv_contrib。请参考文章:linux 下 opencv_contrib 源代码编译方法为什么需要跟踪?通常跟踪比检测快单目标检测速度可能为 100+ ms,而单目标跟踪的速度为 10+ ms。目标跟踪可以基于前一帧检测的位置,运动方向,速度预测下一帧的位置。并围绕预期位置进行小...
2019-03-24 20:33:00 3275 3
原创 VirtualBox 调用摄像头
VirtualBox 调用摄像头讲一讲如何在 VirtualBox 调用摄像头,以方便测试视觉计算的效果。下载 Oracle VM VirtualBox Extension PackVirtualBox 需要安装 Oracle VM VirtualBox Extension Pack 才能使用摄像头。进入 VirtualBox 官网下载页面:https://www.virtualbox.o...
2019-03-24 12:26:57 15913 6
原创 VirtualBox 虚拟机扩容
VirtualBox 虚拟机扩容版权问题,只能用开源免费的 VirtualBox 做一些多平台的开发。记录一下 VirtualBox 虚拟机扩容的方法。以下说明基于 VirtualBox 版本 6.0.2,仅供参考前提条件虚拟机必须是“动态分配存储”(选择虚拟机 -> 设置 -> 存储 -> 选择对应的 .vdi 项 -> 查看明细项 )修改 .vdi 文件的...
2019-03-23 22:54:26 2419
原创 linux 下 opencv_contrib 源代码编译方法
linux 下 opencv_contrib 源代码编译方法建议先看以下文章。Linux 下 OpenCV 源代码编译方法opencv_contrib 是 OpenCV 基于多种原因(版权问题等)剥离出来的一系列主要与人工智能相关的计算机视觉功能模块。可以拓展 OpenCV 的功能,但使用者需要注意一些不同开源协议的算法的要求。主要提供的功能有:模块名称aruco...
2019-03-23 21:30:02 4496 1
原创 YOLO-V3 实时目标检测
YOLO-V3 实时目标检测官网:YOLO: Real-Time Object Detection下载源码git clone https://github.com/pjreddie/darknetcd darknetmake其中 cfg/ 目录下有目前 yolov1,yolov2,yolov3 的配置。下载模型完整模型( 237 MB ):wget https://pjreddi...
2019-03-23 09:20:19 4518
原创 pkg-config 查询已安装库的相关信息
pkg-config 查询已安装库的相关信息简述pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。输出已安装库的相关信息:C/C++ 编译器需要的输入参数链接器需要的输入参数已安装软件包的版本信息工作原理当安装一个库时(例如从 RPM,deb 或其他二进制包管理系统),会包括一个后缀名为 pc 的文件,它会放入某个文件夹下(依赖于你的系统设置)...
2019-03-23 09:18:04 5224
原创 Linux 下 OpenCV 源代码编译方法
Linux 下 OpenCV 源代码编译方法直接使用 sudo apt-get install libopencv-dev 发现 opencv 的版本太低。不得已需要下载源码进行编译,但是发现 opencv 依赖太多,网上各种方法要么太落后,要么还是无法解决。这边写一下方法:安装 OpenCV 依赖找了很多依赖安装,版本都太老了。目前依赖安装参考这个:https://github.c...
2019-03-22 09:42:50 8789 1
原创 CSV 文件格式
CSV 文件格式描述逗号分隔值(Comma-Separated Values,CSV,有时成为字符分隔值)。其文件以纯文本形式存储表格数据(数字和文本),文件的每一行都是一个数据记录。每个记录由一个或多个字段组成,用逗号分隔。使用逗号作为字段分隔符是此文件格式的名称的来源,因为分隔字符也可以不是逗号,有时也称为字符分隔值。CSV 广泛用于不同体系结构的应用程序之间交换数据表格信息,解决不...
2019-03-21 11:25:20 5398
原创 MXNet 特征点提取基本流程
MXNet 特征点提取基本流程以 Android 调用 MXNet 为例:开源 MXNet 代码:incubator-mxnet其中 Android 部分代码路径:incubator-mxnet/amalagamation/jni文件说明org_dmlc_mxnet_Predictor.hMXNet JNI 接口声明文件predictor.ccMXNet JN...
2019-03-20 09:01:33 621
原创 【数据结构】树状数组
【数据结构】树状数组讲到了线段树,那就顺便讲讲树状数组吧。问题:一个固定大小 n 的有限数组 xaction 1 : 可以随时更新某个节点 i 的元素action 2 : 可以查询某个区间 [i, j] 内所有元素的和线段树假设一个长度为 12 的线段树,构建结果如下:在区间求和问题上,在叶子节点,显然划线部分的值可以由父亲节点 - 左端叶子节点得到。那么,这部分信息就...
2019-03-19 09:21:53 183
原创 基于 QPlay 的智能无线流媒体传输音箱的功能实现
基于 QPlay 的智能无线流媒体传输音箱的功能实现系统核心功能模块系统需要实现的核心功能有QPlay认证功能,QPlay队列功能,设备离线功能,歌曲播放功能。QPlay认证功能模块QPlay认证功能处于系统的事件循环阶段。事件回调函数event_handler()识别出事件类型(EventType)为UPNP_CONTROL_ACTION_REQUEST以及动作名称(ActionNam...
2019-03-15 16:31:31 5381 6
原创 基于 QPlay 的智能无线流媒体传输音箱的设计
基于 QPlay 的智能无线流媒体传输音箱的设计系统总体架构QPlay音箱设备主要工作流程如图所示。由于采用libupnp作为UPnP SDK进行开发,所以程序开始时需要初始化UPnP SDK。程序主要分为设备初始化,事件循环,设备结束三个阶段。其中事件循环是程序的核心。设备初始化阶段设备初始化阶段需要完成:初始化UPnP SDK调用库函数UpnpInit()初始化UPnP协议...
2019-03-15 16:09:21 1470
原创 QPlay 协议框架
QPlay 协议框架QPlay设备描述目前QPlay最新规范为QPlay 2.0,QPlay所有的功能必须遵循UPnP结构体系。在QPlay规范中,QQ音乐应用充当控制点(Control Point),第三方设备充当媒体渲染器(Media Render)。而媒体渲染器必须实现至少四种服务:音视频传输(AVTransport),播放控制(RenderingControl),连接管理(Connec...
2019-03-15 15:46:26 6487 2
原创 UPnP 体系架构和基本原理 —— UPnP的描述文件
UPnP 体系架构和基本原理 —— UPnP的描述文件UPnP的描述文件UPnP设备描述一个标准的UPnP设备描述模板(图中“red”字样为UPnP Forum定义;“purple”字样为UPnP设备制造商定义;“green”字样为UPnP Device Architecture定义)。一些主要标签介绍如下:◆ <root>必需标签。<root>到</r...
2019-03-15 15:17:29 973 1
原创 UPnP 体系架构和基本原理 —— Linux SDK for UPnP Devices
UPnP 体系架构和基本原理 —— Linux SDK for UPnP DevicesLinux SDK for UPnP DevicesUPnP架构基于Internet和TCP/IP等成熟协议,使之实现与底层硬件无关、与开发的程序设计语言无关、与操作系统无关等特性,故整个UPnP设备的设计开发过程均可由设备制造商按照UPnP规范开发。这虽说提高开发的自由度,但也带来重复开发和资源浪费的问题...
2019-03-15 15:11:54 893
原创 UPnP 体系架构和基本原理 —— UPnP 工作流程
UPnP 体系架构和基本原理 —— UPnP 工作流程UPnP 工作流程UPnP需要在设备与设备之间,设备和控制点之间,还有控制点与控制点之间进行通信和信息交互,显然需要进行一系列工作过程。主要是:寻址(Addressing)、发现(Discovery)、描述(Description)、控制(Control)、事件(Events)和表达(Presentation,又称为“表征”或“表示”)六...
2019-03-15 15:07:53 2049
原创 UPnP 体系架构和基本原理 —— UPnP 协议栈
UPnP 体系架构和基本原理 —— UPnP 协议栈UPnP 协议栈UPnP 协议栈基于标准IP协议,脱离底层的网络介质。主要由包含:TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网协议)、HTTP(HyperText Transfer Protocol,超文本传输协议)、SSDP(Simple Service ...
2019-03-15 14:55:34 1304
原创 UPnP 体系架构和基本原理 —— UPnP 网络组件
UPnP 体系架构和基本原理 —— UPnP 网络组件UPnP 网络组件UPnP 网络组件通常由设备(Device)、服务(Service)和控制点(Control Point)这三个基础组件组成。设备UPnP最基本的概念模型就是设备模型,设备是服务和嵌入式设备的容器。例如:一个播放器设备可以包含歌曲播放服务和时钟服务,而一个多媒体设备可以包含播放器设备和资源搜索服务。该设备可以是物理上...
2019-03-15 14:47:50 868
原创 JNI 实现 SharedPreferences 读写
JNI 实现 SharedPreferences 读写关于 SharedPreferences 的介绍,可以看以下文章。【Android】SharedPreferences 存储JNI 想要实现 SharedPreferences 的读写访问,需要调用对应的 Android 接口。获取 SharedPreferences 对象【 Android 】实现private static fi...
2019-03-14 15:51:47 1482 1
原创 【Android】SharedPreferences 存储
【Android】SharedPreferences 存储Android 提供多种选项来保存永久性数据。不同的存储方案取决于不同的需求。存储选项共享首选项在键值对中存储私有原始数据。(SharedPreferences)内部存储在设备内存中存储私有数据。外部存储在共享的外部存储中存储公共数据。(注意申请读写权限)SQLite 数据库在私有数据库中存...
2019-03-14 15:38:19 285
Arduino-UNO-RFID入门到精通套件
2015-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人