使用DSFD检测DarkFace数据集过程

1.下载dark face数据集,使用track2.2_test_sample文件中图片进行人脸检测测试。
2.修改dsfd源码中demo.py部分:
test_oneimage():
def test_oneimage():
   # load net
# 影响网络的自动求导机制,使网络前向传播后不进行求导和反向传播(仅测试时使用)
   torch.set_grad_enabled(false)
# 加载config配置参数
   cfg = widerface_640
   # 分类的类别数目---widerface.py
   num_classes = len(widerface_classes) + 1 # +1 background
   # 加载ssd网络模型,返回一个ssd实例
   net = build_ssd('test', cfg['min_dim'], num_classes) # initialize ssd
   # 加载预训练模型train_model
   net.load_state_dict(torch.load(args.trained_model))
   net.cuda()
   # 表示进入评估模式,神经网络中有train(),eval()两种模式,使用eval()可关闭dropout
   net.eval()
   print('finished loading model!')
# evaluation
   cuda = args.cuda
   transform = testbasetransform((104, 117, 123))
   thresh=cfg['conf_thresh']
   #save_path = args.save_folder
   #num_images = len(testset)
# load data,从指定路径加载待测图像
''' 
   以此为界,前半部分为网络模型加载和初始化,后半部分为单张图片的人脸检测。此处为测试图片的路            
   径设置过程。
   修改部分,不适用arg.imag_root作为测试图像路径.
   遍历darkface数据集100张图片,依次读取并进行测试
   '''
folder = './data/'
#img_id = 'face'
   for i in range(100):
img = cv2.imread(folder + str(i) + '_fake_b.jpg', cv2.imread_color)
       img_id = 'test' + str(i)
# 单张图片的测试过程
       max_im_shrink = ( (2000.0*2000.0) / (img.shape[0] * img.shape[1])) ** 0.5
       shrink = max_im_shrink if max_im_shrink = 0.75 else 0.5 * max_im_shrink
       det_s = infer(net , img , transform , thresh , cuda , st)
       index = np.where(np.maximum(det_s[:, 2] - det_s[:, 0] + 1, det_s[:, 3] - det_s[:, 1] + 1) > 30)[0]
       det_s = det_s[index, :]
       # enlarge one times
       factor = 2
       bt = min(factor, max_im_shrink) if max_im_shrink > 1 else (st + max_im_shrink) / 2
       det_b = infer(net , img , transform , thresh , cuda , bt)
       # enlarge small iamge x times for small face
       if max_im_shrink > factor:
           bt *= factor
           while bt 1:
           index = np.where(np.minimum(det_b[:, 2] - det_b[:, 0] + 1, det_b[:, 3] - det_b[:, 1] + 1) 30)[0]
           det_b = det_b[index, :]
       det = np.row_stack((det0, det1, det_s, det_b))
       det = bbox_vote(det)
       vis_detections(img , det , img_id, args.visual_threshold)
3.运行demo.py即可。能在arg.save_folder处得到100张dark_face人脸检测结果。
补充:
dsfd只接收输入格式为jpg的图片,因此对darkface数据集进行批量转换。


潮流圣地三里屯,带你看看属于这的几款潮品
会议室使用什么样的LED屏效果会比较好?
韩国5G商用中我们可以学到什么
智能医疗设备在可穿戴设备中的销量递增,追其两大原由!
【杜科新材】智能穿戴手表边框粘接用胶产品
使用DSFD检测DarkFace数据集过程
华为P10“新卖点”浮出水面:安卓对抗苹果的焦点是云服务
语音识别芯片的原理_语音识别芯片有哪些
压敏电阻有什么优势?有哪几种?
2020旷视AI治理答卷
液晶电视优势集中在75英寸以下 激光电视想壮大还需差异化应用场景
三星主力面板技术解析:从PVA到AMOLED
喜大普奔!手机预装软件遭灭门噩耗
科创板上市委2020年第33次审议会议结果
闲谈物联网如何引导数据往返
品质至上,助力国产化——中微(西安)电子有限公司
mm32-2nd-bootloader技术进阶设计:实现Ymodem更新代码
P10价格太尴尬!安卓旗舰手机调查:三星S8登顶,华为P10垫底
两款电源管理芯片PK,谁和电源适配器最“般配”?答案内详~
基于ARM及GPRS的智能家居系统的实现