Image analysis of leaves to predict species.
Source
Lakshika, Jayani PG, and Thiyanga S. Talagala. "Computer-aided interpretable features for leaf image classification." arXiv preprint arXiv:2106.08077 (2021).
Details
From the original manuscript: "The Flavia dataset contains 1907 leaf images. There are 32 different species and each has 50-77 images. Scanners and digital cameras are used to acquire the leaf images on a plain background. The isolated leaf images contain blades only, without a petiole. These leaf images are collected from the most common plants in Yangtze, Delta, China. Those leaves were sampled on the campus of the Nanjing University and the Sun Yat-Sen arboretum, Nanking, China."
The reference below has details information on the features used for prediction.
Columns:
species
: factor (32 levels)apex
: factor (9 levels)base
: factor (6 levels)shape
: factor (5 levels)denate_edge
: factor (levels: 'no' and 'yes')lobed_edge
: factor (levels: 'no' and 'yes')smooth_edge
: factor (levels: 'no' and 'yes')toothed_edge
: factor (levels: 'no' and 'yes')undulate_edge
: factor (levels: 'no' and 'yes')outlying_polar
: numericskewed_polar
: numericclumpy_polar
: numericsparse_polar
: numericstriated_polar
: numericconvex_polar
: numericskinny_polar
: numericstringy_polar
: numericmonotonic_polar
: numericoutlying_contour
: numericskewed_contour
: numericclumpy_contour
: numericsparse_contour
: numericstriated_contour
: numericconvex_contour
: numericskinny_contour
: numericstringy_contour
: numericmonotonic_contour
: numericnum_max_ponits
: numericnum_min_points
: numericdiameter
: numericarea
: numericperimeter
: numericphysiological_length
: numericphysiological_width
: numericaspect_ratio
: numericrectangularity
: numericcircularity
: numericcompactness
: numericnarrow_factor
: numericperimeter_ratio_diameter
: numericperimeter_ratio_length
: numericperimeter_ratio_lw
: numericnum_convex_points
: numericperimeter_convexity
: numericarea_convexity
: numericarea_ratio_convexity
: numericequivalent_diameter
: numericeccentriciry
: numericcontrast
: numericcorrelation_texture
: numericinverse_difference_moments
: numericentropy
: numericmean_red_val
: numericmean_green_val
: numericmean_blue_val
: numericstd_red_val
: numericstd_green_val
: numericstd_blue_val
: numericcorrelation
: numeric
Examples
data(leaf_id_flavia)
str(leaf_id_flavia)
#> tibble [1,907 × 59] (S3: tbl_df/tbl/data.frame)
#> $ species : Factor w/ 32 levels "anhui_barberry",..: 9 9 9 9 9 9 9 9 9 9 ...
#> $ apex : Factor w/ 9 levels "acuminate","acute",..: 5 5 5 5 5 5 5 5 5 5 ...
#> $ base : Factor w/ 6 levels "acuminate","acute",..: 4 4 4 4 4 4 4 4 4 4 ...
#> $ shape : Factor w/ 5 levels "diamond","heart_shape",..: 2 2 2 2 2 2 2 2 2 2 ...
#> $ denate_edge : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
#> $ lobed_edge : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
#> $ smooth_edge : Factor w/ 2 levels "no","yes": 2 2 2 2 2 2 2 2 2 2 ...
#> $ toothed_edge : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
#> $ undulate_edge : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
#> $ outlying_polar : num [1:1907] 0 0 0 0 0 0 0 0 0 0 ...
#> $ skewed_polar : num [1:1907] 0.461 0.475 0.536 0.477 0.491 ...
#> $ clumpy_polar : num [1:1907] 0.00648 0.0111 0.01732 0.01327 0.01116 ...
#> $ sparse_polar : num [1:1907] 0.0145 0.0145 0.0295 0.0143 0.0142 ...
#> $ striated_polar : num [1:1907] 0.979 0.98 0.676 0.99 0.97 ...
#> $ convex_polar : num [1:1907] 9.00e-04 1.53e-04 3.52e-02 2.56e-06 8.95e-05 ...
#> $ skinny_polar : num [1:1907] 0.118 0.544 0.776 0.707 0.638 ...
#> $ stringy_polar : num [1:1907] 1 1 0.854 1 1 ...
#> $ monotonic_polar : num [1:1907] 0.02681 0.00555 0.06848 0.09547 0.00961 ...
#> $ outlying_contour : num [1:1907] 0 0 0 0 0 0 0 0 0 0 ...
#> $ skewed_contour : num [1:1907] 0.495 0.532 0.545 0.468 0.501 ...
#> $ clumpy_contour : num [1:1907] 0.0079 0.01085 0.02027 0.0109 0.00788 ...
#> $ sparse_contour : num [1:1907] 0.0145 0.0144 0.029 0.0145 0.0145 ...
#> $ striated_contour : num [1:1907] 0.974 0.981 0.677 0.978 0.98 ...
#> $ convex_contour : num [1:1907] 0.000479 0 0.035908 0.000939 0.000416 ...
#> $ skinny_contour : num [1:1907] 0.181 1 0.781 0.135 0.449 ...
#> $ stringy_contour : num [1:1907] 1 1 0.886 1 1 ...
#> $ monotonic_contour : num [1:1907] 8.16e-04 8.74e-06 1.25e-03 3.22e-01 2.81e-01 ...
#> $ num_max_ponits : num [1:1907] 1 3 4 1 1 1 1 1 1 1 ...
#> $ num_min_points : num [1:1907] 2 4 7 1 1 1 1 1 1 1 ...
#> $ diameter : num [1:1907] 1256 1228 1113 1219 1187 ...
#> $ area : num [1:1907] 936626 917300 855376 901303 885691 ...
#> $ perimeter : num [1:1907] 3831 3781 3696 3678 3834 ...
#> $ physiological_length : num [1:1907] 1253 1218 1098 1205 1153 ...
#> $ physiological_width : num [1:1907] 1088 1091 1083 1053 1078 ...
#> $ aspect_ratio : num [1:1907] 0.868 0.896 0.986 0.874 0.935 ...
#> $ rectangularity : num [1:1907] 0.687 0.69 0.719 0.71 0.713 ...
#> $ circularity : num [1:1907] 0.802 0.806 0.787 0.837 0.757 ...
#> $ compactness : num [1:1907] 15.7 15.6 16 15 16.6 ...
#> $ narrow_factor : num [1:1907] 1.15 1.13 1.03 1.16 1.1 ...
#> $ perimeter_ratio_diameter : num [1:1907] 3.05 3.08 3.32 3.02 3.23 ...
#> $ perimeter_ratio_length : num [1:1907] 3.52 3.47 3.41 3.49 3.56 ...
#> $ perimeter_ratio_lw : num [1:1907] 1.64 1.64 1.69 1.63 1.72 ...
#> $ num_convex_points : num [1:1907] 125 128 114 138 125 125 121 112 115 115 ...
#> $ perimeter_convexity : num [1:1907] 0.94 0.939 0.923 0.95 0.913 ...
#> $ area_convexity : num [1:1907] 0.0236 0.0318 0.0393 0.0174 0.0495 ...
#> $ area_ratio_convexity : num [1:1907] 0.977 0.969 0.962 0.983 0.953 ...
#> $ equivalent_diameter : num [1:1907] 1092 1081 1044 1071 1062 ...
#> $ eccentriciry : num [1:1907] 0.444 0.269 0.32 0.448 0.224 ...
#> $ contrast : num [1:1907] 38.7 32.7 23.2 30.1 23.8 ...
#> $ correlation_texture : num [1:1907] 0.996 0.997 0.998 0.997 0.998 ...
#> $ inverse_difference_moments: num [1:1907] 0.595 0.602 0.636 0.614 0.622 ...
#> $ entropy : num [1:1907] 6.29 6.27 5.76 6.2 5.95 ...
#> $ mean_red_val : num [1:1907] 38 34.6 30.9 33.4 33.8 ...
#> $ mean_green_val : num [1:1907] 72.4 69.9 69.2 71.3 70.7 ...
#> $ mean_blue_val : num [1:1907] 42.8 42.9 40.8 40.7 42.5 ...
#> $ std_red_val : num [1:1907] 41.7 40.5 38.6 39.1 40.7 ...
#> $ std_green_val : num [1:1907] 74.3 73.1 76.8 75.9 75.7 ...
#> $ std_blue_val : num [1:1907] 46.4 48 48.1 46.6 48.5 ...
#> $ correlation : num [1:1907] -0.0276 -0.0031 -0.0363 0.5684 0.5311 ...