Я хочу создать предикативную модель в соответствии с обработкой изображений, у меня на Google Диске много видеофайлов (.mov) (связанных с автоматическим вождением). Я получаю данные из Google Drive в виде ссылок на файлы.Мой диск и данные доступны для всех пользователей Интернета.
тест
https://drive.google.com/drive/folders/1JidqB3TfHn0Cky8VBXHjbmHu7s0rGLrO?usp=sharing
поезд
https://drive.google.com/drive/folders/1WIFQIC23_o1__BPmlRDpnYYwmthH2AP-?usp=sharing
library("googledrive")
X=googledrive::drive_ls(path ="test")
Label=googledrive::drive_ls(path ="train")
Пример структуры данных с google диска (при необходимости)
dput ()
train=structure(list(name = structure(c(1L, 11L, 10L, 9L, 8L, 7L, 6L,
5L, 4L, 3L, 2L), .Label = c("<chr>", "047a188c-1ac1965c.mov",
"047a7ecb-68221e4a.mov", "047c278b-452d36f8.mov", "047e715f-3e47a9aa.mov",
"047e715f-81e81a28.mov", "047e732b-aa79a87d.mov", "0571873b-de675e01.mov",
"0571873b-faf718b2.mov", "0573e933-a8b4cf7d.mov", "0573f031-8ef23cf6.mov"
), class = "factor"), id = structure(c(1L, 5L, 7L, 11L, 9L, 3L,
10L, 8L, 4L, 2L, 6L), .Label = c("<chr>", "115rWp3h3Of3Rx61mqDRfhatFMFOpImRf",
"1EfokXp8UAxYKlpmGAIwU3FRJTTqrgDrS", "1EJa-A0a4_4nVgeF-pBXh6q6DFToGTYFu",
"1HHML9bo4UPY9r1hIL9igSX_t5FXH5n82", "1HzVTOqRwNfxVDey6EYmDe2nd8hnnTbHT",
"1IhMQiiCyb_WcKif8qyQmeK1W0tb8iU-U", "1lQc1a0mFw158T9U_QRvgoF0a33xiehZc",
"1StqEC_7hJO4HJ9uvC0o7sjLLY3tdceNp", "1thEsWrcYFN4qgG57RCUxqCr7WE6ecrmq",
"1xcxAuHamoFKHCD05wHfdVjeVDEN-FW8C"), class = "factor"), drive_resource = structure(c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("<list [41]>",
"<list>"), class = "factor")), .Names = c("name", "id", "drive_resource"
), class = "data.frame", row.names = c(NA, -11L))
test=structure(list(name = structure(c(1L, 2L, 4L, 3L, 11L, 10L, 9L,
8L, 7L, 6L, 5L), .Label = c("<chr>", "ddbd3eb2-ed0fde54.mov",
"ddbf7bbb-c1908e76.mov", "ddd140cc-c54a4e82.mov", "df94066c-654dcae9.mov",
"df94066c-b5e96c4c.mov", "df952550-4cb35087.mov", "df9b2e94-c14fc6a7.mov",
"df9b8801-a11fba46.mov", "df9cc07f-5cec2c16.mov", "dfa06e5c-aa220d9a.mov"
), class = "factor"), id = structure(c(1L, 10L, 2L, 3L, 8L, 6L,
11L, 7L, 9L, 4L, 5L), .Label = c("<chr>", "18fDVBhfyAHqUffG0GNFGti7549G43bhZ",
"1aYVn6L7147dDPcOb5CKC3RHh28fS7qix", "1Evm3EotD1xRoljlVCZ3sDIMnEmKaTbO5",
"1jhbfo3NSKKjbLrMkEh-HRx-UIOUr6R5o", "1kK5AvfwTV_exoWO55dEwEH4QIHaqpVER",
"1mjr8xSRdULPbmkQN-7L5Dx9yMb_zLxWh", "1OSg6d4q9is80c9Oark6ktdXwvZI8IpER",
"1Q3UlVeZXDF2cjglqxToapX2FMgRABhA9", "1uIS-Y3N_ipDuzG8kVT5gP3VScAvS-B9_",
"1yXKCCfgMJVbLqEyTJJCjS_pKQLMnZ6Kp"), class = "factor"), drive_resource = structure(c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("<list [41]>",
"<list>"), class = "factor")), .Names = c("name", "id", "drive_resource"
), class = "data.frame", row.names = c(NA, -11L))
Чтобы выполнить анализ, я должен конвертировать видео и (или) изображения в пиксели, в моем случаеэто видео, поэтому я делаю это.
require(EBImage)
# Dataframe of resized images
rs_df <- data.frame()
# Main loop: for each image, resize and set it to greyscale
for(i in 1:nrow(X))
{
# Try-catch
result <- tryCatch({
# Image (as 1d vector)
img <- as.numeric(X[i,])
# Reshape as a 64x64 image (EBImage object)
img <- Image(img, dim=c(64, 64), colormode = "Grayscale")
# Resize image to 28x28 pixels
img_resized <- resize(img, w = 28, h = 28)
# Get image matrix (there should be another function to do this faster and more neatly!)
img_matrix <- img_resized@.Data
# Coerce to a vector
img_vector <- as.vector(t(img_matrix))
# Add label
label <- labels[i,]
vec <- c(label, img_vector)
# Stack in rs_df using rbind
rs_df <- rbind(rs_df, vec)
# Print status
print(paste("Done",i,sep = " "))},
# Error function (just prints the error). Btw you should get no errors!
error = function(e){print(e)})
}
после того, как я получаю список с ошибками вроде
next
names(rs_df) <- c("label", paste("pixel", c(1:776))) #776 video .mov files
Я думаювидео не было загружено в R. Я не знаю почему.Мне нужна помощь.
Как вывод, я хочу, как это
label pixel.1 pixel.2 pixel.3 pixel.4 pixel.5 pixel.6 pixel.7
1 304 304 304 304 304 304 304 304
2 32 32 32 32 32 32 32 32
3 350 351 351 351 351 351 351 351
4 265 265 265 265 265 265 265 265
5 108 108 108 108 108 108 108 108
6 87 87 87 87 87 87 87 87
7 191 192 192 192 192 192 192 192
8 170 170 170 170 170 170 170 170
9 329 329 329 329 329 329 329 329
10 268 268 268 268 268 268 268 268
11 238 238 238 238 238 238 238 238
12 159 159 159 159 159 159 159 159
13 220 221 221 221 221 221 221 221
Как преобразовать видеодатат в пиксельную dataframr.Спасибо тебе.