原本以为学习SLAM就和机器学习说拜拜了,没想到SLAM还是可以结合机器学习的,YOLO3是我接触的第一个机器学习框架,在这里记下其在Ubuntu虚拟机下的使用方法,仅供参考。
1.安装YOLO3
YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。
可以打开终端,从作者大大的github上clone下YOLO3:
git clone https://github.com/pjreddie/darknet
clone到本地后,是一个cmake好的项目,所以不用再mkdir build 然后cmake了,直接进入darknet文件夹打开终端make就好了。
这里多说一点,因为我使用的VM虚拟机,没办法共享主机的显卡(VM是用的虚拟显卡,无法使用主机显卡资源),所以没办法使用GPU加速。
如果你是在主机上使用YOLO3,你需要确保有Nvidia显卡并安装cuda,cuda是英伟达推出的并行计算架构,可以用于大规模计算开发。安装好之后,打开darknet/makefile文件,做如下修改
GPU=1 #如果使用GPU设置为1,CPU设置为0
这样可以使用GPU加速了。
2.下载模型并使用
只安装还不行,需要下载预训练好的模型(或者说是权重)文件:
wget https://pjreddie.com/media/files/yolov3.weights
这个要翻出去下,要不然很慢很慢,200多M得七八个小时。看来看去CSDN上下载都要积分,有点懵,我这里就不要积分了
下载好放在darknet文件夹下,然后就可以检测啦
./darknet detect cfg/yolov3.cfg yolov3.weights data/kate.jpg
# kate.jpg可以换成你自己的文件
这里检测的是作者给的几个图片之一,如果你想检测自己的图片,就要把图片放在data文件夹下,然后在上面这个命令中把文件名写对就可以了
检测结果如下:
可以看到因为我用的虚拟机,本来性能就差,还没有GPU加速,检测速度很慢很慢。往下给出了各个类的可能性百分比。然后在darknet文件夹会生成结检测结果文件
各个类都被方框标记出来了。