преобразовать видеофайлы в пиксели из внешнего источника в R - PullRequest
0 голосов
/ 04 февраля 2019

Я хочу создать предикативную модель в соответствии с обработкой изображений, у меня на 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.Спасибо тебе.

1 Ответ

0 голосов
/ 05 февраля 2019

Я получаю ответ здесь https://github.com/apache/incubator-mxnet/issues/14061 Комплект тепловизора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...