- 博客(11)
- 收藏
- 关注
原创 mmdetection训练记录
mmdetection多GPU训练说明1、docker环境: docker exec -it dj_mmdetection /bin/bash 进入docker容器,切换到mmdetection目录cd /home/mmdetection-envs/mmdetection/2、找到对的配置文件: 当前目录下==>configs文件夹中找到对应的py文件,根据py文件顶部base找到对应的base配置文件(没有的话就只有文件本身)。比如faster_rcnn_x101_64x4d_
2020-07-31 17:24:58
3734
原创 基于Ubuntu安装docker并搭建深度学习环境(一)
现在加入了新的环境,是个大集体。公司用的是Ubuntu+docker配置各自的环境,这里总结一下如何自己搭建一个简单的环境。首先安装一个虚拟机环境,虽然docker支持windows,但是还是Linux比较合适,毕竟服务器才是主流~一般VM比较火,这里介绍一个Oracle的Virtual Box,具体安装可以参考知乎上的操作,我就是这么来的:win10虚拟机Oracle VM VirtualBox安装和使用教程安装好Ubuntu后,就可以安装docker了,这里我找了一个简书的文章:解决ubuntu
2020-07-11 11:20:34
831
原创 OpenCV和图像处理(六)
本文以下OpenCV都简写成"cv2"的形式,所有img都默认为一张图片十、特征提取和特征匹配首先了解一个概念:角点。抽象的说,角点就是极值点,即在某方面属性特别突出的点。在图像特征提取中,角点可以是两条线的交叉处,也可以是位于相邻的两个主要方向不同的事物上的点。1、特征提取特征提取指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。特征的好坏对泛化性能有至关重要的影响。1-1:Harr
2020-06-13 17:01:44
982
原创 OpenCV和图像处理(五)
本文以下OpenCV都简写成"cv2"的形式,所有img都默认为一张图片九、分水岭算法分水岭算法是一种经典且实用的 切割算法 。分水岭算法中有一个核心思想:距离变换。1、距离变换距离变换是指把某点到某个特定区域,一般是二值化图的黑色部分,因为黑色=0,可以代表背景。然后我们定义某一个图像,或者某一个不为零的像素,其到背景0的最短距离的数值替换成像素值,那么整个图片中,越远离背景的地方就越"亮",越靠近背景的地方就越"黑"。再配合一个阈值操作,就可以找到每一个需要切割的图像的中心点了,因为中心点肯定是
2020-06-13 17:00:28
298
原创 OpenCV和图像处理(四)
本文以下OpenCV都简写成"cv2"的形式,所有img都默认为一张图片八、霍夫变换霍夫变换是将xy坐标系转换到类似极坐标的坐标系:模长ρ和角度θ,可以用来检测"任意能用数学公式表达的形状"。在图上取多个点,将其投影到霍夫变换中,这多个点如果有公共交集,就找到了该形状的极坐标参数(即得到了模长和角度)。然后再转换为xy坐标系的一组点即轮廓。霍夫变换经常用于检测圆形和直线,下面代码举例:找直线:image = cv2.imread("hough.jpg") # 得到需要检测的原图image_gray
2020-06-13 16:59:35
318
2
原创 OpenCV和图像处理(三)
本文以下OpenCV都简写成"cv2"的形式,所有img都默认为一张图片七、边缘与轮廓1、图像梯度1-1:Scharr 滤波器Scharr 滤波器:Sobel 滤波器的改良版。Sx=[−303−10010−303]Sy=[−3−10−30003103]计算梯度幅值和方向S=Sx2+Sy2θ=arctan(SySx)S_x=\left[ \begin{matrix} -3&0&3\\ -10&0&10\\ -3&0&3 \en
2020-06-13 16:58:11
347
原创 OpenCV和图像处理(二)
本文以下OpenCV都简写成"cv2"的形式,所有img都默认为一张图片四、图像滤波0、了解OpenCV卷积操作kernel = np.array([[1, 1, 0], [1, 0, -1], [0, -1, -1]], np.float32) # 定义一个核result = cv2.filter2D(src, -1, kernel=kernel)r'''和深度学习不同,OpenCV的卷积核是自己设置的,而深度学习可以自行学习到。cv2.filter2D(src, ddepth, kern
2020-06-13 16:50:53
763
原创 OpenCV和图像处理(一)
一、基本操作:1、OpenCV读取和保存图像img = cv2.imread('xx.jpg', flags='用什么模式读取图片[彩色or灰度]')#读取图片并显示cv2.imshow('show', img)cv2.waitKey(0)#保存图片cv2.imwrite(path:str, img)2、了解BGR和HSV颜色空间RGB在cv2中顺序其实是BGR,但是其颜色过渡(指从红到绿到蓝)是离散的,为了便于连续操作,就可以使用HSV颜色空间。色调H[0-179]:逆时针顺序 =&
2020-06-13 16:38:42
744
原创 交叉熵+softmax的优势
交叉熵的一般形式是:−Σp∗log(q)-Σ{p*log(q)}−Σp∗log(q)其中p一般指的是真实情况概率(标签),q指的是神经网络计算出的概率(结果)为了一般化,这里特别规定好:输入的训练样本标签为Y:[Y0,Y1,...,Yn]神经网络计算的结果为A:[A0,A1,...,An]交叉熵公式中对数的底数为e,此时log是ln输入的训练样本标签为Y:[Y_0,Y_1,...,Y...
2019-12-24 22:54:33
463
原创 一种有趣的方法求sigmoid导数
我相信了解sigmoid函数的朋友都能很容易求出sigmoid的导数,今天我这个文章是想记录网上看到的一种我之前没想过的思路:解方程求导。首先写一下sigmoid。令S(x)=sigmoid函数,有:S(x)=11+e−xS(x)=\frac{1}{1+e^{-x}}S(x)=1+e−x1令f(x)=S(x)的倒数:f(x)=1S(x)=1+e−xf(x)=\frac{1}{S(x...
2019-12-23 10:45:26
384
原创 softmax的导数
softmax的原函数为:S(xi)=exiex0+ex1+...+exn=exi∑j=0nexjS(x_i)=\frac{e^{x_i}}{e^{x_0}+e^{x_1}+...+e^{x_n}}=\frac{e^{x_i}}{\sum_{j=0}^{n}e^{x_j}}S(xi)=ex0+ex1+...+exnexi=∑j=0nexjexi和普通的函数有点不太一样...
2019-12-22 20:31:51
660
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人