分类项目思路

可以让客户端,每次选版型时,自动写入json数据到这个json文件。


1.用init(int type,vector)

配置是可以的,但是不能写死。一次配置不算写死。

1、传入的json_input:
[ {"type": i},{ "objType1": "string1"}, { "objType2": "string2"},{ "objType3": "string3"},{ "objType4": "string4"}。。。。。]

不同机型弄不同的文件夹。

机型1所在的配置文件,是相对路径但是有命名规范。

config_1\cfgfile
config_1\weightsfile
config_1\namesfile


config_2\cfgfile
config_2\weightsfile
config_2\namesfile

不同机型
根据 num_class =json_input.sizeOf() -1 可以得到板具有的类别数目
比如那么就可以调用初始化API:init()           
                for (j,j<=num_class)
                {     obj_class_j.cfg = config_i/string_j.cfg                     机型i中的obj-j类别对应的cfg

                obj_class_j.weights = config_i/string_j.weights            机型i中的obj-j类别对应的weights

                obj_class_j.names = config_i/string_j.names                 机型i中的obj-j类别对应的names

                pred_classifier_i_ string_j= pred_cls ( obj_class_j.cfg , obj_class_j.weights, obj_class_j.names )     }

                                                                           num_area = json_i.sizeOf()

2、
                初始化result结构体{int type; items[nums_area]  }
                for (int n =0 ;n<=num_area;n++){
                    Mat area_i = rect [  json_i_n   ]
                    predict    //根据机型i和area的字符串去预测。predict_i_string(area_classname)

                    } 


这里用循环写即可。
                
                obj_class1.cfg = string1-1.cfg   obj1类别对应的cfg
                obj_class2.cfg = string1-2.cfg     obj2类别对应的cfg
                obj_class3.cfg = string1-3.cfg     obj3类别对应的cfg

                obj_class1.weights = string1-1..weights    obj1类别对应的weights    
                obj_class2.weights = string1-2..weights    obj2类别对应的weights
                obj_class3.weights = string1-3..weights    obj3类别对应的weights    

                obj_class1.names = string1-1.names     obj1类别对应的weights    
                obj_class2.names= string1-2.names      obj2类别对应的weights
                obj_class3.names= string1-3.names     obj3类别对应的weights
根据类别数目num_class

模型的初始化:


首先根据i,可以找到json文件下的json_i,里面有对应的坐标位置。

修改了classifier.c和yolo_v2_class.hpp


螺钉一类,线序一类,大件一类,一共三个模型完事。

螺钉B1 B2 B3 NO
线序 L1 L2 L3 L4 L5 L6 L7 L8 L9   完事 
大件:C1 C2 C3 

首先是裁剪图片并命名,B1-1 B1-2 B1-3......
然后是生成 train.txt和valid.txt
然后配置文件。
训练权重。

注意最后导出的darklib是NOGPU的。

posted @ 2020-01-06 00:13  Parallax  阅读(118)  评论(0编辑  收藏  举报