过度使用Fizyr使用Retinanet进行汽车损坏检测(回归和分类)

时间:2019-06-26 23:02:58

标签: machine-learning computer-vision artificial-intelligence data-science training-data

我正在尝试在汽车图像上检测损坏类型(划痕,凹痕,裂纹)及其边界框。我通过fizyr在retinanet上进行了训练,但模型过于适合。在训练中,我的mAP为0.89,而在测试中,我的mAP为0.07。 我已经使用了1200张图像进行训练和350张测试,详细信息如下。

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name'                  => 'required|max:191',
            'email'                 => 'required|email|max:191|unique:users',
            'password'              => 'required|min:6|confirmed',
            'church_name'           => 'required|max:191',
            'address'               => 'required|max:191',
            'state'                 => 'required|max:191',
            'city'                  => 'required|max:191',
            'zip'                   => 'required|max:191',
            'user_phone'            => 'required|max:191',
            'church_team_phone'     => 'required|max:191',
            'g-recaptcha-response'  => [new ReCaptcha],
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array $data
     * @return User
     */
    protected function create(array $data)
    {

        $team = Team::create([
            'name' => $data['church_name'],
            'address'  => $data['address'],
            'city'  => $data['city'],
            'state' => $data['state'],
            'zip' => $data['zip'],
            'phone' => $data['church_team_phone'],

        ]);


        $user = User::create([
            'name'     => $data['name'],
            'email'    => $data['email'],
            'phone' => $data['user_phone'],
            'password' => bcrypt($data['password']),
            'team_id' => $team->id

        ]);

        $user->role()->attach(config('app_service.default_role_id'));

        return $user;

我知道课程是不平衡的,但是测试和训练之间的巨大差异。此外,该模型在临时课程上的表现也不佳,该课程具有大量的培训示例。

1 个答案:

答案 0 :(得分:0)

是的,您的课程是不平衡的,但是您有足够的图像,应该比这更好。您如何选择火车/测试分区?结果表明那里存在一个随机问题。无论选择哪种方法,您的模型都在学习错误的分类标准。

这让我想起了狗/猫模型,该模型学会了区分人们拍摄宠物的背景。

首先,尝试旋转或改组训练和测试集。您可以在此应用程序中使用交叉验证吗?仅此一项就可以解决您的问题。

如果失败,您是否可以更改模型-也许包括一个辍学层?这将有助于学习无效的假设。