将fddb标注转换为VOC格式标注
来源:互联网 发布:手机淘宝已购买生成器 编辑:程序博客网 时间:2024/06/05 17:05
github地址:https://github.com/imistyrain/fddb-windows
fddb是用来评估人脸检测性能事实上的标准,它给出了10折验证椭圆格式的标注,这和faster-rcnn以及SSD等的要求是不一样的,因此需要转换为期望的格式。
难点在于如何得到椭圆的外接矩形,我采用的方法是在全黑图上绘制椭圆标注,然后求取contours,最后取boundingrect实现的。
下面的代码段可以在https://github.com/imistyrain/fddb-windows/blob/master/showannotations/fddbannotation.py找到.
def show_annotations(): for i in range(10): annotationfilepath=annotationdir+"/FDDB-fold-%0*d-ellipseList.txt"%(2,i+1) annotationfile=open(annotationfilepath) while(True): filename=annotationfile.readline()[:-1]+".jpg" if not filename: break line=annotationfile.readline() if not line: break print filename facenum=(int)(line) img=cv2.imread(origimagedir+"/"+filename) filename=filename.replace('/','_') cv2.imwrite(imagesdir+"/"+filename,img) w = img.shape[1] h = img.shape[0] labelpath=labelsdir+"/"+filename.replace('/','_')[:-3]+"txt" labelfile=open(labelpath,'w') for j in range(facenum): line=annotationfile.readline().strip().split() major_axis_radius=(float)(line[0]) minor_axis_radius=(float)(line[1]) angle=(float)(line[2]) center_x=(float)(line[3]) center_y=(float)(line[4]) score=(float)(line[5]) angle = angle / 3.1415926*180 cv2.ellipse(img, ((int)(center_x), (int)(center_y)), ((int)(major_axis_radius), (int)(minor_axis_radius)), angle, 0., 360.,(255, 0, 0)) if conver2rects: mask=np.zeros((img.shape[0],img.shape[1]),dtype=np.uint8) cv2.ellipse(mask, ((int)(center_x), (int)(center_y)), ((int)(major_axis_radius), (int)(minor_axis_radius)), angle, 0., 360.,(255, 255, 255)) #cv2.imshow("mask",mask) contours=cv2.findContours(mask,cv2.RETR_LIST,cv2.CHAIN_APPROX_NONE) for k in range(len(contours)-2): r=cv2.boundingRect(contours[k]) x_min=r[0] y_min=r[1] x_max=r[0]+r[2] y_max=r[1]+r[3] xcenter=r[0]+r[2]/2 ycenter=r[1]+r[3]/2 labelline="0"+"\t"+str(xcenter*1.0/w) + '\t' + str(ycenter*1.0/h) + '\t' + str(r[2]*1.0/w) + '\t' + str(r[3]*1.0/h)+ '\n' labelfile.write(labelline) cv2.rectangle(img,(int(x_min),int(y_min)),(int(x_max),int(y_max)),(0,0,255)) labelfile.close() cv2.imshow("img",img) cv2.waitKey(1)
阅读全文
0 0
- 将fddb标注转换为VOC格式标注
- 将wierface标注转换为VOC格式
- 利用python将alfw转换成bing标注格式
- Python生成PASCAL VOC格式的xml标注文件
- MRLabeler:一款先进的VOC格式标注工具
- Python生成PASCAL VOC格式的xml标注文件
- Python生成PASCAL VOC格式的xml标注文件
- CelebA数据库转换为VOC、YOLO格式
- 标注
- 标注
- 标注
- py-faster-rcnn标注FDDB人脸便于其在FDDB上进行测试
- 车牌标注转换
- PASCAL Annotation转换为VOC xml格式数据
- 【深度学习:目标检测】 py-faster-rcnn标注FDDB人脸便于其在FDDB上进行测试
- 设置标注为分数样式
- 利用matlab将自己的数据制作为标准VOC数据集格式
- 在arcmap中设置标注格式
- 堆排序
- Struts2入门基础小结2!
- SpringMVC+Ibatis+SPring Security开发框架搭建
- JavaScript基本语法
- Django: TypeError topic() got an unexpected keyword argument 'topics_id'
- 将fddb标注转换为VOC格式标注
- 题目112-指数运算
- 用python绘制词云
- c++基础之文件
- java基础复习笔记2
- Hadoop入门
- 大小写字母装换器
- jQuery动画效果-向右移动
- 解决Windows版本Nginx配置不生效问题