可以让客户端,每次选版型时,自动写入json数据到这个json文件。
1.用init(int type,vector)
配置是可以的,但是不能写死。一次配置不算写死。
1、传入的json_input:
[ {"type": i},{ "objType1": "string1"}, { "objType2": "string2"},{ "objType3": "string3"},{ "objType4": "string4"}。。。。。]
不同机型弄不同的文件夹。
机型1所在的配置文件,是相对路径但是有命名规范。
config_1cfgfile
config_1weightsfile
config_1
amesfile
config_2cfgfile
config_2weightsfile
config_2
amesfile
不同机型
根据 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的。