jupyter notebook使用opencv的例子_使用OCI的GPU环境实现去除照片马赛克
之前在自己搭建图像识别的AI环境时,需要至少半天甚至更多的时间,因为使用多项开源技术,各种技术之间的兼容性往往非常复杂,如果都使用最新的版本,通常会出现不兼容的情况,需要各种试错,反复安装,极为头痛。而Oracle OCI当中为大家提供了配置好的,并且可以免费使用的AI集成环境,您只需要支付计算资源和存储资源的费用,就可以使用由专业人士为大家搭建好的AI环境,而这个环境不会额外收费。前一...
之前在自己搭建图像识别的AI环境时,需要至少半天甚至更多的时间,因为使用多项开源技术,各种技术之间的兼容性往往非常复杂,如果都使用最新的版本,通常会出现不兼容的情况,需要各种试错,反复安装,极为头痛。而Oracle OCI当中为大家提供了配置好的,并且可以免费使用的AI集成环境,您只需要支付计算资源和存储资源的费用,就可以使用由专业人士为大家搭建好的AI环境,而这个环境不会额外收费。前一段时间一直在做图像识别的案例,期间在网络上看到一篇文章,使用pulse进行模糊人脸图像处理的例子,于是想搭建一个环境测试一下。因为该环境需要使用到GPU运算,在常规的AI机器学习环境之上还要配置GPU的驱动及做相关的设定,这使环境搭建变得更加复杂。好在OCI的marketplace提供AI all in one的image,我们只需要点选几下鼠标,就可以轻松创建出适用于图像处理的GPU机器学习环境。
今天就请和我一步步来操作,从环境搭建到使用pulse进行图像去除马赛克吧。
1、在OCI当中创建GPU机器学习环境
在您登陆Oracle Cloud环境之后,进入instance选项,创建instance。本次我选择的是美国数据中心,您可以根据自己的情况,选择有GPU环境的数据中心。
请点击下图中红框所示按钮,修改操作系统安装介质。
选择Oracle images当中的AI (All-in-One) GPU Image for Data Science这个介质,这是免费使用的。
然后选择计算资源的shape,本次由于要使用到GPU资源,所以请按照下图的方式进行选择。因为我们的计算量不大,所以选择最低端的GPU shape即可。
接下来提供连接到虚拟机的公钥,然后点击Create按钮创建instance,只需要1-2分钟的时间就可以创建完毕。
2、网络设定
您可以根据需要对当前系统的防火墙进行设定,比如关闭防火墙,使用root用户执行systemctl stop firewalld将防火墙关闭,执行systemctl disable firewalld彻底关闭。另外需要注意的是,需要在OCI环境中,对当前实例所使用的安全列表进行设定,比如一会儿我要使用9999端口作为jupyter notebook的端口,那么请将该端口放开。
3、安装anaconda和dlib
因为本次要使用到人脸识别技术,所以需要安装dlib,并且为了后续的计算方便,建议大家也安装Anaconda。
A、先将安装dlib之前所需的安装包和支持文件安装上。
yum -y install cmake
yum -y install boost
pip install cmake
B、下载Anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
C、安装Anaconda
bash Anaconda3-2020.02-Linux-x86_64.sh
D、激活Anaconda
conda activate
E、升级Anaconda,这个动作会需要大概5-10分钟的时间
conda upgrade --all
F、安装dlib
pip install dlib
4、设定jupyter环境并启动jupyter notebook
A、首先设定环境变量,执行下方代码即可:
source mlenv/bin/activate
B、生成密码文件
jupyter notebook password
您会看到如下提示,说明密码文件已经存入这个json文件当中。
Wrote hashed password to /root/.jupyter/jupyter_notebook_config.json
C、生成配置文件
jupyter notebook --generate-config
您会看到下面提示,表示配置文件生成完毕
Writing default config to: /root/.jupyter/jupyter_notebook_config.py
D、将密码文件当中的密码放入配置文件
首先使用cat或者vi,查看在上面第二步(B步骤)生成的密码文件,您将看到如下信息,将passoword后面的双引号中的信息复制出来。
打开上面C步骤生成的配置文件,将如下信息加到文件的最后,并将刚才复制的密码写入。注意,在密码前面,我写了u。本次使用9999端口作为jupyter notebook的端口
E、启动jupyter notebook
jupyter notebook --allow-root &
来到浏览器中输入IP:9999,然后会被要求输入密码,将刚才您设定的密码输入即可。我先写几行代码,看看当前的设备是否可以正常使用GPU。
5、下载pulse
来到https://github.com/adamian98/pulse,下载源代码。下载的是zip格式的文件,使用unzip解压即可。
6、使用pulse进行图像处理。
进入解压好的路径,创建cache目录,并给予正确的访问权限,比如chmod -R 777 cache。cache是用来一会儿在处理图像时,在线下载模型的。创建input路径,并设定权限,这个路径是用来放入马赛克图片的。怕涉及版权,我将我自己的照片模糊处理之后,放入input文件夹。
然后在命令行中,执行2000步运算,处理之后的结果将被放入runs目录。
使用ftp下载下来或者在jupyter notebook的文件管理器中看一看,我的天啊,吓屎了。这这这,这是谁啊!!!!!!眼睛挺大,还有长睫毛,不错。眉毛怎么回事儿?眼袋怎么这么大?嘴巴也不像啊,另外,我的眼镜呢?给我P没了?。而且这不是华人的面孔啊,怎么回事儿啊?
原因很简单,因为pulse的训练集是白种人的面部图片,所以程序自然会使用它的“学习成果”去预测马赛克之前的原始图像。后续可以对算法和训练集进一步优化,让它适合各个人种。
今天的内容就到这里了,我去想想怎么优化一下算法,看看能不能把我P得更好看一点,哈哈哈。
相关链接:
Oracle数据科学公开课(1):OCI基础
Oracle数据科学公开课(2):OCI Data Science Tenancy Setup
Oracle数据科学公开课(3): Resource Stack
Oracle数据科学公开课(4):Notebook的创建与管理
Oracle数据科学公开课(5):JupyterLab环境详解
Oracle数据科学公开课(6):Notebook Session Enviroment
Oracle数据科学公开课(7):ADS Python SDK
Oracle数据科学公开课(8):ADS Connectivity to Data
手把手教你:搭建Data Science环境
手把手教你:使用Oracle Data Science分析纽约民宿数据
扫描下方QR Code即刻预约ADW演示
编辑:殷海英
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)