我突然发现,有的图片是这样的:
反正运行后出错了:
狮虎说,要整数,但是我给的是浮点数我就被打了一顿
原来没写这句话加上了还是不对:
狮虎让我打印一下draw看看 draw是空的;再打印一下img img也是空的 原来路径错了 这次就对了准备画出来所有的时候:
发现无论一直只能画一个:
检查了一下,原来是return的缩进不对。
这样就对了于是都画出来了:
下面开始写批量训练的程序了:
已经是个成熟的代码了,要学着自己一个一个滴读取了对比之前的项目,看看有哪些部分:网络定义、数据、训练
网络定义已经写好了,数据正在做,训练还没有做。
很久很久以前,有个叫做WYY的博主,把网络定义已经写好了,突然发现轻松了很多,那就直接抄一下她的,就可以了。
数据还没写好,开始写数据部分吧赶紧拿来face项目的代码,来看看是怎么个写法:
是将图片和label一一对应。
简而言之,我现在的问题是,我不会写,把所有的图片都读了的程序。
首先看一下此处的init是在做什么。init是在指明数据路径,数据转换,以及是训练集还是测试集数据分为图片和label两部分,图片如下:
label如下:
图片与label是一一对应的 其他部分不改,画框的地方改一下红色部分是在读取所有的图片,将它们改成这样:
之前写过读取标注文件并画出来。
巴拉巴拉,就是把之前face的拿过来改一下:
这是标注的路径 这是img们的路径注意,label与img两个路径,所以这里要做相应的改正:
这时候,还不是label与img还不是一一对应的关系,所以要sort一下:
让他们按照名字排序,这样就可以一一对应了:
sorted(iterable[, cmp[, key[, reverse]]])
Return a new sorted list from the items in iterable.(会返回一个重新排列好的list)
iterable(可迭代):可迭代对象,可以是list也可以是dict
cmp:可以自定义比较规则,这里不详细叙述(比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。)
key:用于比较的值(主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。)
reverse:指定是顺序还是逆序(reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认))
请看以下实例:
啊,你看,还有sort和sotred的区别:
先试一下sorted怎么用吧:
在这之后加上一个sorted吧今天是开心的一天!开始写代码咯!
改正了一些小问题以后,发现还是网络部分有问题:
总说它没有“孩子”,救救孩子吧 同样的,你看这里,就有啊。比较一下,这两身衣服:
原来是拼写错了,是孩子,不是该子 原来有fc层 优化器这里也有 滴滴哒滴滴哒(1)得到“小图”与“大图”:
1)小图:63*63,切割出的小汽车(随机决定切哪个小汽车,这样可以保证,无论切的是哪个小汽车,都能数出来)
如果我们认为(0,0)为图像的左上角,则称为im以左到右为x方向,自上而下为y方向,我们以(x1,y1)为左上角顶点,(x2,y2)为该图像中矩形区域的右下角顶点,然后:roi = im[y1:y2, x1:x2]获取各个汽车的左上角和右下角的坐标的代码已经写过了:
这是一个二维数组吧,或者叫做一个矩阵吧但是我只需要从中随机取一组即可:任弱水三千,我只取一瓢而已。
我的瓢如下:
取得时候出现了以下错误:
查资料后:
这下就对了:
终于啊:
这里红色的就是说,如果版本更新了,可能会有不同,我们暂时不用管它 这部分应该放在dataset的transform部分 希望今天能调通代码(1)dataset模块调试:
1)实例化一个dataset;
2)再调用一下(看看这个dataset里面有什么);
该dataset里面是许多img和许多label 此处不一样是正常的,每次都是新的 注意,这里一开始写错了啊 朕惊 据说我的for循环这里,一直在找文件夹,结果找不到。 改正以后,就对了。是不是终于对了:
还是有点不对,于是今天,我又来改了。
但是这里还是有点不对,因为txt只读到了文件名,并没有读到文件里面是啥,怎么回事呢。 哈哈哈哈哈终于对了:
你看,就对了啊哈哈哈 就还不对在这里说一下,如果到下周三,我这个“数数”还数不完,就不做了。
好美丽heatmap:
1.先生成一个和原图一样大的全为0的图
2.计算图上每一个点到中心点的距离
3.根据距离计算值
代码已经写好:请看本人github:https://github.com/POLARBEARWYY/Class-Agnostic-Counting
网友评论