个人学习经验

article/2025/10/30 6:26:37

这是一个ubuntu上学习cv遇到的一些常见问题的帮助和解决方法。
有些东西我会慢慢往上面加

文章目录

  • 创建新环境
    • conda添加镜像源
    • 安装模块
    • 在jupyter中使用新环境
    • 在pycharm中使用新环境
  • 使用scp命令传输文件
    • 使用mobaxterm连接服务器
  • 转数据集标注格式
  • anaconda上安装好用的插件
  • 使用爬虫下载网站上的图片
  • mmdetection学习方法,怎样入门cv (most important)
  • 可视化训练结果
  • pycharm的使用手册
    • 选择Interpreter
    • 运行设置
    • debug功能介绍
  • ubuntu常用命令和常见问题
    • 常用软件
    • 常用命令
    • 常见问题
  • 常用网站
  • 写给新生

创建新环境

参考
python创建虚拟环境(Anaconda,windows)

conda添加镜像源

安装模块

1)conda list 查看安装了哪些包
2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境
3)conda update conda 检查更新当前conda
4)conda create -n env_name python=3.7 创建虚拟环境
5)source activate your_env_name 激活虚拟环境
6)source deactivate your_env_name 关闭虚拟环境
7)conda install -n your_env_name [package] 在your_env_name环境中安装package这个包
8)conda remove -n your_env_name(虚拟环境名称) –all 删除虚拟环境
conda环境复制:
1)激活环境(例如环境名为stylegan)
source activate stylegan
2)环境导出
conda env export > stylegan.yaml
3)安装复制环境(注意只能得到conda安装的包,pip安装的还需导出一次)
conda env create -f stylegan.yaml

在jupyter中使用新环境

参考
python创建虚拟环境(Anaconda,windows)

在pycharm中使用新环境

  • 使用新环境写代码(类似于写代码的时候帮助你自动检测一些模块是否存在)
  • ctrl+alt+s打开设置
  • 点开project
  • 点开python interpreter
  • 在倒三角中选择环境
    请添加图片描述
  • 使用新环境运行代码(运行包括debug)
  • 点击右上角的项目名称(如果没有就是灰色的叫add configuration)
  • 点击弹窗(debug configuration)中的左上角 +
  • 选择python
  • 填写 script path(这就是你要跑的程序位置)
  • parameters根据需要传入参数,类似于传入main函数的参数
  • 选择环境
  • 选择相对路径(working directory)

请添加图片描述

使用scp命令传输文件

scp是用于服务器直接互传文件用的,由于linux没有微信,需要知道对面的网络端口,主机名称密码,可以实现上传和下载。
scp -P111111 -r file ubuntu@111.11.11.111:file
使用scp命令传输文件

使用mobaxterm连接服务器

待补充

转数据集标注格式

如xml转json
如txt转json

待补充

anaconda上安装好用的插件

在anaconda prompt中输入如下代码,重启jupyter即可

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

重启之后,在clusters右侧就会多一个按钮Configurable nbextensions
里面可以选择使用一些插件
代码补全:Hinterland无疑是最有用的插件之一
以下是一些很实用的插件
ExecuteTime - 显示执行时间,Code prettify - 格式化/美化代码

使用爬虫下载网站上的图片

待补充(准备做一个视频讲讲)

mmdetection学习方法,怎样入门cv (most important)

不得不知的 MMDetection 学习路线(个人经验版) - OpenMMLab的文章 - 知乎

先谈一谈怎么入门cv,考虑到深度学习用的主流是pytorch

  • 1,学习python基础(包括数据类型’包含基础数据类型的常用函数‘,结构型语句,类与对象,文件处理,修饰器,正则化语句,一些重要模块的熟悉和使用‘opencv,numpy,torch,time,os,matplotlib,PIL.Image’)

  • 2,很多人学习一些语言之后,总觉得自己学了很多但是什么也不会。这时候就需要上手一些内容,比如cv,需要从通用目标检测开始入手。这时候的学习路线就是代码+论文。从经典的文章入手(link),学习别人的思想和代码的写法。

  • 3,现在,离入门只差一步了。看了不少论文,也知道了基本操作,那么自己如何亲手写一份目标检测的代码呢?其实一套目标检测的代码是相当繁琐的,读取数据dataloader,backbone,neck,head,loss,assigner,optimizer。可能之前的第二步,只是粗略地浏览了经典模型的代码。这里就需要仔细学习一套成熟的代码框架(因为每个作者有每个作者的写法和风格),来套用,和学习大多数模型,也对神经网络加强一个整体上的理解。这里推荐mmdetection框架,简直是perfect(https://github.com/open-mmlab/mmdetection)。一开始我学习这套框架也觉得无从下手,很复杂,实际上跟着文中的docs中的教程,可以用一个星期的时间很全面地学习到如何使用这套框架。利用这套框架,尝试在已有的模型中做出改进,你会发现这异常的方便。

  • 4,熟悉了mmdetecion之后,尝试把别人开源的网络——复现在mmdetection框架中,这会大大加强你对框架和模型的理解。

  • 5,至此,恭喜你成功入门cv。

可视化训练结果

假设有一个标注文件,通过学习标注文件的标注方式,提取出了其中的信息。
其中包括图片中物体的bounding box和label信息,如何将其可视化到对应的图片上,便是本节的内容。
利用json文件可视化训练结果需要利用plt.gca()

from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon
import os
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
#以下代码是为了演示,故而标注框使用的shape为4*1,实际上可以是4*n
bboxes=np.array([[100,200,700,800]])#x1,y1,x2,y2#为了使用gca,需要定义画布,需要考虑到原图尺寸,比如按如下定义可使得画面为1920*1080
#如果要求保持一致的宽高,可以使用cv2模块读取图片,输出shape,保证figsize*dpi = shape即可
#此处的dpi代表图片的清晰度,也可以说是缩放比,在绘图时影响明显
#但是此处仅仅是把已有的图片放在画布上,因而不会影响清晰度。
plt.figure(figsize=(19.2,10.8), dpi=100,frameon=False)#subplots_adjust可以控制绘制区域,如下的参数使得图片充满整个区域(不留白)
#默认left=0.125,r=0.9,t=0.9,b=0.1说明直接绘图保存会导致图片边界存在留白
plt.subplots_adjust(top=1, bottom=0, right=1, left=0)#所有的绘图本质上都是在gca上进行的包括plt.plot
ax=plt.gca()
ax.axis('off')#下面的部分实现了标注画在图上,如果自用的话,draw_bboxes不需要做修改,只需要保证输入维度正确
#ax.text实现了标注框打上类别注释,100,200为图片的<相对left-top坐标>(注意不是top-left)
#'label_text'可以输入你先输入的文字,可以使用python3的字符串的一些自带功能如f'{label_text}'使其更简洁
#下面的函数实现了draw_labels方法,可以套用,此处直接使用ax.text只是为了演示
draw_bboxes(ax,bboxes)
ax.text(100,200,'label_text',bbox={'facecolor': 'black','alpha': 0.8,'pad': 0.7,'edgecolor': 'none'},color='g',fontsize=8,verticalalignment='top',horizontalalignment='left')#可以替换为任何一个图像(注意box不要超过图片尺寸)
plt.imshow(Image.open("e:/1.jpg"))
plt.savefig('e:/2.jpg')

下面的代码演示了dpi对于图片质量的影响

#测试dpi对图片的影响
x=np.arange(0.1,5,0.1)
y=x+1/x
figsize=[(15,7.5),(12,6),(8,4),(6,3)]
dpi=[80,100,150,200]#验证dpi对于绘制的图片是否有影响(答案是有影响)
for i in range(4):plt.figure(figsize=figsize[i], dpi=dpi[i],frameon=False)
#     plt.subplots_adjust(top=1, bottom=0, right=1, left=0)ax=plt.gca()ax.axis('off')plt.plot(x,y)plt.savefig(f'e:/matplot/{i}.jpg')#验证dpi对于直接读取的图片的放缩是否有影响(答案是无影响)
im=plt.imread('e:/matplot/3.jpg')
for i in range(4):plt.figure(figsize=figsize[i], dpi=dpi[i],frameon=False)plt.subplots_adjust(top=1, bottom=0, right=1, left=0)ax=plt.gca()ax.axis('off')plt.imshow(im)plt.savefig(f'e:/matplot/{i}{i}.jpg')

下面的两个函数来自mmdetection,分别为draw_bboxes和draw_labels方法。学会使用他们可以使得画图更加方便和简介。

def draw_bboxes(ax, bboxes, color='g', alpha=0.8, thickness=2):"""Draw bounding boxes on the axes.Args:ax (matplotlib.Axes): The input axes.bboxes (ndarray): The input bounding boxes with the shapeof (n, 4).color (list[tuple] | matplotlib.color): the colors for eachbounding boxes.alpha (float): Transparency of bounding boxes. Default: 0.8.thickness (int): Thickness of lines. Default: 2.Returns:matplotlib.Axes: The result axes."""polygons = []for i, bbox in enumerate(bboxes):bbox_int = bbox.astype(np.int32)poly = [[bbox_int[0], bbox_int[1]], [bbox_int[0], bbox_int[3]],[bbox_int[2], bbox_int[3]], [bbox_int[2], bbox_int[1]]]np_poly = np.array(poly).reshape((4, 2))polygons.append(Polygon(np_poly))p = PatchCollection(polygons,facecolor='none',edgecolors=color,linewidths=thickness,alpha=alpha)ax.add_collection(p)return axdef draw_labels(ax,labels,positions,scores=None,class_names=None,color='w',font_size=8,scales=None,horizontal_alignment='left'):"""Draw labels on the axes.Args:ax (matplotlib.Axes): The input axes.labels (ndarray): The labels with the shape of (n, ).positions (ndarray): The positions to draw each labels.scores (ndarray): The scores for each labels.class_names (list[str]): The class names.color (list[tuple] | matplotlib.color): The colors for labels.font_size (int): Font size of texts. Default: 8.scales (list[float]): Scales of texts. Default: None.horizontal_alignment (str): The horizontal alignment method oftexts. Default: 'left'.Returns:matplotlib.Axes: The result axes."""for i, (pos, label) in enumerate(zip(positions, labels)):label_text = class_names[label] if class_names is not None else f'class {label}'if scores is not None:label_text += f'|{scores[i]:.02f}'text_color = color[i] if isinstance(color, list) else colorfont_size_mask = font_size if scales is None else font_size * scales[i]ax.text(pos[0],pos[1],f'{label_text}',bbox={'facecolor': 'black','alpha': 0.8,'pad': 0.7,'edgecolor': 'none'},color=text_color,fontsize=font_size_mask,verticalalignment='top',horizontalalignment=horizontal_alignment)return ax

pycharm的使用手册

选择Interpreter

运行设置

到了断点中间结果不出现怎么办?

Preference --> python debugger --> Gevent compatible

debug功能介绍

知乎上面搜pycharm debug有非常详细的介绍

ubuntu常用命令和常见问题

常用软件

(上网搜都能找到,记得下载ubuntu版本)
Rhythmbox音乐播放器(休闲)
pycharm(工作)
edge(工作+休闲)

常用命令

创建名为filename的文件夹
mkdir filename

删除文件
rm filename

删除文件夹
rm -r file

滚轮灵敏度
killall imwheel
sudo vim ~/.imwheelrc
imwheel

移动文件(夹)(也可用于重命名)
mv fromfile tofile

scp -r -P11111 DOTA1-split-1024 ubuntu@111:disk2/dataset

scp从远程复制到本地(类似上,把后两个参数调换位置)
scp remote@remote_ip:/home/root/others/music /home/space/music/1.mp3

查看当前文件夹下文件夹数量
ls -l|grep “^d”| wc -l

查看当前文件夹下文件数量
ls -lR|grep “^-”| wc -l

文件夹权限问题
chmod -R 777 file

常见问题

文件管理器卡死
找到ubuntu系统监视器,杀死nautilus进程。类似的,pycharm、卡死,杀死java进程。、

ssh无法连接
针对“错误:Network error: Connection refused”的问题,一般是因为Ubuntu刚刚安装好系统,系统中缺乏openssh-server这个包,只需要在Ubuntu中输入安装命令:sudoapt-get install openssh-server,便可以安装了。

使用ls 显示当前目录下的文件时,ubuntu中绿色代表可执行文件,蓝色代表文件夹(被阴影盖住的表示777权限),红色表示压缩文件,黄色表示设备文件,浅蓝色表示链接文件,白色代表普通文件。

df-h查看空间

github连不上,需要科学上网

常用网站

https://github.com/open-mmlab/mmdetection/blob/master/docs/zh_cn/article.md

写给新生

老师会要求大家写周报,但是我们每一个人心中都有每一天的目标!只有每一天有目标,一周才不会颓废。Organize your day!


http://chatgpt.dhexx.cn/article/yHld5HXr.shtml

相关文章

学习经验分享之十一:硕士论文撰写心得

硕士论文由于需要学校提交教育部盲审&#xff0c;导致通过率并不能达到百分百。翟天临事件之后&#xff0c;盲评通过率明显变低一般按照学科分布来说&#xff0c;盲审通过率最低的是工学&#xff0c;通过了为69.9%&#xff0c;其次为哲学&#xff0c;通过率为73.8%&#xff0c;…

我的 C# 学习经验分享

.NET 20 周年的学习挑战赛刚结束了第一阶段&#xff0c; 不知道各位小伙伴参加了没有 &#xff1f; 有人问现在学习 C# 是不是有点过时 &#xff1f; 也有人问现在 C# 能做什么 &#xff1f;更有人问学习 C# 能否找到工作 &#xff1f; 或者你从不同的专家 &#xff0c;不同的从…

分享学习语言的经验

在人类所制造的工具中&#xff0c;有的可以将人送上月球&#xff0c;有的可以驾驭原子的火焰&#xff0c;但是只有计算机软件才能透彻的返照出人类的心智。 --《Java与模式》 软件能够返照出人类的心智&#xff0c;那么计算机语言就是我们展现心智的基石。经常在一些论坛上和贴…

分享一些自己的学习经验和技巧

毕业两年多&#xff0c;工作三年多&#xff0c;技术水平也不是什么出类拔萃&#xff0c;万里挑一的地步&#xff0c;从最初的Java工程师&#xff0c;到产品&#xff0c;再到大数据&#xff0c;到最后的运维工程师&#xff0c;研发工程师&#xff0c;短短三年多&#xff0c;总是…

爬虫学习经验分享-------某点评网站

某点评网站爬虫分享----0基础学习&#xff0c;解决反爬&#xff0c;加密&#xff0c;ip代理&#xff0c;封ip“403 Forbidden”等问题。 最近有个调查的项目&#xff0c;其中包含了对于网络数据的爬取。而之前我并没学过网络爬虫&#xff0c;因此我也抱着学习的心态来学习如何爬…

前端学习总结,经验分享,项目经验分享过程

前言 来&#xff0c;和魔王哪吒总结一下&#xff0c;分享一下自己对前端学习总结&#xff0c;经验分享&#xff0c;以及写过的项目经验分享过程。 如果觉得还不错的话&#xff0c;浏览的过程中&#xff0c;需要您&#xff1a; 点赞&#xff0c;分享&#xff0c;评论有钱的捧…

方法教程:一分钟把网易云音乐上的MV/mv视频下载到本地电脑

1、用Google Chrome浏览器把网易云上的MV打开。点击【分享】-【复制链接】-粘贴到浏览器地址栏打开&#xff1a; 2、在视频旁边的空白处右击鼠标&#xff0c;打开【检查】&#xff1a; 3、打开界面后点击【Network】–【All】&#xff0c;然后刷新浏览器&#xff0c;让视频播放…

网易云 计算机,网易云音乐电脑版2.7.4.198336_网易云音乐 - 系统之家

网易云音乐是一款播放、发现高品质音乐的专业音乐播放器&#xff0c;能找到许多小众的品位音乐、歌手&#xff0c;让你在电脑上听CD品质的音乐。网易云音乐是网易旗下主推的音乐播放器&#xff0c;依托专业音乐人、DJ、好友推荐及社交功能&#xff0c;为用户打造全新的音乐生活…

利用requests爬取网易云音乐榜单并下载

最近想爬取网易云音乐的歌单&#xff0c;发现网上很多教程都用Selenium&#xff0c;比较麻烦。因为研究网易云音乐排行榜html码源&#xff0c;发现榜单是iframe动态加载的。用原网址爬取是爬取不到内容的。想用requests爬取的话需要获取iframe的源码。 目录 一、url和请求头分…

JS逆向之网易云音乐

文章目录 1. 目标网站2. 初步分析3. 定位加密参数生成位置4. 编码测试4.1 定义AES加密方法4.2 调用两次AES加密获取params4.3 获取歌曲的url4.4 单曲下载初步测试代码4.5 飙升榜单音乐批量抓取文章内容仅用于学习和技术交流,如有侵权请联系我删除。 1. 目标网站 https://musi…

网易云音乐 For Mac

网易云音乐mac版专门为mac电脑用户使用的音乐播放软件&#xff0c;用户还可以使用网易云账号将电脑和手机上的音乐同步网易云音乐mac版中&#xff0c;使用更加方便。网易云音乐for mac比较人性化&#xff0c;它能根据你平时听音乐的喜好&#xff0c;自动给你推荐音乐&#xff0…

利用 Python 一键下载网易云音乐 10W+ 乐库

如果你常听音乐的话&#xff0c;肯定绕不开网易云&#xff0c;作为一款有情怀的音乐 App&#xff0c;我对网易云也是喜爱有加。虽然说现在都已经是 5G 时代了&#xff0c;大家的手机流量都绰绰有余&#xff0c;但在线播放还是不如本地存着音乐文件靠谱&#xff0c;今天我们就用…

网易云音乐虚化图片html,网易云音乐怎么换背景 背景图片设置方法

网易云音乐作为主流的手机音乐播放器&#xff0c;依托强大的社交功能&#xff0c;从众多播放器中脱颖而出&#xff0c;个性化的皮肤更是为它增加了不少魅力&#xff0c;下面就跟小编了解下具体的设置方法吧。 类别&#xff1a;影音播放 大小&#xff1a;90.81M 语言&#…

JAVA如何用URL下载网易云音乐

1.打开网易云&#xff0c;选择一首歌曲播放&#xff0c;然后按f12 2.找到并点击以.m4a结尾的链接 3.把输入框的链接替换代码里面的URL //1.获取资源地址URL url new URL("https://m801.music.126.net/20201006161345/802c3e2bd0240db619e27a7f1eeffcce/jdyyaac/5608/005a…

使用云函数快速升级网易云音乐等级

关于等级特权&#xff0c;网易云官网有介绍 https://music.163.com/#/level/details &#xff0c;最高级Lv10有100G音乐云盘免费容量 使用分享的脚本是每天自动在网易云音乐刷完300首歌&#xff0c;让你的账号快速升级&#xff08;等级数据每天下午2点更新&#xff09; 一个…

网易云linux版本如何安装包,网易云音乐Linux版提供64位和32位ubuntu16.04安装包

网易云音乐终于推出了官方Linux版本&#xff0c;提供的下载安装包有&#xff1a; deepin15(32位)&#xff1a;http://s1.music.126.net/download/pc/netease-cloud-music_0.9.0_i386.deb deepin15(64位)&#xff1a;http://s1.music.126.net/download/pc/netease-cloud-music_0…

干货,下载网易云课堂和B站的视频

原文网址&#xff1a;https://www.jianshu.com/p/ad20e5a63353 我们在平时的学习中&#xff0c;很有可能会接触 网易云课堂 和 BIlibili 这两个很棒的网站。 有的时候我们在线观看不方便&#xff0c;总是想把网站里面的视频下载到电脑&#xff0c;然后自己闲暇时间进行学习。 方…

EasyRecovery帮你一招找回网易云下载的单曲

科技迅速发展的时代里,人们越来越离不开手机、电脑、平板等电子产品,也更习惯于把重要的音频、视频和图片储存在这些电子产品中了。既然有储存,那就有丢失,大家一定遇到过因误删文件而抓狂的情况吧。不过如今处理误删的情况也完全是小事啦,所谓一物降一物,我们有文件恢复…

网易云API接口运行教程

1.网易云api下载地址&#xff1a; https://neteasecloudmusicapi.js.org/#/ 2.下载或者git clone到本地 3.解压缩NeteaseCloudMusicApi-master.zip 4.在搜索框中输入cmd打开终端&#xff0c;在终端中输入node app.js&#xff0c;服务器已经运行&#xff0c;可以将生成地址输入到…

HC05蓝牙模块(主从一体)简单使用

使用 按住蓝牙模块上的按键&#xff0c;再接通电源&#xff0c;进入AT指令模式&#xff0c;可以进行AT指令设置 引脚连接 PA2&#xff08;TX&#xff09; -RX PA3&#xff08;RX&#xff09; -TX 5V VCC GND …