YonghaoHe / LFFD-A-Light-and-Fast-Face-Detector-for-Edge-Devices

A light and fast one class detection framework for edge devices. We provide face detector, head detector, pedestrian detector, vehicle detector......
MIT License
1.31k stars 330 forks source link

头部侦测问题 #100

Closed GilbertTam closed 3 years ago

GilbertTam commented 3 years ago

您好,

想请问你复杂的背景我很容易把背景圆形的标志或是图案辨识成头,有什么triaing方式可以改善吗?另外,再选择model的时候除了看每层的reg loss与cls loss相加,还有什么选择方式吗?

因为我发现我的模型在近距离的时候把身体判断成头的机率很高

YonghaoHe commented 3 years ago

@GilbertTam 人头检测在我们实际的应用中已经可以做得比较准了,不知道您遇到的是什么情况?身体识别成头这个有点奇怪。

GilbertTam commented 3 years ago

@YonghaoHe 我发现我会把背景里面比较圆的东西物认为头,像是禁烟标志或是圆环,另外有些身体的背包也会框出 back

2 我选用lffd face v2的架构来training,model loss 大约在下面的数字

clc_loss_score_0 380.7355 reg_loss_bbox_0 955.1809 clc_loss_score_1 197.1303 reg_loss_bbox_1 341.3145 clc_loss_score_2 151.4281 reg_loss_bbox_2 314.6836 clc_loss_score_3 225.5119 reg_loss_bbox_3 337.1038 clc_loss_score_4 192.7483 reg_loss_bbox_4 405.4110

不知道要怎选优化或选择model呢?如何分析哪一层的loss比较重要,会让我框到比较少的误框

GilbertTam commented 3 years ago

目前我的準確度大約80%要如何增加呢? 有時候也會框到手 22

YonghaoHe commented 3 years ago

@GilbertTam 从训练的loss值来看,好像并不理想。具体什么问题很难说。可以用v2模型,足够给出一个比较理想的结果了。注意数据准备。

jun214384468 commented 3 years ago

您好,我想请教以下如何测试但张图片的头部检测呢

yzl1014 commented 3 years ago

@GilbertTam 人头检测在我们实际的应用中已经可以做得比较准了,不知道您遇到的是什么情况?身体识别成头这个有点奇怪。

您好,我测试了一下人头检测的模型,效果很不好啊,即使是你附带的测试图片效果也很不好。请问您能附加一下测试单幅图片的demo吗?

YonghaoHe commented 3 years ago

@yzl1014 这个人头检测的模型是在一个很小、且场景非常单一的数据集上训练的,所以仅仅作为一个例子进行展示,目前这个数据集好像已经不提供下载了。所以这个给出来的模型不能用在别的场景,或者其他场景的效果会非常差。之前在issue中已经有人使用LFFD在自己的人头检测数据集上取得了非常不错的效果,应该是没有太大问题的。

yzl1014 commented 3 years ago

@yzl1014 这个人头检测的模型是在一个很小、且场景非常单一的数据集上训练的,所以仅仅作为一个例子进行展示,目前这个数据集好像已经不提供下载了。所以这个给出来的模型不能用在别的场景,或者其他场景的效果会非常差。之前在issue中已经有人使用LFFD在自己的人头检测数据集上取得了非常不错的效果,应该是没有太大问题的。

可是这个人头检测模型用这个数据集的测试图片进行测试,效果还是很不好。怎么回事

YonghaoHe commented 3 years ago

@yzl1014 之前我们是用这个模型在数据集上进行了定量测试,MAP的指标还是相当不错的,达到了0.91,远超了其他的方法。而且我们也给出了在一些测试图片上的定性结果,应该是可以看到,预测能力还是很好的。我想你在是用的过程中是不是出了什么问题。这个需要你给出更详细的过程展示了。

yzl1014 commented 3 years ago

@yzl1014 之前我们是用这个模型在数据集上进行了定量测试,MAP的指标还是相当不错的,达到了0.91,远超了其他的方法。而且我们也给出了在一些测试图片上的定性结果,应该是可以看到,预测能力还是很好的。我想你在是用的过程中是不是出了什么问题。这个需要你给出更详细的过程展示了。

`def run_prediction_pickle(): from config_farm import configuration_10_160_17L_4scales_v1 as cfg import mxnet

symbol_file_path = 'symbol_farm/symbol_10_160_17L_4scales_v1_deploy.json'
model_file_path = 'saved_model/configuration_10_160_17L_4scales_v1_2019-09-20-13-08-26/train_10_160_17L_4scales_v1_iter_800000.params'
my_predictor = Predict(mxnet=mxnet,
                       symbol_file_path=symbol_file_path,
                       model_file_path=model_file_path,
                       ctx=mxnet.gpu(0),
                       receptive_field_list=cfg.param_receptive_field_list,
                       receptive_field_stride=cfg.param_receptive_field_stride,
                       bbox_small_list=cfg.param_bbox_small_list,
                       bbox_large_list=cfg.param_bbox_large_list,
                       receptive_field_center_start=cfg.param_receptive_field_center_start,
                       num_output_scales=cfg.param_num_output_scales)

for idx in ['accuracy_evaluation/test_images/2.jpg','accuracy_evaluation/test_images/247.jpg','accuracy_evaluation/test_images/322.jpg','accuracy_evaluation/test_images/342.jpg','accuracy_evaluation/test_images/377.jpg','accuracy_evaluation/test_images/5.jpg','accuracy_evaluation/test_images/7.jpg','accuracy_evaluation/test_images/72.jpg']:
    im = cv2.imread(idx)

    bboxes = my_predictor.predict(im, resize_scale=1, score_threshold=0.3, top_k=10000, NMS_threshold=0.6)
    for bbox in bboxes:
        cv2.rectangle(im, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (255, 0, 0), 2)

    cv2.imwrite(idx.split('/')[-1], im)
    # key = cv2.waitKey()
    # if key & 0xFF == ord('s'):
    #     cv2.imwrite('./test_images/' + str(idx) + '.jpg', im)

if name == 'main': run_prediction_pickle()`

您好,这是我的人头预测代码。

yzl1014 commented 3 years ago

@yzl1014 之前我们是用这个模型在数据集上进行了定量测试,MAP的指标还是相当不错的,达到了0.91,远超了其他的方法。而且我们也给出了在一些测试图片上的定性结果,应该是可以看到,预测能力还是很好的。我想你在是用的过程中是不是出了什么问题。这个需要你给出更详细的过程展示了。

2 蓝色方框 是我测试的结果,用您git里面提供的权重和代码,和您的效果差很远啊!

YonghaoHe commented 3 years ago

@yzl1014 你这是直接在我们画了检测框的图像上进行测试的么?如果是这样,结果肯定不对的,需要在原始图像想进行测试的。

yzl1014 commented 3 years ago

@yzl1014 你这是直接在我们画了检测框的图像上进行测试的么?如果是这样,结果肯定不对的,需要在原始图像想进行测试的。

谢谢,在原始图像上面进行人头检测,效果确实不错