基于SSD的图片文本检测及快速方法

基于SSD的图片文本检测及快速方法 算法概述 SSD算法是一种直接预测bounding box的坐标和类别的object detection算法,没有生成proposal的过程。针对不同大小的物体检测,传统的做法是将图像转换成不同的大小,然后分别处理,最后将结果综合起来,而ssd利用不同卷积层的feature map进行综合也能达到同样的效果。而相比较于其他检测算法, R-CNN系列的检测速度慢,YOLO的mAP性能差,而SSD消除了中间的 bounding boxes、pixel or feature resampling 的过程,同时,在 feature map 上使用小的卷积核,去 predict 一系列 bounding boxes 的 box offsets,这样就在提升速度的同时保证了精度,适合用在嵌入式上。 算法详解 SSD算法在训练的时候只需要一张输入图像及其每个object的ground truth boxes。基本的网络结构是基于VGG16,在ImageNet数据集上预训练完以后用两个新的卷积层代替fc6和fc7,另外对pool5也做了一点小改动,还增加了4个卷积层构成官方的网络。 在训练阶段,算法在一开始会先将default box(是指在feature map的每个小格(cell)上都有一系列不同大小,不同横纵比的box)和ground truth box进行匹配,比如蓝色的两个虚线框和猫的ground truth box匹配上了,一个红色的虚线框和狗的ground truth box匹配上了。所以一个ground truth可能对应多个default box。在预测阶段,直接预测每个default box的偏移以及对每个类别相应的得分,最后通过NMS得到最终的结果。并且default box在不同的feature层有不同的scale,在同一个feature层又有不同的aspect ratio,因此ssd基本上可以覆盖输入图像中的各种形状和大小的object。 项目实现 一是由于检测目标相对较小(比如车牌),并且ssd在低层的feature map,感受野比较小,高层的感受野比较大,所以我们选择将conv6-2之后的层去掉,这样既不影响精度也满足带宽要求;二是ssd的default box拥有不同尺度,我们修改了其尺度变换使其符合车牌实际尺度;三是类别,ssd官方类别有20类,而我们的车型项目大概有6类,车牌只有一类,所以我们对类别进行了删减. 流程图 Created with Raphaël 2.1.0 数据输入:data层 特征提取:conv1_1,conv1_2,conv2_2,conv3_2, conv4_3,conv5_2,fc6,fc7,conv6_2及对应Relu和Pooling层 回归:conv4_3_norm_mbox_loc,fc7_mbox_loc,conv6_2_mbox_loc 分类:conv4_3_norm _mbox_conf,fc7_mbox_conf,conv6_2_mbox_conf 数学运算 通道合并:Concat层 损失函数:Softmax层(同时决定default box) 输出:DetectionOutput

three.js给场景加上阴影

学习交流欢迎加群:789723098,博主会将一些demo整理共享 现实世界中(假设只在地球,先不考虑外太空),只要有光的地方就会有阴影产生。所以当我们构建好一个具备光照的场景后,还必须给其加上阴影,才能更清楚地显示场景中各个元素的关系,光照和阴影是webgl和three.js开发大型场景必不可少的元素,如果少了这两者,想象一下,地球上一切事物如果没有阴影,没有灯光,那么是不是世界乌漆嘛黑,什么都看不见?本节先不讲光照,先讲讲阴影的投射和接收,各种光源和材质的介绍和应用,在后面会单独写文章进行详细介绍。接下来先看看怎样给场景添加阴影。 添加阴影主要是这几个步骤: 渲染器一定要允许产生阴影: //渲染器 //antialias:true增加抗锯齿效果 renderer = new THREE.WebGLRenderer({antialias:true}); renderer.setClearColor(new THREE.Color(0x000000));//设置窗口背景颜色为黑 renderer.setSize(window.innerWidth, window.innerHeight);//设置窗口尺寸 renderer.shadowMapEnabled = true;//开启阴影,加上阴影渲染 灯光要投下阴影,否则场景不会产生阴影: var spotLight = new THREE.SpotLight(0xffffff); spotLight.position.set(-50, 60, 15); spotLight.castShadow = true;//开启灯光投射阴影 物体要投下阴影和接受阴影,假设这里的物体为Mesh;否则也不会有阴影产生: Mesh.castShadow = true;//开启投影 Mesh.receiveShadow = true;//接收阴影 当阴影添加完毕后,就可以产生阴影的效果啦。接下来实现一个有阴影的场景,其效果如下图所示: 这个实例的静态版本在我另一片博文:点击打开链接,轨道控制器鼠标交互的版本在这篇博文:点击打开链接。 但有一点需要特别注意,光源的位置一定要距离合适,否则容易引起阴影模糊粗糙的像打马赛克一样,像下面的图所示: 下面附上示例代码: threejs-basic-geometry

《树莓派开发笔记 – 第1部分 基础篇》第6章 树莓派摄像头操作

6.1树莓派基本操作 目前提供了三个应用程序,分别为:raspistill、raspivid、raspistillyuv。其中 raspistill 和 raspistillyuv 非常相似,并且都是用于捕捉图像,而 raspivid 用于捕捉视频。 所有应用程序均基于命令行方式运行,通过 OpenMAX 的 mmal API 进行编写。OpenMAX 的 mmal API 提供了更易使用的系统组件。注意,mmal 是一个由 Broadcom 为 Videocore 4 系统定制的 API。 应用程序使用了四个 OpenMAX(mmal)组件:camera(摄像)、preview(预览)、encoder(编码)、null_sink。所有应用程序均使用了摄像组件,raspistill 使用了图像编码组件,raspivid 使用了视频编码组件,raspistillyuv 没有使用编码组件,而是直接将 YUV 或 RGB 从摄像组件输出到文件。 预览显示为可选参数,但是可以用于全屏或输出到指定的显示器显示区域进行显示。如果预览被禁用,那么 null_silk 组件将会对预览帧进行“吸收”。这是由于尽管不需要摄像头生成供显示所用的的预览帧,但是仍需要使用它们进行曝光计算和白平衡设置的缘故。 此外,还可以省略文件名参数,这样既可以直接预览显示而不写入文件,或者直接输出到标准输出设备上。命令行帮助可以通过直接输入应用程序名称获得。 6.1.1安装摄像头硬件 警告:摄像头对静电非常敏感。如果您在安装摄像头电路板时没有防静电手环,可以尝试触摸一下水龙头、金属水槽或其它类似的东西即可。 摄像头电路板与 Raspberry Pi 通过一条 15 芯的排线进行连接。仅有两个连接座需要连接,排线需要安装到摄像头电路板和 Raspberry Pi 上。您需要正确安装,否则摄像头无法工作。对于摄像头电路板,排线末端的蓝色标记应该背对着电路板。而 Raspberry Pi 部分,蓝色标记应该正对着网络接口方向。 尽管两部分连接座不尽相同,但它们的工作方式很相似。对于 Raspberry Pi,拉起连接座两端的卡扣。它应该很容易拉起,并能够轻微活动。把排线完全插入到连接座中,并保证竖直,然后轻轻按下两端的卡扣。摄像头电路板方面,也需要您将卡扣向电路板相反方向拉开,然后轻轻插入排线,最后将卡扣推回。摄像头电路板的连接座与 Pi 上的区别就在这里。 6.1.2安装摄像头软件 执行下文介绍的命令行进行下载并安装最新的内核,GPU 固件及应用程序。您需要连接到互联网才可以实现以下操作。 $sudo apt-get update $sudo apt-get upgrade 接下来,您首先需要在 Raspberry Pi 的 raspi-config 程序中启用摄像头的支持。

架构 - 洋葱图架构

我们一般看到的传统分层架构是这样的: 在 The Onion Architecture 中介绍了下图的洋葱图架构,从里到外是领域模型、领域服务、应用服务,外面的都会用到里面的内容,最外围的是容易变化的内容,如界面、测试和基础设施(如数据存储等)。这个图表明了以领域模型为中心,而不是以数据为中心。 下图为一个示例: 本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/518637,如需转载请自行联系原作者 点赞 收藏 分享 文章举报 weixin_34202952 发布了165 篇原创文章 · 获赞 41 · 访问量 26万+ 私信 关注

科普知识:深网和暗网

你可能听说过深网(deep Web)、暗网(dark Web)或隐藏网络(hidden Web)之类的术语,尤其是在最近的媒体中。它们是什么意思呢? 深网是网络的一部分,与浅网(surface Web)对立。浅网是互联网上搜索引擎可以抓到的那部分网络。据不完全统计,互联网中其实约 90% 的网络都是深网。因为谷歌不能做像表单提交这类事情,也找不到那些没有直接链接到顶层域名上的网页,或者因为有robots.txt 禁止而不能查看网站,所以浅网的数量相对深网还是比较少的。 暗网,也被称为 Darknet 或 dark Internet,完全是另一种“怪兽”。它们也建立在已有的网络基础上,但是使用Tor客户端,带有运行在 HTTP 之上的新协议,提供了一个信息交换的安全隧道。这类暗网页面也是可以采集的,就像你采集其他网站一样。 和暗网不同,深网是相对容易采集的。实际上,爬取的很多工具都是在采集那些Google爬虫机器人不能获取的深网信息。

dircolors配置,linux目录颜色配置ls

1.git clone https://github.com/seebi/dircolors-solarized.git 2.eval `dircolors dircolors.256dark` 可以看下效果 3.选个你喜欢的主题 4.ZSH朋友 :vim ~/.zshrc BASH朋友: vim ~/.bashrc 5.eval `dircolors dircolors.256dark` 追加进去 (可以考虑用绝对路径eval `dircolors ~/global_config/dir/dircolors.256dark`) 6.enjoy

Eclipse如何卸载SVN插件 Subclipse

错误的产生步骤:右键》Team》Upgrade。 点击OK按钮。 提示了错误信息,点击Details,可以看到详细的错误信息。 从错误中可以看出项目是SVN1.6版本的,提示项目需要升级;说明是客户端的版本高了。 点击OK按钮关闭窗口。 找到对应的目录删除高版本的SVN插件 Subclipse。 点击Help》About Eclipse。 在打开的窗口中点击Installation Details。 在Installed Software标签窗口中,选中Subclipse,点击Uninstall按钮。 点击Finish按钮。 11 卸载后,需要重启Eclipse,点击Yes按钮。 步骤阅读

Coursera-Deep Learning Specialization 课程之(四):Convolutional Neural Networks: -weak4编程作业

人脸识别 Face Recognition for the Happy House from keras.models import Sequential from keras.layers import Conv2D, ZeroPadding2D, Activation, Input, concatenate from keras.models import Model from keras.layers.normalization import BatchNormalization from keras.layers.pooling import MaxPooling2D, AveragePooling2D from keras.layers.merge import Concatenate from keras.layers.core import Lambda, Flatten, Dense from keras.initializers import glorot_uniform from keras.engine.topology import Layer from keras import backend as K K.set_image_data_format('channels_first') import cv2 import os import numpy as np from numpy import genfromtxt import pandas as pd import tensorflow as tf from fr_utils import * from inception_blocks_v2 import * %matplotlib inline %load_ext autoreload %autoreload 2 np.

美国财政部部长:我们在“仔细”调查比特币的非法使用

点击上方 “蓝色字” 可关注我们! 作者:Sujha Sundararajan 翻译:Annie_Xu 美国财政部部长Steven Mnuchin说,所在部门在调查比特币的非法使用。 Mnuchin接受雅虎财经采访说,应当“非常仔细地”检查目前的情形,强调重要的是保证比特币没有用于“非法目的”。 Mnuchin说: “所以我们想要确保你没有用比特币赞助暗网。这是我们目前关注的问题”。 他说,目前正与国际同类机构讨论这个问题。 Mnuchin说美国比特币交易商必须遵守以打击洗钱和诈骗为目标的了解客户需求和银行保密法(Bank Secrecy Act)要求。 关于财政部对加密货币的立场,他说目前没有明确的发表声明时间,但是他强调政府工作组在“调查它”。 该声明之前几天,财政部透露了一项计划,就是调查美国金融犯罪执法网络(FinCEN,Financial Crimes Enforcement Network)的加密货币项目。 当时财政部称,“我们计划确定FinCEN如何辨别、优先考虑和解决与虚拟货币有关的洗钱以及恐怖主义融资风险”。 本文仅代表作者个人观点,不代表区块链铅笔的立场,不构成投资建议,内容仅供参考。 关注本公众号后,进入公众号 回复关键词可以查阅资料,以下是部分关键词 回复 WEF ,查看《WEF:世界经济论坛认为区块链是互联网金融行业的未来报告》 回复 智能合约 ,查看《巴克莱银行报告》 回复 moody ,查看《穆迪120个区块链项目报告》 回复 SWIFT ,查看SWIFT《区块链对证券交易全流程产生的影响及潜力》报告 回复 论文11 ,查看论文《可扩展的去中心区块链》 回复 埃森哲2 ,查看埃森哲《区块链每年可以为投资银行节省120亿美元》报告 回复 联合国报告 ,查看联合国报告《数字货币和区块链技术在构建社会和可信金融之间扮演的角色》 回复 用户特性 ,查看普林斯顿大学首本比特币教科书初稿《比特币用户的特性(Characteristics of Bitcoin Users)》 回复 普林斯顿 ,查看普林斯顿大学首本比特币教科书初稿《比特币和数字货币技术(Bitcoin and Cryptocurrency Technologies)》 回复 IMF,查看国际货币基金组织报告《Virtual Currencies and Beyond: Initial Considerations》 回复 DTCC ,查看美国存管信托清算公司报告《DTCC: 拥抱分布式》 回复 广发 ,查看报告《科技前沿报告:区块链:正快速走进公众和政策视野》