{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook the EmoReact dataset is explored and preprocessed such that only the faces are kept for later processing. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from os import listdir, mkdir\n", "import skvideo.io\n", "%matplotlib inline\n", "\n", "import matplotlib\n", "import numpy as np\n", "import cv2\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Creating a file listing, counting all the videos." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "videopath = \"/mnt/disk1/documents/data/EmoReact_V_1.0/Data/Test\"\n", "processed_path = '/mnt/disk1/documents/data/emoreact/test/'\n", "files = listdir(videopath)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "faceCascade=cv2.CascadeClassifier('/home/pieter/projects/engagement-l2tor/data/haarcascade_frontalface_alt.xml')\n", "faceCascade.empty()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "COWTONGUE42_2\n", "1\n", "SUSHI3_2\n", "2\n", "VCR67_2\n", "3\n", "HARLEMSHAKE91_2\n", "4\n", "MAKEUP_APPS107_2\n", "5\n", "FROGLEGS4_2\n", "6\n", "SUSHI30_2\n", "7\n", "GAMEBOY33_2\n", "8\n", "TOILET72_2\n", "9\n", "WALKMANS123_2\n", "10\n", "CAKE18_2\n", "11\n", "REBECCA88_2\n", "12\n", "SWING_COPTERS26_2\n", "13\n", "WALKMANS101_2\n", "14\n", "VCR108_2\n", "15\n", "ESCARGOT120_2\n", "16\n", "MAKEUP_APPS36_2\n", "17\n", "DUBSTEP68_2\n", "18\n", "WALKMANS108_2\n", "19\n", "SWING_COPTERS42_2\n", "20\n", "MINECRAFT38_2\n", "21\n", "BRUSSELSSPROUTS15_2\n", "22\n", "SWING_COPTERS28_2\n", "23\n", "REBECCA56_2\n", "24\n", "Gay_Marriage253_2\n", "25\n", "OLDCOMPUTERS79_2\n", "26\n", "VCR19_2\n", "27\n", "APPLEWATCH21_2\n", "28\n", "OLDCOMPUTERS81_2\n", "29\n", "80'sTOYS28_2\n", "30\n", "VCR127_2\n", "31\n", "SKIPIT27_2\n", "32\n", "MINECRAFT39_2\n", "33\n", "Gay_Marriage301_2\n", "34\n", "HARLEMSHAKE32_2\n", "35\n", "CAN_YOUR_PET100_2\n", "36\n", "CAN_YOUR_PET31_2\n", "37\n", "Gay_Marriage257_2\n", "38\n", "iPOD131_2\n", "39\n", "VEGEMITE48_2\n", "40\n", "ANNOYING_ORANGE120_2\n", "41\n", "WALKMANS54_2\n", "42\n", "CAVIAR19_2\n", "43\n", "MAKEUP_APPS50_2\n", "44\n", "SWING_COPTERS172_2\n", "45\n", "GAMEBOY9_2\n", "46\n", "SWING_COPTERS141_2\n", "47\n", "WALKMANS18_2\n", "48\n", "MINECRAFT36_2\n", "49\n", "CAN_YOUR_PET90_2\n", "50\n", "BULLYING35_2\n", "51\n", "NYAN_CAT81_2\n", "52\n", "SQUID19_2\n", "53\n", "SWING_COPTERS22_2\n", "54\n", "CAVIAR43_2\n", "55\n", "CAN_YOUR_PET7_2\n", "56\n", "BULLYING147_2\n", "57\n", "MINECRAFT21_2\n", "58\n", "MAKEUP_APPS131_2\n", "59\n", "SUSHI15_2\n", "60\n", "iPOD35_2\n", "61\n", "COWTONGUE41_2\n", "62\n", "Gay_Marriage269_2\n", "63\n", "WALKMANS29_2\n", "64\n", "MAKEUP_APPS38_2\n", "65\n", "TOILET7_2\n", "66\n", "SWING_COPTERS96_2\n", "67\n", "WALKMANS79_2\n", "68\n", "SUSHI38_2\n", "69\n", "HARLEMSHAKE72_2\n", "70\n", "VCR60_2\n", "71\n", "PIZZATOPPINGS39_2\n", "72\n", "NYAN_CAT97_2\n", "73\n", "iPOD73_2\n", "74\n", "MAKEUP_APPS146_2\n", "75\n", "VEGEMITE25_2\n", "76\n", "SWING_COPTERS31_2\n", "77\n", "iPOD93_2\n", "78\n", "iPOD16_2\n", "79\n", "VEGEMITE56_2\n", "80\n", "SWING_COPTERS135_2\n", "81\n", "SWING_COPTERS110_2\n", "82\n", "MAKEUP_APPS126_2\n", "83\n", "WHEATGRASS80_2\n", "84\n", "ESCARGOT106_2\n", "85\n", "APPLEWATCH43_2\n", "86\n", "MAKEUP_APPS96_2\n", "87\n", "Gay_Marriage153_2\n", "88\n", "KIMCHI57_2\n", "89\n", "NYAN_CAT58_2\n", "90\n", "FROGLEGS73_2\n", "91\n", "VCR41_2\n", "92\n", "OLDCAMERAS44_2\n", "93\n", "REBECCA59_2\n", "94\n", "iPOD25_2\n", "95\n", "REBECCA61_2\n", "96\n", "COWTONGUE22_2\n", "97\n", "BRUSSELSSPROUTS73_2\n", "98\n", "BRUSSELSSPROUTS24_2\n", "99\n", "GAMEBOY34_2\n", "100\n", "BRUSSELSSPROUTS78_2\n", "101\n", "PIZZATOPPINGS59_2\n", "102\n", "OLDCAMERAS50_2\n", "103\n", "TOILET75_2\n", "104\n", "FROGLEGS52_2\n", "105\n", "MAKEUP_APPS164_2\n", "106\n", "Gay_Marriage196_2\n", "107\n", "Gay_Marriage299_2\n", "108\n", "BRUSSELSSPROUTS27_2\n", "109\n", "VCR45_2\n", "110\n", "80'sTOYS49_2\n", "111\n", "OLDCOMPUTERS113_2\n", "112\n", "OLDCOMPUTERS102_2\n", "113\n", "MINECRAFT112_2\n", "114\n", "MAKEUP_APPS7_2\n", "115\n", "SUSHI104_2\n", "116\n", "SWING_COPTERS192_2\n", "117\n", "VEGEMITE12_2\n", "118\n", "ESCARGOT2_2\n", "119\n", "Gay_Marriage54_2\n", "120\n", "APPLEWATCH44_2\n", "121\n", "APPLEWATCH13_2\n", "122\n", "BRUSSELSSPROUTS43_2\n", "123\n", "WALKMANS33_2\n", "124\n", "PIZZATOPPINGS149_2\n", "125\n", "REBECCA19_2\n", "126\n", "HARLEMSHAKE132_2\n", "127\n", "BULLYING88_2\n", "128\n", "SKIPIT125_2\n", "129\n", "SQUID80_2\n", "130\n", "ANNOYING_ORANGE170_2\n", "131\n", "APPLEWATCH5_2\n", "132\n", "NYAN_CAT35_2\n", "133\n", "Gay_Marriage116_2\n", "134\n", "MAKEUP_APPS10_2\n", "135\n", "ANNOYING_ORANGE83_2\n", "136\n", "NYAN_CAT83_2\n", "137\n", "SWING_COPTERS139_2\n", "138\n", "ESCARGOT42_2\n", "139\n", "80'sTOYS9_2\n", "140\n", "SWING_COPTERS194_2\n", "141\n", "MAKEUP_APPS20_2\n", "142\n", "WALKMANS49_2\n", "143\n", "GAMEBOY26_2\n", "144\n", "WALKMANS47_2\n", "145\n", "OLDCAMERAS55_2\n", "146\n", "TYPEWRITERS16_2\n", "147\n", "SWING_COPTERS176_2\n", "148\n", "SWING_COPTERS35_2\n", "149\n", "VEGEMITE4_2\n", "150\n", "MAKEUP_APPS34_2\n", "151\n", "Gay_Marriage32_2\n", "152\n", "80'sTOYS32_2\n", "153\n", "GAMEBOY10_2\n", "154\n", "CAN_YOUR_PET33_2\n", "155\n", "REBECCA51_2\n", "156\n", "ANNOYING_ORANGE158_2\n", "157\n", "MINECRAFT93_2\n", "158\n", "MINECRAFT40_2\n", "159\n", "HARLEMSHAKE81_2\n", "160\n", "MAKEUP_APPS2_2\n", "161\n", "DUBSTEP85_2\n", "162\n", "APPLEWATCH17_2\n", "163\n", "ANNOYING_ORANGE176_2\n", "164\n", "FROGLEGS59_2\n", "165\n", "BRUSSELSSPROUTS61_2\n", "166\n", "Gay_Marriage270_2\n", "167\n", "Gay_Marriage19_2\n", "168\n", "TOFU53_2\n", "169\n", "ESCARGOT84_2\n", "170\n", "MAKEUP_APPS162_2\n", "171\n", "SKIPIT108_2\n", "172\n", "HARLEMSHAKE96_2\n", "173\n", "SWING_COPTERS157_2\n", "174\n", "CAKE3_2\n", "175\n", "SUSHI19_2\n", "176\n", "PIZZATOPPINGS57_2\n", "177\n", "CAN_YOUR_PET47_2\n", "178\n", "OLDCAMERAS64_2\n", "179\n", "BULLYING90_2\n", "180\n", "SWING_COPTERS177_2\n", "181\n", "iPOD115_2\n", "182\n", "WHEATGRASS70_2\n", "183\n", "SWING_COPTERS165_2\n", "184\n", "REBECCA53_2\n", "185\n", "SQUID103_2\n", "186\n", "SWING_COPTERS174_2\n", "187\n", "REBECCA32_2\n", "188\n", "MAKEUP_APPS99_2\n", "189\n", "Gay_Marriage124_2\n", "190\n", "WALKMANS117_2\n", "191\n", "MAKEUP_APPS67_2\n", "192\n", "MINECRAFT59_2\n", "193\n", "HARLEMSHAKE19_2\n", "194\n", "TOILET52_2\n", "195\n", "FROGLEGS75_2\n", "196\n", "WALKMANS63_2\n", "197\n", "SWING_COPTERS94_2\n", "198\n", "SKIPIT33_2\n", "199\n", "APPLEWATCH15_2\n", "200\n", "Gay_Marriage310_2\n", "201\n", "WHEATGRASS69_2\n", "202\n", "ESCARGOT35_2\n", "203\n", "NYAN_CAT115_2\n", "204\n", "HARLEMSHAKE9_2\n", "205\n", "NYAN_CAT118_2\n", "206\n", "MAKEUP_APPS33_2\n", "207\n", "ANNOYING_ORANGE127_2\n", "208\n", "MINECRAFT111_2\n", "209\n", "SPAM8_2\n", "210\n", "VEGEMITE90_2\n", "211\n", "WHEATGRASS21_2\n", "212\n", "WALKMANS95_2\n", "213\n", "iPOD39_2\n", "214\n", "NYAN_CAT8_2\n", "215\n", "ANNOYING_ORANGE152_2\n", "216\n", "OLDCOMPUTERS152_2\n", "217\n", "SPAM27_2\n", "218\n", "SPAM54_2\n", "219\n", "VCR52_2\n", "220\n", "SKIPIT37_2\n", "221\n", "SKIPIT101_2\n", "222\n", "80'sTOYS4_2\n", "223\n", "KIMCHI84_2\n", "224\n", "MAKEUP_APPS9_2\n", "225\n", "APPLEWATCH27_2\n", "226\n", "VCR62_2\n", "227\n", "SPAM31_2\n", "228\n", "MINECRAFT78_2\n", "229\n", "SUSHI55_2\n", "230\n", "MAKEUP_APPS26_2\n", "231\n", "BRUSSELSSPROUTS14_2\n", "232\n", "ESCARGOT67_2\n", "233\n", "Gay_Marriage291_2\n", "234\n", "iPOD108_2\n", "235\n", "Gay_Marriage303_2\n", "236\n", "ESCARGOT96_2\n", "237\n", "SWING_COPTERS98_2\n", "238\n", "SQUID86_2\n", "239\n", "APPLEWATCH11_2\n", "240\n", "SPAM41_2\n", "241\n", "PIZZATOPPINGS139_2\n", "242\n", "WHEATGRASS99_2\n", "243\n", "SUSHI53_2\n", "244\n", "ESCARGOT14_2\n", "245\n", "TOFU66_2\n", "246\n", "OLDCAMERAS28_2\n", "247\n", "PIZZATOPPINGS2_2\n", "248\n", "SWING_COPTERS170_2\n", "249\n", "SPAM80_2\n", "250\n", "REBECCA65_2\n", "251\n", "Gay_Marriage169_2\n", "252\n", "Gay_Marriage114_2\n", "253\n", "OLDCOMPUTERS45_2\n", "254\n", "MINECRAFT70_2\n", "255\n", "ANNOYING_ORANGE168_2\n", "256\n", "80'sTOYS123_2\n", "257\n", "SWING_COPTERS7_2\n", "258\n", "SUSHI116_2\n", "259\n", "HARLEMSHAKE84_2\n", "260\n", "MAKEUP_APPS111_2\n", "261\n", "ROTARYPHONES25_2\n", "262\n", "DUBSTEP108_2\n", "263\n", "DUBSTEP59_2\n", "264\n", "CAKE63_2\n", "265\n", "DUBSTEP23_2\n", "266\n", "TOILET80_2\n", "267\n", "DUBSTEP49_2\n", "268\n", "VEGEMITE10_2\n", "269\n", "DUBSTEP90_2\n", "270\n", "BULLYING27_2\n", "271\n", "Gay_Marriage183_2\n", "272\n", "80'sTOYS130_2\n", "273\n", "MAKEUP_APPS150_2\n", "274\n", "GAMEBOY12_2\n", "275\n", "BRUSSELSSPROUTS51_2\n", "276\n", "SKIPIT53_2\n", "277\n", "Gay_Marriage221_2\n", "278\n", "APPLEWATCH39_2\n", "279\n", "OLDCOMPUTERS158_2\n", "280\n", "TOFU68_2\n", "281\n", "TYPEWRITERS35_2\n", "282\n", "SWING_COPTERS109_2\n", "283\n", "BULLYING110_2\n", "284\n", "PIZZATOPPINGS140_2\n", "285\n", "BRUSSELSSPROUTS2_2\n", "286\n", "Gay_Marriage241_2\n", "287\n", "80'sTOYS139_2\n", "288\n", "TOILET20_2\n", "289\n", "MAKEUP_APPS73_2\n", "290\n", "COWTONGUE38_2\n", "291\n", "SWING_COPTERS38_2\n", "292\n", "OLDCOMPUTERS96_2\n", "293\n", "Gay_Marriage164_2\n", "294\n", "CAVIAR76_2\n", "295\n", "TOFU47_2\n", "296\n", "TOFU30_2\n", "297\n", "SWING_COPTERS155_2\n", "298\n", "APPLEWATCH20_2\n", "299\n", "WHEATGRASS92_2\n", "300\n", "APPLEWATCH37_2\n", "301\n", "COWTONGUE87_2\n", "302\n", "CAVIAR85_2\n", "303\n", "OLDCOMPUTERS41_2\n", "304\n", "OLDCOMPUTERS118_2\n", "305\n", "ROTARYPHONES15_2\n", "306\n", "VEGEMITE68_2\n", "307\n", "TOFU19_2\n", "308\n", "MINECRAFT66_2\n", "309\n", "BULLYING158_2\n", "310\n", "BULLYING153_2\n", "311\n", "DUBSTEP115_2\n", "312\n", "DUBSTEP13_2\n", "313\n", "Gay_Marriage43_2\n", "314\n", "Gay_Marriage13_2\n", "315\n", "SWING_COPTERS20_2\n", "316\n", "BULLYING151_2\n", "317\n", "DUBSTEP113_2\n", "318\n", "SWING_COPTERS5_2\n", "319\n", "SQUID62_2\n", "320\n", "MAKEUP_APPS94_2\n", "321\n", "SKIPIT99_2\n", "322\n", "BULLYING42_2\n", "323\n", "SWING_COPTERS169_2\n", "324\n", "Gay_Marriage238_2\n", "325\n", "DUBSTEP33_2\n", "326\n", "SPAM12_2\n", "327\n", "SKIPIT85_2\n", "328\n", "VCR99_2\n", "329\n", "TOFU79_2\n", "330\n", "REBECCA31_2\n", "331\n", "MINECRAFT119_2\n", "332\n", "WHEATGRASS84_2\n", "333\n", "WHEATGRASS82_2\n", "334\n", "TOFU3_2\n", "335\n", "MAKEUP_APPS90_2\n", "336\n", "SWING_COPTERS91_2\n", "337\n", "SPAM86_2\n", "338\n", "SUSHI74_2\n", "339\n", "MAKEUP_APPS27_2\n", "340\n", "SWING_COPTERS47_2\n", "341\n", "SPAM56_2\n", "342\n", "OLDCOMPUTERS93_2\n", "343\n", "SUSHI84_2\n", "344\n", "SWING_COPTERS93_2\n", "345\n", "HARLEMSHAKE100_2\n", "346\n", "BULLYING134_2\n", "347\n", "NYAN_CAT84_2\n", "348\n", "CAN_YOUR_PET15_2\n", "349\n", "SWING_COPTERS24_2\n", "350\n", "KIMCHI9_2\n", "351\n", "ANNOYING_ORANGE89_2\n", "352\n", "Gay_Marriage131_2\n", "353\n", "TOFU87_2\n", "354\n", "SQUID22_2\n", "355\n", "Gay_Marriage142_2\n", "356\n", "VEGEMITE79_2\n", "357\n", "MAKEUP_APPS37_2\n", "358\n", "MAKEUP_APPS81_2\n", "359\n", "CAN_YOUR_PET22_2\n", "360\n", "SWING_COPTERS153_2\n", "361\n", "iPOD83_2\n", "362\n", "DUBSTEP95_2\n", "363\n", "WALKMANS118_2\n", "364\n", "80'sTOYS104_2\n", "365\n", "SPAM84_2\n", "366\n", "SPAM38_2\n" ] } ], "source": [ "for c, file in enumerate(files):\n", " print(c)\n", " video_file = skvideo.io.vreader(videopath + \"/\" + file)\n", " video_face = []\n", " for frame in video_file:\n", " gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n", " faces = faceCascade.detectMultiScale(gray, 1.3, 5)\n", " # Add found faces to new video\n", " if len(faces) != 0:\n", " for (x, y, w, h) in faces:\n", " #cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)\n", " video_face.append(frame[y:y+h, x:x+w])\n", " folder_name = file[:-4]\n", " print(folder_name)\n", " path = processed_path + folder_name\n", " mkdir(path)\n", " #now we loop over the faces and put the separate frames inside the right folder\n", " for i, face in enumerate(video_face):\n", " file_name = path + \"/\" + str(i) + \".png\"\n", " #write the face to the file\n", " cv2.imwrite(file_name, cv2.cvtColor(face, cv2.COLOR_RGB2BGR))\n", " \n", " " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.4" } }, "nbformat": 4, "nbformat_minor": 2 }