{"cells":[
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "from subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "import pandas as pd\nimport matplotlib.pyplot as plt\n%matplotlib inline\nimport cv2\nimport os, glob\n\ndrivers = pd.read_csv('../input/driver_imgs_list.csv')\ntrain_files = [f for f in glob.glob(\"../input/train/*/*.jpg\")]\ntest_files = [\"../input/test/\" + f for f in os.listdir(\"../input/test/\")]\nprint(train_files[:10])\nprint(test_files[:10])"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "plt.rcParams['figure.figsize'] = (12.0, 12.0)\nplt.subplots_adjust(wspace=0, hspace=0)\n\nc_files = []\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml','eye'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml','glasses'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_frontalcatface.xml','frontal'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_frontalcatface_extended.xml','cat ext'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml','alt'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml','alt2'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt_tree.xml','alt tree'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml','default'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_fullbody.xml','body'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_lefteye_2splits.xml','splits'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_licence_plate_rus_16stages.xml','license'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_lowerbody.xml','lowerbody'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_profileface.xml','profile'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_righteye_2splits.xml','right eye'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_russian_plate_number.xml','russian'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_smile.xml','smile'])\nc_files.append(['/usr/local/share/OpenCV/haarcascades/haarcascade_upperbody.xml','upper'])\nc_files.append(['/usr/local/share/OpenCV/lbpcascades/lbpcascade_frontalcatface.xml','cat frontal'])\nc_files.append(['/usr/local/share/OpenCV/lbpcascades/lbpcascade_frontalface.xml','lbp frontal'])\nc_files.append(['/usr/local/share/OpenCV/lbpcascades/lbpcascade_profileface.xml','lbp profile'])\nc_files.append(['/usr/local/share/OpenCV/lbpcascades/lbpcascade_silverware.xml','silver'])\n\nimport random\nfi = random.choice(train_files)\nprint(fi)\nim = cv2.imread(fi)\nplt.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB)); plt.axis('off')"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "i_ = 0\nplt.rcParams['figure.figsize'] = (11.0, 21.0)\nplt.subplots_adjust(wspace=0, hspace=0)\nfor c in c_files:\n    im2 = im.copy()\n    gr_im = cv2.cvtColor(im2, cv2.COLOR_BGR2GRAY)\n    fc = cv2.CascadeClassifier(c[0])\n    fr = fc.detectMultiScale(gr_im, scaleFactor=1.1, minNeighbors=2, minSize=(20, 20), flags = cv2.CASCADE_SCALE_IMAGE)\n    if len(fr)>0:\n        for (x, y, w, h) in fr:\n            cv2.rectangle(im2, (x, y), (x+w, y+h), (0, 0, 255), 2)\n        cv2.cvtColor(im2, cv2.COLOR_BGR2RGB)\n    plt.subplot(7, 3, i_+1).set_title(c[1])\n    plt.imshow(cv2.cvtColor(im2, cv2.COLOR_BGR2RGB)); plt.axis('off')\n    i_ += 1"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "lbl = {'c0' : 'safe driving', \n'c1' : 'texting - right', \n'c2' : 'talking on the phone - right', \n'c3' : 'texting - left', \n'c4' : 'talking on the phone - left', \n'c5' : 'operating the radio', \n'c6' : 'drinking', \n'c7' : 'reaching behind', \n'c8' : 'hair and makeup', \n'c9' : 'talking to passenger'}\n\nplt.rcParams['figure.figsize'] = (8.0, 20.0)\nplt.subplots_adjust(wspace=0, hspace=0)\ni_ = 0\nfor l in lbl:\n    tf = [\"../input/train/\" + l + \"/\" + f for f in os.listdir(\"../input/train/\" + l + \"/\")]\n    fi = random.choice(tf)\n    print(fi)\n    im = cv2.imread(fi)\n    plt.subplot(5, 2, i_+1).set_title(lbl[l])\n    plt.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB)); plt.axis('off')\n    i_ += 1"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": ""
 }
],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}}, "nbformat": 4, "nbformat_minor": 0}