{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"3.6.3"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"require(EBImage)\nrequire(keras)\nrequire(tidyverse)\nrequire(tidymodels)\nrequire(dplyr)\n\n# system(\"sudo apt-get -y install libmagick++-dev\", intern=TRUE)\n# install.packages(\"magick\", verbose=TRUE)\nlibrary(magick)\n\nlibrary(magrittr)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_images <- read_csv('../input/plant-pathology-2021-fgvc8/train.csv')\nds_train <- read_csv('../input/image-features/ds_train.csv')%>%slice(1:18000)\ntrain_images <- train_images %>% mutate(labels=factor(labels))\nds_train <- ds_train %>% mutate(labels=factor(labels))\nhead(train_images)\nhead(ds_train)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#summary(ds_train)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#train_images <- train_images %>% slice(1:18000)\n#             arrange(desc(labels)) %>% \n#             group_by(labels) %>% slice(1:300)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"labels_count <- ds_train%>% group_by(labels)%>%summarize(n=n())%>% arrange(n)\nlabels_count","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#summary(train_images)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_path='../input/plant-pathology-2021-fgvc8/train_images/'\ntrain <- ds_train$image\ntrain_list <- as.list(train)\ntrain_Count <- length(train_list)\ntrain_Count","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"height =20\nwidth  =20","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mage<-image_read(\"../input/plant-pathology-2021-fgvc8/train_images/80077517781fb94f.jpg\")%>%\n                image_resize( \"300x300\")\nimage_trim(mage)#%>% image_convolve('Sobel')%>% image_negate()\n#image_transparent(mage, 'white')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"image<-image_read(\"../input/plant-pathology-2021-fgvc8/train_images/80077517781fb94f.jpg\") %>% \n  image_crop(\"1200x900+1600+1200\")%>%image_resize( \"300x225\")\n#image_border(image_background(image, \"hotpink\"), \"#000080\", \"20x10\")\nimage\nimage%>% image_convolve('Sobel')%>% image_negate()\n#image_trim(image)\n#image <- image_resize(image, \"20x20\")\n#image_noise(image)\n#image_negate(image)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# crop <- function(im, left = 0, top = 0, right = 0, bottom = 0) {\n#   d <- dim(im[[1]]); w <- d[2]; h <- d[3]\n#   image_crop(im, glue::glue(\"{w-left-right}x{h-top-bottom}+{left}+{top}\"))\n# }\n# image<- image_read('../input/plant-pathology-2021-fgvc8/train_images/800cbf0ff87721f8.jpg') %>%\n#           crop(right = 1200,left=1200, top=600,bottom=600)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# #train_Count = 20\n# mypic_train <- vector('list',train_Count)\n# temp_mypic <- vector('list',1)\n# for (i in 1:train_Count) \n#     {\n#     new_path=paste(train_path, train_list[i],sep=\"\")\n#     image <-image_read(new_path) %>% image_crop(\"1200x900+1600+1200\")\n#     new_img_path <-image_write(image%>%image_convolve('Sobel')%>% image_negate(),path='new.jpg', format = \"jpg\")\n#     new_image<-image_read(new_img_path)\n#     temp_mypic[[1]] <- readImage(new_img_path)\n#     temp_mypic[[1]] <- resize(temp_mypic[[1]], height, width)\n#     mypic_train[[i]] <- array_reshape(temp_mypic[[1]], c(height*width*3))\n# }","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"mypic_train","metadata":{}},{"cell_type":"code","source":"test_path <- '../input/plant-pathology-2021-fgvc8/test_images/'\ntest <- list.files(path = test_path, pattern = \"*.jpg\" )\ntest_list <- as.list(test)\ntest_count =length(test_list)\ntest_count","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mypic_test <- vector('list',test_count)\ntemp_mypic <- vector('list',1)\nfor (i in 1:test_count) \n    {\n    new_path=paste(test_path, test_list[i],sep=\"\")\n    image <-image_read(new_path) %>% image_crop(\"1200x900+1600+1200\")\n    new_img_path <-image_write(image%>%image_convolve('Sobel')%>% image_negate(),path='new.jpg', format = \"jpg\")\n    new_image<-image_read(new_img_path)\n    temp_mypic[[1]] <- readImage(new_img_path)\n    temp_mypic[[1]] <- resize(temp_mypic[[1]], height, width)\n    mypic_test[[i]] <- array_reshape(temp_mypic[[1]], c(height*width*3))\n}","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# mypic_data_train <-as.data.frame(t(as.matrix(as.data.frame(mypic_train))))\n\n# ds_train <- bind_cols(head(train_images,train_Count),mypic_data_train) \n# head(ds_train)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# ds_train = separate_rows(ds_train,2,sep = \" \")\n# count(ds_train)\n# ds_train <- ds_train%>% mutate(labelsnumber = ifelse(labels == \"complex\", 1, \n#                                         ifelse(labels == \"healthy\", 2, \n#                                             ifelse(labels == \"rust\", 3,\n#                                                 ifelse(labels ==  \"scab\", 4, \n#                                                     ifelse(labels == \"frog_eye_leaf_spot\", 5, \n#                                                         ifelse(labels ==  \"powdery_mildew\", 6,99)))))))\n# head(ds_train)\n# ds_train%>% group_by(labelnumber)%>%summarize(n=n())%>% arrange(n)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_mypic_data <-as.data.frame(mypic_test)\ntest_mypic_data <-as.data.frame(t(as.matrix(test_mypic_data)))\n\nds_test <- bind_cols(test,test_mypic_data)%>% rename( image = `...1`)\nhead(ds_test)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"nn_recipe<-recipe(labels~., data=ds_train)%>%\n                    step_rm(image)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"nn_model<-mlp(epochs=200, hidden_units=height*width*2, dropout =.1)%>%\n          set_mode(\"classification\")%>%\n          set_engine(\"keras\", verbose=1) ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"nn_workflow<-workflow()%>%add_recipe(nn_recipe)%>%\n                          add_model(nn_model)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"nn_fit<-nn_workflow%>%fit(ds_train)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"nn_fit","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_results <- predict(nn_fit, new_data = ds_train)%>%bind_cols(ds_train%>%select(labels))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_results <- predict(nn_fit, new_data = ds_test)%>%bind_cols(ds_test%>%select(image))\ntest_results","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics(train_results, truth=labels, estimate=.pred_class)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_results_sub <- test_results%>%transmute(\n    image = image,\n    labels = .pred_class %>% as.character()\n  )\nhead(test_results_sub)\nwrite.csv(test_results_sub,\"submission.csv\",row.names=FALSE)","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}