代码片段
文章平均质量分 61
代码Blog
HaiwiSong
一切只为让自己变得更优秀!
展开
-
反射获得或设置bean字段
反射获得或设置bean字段(两种方式:1、通过get或set方法;2、直接反射字段(包含父类字段))原创 2016-12-09 11:06:36 · 1728 阅读 · 0 评论 -
cv2最强仿射变换(支持n点对齐,可进行人脸对齐)
人脸识别过程中,人脸对齐往往是最重要的一步,对齐的结果往往影响之后提取人脸特征的准确率,opencv内置的仿射变换仅仅需要三个点,而需对齐的人脸关键点一般是5个、68个、128个,本文提供一种n点对齐的放射变换点,以5个关键点的对齐为例: 代码参考来源:https://matthewearl.github.io/2015/07/28/switching-eds-with-python/#...原创 2018-04-02 11:01:23 · 13910 阅读 · 29 评论 -
opencv中的几种图像变换
opencv中的几种图像变换,由于公司内部保密原因,效果图不能贴出来了,可作为代码片段收藏灵活使用,下面代码是把参数给出的坐标点包围的区域变水平:# coding:utf-8import cv2import numpy as npimport math# 2D旋转 p0,p1为某条直线的坐标;center为旋转中心,默认以图片中心旋转;scale缩放比例def pic_rotat原创 2018-02-07 12:29:12 · 706 阅读 · 0 评论 -
python中base64加解密图片进行post传输
在post中传输图片时,通过对图片进行base64加密成字符串传输,在服务端在base64解码为图片在一些场景中往往更简单、高效。客户端代码:#coding=utf-8import requests,base64,json,os,shutil,cv2import numpy as npimport logginglogging.basicConfig( level=lo原创 2018-02-07 12:44:10 · 5890 阅读 · 0 评论 -
让代码帮助我们研发--代码半自动化
让代码帮助我们研发–代码半自动化在新系统的前期开发过程中,总会遇到大量基于数据库表(物理表或试图)的大量操作。比如:物理表的增删改、生成bean和bean之间的快速拷贝。如果此时数据表中字段较少还好,但是当一个表的字段数达到几十个或更多时候,那么单纯的sql字段的书写及赋值到bean中将是一个无法忍受的任务量。而现有的代码生成器总会虽然好,但程序员本身不能随时改变生成器代码来适应自己的需求,因...原创 2015-10-20 19:48:48 · 1028 阅读 · 0 评论 -
faster-rcnn之生成训练数据
目标检测的数据无论是从imagenet上获取还是通过labelImg人工标注获得,最后的标注文件都遵循imagenet标注文件的格式,本文提供一种imagenet数据到faster_rcnn训练数据的转换代码,同时代码对标注边框处理,防止进入训练由于边框坐标问题引起报错。首先看一下faster-rcnn要求的训练数据的结构图如下: 代码用到另一篇文章的工具类,请自行前往下载加载: Image...原创 2018-08-02 15:31:26 · 871 阅读 · 0 评论 -
Yolov3之生成训练数据
采用yolov3训练目标检测模型第一步也是生成训练数据,本文提供一种从faster-rcnn训练数据到yolov3训练数据的方式,由于faster-rcnn的训练数据为VOC标注文件格式,这种数据比较容易获取,而采用原作者github的yolov3的训练数据是独有的,所以需要进行一步转换。由原始的VOC标注文件转换为faster-rcnn训练数据博文详见:faster-rcnn之生成训练数据 本文...原创 2018-08-02 17:27:06 · 2479 阅读 · 0 评论 -
Yolov3之训练日志可视化
yolov3训练日志可视化主要为loss和iou曲线的可视化,这些是我们查看训练效果的重要依据,首先看一个批次的日志输出: 说明: 一个批次有16*3条信息,每组包含三条信息,分别是: Region 82 Avg IOU: Region 94 Avg IOU: Region 106 Avg IOU: 其中每行的参数意义如下: Avg IOU:当前迭代中,预测的box与标注...原创 2018-08-02 18:19:35 · 12260 阅读 · 26 评论 -
Yolov3之darknet下训练与预测
Yolov3之darknet下训练与预测在做一些实时性要求比较高的目标检测时候,经常会选择Yolov3。本文介绍其训练和预测过程:官网:https://pjreddie.com/darknet/github地址:https://github.com/pjreddie/darknet一、制作数据集数据生成直接参见另一篇博文 Yolov3之生成训练数据二、修改配置文件...原创 2018-08-02 20:49:24 · 7063 阅读 · 0 评论 -
faster-rcnn之caffe下利用vgg16训练及预测
工作中经常用到py-faster-rcnn做图片的检测与识别,训练过程有必要记录一下,下面是参照网上的一些资料整理实践后的总结: py-faster-rcnn的github地址:https://github.com/rbgirshick/py-faster-rcnn数据采用VOC 2007格式。 一、制作数据集 程序/工具:VOC2007文件夹、labelImg 处理流程:图像重命原创 2018-02-07 11:53:15 · 1570 阅读 · 0 评论 -
Imagenet标注文件的Read和Write
class PicAnno: objects = [] def __init__(self, folder): self.objects = [] self.folder = folder def set_folder(self, folder): self.folder = folder def set_fil原创 2018-02-02 22:00:07 · 1493 阅读 · 0 评论 -
css控制字体长度(用省略号显示)
当字体长度过长时候,需要控制长度,通常的做法就是采用省略号显示,可以使用p标签添加上面的样式控制原创 2016-12-15 11:20:15 · 1902 阅读 · 0 评论 -
年周(年+周)的算法
在很多场景下需要由日期获得该日期对应的年周(例如:2016-11-22对应的年周为201647),在iso标准中,当在跨年计算年周时候, Calendar中calendar.get(Calendar.WEEK_OF_YEAR)的算法:跨年周(即1月1日所处的那周)的归属原则为跨年周的周四处于哪年,则该跨年周属于哪年。例如,2016-01-01的那周的周四(2015-12-31)在2015年,那...原创 2016-11-22 21:11:39 · 4006 阅读 · 0 评论 -
Hive中UDAF函数的Demo
场景:一个DEMO程序,统计分组的count、sum、dtl,并把结果以字符串拼接(count-sum-dtl)的形式输出,主要用到了结构体。 代码: UDAF函数package com.jd.pop.qc.udf;import org.apache.commons.lang.ArrayUtils;import org.apache.hadoop.hive.ql.metadata....原创 2017-04-07 09:27:48 · 2021 阅读 · 0 评论 -
hive中UDF开发:解析json对象和解析json数组对象
查阅hive的UDF函数指南可知,虽然udf中的get_json_object和json_tuple能对json解析,但有时候没法实现复杂业务扩展,同时也没有UDF对JSON数组的解析,因此,很多时候需要自己实现解析JSON的UDF,写UDF中如果使用大量开源库(例如fastjson或gson)则会直接导致生成的jar依赖较大,并不是最理想的,本博文查阅了hive源码,发现hive内部用JSO...原创 2017-04-20 09:57:01 · 9872 阅读 · 0 评论 -
面试题:不用Java内置函数把String类型转int类型
面试中遇到一道算法题:不采用java的内置函数,把String类型转换为int类型。原创 2016-04-06 12:53:33 · 4604 阅读 · 2 评论 -
tensorflow设置log等级
设置tensorflow的log日志等级。常用设置os.environ['TF_CPP_MIN_LOG_LEVEL']='原创 2017-05-31 19:53:05 · 6822 阅读 · 0 评论 -
tensorflow中tfrecords文件的save和read
在tensorflow程序中,推荐使用tensorflow内定标准格式——TFRecords,本文是对csv生成TFRecords文件并读取显示的代码实现原创 2017-06-01 13:14:01 · 2150 阅读 · 0 评论 -
linux中利用shell脚本条件执行命令
在linux环境中,我们总会有一些命令需要经常用,例如经常跳转到某些目录下或者执行某些命令,输入一连串的命令是很烦的,此时我们可以预先写一些脚本然后根据我们的选择自动执行命令,那岂不是完美,本脚本就是为此而生的(以跳转不同的目录举例,当然也可以执行其他命令,这时候只需要类比写shell命令即可)原创 2017-11-24 13:02:51 · 23107 阅读 · 0 评论 -
caffe的lmdb数据读取
import lmdbimport caffeif __name__ == '__main__': lmdb_path=r'./DeepID2_train_lmdb'#open lmdb lmdb_env = lmdb.open(lmdb_path) #begin transaction lmdb_txn = lmdb_env.begin() #get原创 2018-01-31 15:28:00 · 1684 阅读 · 0 评论 -
faster-rcnn之训练日志可视化
#coding=utf-8import os, re, tracebackimport matplotlib.pyplot as pltclass LogVisual: def readFile(self, path): file = open(path, 'r') lines = [line.strip() for line in file...原创 2018-08-17 16:24:34 · 3575 阅读 · 13 评论