@ -142,7 +142,7 @@ matrix load_image_paths(char **paths, int n, int w, int h)
return X ;
}
matrix load_image_augment_paths ( char * * paths , int n , int use_flip , int min , int max , int w , int h , float angle , float aspect , float hue , float saturation , float exposure )
matrix load_image_augment_paths ( char * * paths , int n , int use_flip , int min , int max , int w , int h , float angle , float aspect , float hue , float saturation , float exposure , int dontuse_opencv )
{
int i ;
matrix X ;
@ -152,7 +152,10 @@ matrix load_image_augment_paths(char **paths, int n, int use_flip, int min, int
for ( i = 0 ; i < n ; + + i ) {
int size = w > h ? w : h ;
image im = load_image_color ( paths [ i ] , 0 , 0 ) ;
image im ;
if ( dontuse_opencv ) im = load_image_stb_resize ( paths [ i ] , 0 , 0 , 3 ) ;
else im = load_image_color ( paths [ i ] , 0 , 0 ) ;
image crop = random_augment_image ( im , angle , aspect , min , max , size ) ;
int flip = use_flip ? random_gen ( ) % 2 : 0 ;
if ( flip )
@ -1362,7 +1365,7 @@ void *load_thread(void *ptr)
if ( a . type = = OLD_CLASSIFICATION_DATA ) {
* a . d = load_data_old ( a . paths , a . n , a . m , a . labels , a . classes , a . w , a . h ) ;
} else if ( a . type = = CLASSIFICATION_DATA ) {
* a . d = load_data_augment ( a . paths , a . n , a . m , a . labels , a . classes , a . hierarchy , a . flip , a . min , a . max , a . w , a . h , a . angle , a . aspect , a . hue , a . saturation , a . exposure , a . mixup , a . blur , a . show_imgs , a . label_smooth_eps ) ;
* a . d = load_data_augment ( a . paths , a . n , a . m , a . labels , a . classes , a . hierarchy , a . flip , a . min , a . max , a . w , a . h , a . angle , a . aspect , a . hue , a . saturation , a . exposure , a . mixup , a . blur , a . show_imgs , a . label_smooth_eps , a . dontuse_opencv ) ;
} else if ( a . type = = SUPER_DATA ) {
* a . d = load_data_super ( a . paths , a . n , a . m , a . w , a . h , a . scale ) ;
} else if ( a . type = = WRITING_DATA ) {
@ -1507,20 +1510,20 @@ data load_data_super(char **paths, int n, int m, int w, int h, int scale)
return d ;
}
data load_data_augment ( char * * paths , int n , int m , char * * labels , int k , tree * hierarchy , int use_flip , int min , int max , int w , int h , float angle , float aspect , float hue , float saturation , float exposure , int use_mixup , int use_blur , int show_imgs , float label_smooth_eps )
data load_data_augment ( char * * paths , int n , int m , char * * labels , int k , tree * hierarchy , int use_flip , int min , int max , int w , int h , float angle , float aspect , float hue , float saturation , float exposure , int use_mixup , int use_blur , int show_imgs , float label_smooth_eps , int dontuse_opencv )
{
char * * paths_stored = paths ;
if ( m ) paths = get_random_paths ( paths , n , m ) ;
data d = { 0 } ;
d . shallow = 0 ;
d . X = load_image_augment_paths ( paths , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure ) ;
d . X = load_image_augment_paths ( paths , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure , dontuse_opencv ) ;
d . y = load_labels_paths ( paths , n , labels , k , hierarchy , label_smooth_eps ) ;
if ( use_mixup & & rand_int ( 0 , 1 ) ) {
char * * paths_mix = get_random_paths ( paths_stored , n , m ) ;
data d2 = { 0 } ;
d2 . shallow = 0 ;
d2 . X = load_image_augment_paths ( paths_mix , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure ) ;
d2 . X = load_image_augment_paths ( paths_mix , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure , dontuse_opencv ) ;
d2 . y = load_labels_paths ( paths_mix , n , labels , k , hierarchy , label_smooth_eps ) ;
free ( paths_mix ) ;
@ -1530,12 +1533,12 @@ data load_data_augment(char **paths, int n, int m, char **labels, int k, tree *h
d4 . shallow = 0 ;
if ( use_mixup > = 3 ) {
char * * paths_mix3 = get_random_paths ( paths_stored , n , m ) ;
d3 . X = load_image_augment_paths ( paths_mix3 , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure ) ;
d3 . X = load_image_augment_paths ( paths_mix3 , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure , dontuse_opencv ) ;
d3 . y = load_labels_paths ( paths_mix3 , n , labels , k , hierarchy , label_smooth_eps ) ;
free ( paths_mix3 ) ;
char * * paths_mix4 = get_random_paths ( paths_stored , n , m ) ;
d4 . X = load_image_augment_paths ( paths_mix4 , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure ) ;
d4 . X = load_image_augment_paths ( paths_mix4 , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure , dontuse_opencv ) ;
d4 . y = load_labels_paths ( paths_mix4 , n , labels , k , hierarchy , label_smooth_eps ) ;
free ( paths_mix4 ) ;
}
@ -1706,7 +1709,7 @@ data load_data_tag(char **paths, int n, int m, int k, int use_flip, int min, int
d . w = w ;
d . h = h ;
d . shallow = 0 ;
d . X = load_image_augment_paths ( paths , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure ) ;
d . X = load_image_augment_paths ( paths , n , use_flip , min , max , w , h , angle , aspect , hue , saturation , exposure , 0 ) ;
d . y = load_tags_paths ( paths , n , k ) ;
if ( m ) free ( paths ) ;
return d ;