@ -476,11 +476,7 @@ namespace cv {
return dst ;
return dst ;
}
}
bool ReadDarknetFromCfgFile ( const char * cfgFile , NetParameter * net )
bool ReadDarknetFromCfgStream ( std : : istream & ifile , NetParameter * net )
{
std : : ifstream ifile ;
ifile . open ( cfgFile ) ;
if ( ifile . is_open ( ) )
{
{
bool read_net = false ;
bool read_net = false ;
int layers_counter = - 1 ;
int layers_counter = - 1 ;
@ -530,14 +526,11 @@ namespace cv {
net - > height = getParam ( net_params , " height " , 416 ) ;
net - > height = getParam ( net_params , " height " , 416 ) ;
net - > channels = getParam ( net_params , " channels " , 3 ) ;
net - > channels = getParam ( net_params , " channels " , 3 ) ;
CV_Assert ( net - > width > 0 & & net - > height > 0 & & net - > channels > 0 ) ;
CV_Assert ( net - > width > 0 & & net - > height > 0 & & net - > channels > 0 ) ;
}
else
return false ;
int current_channels = net - > channels ;
int current_channels = net - > channels ;
net - > out_channels_vec . resize ( net - > layers_cfg . size ( ) ) ;
net - > out_channels_vec . resize ( net - > layers_cfg . size ( ) ) ;
int layers_counter = - 1 ;
layers_counter = - 1 ;
setLayersParams setParams ( net ) ;
setLayersParams setParams ( net ) ;
@ -676,13 +669,8 @@ namespace cv {
return true ;
return true ;
}
}
bool ReadDarknetFromWeightsStream ( std : : istream & ifile , NetParameter * net )
bool ReadDarknetFromWeightsFile ( const char * darknetModel , NetParameter * net )
{
{
std : : ifstream ifile ;
ifile . open ( darknetModel , std : : ios : : binary ) ;
CV_Assert ( ifile . is_open ( ) ) ;
int32_t major_ver , minor_ver , revision ;
int32_t major_ver , minor_ver , revision ;
ifile . read ( reinterpret_cast < char * > ( & major_ver ) , sizeof ( int32_t ) ) ;
ifile . read ( reinterpret_cast < char * > ( & major_ver ) , sizeof ( int32_t ) ) ;
ifile . read ( reinterpret_cast < char * > ( & minor_ver ) , sizeof ( int32_t ) ) ;
ifile . read ( reinterpret_cast < char * > ( & minor_ver ) , sizeof ( int32_t ) ) ;
@ -778,19 +766,18 @@ namespace cv {
}
}
void ReadNetParamsFromCfgFileOrDie ( const char * cfgF ile , darknet : : NetParameter * net )
void ReadNetParamsFromCfgStreamOrDie ( std : : istream & if ile , darknet : : NetParameter * net )
{
{
if ( ! darknet : : ReadDarknetFromCfgFile ( cfgF ile , net ) ) {
if ( ! darknet : : ReadDarknetFromCfgStream ( if ile , net ) ) {
CV_Error ( cv : : Error : : StsParseError , " Failed to parse NetParameter file: " + std : : string ( cfgFile ) ) ;
CV_Error ( cv : : Error : : StsParseError , " Failed to parse NetParameter stream " ) ;
}
}
}
}
void ReadNetParamsFromBinaryFileOrDie ( const char * darknetModel , darknet : : NetParameter * net )
void ReadNetParamsFromBinaryStreamOrDie ( std : : istream & ifile , darknet : : NetParameter * net )
{
{
if ( ! darknet : : ReadDarknetFromWeightsFile ( darknetModel , net ) ) {
if ( ! darknet : : ReadDarknetFromWeightsStream ( ifile , net ) ) {
CV_Error ( cv : : Error : : StsParseError , " Failed to parse NetParameter file: " + std : : string ( darknetModel ) ) ;
CV_Error ( cv : : Error : : StsParseError , " Failed to parse NetParameter stream " ) ;
}
}
}
}
}
}
}
}