MCPcopy Create free account
hub / github.com/OpenPTrack/open_ptrack_v2 / generateLabelMap

Method generateLabelMap

rtpose_wrapper/src/caffe/data_transformer.cpp:2117–2354  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2115
2116template<typename Dtype>
2117void DataTransformer<Dtype>::generateLabelMap(Dtype* transformed_label, cv::Mat& img_aug, MetaData meta) {
2118 int rezX = img_aug.cols;
2119 int rezY = img_aug.rows;
2120 int stride = param_.stride();
2121 int grid_x = rezX / stride;
2122 int grid_y = rezY / stride;
2123 int channelOffset = grid_y * grid_x;
2124 int mode = 6; // TO DO: make this as a parameter
2125
2126 // TO DO: in transform_nv, generate the weight Map for MPI images
2127 // clear out transformed_label, it may remain things for last batch
2128 // for (int g_y = 0; g_y < grid_y; g_y++){
2129 // for (int g_x = 0; g_x < grid_x; g_x++){
2130 // for (int i = 0; i < np; i++){
2131 // if (meta.joint_self.isVisible[i] == 3){
2132 // transformed_label[i*channelOffset + g_y*grid_x + g_x] = 0;
2133 // }
2134 // else{
2135 // transformed_label[i*channelOffset + g_y*grid_x + g_x] = 1;
2136 // }
2137 // }
2138 // //background channel weight map
2139 // if (meta.joint_self.isVisible[0] == 3){
2140 // transformed_label[np*channelOffset + g_y*grid_x + g_x] = 0;
2141 // }
2142 // else{
2143 // transformed_label[np*channelOffset + g_y*grid_x + g_x] = 1;
2144 // }
2145 // }
2146 // }
2147
2148 for (int g_y = 0; g_y < grid_y; g_y++){
2149 for (int g_x = 0; g_x < grid_x; g_x++){
2150 for (int i = np+1; i < 2*(np+1); i++){
2151 if (mode == 6 && i == (2*np + 1))
2152 continue;
2153 transformed_label[i*channelOffset + g_y*grid_x + g_x] = 0;
2154 }
2155 }
2156 }
2157
2158 //LOG(INFO) << "label cleaned";
2159
2160 if (np == 37){
2161 for (int i = 0; i < 18; i++){
2162 cv::Point2f center = meta.joint_self.joints[i];
2163 if(meta.joint_self.isVisible[i] <= 1){
2164 putGaussianMaps(transformed_label + (i+np+1)*channelOffset, center, param_.stride(),
2165 grid_x, grid_y, param_.sigma()); //self
2166 }
2167 for(int j = 0; j < meta.numOtherPeople; j++){ //for every other person
2168 cv::Point2f center = meta.joint_others[j].joints[i];
2169 if(meta.joint_others[j].isVisible[i] <= 1){
2170 putGaussianMaps(transformed_label + (i+np+1)*channelOffset, center, param_.stride(),
2171 grid_x, grid_y, param_.sigma());
2172 }
2173 }
2174 }

Callers

nothing calls this directly

Calls 1

visualizeMethod · 0.45

Tested by

no test coverage detected