![](https://img.haomeiwen.com/i14857074/dc22e420cb347615.png)
![](https://img.haomeiwen.com/i14857074/165baaa877b004ff.png)
![](https://img.haomeiwen.com/i14857074/cd83f28dc5e7433b.png)
停车场数据集(CARPK)包含来自4个不同停车场的近90,000辆汽车,这些停车场通过无人机(PHANTOM 3 PROFESSIONAL)收集。 用无人机视图收集图像,高度约为40米。 此外,我们从部分PUCPR数据集(称为PUCPR +数据集)中完成单个图像中所有汽车的注释,其中总共有近17,000辆汽车。 这是一个大型数据集焦点,用于在不同停车场的场景中进行车辆计数。 图像集由每辆车的边界框注释。 所有标记的边界框都记录了左上角和右下角。 它支持对象计数,对象本地化以及在边界框中使用注释格式进一步调查。 下载的数据集包含以下结构:
❤停车场数据集(CARPK) - 包含89,777辆汽车的信息
图像 - 无人机视图图像(* .png)与所属停车场的名称
注释 - 文本文件(* .txt),每行标记为汽车,文件名与图像文件相对应
❤巴拿马天主教大学+数据集(PUCPR +) - 包含16,456辆汽车的信息
图像 - PUCPR建筑物停车场的10楼视图(。* jpg)
注释 - 文本文件(* .txt),每行标记为汽车,文件名与图像文件相对应
❤其他工具
边界框绘图工具 - 用于边界框可视化的脚本
计数评估工具 - 用于估算MAE和RMSE的脚本
我:脚本是啥啊?什么jio?
狮虎:脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。比如,python就是一种脚本。
我:那C语言就不是脚本语言了吧。
狮虎:还真不是,你说说为啥啊?
我:是因为C要来回调用,不是顺序执行。
狮虎:不是不是,是因为C要编译,就是C语言要用编译器编译,需要把C语言的代码变成机器码。C就要写一个main然后整个写完之后编译,再运行。解释执行的就是脚本。
下面跟着解释,来看看到底标注是啥意思:
![](https://img.haomeiwen.com/i14857074/cc9b69ff15bbee99.png)
![](https://img.haomeiwen.com/i14857074/5a1d6a48843b4f04.png)
![](https://img.haomeiwen.com/i14857074/ae9123b9ec2f0918.png)
![](https://img.haomeiwen.com/i14857074/281177f65297834a.png)
![](https://img.haomeiwen.com/i14857074/5c2ff8e4779f832c.png)
打开其中一个脚本:
![](https://img.haomeiwen.com/i14857074/c8eb48666cb0b951.png)
# Draw PUCPR+ ground truth bounding boxes
ipython ./tool/draw_bounding_boxes.py -- --annots_dir ./PUCPR+_devkit/data/Annotations/ --images_dir ./PUCPR+_devkit/data/Images/ --output_dir ./output_images/PUCPR+/
# Draw CARPK ground truth bounding boxes
ipython ./tool/draw_bounding_boxes.py -- --annots_dir ./CARPK_devkit/data/Annotations/ --images_dir ./CARPK_devkit/data/Images/ --output_dir ./output_images/CARPK/
狮虎:ipython跟python差不多,ipython xxx,就是在调用python执行一个python的脚本
那就一句一句地来看吧:
ipython ./tool/draw_bounding_boxes.py
![](https://img.haomeiwen.com/i14857074/29d68d7f9d64438a.png)
狮虎讲话,记下来:
![](https://img.haomeiwen.com/i14857074/845a8b568d5c96e6.png)
python xxx.py --yyy zzz:用python执行xxx.py,--yyy zzz是一个选项,比如,可能是用什么模式运行,或者告诉它标注在哪里。简而言之就是,python xxx.py就是告诉一个夫可以开始工作了,后面的就是具体干什么。起夫 该去实验室学习了,后面的也可以改成去图书馆学习,回宿舍学习。
看一下这个.py文件里面怎么写的吧:
![](https://img.haomeiwen.com/i14857074/1134d91c63428b82.png)
![](https://img.haomeiwen.com/i14857074/bdc01b8a3cd10c37.png)
![](https://img.haomeiwen.com/i14857074/219a8698dc0fd407.png)
![](https://img.haomeiwen.com/i14857074/b5c1e4f762f5292b.png)
![](https://img.haomeiwen.com/i14857074/f53a16752026e583.png)
![](https://img.haomeiwen.com/i14857074/05e291331de02c01.png)
运行的时候:
print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc')
解压上传到jupyter的文件:
![](https://img.haomeiwen.com/i14857074/3f14fa3df493e57a.png)
![](https://img.haomeiwen.com/i14857074/840c4a3f47446df0.png)
![](https://img.haomeiwen.com/i14857074/259d39c64615acbf.png)
![](https://img.haomeiwen.com/i14857074/9176a8b61d81e48d.png)
![](https://img.haomeiwen.com/i14857074/78400c246ea38c08.png)
![](https://img.haomeiwen.com/i14857074/37a060438c96e96a.png)
![](https://img.haomeiwen.com/i14857074/2271f73e6ba17aff.png)
![](https://img.haomeiwen.com/i14857074/794b68cfc5023845.png)
这是第一张图的标注:
![](https://img.haomeiwen.com/i14857074/ef75274f1c59aa79.png)
这是第一张图片:
![](https://img.haomeiwen.com/i14857074/8a79bfc252472668.png)
![](https://img.haomeiwen.com/i14857074/42053b66d476c9cf.png)
![](https://img.haomeiwen.com/i14857074/1b4917d6b7a4b125.png)
由于原来的画图函数,不好理解,也不好用,所以改用以下函数:
![](https://img.haomeiwen.com/i14857074/dd86cbed040c8288.png)
好啦,这是在狮虎的指导下,我修改的画图的函数,简单又好:
![](https://img.haomeiwen.com/i14857074/817bb6b483dd1040.png)
请看效果图:
![](https://img.haomeiwen.com/i14857074/11aeafa2a0c8ef79.png)
由于现在只画了一个,所以把所有的车车都画出来吧~
![](https://img.haomeiwen.com/i14857074/f2d9e06569488509.png)
![](https://img.haomeiwen.com/i14857074/3629ee144b4bd4cd.png)
网友评论