ncnn

PyTorch OCR模型的安卓端部署

风格不统一 提交于 2021-01-30 05:53:25
开发环境选择 本文操作系统为Windows,因为Windows上的安卓模拟器选择较多,并且真机调试也比较方便; 交叉编译在Windows和Ubuntu上都进行了尝试,都可行,但是如果是Ubuntu上交叉编译之后再挪到Windows的话,容易出幺蛾子; 我目前使用的最稳定的工具版本组合是:ndk18、androidstudio4.1、cmake3.10、gradle6.5、MinGW(CodeBlocks自带)。 1. PyTorch模型转NCNN 这一小节是介绍如何将自己重新训练过的PyTorch模型转成ncnn,如果没有重训练需求的话,可以直接跳过这一节。 (1) 整体步骤 理想情况下,从PyTorch转到ncnn只需要下面两步: PyTorch转ONNX torch.onnx._export(model, x, path, opset_version=11) ONNX转NCNN ./onnx2ncnn model.onnx model.param model.bin 遇到问题的适合解决思路如下: convert.png 下面介绍一下我在做ChineseOCRLite中的PSENet模型转换的过程中遇到的问题。 (2)实际操作的时候可能会遇到各种问题 问题1:ReLU6不支持 概述:ReLU6算子在转换的时候容易出现不支持的情况,需要使用其他算子替代 解决:使用torch

1.8M超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200

♀尐吖头ヾ 提交于 2021-01-20 22:49:43
点击上方 “ 机器学习与生成对抗网络 ”,关注"星标" 获取有趣、好玩的前沿干货! 盘点GAN在目标检测中的应用 机器之心报道 项目作者:RangiLyu 如何把 anchor-free 模型移植到移动端或嵌入式设备?这个项目对单阶段检测模型三大模块(Head、Neck、Backbone)进行轻量化,得到模型大小仅 1.8m、速度超快的轻量级模型 NanoDet-m 。 目标检测一直是计算机视觉领域的一大难题,其目标是找出图像中的所有感兴趣区域,并确定这些区域的位置和类别。目标检测中的深度学习方法已经发展了很多年,并出现了不同类型的检测方法。 目前,深度学习目标检测方法主要分为两大类,分别是两阶段式和单阶段式目标检测算法。两阶段式目标检测框架首先生成候选区域,然后将其分类成不同的目标类别,代表模型有 R-CNN、Fast R-CNN 等;单阶段式目标检测框架将目标检测任务视为一个统一的端到端回归问题,代表模型有 MultiBox、YOLO、SSD 等。这类框架通常结构更简单,检测速度也更快。 深度学习目标检测方法还可划分为 Anchor-base 和 Anchor-free 两大类,今年又出现了将 Transformer 用于目标检测 的尝试,各种方法百花齐放。但是,在移动端目标检测算法上,YOLO 系列和 SSD 等 Anchor-base 的模型一直占据主导地位。 近日

1.8M超轻量目标检测模型NanoDet,比YOLO跑得快

核能气质少年 提交于 2021-01-20 22:49:18
机器之心报道,项目作者:RangiLyu 目标检测一直是计算机视觉领域的一大难题,其目标是找出图像中的所有感兴趣区域,并确定这些区域的位置和类别。目标检测中的深度学习方法已经发展了很多年,并出现了不同类型的检测方法。 目前,深度学习目标检测方法主要分为两大类,分别是两阶段式和单阶段式目标检测算法。两阶段式目标检测框架首先生成候选区域,然后将其分类成不同的目标类别,代表模型有 R-CNN、Fast R-CNN 等;单阶段式目标检测框架将目标检测任务视为一个统一的端到端回归问题,代表模型有 MultiBox、YOLO、SSD 等。这类框架通常结构更简单,检测速度也更快。 深度学习目标检测方法还可划分为 Anchor-base 和 Anchor-free 两大类,今年又出现了将 Transformer 用于目标检测的尝试,各种方法百花齐放。但是,在移动端目标检测算法上,YOLO 系列和 SSD 等 Anchor-base 的模型一直占据主导地位。 近日,GitHub 上出现了一个项目 nanodet,它开源了一个移动端实时的 Anchor-free 检测模型,希望能够提供不亚于 YOLO 系列的性能,而且同样方便训练和移植。该项目上线仅两天,Star 量已经超过 1600+。 项目地址:https://github.com/RangiLyu/nanodet NanoDet 模型介绍

NanoDet:这是个小于4M超轻量目标检测模型

為{幸葍}努か 提交于 2021-01-20 20:51:00
摘要: NanoDet 是一个速度超快和轻量级的移动端 Anchor-free 目标检测模型。 前言 YOLO、SSD、Fast R-CNN等模型在目标检测方面速度较快和精度较高,但是这些模型比较大,不太适合移植到移动端或嵌入式设备;轻量级模型 NanoDet-m,对单阶段检测模型三大模块(Head、Neck、Backbone)进行轻量化,目标加检测速度很快;模型文件大小仅几兆(小于4M)。 NanoDet作者开源代码地址 : https://github.com/RangiLyu/nanodet (致敬) 基于NanoDet项目进行小裁剪,专门用来实现Python语言、PyTorch 版本的代码地址: https://github.com/guo-pu/NanoDet-PyTorch 下载直接能使用,支持图片、视频文件、摄像头实时目标检测 先看一下NanoDet目标检测的效果: 同时检测多辆汽车: 查看多目标、目标之间重叠、同时存在小目标和大目标的检测效果: NanoDet 模型介绍 NanoDet 是一种 FCOS 式的单阶段 anchor-free 目标检测模型,它使用 ATSS 进行目标采样,使用 Generalized Focal Loss 损失函数执行分类和边框回归(box regression)。 1)NanoDet 模型性能 NanoDet-m模型和YoloV3

torch same padding

醉酒当歌 提交于 2020-11-27 09:04:38
CNN中,增加Padding过后,为我们带来的那些负面影响。 如上图所示: 第一行为普通3x3卷积,步长1,padding 0, 第二行为普通3x3卷积,步长1,padding 1, 第三行为膨胀3x3卷积,dilation rate=3,步长1,padding 3. 上图箭头右向所指,为cnn底层在caffe 和darknet的底层实现,用c或c++,至于pytorch和tensorflow 是否也是这样实现cnn我不清楚,但是目前来讲,有效实现卷积的也就3种方式, im2col(上图) ,winograd, FFT,但是还是im2col比较常见,winograd好像是商汤最近几年提出来的,通过特殊数学计算方式,减少计算量,目前该方法被应用在腾讯移动端深度学习框架NCNN中,至于FFT,还没见到用在深度学习种。 至于为什么使用im2col,这还是贾清扬大神在写caffe时提出来的,因为图像中,一个块内的像素点在内存中是地址不连续的,所以对于同一个块内的像素想要缓存到cache上,可能出现多次内存访问,效率极低,所以设计出im2co方式,提前将需要计算的像素点放在连续地址上。 因此,对于同一图像,除了原始图像在内存中占空间,使用im2col又会消耗另一份空间。 如上图所示,对于8x8的图像: 不加padding,计算量为9x36=324, 内存消耗为8x8=64,有效内存为64

自动红眼移除算法 附c++完整代码

ぐ巨炮叔叔 提交于 2020-10-30 03:43:36
说起红眼算法,这个话题非常古老了。 百度百科上的描述: “红眼”一般是指在人物摄影时,当闪光灯照射到人眼的时候,瞳孔放大而产生的视网膜泛红现象。 由于红眼现象的程度是根据拍摄对象色素的深浅决定的,如果拍摄对象的眼睛颜色较深,红眼现象便不会特别明显。 “红眼”也指传染性结膜炎。 近些年好像没有看到摄影会出现这样的情况,毕竟科技发展迅速。 记得最早看到红眼移除算法是在ACDSee 这个看图软件的编辑功能区。 当然,当时ACDSee 也没有能力做到自动去红眼,也需要进行手工操作。 红眼移除不难,其实就是把眼睛区域的颜色修正一下。 但是难就难在修复之后,不要显得太过突兀,或者破坏眼睛周围的颜色 。 这就有点难办了。 当然其实最简单的思路,就是转色域空间处理后再转回RGB。 记得在2015年的时候, 曾经一度想要寻找红眼移除过度自然的算法思路, 当时仅仅是好奇,想要学习之。 直到2016年,在一个Delphi 图像控件的源码里看到了一个红颜移除算法函数。 把代码转写成C之后验证了一下,效果不错,过度很自然。 貌似好像有点暴露年龄了, 俺也曾经是Delphi程序员来的,无比怀念Delphi7。 贴上红眼算法的Delphi源码: procedure _IERemoveRedEyes(bitmap: TIEBitmap; fSelx1, fSely1, fSelx2, fSely2:

模型量化调优

假装没事ソ 提交于 2020-10-25 06:31:18
一、MNN 量化和调优 1、量化工具 https://www.yuque.com/mnn/en/tool_quantize 2、量化调优 https://www.yuque.com/mnn/en/tqr7ft 量化后的模型继续trainning调优 二、NCNN量化 https://github.com/Tencent/ncnn/blob/master/docs/how-to-use-and-FAQ/quantized-int8-inference.md 三、TNN量化 https://github.com/Tencent/TNN/blob/master/doc/cn/user/quantization.md 来源: oschina 链接: https://my.oschina.net/u/4393607/blog/4547928

腾讯优图开源项目全景图!

两盒软妹~` 提交于 2020-10-22 06:14:05
点击上方 “ AI算法与图像处理 ”,选择加"星标"或“置顶” 重磅干货,第一时间送达 腾讯优图属于国内工业界CV领域实验室的第一梯队,其不仅服务腾讯内部线上产品,也开源了多个前沿研究和工程项目,本文盘点优图实验室开源的所有项目,其中最“火”的三个工程是『NCNN』、『人脸检测-DSFD』、『目标检测-OSD』。 腾讯优图项目主页 : https://github.com/TencentYoutuResearch 01 SuperResolution -RealSR 一种在真实世界环境下的新型 degradation(降质)框架-Real-SR,为超分辨率学习提供真实的图像。通过对 kernel 和 noise 的估计,来探索 blurry 和 noisy 图像的具体 degradation(降质)情况。 获得 NTIRE 2020 Challenge Real-World SuperResolution 两个赛道的冠军。 视觉结果: 对比结果:( ' Impressionism' is our team . ) 论文题目 : Real-World Super-Resolution via Kernel Estimation and Noise Injection 论文地址 : http://link.52cv.net/uE6fmZ 代码地址 : https://github

人脸跟踪开源项目

旧城冷巷雨未停 提交于 2020-08-17 11:58:22
https://github.com/xiangdeyizhang/FaceTrack_ncnn_HyperFT https://github.com/qaz734913414/Ncnn_FaceTrack Ncnn_FaceTrack 基于mtcnn人脸检测+onet人脸跟踪,在i7-9700k的cpu检测速度可高达250fps 开发环境 win7 vs2015 开源框架 ncnn opencv 引用 HyperFT 这是一个移动端快速视频多人脸跟踪的开源项目,这个项目是基于mtcnn人脸检测加上最简单的模板匹配进行人脸跟踪的,算法简单但效果显著,移动端速度可以达到150帧以上,该项目的特点是可实现多人脸跟踪。 代码算法解析 HyperFT项目的多人脸跟踪算法分三大部分: 第一部分是初始化,通过mtcnn的人脸检测找出第一帧的人脸位置然后将其结果对人脸跟踪进行初始化; 第二部分是更新,利用模板匹配进行人脸目标位置的初步预判,再结合mtcnn中的onet来对人脸位置进行更加精细的定位,最后通过mtcnn中的rnet的置信度来判断跟踪是否为人脸,防止当有手从面前慢慢挥过去的话,框会跟着手走而无法跟踪到真正的人脸; 第三部分是定时检测,通过在更新的部分中加入一个定时器来做定时人脸检测,从而判断中途是否有新人脸的加入

轻量级部署,腾讯优图开源深度学习推理框架TNN

a 夏天 提交于 2020-08-15 16:35:30
6 月 10 日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架 TNN。 机器之心发布,机器之心编辑部。 从学界到工业界,「开源」已经成为 AI 领域的关键词。 一方面,它以「授人以渔」的方式为 AI 构建了一个开放共进的生态环境,帮助行业加速 AI 应用落地;另一方面,在解决行业实际问题时实现持续更新和迭代,源源不断地给 AI 领域输送重要的技术养料和创造力。可以说「开源」是 AI 落地和繁荣不可或缺的源动力。 6 月 10 日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架 TNN,通过底层技术优化实现在多个不同平台的轻量级部署落地。该框架性能优异、简单易用。基于 TNN,开发者能够将深度学习算法轻松移植到手机端并高效执行,开发人工智能 APP,真正将 AI 带到指尖。 开源地址: https:// github.com/Tencent/TNN 轻量级部署,TNN 助力深度学习提速增效 深度学习对算力的巨大需求一直制约着其更广泛的落地,尤其是在移动端:手机处理器性能弱、算力无法多机拓展、运算耗时长等因素常常导致发热和高功耗,并直接影响 app 等应用的用户体验。 腾讯优图基于自身在深度学习方面的技术积累,借鉴业内主流框架的优点,推出了针对手机端的高性能、轻量级移动端推理框架 TNN。 TNN 在设计之初便将「移动端」、「高性能」融入核心理念,对 2017