今天在技术大海中游啊游游啊游,哇啊哈哈 ^_^发现了一份非常有用的超级技术图谱诶! 强烈推荐啊!!本文原作者是易宝支付技术经理/架构师李艳鹏,这是鹏哥多年来积累和收集的技术知识技能图谱,有的是鹏哥原创总结的最佳实践,有的是小伙伴们的分享。
其实,每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知识。鹏哥索性就把这些图谱都收集在一起,并且进行了归类,便于大家查找和学习。图谱也暗含着他的一个小目标:想把更多的技术图谱和思维导图汇集在一起,成为互联网上“最全的技术图谱”。
这份技术知识图谱秘籍真的很棒,iG客吧极力推荐分享给身边的技术人儿。真心希望这份技术知识图谱能够帮助到每一位奋斗在技术路上的小伙伴~~~^_^ 大家一起加油哇!~
1.1架构师图谱 1.2 Java架构师图谱 1.3 微服务架构秘籍 1.4 一致性图谱 1.5 互联网大流量的方法 1.6 安全秘籍 1.7 阿里巴巴常用小框架 1.8 架构方法论图谱 1.9 设计模式秘籍图谱 2.1 JVM垃圾回图谱 2.2 Java并发图谱 2.3 Java集合图谱
2.4 Java集合类图 2.5 Java List类图 2.6 Java Map类图 2.7 Java Set类图 3.1 Hadoop技能图谱 3.2 大数据技能图谱 4.1 云计算图谱 4.2 云计算技能图谱 5.1 iOS技能图谱 5.2 OpenResty技能图谱
5.3 前端技能图谱 5.4 容器技能图谱 5.5 嵌入式开发技能图谱 5.6 开发语言宝典 5.7 移动端测试图谱 5.8 运维技能图谱
运行存储过程报错如下:
Compilation errors for FUNCTION AWCARGOWEBJMNEW.FUN_GETVSLVOY161110
Error: PLS-00103: Encountered the symbol “SELECT” when expecting one of the following:
( – + case mod new not null continue avg count current exists max min prior sql stddev
sum variance execute forall merge time timestamp interval
date pipe
Line: 1628
Text: SELECT NVL(SUM(Fun_GetWMSCount(SvcOrderBill.OrderBillID,
Error: PLS-00103: Encountered the symbol “)” when expecting one of the following:
* & – + ; / at for mod remainder rem and
如眸导航 一个专注提供个性化与分享高质量的导航网址,一个属于任何人的的开放导航网站. 后台 egg.js sequelize.js 前端 ant.design 网站 http://sucheye.com 功能 响应式 支持国际化 拖住排序 快捷键 批量上传网站 分享与收藏其他人的 私有化 开发趋势 一键分享收藏网站 自定义皮肤 自定义快捷键 有兴趣的可以交流一下.开发时间有限,但每天都会更新哦 界面:测试账号[手机版暂时只有登录]/gogogo/123456 登录界面/支持国际化/ 我的导航/支持分类排序/快捷键/过滤/ 动态关注其他人的导航分类/支持排序/过滤 支持搜索书签/分类/用户(e.g “chuangzaoshi”) 正确的使用方式 官方推荐网站网址正在强势录入 举个例子: 点击发现导航 选择搜索用户 搜索 <如眸小说>
在早几年, 很多网站都用明文来存用户的密码, 结果被拖库了, 裤子脱了, 用户密码被泄漏, 然后就洗库、撞库, 黑产富得流油。 呵呵哒。
后来, 开发人员学学乖了, 传输和存储都不用密码的额明文, 而采用md5值, 这样似乎就解决了问题。 网站后台也不知道用户的密码。
可是, 有一种表, 叫彩虹表, 能根据md5的值反解密码, 于是, 开发人员又学乖了, 采用加盐方式, 让彩虹表几乎无法破解。 这里必须要用随机盐! 在如上方式下, 网站的开发人员也没有办法知道密码, good
但是呢? 有的网站想了另外一个方法: 传输的时候, 还是用明文密码, 不过用https进行传输, 然后在后台服务端仍然能获取用户的明文密码, 然后对这个密码进行哈希或者加密, 存储在数据库中。 我就问一句: 不怕内部人员泄密吗? 不怕内外勾结吗?
所以, 我还是那个观点:如果一个网站后台能有机会接触到用户的明文密码,那就是流氓行为!
不说了。
使用环境:
时间选择器。
第一步:
打开\system\csc\others.xml文件,删除以下代码:
ChinaNalSecurity 可能需要找一会才能找到,一般位于底部.建议先从底部开始找
第二步:删除以下两个apk 位置在\system\app\
AutoRunChecker.apk ApplicationPermissions.apk 然后重启就好了 成功了请告诉我 谢谢
本人亲测自己的I9500完美成功
最近很多人问我,ijkPlayer播放视频黑屏但是有声音,这个问题的出现原因主要是,网上大部分的IJKPlayer的so文件为了体型较小,打包的支持视频格式比较少,我们只需要重新编译so文件就可以了。我这里提供好了so文件支持IJKPlayer0.7.9之后的版本,编译so文件的方法:
打开你的终端,如果你是windows环境的话,需要安装Chocolates或者安装一个ubuntu,如果你是mac打开你的终端就可以了
打开终端命令,安装需要程序。 sudo apt-get install git sudo apt-get install yasm 1、编译前选择你的配置 – 添加编码格式
cd config rm module.sh ln -s module-default.sh module.sh cd android/contrib sh compile-ffmpeg.sh clean 打包出的so文件较大,支持所有的视频格式 cd config rm module.sh ln -s module-lite-hevc.sh module.sh cd android/contrib sh compile-ffmpeg.sh clean 支持默认的视频编码格式(默认情况下) cd config rm module.sh ln -s module-lite.sh module.sh cd android/contrib sh compile-ffmpeg.sh clean 编译Android
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android cd ijkplayer-android git checkout -B latest k0.7.9 2、初始化openSSL和FFMPEG
./init-android-openssl.sh .
一切的开端就要从点亮发光二极管说起,发光二极管有一天对着黑暗开始厌烦了,想点亮自己,让自己的周围都出现光明和温暖,到处寻求点亮自己的办法,说:“这屋太暗了,让我工作发光,把这该死的黑暗去掉,有谁出来帮帮我,我正常发光需要3.3V的电压,10ma的电流“。 一大堆的小元器件门开始议论纷纷,都想帮忙,但是不知道怎么帮,和发光二极管从小在一起的电阻说:“发光哥,我只能帮你分流,或者分压,其他的我帮不上忙了。“….然后没声了,这时高雅的STM32小姐挑着眉,把玩着自己的晶振芯片说到:”我轻轻碰一下就可以让你想怎么发光就怎么发光,但是我和你在一起就是大材小用了,你还不如先思考下,如何让你自己发光,而不是对着一大堆的人喊………………..“ 听了STM32小姐的话,发光二极管深深的抽了一口烟,长吐一口,冷静的从自身需求思考着如何解决发光的问题,自己需要3.3v的电压,那么我去找找有谁能提供3.3v的电源大佬们,发光二极管心里嘀咕着,然后开上车去了能源部,一下车就看到那里有直流3.3v,5v,12v,交流16v,这么多大佬,看来有戏,然后发光二极管理了下发型,然后恭敬的走过去,一一对他们说自己的请求。 3.3v说:”发哥,我可以帮忙,但是直接接在你两端,会把你给烧掉的,要不去找小电阻给你限个流,不过这样不能让你正常发光,你看要不问问5v大哥“。 “啊谢谢3.3v,好的。”发光二极管感激的握了握3.3v的手,准备投向5V大佬,但是5v大佬接了个电话,和12v一起匆忙的离开了,发光二极管纳闷了,心想,发生了什么事吗?交流16V看着发愣的二极管,拍了拍他的后背说到:“5v和12v他们有任务出去,所以没空。不过,发光二极管你来我们能源部来干什么啊!” 发光二极管这才缓过神来,对和蔼可亲的交流16V说到:“我是来找人帮忙点亮我自己,好让我那家有点温暖。“ “这样啊!可以啊!小伙子,我可以帮你,只是还需要其他人,其实5v那小子再加上电阻帮忙,是最简单的,我是交流,如果放你两端你会受不了的,需要会把我变为直流的人,不过我知道一个,他们叫全桥整流电路,说起他们的组成还和你有点渊源,是你的本家,由整流二极管四兄弟构成,他们会利用自身的特性进行配合,能实现这一功能“。 发光二极管听着一愣一愣的,感觉到有戏,然后问过了交流16V一些具体细节之后,出发去二极管村,去那里找整流二极管四兄弟。 开车到了二极管村时,已经到了晚上,找个位置停好车之后二极管凭着朦胧的路灯,想找户人家借宿一晚,顺便打听一下四兄弟的情况,这时,一个黑不溜秋的玻璃状的家伙,突然开门出现在发光二极管面前,“晚上好!兄弟!”发光二极管边说着边从早上打开的一包香烟中抽出一根,递给那黑哥们,那哥们一愣,但是还是皎洁的接过香烟,“兄台,这么晚,有什么事吗?”“我来找地方借宿一晚,顺便问问你们村关于整流四兄弟的消息,不知道小兄弟大名?”我是稳压管,没啥大名,你想借宿啊!可以,我家就有空的客房,不嫌弃的话可以在这里住一晚上,至于四兄弟的情况,我也知道点,“说着推着发光二极管的后背让他赶紧进来,稳压管他自己却赶紧跑到一角落,然后舒畅的排泄。发光二极管进屋之后,发现屋里,一张发黄的桌子上都是一堆书籍放在那上面,随便拿起来一本上面写着”稳压功法”,有点意思,可以将强大的电压给稳住,厉害了,发光二极管楠楠的说到,这时听到门关上的声音,稳压管进来了,然后不知道在什么地方,搞了杯热茶端给发光二极管,发光二极管双手接过,“谢谢,客气了”,“敢问兄台,你这上面关于稳压的功法是什么意思?“发光二极管好奇的问道, ”稳压管摸了摸鼻子,慢慢的说到“你说这个啊!这个属于我家族的特性,只有我家族的人才能练习,我看你也属于二极管,和我们家长得有点像,但是这个功法对你是没用的,二极管体质,我们知道是正向导通,单向流通性。而我们家通过的电流能够从负往正流通。从负端往正端,方向流过一个电流,如果这个电流足够的大,那么会在我们两端会形成一个稳定的电压。几乎不怎么变化的电压。一般,流过的电流要大于 2mA。换句话说,如果从我们的负端向正端流过一个大于 2mA的电流,那么在我们两端就会出现一个稳定的电压。这是由我们家体质稳压特性所决定的。“ 厉害了,我的哥,竟然有这种体质。”发光二极管噌噌的道奇,喝了一口水,“对了,你之前说的四兄弟,你说知道一点是什么意思?能给我说说吗?“ “嗯,整流四兄弟,他们出行有时候是两个人一起,把交流的一半去掉,有时候是四个人出行把让负端交流电压给翻转,能让交流改变方向的一伙人,可以说是交流与直流世界的转换者”,稳压管懒散的坐下来,眼神充满着敬畏,然后用手指在水杯子蘸了蘸在地上画起图来。 “那你知道怎么找到他们吗?“ “他们就在那个桥式家族那里,花点钱,找到他们就可以了。“”好的,感谢稳压管小弟的指点,不早了,小弟早点休息。“发光二极管感激的说到,”那行,我先去睡了,你就住在那间房就可以了,自己整理一下就可以。“然后摆摆手进房间去了,发光二极管简单的收拾了一下房间,然后就宽衣而睡,脸上面带笑容,因为感觉力成功越来越近了,心里这样想着,然后不久就入睡了……
第二天,发光二极管从发光的梦中醒过来,看了看天花板,笑了笑,“加油“,和稳压管简单的打了个招呼,就出门去桥式家族那里去了。到了后,果然是大家族,气派的厉害,那房子,那大院,比起自己家不知道好上多少倍,发光二极管站在门口打量这桥式大院,心里不断的感慨,然后一黑衣人走过来,其实在发光二极管出现在他眼前时,他盯了他很久,见他一直傻站着,就好奇的过来问问,:”这位先生,你有什么事吗?,我是这家的护卫。““啊!哦..我是来找整流四兄弟的,想花钱请他们帮我做点事。’’ 发光二极管嘿嘿的笑道, ”这样啊!好吧!你跟我进来!”黑衣人说着就在前面带路,进到房子大厅后就停下来了,“你先坐一下!,我去通报一声“黑衣人说到,”好的好的“发光二极管小心翼翼的说到,然后选择一个看起来柔软的沙发坐了下来,真的好舒服这沙发,心里不知道有多享受,有钱真好啊! 正当享受时,从发光二极管后面传来,”进口真皮沙发,坐的还行吧!“说话的人是一个孔武有力的男子,眼神炯炯有神,“你好!小兄弟,我是整流D1,听说你要把交流变为直流”D1微笑的说到,“是的,大哥,我是发光二极管,想把自己点亮,所以一路在找让自己点亮的方法。”发光二极管接过D1递过来的香烟说到,“没问题,除了酬金钱外,我还有个条件,那就是你得给我说清楚反向电压和流过的电流,只有这样我才能不损伤我的体质,不然我都没办法帮你.” “嗯,我想想,我有交流16v的大哥,那么转化为直流就为16*1.41.=23v左右,然后在交流的变化为16v到-16V那么需要承受16*2*1.414=45v的反向电压,而我正常点亮,需要10ma的电流,那么半个周期只需要你们两个兄弟工作,那么就是只要10ma的一半就可以了。“发光二极管慢慢的说到, “很好小兄弟,那什么时候开始。”D1说到, “嗯,要不大哥,你现在和我去能源部吧!我们去那里进行。” “嗯,那你在前面带路,我叫上我的兄弟们,我们开车跟着你。” “好的!” ……………….. 不一会就到了能源部,因为在出发前,发光二极管给交流16v兄打了个电话,让他准备一下所需人员,所以,一下车他们就看到交流他们,还有小电阻电容,交流他们经过发光二极管的介绍与四兄弟认识起来, “你们就是能让我的能力,变为直流的四兄弟啊!久仰久仰!”交流。 “见笑了,交流兄.”D1 “来,发光二极管,为了让你点亮,我找来了帮手,这个是电解电容,带极性的“然后从背后拿出一个三脚的铁盒子,指着铁盒子说,”这个是lm7805,他能稳压到5v的电压,能做到5v哥的能力,好了我们先各自设定好自己的能力,然后我们就 可以开始了。“ 整流四兄弟,让反向电压大于45v,电流超过5ma, 电解电容电压端:23*1.5=35v,(一般大于输入电压的1.5倍)。 电容值:c=Iout/det V *f=120uf (Iout=10ma, det v(纹波电压变化(3%~5%)= 1.5v ,f=50hz) 限流电阻:(5-3.3)/0.01=170r。 “好了我们开始吧!“交流说到 (不过我们还得算算功率来选择封装,7805的功率为(23-5)*0.01=0.19w,电阻功率为1.7*0.01=0.017w 选择0808封装就可以了)每一种封装都有相应的功率对应。比如0805封装对应0.125w.元器件的指标可以去查DATASHEET) 最后加上104电容的帮忙对高dv/dt的滤去(Xc=1/2πfc),使得整个仪式安全,最后让发光二极管点亮了,此时发光二极管的内心是激动的,它终于可以点亮了,可以在黑暗中提供光明,终于可以装逼了。 ‘’嗯,那个发光二极管,既然现在完成了 ,那么那个酬劳什么的啥。“D1不想打扰他的高兴轻轻的说到, “好,这里是10纹币,幸苦了,”发光二极管掏出一枚金币给D1后,就跳来跳去。 “……….这也太少了了吧 !只能买包烟,你让大伙怎么玩,不行,得加价,不然我就撤了,收回之前的工作。”D1瞬间变了脸色。 “10纹币是我的全部家当了,我还有辆破车,要不你也拿去。”发光二极管指了指它的车。 D1看了看那个老古董,丢下一句“什么玩意”头也不回的撤走了,由于没有整流兄弟的帮忙,其他人也撤走了,最后发光二极管闪了闪然后灭了,高兴劲过去后,发光二极管点上一根烟,对着天空吐着烟圈。 “果然,这个世道没有钱不能出来装逼.”
一、前言
本篇续接前一篇 yolo v2 之车牌检测 ,前一篇使用yolo v2已经可以很准确地框出车牌图片了,这里完成后续的车牌字符号码的识别,从车牌框框中要识别出车牌字符,笔者能想到3种思路,1种是同样yolo、SSD等深度学习目标检测的方法直接对车牌内的字符识别;第2种是传统方法从框里切分字符,再训练深度学习的模型对各个字符做识别;第3种方法就是端到端的车牌图片识别。在车牌图像的分辨率比较高,而且清晰的情况下,第1种方法的成功率理论上会比较高的,而且能够针对多种车牌,第2种方法则车牌字符倾斜的情况下效果不好,故这里尝试第3种方法,这种做法实际上也与验证码识别类似,缺点就是只能识别固定位数的车牌图片,用基于循环神经网络的方法可能可以解决这个问题。
二、修改caffe源码使适合多标签分类
由于caffe源码只对hdf5支持多标签,对lmdb格式文件只支持单标签,为此先参考这篇文章http://blog.csdn.net/sinat_14916279/article/details/56489601?locationNum=10&fps=1 修改caffe的源码,该博文针对的是5位数的验证码图片,而我这里需要修改为支持7个标签输入
三、训练集和验证集制作
首先需要采集数据,端到端的识别需要用到大量样本,上一篇中,修改yolo v2的源码src/detector.c中的draw_detections函数,将训练集和测试集的所检测的仅包含车牌的图片保存下来。为了能够得到更多的样本,爬虫更多网上的图片来检测,我这里共保存了3922张仅含车牌图片
其次上述采集到的图片远远不够,发现用户 szad670401在 Github 上开源的一个车牌生成器,当然也提供了相应的端到端识别模型。但是还是感觉生成的图片和真实的图片有所差距,故借鉴其代码中的添加高斯噪声、旋转、仿射变换、调整HSV、添加背景图像等操作对3922张图片做样本增强,先将图片resize至272*72,这个分辨率大小是为了之后符合模型的输入,再做样本增强,以下为一张图片的变换示例:
附上数据增强的python代码
#!/usr/bin/env python #coding=utf-8 import os import cv2 import numpy as np from math import * import random index = {"京": 0, "沪": 1, "津": 2, "渝": 3, "冀": 4, "晋": 5, "蒙": 6, "辽": 7, "吉": 8, "黑": 9, "苏": 10, "浙": 11, "皖": 12, "闽": 13, "赣": 14, "鲁": 15, "
中值滤波器是一种非线性的滤波技术,它将每一像素点的值设置为该点邻域窗口内所有像素点灰度值得中值。它能有效的消除椒盐噪声(椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声)。 如图为椒盐噪声: 例子:
public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat srcImage = Imgcodecs.imread("F:\\20170801161034.png"); Mat dstImage = srcImage.clone(); Imgproc.medianBlur(srcImage, dstImage, 7); Imgcodecs.imwrite("F:\\medianBlur.jpg", dstImage); } 源图像: 目标图像: